ASM Sonic the Fighters - Disassembly

Discussion in 'Engineering & Reverse Engineering' started by biggestsonicfan, Jun 1, 2020.

  1. biggestsonicfan

    biggestsonicfan

    Model2wannaB Tech Member
    1,114
    95
    28
    Formerly Sonic the Fighters
    It's about time I finally released what I have: The Sonic the Fighters Disassembly Repo!

    It's in it's infancy, and there are a few things that should be taken into consideration:
    1. This build is not close to being build-able. Once I am able to compile a valid Model2b binary, I can then begin comparing the binary to the source ROM and made changes accordingly.
    2. To reduce the size of the disassembly, the memory segment of the IDA file has been stripped, however the labels remain. This is why you will see some labels with no references. Bare with me until I figure out a solution for this.
    3. There are errors. Probably lots of them. Things like loc_FFF8+7 should be 0xFFFF, I just haven't fixed them all yet.
    4. I am new to assembly, and do not fully comprehend how to use include or macros yet.
    5. HELP WANTED! I don't know what people can do, submit issues for what you find or even pull requests would be nice though to fix things. Keep in mind I have to make the changes in IDA Pro first, then re-export to an ASM file, so any submitted issues or pull requests will take time to fix.
    I've spent probably close to two years on this now, and recently trying to reassemble the ROM helped fix a lot of things I wasn't aware of. I will try to get this repo 1:1 with the original ROM source, but I can't promise any time frame.

    Enjoy!
     
  2. Lostgame

    Lostgame

    resident geek girl + record label manager Oldbie
    4,047
    2
    18
    Toronto, ON
    The O.I.C.
    Great work. Any progress is progress, thanks for sharing; keep it up.
     
  3. biggestsonicfan

    biggestsonicfan

    Model2wannaB Tech Member
    1,114
    95
    28
    Formerly Sonic the Fighters
    Thank you! I will! I also just this morning successfully assembled and linked a ROM binary from the disassembly and hope to upload instructions soon to the git!
     
  4. biggestsonicfan

    biggestsonicfan

    Model2wannaB Tech Member
    1,114
    95
    28
    Formerly Sonic the Fighters
    Small update, the binary the disassembly now is bit-identical to the binary for the Sonic the Fighters ROM. It's build-able, but you will still need to split the binary in two word-interleaved files to load it into the emulator. I have a tool I made to do that but it needs further polish before release. For now, we can just celebrate the first bit-perfect Model2 disassembly to exist!
     
  5. TheInvisibleSun

    TheInvisibleSun

    OVER THE TOP TECHNO-BLAST Member
    Awesome to finally see a disassembly! How far are we from things like, model imports and whatnot (if this is a ridiculous question, pardon my ignorance)? It'd be kind of fun to see VF Kids models in this game or something like that.
     
  6. biggestsonicfan

    biggestsonicfan

    Model2wannaB Tech Member
    1,114
    95
    28
    Formerly Sonic the Fighters
    Quite a ways away, unfortunately. I am fairly sure the models are baked into the "main data" EPROMs, and it will take quite a bit of research to first understand the model format, more research to translate it into something that can be viewable in a computer space, and then reversing that process. @RyogaMasaki and I plan on taking a close look at how models are drawn in debug mode, but that's a ways off when his schedule clears up. But based on how I see models work and how tightly everything fits together in this game, I would say importing is going to be much further off than exporting models.
     
    • Informative Informative x 2
    • List
  7. biggestsonicfan

    biggestsonicfan

    Model2wannaB Tech Member
    1,114
    95
    28
    Formerly Sonic the Fighters
    A minor update:

    The rom_code1.asm and rom_code1(labels).asm have been merged into rom_code1.asm. The reason they were split were so labels were human readable in rom_code1(labels).asm [eg. "debug_flag], and rom_code1.asm was able to be properly assembled without these labels [eg. 0x508000 instead of "debug_flag"]. But now, by default, there is an "include.S" file that tells the assembler that these labels should have the hex values when assembled. Et, Volia, two become one!
     
  8. Aesculapius Piranha

    Aesculapius Piranha

    つづく Oldbie
    4,257
    25
    28
    Unknown
    Diva
    To me the cool thing about this is more just hey we have an actual look at the work that went into Virtua Fighter games. I mean, in a weird way STF was itself kind of a Sonic Themed fan mod by AM2 that was based on work that went into the VF series. Want to understand the games modern 3D fighters are based off of? Here you go!
     
  9. Lostgame

    Lostgame

    resident geek girl + record label manager Oldbie
    4,047
    2
    18
    Toronto, ON
    The O.I.C.
    Oh, wow; that’s *serious* progress! Awesome!