名前 |
NR10 |
アドレス |
FF10h |
内容 |
サウンド1 スイープレジスタ(R/W) Bit0-6のみ読み出し可
Bit 6-4 - スイープ時間(n: 0-7)
n/128秒毎に新しい周波数を出力します
000: スイープなし 001: 7.8 ms (1/128Hz)
010: 15.6 ms (2/128Hz) 011: 23.4 ms (3/128Hz)
100: 31.3 ms (4/128Hz) 101: 39.1 ms (5/128Hz)
110: 46.9 ms (6/128Hz) 111: 54.7 ms (7/128Hz)
Bit 3 - 周波数変化 増加/減少
0: 周波数を上げる 1: 周波数を下げる
Bit 2-0 - 周波数変化量(n: 0-7)
前回の周波数と、n回右シフトした前回の周波数を
加算または減算した値が今回の周波数となります
X(t) = X(t-1) + (X(t-1) >> n) 上昇の時
X(t) = X(t-1) - (X(t-1) >> n) 下降の時
|
名前 |
NR11 |
アドレス |
FF11h |
内容 |
サウンド1 長さ/波形(R/W) Bit6-7のみ読み出し可
Bit 7-6 - 波形パターン
Bits Cyc% 0 1 2 3 4 5 6 7
00 : 12.5% ________==______
01 : 25% ________====____
10 : 50% ____========____
11 : 75% ========____====
= is High
_ is Low
Bit 5-0 - 音の長さ(t1: 0-63)
長さ = (64-t1)*(1/256)秒
|
名前 |
NR12 |
アドレス |
FF12h |
内容 |
サウンド1 エンベロープ(R/W)
Bit 7-4 - 初期ボリューム
Bit 3 - エンベロープ 増加/減少
0: 減少 1: 増加
Bit 2-0 - エンベロープステップ時間(n: 0-7)
n/64秒毎に音量を1段階増減する
ただしn=0のときはエンベロープを使わない
|
名前 |
NR13 |
アドレス |
FF13h |
内容 |
サウンド1 周波数下位(W) 11ビットの周波数の下位8ビット
|
名前 |
NR14 |
アドレス |
FF14h |
内容 |
サウンド1 周波数上位/開始/カウンタ(R/W) Bit6のみ読み出し可
Bit 7 - 開始フラグ
セットするとサウンドを開始(orリスタート)する
Bit 6 - カウンタ/連続再生の選択
0 = NR11の長さデータにかかわらずサウンドを連続的に再生する
1 = NR11の長さデータによってセットされた時間の間サウンドを再生する
再生終了後、サウンド1 ONフラグ(NR52のビット0)をリセットする
Bit 2-0 - 11ビットの周波数の下位3ビット
NR13,NR14でセットされた周波数の値をxとすると
周波数 = 4194304/(32*(2048-x))Hz = 131072/(2048-x)Hz になる
∴再生できる周波数は64Hz〜131.1KHzとなります
|
名前 |
NR21 |
アドレス |
FF16h |
内容 |
サウンド2 長さ/波形(R/W) Bit6-7のみ読み出し可
Bit 7-6 - 波形パターン
Bits Cyc% 0 1 2 3 4 5 6 7
00 : 12.5% ________==______
01 : 25% ________====____
10 : 50% ____========____
11 : 75% ========____====
= is High
_ is Low
Bit 5-0 - 音の長さ(t1: 0-63)
長さ = (64-t1)*(1/256)秒
|
名前 |
NR22 |
アドレス |
FF17h |
内容 |
サウンド2 エンベロープ(R/W)
Bit 7-4 - 初期ボリューム
Bit 3 - エンベロープ 増加/減少
0: 減少 1: 増加
Bit 2-0 - エンベロープステップ時間(n: 0-7)
n/64秒毎に音量を1段階増減する
ただしn=0のときはエンベロープを使わない
|
名前 |
NR23 |
アドレス |
FF18h |
内容 |
サウンド2 周波数下位(W) 11ビットの周波数の下位8ビット
|
名前 |
NR24 |
アドレス |
FF19h |
内容 |
サウンド2 周波数上位/開始/カウンタ(W) Bit6のみ読み出し可
Bit 7 - 開始フラグ
セットするとサウンドを開始(orリスタート)する
Bit 6 - カウンタ/連続再生の選択
0 = NR21の長さデータにかかわらずサウンドを連続的に再生する
1 = NR21の長さデータによってセットされた時間の間サウンドを再生する
再生終了後、サウンド2 ONフラグ(NR52のビット1)をリセットする
Bit 2-0 - 11ビットの周波数の下位3ビット
NR23,NR24でセットされた周波数の値をxとすると
周波数 = 4194304/(32*(2048-x))Hz = 131072/(2048-x)Hz になる
∴再生できる周波数は64Hz〜131.1KHzとなります
|
名前 |
NR30 |
アドレス |
FF1Ah |
内容 |
サウンド3 ON/OFF(R/W) Bit7のみ読み出し可
Bit 7 - サウンド出力 ON/OFF
0: サウンド出力OFF 1: サウンド出力ON
|
名前 |
NR31 |
アドレス |
FF1Bh |
内容 |
サウンド3 長さ(W)
Bit 7-0 - サウンドの長さ(t1: 0 - 255)
長さ = (256-t1)*(1/256)秒
|
名前
| NR32 |
アドレス
| FF1Ch |
内容
| サウンド3 出力レベル(R/W) Bit5-6のみ読み出し可
Bit 6-5 - 出力レベル選択
00: ミュート 01: データをそのまま出力 10: データを1/2にして出力 11:
データを1/4にして出力
|
名前 |
NR33 |
アドレス |
FF1Dh |
内容 |
サウンド3 周波数下位(W) 11ビットの周波数の下位8ビット
|
名前 |
NR34 |
アドレス |
FF1Eh |
内容 |
サウンド3 周波数上位/開始/カウンタ(R/W) Bit6のみ読み出し可
Bit 7 - 開始フラグ
セットするとサウンドを開始(orリスタート)する
Bit 6 - カウンタ/連続再生の選択
0 = NR31の長さデータにかかわらずサウンドを連続的に再生する
1 = NR31の長さデータによってセットされた時間の間サウンドを再生する
再生終了後、サウンド3 ONフラグ(NR52のビット2)をリセットする
Bit 2-0 - 11ビットの周波数の下位3ビット
NR33,NR34でセットされた周波数の値をxとすると
周波数 = 4194304/(64*(2048-x))Hz = 65536/(2048-x)Hz になる
波形RAM(FF30h-FF3Fh)は4bit*32の波形パターンで構成されていて、
上位4bitが先に再生されます
|
名前 |
NR41 |
アドレス |
FF20h |
内容 |
サウンド4 長さ(R/W)
Bit 5-0 - 音の長さ (t1: 0-63)
長さ = (64-t1)*(1/256)秒
|
名前 |
NR42 |
アドレス |
FF21h |
内容 |
サウンド4 エンベロープ(R/W)
Bit 7-4 - 初期ボリューム
Bit 3 - エンベロープ 増加/減少
0: 減少 1: 増加
Bit 2-0 - エンベロープステップ時間(n: 0-7)
n/64秒毎に音量を1段階増減する
ただしn=0のときはエンベロープを使わない
|
名前 |
NR43 |
アドレス |
FF22h |
内容 |
サウンド4 周波数(R/W)
Bit 2-0 - 分周比 (r: 0-7)
ratio of: 0 _-_-_-_-_-_-_-_-_-_-_-_-_-_- 1048576 hz
1 __--__--__--__--__--__--__-- 524288 hz
2 ___---___---___---___---___- ~370727.6 hz
3 ____----____----____----____ 262144 hz
4 _____-----_____-----_____--- ~220435.95 hz
5 ______------______------____ ~185363.8 hz
6 _______-------_______------- ~155871.75 hz
7 ________--------________---- 131072 hz
分周比を r とすると、出力は 4194304 / 4 / (r+1) となる
これをbit4-7でシフトした周波数を出力する
Bit 3 - カウンタステップの選択
0: 15ステップ 1: 7ステップ
Linear Feedback Shift Register アルゴリズムで使用する
シフトレジスタ幅を選択する
Bit 7-4 - 周波数のシフト量 (s: 0-13)
s+1 だけ右シフトした周波数を出力する
ノイズ周波数 = (1048576 / (r+1)) >> (s+1)
∴再生できる周波数は8Hz〜131.1KHzとなります
|
名前 |
NR44 |
アドレス |
FF23h |
内容 |
サウンド4 開始/カウンタ(R/W) Bit6のみ読み出し可
Bit 7 - 開始フラグ
セットするとサウンドを開始(orリスタート)する
Bit 6 - カウンタ/連続再生の選択
0 = NR41の長さデータにかかわらずサウンドを連続的に再生する
1 = NR41の長さデータによってセットされた時間の間サウンドを再生する
再生終了後、サウンド4 ONフラグ(NR52のビット3)をリセットする
|
名前 |
NR50 |
アドレス |
FF24h |
内容 |
チャンネル制御/ON-OFF/ボリューム(R/W)
Vin端子からの音声入力のON/OFFとSO1/SO2のボリュームを設定する
Bit 7 - Vin->SO2 ON/OFF
0 : OFF 1 : ON
Bit 6-4 - SO2ボリューム
Bit 3 - Vin->SO1 ON/OFF
0 : OFF 1 : ON
Bit 2-0 - SO1ボリューム
SO1:右出力 SO2:左出力です
|
名前 |
NR51 |
アドレス |
FF25h |
内容 |
各チャンネルの出力ON/OFF(R/W)
Bit 7 - サウンド4 → SO2
Bit 6 - サウンド3 → SO2
Bit 5 - サウンド2 → SO2
Bit 4 - サウンド1 → SO2
Bit 3 - サウンド4 → SO1
Bit 2 - サウンド3 → SO1
Bit 1 - サウンド2 → SO1
Bit 0 - サウンド1 → SO1
0 : OFF 1 : ON
SO1:右出力 SO2:左出力です
|
名前 |
NR52 |
アドレス |
FF26h |
内容 |
全サウンドのON/OFF(R/W) bit7のみWrite可 Bit7,0-3のみ読み出し可
Bit 7 - 全サウンドのON/OFF
0: 全サウンド停止
1: 全サウンド駆動
Bit 3 - サウンド4再生フラグ
Bit 2 - サウンド3再生フラグ
Bit 1 - サウンド2再生フラグ
Bit 0 - サウンド1再生フラグ
各チャンネルのステータス
0 : サウンド停止中
1 : サウンド再生中
|