Sonic R Hacking

Discussion in 'Engineering & Reverse Engineering' started by MainMemory, Dec 1, 2009.

  1. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    So, I decided to mess around with Sonic R after Polygon Jim told me that the controls work if you run it from IDA.

    Make it stop crashing on fast systems:
    Code (Text):
    1. 00070584 - 2e ff 15 8c 05 95 00    - call cs:[0095058c]
    2.  
    3. 000705A0 - 2e ff 15 8c 05 95 00    - call cs:[0095058c]
    4. ----------------------------------------------------------
    5. 00070584 - b8 31 00 00 00            - mov eax,00000031
    6. 00070589 - 90                        - nop
    7. 0007058A - 90                        - nop
    8.  
    9. 000705A0 - b8 01 00 00 00            - mov eax,00000001
    10. 000705A5 - 90                        - nop
    11. 000705A6 - 90                        - nop
    Original on top, fix on bottom. Thanks to soundspark on YouTube.

    Save File Format (INCOMPLETE):
    Code (Text):
    1. 04 - Resort Island
    2. 08 - Radical City
    3. 0C - Reactive Factory
    4. 10 - Regal Ruin
    5. 14 - Radiant Emerald
    6. 18 - Sonic
    7. 1C - Tails
    8. 20 - Knuckles
    9. 24 - Amy Rose
    10. 28 - Dr. Robotnik
    11. 2C - Metal Sonic
    12. 30 - Tails Doll
    13. 34 - Metal Knuckles
    14. 38 - Eggrobo
    15. 3C - Super Sonic
    16. 40 - Blue Emerald
    17. 44 - Green Emerald
    18. 48 - Purple Emerald
    19. 4C - Yellow Emerald
    20. 50 - Orange Emerald
    21. 54 - Red Emerald
    22. 58 - White Emerald
    23. Stage:
    24. 0=Locked
    25. 1=Unlocked
    26. 2=First Place
    27. Character:
    28. 0=Hidden
    29. 1=Locked
    30. 2=Unlocked
    31. Emerald:
    32. 0=Not Collected
    33. 1=???
    34. 2=Collected
    Thanks to saxman's save editor.

    I replaced ai\aistuffr.bin with ai\aistuffi.bin, and the CPUs in Regal Ruin were running around like idiots.

    I replaced city\city_b.bin with emerald\emrald_b.bin, and this happened:
    [​IMG]
    It's using Radical City's textures, floor and solidity, but Radiant Emerald's model and object layout (including the start/finish line).

    The biggest problem with this game is that I would need a second computer to do any RAM hacking, and you need to run it through IDA. :(
    Unless there's a way to force it into a window?
     
  2. Jeztac

    Jeztac

    Member
    100
    0
    0
    Sonic R-DX
    You can use this to run it in a forced windowed mode: <a href="http://www.filefront.com/5335168/DXWND---MS/" target="_blank">http://www.filefront.com/5335168/DXWND---MS/</a>

    Has issues if you use Intel GMA though.
     
  3. Spanner

    Spanner

    The Tool Member
    3,235
    21
    18
    United Kingdom
    Sonic Hacking Contest
    You might be able to circumvent the fullscreen issue by attaching a second monitor to your computer and setting it to act as a seperate screen. I'm unsure if that'll help you though.
     
  4. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    <!--quoteo(post=379832:date=Dec 1 2009, 04:44 PM:name=Jeztac)--><div class='quotetop'>QUOTE (Jeztac @ Dec 1 2009, 04:44 PM) <a href="index.php?act=findpost&pid=379832"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->You can use this to run it in a forced windowed mode: <a href="http://www.filefront.com/5335168/DXWND---MS/" target="_blank">http://www.filefront.com/5335168/DXWND---MS/</a>

    Has issues if you use Intel GMA though.<!--QuoteEnd--></div><!--QuoteEEnd-->
    No you can't. Cheat Engine's DirectX-mess doesn't work either, and I think it's because it doesn't start D3D until you select it in the menu.
     
  5. Jeztac

    Jeztac

    Member
    100
    0
    0
    Sonic R-DX
    What exactly didn't work when you tried it? I've used it with no issues, though in DirectDraw mode.
     
  6. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    <!--quoteo(post=379846:date=Dec 1 2009, 05:02 PM:name=Jeztac)--><div class='quotetop'>QUOTE (Jeztac @ Dec 1 2009, 05:02 PM) <a href="index.php?act=findpost&pid=379846"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->What exactly didn't work when you tried it? I've used it with no issues, though in DirectDraw mode.<!--QuoteEnd--></div><!--QuoteEEnd-->
    It still runs in fullscreen mode, in either setting. Also, I think it crashes Internet Explorer?

    Edit: Also, every other time, Sonic R refuses to start, leaving me with a black screen. I have to Ctrl+Alt+Del and kill IDA.
     
  7. Heh, not a bad idea! Hacking Sonic R should be pretty interesting if it can be pulled off. Here's a question though, are you guys trying to do this through the PC version or an emulated Saturn rom of the game?
     
  8. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    <!--quoteo(post=379886:date=Dec 1 2009, 06:15 PM:name=Authur)--><div class='quotetop'>QUOTE (Authur @ Dec 1 2009, 06:15 PM) <a href="index.php?act=findpost&pid=379886"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Heh, not a bad idea! Hacking Sonic R should be pretty interesting if it can be pulled off. Here's a question though, are you guys trying to do this through the PC version or an emulated Saturn rom of the game?<!--QuoteEnd--></div><!--QuoteEEnd-->
    PC.

    Edit: <a href="http://info.sonicretro.org/SCHG:Sonic R PC" target="_blank" style="background: url(http://info.sonicretro.org/images/5/50/Reticon.png) right no-repeat; padding-right: 20px; border-bottom: 1px dotted #3366BB; color: #3366BB; cursor:pointer; text-decoration:none;" class="wiki">SCHG:Sonic R PC</a>
     
  9. Ice God

    Ice God

    Earthbound Fanboy Misfit
    I was talking to Jimmy while he did all of this over skype before you. Credit him where it's due.
     
  10. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    <!--quoteo(post=379915:date=Dec 1 2009, 06:51 PM:name=Ice God)--><div class='quotetop'>QUOTE (Ice God @ Dec 1 2009, 06:51 PM) <a href="index.php?act=findpost&pid=379915"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->I was talking to Jimmy while he did all of this over skype before you. Credit him where it's due.<!--QuoteEnd--></div><!--QuoteEEnd-->
    What? I said that he told me it worked with IDA.
     
  11. Polygon Jim

    Polygon Jim

    Eternal Tech Member
    0
    0
    0
    across town from Hinchy
    All the bitches.
    <!--quoteo(post=379916:date=Dec 1 2009, 07:53 PM:name=MainMemory)--><div class='quotetop'>QUOTE (MainMemory @ Dec 1 2009, 07:53 PM) <a href="index.php?act=findpost&pid=379916"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--quoteo(post=379915:date=Dec 1 2009, 06:51 PM:name=Ice God)--><div class='quotetop'>QUOTE (Ice God @ Dec 1 2009, 06:51 PM) <a href="index.php?act=findpost&pid=379915"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->I was talking to Jimmy while he did all of this over skype before you. Credit him where it's due.<!--QuoteEnd--></div><!--QuoteEEnd-->
    What? I said that he told me it worked with IDA.
    <!--QuoteEnd--></div><!--QuoteEEnd-->


    Yeah, but I already was working on the savegame, and already messing around with models.
     
  12. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    How am I supposed to know that? I did this myself.
     
  13. Tweaker

    Tweaker

    Misfit
    12,389
    0
    0
    Unless he was stealing info from you—and from the looks of things, he didn't—there's nothing wrong with him posting his own findings. If you want to be first, then post before him—simple as that.
     
  14. Skeledroid

    Skeledroid

    Member
    227
    0
    0
    I've always thought Sonic R should be hacked to make a full fledge 3D Sonic game. This would be a lot cooler if you hacked the Saturn version for the sake of having a 3D Sonic game on it.
     
  15. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    And if you don't want me to hack something, don't talk to me about it. You got me interested.
     
  16. Polygon Jim

    Polygon Jim

    Eternal Tech Member
    0
    0
    0
    across town from Hinchy
    All the bitches.
    <!--quoteo(post=379923:date=Dec 1 2009, 07:55 PM:name=Tweaker)--><div class='quotetop'>QUOTE (Tweaker @ Dec 1 2009, 07:55 PM) <a href="index.php?act=findpost&pid=379923"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Unless he was stealing info from you—and from the looks of things, he didn't—there's nothing wrong with him posting his own findings. If you want to be first, then post before him—simple as that.<!--QuoteEnd--></div><!--QuoteEEnd-->


    Yeah I know, I'm just slightly pissed off I stayed up all night doing all of this, and then he goes and does it too. It's nice to have more than 1 person hacking something, but it's a bit counterproductive when they don't communicate. I have him added on yahoo messenger, and he can message me, so I think he should have at least asked if I was working on any of this already.
     
  17. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,313
    16
    18
    SonLVL
    <!--quoteo(post=379928:date=Dec 1 2009, 07:04 PM:name=Polygon Jim)--><div class='quotetop'>QUOTE (Polygon Jim @ Dec 1 2009, 07:04 PM) <a href="index.php?act=findpost&pid=379928"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec--><!--quoteo(post=379923:date=Dec 1 2009, 07:55 PM:name=Tweaker)--><div class='quotetop'>QUOTE (Tweaker @ Dec 1 2009, 07:55 PM) <a href="index.php?act=findpost&pid=379923"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Unless he was stealing info from you—and from the looks of things, he didn't—there's nothing wrong with him posting his own findings. If you want to be first, then post before him—simple as that.<!--QuoteEnd--></div><!--QuoteEEnd-->


    Yeah I know, I'm just slightly pissed off I stayed up all night doing all of this, and then he goes and does it too. It's nice to have more than 1 person hacking something, but it's a bit counterproductive when they don't communicate. I have him added on yahoo messenger, and he can message me, so I think he should have at least asked if I was working on any of this already.
    <!--QuoteEnd--></div><!--QuoteEEnd-->
    Yeah, probably.

    I'm looking into sonicr.inf now.

    Edit: I'm probably not going to do much with the files that don't change.
     
  18. Aquaslash

    Aquaslash

    Emerald Dragoon Moderator
    2,818
    0
    16
    Hampton, VA
    The S Factor: Sonia and Silver
    Ok people, less of the dick waving, more more of the hacking please.
     
  19. Polygon Jim

    Polygon Jim

    Eternal Tech Member
    0
    0
    0
    across town from Hinchy
    All the bitches.
    <!--quoteo(post=379933:date=Dec 1 2009, 08:24 PM:name=Aquaslash)--><div class='quotetop'>QUOTE (Aquaslash @ Dec 1 2009, 08:24 PM) <a href="index.php?act=findpost&pid=379933"><img src="public/style_images/retro/snapback.png"></a></div><div class='quotemain'><!--quotec-->Ok people, less of the dick waving, more more of the hacking please.<!--QuoteEnd--></div><!--QuoteEEnd-->


    Ok.
    <img src="http://i45.tinypic.com/nlaqtu.png" border="0" class="linked-image" />
    <img src="http://i46.tinypic.com/mm8w11.png" border="0" class="linked-image" />


    Figuring out the vertex's for the model format.
     
  20. Afti

    Afti

    ORIGINAL MACHINE Member
    3,521
    0
    0
    Are level models stored in a similar format, or a completely different one?