Skip to content

v0.1.1 — External ROM + game_extras CRC hooks

Latest

Choose a tag to compare

@mstan mstan released this 07 May 04:50
· 10 commits to master since this release

Changes since v0.1.0

This release actually delivers the external-ROM picker that v0.1.0's release notes claimed. v0.1.0 was built against a recompiler that had regressed back to embedding the ROM in the binary; v0.1.1 fixes that and rebuilds against the NES-style hooks pattern in gb-recompiled master (commit 2f4f80c).

What changed

  • ROM is no longer embedded in the binary (1 MB shaved off the exe).
  • Launcher now resolves the ROM at runtime via Windows file picker, caches the path in rom.cfg, and validates against the multi-CRC list returned by game_get_valid_crcs() in extras.c.
  • Multi-version support is now a first-class hook: a single build accepts either Red (0x9F7FDD53) or Blue (0xD6DA8A1A) — picker re-prompts on mismatch.
  • extras.c lives in the project root and overrides only the ROM identity defaults; non-CRC game_* hooks (lifecycle, debug, dispatch) keep their gbrt defaults.
  • valid_crcs removed from pokemon_red_blue.toml — single source of truth is now extras.c.
  • Submodule replaced with a directory junction to a workspace-shared gb-recompiled clone.

Compatibility

  • Pokemon Red (UE) [S][!] — CRC32 0x9F7FDD53
  • Pokemon Blue (UE) [S][!] — CRC32 0xD6DA8A1A
  • Other variants are rejected with a "Wrong ROM" dialog.

Requirements

  • Windows 10/11 x64
  • A legally obtained Pokemon Red or Blue ROM (.gb)

Status (unchanged from v0.1.0)

  • Game runs and is playable with both Red and Blue ROMs through the Elite Four.
  • Some animations may chug slightly. Minor visual glitches in edge cases.
  • Code paths not yet discovered by the static analyzer fall back to an interpreter (slower).
  • Audio may stutter briefly in animation-heavy scenes.
  • No link cable support.

Known

  • Interpreter fallback still fires at bank 28 (0x614E/0x6150/0x6153) — same as v0.0.3 / v0.1.0, not a regression.

Files

  • Pokemon_Red_Blue.exe — recompiled native executable (49 MB)
  • SDL2.dll, libgcc_s_seh-1.dll, libstdc++-6.dll, libwinpthread-1.dll — runtime deps (msys2 mingw-w64)
  • README.md — usage notes