Question about FPG theory
5 years ago
Kanagawa, Japan

I already know what inputs are required for FPG, but I could not reach for the reason why FPG works. Why is not the flag lowered when Mario grabs the flagpole clipping in the block?

编辑者 作者 5 years ago
Germany

FlagpoleRoutine: ldx #$05 ;set enemy object offset stx ObjectOffset ;to special use slot lda Enemy_ID,x cmp #FlagpoleFlagObject ;if flagpole flag not found, bne ExitFlagP ;branch to leave lda GameEngineSubroutine cmp #$04 ;if flagpole slide routine not running, bne SkipScore ;branch to near the end of code lda Player_State cmp #$03 ;if player state not climbing, bne SkipScore ;branch to near the end of code lda Enemy_Y_Position,x ;check flagpole flag's vertical coordinate cmp #$aa ;if flagpole flag down to a certain point, bcs GiveFPScr ;branch to end the level lda Player_Y_Position ;check player's vertical coordinate cmp #$a2 ;if player down to a certain point, bcs GiveFPScr ;branch to end the level lda Enemy_YMF_Dummy,x adc #$ff ;add movement amount to dummy variable sta Enemy_YMF_Dummy,x ;save dummy variable lda Enemy_Y_Position,x ;get flag's vertical coordinate adc #$01 ;add 1 plus carry to move flag, and sta Enemy_Y_Position,x ;store vertical coordinate lda FlagpoleFNum_YMFDummy sec ;subtract movement amount from dummy variable sbc #$ff sta FlagpoleFNum_YMFDummy ;save dummy variable lda FlagpoleFNum_Y_Pos sbc #$01 ;subtract one plus borrow to move floatey number, sta FlagpoleFNum_Y_Pos ;and store vertical coordinate here SkipScore: jmp FPGfx ;jump to skip ahead and draw flag and floatey number GiveFPScr: ldy FlagpoleScore ;get score offset from earlier (when player touched flagpole) lda FlagpoleScoreMods,y ;get amount to award player points ldx FlagpoleScoreDigits,y ;get digit with which to award points sta DigitModifier,x ;store in digit modifier jsr AddToScore ;do sub to award player points depending on height of collision lda #$05 sta GameEngineSubroutine ;set to run end-of-level subroutine on next frame FPGfx: jsr GetEnemyOffscreenBits ;get offscreen information jsr RelativeEnemyPosition ;get relative coordinates jsr FlagpoleGfxHandler ;draw flagpole flag and floatey number ExitFlagP: rts

The critical part seems to be: lda Player_Y_Position ;check player's vertical coordinate cmp #$a2 ;if player down to a certain point, bcs GiveFPScr ;branch to end the level

Jack_Hase, sweatypiranha 4 其他 喜欢这个
游戏统计
粉丝
8,511
记录
9,793
玩家
2,004
最新新闻
SNES9x Ban

Effective immediately, any submissions using the SNES9x emulator will not be verified. The SMB1 mod team has concerns about its integrity due to its ability to overclock and remove lag frames, which may not be easily detectable. Additionally, we request that all BizHawk submissions avoid using the S

2 months ago
最新话题
发布于 10 months ago
30 回复
发布于 6 years ago
1 回复
发布于 2 days ago
34 回复
发布于 4 days ago
5 回复