Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Digimon Rumble Arena
PORTSNATIVE

Digimon Rumble Arena

NATIVE PORTFIGHTING / COMBATWINDOWSLINUXMACOSALPHA

Digimon Rumble Arena

OriginPlayStation

TechnologyNative C/C++ port (engine reimplementation)

Available forWindows, Linux, macOS

View official project

About the project

Digimon Rumble Arena es un videojuego crossover perteneciente al género de lucha desarrollado y publicado por Bandai en asociación con Hudson Soft para la consola de videojuegos PlayStation. Fue lanzado en Japón el 6 de diciembre de 2001 y en América del Norte el 24 de febrero de 2002. Los jugadores pueden elegir entre un máximo de 24 Digimon de entre los personajes de las épocas de las series de Digimon Adventure y Digimon Tamers, como Terriermon, Agumon, Gatomon, y Renamon.

Official project information

Author's original READMEOpen on GitHub ↗

Digimon Rumble Arena decomp

🇯🇵 Japan (SLPS_033.57)CodeDataFunctions
the whole gameCodeDataFunctions
the executableCodeDataFunctions
the code overlays (A.VFS's /bin/)CodeDataFunctions
🇺🇸 USA (SLUS_014.04)CodeDataFunctions
the whole gameCodeDataFunctions
the executableCodeDataFunctions
the code overlays (A.VFS's /bin/)CodeDataFunctions

Build Platform Compiler License

A work-in-progress matching decompilation of Digimon Rumble Arena for the PlayStation, from its Japanese release, Digimon Tamers: Battle Evolution (デジモンテイマーズ バトルエボリューション): C source that compiles back into a byte-identical copy of the game's executable and code overlays.

This repository does not contain any game data. You need your own copy of the game to build it.

Status

The build gives back the original executable and its 13 code overlays byte for byte, for both the Japanese release (SLPS_033.57, the default) and the USA one (SLUS_014.04, VERSION=us), from the same source. Most of the executable's functions are C already; about a third of the overlays' are, and the rest is still splat's assembly behind INCLUDE_ASM. Decompiling them one by one, keeping the match in both versions, is the work. The progress counts the whole game of each version, executable and overlays, with each part in its own category. Progress is measured by objdiff and tracked on decomp.dev.

<a name="the-executable"></a>

The executable

SLPS_033.57 loads at 0x80010000 and starts at crt0 (0x8003DD74):

AddressWhat
0x80010000.rodata (psylink places it ahead of .text)
0x8001AE18the game's code, main at 0x8001AF68 (src/engine/, by module)
0x8003DD74crt0: the entry point, __main and its constructor loop
0x8003DEE8SN's runtime wrappers and the PsyQ libraries
0x8005EE40.data, with $gp at 0x8006414C
0x800643E0.bss, stored in the file as zeros up to 0x8011C248

Only the game is decompiled. The PsyQ libraries stay splat's disassembly and out of the progress: their code from 0x8003DF10, their rodata from 0x80019F58, their .data from 0x80060F98 and their .bss from 0x801168E8.

The rest of the game, its code overlays (/bin/<name>.bin) included, is in the disc's A.VFS archive; the movies are in A.STR and the sound in A.XAP.

The overlays

The code overlays are A.VFS's /bin/<name>.bin, zlib-compressed in the archive; the build splits and checks them inflated. Each one starts with its .rodata, and has its own splat config (config/<version>/<name>.yaml) and symbols (config/<version>/symbols_<name>.txt); it links against the executable's symbols, and a stage against game.bin's too.

FileLoads atSizeWhatSource
movie.bin0x800643E0 (OVERLAY_MEMORY; USA 0x800643C0)10 KBthe movie player (MDEC, /a.str)src/movie/
title.bin0x800643E0 (USA 0x800643C0)92 KBthe boot logo, title screen and menus: main menu, character and map select, ranking, credits, optionssrc/title/
game.bin0x800643E0 (USA 0x800643C0)445 KBthe battle ("game main process")src/battle/
st00.bin-st09.bin0x800D3820, after game.bin (USA 0x800D3B00)4-27 KBthe battle's stage, which game.bin loads (/bin/st%02d.bin)src/battle/stages/

Building

On Linux (Ubuntu 24.04 or similar):

sudo apt install binutils-mipsel-linux-gnu gcc-mipsel-linux-gnu python3-venv
git clone --recursive https://github.com/ReGame-Labs/dtbe_decomp.git
cd dtbe_decomp
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
tools/dl_deps.sh

Extract the game's files from your disc image into disks/jp:

python3 tools/extract_disc.py "DigimonTamers - Battle Evolution (Japan).bin" disks/jp

The build unpacks A.VFS into assets/jp itself (tools/unpack_vfs.py): the overlays are split from there, and the game's data is there to look at.

Then split the executable and the overlays, build them and check them against the originals:

make generate
make -j$(nproc)
make compare

The USA release (SLUS_014.04) builds the same way, with VERSION=us on every command: its files go in disks/us, and make VERSION=us compare checks it. jp is the default. Both builds share the source; the few functions whose code differs between the releases keep the Japanese code behind #if VERSION_JP.

make report writes objdiff's progress report (build/<version>/report.json), and make objdiff the objdiff.json that objdiff's GUI opens.

make docs writes the source's documentation, build/docs/html/index.html, with doxygen and the doxygen-awesome theme (sudo apt install doxygen graphviz). It takes the code's comments as they are: the comment above a function, a type or a global is its description.

<a name="toolchain"></a>

Toolchain

  • Compiler: GCC 2.95.2 for the PlayStation (cc1, from decompals/old-gcc) at -O2, -G8 for the executable and -G0 for the overlays. Its instruction scheduling is the one the game's code has; 2.7.2 and 2.8.x schedule the loads differently.
  • Assembler: maspsx turns GCC's output into what Sony's aspsx 2.86 would have made, then GNU as assembles it.
  • Splitting: splat (config/<version>/main.yaml).
  • Decompiling: m2c and decomp-permuter are in external/.

Contributing

Pick a function behind INCLUDE_ASM, most of them in the overlays (src/battle/, src/title/), write it as C, and check that make compare and make VERSION=us compare still pass. Only byte-identical matches go in. CONTRIBUTING describes the tools and the rules.

View official project
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Fighting / Combat
Status
alpha
Original platform
PlayStation
Technology
Native C/C++ port (engine reimplementation)
Version
—
Updated
—

Target platforms 3

Windows
Linux
macOS
View on GitHub
Advertisement