実機で動作させるためにはROM化を行うのが本来の方法ですが、NSFプレイバックカートリッジ「TNS-HFC」を使ってSDカード経由で動作させることができます。
「TNS-HFC」はNSFファイルの実機再生だけでなく、実機動作プラットホームとしての活用も考慮されている素晴らしいハードウェアです。
キャラクタ領域はRAMで実装されていますのでプログラム側から任意のキャラクタデータを転送できますし、THS-HFC3以降はバンク切り替えで約1MBのメモリ空間が利用可能です!
難点はデバッグ作業が難しいことです。
実機でのデバック自身が難しいこともありますが、現状では「NX(Nsf eXtend)アーキテクチャ仕様」を満たすエミュレータがないため、実機で動作させる前にデバッグを行うためにはローダを工夫して既存マッパー上でなんとかすることになります。
ただ、マッパー0のプログラム32KB/キャラクタ8KBの構成であれば、「TNS-HFC」側のローダーが展開してくれますので、簡単に実機動作ができます。
また、一般的なエミュレータでの動作確認もできますので、実機動作前のデバッグが容易になります。
現在のところ開発用と思われる機能を利用して実機動作を行っています。
場合によっては実機やTNS-HFCシリーズの故障につながる恐れもありますのでご注意ください。
当アプリケーションについてのご質問等は、@MIRROR_宛にお願いします。
TNS-HFCシリーズの開発元であるテラネットワークシステム様へのお問い合わせはお控えください。
- 実機動作の確認手順
-
- アプリケーションがマッパー0(プログラム32KB/キャラクタ8KB)であることを確認
- 拡張子を「.nsf」へ変更
- SDカードに書き込み
- 実機に接続した「TNS-HFC」へSDカードを装着し、電源投入
- LEDの点灯が落ち着いたところでリセット
アプリケーションのメモリレイアウトについては、cc65/cfg/nes.cfgに記載されています。
拡張RAM領域まで使用していますが、ROM領域はマッパー0と同じですので動作可能なファイルが作成できます。
もし、ビルド時に以下のような警告が表示された場合はメモリ不足の状態ですので、該当するセグメントのプログラムコードやデータを小さくする必要があります。
(通常は以下のエラーも表示されて実行モジュールは出力されません。)ld65: Warning: cc65/cfg/nes.cfg(33): Memory area overflow in `ROM0', segment `RODATA' (2582 bytes)
ld65: Error: Cannot generate output due to memory area overflow
ld65を-mオプション付きで呼び出した場合はマップファイルが出力されていますので、省メモリ化の検討に使えます。
プログラム領域は0x8000〜0xffffですので、Endのアドレスが0x10000以上になった時点で警告が出ています。
Modules list: ------------- main.o: CODE Offs=000000 Size=000046 Align=00001 Fill=0000 RODATA Offs=000000 Size=008004 Align=00001 Fill=0000 DATA Offs=000000 Size=000100 Align=00001 Fill=0000 〜中略〜 Segment list: ------------- Name Start End Size Align ---------------------------------------------------- CHARS 000000 000FFF 001000 00001 HEADER 000000 00000F 000010 00001 ZEROPAGE 000002 00001B 00001A 00001 DATA 006000 00612F 000130 00001 BSS 006130 006160 000031 00001 STARTUP 008000 00805C 00005D 00001 INIT 00805D 00809E 000042 00001 CODE 00809F 0088C9 00082B 00001 RODATA 0088CA 010A09 008140 00001 VECTORS 00FFF6 010001 00000C 00001
「SDカードに書き込み」以降は、通常の「.nsf」ファイルと同じ取扱いです。
LEDの点灯状況については必ず確認しましょう。正常に読み込めない場合はエラー点灯になります。
LEDの点灯パターンについては取扱説明書を熟読しておきましょう。
旧はアナログ電波が受信可能なTVが必要なので敷居が高くなりました。
-
参考: