forked from Ports/goldeneye-pc-port
* 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
25 lines
739 B
C
25 lines
739 B
C
#ifndef PORT_ROMCONVERT_H
|
|
#define PORT_ROMCONVERT_H
|
|
|
|
/*
|
|
* First-run sidecar conversion — see port/src/romconvert.c. Called from
|
|
* romdataInit() once a valid ROM image is in hand; spawns the bundled frozen
|
|
* converter (ge007-convert) if the pcmodels/pccg sidecars are missing.
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* romImg: mapped/read ROM image (country byte at 0x3E selects the region);
|
|
* romRelPath: the "$S/..." / "$E/..." / "./..." path the ROM was opened from.
|
|
* Returns 1 when both sidecars are present, -1 when they could not be
|
|
* produced (caller should abort boot). */
|
|
int romConvertEnsureSidecars(const unsigned char *romImg, const char *romRelPath);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* PORT_ROMCONVERT_H */
|