Gnilda のページ


シーケンスコマンド一覧 — FINAL FANTASY IV


  1. ホーム
  2. スーパーファミコンのサウンドドライバ
  3. FINAL FANTASY IV
  4. シーケンスコマンド一覧

シーケンスコマンド一覧
00–B3
キーオン
トラック
B4–C2
休符
トラック
C3–D1
タイ
トラック
D2 xx_yy zz
音楽演奏速度 設定・変化
全ての音楽トラック
D3 xx yy zz
何もしない
D4 xx
エコーボリューム設定
全体
D5 xx yy
エコーフィードバック設定・FIR フィルタ係数テーブル選択
全体
D6 xx yy zz
ピッチスライド設定
トラック
D7 xx yy zz
トレモロ設定
トラック
D8 xx yy zz
ビブラート設定
トラック
D9 xx yy zz
オートパン設定
トラック
DA xx
オクターブ設定
トラック
DB xx
音色選択
トラック
DC xx
Attack 設定(Software)
トラック
DD xx
Sustain 設定(Software)
トラック
DE xx
Release 設定(Software)
音楽トラック
DF xx
ノイズクロック設定
全体
E0 xx
ループ開始位置
トラック
E1
オクターブ + 1
トラック
E2
オクターブ - 1
トラック
E6
ピッチスライド解除
トラック
E7
トレモロ解除
トラック
E8
ビブラート解除
トラック
E9
オートパン解除
トラック
EA
エコー オン
トラック
EB
エコー オフ
トラック
EC
ノイズ オン
トラック
ED
ノイズ オフ
トラック
EE
ピッチモジュレーション オン
トラック
EF
ピッチモジュレーション オフ
トラック
F0
繰り返し・ループ終了
トラック
F1
演奏終了
トラック ノイズクロックは全体
F2 xx_yy zz
音量 設定・変化(Volume)
トラック
F3 xx_yy zz
パン 設定・変化
音楽トラック
F4 xx_yy
ジャンプ
トラック
F5 xx yy_zz
ループ内条件ジャンプ
トラック
F6
ジャンプ 2
F7–FF
演奏終了 2
トラック ノイズクロックは全体

シーケンスコマンド

00–B3 キーオン トラック

DAE1E2 コマンドで設定されるオクターブの値 及び このコマンドに対応した値 並びに DB コマンドで設定される調整値 を用いてピッチを計算し、キーオンします。

コマンドに対応したティック数 (以下 T) 待機します。

T ティック後にキーオン休符演奏終了の何れかを処理する 場合は、T - 1 ティック後に自動キーオフ処理を実行します。

DSP チャネルの Volume・Pitch 計算フラグを設定します。

DSP チャネルの Source Number・ADSR(1·2)・DD コマンドの GAIN の値を設定します。

ピッチスライドトレモロビブラートオートパン・ソフトウェアエンベロープ (DCDE) の内部データを初期化します。

DSP チャネルを使用中のトラックではない 場合は、処理の殆どをスキップします。

キーオン(音長は 10 進数 他は 16 進数)
音長12.24.348.68121624324864
C000102030405060708090A0B0C0D0E
C#0F101112131415161718191A1B1C1D
D1E1F202122232425262728292A2B2C
D#2D2E2F303132333435363738393A3B
E3C3D3E3F404142434445464748494A
F4B4C4D4E4F50515253545556575859
F#5A5B5C5D5E5F606162636465666768
G696A6B6C6D6E6F7071727374757677
G#78797A7B7C7D7E7F80818283848586
A8788898A8B8C8D8E8F909192939495
A#969798999A9B9C9D9E9FA0A1A2A3A4
BA5A6A7A8A9AAABACADAEAFB0B1B2B3
ティック数C09060484030242018100C08060403

B4–C2 休符 トラック

コマンドに対応したティック数待機します。

休符(音長は 10 進数 他は 16 進数)
音長12.24.348.68121624324864
休符B4B5B6B7B8B9BABBBCBDBEBFC0C1C2
ティック数C09060484030242018100C08060403

C3–D1 タイ トラック

コマンドに対応したティック数 (以下 T) 待機します。

T ティック後にキーオン休符演奏終了の何れかを処理する 場合は、T - 1 ティック後に自動キーオフ処理を実行します。

タイ(音長は 10 進数 他は 16 進数)
音長12.24.348.68121624324864
タイC3C4C5C6C7C8C9CACBCCCDCECFD0D1
ティック数C09060484030242018100C08060403

D2 音楽演奏速度 設定・変化 全ての音楽トラック

D2 xx yy zz
yyxx : 処理時間 ($0000–$FFFF)
zz : 音楽演奏速度 ($01–$FF)

このコマンドで変化中である 場合は、変化処理を中断して実行します。

設定
yyxx : 処理時間 ($0000, $0001)

音楽演奏速度を U8(zz) に設定します。

変化
yyxx : 処理時間 ($0002–$FFFF)

U8(zz) が 音楽演奏速度の U8(現在値) である 場合は、処理を終了します。

音楽演奏速度が U8(現在値) から U8(zz) まで U16(yyxx) - 1 ティックで変化します。

一回あたりの変化量の絶対値が 1/256 未満である 場合は、0 で変化し続けます。

BPM = (1000 ∕ 4.5) × (音楽演奏速度 ∕ 256) ∕ 48 × 60 処理が間に合わないことがあるため、若干小さな値になる可能性があります

演奏速度が 0 になるとコマンド処理ができなくなります。

効果音からは設定できません。

D4 エコーボリューム設定 全体

D4 xx
xx : エコーボリューム ($00–$FE)

DSP に設定するエコーボリュームの値を LSR8(xx, 1) に設定します。

効果音からは設定できません。

D5 エコーフィードバック設定・FIR フィルタ係数テーブル選択 全体

D5 xx yy
xx : エコーフィードバック ($80–$7F)
yy : FIR フィルタ係数テーブル選択 ($00–$03)

DSP に設定するエコーフィードバックの値を S8(xx) に設定します。

DSP に設定する FIR フィルタ係数のテーブルの番号を U5(yy) に設定します。

yy の範囲チェックは省略されています。

FIR フィルタ係数テーブル(16進数)
U5(yy)FIR フィルタ係数
C0C1C2C3C4C5C6C7
007F00000000000000
010C212B2B13FEF3F9
0258BFDBF0FE070C0C
03343300D9E501FCEB

D6 ピッチスライド設定 トラック

D6 xx yy zz
xx : ディレイ ($00–$FF)
yy : 処理時間 ($01–$FF)
zz : 音程変化 ($80–$7F)
音楽

キーオンから X ティック後に PiS が Y ティックで PITCH(NKS8(zz))PiK 変化します。

効果音

キーオンから X ティック後に PiS が Y ティックで 約 PE 変化します。

Pitch = U16(PiKPiSPiV) 周波数倍率は下位 14 ビットが有効です

E6 コマンド 又は zz に 0 を指定解除します。

共通
ディレイと処理時間
xxyyXY
-0-無効
any0 以外U8(xx + 1)U8(yy) - 1
効果音
音程変化とシフト回数 SZ・乗数 MZ
zzSZMZ
0 以上00 - (000 + zz) ∕ 12zz - (00 - (000 + zz) ∕ 12) × 12
0 未満11 - (131 + zz) ∕ 12zz + (11 - (132 + zz) ∕ 12) × 12
音程変化とピッチ変化
zzP1P2P2HP2LPE
0 以上LSL16(PiK, SZ)U16(P1 ∕ 12)H8(P2)L8(P2)PiK + (P1L8(P2H × MZ)U16(P2L × MZ))
0 未満LSR16(PiK, SZ)PiK - (P1L8(P2H × MZ)U16(P2L × MZ))

D7 トレモロ設定 トラック

D7 xx yy zz
xx : ディレイ ($00–$FF)
yy : 周期 ($00–$FF)
zz : 揺れの大きさ ($00–$FF)
音楽

キーオンから X ティック後に約 9 × Y ㎳ 周期で音量の倍率の一つが 256 → Z → 256 と変化し続けます。

効果音

キーオンから X ティック後に約 6.13 × Y ㎳ 周期で音量の倍率の一つが 256 → Z → 256 と変化し続けます。

トレモロ無効時 又は 倍率の計算結果が 0 である 場合は、この音量の倍率を 256 として処理します。

E7 コマンド 又は yy に 0 若しくは 1 を指定解除します。

ディレイ
xxX
$FF 以外U8(xx)
$FF0
周期 ∕ 2
yyY0Y
$00–$01解除-
$02–$FFLSR8(yy, 1)U8(Y0 + 1)
倍率
周期Z
1 ∕ 2H8(256 × 256 - U8(zz) × 256 ∕ Y0 × Y)

D8 ビブラート設定 トラック

D8 xx yy zz
xx : ディレイ ($00–$FF)
yy : 周期 ($00–$FF)
zz : 揺れの大きさ ($00–$FF)
音楽

キーオンから X ティック後と、以降は約 4.5 × Y ㎳ 毎に PiV が変化し続けます。

効果音

キーオンから X ティック後と、以降は約 3.06 × Y ㎳ 毎に PiV が変化し続けます。

Pitch = U16(PiKPiSPiV) 周波数倍率は下位 14 ビットが有効です

処理回数が 1 且つ zz が Y0 未満である 場合は PiV が 0 になるため、ピッチは変化しません

処理回数が 3 以上 13 以下の奇数 且つ Y0 × MIN(処理回数 ∕ 2, 8) が 8 未満である 場合は PiV が 0 になるため、ピッチは変化しません

E8 コマンド 又は yy に 0 若しくは 1 を指定解除します。

ディレイ
xxX
$FF 以外U8(xx)
$FF0
周期 ∕ 2
yyY0Y
$00–$01解除-
$02–$FFLSR8(yy, 1)U8(Y0 + 1)
揺れの大きさ
zzZ
anyU8(zz) × 256 ∕ Y0
処理回数とピッチ変化量(P' = U16(PiK ∕ 12))
処理回数PiV
0± 0
1P' × Z × Y0 × 2 ∕ 8 ∕ 256 ∕ 256
2± 0
3P' × Z × Y0 × 2 ∕ 8 ∕ 256 ∕ 256
4± 0
5P' × Z × Y0 × 3 ∕ 8 ∕ 256 ∕ 256
6± 0
7P' × Z × Y0 × 4 ∕ 8 ∕ 256 ∕ 256
8± 0
9P' × Z × Y0 × 5 ∕ 8 ∕ 256 ∕ 256
10± 0
11P' × Z × Y0 × 6 ∕ 8 ∕ 256 ∕ 256
12± 0
13P' × Z × Y0 × 7 ∕ 8 ∕ 256 ∕ 256
14± 0
15P' × Z × Y0 × 8 ∕ 8 ∕ 256 ∕ 256
16± 0
17P' × Z × Y0 × 8 ∕ 8 ∕ 256 ∕ 256
18± 0

D9 オートパン設定 トラック

D9 xx yy zz
xx : ディレイ ($00–$FF)
yy : 周期 ($00, $02–$FF)
zz : 揺れの大きさ ($01–$7E)
音楽

キーオンから X ティック後に初回は約 4.5 × Y0 ㎳ で 0 → ZR 、以降は約 9 × Y1 ㎳ 周期で ZR → ZL → ZRPaA が変化し続けます。

効果音

キーオンから X ティック後に初回は約 3.06 × Y0 ㎳ で 0 → ZR 、以降は約 6.13 × Y1 ㎳ 周期で ZR → ZL → ZRPaA が変化し続けます。

パン = U8(PaCPaA)

E9 コマンド 又は yy に 0 を指定解除します。

yy が 1 である 場合は、正しく処理ができません

ディレイ
xxX
$FF 以外U8(xx)
$FF0
周期
yyY0Y1
0無効-
0 以外LSR8(yy, 1) + 1U8(yy) + 1
揺れの大きさ
yyZZRZL
1--10
2 以上U8(zz) × 256 ∕ (Y0 - 1)H8(Z × Y0)H8(- Z × (Y1 - Y0))

DA オクターブ設定 トラック

DA xx
xx : オクターブ ($00–$0A)

ノート番号計算に使用するオクターブの値を、U8(xx) に設定します。

DB 音色選択 トラック

DB xx
xx : 音色番号 ($00–$7F)

音色を選択します。

"キーオン時に DSP チャネルに設定する Source Number の値 と ピッチ微調整に使用する値" を "トラックに" 設定します。

xx の範囲チェックは省略されています。

DC Attack 設定(Software) トラック

DC xx
xx : 音量倍率変化テーブル選択 ($00–$1F)
音楽

キーオン時から約 9 ㎳ 毎の音量倍率変化テーブルを選択します。

効果音

キーオン時から約 6.13 ㎳ 毎の音量倍率変化テーブルを選択します。

倍率が 0 である場合は変化を終了し、直前の倍率のまま DSP チャネルの動作フラグを (通常は ADSR モードから) GAIN モードに設定します。

GAIN の値は変化しません。通常はキーオン時の DD コマンドの設定値が使用されます。

xx の範囲チェックは省略されています。

xx に $11–$13・$19–$1D・$1F の何れかを指定した場合は倍率が 0 に設定され、更にキーオン直後に動作フラグを GAIN モードに設定されます。

音量倍率変化テーブル
$00 : 倍率 255, 時間 234 (159.32) ㎳
$01 : 倍率 38 → 255, 時間 1008 (686.30) ㎳
$02 : 倍率 205 → 158, 時間 315 (214.47) ㎳
$03 : 倍率 155 → 160, 時間 684 (465.70) ㎳
$04 : 倍率 30 → 192, 時間 1440 (980.43) ㎳
$05 : 倍率 64 → 208, 時間 441 (300.26) ㎳
$06 : 倍率 96 → 176, 時間 90 (61.28) ㎳
$07 : 倍率 159 → 224, 時間 261 (177.70) ㎳
$08 : 倍率 255 → 255, 時間 378 (257.36) ㎳
$09 : 倍率 223 → 219, 時間 189 (128.68) ㎳
$0A : 倍率 255, 時間 45 (30.64) ㎳
$0B : 倍率 255, 時間 9 (> 4.50) ㎳
$0C : 倍率 134 → 255, 時間 396 (269.62) ㎳
$0D : 倍率 255, 時間 9 (> 4.50) ㎳
$0E : 倍率 175 → 255, 時間 153 (104.17) ㎳
$0F : 倍率 16 → 255, 時間 180 (122.55) ㎳
$10 : 倍率 255 → 16, 時間 288 (196.09) ㎳
$14 : 倍率 210, 時間 9 (> 4.50) ㎳
$15 : 倍率 170, 時間 9 (> 4.50) ㎳
$16 : 倍率 130, 時間 9 (> 4.50) ㎳
$17 : 倍率 90, 時間 9 (> 4.50) ㎳
$18 : 倍率 50, 時間 9 (> 4.50) ㎳
$1E : 倍率 64 → 255, 時間 234 (159.32) ㎳

DD Sustain 設定(Software) トラック

DD xx
xx : Gain rate ($00–$1F)

キーオンから (DC コマンドで設定した) 一定時間経過後の GAIN の値を "トラックに" 設定します。

GAIN の値は「減少モード : 指数」のみ設定可能で、$A0 + U5(xx) が設定されます。

このコマンドの設定値は、キーオン時に DSP チャネルに設定されます。

DE Release 設定(Software) 音楽トラック

DE xx
xx : 待ち時間 ($00–$64)

キーオン後に DSP チャネルの "動作フラグが GAIN モード" 、"GAIN の値が $B1 (減少モード : 指数・$11)" に設定されるまでの待ち時間 (音長の合計に対する割合) を設定します。

効果音は効果がありません。

キーオンから次のキーオン・休符までのティック数 T とディレイ
xx設定値内部値ディレイ (ティック数)Release Rate (最大)
$00, $65–$FF100%0無効0
$01–$63約 xx%U8(xx) × 256 ∕ 100T × 内部値 ∕ 256256 - 内部値 ∕ 256
$64約 39%100

DF ノイズクロック設定 全体

DF xx
xx : ノイズクロック ($00–$1F)

DSP に設定するノイズクロックの値を設定します (0–32kHz)。

音楽と効果音で異なる値を設定可能で、U5(xx) が設定されます。

音楽トラックで設定した場合

音楽の値が更新されます。

効果音のノイズ使用フラグが解除状態である 場合のみ音楽の値を DSP に設定します

効果音トラックで設定した場合

効果音の値が更新され、その値をDSP に設定します

ノイズクロックを設定した後は、"効果音の演奏終了処理" で "効果音のノイズ使用フラグが解除される" まで DSP のノイズクロックは効果音の値から変化しません。

E0 ループ開始位置 トラック

E0 xx
xx : カウントダウンカウンタの初期値 ($00–$FF)

このコマンドと F0 コマンドを用いてループ処理を行います。

最内ループの F5 コマンドのカウンタ値を 0 に初期化します。

ループ内で F5 コマンドを複数回使用する 場合は、初期値を調整する必要があります。

一つのトラックで同時に使用可能なループ処理の最大数は 4 です。5 以上使用すると、以降のトラックのデータなどを破壊します。

カウントダウンカウンタ
xx初期値ループ回数
$00, $FF0無限
$01–$FEU8(xx) + 1最大で U8(xx) + 1 回

E1 オクターブ + 1 トラック

E1

ノート番号計算に使用するオクターブの値を、U8(現在値 + 1) に設定します。

E2 オクターブ - 1 トラック

E2

ノート番号計算に使用するオクターブの値を、U8(現在値 - 1) に設定します。

E6 ピッチスライド解除 トラック

E6

ピッチスライド解除します。

E7 トレモロ解除 トラック

E7

トレモロ解除します。

E8 ビブラート解除 トラック

E8

ビブラート解除します。

E9 オートパン解除 トラック

E9

オートパン解除します。

EA エコー オン トラック

EA

エコーがかかるようになります。

DSP のエコーが有効になり、エコーボリュームに D4 コマンドの設定値が設定されます。

EB エコー オフ トラック

EB

エコーがかからなくなります。

全てのトラックがエコーを使用しない状態になると、DSP の エコーが無効になり、エコーボリュームに 0 が設定されます。

EC ノイズ オン トラック ノイズクロックは全体

EC

DB コマンドで設定した波形データの代わりにノイズを発声するようになります。

ループが無効である波形が設定されている 場合は、その長さの時間だけ発声します。

DSP のノイズクロックの値は変化しません。

ED ノイズ オフ トラック ノイズクロックは全体

ED

DB コマンドで設定した波形データを使用して発声するようになります。

DSP のノイズクロックの値は変化しません。

EE ピッチモジュレーション オン トラック

EE

一つ前のチャネルの DSP 内部の値 (OUTX) を用いてピッチ変調をかけるようになります。

音楽トラック 1 は効果がありません。

EF ピッチモジュレーション オフ トラック

EF

ピッチ変調をかけなくなります。

F0 繰り返し・ループ終了 トラック

F0
E0 コマンドのカウンタ値が 0 の場合

最内ループ開始位置までジャンプします (無限ループ)。

E0 コマンドのカウンタ値が 1 以上の場合

カウンタ値を 1 減じます。

カウンタ値が 1 以上である場合は、最内ループ開始位置までジャンプします。カウンタ値が 0 になる場合は、ループを抜けます。

F1 演奏終了トラック ノイズクロックは全体

F1

演奏を終了します。

効果音

エコーノイズピッチモジュレーション無効になり、DSP の設定が "同じチャネルを使用する音楽トラックの設定に" 切り替わります。

全ての効果音トラックが演奏終了状態になる 場合は、音楽のノイズクロックの値のビット 0 に 0 を設定します。

全ての効果音トラックのノイズ設定が無効になる 場合は、効果音のノイズ使用フラグが解除され、DSP のノイズクロックに音楽の値を設定します

F2 音量 設定・変化(Volume) トラック

F2 xx yy zz
yyxx : 処理時間 ($0000–$FFFF)
zz : 音量 ($00–$FF)

このコマンドで変化中である 場合は、変化処理を中断して実行します。

設定
yyxx : 処理時間 ($0000)

VCU8(zz) に設定します。

DSP チャネルの Volume 計算フラグは設定されません。

設定 (即時計算)
yyxx : 処理時間 ($0001)

VCU8(zz) に設定します。

DSP チャネルの Volume 計算フラグを設定します。

変化
yyxx : 処理時間 ($0002–$FFFF)

U8(zz)U8(VC) と等しい 場合は、処理を終了します。

トラック音量が U8(VC) から U8(zz) まで U16(yyxx) - 1 ティックで変化します。

DSP チャネルの Volume 計算フラグを設定します。

一回あたりの変化量の絶対値が 1/256 未満である 場合は、0 で変化し続けます。

F3 パン 設定・変化 音楽トラック

F3 xx yy zz
yyxx : 処理時間 ($0000–$FFFF)
zz : パン ($00–$FF)

このコマンドで変化中である 場合は、変化処理を中断して実行します。

設定
yyxx : 処理時間 ($0000)

PaCU8(zz) に設定します。

DSP チャネルの Volume 計算フラグは設定されません。

設定 (即時計算)
yyxx : 処理時間 ($0001)

PaCU8(zz) に設定します。

DSP チャネルの Volume 計算フラグを設定します。

変化
yyxx : 処理時間 ($0002–$FFFF)

U8(zz)U8(PaC) と等しい 場合は、処理を終了します。

パンの値が U8(PaC) から U8(zz) まで U16(yyxx) - 1 ティックで変化します。

DSP チャネルの Volume 計算フラグを設定します。

一回あたりの変化量の絶対値が 1/256 未満である 場合は、0 で変化し続けます。

パン = U8(PaCPaA)

$00 (左) – $80 (中央・モノラル) – $FF (右)

効果音トラックで使用すると、音楽トラックのデータを破壊します。

パンの音量倍率(パンはチャネル音量計算直前の値)

F4 ジャンプ トラック

F4 xx yy
yyxx : ジャンプ先 (絶対アドレス)

アドレス U16(yyxx) までジャンプします。

F5 ループ内条件ジャンプ トラック

F5 xx yy zz
xx : 処理回数
zzyy : ジャンプ先 (絶対アドレス)

最内ループ内で F5 コマンドを処理した回数が U8(xx) である 場合は、アドレス U16(zzyy) までジャンプします。

無限ループではない場合

ジャンプする 場合は、E0 コマンドのカウンタ値を 1 減じます。

カウンタ値が 0 になる 場合は自動的に最内ループを抜けるため、F0 コマンドは不要です。

このコマンドはステップタイム計算などで無視されます。

F7–FF 演奏終了 2 トラック ノイズクロックは全体

F7, F8, F9, FA, FB, FC, FD, FE, FF

演奏を終了します。

効果音

エコーノイズピッチモジュレーション無効になり、DSP の設定が "同じチャネルを使用する音楽トラックの設定に" 切り替わります。

全ての効果音トラックが演奏終了状態になる 場合は、音楽のノイズクロックの値のビット 0 に 0 を設定します。

全ての効果音トラックのノイズ設定が無効になる 場合は、効果音のノイズ使用フラグを解除し、DSP のノイズクロックに音楽の値を設定します

F1 コマンドと違い、これらのコマンドはステップタイム計算などで無視されます。