![]() Sta Enemy_X_Speed,x Set Spiny egg speed to A (00) A=00Ĭmp #$00 Now check if speed is negative. Now the game jumps back to the SetSpSpd subroutine. Sta Enemy_Y_Speed,x and movement force A=00 InitVStf: lda #$00 initialize vertical speed A=00 Lda #$02 set moving direction for left A=02 SetBBox: sta Enemy_BoundBoxCtrl,x set bounding box control here A=09 Oops, jumping to the bounding box subroutine overwrote A! All that work for nothing. SmallBBox: lda #$09 set specific bounding box size control A=09 The A register stores the appropriate speed value. SetSpSpd: jsr SmallBBox set bounding box control, etc. UsePosv: tya put value from A in Y back to A A=SpeedVar Tay otherwise save value in A to Y for nowĪnd #%00000011 get one of the LSFR parts and save the 2 LSBīeq UsePosv branch if neither bits are setĮor #%11111111 otherwise get two's compliment of Y Ldy Player_X_Speed check player's horizontal speedīcs SetSpSpd if moving faster than a certain amount, branch elsewhere Jsr PlayerLakituDiff move enemy, change direction, get value - difference Ldx ObjectOffset get enemy object buffer offset Iny increment Y four bytes for each valueīpl DifLoop loop until all three are written ![]() Here's how the Spiny egg's speed is calculated and stored.ĭifLoop: lda PRDiffAdjustData,y get three values and save them This page details bugs of Super Mario Bros.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |