By the way, for anyone who wants to use the original Knuckles Chaotix control scheme (hold jump button instead of direction pad), first go to Sonic_JumpHeight and change and add as such:
CODE
Sonic_JumpHeight: ; XREF: Obj01_MdJump; Obj01_MdJump2
;Mercury Wall Jump tst.b $2C(a0); on wall?
beq.s JmpToWJskip
move.b ($FFFFF602).w,d0; get jpad
and.b $2D(a0),d0; compare jpad to stored L,R button states
beq.s WJAnyway ; if still held, branch
move.b ($FFFFF602).w,d0
andi.b #$70,d0
bne.s JmpToWJskip; if yes, branch
tst.b ($FFFFFFA8).w ; was jumpdash flag set?
bne.w WJAnyway ; if yes, branch
move.b #1,($FFFFFFA8).w; if not, set jumpdash flag
WJAnyway:
move.w #0,$2C(a0); clear Wall Jump data
move.b #1,$3C(a0)
move.b #2,$1C(a0); use "jumping" animation
btst #6,$22(a0) ; is player underwater?
beq.s WJNotUnderwater ; if not, branch
move.w #-$400,d0
btst #0,($FFFFF602).w
bne.s JmpToWJuponly
move.w #-$300,d0
move.w #-$500,$10(a0)
jmp WJ_Animate
JmpToWJskip:
jmp WJskip
JmpToWJuponly:
jmp WJuponly
WJNotUnderwater:
move.w #-$600,d0
btst #0,($FFFFF602).w
bne.s WJuponly
move.w #-$400,d0
move.w #-$700,$10(a0)
WJ_Animate:
btst #0,$22(a0)
beq.s WJuponly
neg.w $10(a0)
WJuponly:
move.w d0,$12(a0)
move.w #$A0,d0
jsr (PlaySound_Special).l; play jumping sound
WJskip:
;end Wall Jump
tst.b $3C(a0)
beq.s loc_134C4
move.w #-$400,d1
btst #6,$22(a0)
beq.s loc_134AE
move.w #-$200,d1
loc_134AE:
cmp.w $12(a0),d1
ble.s locret_134C2
cmp.b #1,($FFFFFFA8).w; check if bit 2 of the Air Attack flag is set
beq.s locret_134C2; if yes, branch
move.b ($FFFFF602).w,d0
andi.b #$70,d0 ; is A, B or C pressed?
bne.s locret_134C2; if yes, branch
move.w d1,$12(a0)
locret_134C2:
rts...
Then go to WallJump and change:
CODE
move.b ($FFFFF602).w,d0; get jpad
andi.b #$C,d0; keep just L and R state
beq.s @return; fail if neither are pressed
cmpi.b #$C,d0; fail if both are pressed
beq.s @return
into:
CODE
move.b ($FFFFF602).w,d0; get jpad
andi.b #$70,d0; keep just L and R state
beq.s @return ; fail if neither are pressed
move.b ($FFFFF602).w,d0; get jpad
andi.b #$C,d0; keep just L and R state
beq.s @return ; fail if neither are pressed
cmpi.b #$C,d0; fail if both are pressed
beq.s @return
Then add the obvious clr flag for ($FFFFFFA8) in Sonic_ResetOnFloor.
This is for the Hivebrain assembly though it shouldn't be too hard to convert. Special thanx to Aquaslash and Fragag.
This post has been edited by E-122-Psi: 13 February 2011 - 08:20 PM