Пил Аут? Без проблем, могу предоставить свою собственную версию. Эта моя старая версия, реализация не идеальна, есть над чем работать.
Исходник написан очень давно, настолько давно, что тогда я даже не знал как правильно называется Пил Аут.
1) Код:
; ---------------------------------------------------------------------------
; Subroutine to do Super Speel Out
; ---------------------------------------------------------------------------
Sonic_SpeelOut:
btst.b #0,$2B(a0) ; is already Speel Outing?
bne.s Sonic_SO_Launch ; if so, branch
cmp.b #7,$1C(a0) ; is anim look up?
bne.w Sonic_SpeelOut_Rts; if not, branch
btst #0,($FFFFF602).w; is Up is being held?
beq.w Sonic_SpeelOut_Rts; if no, branch
move.b ($FFFFF603).w,d0
and.b #$70,d0 ; check if ABC is pressed
beq.s Sonic_SpeelOut_Rts
move.w #$FD1,d0
jsr (PlaySound_Special).l
bset.b #0,$2B(a0) ; set Speel Out flag
move.w #$60,($FFFFF73E).w; reset looking up/down
move.w #0,$3A(a0) ; clear SO speed
Sonic_SO_Launch:
addq.l #4,sp ; increase stack ptr to avoid jumping
move.b #$20,$1C(a0) ; launch SO ani
btst #0,($FFFFF602).w; is Up is being held?
bne.s Sonic_SpeelOut_Rts; if yes, branch
cmp.b #$F,$1B(a0) ; is SO enough powerful?
blt.s Sonic_So_Release; if no, branch
move.w #$BC,d0 ; play SO release sound
jsr (PlaySound_Special).l ;
move.w #$C00,$14(a0) ; set speed
tst.b ($FFFFFFEA).w ; is Sonic super?
beq.s Sonic_SO_Animate; if no, branch
move.w #$F00,$14(a0) ; set super speed
Sonic_SO_Animate:
move.b #1,$1C(a0) ; use walking animation
btst #0,$22(a0) ; is sonic facing left?
beq.s Sonic_So_Release; if yes, branch
neg.w $14(a0)
Sonic_So_Release:
bclr.b #0,$2B(a0) ; clear SO flag
Sonic_SpeelOut_Rts:
rts
2) Добавь bsr.w Sonic_SpeelOut в Obj01_MdNormal перед bsr.w Sonic_Jump (это важно)
3) В файле _anim\Sonic.asm, после dc.w SonAni_Spin_Dash-SonicAniData (это в самом конце списка)
добавь: dc.w SonAni_SSO-SonicAniData ;20
4) После лейбела SonAni_Spin_Dash, но перед even добавь саму анимацию:
SonAni_SSO: dc.b 2, 8, 8, 8, 9, 9, $A, $A, $B, 6, 7, $1E, $1F, $20, $21, $5E, $5F, $60, $61, $FE, 4
5) На кадрах $5E-$61 должны быть портированные из Sonic CD спрайты разогнавшегося Соника.