Restore Sonic 1's Prototype Victory

Discussion in 'Tutorials' started by Kilo, Nov 29, 2019.

  1. Stdh

    Stdh Active Member Member

    Joined:
    Jan 11, 2021
    Messages:
    30
    Location:
    the netherlands
    so there is the problem with sbz2's cutscene where its stuck and the score will count over and over again is there any way to fix this?
     
  2. DeltaWooloo

    DeltaWooloo The noob next door Member

    Joined:
    Aug 7, 2019
    Messages:
    373
     
    Miles Sebas Prower and Stdh like this.
  3. EddyTF

    EddyTF somebody once told me Member

    Joined:
    Jan 9, 2022
    Messages:
    70
    Location:
    Russia
    Thanks, bro! Everything worked out, but I can't figure out which line to clear. I need the animation to be not a jump, but just a winning stance.
     
  4. Miles Sebas Prower

    Miles Sebas Prower Newcomer Member

    Joined:
    Aug 22, 2023
    Messages:
    21
    Location:
    Alvarenga, Charallave
    While I was checking out the unused content of Sonic 1 at Sonic Retro, I realized that it states that Sonic was going to use this animation just right after he passes the signpost in the prototype and not when the results show up. If you want to change this behavior, this is what you need to do

    Move this code to the Obj0D_Touch routine

    Code:
            move.b #1,($FFFFXXXX).w ; Set victory animation flag
    Move it to the routine, like so:

    Code:
    Obj0D_Touch:                ; XREF: Obj0D_Index
            move.w    ($FFFFD008).w,d0
            sub.w    8(a0),d0
            bcs.s    locret_EBBA
            cmpi.w    #$20,d0        ; is Sonic within $20 pixels of    the signpost?
            bcc.s    locret_EBBA    ; if not, branch
            move.w    #$CF,d0
            jsr    (PlaySound).l    ; play signpost    sound
            clr.b    ($FFFFFE1E).w    ; stop time counter
            move.b #1,($FFFFXXXX).w ; Set victory animation flag
            move.w    ($FFFFF72A).w,($FFFFF728).w ; lock screen position
            addq.b    #2,$24(a0)
    And be sure to delete it from the Obj0D_SonicRun routine

    After this, there you go, now you will get Sonic to use the victory animation after he passes the signpost

    EDIT: If you want it to behave in your hack like in S3K where Sonic uses the victory animation when the results show up, the controls are locked and the Act clear theme plays, you don't have to do this. Instead just leave the routines how they are after following this guide
     
    Last edited: Oct 16, 2023
    ProjectFM likes this.