2020-03-01から1ヶ月間の記事一覧

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

【NES ゲームプログラミング編】 【ファイルの分割】 *NESASM は、分割コンパイルには対応していませんが .include/.incbin の疑似命令 でファイルを分けることが出来ます。 .include "library.asm" .incbin "map_data.bin" *上記のようにアセンブラソース…

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

【NES ゲームプログラミング編】 【ファイルの分割】 *NESASM は、分割コンパイルには対応していませんが .include/.incbin の疑似命令 でファイルを分けることが出来ます。 .include "library.asm" .incbin "map_data.bin" *上記のようにアセンブラソース…

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

【NES ゲームプログラミング編】 【 PPUの初期化 】 *PPUの初期化は、 $2000 と $2001 のコントロールレジスタを設定します、 只、コントロールレジスタはビットフラグになっていてプログラム上で個別に 設定しなければならない時があります。 下記にコード…

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

【NES ゲームプログラミング編】 【 スケルトンプログラムの作成 】 *スケルトンプログラムとは初期化とメインルーチンで構成され、それに各 処理への流れを記述しただけのプログラムを言う。 先ずは、ゲームメインルーチン設置から始めます。 〖 VBlank割…

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

【NES アセンブラ入門編】 【 シフト・ローテート命令 】 〖 左シフト命令 ASL 〗 *ASL は左に 1bit シフト する命令です。(空いた部分には 0 が入ります。) Aレジスタ x2を実行している。 『例』 lda #$01 ;#%00000001 asl a ;#%00000010 〖 右シフト命令 …

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

【NES アセンブラ入門編】 【 算術演算と論理演算】 〖 排他的論理和命令( EOR ) 〗 *排他的論理和命令 EOR は、Aレジスタとオペランドの各BITを比較して、お互いの BITが 反するときそのBITを 1 にする。 『例』 lda #1 EOR #$01 *上記のコードは Aレ…

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

【NES アセンブラ入門編】 【 算術演算と論理演算】 * ファミコン(6502)の算術演算は、加算と減算のみで、 キャリー付きの加算命令と減算命令が1つずつあるだけです。 〖 論理積命令( AND ) 〗 *論理積命令 AND は、Aレジスタとオペランドの各BITを…

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

【NES アセンブラ入門編】 【 算術演算と論理演算】 * ファミコン(6502)の算術演算は、加算と減算のみで、 キャリー付きの加算命令と減算命令が1つずつあるだけです。 〖 論理積命令( AND ) 〗 *論理積命令 AND は、Aレジスタとオペランドの各BITを…

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

【NES アセンブラ入門編】 【 算術演算と論理演算】 * ファミコン(6502)の算術演算は、加算と減算のみで、 キャリー付きの加算命令と減算命令が1つずつあるだけです。 〖 加算命令( ADC ) 〗 *加算命令 ADC は、Aレジスタとオペランドを加算し更に…

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

【NES アセンブラ入門編】 【 16bitの変数】 * ファミコン(6502)は、扱えるDATAが8ビット(1byte)長なので16ビットを 超えるDATAは、8ビットずつ数回にわけて処理する必要があります。 『 メインカウンターの設置』 *ゲームプログラムには欠かせ…

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

【NES アセンブラ入門編】 【 16bitの変数】 * ファミコン(6502)は、扱えるDATAが8ビット(1byte)長なので16ビットを 超えるDATAは、8ビットずつ数回にわけて処理する必要があります。 『 メインカウンターの設置』 *ゲームプログラムには欠かせ…