Difference between revisions of "Add final spindash to Sonic 2 Beta"
From Sonic Retro
Inferno Gear (talk | contribs) (Fixed multiple errors with grammar.) |
|||
(3 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | Hello everyone | + | Hello everyone, Shadow05 here. |
− | Have you playing | + | Have you ever been playing a Sonic 2 Beta and have been annoyed about the incomplete spindash? |
− | Well this guide is for people who can do basic asm editing inspired by the | + | Well, this guide is for people who can do basic asm editing! |
− | I | + | This guide was inspired by the Sonic 1 spindash guide. |
+ | I will be using the Super Egg disassembly, but this should work on the original Esrael disassembly. | ||
===Directly copying the object code=== | ===Directly copying the object code=== | ||
− | First we'll have to get a slightly modified | + | First we'll have to get a slightly modified version of the Sonic 1 Spindash code. |
− | Replace the entire routine with this | + | Replace the entire routine with this: |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
Line 112: | Line 113: | ||
===Fixing an error=== | ===Fixing an error=== | ||
− | + | When you get to building it, you most likely will have an error. | |
− | + | To fix the error, go to line 25863. | |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
bra loc_FBF4 | bra loc_FBF4 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | See this line | + | See this line? Delete it! |
− | Thank you for reading this guide and hopefully you'll be less annoyed | + | If you are doing this on the Nick Arcade text disassembly, the error won't happen. |
+ | |||
+ | Also if I was doing a part 2, a lot of steps for the Nick Arcade disassembly would be the same as in the Sonic 1 tutorial for adding the Spindash like fixing the Monitor Bug, and adding the sound. | ||
+ | |||
+ | Thank you for reading this guide, and hopefully you'll be less annoyed by the incomplete spindash. | ||
{{S2BHowtos}} | {{S2BHowtos}} | ||
+ | |||
{{S2Howtos}} | {{S2Howtos}} |
Revision as of 10:26, 13 February 2019
Hello everyone, Shadow05 here. Have you ever been playing a Sonic 2 Beta and have been annoyed about the incomplete spindash? Well, this guide is for people who can do basic asm editing! This guide was inspired by the Sonic 1 spindash guide. I will be using the Super Egg disassembly, but this should work on the original Esrael disassembly.
Directly copying the object code
First we'll have to get a slightly modified version of the 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 get to building it, you most likely will have an error. To fix the error, go to line 25863.
bra loc_FBF4
See this line? Delete it!
If you are doing this on the Nick Arcade text disassembly, the error won't happen.
Also if I was doing a part 2, a lot of steps for the Nick Arcade disassembly would be the same as in the Sonic 1 tutorial for adding the Spindash like fixing the Monitor Bug, and adding the sound.
Thank you for reading this guide, and hopefully you'll be less annoyed by the incomplete spindash.
SCHG How-To Guide: Sonic 2 Beta (16-bit) |
---|
Fixing Bugs |
Fix EHZ Deformation Bug |
Design Choices |
Add final spindash to Sonic 2 Beta |