- サウンドドライバファンクション一覧
- 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
- シーケンスコマンド F7 ・ F8 の動作 [設定/変化] と APU I/O ポート へ書き込む内容 の設定
- FF F0
- 再起動
サウンドドライバファンクション
80フェード用音量倍率 設定/変化
80 xx yy
xx : 処理時間 ($00–$FF)
yy : 音量倍率 ($00–$FF)
ファンクション 81 xx yy と 82 xx yy を実行します。
81音楽フェード用音量倍率 設定/変化
81 xx yy
実行中のファンクション 81 (変化) は中断されます。
音楽のフェードイン・フェードアウトに使用する音量の倍率を yy に設定します。
音楽のフェードイン・フェードアウトに使用する音量の倍率が、現在の値 V から Y まで約 Xmin–Xmax ㎳ で変化します。
音量倍率の整数部が前回の値と異なる場合、全ての音楽演奏中のトラックに対応した DSP チャネル の Volume 計算フラグがオンになります。
音量倍率の整数部が 0 で終了した場合、ファンクション F1 を実行します。
設定
xx : 処理時間 ($00)
yy : 音量倍率 ($00–$FF)変化
xx : 処理時間 ($01–$FF)
yy : 音量倍率 ($00–$FF)
実行時に音楽を演奏中且つ効果音を演奏中ではない DSP チャネル の Volume 計算フラグがオンになります。
xx | yy | 動作 | Xmin | Xmax | Y0 | Y1 | Y |
---|---|---|---|---|---|---|---|
0 | any | 設定 | 0 | 0 | - | - | yy |
0 以外 | ≤ V | 変化 | 4.875 × (7 × (xx - 1) ) | Xmin + 4.875 × 6 | (yy - V) × 256 | ⌈Y0 / xx⌉ | V + ⌊Y1 × xx / 256⌋ |
> V | ⌊Y0 / xx⌋ |
82効果音フェード用音量倍率 設定/変化
82 xx yy
実行中のファンクション 82 (変化) は中断されます。
効果音のフェードイン・フェードアウトに使用する音量の倍率を yy に設定します。
効果音のフェードイン・フェードアウトに使用する音量の倍率が、現在の値 V から Y まで約 Xmin–Xmax ㎳ で変化します。
音量倍率の整数部が前回の値と異なる場合、効果音を演奏中の DSP チャネル の Volume 計算フラグがオンになります。
音量倍率の整数部が 0 で終了した場合、ファンクション F2 0F 相当の処理を実行します。
設定
xx : 処理時間 ($00)
yy : 音量倍率 ($00–$FF)変化
xx : 処理時間 ($01–$FF)
yy : 音量倍率 ($00–$FF)
実行時に効果音を演奏中の DSP チャネルの Volume 計算フラグがオンになります。
xx | yy | 動作 | Xmin | Xmax | Y0 | Y1 | Y |
---|---|---|---|---|---|---|---|
0 | any | 設定 | 0 | 0 | - | - | yy |
0 以外 | ≤ V | 変化 | 4.875 × (7 × (xx - 1) ) | Xmin + 4.875 × 6 | (yy - V) × 256 | ⌈Y0 / xx⌉ | V + ⌊Y1 × xx / 256⌋ |
> V | ⌊Y0 / xx⌋ |
85音楽ピッチと演奏速度倍率 設定/変化
85 xx yy
xx : 処理時間 ($00–$FF)
yy : 倍率 ($80–$7F)
86音楽演奏速度倍率 設定/変化
86 xx yy
実行中のファンクション 86 (変化) は中断されます。
シーケンスコマンド F0 で設定される音楽演奏速度の倍率が、現在の値 MT から Y まで約 Xmin–Xmax ㎳ で変化します。
変化
xx : 処理時間 ($01–$FF)
yy : 演奏速度倍率 ($80–$7F)
$80 (約 0.5 倍)–$00 (1.0 倍)–$7F (約 2.0 倍)
Y が 0 以外の値の場合は、演奏速度の計算結果 T0 が 0 以下の場合は 1 、255 を超える場合は 255 が設定されます。
xx | yy | 動作 | Xmin | Xmax | Y0 | Y1 | Y |
---|---|---|---|---|---|---|---|
0 | any | 設定 | 0 | 0 | - | - | yy |
0 以外 | = MT | ||||||
< MT | 変化 | 4.875 × (7 × (xx - 1) ) | Xmin + 4.875 × 6 | (yy - V) × 256 | ⌈Y0 / xx⌉ | V + ⌊Y1 × xx / 256⌋ | |
> MT | ⌊Y0 / xx⌋ |
Y | T0 | T | 備考 |
---|---|---|---|
$80–$FF | ⌊TF0 × U8(Y) / 256⌋ | MAX( | |
$00 | TF0 | T0 | T = 0 : シーケンスコマンド処理不可 |
$01–$7F | TF0 + ⌊TF0 × Y / 256⌋ × 2 | MIN(255, T0) |
87音楽ピッチ倍率 設定/変化
87 xx yy
実行中のファンクション 87 (変化) は中断されます。
音楽のピッチ計算に使用する倍率を yy に設定します。
音楽のピッチ計算に使用する倍率が、現在の値 MP から Y まで約 Xmin–Xmax ㎳ で変化します。
設定
xx : 処理時間 ($00)
yy : ピッチ倍率 ($80–$7F)変化
xx : 処理時間 ($01–$FF)
yy : ピッチ倍率 ($80–$7F)
$80 (約 0.5 倍)–$00 (1.0 倍)–$7F (約 2.0 倍)
計算結果 P の下位 14 ビットが有効です。
xx | yy | 動作 | Xmin | Xmax | Y0 | Y1 | Y |
---|---|---|---|---|---|---|---|
0 | any | 設定 | 0 | 0 | - | - | yy |
0 以外 | = MP | ||||||
< MP | 変化 | 4.875 × (7 × (xx - 1) ) | Xmin + 4.875 × 6 | (yy - V) × 256 | ⌈Y0 / xx⌉ | V + ⌊Y1 × xx / 256⌋ | |
> MP | ⌊Y0 / xx⌋ |
Y | P |
---|---|
$80–$FF | ⌊P0 × U8(Y) / 256⌋ |
$00–$7F | P0 + ⌊P0 × 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 の 有効/無効 を設定します。
xx | FD |
---|---|
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 の最下位 ビットで DSP Master Volume 自動変化の 有効/無効 を設定します。
自動変化を有効に設定した場合、初回は約 4.875 * 79 ㎳、以降は 4.875 * 160 ㎳ 周期で DSP Master Volume の移動量が変化し続けます。
xx の最下位 ビットで DSP Master Volume と Echo Volume 自動変化の 有効/無効 を設定します。
自動変化を有効に設定した場合、初回は約 4.875 * 79 ㎳、以降は 4.875 * 160 ㎳ 周期で DSP Master Volume と Echo Volume の移動量が変化し続けます。
不具合と思われる動作
xx.0 音声出力 設定
0 モノラル -
ステレオ 無効
1 モノラル -
ステレオ 有効
8F 設定 音声出力 MVol 自動変化 EVol 更新
無効 モノラル 無効 F2
ステレオ
有効 モノラル -
ステレオ 有効 F2
処理回数 移動量 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.0 音声出力 設定
0 モノラル -
ステレオ 無効
1 モノラル -
ステレオ 有効
8F 設定 音声出力 MVol 自動変化 EVol 更新
無効 モノラル 無効 F2
ステレオ
有効 モノラル
ステレオ 有効
処理回数 移動量 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.0 音声出力 設定
0 モノラル -
ステレオ 無効
1 モノラル -
ステレオ 有効
8F 設定 音声出力 自動変化
無効 モノラル 無効
ステレオ
有効 モノラル
ステレオ 有効
処理回数 MVol(L) MVol(R) EVol(L) EVol(R)
80 × (4n + 0) -64 +64 +E -E
80 × (4n + 1) -34 +94 +⌊E × 191 / 128⌋ -⌈E × 065 / 128⌉
80 × (4n + 2) -64 +64 +E -E
80 × (4n + 3) -96 +32 +⌊E × 064 / 128⌋-⌈E × 192 / 128⌉
F0演奏停止
F0
ファンクション F1 と F2 0F 相当の処理を実行します。
F1音楽演奏停止
F1
内部フラグを更新して演奏停止します。
演奏データを退避している曲の番号と現在演奏中の曲の番号が $FF に設定されます。
F2効果音演奏停止 (選択)
F2 xx
xx : 効果音 ($01–$1E)
xx の各ビットに対応した効果音が演奏中である場合は演奏停止します。
xx のビット番号 | 効果音 | 効果音トラック番号 | DSP チャネル |
---|---|---|---|
0 | 1 | 7, 8 | 6, 7 |
1 | 2 | 5, 6 | 4, 5 |
2 | 3 | 3, 4 | 2, 3 |
3 | 4 | 1, 2 | 0, 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 は更新されません。
不具合と思われる動作
xx 8F 設定 音声出力 EVol 更新
0 無効 ステレオ F2
有効 F2
0 以外 無効 モノラル F2
有効 -
機能仕様通りと思われる動作
xx 8F 設定 音声出力 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 の T | 4.875 ㎳ | SPC700 サイクル数 4992 |
0 以外 | 有効 | 256 | SPC700 サイクル数 |
F8音楽ミュート解除 (トラック選択)
F8 xx
xx : トラック ($01–$FF)
xx の各ビットに対応した音楽トラックのミュートをオフに設定します。
ミュートを解除した音楽トラックに対応する DSP チャネルの Volume 計算フラグがオンになります。
xx のビット番号 | 音楽トラック番号 |
---|---|
b | b + 1 |
F9音楽ミュート設定 (トラック選択)
F9 xx
xx : トラック ($01–$FF)
xx の各ビットに対応した音楽トラックのミュートをオンに設定します。
ミュートを設定した音楽トラックに対応する DSP チャネルの Volume 計算フラグがオンになります。
xx のビット番号 | 音楽トラック番号 |
---|---|
b | b + 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 ㎳ 待機します。待機中にサウンドドライバファンクションを実行します。
xx | T0 | T1 |
---|---|---|
= xx0 | - | - |
< xx0 | xx0 × 16 | 0 |
> xx0 | (xx - xx0) × 16 |
シーケンスコマンド F7 ・ F8 の動作 [設定/変化] と APU I/O ポート へ書き込む内容 の設定
FF 01 yy
yy : フラグ ($00–$FF)
xx でシーケンスコマンド F7・F8 の 動作 と APU I/O ポート へ書き込む内容 を設定します。
yy | F7・F8 | 書き込む内容 |
---|---|---|
0 | 変化 | トラックの演奏フラグ・F9・FA |
0 以外 | 設定 | DSP 4 チャネルの音量に関する値 |
再起動
FF F0
IPL ROM にジャンプします。