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

NES ゲームプログラミング編】

【 PPUの初期化 】

*PPUの初期化は、 $2000 と $2001 のコントロールレジスタを設定します、

 只、コントロールレジスタはビットフラグになっていてプログラム上で個別に

 設定しなければならない時があります。

 下記にコードを示します、 ゼロページに変数として PPU2000、PPU2001 に

 値を保持し、変数を変更し8ビット全体をSTA します。

 

 

SP_table:
lda ppu_2000
ora #%00001000
sta ppu_2000
sta $2000
rts
color:
lda ppu_2001
and #%11111110
sta ppu_2001
sta $2001
rts
monochro:
lda ppu_2001
ora #%00000001
sta ppu_2001
sta $2001
rts
red:
lda ppu_2001
ora #%00100000
sta ppu_2001
sta $2001
rts
green:
lda ppu_2001
ora #%01000000
sta ppu_2001
sta $2001
rts

bule:
lda ppu_2001
ora #%10000000
sta ppu_2001
sta $2001
rts
RGB_res:
lda ppu_2001
and #%00011111
sta ppu_2001
sta $2001
rts
BG_on:
lda ppu_2001
ora #%00001000
sta ppu_2001
sta $2001
rts
BG_off:
lda ppu_2001
and #%11110111
sta ppu_2001
sta $2001
rts
SP_on:
lda ppu_2001
ora #%00010000
sta ppu_2001
sta $2001
rts
SP_off:
lda ppu_2001
and #%11101111
sta ppu_2001
sta $2001
rts
Vraminc32:
lda ppu_2000
ora #%00000100
sta ppu_2000
sta $2000
rts
Vraminc1:
lda ppu_2000
and #%11111011
sta ppu_2000
sta $2000
rts

f:id:chien1956:20200307220618p:plain