Gnilda のページ


サウンドドライバファンクション一覧 — Romancing Sa·Ga 3


  1. ホーム
  2. スーパーファミコンのサウンドドライバ
  3. Romancing Sa·Ga 3
  4. サウンドドライバファンクション一覧

サウンドドライバファンクション一覧
10 xx yy zz
音楽演奏開始 1-A
11 xx yy zz
音楽演奏開始 2-A
12 xx yy zz
音楽演奏開始 1-B
13 xx yy zz
音楽演奏開始 2-B
14 xx yy zz
音楽演奏開始 1-C
15 xx yy zz
音楽演奏開始 2-C
16 xx yy zz
音楽演奏開始 1-D
17 xx yy zz
音楽演奏開始 2-D
18 xx yy
効果音 1 演奏開始
19 xx yy
効果音 2 演奏開始
1A xx yy
効果音 3 演奏開始
1B xx yy
効果音 4 演奏開始
1C xx yy
シーケンスコマンド EF 効果音再生 (キーオン) 設定 [パン・キーオン時エコー無効]
1D xx yy
シーケンスコマンド EF 効果音再生 (キーオン) 設定 [パン・キーオン時エコー有効]
80 xx yy
フェード用音量倍率 設定/変化
81 xx yy
音楽フェード用音量倍率 設定/変化
82 xx yy
効果音フェード用音量倍率 設定/変化
85 xx yy
音楽ピッチと演奏速度倍率 設定/変化
86 xx yy
音楽演奏速度倍率 設定/変化
87 xx yy
音楽ピッチ倍率 設定/変化
88 xx
シーケンスコマンド FA のデータ設定
8D xx
音楽演奏開始 3
8E xx
シーケンスコマンド FD の設定 [有効/無効]
8F xx
DSP Master Volume 自動変化の設定 [有効/無効]
F0
演奏停止
F1
音楽演奏停止
F2 xx
効果音演奏停止 (選択)
F3 xx
音声出力設定 [ステレオ/モノラル]
F4
音楽ミュート
F5 xx
演奏中断設定 [有効/無効]
F6 xx
演奏速度設定 — クイックタイム [有効/無効]
F8 xx
音楽ミュート解除 (トラック選択)
F9 xx
音楽ミュート設定 (トラック選択)
FC xx
エコーディレイ設定
FE
データ転送
APU メモリブロックコピー
FF 01 yy
シーケンスコマンド F7F8 の動作 [設定/変化] と APU I/O ポート へ書き込む内容 の設定
FF F0
再起動

サウンドドライバファンクション

80フェード用音量倍率 設定/変化

80 xx yy
xx : 処理時間 ($00–$FF)
yy : 音量倍率 ($00–$FF)

ファンクション 81 xx yy82 xx yy を実行します。

81音楽フェード用音量倍率 設定/変化

81 xx yy

実行中のファンクション 81 (変化) は中断されます。

設定
xx : 処理時間 ($00)
yy : 音量倍率 ($00–$FF)

音楽のフェードイン・フェードアウトに使用する音量の倍率を yy に設定します。

変化
xx : 処理時間 ($01–$FF)
yy : 音量倍率 ($00–$FF)

音楽のフェードイン・フェードアウトに使用する音量の倍率が、現在の値 V から Y まで約 Xmin–Xmax ㎳ で変化します。

音量倍率の整数部が前回の値と異なる場合、全ての音楽演奏中のトラックに対応した DSP チャネル の Volume 計算フラグがオンになります。

音量倍率の整数部が 0 で終了した場合、ファンクション F1 を実行します。

実行時に音楽を演奏中且つ効果音を演奏中ではない DSP チャネル の Volume 計算フラグがオンになります。

処理時間 と 音量倍率(Y1 は 1 回あたりの倍率変化量)
xxyy動作XminXmaxY0Y1Y
0any設定00--yy
0 以外≤ V変化4.875 × (7 × (xx - 1) )Xmin + 4.875 × 6(yy - V) × 256Y0 / xxV + Y1 × xx / 256
> VY0 / xx

82効果音フェード用音量倍率 設定/変化

82 xx yy

実行中のファンクション 82 (変化) は中断されます。

設定
xx : 処理時間 ($00)
yy : 音量倍率 ($00–$FF)

効果音のフェードイン・フェードアウトに使用する音量の倍率を yy に設定します。

変化
xx : 処理時間 ($01–$FF)
yy : 音量倍率 ($00–$FF)

効果音のフェードイン・フェードアウトに使用する音量の倍率が、現在の値 V から Y まで約 Xmin–Xmax ㎳ で変化します。

音量倍率の整数部が前回の値と異なる場合、効果音を演奏中の DSP チャネル の Volume 計算フラグがオンになります。

音量倍率の整数部が 0 で終了した場合、ファンクション F2 0F 相当の処理を実行します。

実行時に効果音を演奏中の DSP チャネルの Volume 計算フラグがオンになります。

処理時間 と 音量倍率(Y1 は 1 回あたりの倍率変化量)
xxyy動作XminXmaxY0Y1Y
0any設定00--yy
0 以外≤ V変化4.875 × (7 × (xx - 1) )Xmin + 4.875 × 6(yy - V) × 256Y0 / xxV + Y1 × xx / 256
> VY0 / xx

85音楽ピッチと演奏速度倍率 設定/変化

85 xx yy
xx : 処理時間 ($00–$FF)
yy : 倍率 ($80–$7F)

87 xx yy86 xx yy を実行します。

86音楽演奏速度倍率 設定/変化

86 xx yy

実行中のファンクション 86 (変化) は中断されます。

設定
xx : 処理時間 ($00)
yy : 演奏速度倍率 ($80–$7F)

シーケンスコマンド F0 で設定される音楽演奏速度の倍率を yy に設定します。

変化
xx : 処理時間 ($01–$FF)
yy : 演奏速度倍率 ($80–$7F)

シーケンスコマンド F0 で設定される音楽演奏速度の倍率が、現在の値 MT から Y まで約 Xmin–Xmax ㎳ で変化します。

$80 (約 0.5 倍)–$00 (1.0 倍)–$7F (約 2.0 倍)

Y が 0 以外の値の場合は、演奏速度の計算結果 T0 が 0 以下の場合は 1 、255 を超える場合は 255 が設定されます。

処理時間 Xmin,Xmax と 演奏速度倍率 Y(Y1 は 1 回あたりの倍率変化量)
xxyy動作XminXmaxY0Y1Y
0any設定00--yy
0 以外= MT
< MT変化4.875 × (7 × (xx - 1) )Xmin + 4.875 × 6(yy - V) × 256Y0 / xxV + Y1 × xx / 256
> MTY0 / xx
演奏速度倍率 Y と 演奏速度 T(TF0 はシーケンスコマンド F0 で設定される値)
YT0T備考
$80–$FFTF0 × U8(Y) / 256 × 1MAX(001, T0)
$00TF0T0T = 0 : シーケンスコマンド処理不可
$01–$7FTF0TF0 × Y / 256 × 2MIN(255, T0)

87音楽ピッチ倍率 設定/変化

87 xx yy

実行中のファンクション 87 (変化) は中断されます。

設定
xx : 処理時間 ($00)
yy : ピッチ倍率 ($80–$7F)

音楽のピッチ計算に使用する倍率を yy に設定します。

変化
xx : 処理時間 ($01–$FF)
yy : ピッチ倍率 ($80–$7F)

音楽のピッチ計算に使用する倍率が、現在の値 MP から Y まで約 Xmin–Xmax ㎳ で変化します。

$80 (約 0.5 倍)–$00 (1.0 倍)–$7F (約 2.0 倍)

計算結果 P の下位 14 ビットが有効です。

処理時間 Xmin,Xmax と ピッチ倍率 Y(Y1 は 1 回あたりの倍率変化量)
xxyy動作XminXmaxY0Y1Y
0any設定00--yy
0 以外= MP
< MP変化4.875 × (7 × (xx - 1) )Xmin + 4.875 × 6(yy - V) × 256Y0 / xxV + Y1 × xx / 256
> MPY0 / xx
ピッチ倍率 Y と ピッチ P(P0 は キーオン + ピッチスライド + ビブラート の値)
YP
$80–$FFP0 × U8(Y) / 256 × 1
$00–$7FP0P0 × Y / 256 × 2

88シーケンスコマンド FA のデータ設定

88 xx
xx : 内部データの値 ($00–$0F)

シーケンスコマンド FA で使用する内部データの値を xx に設定します。

xx の上位 4 ビットは無視されます。

8D音楽演奏開始 3

8D

全体の演奏データを初期化します (全トラックビット初期化・演奏速度)。

このファンクション以外で最後にデータ転送が実行された音楽演奏開始ファンクションの設定を使用してトラックデータ先頭アドレスを設定します。

トラック毎の演奏データを初期化します (変化系中断・無効)。

シーケンスコマンド F4 の音量倍率が 255 に設定されます。

シーケンスコマンド FD が 有効に設定されます。

8Eシーケンスコマンド FD の設定 [有効/無効]

8E xx
xx : フラグ ($00–$FF)

xx でシーケンスコマンド FD の 有効/無効 を設定します。

フラグ と 機能
xxFD
0有効
0 以外無効

8FDSP Master Volume 自動変化 (と DSP Echo Volume 更新) の設定 [有効/無効]

8F xx
xx : フラグ ($00–$01)

xx の上位 7 ビットは無視されます。

自動変化を無効に設定した場合は DSP Master Volume に 64 が設定されます。

自動変化を有効に設定した場合は内部の移動量の整数部が前回と異なる場合に、 DSP Master Volume と Echo Volume が計算・設定されます。

音声出力がモノラルの場合は無視されます。

不具合と思われる動作

xx の最下位 ビットで DSP Master Volume 自動変化の 有効/無効 を設定します。

自動変化を有効に設定した場合、初回は約 4.875 * 79 ㎳、以降は 4.875 * 160 ㎳ 周期で DSP Master Volume の移動量が変化し続けます。

xx が 1 且つ 音声出力がモノラルの場合は、シーケンスコマンド F2 を実行しても内部データの値が更新されるだけで、DSP Echo Volume は更新されません

フラグ と 設定
xx.0音声出力設定
0モノラル-
ステレオ無効
1モノラル-
ステレオ有効
設定 と 動作
8F 設定音声出力MVol 自動変化EVol 更新
無効モノラル無効F2
ステレオ
有効モノラル-
ステレオ有効F2
処理回数 と 移動量・Volume(n = 0, 1, ...)
処理回数移動量MVol(L)MVol(R)
80 × (4n + 0)±00-64+64
80 × (4n + 1)+63-34+94
80 × (4n + 2)±00-64+64
80 × (4n + 3)-64-96+32
機能仕様通りと思われる動作 1 (Echo Volume は自動変化しない)

xx の最下位 ビットで DSP Master Volume 自動変化の 有効/無効 を設定します。

自動変化を有効に設定した場合、初回は約 4.875 * 79 ㎳、以降は 4.875 * 160 ㎳ 周期で DSP Master Volume の移動量が変化し続けます。

フラグ と 設定
xx.0音声出力設定
0モノラル-
ステレオ無効
1モノラル-
ステレオ有効
設定 と 動作
8F 設定音声出力MVol 自動変化EVol 更新
無効モノラル無効F2
ステレオ
有効モノラル
ステレオ有効
処理回数 と 移動量・Volume(n = 0, 1, ...)
処理回数移動量MVol(L)MVol(R)
80 × (4n + 0)±00-64+64
80 × (4n + 1)+63-34+94
80 × (4n + 2)±00-64+64
80 × (4n + 3)-64-96+32
機能仕様通りと思われる動作 2 (Echo Volume も自動変化する)

xx の最下位 ビットで DSP Master Volume と Echo Volume 自動変化の 有効/無効 を設定します。

自動変化を有効に設定した場合、初回は約 4.875 * 79 ㎳、以降は 4.875 * 160 ㎳ 周期で DSP Master Volume と Echo Volume の移動量が変化し続けます。

フラグ と 設定
xx.0音声出力設定
0モノラル-
ステレオ無効
1モノラル-
ステレオ有効
設定 と 動作
8F 設定音声出力自動変化
無効モノラル無効
ステレオ
有効モノラル
ステレオ有効
処理回数 と Volume(n = 0, 1, ... E は シーケンスコマンド F2 で設定するエコーボリュームの値)
処理回数MVol(L)MVol(R)EVol(L)EVol(R)
80 × (4n + 0)-64+64+E-E
80 × (4n + 1)-34+94E × 191 / 128E × 065 / 128
80 × (4n + 2)-64+64+E-E
80 × (4n + 3)-96+32E × 064 / 128E × 192 / 128

F0演奏停止

F0

ファンクション F1F2 0F 相当の処理を実行します。

F1音楽演奏停止

F1

内部フラグを更新して演奏停止します。

演奏データを退避している曲の番号と現在演奏中の曲の番号が $FF に設定されます。

F2効果音演奏停止 (選択)

F2 xx
xx : 効果音 ($01–$1E)

xx の各ビットに対応した効果音が演奏中である場合は演奏停止します。

ビット番号 と 効果音(b = 0, 1, ..., 4)
xx のビット番号効果音効果音トラック番号DSP チャネル
017, 86, 7
125, 64, 5
233, 42, 3
341, 20, 1
4--6, 7
効果音トラック演奏終了 (ビット 0–3)

ビットに対応するチャネルの キーオフ を予約します。

ビットに対応するチャネルの キーオン・Volume 設定・Pitch 設定 予約をキャンセルします。

2 ティック後に演奏終了するようにトラックの内部データを更新します。

シーケンスコマンド EF の効果音 キーオフ (ビット 4)

チャネル 6, 7 のキーオフを予約します。

F3音声出力設定 [ステレオ/モノラル] (と DSP Echo Volume 更新) の設定 [有効/無効]

F3 xx
xx : フラグ ($00–$FF)

xx で音声出力を設定します。

DSP 全チャネルの Volume の計算フラグがオンになります。

モノラルに設定した場合は DSP Master Volume に 64 が設定されます。

不具合と思われる動作

ファンクション 8F がの設定が 有効 且つ 音声出力がモノラルの場合は、シーケンスコマンド F2 を実行しても内部データの値が更新されるだけで、DSP Echo Volume は更新されません

フラグ と 設定
xx8F 設定音声出力EVol 更新
0無効ステレオF2
有効F2
0 以外無効モノラルF2
有効-
機能仕様通りと思われる動作
フラグ と 設定
xx8F 設定音声出力EVol 更新
0無効ステレオF2
有効8F
0 以外無効モノラルF2
有効

F4音楽ミュート

F4

全ての音楽トラックのミュートをオンに設定します。

DSP 全チャネルの Volume の計算フラグがオンになります。

F5演奏中断設定 [有効/無効]

F5 xx
xx : フラグ ($00–$FF)
有効

DSP 全チャネルの ADSR/GAIN モードフラグが GAIN モードに設定されます。

DSP 全チャネルの Volume の値が 0 に設定されます。

DSP 全チャネルの Volume の計算フラグがオフになります。

APU I/O ポート へ書き込む値を計算するための内部データが全て 0 に上書きされます。

中断が解除されるまで演奏制御 (DSP 設定・トラック内部データの計算など) が実行されなくなります。

中断が解除されるまで効果音シーケンスコマンド (18・19・1A・1B) を実行しても無視されます。

無効

DSP 全チャネルの ADSR/GAIN モードフラグが ADSR モードに設定されます。

DSP 全チャネルの Volume の計算フラグがオンになります。

演奏制御 (DSP 設定・トラック内部データの計算など) が実行されるようになります。

効果音シーケンスコマンド (18・19・1A・1B) を実行可能になります。

フラグ と 設定
xx演奏中断備考
0無効中断有効後に無効で演奏再開
0 以外有効

F6演奏速度設定 — クイックタイム [有効/無効]

F6 xx
xx : フラグ ($00–$FF)

xx で音楽演奏速度と演奏に使用する DSP タイマーを設定します。

クイックタイム有効時は演奏速度が負荷により無効時よりも大きく変化する可能性があります。

フラグ と 演奏速度・タイマー の設定
xxクイックタイム音楽演奏速度タイマー設定タイマー上位 4 ビットカウントアップ
0無効シーケンスコマンド F0 の T4.875 ㎳SPC700 サイクル数 4992
0 以外有効2560.125 ㎲SPC700 サイクル数 0128

F8音楽ミュート解除 (トラック選択)

F8 xx
xx : トラック ($01–$FF)

xx の各ビットに対応した音楽トラックのミュートをオフに設定します。

ミュートを解除した音楽トラックに対応する DSP チャネルの Volume 計算フラグがオンになります。

ビット番号 と トラック番号(b = 0, 1, ..., 7)
xx のビット番号音楽トラック番号
bb + 1

F9音楽ミュート設定 (トラック選択)

F9 xx
xx : トラック ($01–$FF)

xx の各ビットに対応した音楽トラックのミュートをオンに設定します。

ミュートを設定した音楽トラックに対応する DSP チャネルの Volume 計算フラグがオンになります。

ビット番号 と トラック番号(b = 0, 1, ..., 7)
xx のビット番号音楽トラック番号
bb + 1

FCエコーディレイ設定

FC xx
xx : エコーディレイ ($00–$0F)
DSP Echo Delay の値が xx と同じ場合

何もせず終了します。

DSP Echo Delay の値が xx と異なる場合

xx の上位 4 ビットは無視されます。

DSP による APU メモリ書き換えを禁止します。

DSP 全チャネルのエコーを解除します。

DSP Echo Feed-Back と Echo Volume の値が 0 に設定されます。

DSP Echo Delay の値が xx に設定されます。

DSP Echo Start Address の値が $F1 - (xx * 8) [先頭アドレス : $F100 - (xx * $0800)] に設定されます。

約 T0 ㎳ 待機します。待機中にサウンドドライバファンクションを実行します。

DSP による APU メモリ書き換えを許可します。

約 T1 ㎳ 待機します。待機中にサウンドドライバファンクションを実行します。

待機時間(xx0 は更新前のエコーディレイの値)
xxT0T1
= xx0--
< xx0xx0 × 160
> xx0(xx - xx0) × 16

シーケンスコマンド F7F8 の動作 [設定/変化] と APU I/O ポート へ書き込む内容 の設定

FF 01 yy
yy : フラグ ($00–$FF)

xx でシーケンスコマンド F7F8 の 動作 と APU I/O ポート へ書き込む内容 を設定します。

フラグ と 動作
yyF7・F8書き込む内容
0変化トラックの演奏フラグ・F9・FA
0 以外設定DSP 4 チャネルの音量に関する値

再起動

FF F0

IPL ROM にジャンプします。