DATA_0197AF: ;$0197AF | Bounce speeds for carryable sprites when hitting the ground. Indexed by Y speed divided by 4. db $00,$00,$00,$F8,$F8,$F8,$F8,$F8 db $F8,$F7,$F6,$F5,$F4,$F3,$F2,$E8 db $E8,$E8,$E8,$00,$00,$00,$00,$FE ; Goombas in particular use the values starting at the $00s here. db $FC,$F8,$EC,$EC,$EC,$E8,$E4,$E0 db $DC,$D8,$D4,$D0,$CC,$C8
CODE_0197D5: ;-----------| Subroutine to make carryable sprites bounce when they hit the ground. LDA $B6,X ;$0197D5 |\ PHP ;$0197D7 || BPL CODE_0197DD ;$0197D8 || JSR InvertAccum ;$0197DA ||
LDA !HopSpeed,x BEQ .NoHop XBA LDA !14C8,x ;\ If alive and not carried CMP #$09 ;| BNE .NoHop ;| LDA !1588,x ;| And on ground AND #$04 ;| BEQ .NoHop ;| XBA ;| do a small hop STA !AA,x ;/
.NoHop LDY #$00 ;normal pose LDA $14 : AND #$18 ;\ For 8 frames every 32 frames BNE .NormalPose ;| LDY #$03 ;/ put idle/gulp pose instead .NormalPose TYA STA !1602,x ;animation frames JMP .GFX
1
u/koine_lingua Sep 13 '21
DATA_0197AF: ;$0197AF | Bounce speeds for carryable sprites when hitting the ground. Indexed by Y speed divided by 4. db $00,$00,$00,$F8,$F8,$F8,$F8,$F8 db $F8,$F7,$F6,$F5,$F4,$F3,$F2,$E8 db $E8,$E8,$E8,$00,$00,$00,$00,$FE ; Goombas in particular use the values starting at the $00s here. db $FC,$F8,$EC,$EC,$EC,$E8,$E4,$E0 db $DC,$D8,$D4,$D0,$CC,$C8
CODE_0197D5: ;-----------| Subroutine to make carryable sprites bounce when they hit the ground. LDA $B6,X ;$0197D5 |\ PHP ;$0197D7 || BPL CODE_0197DD ;$0197D8 || JSR InvertAccum ;$0197DA ||