
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:
| Title | Gameplay |
|---|---|
![]() | ![]() |
Quick start (pre-built release)
- Download
SonicBlastGGRecomp-windows-x64.zipfrom Releases and unzip it (keepSDL2.dllnext to the.exe). - Supply your own legally-obtained Sonic Blast (Game Gear) ROM (
.gg). - 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
| Key | Action |
|---|---|
| Arrow keys | D-pad |
| Z | Button 1 (jump) |
| X | Button 2 |
| Enter | Start |
| Esc | Quit |
ROM
| Field | Value |
|---|---|
| Title | Sonic Blast (Game Gear) |
| Region | World (includes USA) |
| CRC32 | 0x031B9DA9 |
| Size | 1 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
| Path | Purpose |
|---|---|
game.toml | Per-game config: ROM identity, mapper, RAM layout, discovery seeds, jump tables. |
build.ps1 | Regenerate 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.


