Skip to content

Releases: mstan/TetrisGBRecomp

v0.0.3 — Fixes the wrong-ROM rejection + recomp-ui launcher

Choose a tag to compare

@mstan mstan released this 17 Aug 21:25

Fixes the "Wrong ROM" dialog

If v0.0.2 rejected every ROM you tried — this release is the fix.

v0.0.2 shipped with the wrong expected ROM CRC32 baked into the binary
(0xE1AA58DB, a value no real Tetris dump has), so its launcher rejected
every ROM, including the correct one. If you saw:

ROM CRC32 mismatch! Got: 63F9407D

…your ROM was right the whole time; the build was wrong. 63F9407D is exactly
the ROM this project is recompiled from.

What's new since v0.0.2

  • Correct ROM gate — the binary now expects CRC32 0x63F9407D, matching the
    ROM the code is generated from.
  • recomp-ui launcher — box art card, ROM picker with a live "ROM verified"
    check, controller/keyboard setup, and an in-game overlay on F1 (settings,
    video, input). "Skip launcher on boot" if you'd rather go straight to the game.
  • Zero interpreter fallbacks — 64 runtime-harvested, provably-executed entry
    seeds (Tier-0 manifest) are now compiled in; a 900-frame run logs no
    interpreter dispatches.
  • Complete runtime DLL set — including libEGL.dll, which the previous
    packaging convention would have missed (SDL/ANGLE loads it dynamically, so it
    never shows up in ldd). Extract the whole zip and keep assets/ next to the
    exe.

ROM identity

This build accepts exactly one ROM:

Field Value
CRC32 0x63F9407D
SHA-1 3f2a6407c9900ad5817ee1cfb3609c5ee17400fc
Size 32,768 bytes
Header title / version TETRIS, mask-ROM version 0x00 (V1.0)

Common dump names: Tetris (World) / Tetris (W) (V1.0) [!].gb.

The V1.1 revision (Tetris (JUE) (V1.1) [!], CRC32 0x46DF91AD) is a
different program image and is not supported — the recompiled code comes
from V1.0.

No ROM data is embedded. Bring your own legally obtained Tetris ROM.

Requirements

  • Windows 10/11 x64
  • Extract the whole archive; Tetris.exe needs assets/ and the bundled DLLs
    beside it.

v0.0.2 — External ROM + game_extras CRC hooks

Choose a tag to compare

@mstan mstan released this 07 May 04:47

Changes since v0.0.1

This release rebases on the upstream-merged gb-recompiled fork (commit 2f4f80c) and re-introduces the external ROM + CRC32 picker pattern that v0.0.1 had, this time wired through NES-style game_extras hooks.

What's new

  • ROM is no longer embedded in the binary. The launcher resolves the ROM path on first run via Windows file picker, caches it in rom.cfg, and validates against the CRC32 returned by game_get_expected_crc32() in extras.c.
  • extras.c now lives in the project root and overrides only the CRC defaults; non-CRC game_* hooks (lifecycle, debug, dispatch) keep their gbrt defaults.
  • Tetris ROM expected CRC32: 0xE1AA58DB.
  • Submodule gb-recompiled replaced with a directory junction to a workspace-shared clone — faster dev iteration, no SHA pinning.

Compatibility

  • Tetris (Japan) / Tetris (World), the canonical CRC32 0xE1AA58DB.
  • All other ROM variants are rejected with a "Wrong ROM" dialog.

Requirements

  • Windows 10/11 x64
  • A legally obtained Tetris ROM (.gb)

Known

Same minor visual/audio quirks as the underlying gb-recompiled master — Tetris remains essentially fully playable.

Files

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

v0.0.1

Choose a tag to compare

@mstan mstan released this 01 Apr 01:39

Initial release — Tetris (Game Boy) static recompilation.

Status: Believed to be 100% playable. All game modes tested with zero interpreter fallbacks.

Features:

  • Configurable keybinds (keybinds.ini, auto-generated on first run)
  • ROM file picker with CRC32 verification (path cached in rom.cfg)
  • No ROM data embedded — bring your own tetris.gb