don't click here

Sonic CD 510 Disassembly

Discussion in 'Engineering & Reverse Engineering' started by SegaLoco, Dec 22, 2010.

Thread Status:
Not open for further replies.
  1. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Anyone here really good with Sega CD. And I mean REALLY good? Well, would you like to commit to a community disassembly of Sonic CD 510? I'm already well into the boot sector or whatever (the data before the binary file data starts) and I'm having a bit of trouble figuring it out, but if anyone wants to grab just one file from the ISO and disassemble it, we can work this out in no time. I'll also upload what I have disassembled of the entirety of the ISO for anyone to work on as they see fit. Once we get this thing considerably disassembled, perhaps a new svn entry could be setup for this disassembly to offer a bit of control to who is contributing what, and to keep tabs on what needs to be done and what is already done. One thing you'll need if you aren't a SegaCD guru is the set of Rex Sabio SegaCD manuals. I won't tell you how to find these<a href="http://megadrive.org/~elbarto/md/Docs/Official%20Sega%20CD%20Manual/" target="_blank">,</a> but I bet you could. ;) Anyway, without further rambling, here is the IDA database (It's IDA 4.3, not sure if it's compatible with newer versions, if not, Data Rescue is retarded and I'll see what I can do)

    IDA Database: http://www.mediafire.com/?9f9gm5qdr7s5bb5

    Thanks and good luck ;)

    Edit: Also, if you choose a file, post that you'll do it, we don't need 50 people doing ATTACK.BIN :P
     
  2. Bgvanbur

    Bgvanbur

    Tech Member
    128
    1
    0
    USA
    a disassembly, some small Sega CD projects
    I previously did a disassembly of the IP, SP, and part of the SPX___.BIN. I have uploaded them to MediaFire link. The IP.ASM is the initial main CPU code. The SP.ASM/SP2.BIN/SCD.INC is the initial sub CPU code. The SPX__.ASM is my unfinished effort on the SPX___.BIN file that extends the SP. Hopefully this helps you some on the initial boot code.

    I probably won't contribute much to this effort since I dislike IDA.
     
  3. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Thank you so much. Now riddle me this, is this Sonic CD final or the 510 like I'm doing. (It can still help if it's final, but I'm just curious)
     
  4. Bgvanbur

    Bgvanbur

    Tech Member
    128
    1
    0
    USA
    a disassembly, some small Sega CD projects
    I am pretty sure it is the final version.
     
  5. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Here's the Initial Program code completely disassembled and ready for reassembly. It assembles 1:1 with the original, I checked ;)

    http://www.mediafire.com/?mdy3xbi10oo4ecb

    It seems to setup some system-wide exception defaults and setup the MMD loader code.

    Edit: Also, to anyone not so Mega CD savvy, this portion of code runs on the MainCPU map. The SP, which I hope to upload by the end of today, runs on the SubCPU.
     
  6. Bgvanbur

    Bgvanbur

    Tech Member
    128
    1
    0
    USA
    a disassembly, some small Sega CD projects
    The ip.asm and mainos.asm look good. Though, why can't ip.asm include mainos.asm (after removing one of the MainOS labels) instead of the incbin mainos.bin?

    And I was wondering for a bit now, why are you disassembling the 510 version rather than the final version?
     
  7. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    I'm disassembling the 510 version because, as a prototype, it may have interesting stuff hiding in it. As for the incbining, I'm going to do that until I can figure out how to get all the org and rorg tags to play nice with each other.

    Edit: Now featuring SP code :D (Not fully commented, but I'm still working on that, also, doesn't build 1:1 due to the whole 0(ax) to (ax) thing, but it's a start)

    http://www.mediafire.com/?8f79h7bo072ikgs
     
  8. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    Hows the search coming along?
    Hoping to see something new hidden in there.
     
  9. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Well, to report a find I didn't mention I guess, the SP code mentions two files DISP0_.MMD and DISP1_.MMD which I can't find anywhere in the ISO. They're intermingled into the level loader table after a long set of references to R11A__.MMD and right before R31A__.MMD (R2..probably not :P) but interesting nonetheless. I'm afraid that is all I can find related to that though..unless the data is present in the ISO and just not in the ISO header (I.e. unlisted like the IP and SP) If that is the case, then... I dunno... :p
     
  10. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    aww. so its like a dead end than .
     
  11. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Yup, just tested changing that pointer to either DISP reference, just crashes both CPUs. Whatever these files were, they were present in the internal code, but I guess left out of this build (as it was for magazines and such). Whatever they were, Sega left the text alone for whatever, reason, probably because they had no reason to remove it if it would never be reached. My guess is that they were test screens for good and bad ending, like, say you got good ending, then DISP0_.MMD would just flash up a screen saying "You got the Good Ending" and likewise with the bad ending, hence why they aren't present in a proto like 712 in which the final videos are implemented. Who knows though, we won't until another proto surfaces...hopefully...
     
  12. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    I read over on Assembler, about a new proto with 2 new zones , (last year)
    wonder if it was the real deal.

    Since I'm planing on Sonic CD remix as my next project it'd be very interesting to include anything new.
     
  13. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    As far as I know that is remaining a secret for now...
     
  14. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    ya I probably shouldn't have said anything about that hahah
     
  15. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Update :D

    So I decided to poke around in IPX___.MMD and wow, it has all the level loading code and I could essentially revert Sonic CD 510 to its internal state (all levels loading sequentially, no Comin' Soon after TTZ) except there are level load hooks for DISP0_.MMD and DISP1_.MMD (obviously they must've been level-like data as they are thrown in with level loading in every instance that I see them). As for R2, chances are looking slimmer and slimmer, all the level load tables and whatnot don't even have space for a probable R2, only space for those DISP files. Once I am done disassembling IPX I will upload that along with an ISO with full gameplay enabled (except special stages from the big ring, I'm still figuring out exactly what needs to be done to get that working). Stay tuned!
     
  16. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    Hey thats great news even without R2.
    any new graphics hidden in there?
     
  17. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Nothing yet, I'm not picking apart levels atm, but system code. IPX basically gets loaded on top of the IP. The IP only serves to tell the SP to load the IPX...kinda redundant right xD

    Edit: Update, here is the build package with IPX and mmdmerge included :D <a href="http://segaloco.com/!crap/retro/CD510.zip" target="_blank">http://segaloco.com/!crap/retro/CD510.zip</a>
     
  18. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Bumping with good reason: <a href="http://www.segaloco.com/!crap/retro/soncd.7z" target="_blank">http://www.segaloco.com/!crap/retro/soncd.7z</a>

    This is an iso using a modified IPX___.MMD which allows all levels to be loaded (just like a regular game). I'd say you can play all the way through... but, it's hard without debug mode :P Stay tuned for more, along with a version of mmdmerge that ACTUALLY WORKS
     
  19. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    Hey ! Nice work, going to have to burn it right away, and see whats going on.
     
  20. Andrew75

    Andrew75

    Technical Artist Member
    2,030
    107
    43
    Project AXSX(Sonic Xtreme) + Misc Projects
    Been awhile since I played Stardust Speedway, so I'm not sure if I found something new or not.

    But I think I found a new Enemy attack.
    The ball of light ruberbands back and forth, (left and right of enemy), rapidly pulsating, as the enemy sits still in the center.
    this goes on for a few seconds, than the light returns to the enemy's center.

    Something else that I noticed is that lightning flashes out of control, in the background, unlike in the final.

    I may make an animated file to go along with this pic.
    [​IMG]
     
Thread Status:
Not open for further replies.