don't click here

Adding Invincibility Stars to Super Sonic

Discussion in 'Engineering & Reverse Engineering' started by GeneHF, May 17, 2004.

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

    GeneHF

    SEGA-ier than you'll potentially ever be. Site Staff
    8,429
    59
    28
    Scenic Studiopolis
    Complete Global Conquest
    Hi, some people may know me from SClassic and may know of this interest in hacking I've taken as of last year. Well, let's cut to the chase. As the topic says, I'd like to add Invincibility Stars to Super Sonic.

    I know I don't need to edit his sprite, since hitting an invincibility montior then going Super makes him retain the stars till he powers down. I'd like to do this to pull together the look of Hyper Sonic in Sonic 2. (Note: I realize the motion is bad because this was taken from about 59 different pictures in Scroll mode.) Luigi Link tells me that I can add the stars to Super Sonic by doing something in the Hex range for him, but I have no clue where to look in there. (Im not exactly great with Hex Editing yet, but Im getting there.)

    Any help would be greatly appreciated, since I'd like to kick this project off the ground. :P
     
  2. drx

    drx

    mfw Researcher
    2,254
    350
    63
    :rolleyes:
    11fc 0001 fe2d or 31fc 0001 fe2d (don't know if this'll work).
     
  3. GeneHF

    GeneHF

    SEGA-ier than you'll potentially ever be. Site Staff
    8,429
    59
    28
    Scenic Studiopolis
    Complete Global Conquest
    Hmm, You're right. It didnt work. When you go into Super Sonic, the game falls into this nasty crash. Or maybe I entered it in the wrong address. Was it 71514?
     
  4. JoseTB

    JoseTB

    Tech Member
    716
    59
    28
    First,sorry to answer to an old post,but he said that he still need it.

    Try with "move.b #$35,($FFFFD200).w" (11 fc 00 35 2d 00 in hex)The Super Sonic code is located at 0x1AB38(but don?t touch anything before 0x1AB4E,or the code will execute each time that you jump) use some jmps to add it.
     
  5. LOst

    LOst

    Tech Member
    4,891
    8
    18
    move.b #$35,($FFFFB200).w

    Also, 11 FC 00 35 B2 00
     
  6. JoseTB

    JoseTB

    Tech Member
    716
    59
    28
    Is D200,for sonic 1 and 2

    Code (Text):
    1. loc_12A5C: ?
    2.  ?addq.w    #1,(a2)
    3.  ?tst.b ($FFFFFE19).w
    4.  ?bne.s locret_12AA4
    5.  ?bset  #1,$2B(a1)
    6.  ?move.w    #$4B0,$32(a1)
    7.  ?tst.b ($FFFFF7AA).w
    8.  ?bne.s loc_12A88
    9.  ?cmpi.b    #$C,$28(a1)
    10.  ?bls.s loc_12A88
    11.  ?move.w    #$97,d0
    12.  ?jsr   (sub_135E).l
    13.  
    14. loc_12A88: ? ?
    15.  ?tst.b $3F(a0)
    16.  ?bne.s loc_12A9A
    17.  ?--> move.b    #$35,($FFFFD200).w <--
    18.  ?move.w    a1,($FFFFD23E).w
    19.  ?rts
    Also,try to search 11 FC 00 35 B2 00 in the rom =P
     
  7. Tom41

    Tom41

    Pheer the baby EggRobo! Oldbie
    291
    0
    0
    UK
    You can get an effect similar to what you want by just using debug. Turn into Super Sonic, then place a teleport monitor and break it. Sonic's Super powers will then transfer to Tails, so Tails will be speedy and have invincibility stars round him. Sonic will remain yellow, but one hit will cause Sonic to lose his rings and turn blue again.
    I think if you then break another teleport monitor Sonic will regain his Super powers, and also have the stars!
     
  8. Rika Chou

    Rika Chou

    Tech Member
    5,276
    169
    43
    I am fairly sure that he already knows this, he wan't to have the effect without debug by hacking the game.
     
  9. LOst

    LOst

    Tech Member
    4,891
    8
    18
    Add this somewhere in the Super Sonic code:

    11 FC 00 35 D2 00
    33 FC B0 00 00 00 D2 3E


    And add this at offset 1D9E4 in the S2 ROM:
    33 7C B0 00 00 3E


    And it will work!
     

    Attached Files:

  10. LOst

    LOst

    Tech Member
    4,891
    8
    18
    A left over from Sonic 1. Well Naka probably wanted to keep track of the monitor powerups, like if he was adding more powerups o.o;;

    It works with B200 too you know. But you are right. Better use the address Naka decided to use
     
  11. GeneHF

    GeneHF

    SEGA-ier than you'll potentially ever be. Site Staff
    8,429
    59
    28
    Scenic Studiopolis
    Complete Global Conquest
    Tried what you posted, lost, and nothing much happend. The only thing it changed was the distance some of the Yellow Springs shot you out.
     
  12. JoseTB

    JoseTB

    Tech Member
    716
    59
    28
    Remember that you need to use a jump instead of directly add bytes to the rom.Better use JSR as Quickman said so, in hex is 4e b9 xx xx xx xx where the "x" are the offset that you want to jump.Put the offset where you rom end.Normally,it will be 4e b9 00 10 00 00.Now,put that in 0x1ab4e,but first copy the bytes that you are going to replace.Then go to the end of the rom,and add there the bytes that you copied,and add 33 FC B0 00 00 00 D2 3E ,and because we use jsr,now add a rts (4e 75) to return, and in 1d9e4 add 33 7C B0 00 00 3E,as LOst said.This should work.

    You can do it with jmps too,but by this way is more small.

    (Edited)
     
  13. Quickman

    Quickman

    be attitude for gains Tech Member
    5,595
    18
    18
    :x
    omg porjcet
    I prefer using JSR (4EB9) because that lets me use an RTS command which takes up less space overall.
     
  14. LOst

    LOst

    Tech Member
    4,891
    8
    18
    True
     
  15. JoseTB

    JoseTB

    Tech Member
    716
    59
    28
    That?s rigth.At the first I believed that the jump "eat" part from the next instruction,but looks like is 6 bytes too (11 fc 00 01 f6 5f) so in this case is better use a JSR.
     
  16. GeneHF

    GeneHF

    SEGA-ier than you'll potentially ever be. Site Staff
    8,429
    59
    28
    Scenic Studiopolis
    Complete Global Conquest
    I can't add anymore lines to the ROM. It maxed out.
     
Thread Status:
Not open for further replies.