Sonic Rush Adventure Decompilation

Discussion in 'Showroom' started by UnmarkedFractal, Jan 30, 2025.

  1. UnmarkedFractal

    UnmarkedFractal Newcomer Trialist

    Joined:
    Oct 6, 2024
    Messages:
    1
    Hello everyone!

    For the last 9-12 months or so I've been working on a decompilation for Sonic Rush Adventure: https://github.com/RushRE/SonicRushAdventure-Decomp

    The game was originally written primarily in C, so all of the tooling should be in place to build a matching nintendo DS rom with the work done already. Like with many existing decompilation projects, the goal is to turn the rom disassembly into a C-based project that compiles into a fully shift-able and matching EU, US & JP rom.

    Overall, I'd say the decompilation is probably just under 50% complete! However, the remaining 50% is likely to be the harder work since the more complex functions & modules will need to be decompiled as opposed to decompiling whatever's available.

    Progress so far
    - most of the game has been documented in a first-pass run-through, so it's easy to roughly understand what belongs where
    - most of the core engine functions have been decompiled & match
    - about 75% of the zone stage logic has been decompiled, with most of that matching.
    - about 40% of the deep core logic has been decompiled, with most of that matching.
    - various other bits of the game have been decompiled, but no substantial progress has been made in those areas beyond an initial start
    - most of the DS library functions have been documented and should be mostly separate from the game logic
    - the repo produces a matching copy of Sonic Rush Adventure (EU)

    What's left to do?
    - decompile the rest of the game's assembly files into C/C++ code
    - match the decompiled game's C functions
    - research & rename remaining un-decompiled functions & variables
    - setup build system to build the ds download play rom. The codebase should be the same, so in theory it's a case of properly researching what's changed and what files are needed to build it!
    - verify and document all differences between EU, US & JP roms and implement those into the codebase via macros. This should be mostly completed as far as I'm aware.
    - ideally, I'd like to have many of the game's file formats converted into more user-friendly variants and "re-built" on compile, but this is a very low priority task.

    Why Sonic Rush Adventure Specifically?
    Simply put, because it's my favorite out of the three rush games on the DS. Though from my initial research, it also appears to have the neatest compilation of the three, which is super useful as a starting point!

    What help is needed?
    Anything really! The ability to decompile & match C (or C++) assembly is most preferred, but people who can research and document any undocumented functionality & logic are also welcome to help out! If you don't think either of those are something you can do, that's okay too! This project is pretty niche as it is, so just spreading the word of it's existence is also a huge help!

    Lastly, I hope this project is exciting to some of you as it is to me! I haven't seen much love given to the rush games, and especially not rush adventure in regards to research, modding or so on, so I hope this project inspires people to take another look at one of my favorite sonic games!