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

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

【NES アセンブラ入門編】 【 アセンブラでの変数】 * アセンブラに於いて変数の扱いは、基本的にRAMの領域なら自由に使えますが、 プログラムの領域と分けて使うのが望ましいでしょう。 ファミコンでは、プログラムの領域はROMになっているので競合…

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

【NES アセンブラプログラミング編】 【libraryの作成 】 *今回からは、前回のプログラムを使って、ライブラリーを作成していきます。 ファイル名は、library.asm とします。 【TEST用プログラム再掲載】 ;-----------------------------------------------…

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

【NES アセンブラプログラミング編】 【 TEST用プログラムの作成 】 〖 〗 *下記のコードはエミュレータで動く最小プログラムでFCEUXでは、動きましたが VirtualNES では、ゼロページの初期化とパターンDATAの設置までしないと 動かないようです。…

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

【NES アセンブラプログラミング編】 【 TEST用プログラムの作成 】 〖 ファミコンのパレット〗 * ファミコンのパレットは、BG・スプライト それぞれ4色4セット パレレットテーブルは、BG用が $3f00~3f0f スプライト用が $3f10~$3f1f 下の画像は、FCEUXのPP…

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

【NES アセンブラプログラミング編】 【 TEST用プログラムの作成 】 * TEST用プログラムとは、最小限の初期化のみで最後は無限ループで終わる プログラムで、サブルーチンの試験用で使っているものです。 ≪プログラムの構成≫ ⑴ ヘッダファイルの設置 ⑵ 割り…

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

【NES アセンブラ入門編】 【 JSR 命令とスタック 】 *JSR は、サブルーチンを呼び出す命令で サブルーチンからは原則として RTS で 復帰します。 JSR命令が、実行されるとPC(プログラムカウンター)を+2 してスタックに 戻りアドレスを 押し込んだ後で…

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

【NES アセンブラ入門編】 【 JSR 命令とスタック 】 *JSR は、サブルーチンを呼び出す命令で サブルーチンからは原則として RTS で 復帰します。 JSR命令が、実行されるとPC(プログラムカウンター)を+2 してスタックに 押し込んだ後でオペランドのアド…

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

【NES 基礎知識編】 【 I/Oポート $2005, $2006, $2007 】 〖 $2005 〗(2度書き) * $2005 は、スクロールレジスタでメモリアドレスで、スクロールオフセット 指定する、 X軸 8ビット、Y軸 8ビットを2回連続で書き込みます。 〖 $2006 〗(2度書き) *$…

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

【NES 基礎知識編】 【 I/Oポート $2005, $2006, $2007 】 〖 $2005 〗(2度書き) * $2005 は、スクロールレジスタでメモリアドレスで、スクロールオフセット 指定する、 X軸 8ビット、Y軸 8ビットを2回連続で書き込みます。 〖 $2006 〗(2度書き) *$…

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

【NES 基礎知識編】 【 I/Oポート $2003, $2004 】 〖 $2003 〗(書き込み専用) * $2003 は、スプライトメモリアドレスで スプライトDATAを書き込むアドレスを 指定する、 通常は0を設定。 〖 $2004 〗(読み書き可能) *$2004 は、スプライトデータレジ…

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

【NES 基礎知識編】 【コントロールレジスタ $2001, $2002 】 〖 $2001 〗 bit7~5: 背景色の強調。 000:強調無し 100:赤色を強調 010:緑色を強調 001:青色を強調 bit4: スプライト描画 s/w。 0:非表示 1:表示 bit3: BG描画 s/w。 0:非表示 1:表示 bit2: スプ…

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

【NES 基礎知識編】 【コントロールレジスタ $2000 】 *コントロールレジスタ $2000 は、ビットフラグに なっていて各々のBITがs/wになっています。 bit7: VBlank割り込みフラグ 1:割り込み許可 0:割り込み禁止 bit6: PPUマスター/スレーブセレクト 0:マ…

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

【NES 基礎知識編】 【コントロールレジスタの設定】 *コントロールレジスタは I/Oポートの $2000 と $2001 で、ビットフラグに なっていて、各種の初期化設定はここで行ないます。 【VBlank(垂直帰線区間)】 *VBlankとは垂直帰線区間とも言い、PPUが描…

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

【NES 基礎知識編】 【Vramのアクセス方法】 *Vramにアクセスするには、I/Oポートのアドレスレジスタ $2006 と データーレジスタ $2007 を使います、データーレジスタを使ううえで注意すべき点 が3つほどあります。 1.データーレジスタは8ビットなので2…

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【アセンブラ入門編】 〖基礎知識編〗 ≪フラグと分岐命令≫ *条件分岐命令の条件としてのキャリーフラグ・ゼロフラグは重要でこの2つは 使いこなせるようにしましょう。 〖ゼロフラグの使い方〗 ☆ゼロフラグは、主にループ制御のカウンターが0になったかを…

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【アセンブラ入門編】 〖基礎知識編〗 ≪ステータスレジスタ≫ *ステイタスレジスタは、条件分岐命令の条件として保持されているもので 頻繫に使われるので、よく理解する必要があります。特にキャリーフラグ、 ゼロフラグは重要でこの2つが使いこなせればゲ…

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【アセンブラ基礎知識編】 *メモリーの構成をメモリーマップといいます、ファミコンのメモリーマップは 下の様になっています。 $0000~$07ff :RAM $0800~$1fff :RAMミラー $2000~$2007 :PPU I/O レジスタ $2008~…

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【アセンブラ基礎知識編】 【アセンブラ入門編】 〖アドレッシングモード〗 *6502はレジスタの数は少ないですが、アドレッシングは比較的豊富です。 アドレッシングとは、オペコードの操作対象になるものです。 1.Implied :暗黙的省略 2.Accumulator …

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【アセンブラ基礎知識編】 ⁂レジスタは、一時的にDATAを入れる箱で計算をしたり、コピーしたりいます。 『レジスタの種類』 1.Aレジスタ:アキュームレータともいわれ主に汎用演算を担っています。 2.Xレジスタ:インデックスレジスタともいわれ主に配列…

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

*まずは、TESTプログラムを実行出来る様にしたいのでプログラムの入力を 優先させますので、理解できなくとも問題ありません。 【NESヘッダーと疑似命令】 *ヘッダーは16byteの大きさで、エミュレーターにカセットの情報を提供するもので、実機ではありま…

ドラクエ風 ファミコンプログラム 開発環境の準備

【NESアセンブラ基礎編】 ⁂ 1.CPUとレジスタ *CPUはコンピューターの頭脳ともいうべきもので、メモリーに書かれた命令を 実行したり、CPUの手足であるレジスタをつかい計算やメモリーの読み書き するまのである。 2.メモリー *メモリーとは、プログラ…

ドラクエ風 ファミコンプログラム 開発環境の準備

*ブログ掲載も50回を超えました、これまでを振り返ってみて初期の方針とは少し 違っているように感じました。 このブログを始める切っ掛けは、ファミコンのハードの優秀さを 少しでも多くの人に理解してもらいたいと思ったからです。 そこで、もうすこし初…

ドラクエ風 ファミコンプログラム 開発環境の準備

*ブログ掲載も50回を超えました、これまでを振り返ってみて初期の方針とは少し 違っているように感じました。 このブログを始める切っ掛けは、ファミコンのハードの優秀さを 少しでも多くの人に理解してもらいたいと思ったからです。 そこで、もうすこし初…

ドラクエ風 ファミコンプログラム 開発環境の準備

*ブログ掲載も50回を超えました、これまでを振り返ってみて初期の方針とは少し 違っているように感じました。 このブログを始める切っ掛けは、ファミコンのハードの優秀さを 少しでも多くの人に理解してもらいたいと思ったからです。 そこで、もうすこし初…

ドラクエ風 ファミコンプログラム 第1章 開発の準備

*ブログ掲載も50回を超えました、これまでを振り返ってみて初期の方針とは少し 違っているように感じました。 このブログを始める切っ掛けは、ファミコンのハードの優秀さを 少しでも多くの人に理解してもらいたいと思ったからです。 そこで、もうすこし初…

ドラクエ風 ファミコンプログラム 第1章 開発の準備

*ブログ掲載も50回を超えました、これまでを振り返ってみて初期の方針とは少し 違っているように感じました。 このブログを始める切っ掛けは、ファミコンのハードの優秀さを もうすこし初心者にも実際にプログラムのコンパイル・実行をして 頂けるような内…

ドラクエ風 ファミコンプログラム 第1章 開発の準備

*ブログ掲載も50回を超えました、これまでを振り返ってみて初期の方針とは少し 違っているように感じました。 もうすこし初心者にも実際にプログラムのコンパイル・実行をして 頂けるような内容にすべきかと思い 開発環境・アセンブリ言語等を詳細に解説し…

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【第50回】 『ドラクエ風日本語表示システム』 1.str_pr:濁点処理の追加 ⁂赤色のとこらが、追加変更された部分です。 2.濁点・半濁点処理 ⁂濁点処理は、画像の様に平仮名の上に ゛や ゜をつけます。 str_pr: jsr Vram_add_set lda mess00,y iny cmp #…

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【第49回】 『ドラクエ風日本語表示システム』 1.ひらがなFONTの追加 2.濁点・半濁点の処理の方法 ⁂ファミコン版ドラゴンクエストの平仮名表示は下の画像の様に、 濁点・半濁点は文字の右上に表示される。 【画像】 *平仮名FONTパターンDATA .bank 2 …

ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

【第48回】 『スプライトパターンの構成』 *ファミコンはDATA量節約する為、スプライトパターンを左右入れ替えて水平に 反転させています。 【画像】 *スプライトパターン構成DATA 下のコードからも左右入れ替えているのが分かると思う、 水平反転の指定…