HuC6230(SoundBox)

PSG 部分は、PC-Engine と同じらしい。

ADPCM のデータ転送KING が行う。

I/Oポートアドレス

100hchannel select
102hMain volume
104hFrequency(low)
106hFrequency(high)
108hChannel volume
10AhPan
10ChWave data
10EhNoise
110hLFO Freq.
112hLFO control
120hADPCM control
122hADPCM Vol0 left(0〜3Fh)
124hADPCM Vol0 right(0〜3Fh)
126hADPCM Vol1 right(0〜3Fh)
128hADPCM Vol1 right(0〜3Fh)
12Ah
12Ch

レジスタ

100h チャンネル選択(Byte)

104h〜10Eh はチャンネル毎に設定でき、そのチャンネルを選択するにはこのレジスタにチャンネル番号(0〜5)を出力します。

102h メインボリューム(Byte)

PSG 音源全体のボリュームを設定します。bit7-4 に左の音量(0〜15)、bit3-0 に右の音量(0〜15)を指定します。

104h,106h 周波数設定(Byte)

音の周波数を指定します。ここに指定する値は n(12bit) = 3580000/32/freq で得られます。104h に求めた値の下位 8bit、106h に上位 4bit を指定します。

108h ボリューム(Byte)

チャンネル毎の音量を指定します。音量は 0〜31 で指定し、bit4-0 に音量を指定します。bit7-6 は音声出力を制御する為に使用されます。

bit7(ch on)bit6(dda)動作
00波形データを書き込む
01波形データのインデックスをリセットする
10波形データと周波数設定により音を出力する
11波形データに出力されたデータをリアルタイムに出力する

10Ah 左右音量バランス(Byte)

左と右の音量を指定します。bit7-4 に左の音量(0〜15)、bit3-0 に右の音量(0〜15)を指定します。

10Ch 波形データ(Byte)

出力する音の波形を設定します。108h の bit7-6 を 00 にして、10Ch に 32バイトの波形データを設定します。

波形は符号無し 5bit のデータで表されます。

10Eh ノイズ設定(Byte)

ノイズの設定を指定します。bit4-0 にノイズ周波数を指定し、bit7 にノイズを有効(1)にするか無効(0)にするかを指定します。

ノイズを使用できるのは、チャンネル 5 とチャンネル 6 のみです。

ノイズ周波数は n(5bit) = 3580000/64/freq で計算できます。

110h LFO周波数(Byte)

LFO の周波数を指定します。

112h LFOコントロール(Byte)

120h ADPCM コントロール(Half)

bit1-bit0サンプリングレート
00 = 32kHz
01 = 16kHz
10 = 8kHz
11 = 4kHz
bit2channel0 liner flag
bit3channel1 liner flag
bit4channel0 reset
bit5channel1 reset

122h ADPCM 0 左音量(Byte)

ADPCM チャンネル 0 の左音量を 0 〜 63 で指定します。

124h ADPCM 0 右音量(Byte)

ADPCM チャンネル 0 の右音量を 0 〜 63 で指定します。

126h ADPCM 1 左音量(Byte)

ADPCM チャンネル 1 の左音量を 0 〜 63 で指定します。

128h ADPCM 1 右音量(Byte)

ADPCM チャンネル 1 の右音量を 0 〜 63 で指定します。

ADPCMデータ

ADPCM は DPCM を改良したもので、差分にスケールファクタをかけます。

新しい音量 = 過去の音量 + 差分 * スケールファクタ

スケールファクタは差分の傾向から動的に変化し、波形の変化が大きい場合はスケールファクタは増大し、変化が小さい場合はスケールファクタは減少します。このような動作により、4bit のデータでも元の波形に近いデータを出力することが可能です。

PC-FX の ADPCM は MSM6258 のデータをそのまま再生できるようです。8bitデータの下位4bit、上位4bit の順で再生され、4bit データは符号部と数値部が分離していますので、注意が必要です。

bit3符号(0=+ / 1=-)
bit2-0値の絶対値

[TOPへ戻る]