How to fix the Sonic 2 "Skywalker" bug

Discussion in 'Tutorials Archive' started by DanielHall, Jun 11, 2011.

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

    DanielHall Well-Known Member Member

    Joined:
    Jan 18, 2010
    Messages:
    860
    Location:
    North Wales
    In Sonic 2, there is a bug where if you turn Super Sonic after the sign post, you will be stuck walking in the air. The problem lies in this code at Sonic_Super:




    tst.b (Update_HUD_timer).w


    beq.s Sonic_RevertToNormal ; ?



    Now, what this does is when the timer has stopped, Sonic will revert to normal. This is seen at the end of signposts. However, this doesn't stop Sonic from transforming, causing him to get stuck. To fix this, go to Sonic_CheckgoSuper and add the following at the start of the subroutine:




    tst.b (Update_HUD_timer).w ; Has the timer stopped?


    beq.s return_1ABA4 ; if yes, branch
     
  2. redhotsonic

    redhotsonic Also known as RHS Member

    Joined:
    Aug 10, 2007
    Messages:
    2,969
    Location:
    England
    There's always been a bug after signposts in Sonic Games. I remember this bug as it's happened to me a couple of times.


    I also remember in Sonic 1, that if you past the signpost so fast and qucikly entered the big ring, once the signpost stopped spinning, nothing would happen and it would just sit there! Sega just can't get the ending right =P


    Anyway, good fix.
     
Thread Status:
Not open for further replies.