1: rts Sonic_CheckSuper: cmpi.b #2,0x1C(%a0) bne.s 1b cmpi.b #1,Current_Character beq.s 6f cmpi.b #2,Current_Character bne.s 3f 6: cmpi.w #0x32,(0xFFFFFE20).w | Do we have 50 rings? # cmpi.w #0x5,(0xFFFFFE20).w bge.s 2f bra.w 3f 2: cmpi.b #0x40,(0xFFFFF605).w | has A been pressed? bne.s 3f | if not,stop 1: cmpi.b #6,(0xFFFFFE57).w bge.s 1f jmp locret_134d2 1: bset #2,0x22(%a0) addq.l #4,%sp jmp Go_Super 3: rts SuperSonic_Checks: cmpi.b #1,Super_Tails beq.s 1f cmpi.b #3,Current_Character beq.s 1f rts 1: cmpi.b #1,Super_Tails beq.s 4f jsr Super_Rotating_Palette bra.w 5f 4: jsr Super_Tails_Palette 5: tst.w (0xFFFFFE20).w | do you have any rings? beq.s 3f cmpi.b #0x3C,(0xFFFFAAAA).w | Have we reached 60 frames yet? bne.s 2f subi.w #0x1,(0xFFFFFE20).w | subtract 1 ring move.b #0x81,(0xFFFFFE1D).w | update the ring counter move.b #0x0,(0xFFFFAAAA).w rts 3: jmp De_Super 2: addi.b #1,(0xFFFFAAAA).w 6: rts