What triggers Super Sonic's deformation?

Discussion in 'Discussion and Q&A Archive' started by Unspoken, May 26, 2009.

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

    Unspoken Well-Known Member Member

    Joined:
    Aug 10, 2007
    Messages:
    64
    In Sonic 3 after beating a boss it causes you to revert to normal, In Sonic 2 it's after a signpost or eggprison (Obvisouly because theres no half way boss). The reason I'm asking because in Wing Fortress Zone there isn't either of those and if I'm Super Tails he jumps over the tornado. This doesn't happen for Super Sonic because he half reverts.
     
  2. Dark Lips

    Dark Lips Well-Known Member Member

    Joined:
    Nov 14, 2008
    Messages:
    293
    Location:
    Wolverhampton UK
    I think there are a couple of ways you can do this... you can do a check for your positon in the zone and if at or over that position jump to the detransforamtion code or write a small routine that checks for example buttons A + B at the same time and have that jump to the detransformation routine. these are just a couple of ideas I bet there is a tone of ways. Just so you know use debug mode to figure out the position in the zone you want to check against.
     
  3. nineko

    nineko I am the Holy Cat Member

    Joined:
    Mar 24, 2008
    Messages:
    1,902
    Location:
    italy
    Doesn't Super Sonic check for the timer to be enabled?


    Try to stop the timer and see if Sonic reverts.
     
  4. Irixion

    Irixion Well-Known Member Member

    Joined:
    Aug 11, 2007
    Messages:
    670
    Location:
    Ontario, Canada
    You could just have a revert code right after the boss. I mean, with sonic he stays in his super form but uses his normal sprites and mappings, but if you have it revert back right after you kill the boss both those problems would be solved.
     
  5. Unspoken

    Unspoken Well-Known Member Member

    Joined:
    Aug 10, 2007
    Messages:
    64
    Okay fixed it: for people who don't know how ( I realise this is simple ) to fix the end of level Super Sonic bug.


    If your using s2dasm2007 go to


    ; loc_1AB38:


    Sonic_CheckGoSuper:


    tst.b (Super_Sonic_flag).w ; is Sonic already Super?


    bne.s return_1ABA4 ; if yes, branch


    cmpi.b #7,(Emerald_count).w ; does Sonic have exactly 7 emeralds?


    bne.s return_1ABA4 ; if not, branch


    cmpi.w #50,(Ring_count).w ; does Sonic have at least 50 rings?


    bcs.s return_1ABA4 ; if not, branch


    cmpi.b #1, (Update_HUD_timer).w ; has the timer stopped


    bne.s return_1ABA4 ; if not, branch


    move.b #1,(SuperPal_flag).w


    move.b #$F,(SuperPal_frame_count).w


    move.b #1,(Super_Sonic_flag).w


    For any reason you need to make Super Sonic or another Super enabled character to revert


    WFZ


    loc_3C8B4:


    clr.b (Update_HUD_timer).w


    movea.w objoff_2C(a0),a1 ; a1=object


    cmpi.b #$C5,(a1)


    bne.w JmpTo65_DeleteObject


    bsr.w JmpTo_loc_2D6CC


    bra.w JmpTo45_DisplaySprite


    Add the coloured lines
     
    Last edited by a moderator: May 28, 2009
  6. nineko

    nineko I am the Holy Cat Member

    Joined:
    Mar 24, 2008
    Messages:
    1,902
    Location:
    italy
    So it is how I said, basically.
     
Thread Status:
Not open for further replies.