PORTCLUB
Cabecera de Sonic Blast
Port nativo

Sonic Blast

Port nativo de Sonic Blast para PC.

Sonic Blast

Port nativo basado en su ficha de origen.

README del repositorio

SonicBlastGGRecomp

Static recompilation of Sonic Blast (Sega Game Gear, 1996) into native C, using the smsggrecomp framework. This repo is the per-game side: the game.toml, the build glue, and a pre-built release. The ROM and the generated C are not here — you supply your own legally-dumped ROM and regenerate locally.

What "static recompilation" means here

The game's Z80 machine code is translated ahead of time into C and compiled to a native binary — it is not interpreted at runtime. The rest of the Game Gear (VDP with the GG palette/viewport, SN76489 stereo sound, controller/system ports, the Sega mapper) is modeled by the smsggrecomp runtime. Computed jumps the static analysis can't resolve fall back to a bundled Z80 interpreter over the live bus. You supply your own legally-dumped copy of the ROM; it is never redistributed here.

Status

v0.0.4 — assisted coverage pre-release. The assisted survey covers all 15 acts for both Sonic and Knuckles through the original round and character loaders. The ROM-verified profile runs all 30 cases with zero fallback. Live-bank dispatch fixes the large native scene differences found during the survey. One single-frame ring-icon capture differs during a sprite upload; the reports preserve that limitation. These are assisted scene tests; full unassisted gameplay remains unverified. See coverage details and reproducible routes.

Screenshots

Recompiled native build (no emulator), captured running the .gg ROM:

TitleGameplay
Sonic Blast title screenSonic Blast gameplay

Quick start (pre-built release)

  1. Download SonicBlastGGRecomp-windows-x64.zip from Releases and unzip it (keep SDL2.dll next to the .exe).
  2. Supply your own legally-obtained Sonic Blast (Game Gear) ROM (.gg).
  3. Run it with your ROM:
    SonicBlastGGRecomp.exe path\to\sonicblast.gg --window 4
    

For faithful 16x internal resolution, add --internal-scale 16, or drag your ROM onto Play 16x.cmd in the release ZIP. Tile artwork stays sharp with no smoothing or invented detail. Play.cmd uses the normal native-resolution display. Both run with normal audio. An unsupported GPU falls back to native output.

Controls

KeyAction
Arrow keysD-pad
ZButton 1 (jump)
XButton 2
EnterStart
EscQuit

ROM

FieldValue
TitleSonic Blast (Game Gear)
RegionWorld (includes USA)
CRC320x031B9DA9
Size1 MB

The ROM is never redistributed — supply your own legally-dumped copy.

Building from source

Initialize recursive submodules and install native Windows CMake, Ninja, GCC and SDL2 (the helper defaults to MSYS2 C:\msys64\mingw64). The shared build graph builds the recompiler and regenerates the native C from your own ROM:

git submodule update --init --recursive
powershell -File build.ps1 -Rom 'path\to\sonicblast.gg'
.\build\SonicBlastGGRecomp.exe 'path\to\sonicblast.gg' --window 3

-Build accepts an absolute directory; invoking the script from another directory still builds this project. -Framework selects an alternate engine checkout. -SkipRegenerate requires compatible generated sources already on disk. Generated C and ROMs are ignored and are not distributed.

For a deterministic coverage run:

python smsggrecomp/tools/run_coverage_suite.py --runtime build/SonicBlastGGRecomp.exe --rom path/to/sonicblast.gg --suite tests/coverage/suite.json --out coverage-new

Repo layout

PathPurpose
game.tomlPer-game config: ROM identity, mapper, RAM layout, discovery seeds, jump tables.
build.ps1Regenerate from your ROM + build the windowed exe.
smsggrecomp/Pinned engine submodule used to build the game.
generated/Recompiler output (gitignored; regenerated from your ROM).

License

Not yet declared. Code in this repo is original. The Sonic Blast ROM and any data derived from it are not in this repo and are not licensed for redistribution.


Comentarios (0)

Inicia sesión para dejar un comentario.

Sé el primero en comentar sobre este juego.