BombermanRecomp

BombermanRecomp is a community PC port of Super Bomberman in the Quiver Launcher catalog.

README

BombermanRecomp

Native recompilation of the headerless North American release of Super Bomberman. The pinned snesrecomp engine is included as a Git submodule.

This repository and its releases do not contain the game ROM or generated ROM-derived C sources. You must provide your own legally obtained copy.

Supported ROM

The ROM is never copied into this repository. Both generation and runtime accept only this payload (an optional 512-byte copier header is removed):

  • Size: 524,288 bytes
  • SHA-256: 4efab3f49cbe91ec77b6cba747ddfedfdc0b080c755a8b6ba51234f0676c000f
  • MD5: d83699a009a62480a7e7e9f1bb5bff6e
  • Internal title: SUPER BOMBERMAN
  • Mapping: HiROM

Generate and build

From PowerShell:

git clone --recurse-submodules https://github.com/elliotttate/BombermanRecomp.git
cd BombermanRecomp
python .\scripts\generate.py --rom "D:\path\Super Bomberman (USA).sfc"
.\build.ps1

Source generation requires Python 3 and a Rust toolchain. The Windows host build requires Visual Studio 2022 with the Desktop development with C++ workload. generate.py builds the native analyzer automatically.

This produces:

  • build\BombermanRecomp.exe — interactive Win32 host with video, audio, keyboard input, and SRAM persistence.
  • build\bomberman_headless.exe — deterministic validation host.

Run the desktop build with the ROM path, or omit it to use the file picker:

.\build\BombermanRecomp.exe "D:\path\Super Bomberman (USA).sfc"

Controls: arrows for the D-pad, Z/X for B/Y, S/A for A/X, Q/W for L/R, Enter for Start, Right Shift for Select, and Escape to quit.

Validate

The deterministic host exits nonzero if the screen never becomes visible:

.\build\bomberman_headless.exe `
  "D:\path\Super Bomberman (USA).sfc" 1200 build\frame1200.ppm

Its optional final arguments inject a one-frame controller pulse. This example presses Start ($008) at frame 1200 and runs long enough to enter the game:

.\build\bomberman_headless.exe `
  "D:\path\Super Bomberman (USA).sfc" 2400 build\gameplay.ppm 1200 0x008

The retail ROM is verified again at runtime. The earlier Sample ROM is intentionally rejected.

Set BOMBERMAN_BENCHMARK=1 to include core throughput, frame deadline, and framebuffer-change measurements in headless output. Set BOMBERMAN_BENCHMARK_START to exclude boot/menu frames. The desktop host shows its measured presentation rate in the title bar; setting BOMBERMAN_FPS_STATS=1 prints detailed cadence statistics when it exits. See BENCHMARKS.md for baseline and fixed-pacer results.

The generated C under generated/ is private ROM-derived output and is ignored by Git. Do not redistribute it without permission.

Licensing and trademarks

The bundled snesrecomp engine is distributed under the PolyForm Noncommercial License 1.0.0; see snesrecomp/LICENSE and snesrecomp/THIRD_PARTY_ATTRIBUTION.md. This project is an unofficial fan project and is not affiliated with or endorsed by Hudson Soft, Konami, or Nintendo. Super Bomberman and its assets remain the property of their respective rights holders.

Disassembly symbols

config\bank00.cfg contains 3,304 C-safe labels imported from the retail-US build of LIJI32/superbomberman. Guest labels use an _SB suffix to avoid colliding with host/runtime symbols while retaining SNESRecomp's data-label classification. To recreate the import from an sfcasm symbol map:

python .\tools\import_superbomberman_symbols.py `
  --symbols "C:\path\superbomberman\build\superbomberman.sym" `
  --output .\config\bank00.cfg