ゴーファーの野望 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なら割り込み終了。 |