主にMSX関係のコンテンツが置いてあります。

ゴーファーの野望 EPISODEⅡ サウンドドライバワークエリア

アドレス オフセット 内容
E000H-E03FH PSG Ch.A
E000H +00H 曲番号 01H-
E001H +01H 優先値 数値が大きい方が優先される
E002H-E003H +02H 曲データアドレス 下位、上位
E004H +04H 音長カウンタ下位
E005H +05H 区間ループカウンタ 曲データFBHでインクリメントされる
E006H +06H 区間ループ2カウンタ 曲データFCHでインクリメントされる
E007H-E008H +07H 曲データアドレスの保存 下位、上位
E009H +09H データフラグ
b0: データ形式,音名音長タイプ 1=有効
b1: データ形式,直接指定タイプ 1=有効
b2: 音長指定直接変化0
b3: 音長指定直接変化1
b4: 音長指定直接変化2
b5:
b6:
b7: 音長指定直接変化設定中 1=有効
E00AH-E00BH +0AH 分周比データ 下位、上位。音源に書き込まれる値
E00CH +0CH 音量データ 音源に書き込まれる値
E00DH +0DH 波形/キーオンフラグ
b0: PSGノイズ 1=有効
b1: PSGトーン/SCCキーオン 1=有効
b2: ハードウェアエンベロープ使用フラグ 1=使用する
b3: 音量書き込みスキップ 1=スキップする
b4: モーフィングモード選択ビット0?
b5: モーフィングモード選択ビット1?
b6: モーフィングフラグ 1=モーフィング使用 0=通常波形
b7: モーフィング初期化スキップフラグ 1=スキップする
E00EH +0EH 音処理フラグ
b0: 音処理、直接式フラグ 1=有効
b1: デチューンフラグ 1=有効
b2: ビブラートフラグ 1=有効
b3: ビブラート開始遅延フラグ 1=有効
b4: ビブラート揺らし中フラグ 1=揺らし中
b5: 直接指定フォーマット分周比下位無効フラグ 0=分周比下位あり 1=分周比下位なし(音量、分周比上位のみ)
b6: 直接指定フォーマット音量値無効フラグ 0=音量値あり。b5:も参照する 1=音量値なし(分周比下位のみ)
b7: 音量減算フラグ 1=有効
E00FH +0FH エンベロープフラグ1
b0: ボリュームエンベロープ選択 1=選択
b1: 開始音量指定有効 1=有効
b2: エンベロープタイプB選択 1=タイプB 0=タイプA
b3: [ボリュームエンベロープ選択時]
    
エンベロープタイプC選択 1=タイプC
    
[トレモロエンベロープ選択時]
    
トレモロ処理 1=行う
b4: エンベロープタイプCモード 0=スロー減衰 1=急峻減衰
b5: [ボリュームエンベロープ選択時]
    
タイプD選択 1=タイプD
    
[トレモロエンベロープ選択時]
    
トレモロ処理方向 0=音量減衰 1=音量増加
b6: トレモロエンベロープ選択 1=選択
b7: 波形転送フラグ。通常波形転送後0になる。モーフィング時は1のまま
E010H-E011H +10H データから取得した分周比値 下位、上位。必要があれば加工して、なければそのまま(+0AH)(+0BH)へコピーされる
E012H +12H チャンネルボリューム マスターボリューム(+15H)からフェードアウトなどを反映させた音量値
E013H +13H クロックカウンタ設定値
新しく音を出す時に直接指定形式なら音長カウンタ下位(+04H)へ
音長指定直接変化形式ならクロックカウンタ(+19H)へコピーされる
E014H +14H 基本音長
E015H +15H マスターボリューム 曲データで指定された音量値
E016H +16H オクターブ値
0=o6
1=o5
2=o4
3=o3
4=o2
5=o1
E017H-E018H +17H 直接変化での曲データアドレス 下位、上位
E019H +19H クロックカウンタ
音長指定直接変化形式で、音処理中の変化用カウンタ
E01AH +1AH ビブラート開始遅延カウント値 0-255(0は256相当)
E01BH +1BH ビブラート速度カウント値
E01CH +1CH ビブラート深さ値 1-15(0は変化しない)
E01DH +1DH ビブラート加算フラグ 00H=減算 FFH=加算
E01EH +1EH ビブラートインクリメントカウンタ
E01FH +1FH ボリュームエンベロープインクリメントカウンタ
E020H +20H [ボリュームエンベロープ選択時]
エンベロープタイプC減算回数カウンタ
[トレモロエンベロープ選択時]
音量データ閾値
E021H +21H エンベロープタイプB維持カウント 1-8
E022H +22H [ボリュームエンベロープ選択時]
タイプC減算維持カウント/タイプC減算値 1-8
[トレモロエンベロープ選択時]
維持カウント値
E023H +23H [ボリュームエンベロープ選択時]
タイプC減算回数/維持カウント
[トレモロエンベロープ選択時]
音量減算値 整数4bit+小数4bit
E024H +24H [ボリュームエンベロープ選択時]
タイプD維持カウント
[トレモロエンベロープ選択時]
音量加算値 整数4bit+小数4bit
E025H +25H タイプA前半維持カウント/開始音量
E026H +26H デチューン値
E027H-E028H +27H 波形データ開始アドレス 下位、上位
E029H +29H 音長指定直接変化方式テーブル算出用オクターブ値
E02AH +2AH 音処理フラグコピー (+0EH)の保存
E02BH +2BH エンベロープフラグ1コピー (+0FH)の保存
E02CH +2CH 音長カウンタ上位
E02DH +2DH
E02EH +2EH
E02FH +2FH チャンネルボリューム減算値
E030H +30H エンベロープフラグ2
b0: タイプA-1パラメータ設定フラグ 1=設定済み
b1: タイプA-0選択 1=タイプA-0選択 0=タイプA-1選択
b2: タイプA-1、前半後半フラグ 0=前半 1=後半
b3: トレモロエンベロープ終了フラグ 1=終了
b4: トレモロエンベロープ下限到達フラグ 1=到達
b5: トレモロエンベロープ初回処理判定フラグ 0=初回 1=2回目以降
b6: モーフィング増分計算オーバーフローフラグ 1=オーバーフローした
b7: モーフィング処理停止フラグ 1=停止
E031H +31H モーフィング波形アドレス増分
E032H +32H モーフィング増分加算値 整数2bit+小数4bit
E033H +33H モーフィング増分計算テンポラリ 整数4bit+小数4bit
E034H +34H エンベロープ下限値
0-15
E035H +35H タイプA-1前半減衰値
E036H +36H タイプA-1後半音量差分 1-15。0は使用しないことを表す
E037H +37H トレモロエンベロープ、固定小数点音量値計算テンポラリ
E038H +38H トレモロエンベロープ、閾値算出用減算値
E039H +39H ベンド増減値
E03AH +3AH ベンドカウンタ
E03BH +3BH ベンドカウンタ元値
E03CH +3CH ベンドフラグ
b0:
b1:
b2:
b3: 波形設定で0になるが未使用?
b4: ベンド処理有効フラグ 1=有効
b5: ベンド処理状態フラグ 0=初回 1=2回目以降
b6: ベンド処理中フラグ 1=処理中 0=終了
b7: ベンドアップダウンフラグ 0=ベンドアップ 1=ベンドダウン
E03DH +3DH
E03EH +3EH
E03FH +3FH
E040H-E07FH PSG Ch.B
E080H-E0BFH PSG Ch.C
E0C0H-E0FFH SCC Ch.A
E100H-E13FH SCC Ch.B
E140H-E17FH SCC Ch.C
E180H-E1BFH SCC Ch.D
E1C0H-E1FFH SCC Ch.E
E200H-E23FH F1ポーズ時のSCC Ch.Aワークエリアバックアップ
 
E280H コントロールフラグ
b0: フェードアウトフラグ 1=有効
b1: ポーズフラグ 1=有効
b2:
b3: ポーズ時フェードアウト中フラグ 1=フェードアウト中
b4: ? フェードアウト時0になる。フェードアウト適用時b0:b4:をチェックする。
b5:
b6:
b7:
※ワーク作成用バッファ(曲ワークエリアデータは可変長)
E281H ワーク作成時の引数。曲番号
E282H 使用チャンネルフラグ
b0: SCC Ch.E 1=使用する
b1: SCC Ch.D
b2: SCC Ch.C
b3: SCC Ch.B
b4: SCC Ch.A
b5: PSG Ch.C
b6: PSG Ch.B
b7: PSG Ch.A
E283H 優先値
E284H-E285H 使用チャンネルの曲データ開始アドレス1
E286H-E287H 使用チャンネルの曲データ開始アドレス2
E288H-E289H 使用チャンネルの曲データ開始アドレス3
E28AH-E28BH 使用チャンネルの曲データ開始アドレス4
E28CH-E28DH 使用チャンネルの曲データ開始アドレス5
E28EH-E28FH 使用チャンネルの曲データ開始アドレス6
E290H-E291H 使用チャンネルの曲データ開始アドレス7
E292H-E293H 使用チャンネルの曲データ開始アドレス8
※ワーク作成用バッファここまで
E294H フェードアウト速度値
E295H フェードアウト終了値
E296H フェードアウトインクリメントカウンタ
E297H フェードアウト減算値
E298H PSG レジスタ7書き込みコピー
E299H 処理チャンネルフラグ
処理中のチャンネルを表すので1bitのみが1になる
b0: PSG Ch.A
b1: PSG Ch.B
b2: PSG Ch.C
b3: SCC Ch.A
b4: SCC Ch.B
b5: SCC Ch.C
b6: SCC Ch.D
b7: SCC Ch.E
Hex表記
01H PSG Ch.A
02H PSG Ch.B
04H PSG Ch.C
08H SCC Ch.A
10H SCC Ch.B
20H SCC Ch.C
40H SCC Ch.D
80H SCC Ch.E
E29AH PSGノイズ周波数 Ch.C用
E29BH PSGノイズ周波数 Ch.A/Ch.B用
E29CH PSGフラグ
b0: Ch.C用ノイズ周波数書き込みフラグ 1=書き込む
b1: Ch.C用ノイズ周波数書き込み完了フラグ 1=完了
b2: Ch.A/B用ノイズ周波数書き込みフラグ 1=書き込む
b3: Ch.A/B用ノイズ周波数書き込み完了フラグ 1=完了
b4:
b5: ハードウェアエンベロープパターン書き込みフラグ 1=書き込む
b6: ハードウェアエンベロープ周期上位書き込みフラグ 1=書き込む
b7: ハードウェアエンベロープ周期下位書き込みフラグ 1=書き込む
E29DH PSG ハードウェアエンベロープパターン PSGに書き込む値
E29EH-E29FH PSG ハードウェアエンベロープ周期 下位、上位。PSGに書き込む値
※SCCレジスタ書き込みバッファ
E2A0H SCCレジスタ書き込みフラグ1 1の項目だけレジスタ書き込みバッファからSCCへ書き込む
b0: Ch.A 分周比下位
b1: Ch.A 分周比上位
b2: Ch.B 分周比下位
b3: Ch.B 分周比上位
b4: Ch.C 分周比下位
b5: Ch.C 分周比上位
b6: Ch.D 分周比下位
b7: Ch.D 分周比上位
E2A1H SCCレジスタ書き込みフラグ2 1の項目だけレジスタ書き込みバッファからSCCへ書き込む
b0: Ch.E 分周比下位
b1: Ch.E 分周比上位
b2: Ch.A 音量
b3: Ch.B 音量
b4: Ch.C 音量
b5: Ch.D 音量
b6: Ch.E 音量
b7: キーイネーブル
E2A2H SCC Ch.A 分周比下位 ※SCCへ書き込む値でもあり、前回書き込んだ値でもある(キーイネーブルまで)
E2A3H SCC Ch.A 分周比上位
E2A4H SCC Ch.B 分周比下位
E2A5H SCC Ch.B 分周比上位
E2A6H SCC Ch.C 分周比下位
E2A7H SCC Ch.C 分周比上位
E2A8H SCC Ch.D 分周比下位
E2A9H SCC Ch.D 分周比上位
E2AAH SCC Ch.E 分周比下位
E2ABH SCC Ch.E 分周比上位
E2ACH SCC Ch.A 音量
E2ADH SCC Ch.B 音量
E2AEH SCC Ch.C 音量
E2AFH SCC Ch.D 音量
E2B0H SCC Ch.E 音量
E2B1H SCC キーイネーブル
 
E2BBH ポーズ時、PSGワークの保存
b0-b3: Ch.A(+0DH)の下位4bit
b4-b7: Ch.B(+0DH)の下位4bit
E2BCH ポーズ時、PSGワークの保存
b0-b3: Ch.C(+0DH)の下位4bit
E2BDH
E2BEH 曲データのバンク種別
A000H-BFFFHのバンク
0=バンク12
1=バンク13
2=バンク9
3=バンク25
E2BFH 笑い声専用フラグ
b0: 笑い声処理中フラグ 1=笑い声中
b1: 笑い声初期化処理フラグ 1=初期化する
b2:
b3:
b4:
b5:
b6:
b7:
E2C0H 笑い声データアドレスポインタ
笑い声データフォーマット
+0 SCC Ch.A 分周比 上位
+1 SCC Ch.A 分周比 下位
+2-+33 波形データ
E2C2H ワーク作成時の引数、曲番号保存
 
E300H
E301H
E302H
E303H
E304H
E305H ゲーム処理多重割り込みフラグ 割り込み時0ならゲーム処理を行う。処理中は1になる。割り込み時1なら割り込み終了。
E306H サウンドドライバ多重割り込みフラグ 割り込み時0ならば割り込み中サウンドドライバで処理を行う。処理中は1になる。割り込み時1なら割り込み終了。