XPAC2動作確認のため久しぶりに使ってみた。
SMS Power!のサイトにも新しいVGMファイルが登録されており、久々にDCSGサウンドを堪能...
もう一台、別のPasopia7でのテスト。
OPNAにはかなわないけど、DCSGでもなかなかいい感じです...
最後はPasopia700でWaveファイル再生テスト。
以前紹介した、DCSGを使ったWaveファイル再生
Pasopia700はファンノイズがあるので、内蔵スピーカーで楽しむならPasopia7の方が良いかもです。
WavToDCSG.exe Waveファイル名
Lレジスタに読み込むデータは、64KBの前半・後半で読み込み方法が異なります
;初期設定: SN76489の周波数を1に設定 ; SG_PORT EQU 3Bh ;SN76489 Access Port(3Ah/3Bh) XOR A LD C, SG_PORT LD B, 081h ;Tone0 Frequency OUT (C), B OUT (C), A LD B, 0A1h ;Tone1 Frequency OUT (C), B OUT (C), A LD B, 0C1h ;Tone2 Frequency OUT (C), B OUT (C), A LOOP: ; ここでLレジスタにDCSGデータロード ; * TONE_0テーブルの先頭は、Lowアドレスが00hになるように調整 ; * テーブルデータの上位4bitは、TONE_0:Dxh, TONE_1:Bxh, TONE_2:9xhにセット LD H, TONE_0テーブルのHighアドレス LD A, (HL) ;Tone0波形データ読み込み INC H LD B, (HL) ;Tone1波形データ読み込み INC H LD H, (HL) ;Tone2波形データ読み込み ; SN76489ポートの設定 OUT (C), H OUT (C), B OUT (SG_PORT), A
[3] 64KB MRAM (DEVICE 6)
[4] 64KB MRAM (DEVICE 5)
Volume設定値 | 出力値 | 割合 |
---|---|---|
0 | 32767 | 1.000000 |
1 | 26028 | 0.794328 |
2 | 20675 | 0.630957 |
3 | 16422 | 0.501187 |
4 | 13045 | 0.398107 |
5 | 10362 | 0.316228 |
6 | 8231 | 0.251189 |
7 | 6568 | 0.199526 |
8 | 5193 | 0.158489 |
9 | 4125 | 0.125893 |
10 | 3277 | 0.100000 |
11 | 2603 | 0.079433 |
12 | 2067 | 0.063096 |
13 | 1642 | 0.050119 |
14 | 1304 | 0.039811 |
15 | 0 | 0.000000 |
6和音テーブルも作成してみましたが、11025Hzのタイミングでは処理が厳しそうなので今回は3和音でいってみます
TONE_0: DB 0Fh, 0Eh, 0Dh, 0Ch, 0Bh, 0Eh, 0Dh, 0Ah, 0Ch, 0Ch, 09h, 0Dh, 0Bh, 0Dh, 0Bh, 0Eh DB 0Ch, 09h, 0Bh, 09h, 0Ah, 0Bh, 0Ah, 0Eh, 08h, 08h, 09h, 0Dh, 08h, 09h, 09h, 08h DB 07h, 07h, 0Bh, 08h, 06h, 08h, 06h, 06h, 0Eh, 07h, 0Dh, 08h, 07h, 05h, 08h, 07h DB 04h, 06h, 05h, 0Dh, 05h, 09h, 05h, 04h, 06h, 03h, 07h, 08h, 05h, 06h, 04h, 07h DB 0Bh, 03h, 0Bh, 05h, 0Eh, 0Bh, 0Ah, 03h, 05h, 05h, 03h, 03h, 03h, 02h, 03h, 02h DB 02h, 06h, 03h, 02h, 03h, 02h, 04h, 02h, 03h, 03h, 01h, 09h, 03h, 04h, 02h, 03h DB 0Dh, 01h, 01h, 01h, 02h, 02h, 04h, 05h, 01h, 04h, 08h, 01h, 01h, 03h, 02h, 09h DB 02h, 00h, 01h, 01h, 00h, 02h, 02h, 00h, 03h, 02h, 00h, 00h, 03h, 0Bh, 01h, 03h DB 01h, 00h, 08h, 0Ch, 00h, 03h, 00h, 02h, 00h, 00h, 00h, 01h, 00h, 00h, 0Ah, 02h DB 0Dh, 05h, 00h, 01h, 01h, 00h, 00h, 01h, 02h, 01h, 03h, 06h, 00h, 01h, 00h, 01h DB 01h, 02h, 00h, 04h, 01h, 00h, 01h, 00h, 04h, 04h, 00h, 01h, 08h, 00h, 02h, 01h DB 00h, 03h, 03h, 01h, 00h, 01h, 00h, 00h, 01h, 01h, 00h, 01h, 00h, 00h, 01h, 00h DB 01h, 01h, 00h, 02h, 02h, 01h, 00h, 01h, 00h, 00h, 01h, 00h, 01h, 00h, 00h, 00h DB 00h, 02h, 00h, 01h, 00h, 00h, 01h, 00h, 00h, 00h, 00h, 01h, 01h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 01h, 00h, 00h, 00h, 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 04h, 04h, 00h, 00h, 01h, 01h, 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h TONE_1: DB 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Eh, 0Eh, 0Fh, 0Eh, 0Dh, 0Fh, 0Eh, 0Ch, 0Dh, 0Eh, 0Bh DB 0Ch, 0Ch, 0Ch, 0Bh, 0Ch, 0Bh, 0Bh, 0Ah, 0Dh, 0Ah, 0Ah, 09h, 09h, 09h, 09h, 0Ah DB 0Bh, 0Bh, 08h, 09h, 0Ch, 09h, 0Bh, 0Bh, 06h, 07h, 07h, 08h, 09h, 0Bh, 08h, 09h DB 0Ch, 08h, 0Ah, 04h, 0Ah, 05h, 08h, 09h, 07h, 0Eh, 06h, 07h, 06h, 07h, 09h, 05h DB 04h, 0Ch, 03h, 06h, 04h, 05h, 04h, 0Ah, 07h, 05h, 09h, 07h, 08h, 0Dh, 09h, 0Ch DB 0Ch, 06h, 07h, 0Ah, 07h, 08h, 07h, 09h, 06h, 07h, 0Eh, 04h, 06h, 04h, 08h, 06h DB 01h, 0Dh, 0Ch, 0Bh, 06h, 07h, 03h, 05h, 0Ah, 05h, 03h, 09h, 08h, 03h, 05h, 01h DB 04h, 0Eh, 09h, 08h, 0Ch, 05h, 06h, 0Dh, 04h, 04h, 0Bh, 09h, 05h, 00h, 07h, 03h DB 06h, 0Ah, 02h, 02h, 09h, 04h, 08h, 03h, 07h, 07h, 08h, 05h, 07h, 08h, 01h, 02h DB 02h, 03h, 06h, 03h, 03h, 05h, 05h, 03h, 03h, 04h, 03h, 00h, 05h, 05h, 04h, 04h DB 03h, 02h, 05h, 00h, 02h, 04h, 02h, 05h, 00h, 02h, 03h, 02h, 00h, 05h, 02h, 01h DB 04h, 00h, 01h, 02h, 02h, 01h, 04h, 03h, 01h, 02h, 02h, 03h, 03h, 02h, 01h, 02h DB 02h, 01h, 02h, 02h, 02h, 01h, 02h, 03h, 03h, 03h, 02h, 01h, 00h, 01h, 01h, 01h DB 02h, 02h, 01h, 01h, 01h, 01h, 02h, 02h, 02h, 01h, 01h, 01h, 01h, 01h, 03h, 03h DB 02h, 02h, 00h, 01h, 02h, 00h, 00h, 00h, 01h, 00h, 01h, 01h, 00h, 02h, 02h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 01h, 01h, 01h, 00h, 00h, 02h, 02h, 02h, 01h, 01h TONN_2: DB 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Fh, 0Eh, 0Fh, 0Dh, 0Eh, 0Dh DB 0Dh, 0Fh, 0Dh, 0Fh, 0Dh, 0Ch, 0Dh, 0Ah, 0Eh, 0Fh, 0Eh, 0Ah, 0Fh, 0Eh, 0Dh, 0Dh DB 0Eh, 0Dh, 0Ah, 0Ch, 0Eh, 0Bh, 0Eh, 0Dh, 0Ah, 0Fh, 08h, 0Ah, 0Ah, 0Eh, 09h, 09h DB 0Fh, 0Ch, 0Ch, 0Eh, 0Bh, 0Ch, 0Eh, 0Fh, 0Bh, 0Fh, 0Ah, 07h, 0Fh, 09h, 0Ch, 0Bh DB 09h, 0Dh, 0Eh, 0Ch, 07h, 06h, 08h, 0Ch, 08h, 0Dh, 0Ch, 0Fh, 0Dh, 0Eh, 0Ah, 0Eh DB 0Dh, 06h, 0Ch, 0Eh, 0Bh, 0Fh, 07h, 0Dh, 0Ch, 09h, 0Fh, 05h, 0Ah, 0Ch, 0Bh, 09h DB 0Eh, 0Dh, 0Dh, 0Eh, 0Eh, 0Ah, 0Eh, 05h, 0Ch, 06h, 05h, 0Ch, 0Eh, 0Fh, 0Ch, 0Ah DB 0Fh, 0Fh, 09h, 0Ah, 0Fh, 09h, 07h, 0Eh, 07h, 0Bh, 0Eh, 0Fh, 05h, 0Ch, 08h, 08h DB 09h, 0Bh, 04h, 03h, 0Bh, 05h, 0Ch, 0Ah, 0Eh, 0Dh, 0Ah, 08h, 0Bh, 09h, 04h, 0Eh DB 02h, 03h, 0Bh, 0Eh, 0Dh, 0Eh, 0Dh, 0Bh, 06h, 07h, 04h, 08h, 0Ah, 05h, 0Eh, 06h DB 08h, 07h, 08h, 0Bh, 0Ch, 0Ah, 0Bh, 07h, 09h, 03h, 0Eh, 09h, 04h, 06h, 05h, 0Fh DB 07h, 0Ah, 05h, 07h, 0Fh, 0Dh, 06h, 08h, 0Bh, 06h, 0Dh, 04h, 07h, 0Bh, 09h, 0Ah DB 05h, 08h, 09h, 03h, 03h, 07h, 08h, 03h, 05h, 05h, 04h, 0Eh, 0Dh, 0Ch, 0Ch, 0Bh DB 06h, 02h, 0Ah, 05h, 09h, 09h, 03h, 05h, 05h, 08h, 08h, 04h, 04h, 07h, 03h, 03h DB 04h, 04h, 0Eh, 06h, 02h, 0Ch, 0Bh, 0Bh, 03h, 0Ah, 05h, 05h, 09h, 03h, 03h, 08h DB 08h, 08h, 01h, 01h, 07h, 07h, 02h, 02h, 02h, 06h, 06h, 02h, 02h, 02h, 03h, 03h
[3] 64KB MRAM (DEVICE 6)
[4] 64KB MRAM (DEVICE 5)