Gnilda のページ


補足説明 (シーケンスコマンド)


  1. ホーム
  2. ファミリーコンピュータのサウンドドライバ
  3. 補足説明 (シーケンスコマンド)

数値表現
用語一覧
関数一覧
x
床関数 (floor)
x
天井関数 (ceiling)
MIN(x1,x2,)
最小値
MAX(x1,x2,)
最大値
CLAMP(x,N,X)
クランプ
U2(x)
符号なし 2 ビット整数
U3(x)
符号なし 3 ビット整数
U4(x)
符号なし 4 ビット整数
U5(x)
符号なし 5 ビット整数
U6(x)
符号なし 6 ビット整数
U7(x)
符号なし 7 ビット整数
U8(x)
符号なし 8 ビット整数
U16(x)
符号なし 16 ビット整数
S8(x)
符号あり 8 ビット整数
S16(x)
符号あり 16 ビット整数
LSL8(x,s)
符号なし 8 ビット整数 の 論理左シフト
LSR8(x,s)
符号なし 8 ビット整数 の 論理右シフト
ASR8(x,s)
符号なし 8 ビット整数 の 算術右シフト
LSL16(x,s)
符号なし 16 ビット整数 の 論理左シフト
LSR16(x,s)
符号なし 16 ビット整数 の 論理右シフト
H8(x)
符号なし 16 ビット整数の 上位 8 ビット
L8(x)
符号なし 16 ビット整数の 下位 8 ビット
E8(x)
符号あり 8 ビット 整数 (エクセス 128)
U8Q8(x,d)
符号なし 16 ビット固定小数点数 (UQ8.8)
S8Q8(x,d)
符号あり 16 ビット固定小数点数 (Q8.8)
R8(A)
カートリッジ領域の値 (符号なし 8 ビット整数)
R16(A)
カートリッジ領域値 (符号なし 16 ビット整数)
参考リンク

数値表現

整数

当サイトでは、特に断りがない限り数値は以下のように表記しています。

桁数をそろえるため 0 を付加することがあります。

数値表現
10 進数2 進数16 進数
8%1000$8
10%1010$A
200%11001000$C8

用語一覧

トラック

サウンドドライバが管理しています。音楽・効果音 などの種類があり、複数のトラックを使用します。種類、総トラック数 及び コマンド はサウンドドライバにより異なります。

当サイトではトラックの番号は 1 以上の値を使用しています。

アドレス

"カートリッジのアドレス" です。通常は $4020–$FFF9 の範囲で指定します。一部のアドレスはレジスタなどで使用しています。

仮引数

8 ビットの値である 場合は、xxxyy など 2 文字で定義しています。

16 ビットの値である 場合は、xxxxyyyy など 4 文字で定義しています。

当サイトでは、値の範囲は "最小値–最大値" と表しています。符号の有無は、最小値の絶対値が最大値の絶対値よりも大きいかどうかで確認できます。

既定値

サウンドドライバファンクションで演奏開始時に設定される値です。

固定小数点数

小数点が置かれる桁を固定して表された数です。サウンドドライバでは一回当たりの変化量を求める場合などに使用します。処理速度などの制限があるため、整数部と小数部はそれぞれ 8 の倍数のビット数で処理します。負数は 2 の補数で表現します。

チャネルの音量などの計算には小数部を 0 とした整数部分のみを使用します。固定小数点数の音量が V である場合は V を計算に使用します。

整数部 8 ビット 小数部 8 ビット (UQ8.8, Q8.8) の例
10 進数 NNN-N16 進数符号ビット
254.75254192/256$FE.C0なし
127.5127128/256$7F.80?
−3/256−1253/256$FF.FDあり

関数一覧

x床関数 (floor)

x 以下の最大の整数を返します。

x天井関数 (ceiling)

x 以上の最小の整数を返します。

MIN(x1,x2,)最小値

() 内の最小の値を返します。

MAX(x1,x2,)最大値

() 内の最大の値を返します。

CLAMP(x,N,X)クランプ

x が最小値 N・最大値 X の範囲内である場合は x 、範囲外である場合は N 又は X を返します。

最小値は N 、最大値は X です。

CLAMP(x,N,X)=MIN(MAX(x,N),X)

U2(x)符号なし 2 ビット整数

x22-1 のビット論理積を返します。

最小値は 0 、最大値は 3 です。

テーブル番号の選択などに使用しています。

U3(x)符号なし 3 ビット整数

x23-1 のビット論理積を返します。

最小値は 0 、最大値は 7 です。

Decay Rate の計算などに使用しています。

U4(x)符号なし 4 ビット整数

x24-1 のビット論理積を返します。

最小値は 0 、最大値は 15 です。

Attack Rate の計算などに使用しています。

U5(x)符号なし 5 ビット整数

x25-1 のビット論理積を返します。

最小値は 0 、最大値は 31 です。

ノイズクロックの計算などに使用しています。

U6(x)符号なし 6 ビット整数

x26-1 のビット論理積を返します。

最小値は 0 、最大値は 63 です。

揺れの大きさの計算などに使用しています。

U7(x)符号なし 7 ビット整数

x27-1 のビット論理積を返します。

最小値は 0 、最大値は 127 です。

音量やパンの計算などに使用しています。

U8(x)符号なし 8 ビット整数

x28-1 のビット論理積を返します。

最小値は 0 、最大値は 255 です。

xU8(x)16 進数
254.75254$FE
127.5127$7F
255 + 10$00
0 - 1255$FF

U16(x)符号なし 16 ビット整数

x216-1 のビット論理積を返します。

最小値は 0 、最大値は 65535 です。

S8(x)符号あり 8 ビット整数

x28-1 のビット論理積を返します。最上位ビットが 1 である場合は負数を表します。

最小値は −128 、最大値は 127 です。

エコーフィードバックの値や音程の計算などに使用しています。

S16(x)符号あり 16 ビット整数

x216-1 のビット論理積を返します。最上位ビットが 1 である場合は負数を表します。

最小値は −32768 、最大値は 32767 です。

LSL8(x,s)論理左シフト (符号なし 8 ビット整数)

x : シフトされる数値 ($00–$FF)
s : シフトする桁数 (0–7)

U8(U8(x)×2s) を返します。

最小値は 0 、最大値は 255 です。

xsLSL8(x,s)16 進数
2550255$FF
2551254$FE
1272252$FC
150017128$80

LSR8(x,s)論理右シフト (符号なし 8 ビット整数)

x : シフトされる数値 ($0000–$FFFF)
s : シフトする桁数 (0–7)

U8(U8(x)÷2s) を返します。

最小値は 0 、最大値は 255 です。

xsLSR8(x,s)16 進数
2550255$FF
2551127$7F
127231$1F
150017117$75

ASR8(x,s)算術右シフト (符号あり 8 ビット整数)

x : シフトされる数値 ($80–$7F)
s : シフトする桁数 (0–7)

S8(U8(256-27-s)×LSR8(x,7)+LSR8(x,s)) を返します。

最小値は −128 、最大値は 127 です。

xsASR8(x)16 進数
−10−1$FF
−11−1$FF
−21−1$FF
127231$1F

LSL16(x,s)論理左シフト (符号なし 16 ビット整数)

x : シフトされる数値 ($0000–$FFFF)
s : シフトする桁数 (0–15)

U16(U16(x)×2s) を返します。

最小値は 0 、最大値は 65535 です。

LSR16(x,s)論理右シフト (符号なし 16 ビット整数)

x : シフトされる数値 ($0000–$FFFF)
s : シフトする桁数 (0–15)

U16(U16(x)÷2s) を返します。

最小値は 0 、最大値は 65535 です。

H8(x)符号なし 16 ビット整数 の 上位 8 ビット (符号なし 8 ビット整数)

符号なし 16 ビット整数 x の 上位 8 ビットの値を返します。

最小値は 0 、最大値は 255 です。

H8(x)=LSR16(x,8)

L8(x)符号なし 16 ビット整数 の 下位 8 ビット (符号なし 8 ビット整数)

符号なし 16 ビット整数 x の 下位 8 ビットの値を返します。

最小値は 0 、最大値は 255 です。

L8(x)=U8(x)

E8(x)符号あり 8 ビット 整数 (エクセス 128)

S8(U8(x)-128) を返します。

最小値は −128 、最大値は 127 です。

U8Q8(x,d)符号なし 16 ビット固定小数点数 (UQ8.8)

U16(x×256÷d)÷256 を返します。

最小値は 0 ($00.00)、最大値は 255.99609375 ($FF.FF) です。

一回当たりの変化量の計算に使用しています。

S8Q8(x,d)符号あり 16 ビット固定小数点数 (Q8.8)

S16(x×256÷d)÷256 を返します。

最小値は -128.0 ($80.00)、最大値は 127.99609375 ($7F.FF) です。

一回当たりの変化量の計算に使用しています。

R8(A)カートリッジ領域の値 (符号なし 8 ビット整数)

A : カートリッジ領域のアドレス ($4020–$FFF9)

U8(カートリッジ領域のアドレス A の値) を返します。

R16(A)カートリッジ領域の値 (符号なし 16 ビット整数)

A : カートリッジ領域のアドレス ($4020–$FFF8)

LSL16(R8(A+1),8)+U16(R8(A)) を返します。