ドラクエ風RPGファミコンプログラム講座

NES アセンブラプログラミング編】

【 TEST用プログラムの作成 】

 〖 〗

*下記のコードはエミュレータで動く最小プログラムでFCEUXでは、動きましたが

 VirtualNES では、ゼロページの初期化とパターンDATAの設置までしないと

 動かないようです。ネストピアは、さらにシビアなようです。

 *****印の所にテストプログラムを書いていきます。

 

;------------------------------------------------------

.inesprg 1
.ineschr 1
.inesmir 1
.inesmap 0
;-------------------------------------------------------

.bank 1
.org $FFFA
.dw 0
.dw Start
.dw 0
;--------------------------------------------------------------
.bank 0

.org $8000;
Start:
sei ;割り込み禁止
cld ;フラグクリア
ldx #$ff ;スタックポインターの初期化
txs
lda #%00001000 ; ここではVBlank割り込み禁止
sta $2000

lda #%00011000

sta $2001

VB0:

lda $2002

bpl VB0

jsr palette

jsr zero_init

 

*********

*********


main_loop:
jmp main_loop

  

palette:

lda #$3f
sta $2006
lda #$00
sta $2006
ldx #0
pal_loop:
lda pall,x
sta $2007
inx
cpx #32
bne pal_loop
rts

zero_init:
lda #0
tax
lp00:
sta <$00,x
inx
bne lp00
rts

;-------------------------------------------------------------pall:
.db $0f,$30,$11,$21
.db $0f,$29,$1a,$27
.db $0f,$10,$00,$29
.db $0f,$29,$37,$11
.db $0f,$35,$30,$12
.db $0f,$26,$24,$25
.db $0f,$26,$27,$28
.db $0f,$11,$12,$13

*コントロールレジスタの設定は、BGパターンが $0000 スプライトパターンが

 $1000,  BG・スプライトの表示ON