Difference between revisions of "Add final spindash to Sonic 2 Beta"
From Sonic Retro
(→Fixing an error) |
(→Directly copying the object code) |
||
Line 5: | Line 5: | ||
===Directly copying the object code=== | ===Directly copying the object code=== | ||
− | + | First we'll have to get a slightly modified sonic 1 spindash code | |
− | + | ||
+ | Replace the entire routine with this | ||
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> |
Revision as of 03:17, 8 September 2017
Hello everyone shadow05 here Have you playing sonic 2 beta and been annoyed about the incomplete spindash Well this guide is for people who can do basic asm editing inspired by the sonic 1 spindash guide I was using the super egg disassembly but this will work on the original esrael disassembly
Directly copying the object code
First we'll have to get a slightly modified sonic 1 spindash code
Replace the entire routine with this
Sonic_SpinDash:
tst.b $39(a0)
bne.s loc_1AC8E
cmpi.b #8,$1C(a0)
bne.s locret_1AC8C
move.b ($FFFFF603).w,d0
andi.b #$70,d0
beq.w locret_1AC8C
move.b #9,$1C(a0)
move.w #$E0,d0
jsr (Play_Sfx)
addq.l #4,sp
move.b #1,$39(a0)
move.w #0,$3A(a0)
cmpi.b #$C,$28(a0)
bcs.s loc_1AC84
move.b #2,($FFFFD11C).w
loc_1AC84:
locret_1AC8C:
rts
; ---------------------------------------------------------------------------
loc_1AC8E:
move.b ($FFFFF602).w,d0
btst #1,d0
bne.w loc_1AD30
move.b #$E,$16(a0)
move.b #7,$17(a0)
move.b #2,$1C(a0)
addq.w #5,$C(a0)
move.b #0,$39(a0)
moveq #0,d0
move.b $3A(a0),d0
add.w d0,d0
move.w Dash_Speeds(pc,d0.w),$14(a0)
move.w $14(a0),d0
subi.w #$800,d0
add.w d0,d0
andi.w #$1F00,d0
neg.w d0
addi.w #$2000,d0
move.w d0,($FFFFEED0).w
btst #0,$22(a0)
beq.s loc_1ACF4
neg.w $14(a0)
loc_1ACF4:
bset #2,$22(a0)
move.b #0,($FFFFD11C).w
move.w #$BC,d0
jsr (Play_Sfx)
bra.s loc_1AD78
; ===========================================================================
Dash_Speeds: dc.w $800 ; 0
dc.w $880 ; 1
dc.w $900 ; 2
dc.w $980 ; 3
dc.w $A00 ; 4
dc.w $A80 ; 5
dc.w $B00 ; 6
dc.w $B80 ; 7
dc.w $C00 ; 8
; ===========================================================================
loc_1AD30: ; If still charging the dash...
tst.w $3A(a0)
beq.s loc_1AD48
move.w $3A(a0),d0
lsr.w #5,d0
sub.w d0,$3A(a0)
bcc.s loc_1AD48
move.w #0,$3A(a0)
loc_1AD48:
move.b ($FFFFF603).w,d0
andi.b #$70,d0 ; 'p'
beq.w loc_1AD78
move.w #$900,$1C(a0)
move.w #$E0,d0 ; changed from #$E0
jsr (Play_Sfx)
addi.w #$200,$3A(a0)
cmpi.w #$800,$3A(a0)
bcs.s loc_1AD78
move.w #$800,$3A(a0)
loc_1AD78:
addq.l #4,sp
cmpi.w #$60,($FFFFEED8).w
beq.s loc_1AD8C
bcc.s loc_1AD88
addq.w #4,($FFFFEED8).w
loc_1AD88:
subq.w #2,($FFFFEED8).w
loc_1AD8C:
rts
; End of subroutine Sonic_SpinDash
Fixing an error
when you build it you most likely an error to fix this go to line 25863
bra loc_FBF4
See this line delete it!
Thank you for reading this guide and hopefully you'll be less annoyed
warning the spindash sound will be high pitched but you can just turn down the volume
Update!
I found away to port the beta spindash to sonic 2 i'll make a new guide soon!