mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
Add PC port scaffolding (CMake build + port layer)
Initial scaffolding for a PC port of GoldenEye 007, modeled on the Perfect Dark PC port (same Rare "Indy" engine). The N64 build (Makefile + IDA) is untouched; the PC build is a parallel CMake build. Build: - CMakeLists.txt: SDL2 + zlib + OpenGL. Compiles src/game/*.c + curated engine files + libultra audio/gu + port/. Per-region macro sets (ROMID US/EU/JP) mirror the N64 Makefile's LCDEFS exactly. - build-pc.sh, cmake/: configure+build helper and target/SDL2 modules. Port layer (port/): - video/audio/input/fs/romdata/config/system/mixer: stubs with TODO(Phase N) markers and correct interfaces. - libultra.c: libultra OS shims (message queues, VI, PI, AI, EEPROM, controller, PFS/motor no-ops, region-gated osTvType). - gesched.c: software-RSP scheduler replacing src/sched.c task submission. - n64stubs.c: inert stubs for N64-boot + rmon symbols. - random.c: PRNG ported verbatim from src/random.s (bit-exact). - ucode.c: RSP/ASP/GSP microcode segment markers (dummies; Phase 3 TODO). Docs: - docs/PCPortResearch.md: architecture, GE-specific deltas, phased plan, and the scaffolding review (findings A1-A4/B1-B4/C1-C2 + resolutions). - PORTING.md: top-level entry point. See docs/PCPortResearch.md for the full plan.
This commit is contained in:
1 parent
ef209c113c
commit
cd6cc158b6
37 files changed
+3092
-1
No files matched your search
+35
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Build the GoldenEye 007 PC port.
|
||||
#
|
||||
# Usage:
|
||||
# ./build-pc.sh [ntsc-final|pal-final|jpn-final]
|
||||
#
|
||||
# Dependencies (see docs/PCPortResearch.md):
|
||||
# - CMake >= 3.16
|
||||
# - SDL2 dev
|
||||
# - zlib dev
|
||||
# - OpenGL dev (opengl32 on Windows, GL on Linux, OpenGL.framework on macOS)
|
||||
#
|
||||
# Example (Linux):
|
||||
# sudo apt install cmake libsdl2-dev zlib1g-dev libgl4-mesa-dev
|
||||
# Example (macOS):
|
||||
# brew install cmake sdl2 zlib
|
||||
# Example (Windows/MSYS2):
|
||||
# pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-SDL2 \
|
||||
# mingw-w64-x86_64-zlib mingw-w64-x86_64-cmake
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
ROMID="${1:-ntsc-final}"
|
||||
BUILD_DIR="build-pc"
|
||||
|
||||
echo "==> Configuring PC port (ROMID=${ROMID})"
|
||||
cmake -S . -B "${BUILD_DIR}" -DROMID="${ROMID}"
|
||||
|
||||
echo "==> Building"
|
||||
cmake --build "${BUILD_DIR}" -j
|
||||
|
||||
echo "==> Done."
|
||||
echo " Binary: ${BUILD_DIR}/ge007.*"
|
||||
echo " Put your ROM in ./data/ (see README) and run the binary."
|
||||
Reference in new issue
Block a user