Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; 習慣的に使われている
- ; SUB_OFF_SCREEN 及び GET_DRAW_INFO は省略
- dcb "INIT"
- RTL
- dcb "MAIN"
- PHB
- PHK
- PLB
- LDA #$02 ;\ ストックをファイアに変更
- STA $0DC2 ;/
- JSR MainCode
- PLB
- RTL
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- Return: RTS
- MainCode: JSR SubGFX
- LDA $14C8,x ;\ スプライト状態が通常以外の時
- CMP #$08 ; | 以下の処理を実行しない
- BNE Return ;/
- LDA $9D ;\ ロック時停止
- BNE Return ;/
- JSR SUB_OFF_SCREEN_X0 ; 画面外処理
- LDA $14C8,x ;\
- CMP #$08 ; | 不要
- BCC Return ;/
- LDA $1528,x ; ファイアを食らった回数?
- CMP #$01 ;\
- BNE CheckCount ; | 1の時カウントを取り消し、
- INC $06B0 ; | 専用のカウンタをインクリメント
- DEC $1528,x ;/
- CheckCount: LDA $06B0 ;\
- CMP #$5F ; | 専用のカウンタが0x5F(95)に到達した時クリア
- BEQ CallClear ;/
- JMP CheckContact
- CallClear: JSR Clear ; クリア用ルーチン
- CheckContact: JSL $01A7DC ; マリオとの接触判定ルーチン
- RTS
- Clear: LDA #$0C
- STA $1DFB
- LDA #$FF
- STA $1493
- LDA #$00
- STA $06B0
- LDA #$02
- STA $14C8,x
- RTS
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- TileMap: dcb $8C,$8E,$AC,$AE
- dcb $8C,$8E,$AC,$AE
- dcb $8C,$8E,$AC,$AE
- dcb $8C,$8E,$AC,$AE
- Xoffset: dcb $08,$F8,$08,$F8
- dcb $F8,$08,$F8,$08
- Yoffset: dcb $F0,$F0,$00,$00
- SubGFX: JSR GET_DRAW_INFO
- LDA $157C,x
- ASL A
- ASL A
- STA $02
- LDA $14
- LSR A
- LSR A
- LSR A
- AND #$03
- ASL A
- ASL A
- STA $03
- PHX
- LDX #$03
- Loop: PHX
- TXA
- CLC
- ADC $02
- TAX
- LDA Xoffset,x
- CLC
- ADC $00
- STA $0300,y
- PLX
- LDA Yoffset,x
- CLC
- ADC $01
- STA $0301,y
- PHX
- TXA
- CLC
- ADC $03
- TAX
- LDA TileMap,x
- STA $0302,y
- PLX
- PHX
- LDX $15E9
- LDA $15F6,x
- LDX $02
- BNE NoFlip
- ORA #$40
- NoFlip: ORA $64
- STA $0303,y
- PLX
- INY
- INY
- INY
- INY
- DEX
- BPL Loop
- PLX
- LDY #$02
- LDA #$03
- JSL $01B7B3
- RTS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement