サウンドドライバファンクション
サウンドについて及び、サウンドデータ、シーケンスデータも参照のこと。
このページには、サウンド演奏の命令であるサウンドドライバファンクションの一覧・説明を掲載している。
ARAMに設置したサンプリングデータとシーケンスデータに対し、実際に「演奏しろ」「演奏終了しろ」「フェードインしながら演奏開始しろ」「フェードアウトしながら演奏終了しろ」「一部パートをミュートして演奏しろ」……などなどといった指示を出すコマンドがサウンドドライバファンクションである、と考えていただきたい。
以下コマンドは、CPUからI/Oレジスタ$00:2140~$00:2143の4バイトを通してAPUへ送信する。
ほとんどの場合で、$00:1D00~$00:1D03に書き込んだ数値を$00:2140~$00:2143へコピーする、という手順で送信をする。
名称はGnilda のページ様からお借りした。またデータも多数参考にさせていただいている。
$00:1D00~$00:1D03を通して指示したサウンドドライバファンクションは、指示した値を直前の3回分記録している。
| アドレス | 内容 |
$00:1D00~$00:1D03 | サウンドドライバファンクションコマンド4バイト ※コマンドが4バイト未満の場合、前の値が消えずに入ったまま |
$00:1D04~$00:1D07 | サウンドドライバファンクションコマンド4バイト 1回前に送った$00:1D00~$00:1D03の値 |
$00:1D08~$00:1D0B | サウンドドライバファンクションコマンド4バイト 2回前に送った$00:1D00~$00:1D03の値 |
以下は筆者が確認した分であり、他にもコマンドがある可能性もある。更に間違いが含まれているかもしれないことをご了承いただきたい。
サウンドドライバファンクション
$10 xx yy BGM演奏開始(演奏中断設定込)
- 引数
- xx:BGMID $00~$4D
yy:音量 $00~$FF
- 内容
- BGMIDxxを音量yyで演奏開始する。
コマンド$14で他の曲を割り込ませた場合、その曲の演奏停止後にレジューム演奏ができる。
$11 xx yy BGM演奏開始(バージョン違い)
- 引数
- xx:BGMID $00~$4D
yy:音量 $00~$FF
- 内容
- BGMIDxxを音量yyで演奏開始する。
特定のBGMIDはバージョン違いの曲が演奏される(下表参照)。他にも対象曲があるかもしれない。
バージョン違いが存在しない場合、コマンド$10と同じ役割と思われる。
| BGMID | 曲名 | 内容 |
| $04 | WANDERER | 前奏なしバージョン |
| $08 | UNSEEN SYNDROME | チャネル2と3のみのバージョン(SF編オープニング) |
| $19 | 届かぬ翼 | 回想などで流れるスローバージョン(リメイクにおける「届かぬ翼 (回想)」) |
$14 xx yy BGM演奏開始(演奏中断割り込み用)
- 引数
- xx:BGMID $00~$4D
yy:音量 $00~$FF
- 内容
- BGMIDxxを音量yyで演奏開始する。
コマンド$10で演奏中の曲に割り込む時に使う(フィールド曲をレジュームで演奏している最中のザコ戦や、アイテム獲得でボイス効果音を流す時など)。
$18 xx yy 効果音ID$00~$FF 演奏開始
- 引数
- xx:効果音ID $00~$FF
yy: 音のパン(音の定位) $00~$FF
- 内容
- 効果音IDxxを演奏する。音のパンの設定は$00 (左)~$80 (中央・モノラル)~$FF (右)、中央に$7Fを設定することもあり。
- 備考
- フィールドで演奏された場合、yyの値は
$00:0A63に書き込まれる(次の効果音演奏まで上書きされず残る)
$20 カーソル系効果音 決定音 演奏開始
- 内容
- カーソル系効果音の決定音を演奏する。
$21 カーソル系効果音 キャンセル音 演奏開始
- 内容
- カーソル系効果音のキャンセル音を演奏する。
$22 カーソル系効果音 ブザー音 演奏開始
- 内容
- カーソル系効果音のブザー音を演奏する。
$23 カーソル系効果音 カーソル移動音 演奏開始
- 内容
- カーソル系効果音のカーソル移動音を演奏する。
$80 xx yy フェード用音量倍率 設定/変化
- 引数
- xx:音量変化時間 $00~$FF($00で音量変化時間なし)
yy:音量 $00~$FF($00で無音、$FFがデフォルト音量)
- 内容
- BGMと効果音の音量を、音量変化時間yyかけて音量xxに設定する。
$81 xx yy BGMフェード用音量倍率 設定/変化
- 引数
- xx:音量変化時間 $00~$FF($00で音量変化時間なし)
yy:音量 $00~$FF($00で無音、$FFがデフォルト音量)
- 内容
- BGMの音量を、音量変化時間yyかけて音量xxに設定する。
- 備考
- フィールドで演奏された場合、yyの値は
00:0A61に書き込まれる。
$82 xx yy 効果音フェード用音量倍率 設定/変化
- 引数
- xx:音量変化時間 $00~$FF($00で音量変化時間なし)
yy:音量 $00~$FF($00で無音、$FFがデフォルト音量)
- 内容
- 効果音の音量を、音量変化時間yyかけて音量xxに設定する。
※音量変化時間を設定しても効果なし?
- 備考
- フィールドで演奏された場合、yyの値は
$00:0A62に書き込まれる(次の効果音演奏まで上書きされず残る)
$86 xx yy BGM演奏速度倍率 設定/変化
- 引数
- xx:処理時間 $00~$FF
yy:演奏速度(倍率) $00~$FF(符号付き8ビット整数, 通常$00)
- 内容
- 処理時間xxかけて演奏速度をyyに変更する。演奏速度が負なら速度低下、正なら速度上昇。
- 備考
- フィールドで演奏された場合、yyの値は
$00:0A64に書き込まれる。
$89 xx yy BGMピッチ倍率 設定/変化
- 引数
- xx:処理時間 $00~$FF
yy:ピッチ(倍率) $00~$FF(符号付き8ビット整数, 通常$00)
- 内容
- 処理時間xxかけてピッチをyyに変更する。ピッチが負ならピッチ低下、正ならピッチ上昇。
- 備考
- フィールドで演奏された場合、yyの値は
$00:0A65に書き込まれる。
$8C ?
- 内容
- (
$00:0A6BにON・OFFが書き込まれるパラメータ、内容不明)
$8F ?
- 内容
- (
$00:0A6CにON・OFFが書き込まれるパラメータ、内容不明)
$F0 演奏停止
- 内容
- BGMと効果音の演奏を停止する。
$F1 BGM演奏停止
- 内容
- BGMの演奏を停止する。
$F2 効果音演奏停止
- 内容
- 効果音の演奏を停止する。
$F3 サウンド出力ステレオ設定
- 内容
- サウンド出力をステレオに設定する。
- 備考
- メニュー→音声から変更可能。ステレオに設定すると、
$00:0AB5のBit7に%0が書き込まれ、ARAMアドレス$0085に$00が書き込まれる。
$F4 サウンド出力モノラル設定
- 内容
- サウンド出力をモノラルに設定する。
- 備考
- メニュー→音声から変更可能。モノラルに設定すると、
$00:0AB5のBit7に%1が書き込まれ、ARAMアドレス$0085に$01が書き込まれる。
$F5 xx BGMミュート設定 (チャネル選択)
- 引数
- xx:ミュートするチャネル $00~$FF
- 内容
- Bit0~7がチャネル0~7に対応しており、1が立っているチャネルはミュート(無音)処理される。
- 備考
- フィールドで演奏された場合、yyの値は
$00:0A66に書き込まれる。
$F6 サウンド全ミュート
- 内容
- BGMと効果音をミュート(無音)にする。
$F8 ?
- 内容
- (
$00:0A67にON・OFFが書き込まれるパラメータ、内容不明)
$FB ループ停止してコーダ部へ
- 内容
- 指定後、ループ処理せずコーダ部へ移行して演奏終了する。
BGMID$18「GO!GO!ブリキ大王!!」用と思われる(近未来編オープニング)。