Sonic 2 iPhone Dicking

Discussion in 'General Sonic Discussion' started by n00neimp0rtant, Apr 20, 2010.

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

    n00neimp0rtant

    EYES ONLY Member
    262
    0
    0
    South Park, PA
    Creation Kit (Skyrim mods and patches)
    So apparently Sonic 2 for iPhone is the pretty much the exact same piece of code as Sonic 1, only with a different ROM file. I decided to go play with the files and see what I could find.

    <a href="http://img442.imageshack.us/I/screenshot20100419at531.png/" target="_blank">[​IMG]</a>

    There's a few interesting files in there, such as "cheat_menu.state," and you can also see the other state files the app uses to manipulate the ROM, "new_game.state" and "title_screen.state"

    I replaced "new_game.state" with "cheat_menu.state" and as you might guess, it loads up the level select screen. I'm not sure how one is supposed to access this, considering both the 2P and options menus are disabled by default. "title_screen.state" is only accessed whenever you choose the exit button in the pause menu.

    I tried swapping out some of the .nib files (interface builder), hoping that I could replace the awkward title screen's "Touch Screen" so it would just start right with the emulated controls to maybe allow more games to be played through this emulator, but they all just cause the game to crash. I tried swapping in a different Genesis ROM, Streets of Rage 2 and only got a red screen.

    Sonic 2 Long Version is perfectly playable. Just rename it to rom.bin and swap it out with the one already in there. The act level (up until you get a special stage) has severe palette issues (and a missing ring monitor?), obviously since the emulator is loading a state that is for a different ROM file, but these issues get resolved when the game loads up another level. This can also be fixed by swapping in this savestate I made. You start out with one less life, but hey, we're big kids here, right? <a href="http://cl.ly/LOp" target="_blank">Download</a>

    You don't need a jailbroken (hacked) iPhone or iPod touch to play around with these files, just download iPhoneBrowser, go into your Applications folder, and there will be a bunch of very messy folder names.
    <a href="http://img69.imageshack.us/I/screenshot20100419at630.png/" target="_blank">[​IMG]</a>
    Unfortunately, if you don't have a jailbroken iPhone/iPod touch, you'll have to sift through each folder to find the one that has the Sonic2.app folder in it. Once you find it, all of these savestates will be in that Sonic2.app folder; your own saved game will be located in the "Documents" folder in the same hierarchy level as the Sonic2.app one (not IN the folder; ALONGSIDE it)

    <a href="http://img709.imageshack.us/I/img0479.png/" target="_blank">[​IMG]</a>
     
  2. evilhamwizard

    evilhamwizard

    Researcher
    1,358
    311
    63
    I looked at the rom, and it's different in some way in comparison to the normal REV01 rom that's dumped.

    There's some code at the end of the rom that isn't in the version that we have. Can anyone guess as to what it might be? There are other differences in the rom besides this, but this is the only insertion.

    <a href="http://i39.tinypic.com/2r73pjq.png" target="_blank">http://i39.tinypic.com/2r73pjq.png</a>

    The rom itself works fine in Kega Fusion. It'll correct the checksum before it runs, making it playable - and it doesn't seem out of the ordinary while I'm playing it...
     
  3. MarzSyndrome

    MarzSyndrome

    Everything is going to the beat. Member
    I'm frankly surprised that a "rom.bin" even exists in that package. I assumed Sega were going to encrypt the shit out of it like they did with the other Mega Drive ports, as well as a later revision of the Sonic 1 app.
     
  4. Andlabs

    Andlabs

    「いっきまーす」 Wiki Sysop
    2,175
    0
    0
    Writing my own MD/Genesis sound driver :D
    Code (Text):
    1. $ xd -c idiot_savant.bin
    2. 0000000&nbsp;&nbsp; C&nbsp;&nbsp;r&nbsp;&nbsp;a&nbsp;&nbsp;c&nbsp;&nbsp;k&nbsp;&nbsp;e&nbsp;&nbsp;d&nbsp;&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;y&nbsp;&nbsp;&nbsp;&nbsp; I&nbsp;&nbsp;d&nbsp;&nbsp;I&nbsp;&nbsp;o&nbsp;&nbsp;t
    3. 0000010&nbsp;&nbsp; _&nbsp;&nbsp;s&nbsp;&nbsp;a&nbsp;&nbsp;v&nbsp;&nbsp;a&nbsp;&nbsp;n&nbsp;&nbsp;t&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;n&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;4&nbsp;&nbsp;/&nbsp;&nbsp;1&nbsp;&nbsp;9
    4. 0000020&nbsp;&nbsp; /&nbsp;&nbsp;2&nbsp;&nbsp;0&nbsp;&nbsp;1&nbsp;&nbsp;0&nbsp;&nbsp;. \n
    5. 0000027
    6. $ cat idiot_savant.bin
    7. Cracked by idiot_savant on 04/19/2010.
    8. $
    Ah well.
     
  5. n00neimp0rtant

    n00neimp0rtant

    EYES ONLY Member
    262
    0
    0
    South Park, PA
    Creation Kit (Skyrim mods and patches)
    Well it wasn't in the US Store at the time, and I'm not paying for Sonic 2 for the 5 billionth time.
     
  6. Diablohead

    Diablohead

    Indie dev Oldbie
    1,818
    24
    18
    Near London
    games
    Which revision of sonic 2 fixed the ability to crouch and not get hurt by the chemical plant goop robotnik drops? because in this version it hurts you while on my pc revision I can become immune by holding down.
     
  7. Solaris Paradox

    Solaris Paradox

    Member
    2,456
    0
    0
    On my butt in front of the computer. Where else?
    I'm working on working up the willpower to work on learning how to make my own Sonic fangames. Not quite there yet.
    Interesting to know... not that I'll ever bother with an iPhone, but still, cool stuff.
     
  8. Diablohead

    Diablohead

    Indie dev Oldbie
    1,818
    24
    18
    Near London
    games
    If the .state files are savestates then I wonder if we could make one in kega of the options and use that in this version, I want to see someone start 2 player and have their ipod software explode... or the game crashing, either one would be entertaining.
     
  9. Mr. Mash

    Mr. Mash

    All fanbases are awful Member
    1,440
    0
    0
    drawing
    Wow, that didn't take very long!
    This is pretty cool though.
     
  10. evilhamwizard

    evilhamwizard

    Researcher
    1,358
    311
    63
    Anyway, here's that code insert disassembled. Not sure if I did it right, and I still don't know what it does. I used IDA Pro 5.5 btw:

    <!--g1--><div class='geshitop'>Syntax Highlighted Code: ASM</div><div class='geshimain'><!--eg1--><pre class="asm" style="font-family:monospace;">ROM:00100000 <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    ROM:00100000 <span style="color: #00bfff;">lea</span> <span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFFFF8</span><span style="">)</span>.<span style="color: #00bfff;">l</span>,<span style="font-weight:bold;">a1</span>
    ROM:00100006 <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d0</span>
    ROM:00100008 <span style="color: #00bfff;">tst</span>.<span style="color: #00bfff;">w</span> <span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>
    ROM:0010000A <span style="color: #00bfff;">beq</span>.<span style="color: #00bfff;">s</span> loc_10001A
    ROM:0010000C <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>
    ROM:0010000E <span style="color: #00bfff;">nop</span>
    ROM:00100010 <span style="color: #00bfff;">lea</span> <span style="">(</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">FFFFFB22</span><span style="">)</span>.<span style="color: #00bfff;">w</span>,<span style="font-weight:bold;">a1</span>
    ROM:00100014 <span style="color: #00bfff;">moveq</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">0</span>,<span style="font-weight:bold;">d0</span>
    ROM:00100016 <span style="color: #00bfff;">tst</span>.<span style="color: #00bfff;">w</span> <span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>
    ROM:00100018
    ROM:00100018 loc_100018: <span style="color: #adadad; font-style: italic;">; DATA XREF: ROM:off_1736Ao</span>
    ROM:00100018 <span style="color: #00bfff;">bne</span>.<span style="color: #00bfff;">s</span> loc_10001E
    ROM:0010001A
    ROM:0010001A loc_10001A: <span style="color: #adadad; font-style: italic;">; CODE XREF: ROM:0010000Aj</span>
    ROM:0010001A <span style="color: #adadad; font-style: italic;">; DATA XREF: ROM:00010452o</span>
    ROM:0010001A <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="color: #ff0000;">#</span><span style="color: #ff0000;">$</span><span style="color: #ff0000;">EEE</span>,<span style="font-weight:bold;">d0</span>
    ROM:0010001E
    ROM:0010001E loc_10001E: <span style="color: #adadad; font-style: italic;">; CODE XREF: ROM:loc_100018j</span>
    ROM:0010001E <span style="color: #00bfff;">move</span>.<span style="color: #00bfff;">w</span> <span style="font-weight:bold;">d0</span>,<span style="">(</span><span style="font-weight:bold;">a1</span><span style="">)</span>
    ROM:00100020 <span style="color: #00bfff;">rts</span>
    ROM:00100020 <span style="color: #adadad; font-style: italic;">; ---------------------------------------------------------------------------</span>
    ROM:00100022 <span style="color: #00CC66;">align</span> <span style="color: #ff0000;">4</span>
    ROM:00100024 dcb.<span style="color: #00bfff;">l</span> <span style="color: #ff0000;">8</span>,<span style="color: #ff0000;">0</span>
    ROM:00100044 <span style="color: #00bfff;">dc</span>.<span style="color: #00bfff;">b</span> <span style="color: #ff0000;">0</span>
    &nbsp;</pre><!--gc2--><!--Uk9NOjAwMTAwMDAwIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
    LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClJPTTowMDEwMDAwMCAgICAgICAgICAgICAgICAgb
    GVhICAgICAoJiMwMzY7RkZGRkZGRjgpLmwsYTEKUk9NOjAwMTAwMDA2ICAgICAgICAgICAgICAgICBtb3
    ZlcSAgICMwLGQwClJPTTowMDEwMDAwOCAgICAgICAgICAgICAgICAgdHN0LncgICAoYTEpClJPTTowMDE
    wMDAwQSAgICAgICAgICAgICAgICAgYmVxLnMgICBsb2NfMTAwMDFBClJPTTowMDEwMDAwQyAgICAgICAg
    ICAgICAgICAgbW92ZS53ICBkMCwoYTEpClJPTTowMDEwMDAwRSAgICAgICAgICAgICAgICAgbm9wClJPT
    TowMDEwMDAxMCAgICAgICAgICAgICAgICAgbGVhICAgICAoJiMwMzY7RkZGRkZCMjIpLncsYTEKUk9NOj
    AwMTAwMDE0ICAgICAgICAgICAgICAgICBtb3ZlcSAgICMwLGQwClJPTTowMDEwMDAxNiAgICAgICAgICA
    gICAgICAgdHN0LncgICAoYTEpClJPTTowMDEwMDAxOApST006MDAxMDAwMTggbG9jXzEwMDAxODogICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgIDsgREFUQSBYUkVGOiBST006b2ZmXzE3MzZBGG8KUk9NOjAwM
    TAwMDE4ICAgICAgICAgICAgICAgICBibmUucyAgIGxvY18xMDAwMUUKUk9NOjAwMTAwMDFBClJPTTowMD
    EwMDAxQSBsb2NfMTAwMDFBOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBDT0RFIFhSRUY6IFJ
    PTTowMDEwMDAwQRhqClJPTTowMDEwMDAxQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgOyBEQVRBIFhSRUY6IFJPTTowMDAxMDQ1MhhvClJPTTowMDEwMDAxQSAgICAgICAgICAgICAgI
    CAgbW92ZS53ICAjJiMwMzY7RUVFLGQwClJPTTowMDEwMDAxRQpST006MDAxMDAwMUUgbG9jXzEwMDAxRT
    ogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgQ09ERSBYUkVGOiBST006bG9jXzEwMDAxOBhqClJ
    PTTowMDEwMDAxRSAgICAgICAgICAgICAgICAgbW92ZS53ICBkMCwoYTEpClJPTTowMDEwMDAyMCAgICAg
    ICAgICAgICAgICAgcnRzClJPTTowMDEwMDAyMCA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
    S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpST006MDAxMDAwMjIgIC
    AgICAgICAgICAgICAgIGFsaWduIDQKUk9NOjAwMTAwMDI0ICAgICAgICAgICAgICAgICBkY2IubCA4LDA
    KUk9NOjAwMTAwMDQ0ICAgICAgICAgICAgICAgICBkYy5iICAgMAo=--><!--egc2--><!--g2--></div><!--eg2-->
     
  11. Diablohead

    Diablohead

    Indie dev Oldbie
    1,818
    24
    18
    Near London
    games
    No chance that code is just there to hide the main screen menu choices? since this version hides it to stop access to the options. Something has to be hiding it.
     
  12. Classik

    Classik

    SEGATA SANSHIRO Member
    186
    0
    0
    Kentucky, USA
    ACT SIXTEEN STUDIOS
    <!--quoteo(post=445176:date=Apr 20 2010, 09:11 PM:name=Diablohead)--><div class='quotetop'>QUOTE (Diablohead @ Apr 20 2010, 09:11 PM) <a href="index.php?act=findpost&pid=445176">[​IMG]</a></div><div class='quotemain'><!--quotec-->No chance that code is just there to hide the main screen menu choices? since this version hides it to stop access to the options. Something has to be hiding it.<!--QuoteEnd--></div><!--QuoteEEnd-->

    I think it is an edited savestate that loads it.

    Anyway, if you delete the interfering modification files, shouldn't this be playable with other genesis games?
     
  13. evilhamwizard

    evilhamwizard

    Researcher
    1,358
    311
    63
    I asked drx about it, and he says it modifies a pallete. Also, there's some code that's been NOP'd in comparison to the final rom. But other than that, everything appears to work fine (Options, two player, etc). But I guess since there's a code insertion at the end of the rom that doesn't fit the flow of how everything else was originally stored in the rom, I guess this means they didn't use the original source code for this.

    Also, the sound sucks pretty bad. The sign post sfx is probably the worst I've heard in any emulated version of the sfx.
     
  14. Trunks

    Trunks

    AGAIN TRY Oldbie
    I figure the code's just there for helping with menu shit, but maybe it's not detrimental to the game.
     
  15. Guess Who

    Guess Who

    It's a miracle! Oldbie
    4,290
    49
    28
    Oregon
    lol
    <!--quoteo(post=445176:date=Apr 20 2010, 04:11 PM:name=Diablohead)--><div class='quotetop'>QUOTE (Diablohead @ Apr 20 2010, 04:11 PM) <a href="index.php?act=findpost&pid=445176">[​IMG]</a></div><div class='quotemain'><!--quotec-->No chance that code is just there to hide the main screen menu choices? since this version hides it to stop access to the options. Something has to be hiding it.<!--QuoteEnd--></div><!--QuoteEEnd-->

    I think it's the emulator, the menu choices appear with the same ROM in Kega.

    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->If the .state files are savestates then I wonder if we could make one in kega of the options and use that in this version, I want to see someone start 2 player and have their ipod software explode... or the game crashing, either one would be entertaining.<!--QuoteEnd--></div><!--QuoteEEnd-->

    I just checked, Kega can't load the savestates from this emulator.

    Also, trying to load S3K in the emulator gives this result:

    [​IMG]

    :psyduck:
     
  16. n00neimp0rtant

    n00neimp0rtant

    EYES ONLY Member
    262
    0
    0
    South Park, PA
    Creation Kit (Skyrim mods and patches)
    <!--quoteo(post=444778:date=Apr 19 2010, 11:07 PM:name=MarzSyndrome)--><div class='quotetop'>QUOTE (MarzSyndrome @ Apr 19 2010, 11:07 PM) <a href="index.php?act=findpost&pid=444778">[​IMG]</a></div><div class='quotemain'><!--quotec-->I'm frankly surprised that a "rom.bin" even exists in that package. I assumed Sega were going to encrypt the shit out of it like they did with the other Mega Drive ports, as well as a later revision of the Sonic 1 app.<!--QuoteEnd--></div><!--QuoteEEnd-->They encrypted the Sonic 1 ROM??? News to me
     
  17. JaxTH

    JaxTH

    Pudding Deity Oldbie
    9,462
    256
    63
    Los Angeles
    Jack shit.
    <!--quoteo(post=445341:date=Apr 20 2010, 05:20 PM:name=Guess Who)--><div class='quotetop'>QUOTE (Guess Who @ Apr 20 2010, 05:20 PM) <a href="index.php?act=findpost&pid=445341">[​IMG]</a></div><div class='quotemain'><!--quotec-->Also, trying to load S3K in the emulator gives this result:

    [​IMG]<!--QuoteEnd--></div><!--QuoteEEnd-->

    I find this hilarious for some reason.
     
  18. MarzSyndrome

    MarzSyndrome

    Everything is going to the beat. Member
    <!--quoteo(post=445455:date=Apr 21 2010, 03:53 AM:name=n00neimp0rtant)--><div class='quotetop'>QUOTE (n00neimp0rtant @ Apr 21 2010, 03:53 AM) <a href="index.php?act=findpost&pid=445455">[​IMG]</a></div><div class='quotemain'><!--quotec--><!--quoteo(post=444778:date=Apr 19 2010, 11:07 PM:name=MarzSyndrome)--><div class='quotetop'>QUOTE (MarzSyndrome @ Apr 19 2010, 11:07 PM) <a href="index.php?act=findpost&pid=444778">[​IMG]</a></div><div class='quotemain'><!--quotec-->I'm frankly surprised that a "rom.bin" even exists in that package. I assumed Sega were going to encrypt the shit out of it like they did with the other Mega Drive ports, as well as a later revision of the Sonic 1 app.<!--QuoteEnd--></div><!--QuoteEEnd-->They encrypted the Sonic 1 ROM??? News to me
    <!--QuoteEnd--></div><!--QuoteEEnd-->Yeah, seems only v1.0 used a non-encrypted rom. Sega probably caught wind of crackers taking advantage of the app through rom-swapping and sorted it with v1.1.
     
  19. Hi all,

    I thought this would be the place to ask my question so here it goes. I recently came back from the T-Mobile Store and got me a HTC HD2. My brother also got one as well and he was showing it to me and it is so awesome. I havn't opened mine yet since I have a paper for my master's degree due sunday at midnight. So no playing with the phone untill I am done with the paper.

    My question is that I would love to be able to play all the Genesis Sonic's on the phone. I remember reading on the Sonic DS Collection post something about picodrive and I would just like to know what I need to do to play Sonic on my phone. I have the roms (since I use Kega and Gens on my PC) but I doubt I can use Kega or Gens for the HTC HD2.

    I know that this isn't an iPhone matter, and I hope this isn't a problem to ask, but this seemed to be the place to ask besides creating a new post. I am new to the whole smart phone department (been using a Moto Razr V3 for sometime), and as you can imagine I am drooling to play with my new device.

    Thanks.
     
  20. MarzSyndrome

    MarzSyndrome

    Everything is going to the beat. Member
    One thing I'd quite to know is why the "cheat_menu.state" file exists at all. This could possibly suggest one of two things:

    1) It's a leftover file from when developers were playtesting the game and the levels.

    2) There's some kind of hidden cheat code in this port that will load this state if executed successfully.



    Though having said that, when I did the old switcheroo trick with the new_game and cheat_menu states, I soon discovered that you can't do jack shit on the level select screen anyway - pressing Start does nothing, and pressing A does nothing also, so you can't start the level you wish to go to. Even if you set the display mode to small and have the buttons on display constantly, Start is about as useful as molasses.
     
Thread Status:
Not open for further replies.