This recompilation is a byproduct of developing psxrecomp — the games are the proving ground, the framework is the goal. These are in-development previews, not finished ports — expect rough edges, and depth will keep landing over months, not days. My time for any one title is limited, so I ask for your patience. Contributions are welcome — testing, issues, and PRs to the game or framework all help and will accelerate this game's polish. More on the why at: Recomp + AI: 5 Months Later »
Static recompilation of Tomba! 2 - The Evil Swine Return (USA) (serial SCUS-94454) to native code, built on the shared psxrecomp framework — the same toolchain that powers TombaRecomp, ApeEscapeRecomp and MegaManX6Recomp.
Scaffolded 2026-06-21. Boot EXE extracted, headerless Ghidra dump prepared,
game.toml / CMakeLists.txt mirror the Ape Escape minimal template. First
build/boot bring-up in progress.
Release builds include the MIT-licensed OpenBIOS from PCSX-Redux. No external BIOS is required: select your legally obtained Tomba! 2 disc image in the launcher and press Launch. The optional BIOS row accepts the exact supported retail dump; clear it to return to bundled OpenBIOS.
Tomba 2's widescreen, temporal-frame-blending, Skip FMVs, and Debug Menu mods live on the launcher's Mods page. They are disabled by default, leaving the authentic 4:3/non-interpolated presentation with real-time movies and stock guest code as the baseline.
tomba2/— disc image (bin/cue), extracted boot EXESCUS_944.54,SYSTEM.CNF. Local only (gitignored).ghidra/— headerless dump + import notes (instructions.txt).seeds/— function-start seeds for the recompiler.generated/— recompiler output C (regenerated locally, gitignored).psxrecomp-v4— junction to a psxrecomp worktree (the shared framework).game.toml— game identity, recompiler + runtime config.
# regenerate game C (master-flavor recompiler):
../psxrecomp/recompiler/build/psxrecomp-game.exe --config game.toml
# configure + build the runtime:
cmake -S . -B build-master -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=C:/msys64/mingw64/bin/gcc.exe \
-DCMAKE_CXX_COMPILER=C:/msys64/mingw64/bin/g++.exe \
-DPSX_DEBUG_TOOLS=ON
cmake --build build-master --target psx-runtime -j 16SDL3 is the default host backend. To build the explicit SDL2 compatibility
fallback, add -DPSX_SDL_BACKEND=SDL2 to the configure command above. CMake
prints the selected backend and never silently changes it.
The boot EXE is a small loader; the bulk of the game streams from disc as code overlays at runtime (same architecture as Tomba! 1).
Enable Tomba 2 Widescreen on the Mods page and select 16:9, 21:9, or Adaptive. Adaptive follows the live window or fullscreen aspect from 4:3 up to 21:9. Resizing wider reveals more of the world instead of stretching a fixed image; BIOS, FMVs, menus, and other true-2D screens remain pillarboxed at their authored 4:3 aspect.
Tomba 2 Frame Blending combines completed display images at a fixed target or the measured display refresh while guest simulation, input, timers, and audio keep their original cadence. It uses Ape Escape's motion-adaptive clarity blend to suppress crossfades on large pixel changes, reducing double-image trails. This is temporal blending, not motion-vector frame generation.
Skip FMVs mutes and rapidly advances streamed XA/MDEC movies plus the silent, RAM-preloaded Whoopee Camp logo. The game still runs its normal movie completion and teardown path.
Debug Menu (Experimental) opens Tomba 2's in-game developer menu with L3 during gameplay. It can warp areas, move Tomba out of bounds, grant items, and edit event flags, so use a separate memory card for testing.
This repository contains no Tomba! 2 game assets or disc data. Release packages
include OpenBIOS under the MIT notice in bios/OpenBIOS.LICENSE; they contain
no retail PlayStation BIOS.
R.A.I.D. — Retro AI Development · a Discord for AI-assisted retro reverse-engineering, decomp & recomp
