mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
* Drop-in ROM: first-run sidecar conversion, no Python (issue #6, Part A + interim) The release bundle now turns a dropped-in NTSC-U ROM into a playable game with zero tooling: when data/pcmodels-* / data/pccg-* are missing at boot, the engine spawns the frozen prepare-assets converter shipped in the bundle (prepare-assets/ge007-convert[.exe], PyInstaller --onefile), waits for it, and re-checks before continuing (port/src/romconvert.c, called from romdataInit after ROM validation). Failure aborts boot with a message instead of the later D179-class crash. - prepare-assets.py: runs in-process via runpy when frozen (no user Python to exec); NTSC-U-only gate with a clear message for PAL/JP ROMs; d88's sibling import needs an explicit sys.path entry (run_path does not set one). Verified: frozen exe output byte-identical to the unfrozen path and to the shipped sidecars. - CI (linux + windows): PyInstaller freeze step before bundling (ensurepip / --break-system-packages for MSYS2's pip-less python). - bundle scripts: copy ge007-convert into prepare-assets/ (hard-fail if not frozen), size guard 60 -> 120 MB. - Release notes: US-only drop-in instructions, no Python required. - D258: PAL/JP filelist naming defects documented; multi-region deferred to the Part B follow-up. * CI: install pip via pacman on Windows (MSYS2 ensurepip is disabled); regen findings index for D258
This commit is contained in:
1 parent
99bc2a3a6a
commit
b2d5551ece
11 files changed
+370
-29
No files matched your search
@@ -181,7 +181,7 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential gcc-14 g++-14 cmake python3 \
|
||||
libsdl2-dev zlib1g-dev libgl1-mesa-dev ccache patchelf
|
||||
python3-pip libsdl2-dev zlib1g-dev libgl1-mesa-dev ccache patchelf
|
||||
|
||||
- name: Restore ccache
|
||||
uses: actions/cache@v4
|
||||
@@ -195,6 +195,22 @@ jobs:
|
||||
- name: Regenerate ROM-asset symbol file (US)
|
||||
run: python3 scripts/gen_romassets.py u
|
||||
|
||||
# Drop-in ROM support: freeze the asset-prep tool into a single
|
||||
# ge007-convert binary the engine spawns on first run when the
|
||||
# pcmodels/pccg sidecars are missing (port/src/romconvert.c). Pure-
|
||||
# stdlib scripts, so PyInstaller --onefile is clean; lands in
|
||||
# tools_pc/dist/prepare-assets/ where bundle-linux.sh picks it up.
|
||||
- name: Freeze asset converter (PyInstaller)
|
||||
run: |
|
||||
python3 -c "import PyInstaller" 2>/dev/null \
|
||||
|| python3 -m pip install --quiet --break-system-packages pyinstaller
|
||||
python3 -m PyInstaller --onefile --noconfirm --clean \
|
||||
--name ge007-convert \
|
||||
--distpath tools_pc/dist/prepare-assets \
|
||||
--workpath build-pyinst --specpath build-pyinst \
|
||||
tools_pc/dist/prepare-assets/prepare-assets.py
|
||||
ls -la tools_pc/dist/prepare-assets/ge007-convert
|
||||
|
||||
- name: Configure (ntsc-final)
|
||||
run: cmake -S . -B build-linux -DROMID=ntsc-final
|
||||
-DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14
|
||||
@@ -297,6 +313,25 @@ jobs:
|
||||
- name: Regenerate ROM-asset symbol file (US)
|
||||
run: python scripts/gen_romassets.py u
|
||||
|
||||
# Drop-in ROM support: freeze the asset-prep tool into a single
|
||||
# ge007-convert.exe the engine spawns on first run when the pcmodels/
|
||||
# pccg sidecars are missing (port/src/romconvert.c). Lands in
|
||||
# tools_pc/dist/prepare-assets/ where bundle-win.sh picks it up.
|
||||
- name: Freeze asset converter (PyInstaller)
|
||||
run: |
|
||||
# MSYS2's mingw python ships without pip and has ensurepip
|
||||
# disabled — install pip from pacman, then PyInstaller.
|
||||
python -c "import PyInstaller" 2>/dev/null || {
|
||||
pacman -S --noconfirm mingw-w64-x86_64-python-pip
|
||||
python -m pip install --quiet --break-system-packages pyinstaller
|
||||
}
|
||||
python -m PyInstaller --onefile --noconfirm --clean \
|
||||
--name ge007-convert \
|
||||
--distpath tools_pc/dist/prepare-assets \
|
||||
--workpath build-pyinst --specpath build-pyinst \
|
||||
tools_pc/dist/prepare-assets/prepare-assets.py
|
||||
ls -la tools_pc/dist/prepare-assets/ge007-convert.exe
|
||||
|
||||
- name: Build (ntsc-final)
|
||||
run: ./build-pc.sh ntsc-final
|
||||
|
||||
|
||||
Reference in new issue
Block a user