OFGS-音源リファレンス

音源番号は、拡張音源の有無によって変わる。上から上乗せされる形で定義されるため、
たとえばMMC5が有効な場合、MMC5の音源番号は6,7になり、
VRC6とSS5Bを有効にした場合、VRC6が6,7,8、SS5Bが9,10,11と並ぶ。

2A03(ファミコン内蔵音源)

音源数:5

音源番号 音源名 音色指定方法 補足
1 パルス波1ch目 @Duty比,スイープレジスタ値 Duty比は、0が12.5%、1が25%、2が50%、3が75%。スイープレジスタのデフォルトは8。
2 パルス波2ch目 @Duty比,スイープレジスタ値 Duty比は、0が12.5%、1が25%、2が50%、3が75%。スイープレジスタのデフォルトは8。
3 三角波 @音長レジスタ値,未使用 パルス波と比べて1オクターブ低い。音量は$4011をいじることで変えるため、特別な用がなければVや@E{}は使わない方が良い。音長レジスタ値のデフォルトは4。凝ったことをしない限り、変えてはならない。
4 ノイズ @未使用,未使用 O0C〜O1D+が長周期、O1E〜O2Gが短周期。@L{}でも変更でき、その場合は0x80が長・短周期の境目になっている。
5 DPCM @4012,4013 V4011 O0C〜O1D+で周波数指定。V255と指定すると、$4011には何も書かずにDPCM再生する。

VRC6(ファミコン拡張音源)

音源数:3

音源番号 音源名 音色指定方法 補足
+1 パルス波1ch目 @Duty比,未使用 Duty比は8段階有り、0が6.25%、7が50%
+2 パルス波1ch目 @Duty比,未使用 Duty比は8段階有り、0が6.25%、7が50%
+3 ノコギリ波 @未使用,未使用

VRC7(ファミコン拡張音源)

音源数:6
カスタム音色は、レジスタに直接書く各方法で指定してください。(例:=0,{2123 1004 64f3 380a})

音源番号 音源名 音色指定方法 補足
+1〜+6 FM音源1〜6ch @音色番号,未使用 音色番号は、16種の音色から指定するのですが、
0〜15で通常、
16〜31でキーオフ時にもキーオンフラグを落とさず、
32〜47でSUS有効、
48〜63でSUS有効のキーオンフラグを落とさず版です。
デフォルトのエンベロープではキーオフ時に即消音なので、全部チップに任せる場合は@e{|ff00|ff00}として下さい。

FDS 2C33(ファミコン拡張音源)

音源数:2(メインと変調部を別トラックとして処理)

音源番号 音源名 音色指定方法 補足
+1 メイン波形部分 @{64バイト64サンプルの波形} このトラックのみで使用すれば波形メモリ音源として使える。
+2 FM変調部分 @{Bias値と16バイト32サンプルの波形} メイン波形部分のトラックを変調するためのトラック。このトラック単体を使っても何もならない。
波形指定例:@{00 33117755557711333311775555771133}

MMC5(ファミコン拡張音源)

音源数:2
内蔵のパルス波からスイープを抜いたような感じ。

音源番号 音源名 音色指定方法 補足
+1 パルス波1ch目 @Duty比,未使用 Duty比は、0が12.5%、1が25%、2が50%、3が75%
+2 パルス波2ch目 @Duty比,未使用 Duty比は、0が12.5%、1が25%、2が50%、3が75%

Sunsoft5B SS5B(ファミコン拡張音源)

音源数:3
SSG。PSG互換。エンベロープ速度の下位8bitは「=n,n」でいじること。それ以外はどうにかサポートしてます。

音源番号 音源名 音色指定方法 補足
+1〜+3 矩形波1〜3ch @エンベロープ・出力モード、エンベロープ下位8bit Vエンベロープ上位8bit 音色1の下位4bitがエンベロープ指定。0ならハードエンベロープ無効。それ以外はその値のエンベロープモード。
上位2bitが出力指定。0で矩形、1で矩形+ノイズ、2でノイズ、3で常に1。
音色2はノイズ周波数。
音量は、ハードエンベロープ無効時はそのままの音量、有効時はエンベロープ速度の上位8bit指定となる。
複数トラックでハードエンベロープ指定された場合は、出力ch3>ch2>ch1の順に優先される。

Namco 163等(ファミコン拡張音源)

音源数:1〜8(可変)
最大音源数は、asm内に「NSF_N163CHANNEL」で指定できる。また、曲中「=255,音源数」でいつでも変えられる。

音源番号 音源名 音色指定方法 補足
+1〜+8 波形メモリ1〜8ch @{波形格納アドレス 波形長 波形データ} 音を鳴らす際、まだ波形を更新してない場合に波形が書かれる。
なお、波形は左から順に後ろから書く方式のため、波形は左右逆になるけど、めんどくさい書き方しなくても大丈夫。
波形長は、F8なら4バイト、F0なら8バイト、E0なら16バイト、C0なら32バイト等の長さになる。

波形指定例:@{14 E0 89ABCDEFFEDCBA987654321001234567}

OFGSTRM Type1,2 (内蔵ストリーム音源:パルス波)

音源数:可変(8000Hzモード時最大5、4000Hzモード時最大10)

音源番号 音源名 音色指定方法 補足
+1〜 パルス波 @Duty比,未使用 Duty比は8段階有り、0が50%、7が6.25%。VRC6の逆バージョン

OFGSTRM Type3,4 (内蔵ストリーム音源:4bitPCM)

音源数:8000Hzモード時2、4000Hzモード時4

音源番号 音源名 音色指定方法 補足
+1〜 PCM @開始アドレスH, 上4bit長さ・下4bitループ時の減算値 アドレスの下位8bitは00固定。上4bit*0x100+0x100の長さで再生される。終端まで来たら、終端-下4bit*0x100+0xffの位置へループ再生される。
なお、音色指定の2バイト目を「15(x0F)」とすると開始位置からノンストップノンループで再生される。このとき、範囲外を読み出されるまえに@eや音長等で止めること。
例:0xA000-0xA6FF、0xA500からループの場合は、@xA0,x61となる。

OFGSTRM Type5,6 (内蔵ストリーム音源:6bit波形メモリ)

音源数:8000Hzモード時最大3、4000Hzモード時最大6

音源番号 音源名 音色指定方法 補足
+1〜 WAVE @{256バイトの波形} 00-3Fまでの値を256バイト分指定する。音色指定は256バイトより多くても少なくてもいけないし、40-FFの範囲は使ってはならない。音量は4段階。
例:@{00 01 02 03 04 05(以下略)


戻る