5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【ファミコン】mckについて語りましょう 8【NSF】

169 :名無しサンプリング@48kHz:2005/08/31(水) 23:12:03 ID:e184rErQ
ここからが本題です。
Bank overflowとその対策について詳細に述べます。

まず基本知識として(pp)mckシステムの全体像を説明します。

(pp)mckは曲データを読み込み、演奏する(音源を操作する)プログラムです。
曲データはMMLでもMIDI(SMF)でもなくて専用の形式を用いています。
専用形式の曲データを人間が手で書くのは面倒なので、mck専用曲データは
MMLテキストファイルから(pp)mckc.exeで変換して作成します。
変換した結果(effect.hとsongdata.h)を、(pp)mckの再生ルーチンのソースコードもろとも
nesasmでコンパイルします。するとファミコンorエミュレータで実行可能なデータ
(機械語バイナリなROMイメージ)になります。

次に、nesasmの仕様について説明します。

nesasmには「バンク」という概念があります。これは、nesasmが出力するファイルの
出力バイナリオフセット位置を8KB(8192バイト)ずつ区切ったものです。
bank 0は(iNESヘッダを除いた)0x0000〜0x1FFFを表し、bank 1は0x2000〜0x3FFF…
となっています。nesasmのbankの概念は、あくまでも出力バイナリのオフセット位置であり、
どのbankが何を意味するかはまた別の問題です。

ppmckの場合は各bankを次のように使用しています。
■bank 0
 必ず使用される。
 ppmckプログラム本体、@v・EPなどエフェクト用数字配列、曲データがここに置かれる。
 nsfバイナリオフセット位置0x0000〜0x1FFFに対応する。
 NES CPUアドレスの0x8000-0x9FFFに対応する。

262 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)