My (Incomplete) Chaotix Disassembly

Discussion in 'Showroom' started by Devon, Jul 25, 2024.

  1. Devon

    Devon La mer va embrassé moi et délivré moi lakay. Member

    Joined:
    Aug 26, 2013
    Messages:
    1,432
    Location:
    your mom
    Since I'm not gonna be able to work on this much anymore, I decided to just go ahead and release my Chaotix disassembly as is. Just wanna stress that this is extremely incomplete, but I can at least say that I believe all of the 68000/Z80 side is properly disassembled, builds bit-perfect, and can be modified to your hearts content without issue. Music and SFX are also in smps2asm format. The only buildable SH-2 code here is the PWM driver (disclaimer, it does get manually patched to put in the pointer to the PWM sample table, and unfortunately, it's fixed in place as is. Proper integration would be best done with a linker, and PSYLINK is the one compatible with ASM68K and ASMSH), while the rest is in an IDB file for IDA Pro (I have version 7.7). As for how the 68000 side is mapped out, Chaotix fixes the switchable bank (mapped at 0x900000-0x9FFFFF) is at bank 2 (0x200000-0x2FFFFF in the ROM file), so the disassembly has a fairly simple setup for laying it all out around that.

    Hopefully someone finds use in it and perhaps even continue where I left off. If needed, I have this thread that describes how the (non-special stage) graphics are handled in pretty good detail.

    Also, while it may seem there's no checksum check, that's because it's handled by the 32X master SH-2 boot ROM, so keep that in mind.

    GitHub Repository
     
    Last edited: Aug 8, 2024
  2. GenesisDoes

    GenesisDoes What Nintendont Member

    Joined:
    Jan 2, 2016
    Messages:
    161
    Location:
    Pittsburgh, PA
    Sweet, should really help open the doors for Chaotix ROM hacking and research.

    Any interesting assets or unused code functionality that was unearthed? I know I've seen a lot of unused code after rts opcodes, dummied out pointers in jump tables during my own research and disassembly of the game
     
  3. Devon

    Devon La mer va embrassé moi et délivré moi lakay. Member

    Joined:
    Aug 26, 2013
    Messages:
    1,432
    Location:
    your mom
  4. Devon

    Devon La mer va embrassé moi et délivré moi lakay. Member

    Joined:
    Aug 26, 2013
    Messages:
    1,432
    Location:
    your mom
    Update: I cleaned up the RAM variable definitions, so now there isn't several thousand lines. PWM sample table has also been cleaned up and the actual sample data split into their own files. Sound banks are also in their own files, and I also turned the 32X data blobs into ASM files, with additional SH-2 program patches to point to them. Each sprite set has also been converted into singular ASM files, as opposed to every single frame split into their own binary files. Alternatively, I have set up a GitHub repository, if you prefer to look at it over there, instead.
     
    Last edited: Aug 8, 2024
  5. Devon

    Devon La mer va embrassé moi et délivré moi lakay. Member

    Joined:
    Aug 26, 2013
    Messages:
    1,432
    Location:
    your mom
    Another update: I disassembled the sound driver. I haven't extracted the actual music and SFX data from the sound banks, but the driver code is buildable, with vibrato (modulation) and volume envelopes available for viewing/modification, alongside index tables for music and SFX. It's a start.
     
    Last edited: Aug 6, 2024
  6. Devon

    Devon La mer va embrassé moi et délivré moi lakay. Member

    Joined:
    Aug 26, 2013
    Messages:
    1,432
    Location:
    your mom
    Pushed a new update: all music and SFX have been converted to smps2asm format.