ボスを倒した後の処理
<基本処理> LDA #$02 ;甲羅、スターなどで吹き飛ばされた状態 STA $14C8,x ※$00で消滅。その場合落下処理不要。 LDA #$10 ;ボスを落下させる STA $AA,x JSL $018022 LDA #$53 ;倒した時の効果音(ルドウィックやロイ) STA $1DFC ※$3Cはスピンジャンプで敵を倒した時の効果音 <ルーム移動> LDA #$05 STA $71 <画面内の全てのスプライト消滅> JSL $00FA10 <ゴール処理> DEC $13C6 LDA #$FF STA $1493 LDA #$0B ; ボスゴール音、0Cで通常ゴール音 STA $1DFB ※マリオを下記の処理などで歩かせてゴールさせると、通常のゴール同様ピースしてゴールし、OWに戻っても音楽が消えていません。(注:音楽が0Cの時だけかもしれないので、要確認。) LDA #$01 STA $007B <扉を生成> ※要はブロックの生成や特殊エフェクトの生成 JSR GEN_BLK_UP ;扉生成処理呼び出し JSR GEN_BLK_DN JSR SUB_SMOKE_UP ;煙エフェクト呼び出し JSR SUB_SMOKE_DN ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 扉生成 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GEN_BLK_UP LDA #$70 ;x座標下バイト AND #$F0 STA $9A LDA $14E0,x ;x座標上バイト(ページ)、この場合スプライトがいるページ STA $9B LDA #$60 ;y座標下バイト AND #$F0 STA $98 LDA #$01 ;y座標上バイト(ページ) STA $99 REP #$30 LDA.W #$001F ;生成するタイルの16x番号 JSR SUBL_SET_MAP16 SEP #$30 RTS GEN_BLK_DN LDA #$70 ;x座標下バイト AND #$F0 STA $9A LDA $14E0,x ;x座標上バイト STA $9B LDA #$70 ;y座標下バイト AND #$F0 STA $98 LDA #$01 ;y座標上バイト(ページ) STA $99 REP #$30 LDA.W #$0020 ;生成するタイルの16x番号 JSR SUBL_SET_MAP16 SEP #$30 RTS SUBL_SET_MAP16 PHX TAX JSR SUB_8034 PLX RTS RETURN18 PLX PLB RTS SUB_8034 SEP #$20 PHB LDA #$00 PHA PLB REP #$30 PHX LDA $9A STA $0C LDA $98 STA $0E LDA.W #$0000 SEP #$20 LDA $5B STA $09 LDA $1933 BEQ NO_SHIFT LSR $09 NO_SHIFT LDY $0E LDA $09 AND #$01 BEQ HORIZ LDA $9B STA $00 LDA $99 STA $9B LDA $00 STA $99 LDY $0C HORIZ CPY.W #$0200 BCS RETURN18 LDA $1933 ASL A TAX LDA $BEA8,x STA $65 LDA $BEA9,x STA $66 STZ $67 LDA $1925 ASL A TAY LDA ($65),y STA $04 INY LDA ($65),y STA $05 STZ $06 LDA $9B STA $07 ASL A CLC ADC $07 TAY LDA ($04),y STA $6B STA $6E INY LDA ($04),y STA $6C STA $6F LDA #$7E STA $6D INC A STA $70 LDA $09 AND #$01 BEQ NO_AND LDA $99 LSR A LDA $9B AND #$01 BRA LABEL52 NO_AND LDA $9B LSR A LDA $99 LABEL52 ROL A ASL A ASL A ORA #$20 STA $04 CPX.W #$0000 BEQ NO_ADD CLC ADC #$10 STA $04 NO_ADD LDA $98 AND #$F0 CLC ASL A ROL A STA $05 ROL A AND #$03 ORA $04 STA $06 LDA $9A AND #$F0 LSR A LSR A LSR A STA $04 LDA $05 AND #$C0 ORA $04 STA $07 REP #$20 LDA $09 AND.W #$0001 BNE LABEL51 LDA $1A SEC SBC.W #$0080 TAX LDY $1C LDA $1933 BEQ LABEL50 LDX $1E LDA $20 SEC SBC.W #$0080 TAY BRA LABEL50 LABEL51 LDX $1A LDA $1C SEC SBC.W #$0080 TAY LDA $1933 BEQ LABEL50 LDA $1E SEC SBC.W #$0080 TAX LDY $20 LABEL50 STX $08 STY $0A LDA $98 AND.W #$01F0 STA $04 LDA $9A LSR A LSR A LSR A LSR A AND.W #$000F ORA $04 TAY PLA SEP #$20 STA [$6B],y XBA STA [$6E],y XBA REP #$20 ASL A TAY PHK PER.W #$0006 PEA $804C JML $00C0FB MAP16_RETURN PLB RTS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 煙生成 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SUB_SMOKE_UP LDY #$03 FINDFREE LDA $17C0,y BEQ FOUNDONE DEY BPL FINDFREE RTS FOUNDONE LDA #$01 ;スプライトの種類 STA $17C0,y LDA #$70 ;x座標 STA $17C8,y LDA #$60 ;y座標 STA $17C4,y LDA #$1B STA $17CC,y ;タイマー RTS SUB_SMOKE_DN LDY #$03 FINDFREE2 LDA $17C0,y BEQ FOUNDONE2 DEY BPL FINDFREE2 RTS FOUNDONE2 LDA #$01 ;スプライトの種類 STA $17C0,y LDA #$70 ;x座標 STA $17C8,y LDA #$70 ;y座標 STA $17C4,y LDA #$1B STA $17CC,y ;タイマー RTS ※ここで出てくるページや座標と言うのは、マリオのスタート位置等のページや座標と同様になっています。
BACK