[PR] この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

DKC hacks
Dev Doc
Development support
Others
Inquiries
External links
You can change the side menu width by clicking or dragging
English translation of this page is currentry unavailable. Sorry.
APU RAMマップ
スーパードンキーコング2 および、Diddy's Kong Quest で使用されているRareWare Sound Driver が使用するAPU RAMのデータについて説明します。
このサウンド・ドライバは、スーパードンキーコング3 および、Dixie Kong's Doubkle Trouble でも全く同一のものが使用されています。

※ドンキー3改造資料 - APU RAMマップはこのページにリダイレクトされています。

<免責事項>
この表は独自解析に基づく調査結果であり、誤りが含まれている可能性があります。この情報を使用したことに起因するいかなる損害に対しても、著者はその責を負いません。
凡例
データ型は次のように対応します。
byte: 符号なし8ビット整数
sbyte: 符号付8ビット整数
short: 符号付16ビット整数
ushort: 符号なし16ビット整数
bool: ブーリアン型
byte[]: バイト配列

APU RAM ($0000 - $FFFF; 65536 bytes)
DSPのチャネル数は8ですが、ドライバ内部では16チャンネルとして扱われます。DSPの0~7チャネルが、ドライバの0~7チャネルと8~15チャネルに重ねてマップされます。
0~7チャネルはBGMの再生用に、8~15チャネルはSEの再生用に割り当てられ、SE割込が発生した場合には、対応するBGMチャネルが中断されます。
ドライバが使用するレジスタは16チャネル分確保されているものがほとんどですが、SEチャネルが使用しないレジスタはBGM用の8チャネル分の領域のみ確保されます。

アドレス 種別 内容
$0000
byte[4]
buffer
作業領域
$000C
byte[8]
data
各チャネルの特殊Note #$E0用のノートナンバー
$0014
byte[8]
data
各チャネルの特殊Note #$E1用のノートナンバー
$001F
byte
data
現在のテンポ
$0021
byte
data
現在のSEテンポ
$0024
byte[16]
counter
現在の各チャネルのNoteイベントの残りTick数(下位)
$0034
byte[16]
counter
現在の各チャネルのNoteイベントの残りTick数(上位)
$0044
byte[16]
pointer
現在の各チャネルの読出しアドレス(下位)
$0054
byte[16]
pointer
現在の各チャネルの読出しアドレス(上位)
$0064
sbyte[16]
data
現在の各チャネルのチューニング値
$0074
byte[16]
data
現在の各チャネルのピッチ値(下位)
$0084
byte[16]
data
現在の各チャネルのピッチ値(上位)
$00A4
sbyte[16]
data
ビブラート関連
$00B4
sbyte[16]
data
現在の各チャネルのビブラート間隔
$00C4
sbyte[16]
data
現在の各チャネルのビブラート・ディレイ
$00F0
byte
register
TESTレジスタ
$00F1
byte
register
CONTROLレジスタ
$00F2
byte
register
DSP通信アドレス
$00F3
byte
register
DSP通信データ
$00F4
byte
register
CPU入出力0
$00F5
byte
register
CPU入出力1
$00F6
byte
register
CPU入出力2
$00F7
byte
register
CPU入出力3
$00F8
byte
register
RAM
$00F9
byte
register
RAM
$00FA
byte
register
タイマ0スケーリングターゲット
$00FB
byte
register
タイマ1スケーリングターゲット
$00FC
byte
register
タイマ2スケーリングターゲット
$00FD
byte
register
タイマ0出力
$00FE
byte
register
タイマ1出力
$00FF
byte
register
タイマ2出力
$0100
sbyte[16]
buffer
ピッチスライド作業領域
$0110
sbyte[16]
buffer
ピッチスライド作業領域
$0120
byte[16]
data
各チャネルのデフォルト・デュレーション(下位)
$0130
byte[16]
data
各チャネルのデフォルト・デュレーション(上位)
$0140
sbyte[16]
data
現在の各チャネルのトランスポーズ値
$0150
byte[16]
data
各チャネルのピッチスライドおよびビブラート有効フラグ
$0160
byte[16]
data
現在の各チャネルのピッチスライド・ディレイ
$0170
byte[16]
data
現在の各チャネルのビッチ変更間隔
$0180
byte[16]
data
現在の各チャネルのピッチ変更回数1
$0190
byte[16]
data
現在の各チャネルのピッチ変更回数2
$01A0
sbyte[16]
buffer
ピッチスライド作業領域
$01B0
sbyte[16]
data
現在の各チャネルのピッチ変更幅
$01C0
sbyte[16]
buffer
ピッチスライド作業領域
$01D0
bool[16]
flag
各チャネルのデュレーション拡張有効フラグ
$01E0
bool[16]
flag
各チャネルのSE割込みフラグ
$0200
byte[16]
data
ビブラート関連
$0210
byte[16]
data
現在の各チャネルのビブラート間隔
$0220
byte[16]
data
現在の各チャネルのビブラート・ディレイ
$0230
sbyte[2]
data
DSPマスタ音量
$0232
sbyte[2]
data
DSPエコー音量
$0234
sbyte[16]
data
現在の各チャネルのビブラート・デプス
$0244
byte[16]
data
現在の各チャネルのソース・ナンバー
$0254
sbyte[16]
data
現在の各チャネルの左音量
$0264
sbyte[16]
data
現在の各チャネルの右音量
$0274
byte[16]
data
現在の各チャネルのADSR1
$0284
byte[16]
data
現在の各チャネルのADSR2
$0294
bool[16]
flag
各チャネルのエコー有効フラグ
$0334
byte[16][8]
pointer
各チャネルのコール・スタック(下位)
$03BC
byte[16][8]
pointer
各チャネルのコール・スタック(上位)
$0434
byte[16][8]
counter
各チャネルのサブルーチン残り呼び出し回数
$04B3
byte
data
ノイズ・クロック
$04B5
sbyte
data
マスタ音量
$04B7
sbyte[2][2]
data
ボリュームプリセット
$04D8
-
assembly
ドライバ・プログラム
$0560
byte[256]
data
波形テーブル
$0660
-
assembly
ドライバ・プログラム
$0F95
byte[8]
data
ビットマスク用定数テーブル
$0F9D
byte[8]
data
ビットマスク用定数テーブル
$0FA5
ushort[51]
pointer
コマンド処理テーブル
$100B
-
assembly
ドライバ・プログラム
$1199
ushort[98]
data
ピッチ定義テーブル
$125D
byte[163]
-
空き領域
$1300
byte[]
data
シーケンスデータ領域
$2DF0
byte[]
data
SEデータ領域
$3100
byte[1024]
data
波形テーブル
$3500
byte[]
data
波形データ領域
$????
byte[]
buffer
エコー用リングバッファ(開始アドレスはエコー・ディレイの値で決まる)
$FF00
byte[196]
-
空き領域
ただし、エコー・ディレイが0msの場合は$FF00 - $FF03をエコー用領域とし、$FF04から空き領域となる。
$FFC0
-
assembly
IPL ROM(起動用)