GBA 開発部屋:メモリマップ
全体
領域 | アドレス |
BIOS ROM | 0x00000000-0x00003fff |
外部 RAM | 0x02000000-0x0203ffff |
内部 RAM | 0x03000000-0x03007fff |
I/O レジスタ | 0x04000000-0x040003ff |
パレット RAM | 0x05000000-0x050003ff |
ビデオ RAM | 0x06000000-0x06017fff |
OAM RAM | 0x07000000-0x070003ff |
OAM(Object Attribute Memory)はスプライト用レジスタ。
ゲームパック(カートリッジ)関連は 0x08000000
以降だが、詳細は不明。
グラフィック
0x04000000 (DISPCNT, R/W) : Display control register
初期値 : 0x0080
O W W O B B B B B O O D G M M M
W 1 0 B 3 2 1 0 L M P F B 2 1 0
M2-0: BG モード(ビットマップ時も拡縮回転可)
000: タイル BG0-3(全てテキストモード)
001: タイル BG0-2(BG0/1 がテキストモード、BG2 が拡縮回転モード)
010: タイル BG2-3(全て拡縮回転モード)
011: ビットマップ BG2 240×160×15bit
100: ビットマップ BG2-3 240×160×8bit
101: ビットマップ BG2-3 160×120×15bit
110: 不明
111: 不明
GB : GBC モード(リードのみ)
DF : 表示フレーム選択
OP : OBJ 処理モード(0:常時、1:水平ブランク時には処理しない)
OM : OBJ マッピング方式(0:2D、1:1D)
以下の例は、32×32 ドット 4bit カラーでタイル番号に 5 を
指定したときのタイルの並び
・2D(行の先頭が 32 個おきに配置)
5 6 7 8
37 38 39 40
69 70 71 72
101 102 103 104
・1D(順番に配置)
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
BL : 強制ブランク
B3-0: BG 表示フラグ
OB : OBJ 表示フラグ
W1-0: ウィンドウ使用フラグ
OW : OBJ ウィンドウ使用フラグ
0x04000004 (DISPSTAT, R/W) : Display status
初期値 : 0x0000
L L L L L L L L x x R H V R H V
7 6 5 4 3 2 1 0 x x E E E I B B
VB : V-Blank(リードのみ)
HB : H-Blank(リードのみ)
RI : ラスター割り込み中(リードのみ)
VE : V-Blank 割り込み許可
HE : H-Blank 割り込み許可
RE : ラスター割り込み許可
L7-0: ラスター割り込み位置
0x04000006 (VCOUNT, R) : Vertical count
0 から 159 までが表示期間、160 から 227 までが V-Blank 期間
0x04000008 (BG0CNT, R/W) : BG0 control
0x0400000a (BG1CNT, R/W) : BG1 control
0x0400000c (BG2CNT, R/W) : BG2 control
0x0400000e (BG3CNT, R/W) : BG3 control
初期値 : 0x0000
S S M M M M M M C M x x T T P P
1 0 T 4 3 2 1 0 M Z x x 1 0 1 0
P1-0: 表示優先順位
T1-0: タイルブロックインデックス番号
0x06000000 + T * 0x4000 から配置される
MZ : モザイク ON
CM : カラーモード(拡縮回転モードでは 256 色固定)
0: 16 色×16 パレットブロック
1: 256 色×1 パレットブロック
M4-0: マップブロックインデックス番号
0x06000000 + M * 0x800 から配置される
MT : 拡縮回転モード時の BG エリア外描画モード(0:透明、1:ループ)
S1-0: 仮想スクリーンサイズ
・テキストモード
00: 256×256
01: 512×256
10: 256×512
11: 512×512
・拡縮回転モード
00: 128×128
01: 256×256
10: 512×512
11: 1024×1024
0x04000010 (BG0HOFFS, W) : BG0 horizontal offset
0x04000014 (BG1HOFFS, W) : BG1 horizontal offset
0x04000018 (BG2HOFFS, W) : BG2 horizontal offset
0x0400001c (BG3HOFFS, W) : BG3 horizontal offset
初期値 : 0x0000
? ? ? ? ? ? H H H H H H H H H H
? ? ? ? ? ? 9 8 7 6 5 4 3 2 1 0
H9-0: BG 水平オフセット
0x04000012 (BG0VOFFS, W) : BG0 vertical offset
0x04000016 (BG1VOFFS, W) : BG1 vertical offset
0x0400001a (BG2VOFFS, W) : BG2 vertical offset
0x0400001e (BG3VOFFS, W) : BG3 vertical offset
初期値 : 0x0000
? ? ? ? ? ? V V V V V V V V V V
? ? ? ? ? ? 9 8 7 6 5 4 3 2 1 0
V9-0: BG 垂直オフセット
0x04000020 (BG2PA, W) : BG2 matrix PA
0x04000022 (BG2PB, W) : BG2 matrix PB
0x04000024 (BG2PC, W) : BG2 matrix PC
0x04000026 (BG2PD, W) : BG2 matrix PD
0x04000020 (BG3PA, W) : BG3 matrix PA
0x04000022 (BG3PB, W) : BG3 matrix PB
0x04000024 (BG3PC, W) : BG3 matrix PC
0x04000026 (BG3PD, W) : BG3 matrix PD
初期値 : PA=0x0100, PB=0x0000, PC=0x0000, PD=0x0100
符号付き、整数部 8bit、小数部 8bit
M M M M M M M M M M M M M M M M
f e d c b a 9 8 7 6 5 4 3 2 1 0
Mf-0: BG 拡縮回転パラメータ
0x04000028.w (BG2X, W) : BG2 origin X
0x04000038.w (BG3X, W) : BG3 origin X
初期値 : 0x00000000
符号付き、整数部 20bit、小数部 8bit
x x x x X X X X X X X X
x x x x 2 2 2 2 ... 0 0 0 0
x x x x 7 6 5 4 3 2 1 0
X27-00: BG 原点 X
0x0400002c.w (BG2Y, W) : BG2 origin Y
0x0400003c.w (BG3Y, W) : BG3 origin Y
初期値 : 0x00000000
符号付き、整数部 20bit、小数部 8bit
x x x x Y Y Y Y Y Y Y Y
x x x x 2 2 2 2 ... 0 0 0 0
x x x x 7 6 5 4 3 2 1 0
Y27-00: BG 原点 Y
0x04000040 (WIN0H, W) : Window0 horizontal
0x04000042 (WIN1H, W) : Window1 horizontal
初期値 : 0x0000
L L L L L L L L R R R R R R R R
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
R7-0: ウィンドウ右端 + 1
L7-0: ウィンドウ左端
0x04000044 (WIN0V, W) : Window0 vertical
0x04000046 (WIN1V, W) : Window1 vertical
初期値 : 0x0000
T T T T T T T T B B B B B B B B
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
B7-0: ウィンドウ下端 + 1
T7-0: ウィンドウ上端
0x04000048 (WININ, R/W) : Window inner
0x0400004a (WINOUT, R/W) : Window outer
初期値 : 0x0000
いずれもビットを 1 にすると、ウィンドウの内側/外側に表示
x x 1 1 1 1 1 1 x x 0 0 0 0 0 0
x x S O B B B B x x S O B B B B
x x P B 3 2 1 0 x x P B 3 2 1 0
0B3-0: ウィンドウ 0 BG
0OB : ウィンドウ 0 OBJ
0SP : ウィンドウ 0 ブレンド OBJ/BG
1B3-0: ウィンドウ 1 BG
1OB : ウィンドウ 1 OBJ
1SP : ウィンドウ 1 ブレンド OBJ/BG
0x0400004c (MOSAIC, W) : Mosaic parameter
初期値 : 0x0000
O O O O O O O O B B B B B B B B
V V V V H H H H V V V V H H H H
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
BH3-0: BG 横方向モザイク範囲 - 1
BV3-0: BG 縦方向モザイク範囲 - 1
OH3-0: OBJ 横方向モザイク範囲 - 1
OV3-0: OBJ 縦方向モザイク範囲 - 1
0x04000050 (BLDMOD, R/W) : Blend mode
初期値 : 0x0000
いずれもビットを 1 にすると、ブレンドの対象になる
x x T T T T T T B B S S S S S S
x x B O B B B B M M B O B B B B
x x K B 3 2 1 0 1 0 K B 3 2 1 0
SB3-0: ブレンド元画像 BG
SOB : ブレンド元画像 OBJ
SBK : ブレンド元画像背景
BM1-0: ブレンドモード
00: ブレンド無し
01: アルファブレンド
10: 白にフェード
11: 黒にフェード
TB3-0: ブレンド加算画像 BG
TOB : ブレンド加算画像 OBJ
TBK : ブレンド加算画像背景
0x04000052 (COLEV, W) : Alpha blend level
初期値 : 0x0000
x x x T T T T T x x x S S S S S
x x x 4 3 2 1 0 x x x 4 3 2 1 0
S4-0: 元画像ブレンドレベル(範囲は 0-16、16 で 1.0 倍)
T4-0: 加算画像ブレンドレベル(範囲は 0-16、16 で 1.0 倍)
0x04000054 (COLEY, W) : Fade level
初期値 : 0x0000
x x x x x x x x x x x F F F F F
x x x x x x x x x x x 4 3 2 1 0
F4-0: フェードレベル(範囲は 0-16、0 で元画像、16 で白または黒)
0x05000000-0x050001ff : BG palette
0x05000200-0x050003ff : OBJ palette
x B B B B B G G G G G R R R R R
x 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0
R4-0: 赤成分
G4-0: 緑成分
B4-0: 青成分
0x06000000-0x06017fff : VRAM
・タイルマップ(テキストモード)
B B B B V H T T T T T T T T T T
3 2 1 0 R R 9 8 7 6 5 4 3 2 1 0
T9-0: タイル番号
HR : 水平反転
VR : 垂直反転
B3-0: パレットブロック(16 色×16 パレットブロック時)
・タイルマップ(拡縮回転モード)
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
T T T T T T T T T T T T T T T T
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0T7-0: タイル番号(X mod 2 = 0)
1T7-0: タイル番号(X mod 2 = 1)
・15bit カラー
x B B B B B G G G G G R R R R R
x 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0
R4-0: 赤成分
G4-0: 緑成分
B4-0: 青成分
・8bit カラー
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
C C C C C C C C C C C C C C C C
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0C7-0: パレットインデックス番号(X mod 2 = 0)
1C7-0: パレットインデックス番号(X mod 2 = 1)
・4bit カラー
3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0
C C C C C C C C C C C C C C C C
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
0C3-0: パレットインデックス番号(X mod 4 = 0)
1C3-0: パレットインデックス番号(X mod 4 = 1)
2C3-0: パレットインデックス番号(X mod 4 = 2)
3C3-0: パレットインデックス番号(X mod 4 = 3)
0x07000000-0x070003ff : OAM (Object Attribute Memory)
・4n+0
S S C M R R D M Y Y Y Y Y Y Y Y
3 2 M Z 1 0 B T 7 6 5 4 3 2 1 0
・4n+1
S S I I I I I X X X X X X X X X
1 0 4 3 2 1 0 8 7 6 5 4 3 2 1 0
・4n+2
B B B B P P T T T T T T T T T T
3 2 1 0 1 0 9 8 7 6 5 4 3 2 1 0
・4n+3
M M M M M M M M M M M M M M M M
f e d c b a 9 8 7 6 5 4 3 2 1 0
Y7-0: Y 座標
MT : 拡縮回転 ON
DB : 最大 2 倍
R1-0: 描画モード
00: 通常モード
01: ブレンドモード
10: ウィンドウモード
11: 不明
MZ : モザイク ON
CM : カラーモード
0: 16 色×16 パレットブロック
1: 256 色×1 パレットブロック
S3-0: スプライトサイズ
0000: 8× 8
0001: 16×16
0010: 32×32
0011: 64×64
0100: 16× 8
0101: 32× 8
0110: 32×16
0111: 64×32
1000: 8×16
1001: 8×32
1010: 16×32
1011: 32×64
1100: 未使用
1101: 未使用
1110: 未使用
1111: 未使用
X8-0: X 座標
I4-0: 拡縮回転インデックス番号(拡縮回転 ON 時)
I3 : 水平反転(拡縮回転 OFF 時)
I4 : 垂直反転(拡縮回転 OFF 時)
T9-0: タイル番号
0x06010000 + T * 0x20 から配置される
P1-0: BG との表示優先順位
B3-0: パレットブロック(16 色×16 パレットブロック時)
Mf-0: 拡縮回転パラメータ(4 つで 1 セット)
符号付き、整数部 8bit、小数部 8bit
サウンド
0x04000060 (SG10_L, R/W) : Sound Ch.1 control 1
スイープ(一定方向への周波数変化)コントロール
x x x x x x x x x T T T A S S S
x x x x x x x x x 2 1 0 S 2 1 0
S2-0: スイープ周波数変化量
f[k + 1] = f[k] ± f[k] / 2^S
AS : スイープ方向(0:周波数増、1:周波数減)
T2-0: スイープ変化間隔
000: スイープ OFF
001: 1/128sec( 7.8msec)
010: 2/128sec(15.6msec)
011: 3/128sec(23.4msec)
100: 4/128sec(31.3msec)
101: 5/128sec(39.1msec)
110: 6/128sec(46.9msec)
111: 7/128sec(54.7msec)
0x04000062 (SG10_H, R/W) : Sound Ch.1 control 2
0x04000068 (SG20, R/W) : Sound Ch.2 control 1
0x04000078 (SG40, R/W) : Sound Ch.4 control 1
I I I I E E E E D D L L L L L L
3 2 1 0 M 2 1 0 1 0 5 4 3 2 1 0
L5-0: 発音長制限(ライトのみ)
(64 - L) / 256 sec になる
D1-0: デューティー比(Ch.4 では無効)
00: 12.5%
01: 25%
10: 50%
11: 75%
E2-0: エンベロープ変化間隔
E / 64 sec になる
EM : エンベロープモード(0:減少、1:増加)
I3-0: 初期エンベロープ値
0x04000064 (SG11, R/W) : Sound Ch.1 control 3
0x0400006c (SG21, R/W) : Sound Ch.2 control 2
0x04000074 (SG31, R/W) : Sound Ch.3 control 3
R T x x x F F F F F F F F F F F
S M x x x a 9 8 7 6 5 4 3 2 1 0
Fa-0: 周波数(ライトのみ)
4194304 / (32 * (2048 - F)) Hz になる
TM : 発音長制限 ON
RS : 波形リセット(ライトのみ)
0x04000070 (SG30_L, R/W) : Sound Ch.3 control 1
x x x x x x x x E B B x x x x x
x x x x x x x x N S M x x x x x
BM: バンクモード(0:32 サンプル×2 バンク、1:64 サンプル×1 バンク)
BS: バンクセレクト
EN: 出力 ON
0x04000072 (SG30_H, R/W) : Sound Ch.3 control 2
V V V x x x x x L L L L L L L L
2 1 0 x x x x x ? ? ? ? ? ? ? ?
L7-0: 発音長制限(ライトのみ)
(256 - L) / 2 sec になる
V2-0: 出力レベル
000: ミュート
001: 100%
010: 50%
011: 25%
100: 75%
101: 不明
110: 不明
111: 不明
0x0400007c (SG41, R/W) : Sound Ch.4 control 2
ノイズの発生アルゴリズムの詳細は不明
R T x x x x x x P P P P C C C C
S M x x x x x x 3 2 1 0 S 2 1 0
C2-0: クロック分周比
f = 4.194304 / 8 MHz
000: Q = f * 2
001: Q = f
010: Q = f / 2
011: Q = f / 3
100: Q = f / 4
101: Q = f / 5
110: Q = f / 6
111: Q = f / 7
CS : カウンタステージ(0:15 ステージ、1:7 ステージ)
P3-0: クロックシフト量
0000: F = Q / 2
0001: F = Q / (2^2)
0010: F = Q / (2^3)
0011: F = Q / (2^4)
...
1101: F = Q / (2^14)
1110: 未使用
1111: 未使用
TM : 発音長制限 ON
RS : 波形リセット(ライトのみ)
0x04000080 (SGCNT0_L, R/W) : Sound master control 1
4 3 2 1 4 3 2 1 ? L L L ? R R R
L L L L R R R R ? 2 1 0 ? 2 1 0
R2-0: 右ボリューム
L2-0: 左ボリューム
1-4R: Ch.1-4 右 ON
1-4L: Ch.1-4 左 ON
0x04000082 (SGCNT0_H, R/W) : Sound master control 2
B B B B A A A A x x x x B A V V
S T L R S T L R x x x x V V 1 0
V1-0: 全体ボリューム
00: 25%
01: 50%
10: 100%
11: 不明
AV : Direct sound A ボリューム(0:50%、1:100%)
BV : Direct sound B ボリューム(0:50%、1:100%)
AR : Direct sound A 右 ON
AL : Direct sound A 左 ON
AT : Direct sound A タイマーセレクト(0:Timer0、1:Timer1)
AS : Direct sound A リセット(ライトのみ)
BR : Direct sound B 右 ON
BL : Direct sound B 左 ON
BT : Direct sound B タイマーセレクト(0:Timer0、1:Timer1)
BS : Direct sound B リセット(ライトのみ)
0x04000084 (SGCNT1, R/W) : Sound master control 3
x x x x x x x x E x x x 4 3 2 1
x x x x x x x x N x x x S S S S
1-4S: Ch.1-4 ステータス(0:停止、1:再生)(リードのみ?)
EN : Ch.1-4 動作 ON
0x04000088 (SGBIAS, R/W) : Sound master control 4
R R x x x x B B B B B B B B B x
1 0 x x x x 8 7 6 5 4 3 2 1 0 x
B8-0: PWM バイアス値(詳細不明)
R1-0: PWM 分解能/周波数設定
00: 9bit/32.768kHz
01: 8bit/65.536kHz
10: 7bit/131.072kHz
11: 6bit/262.144kHz
0x04000090 (SGWR0_L, R/W) : Sound Ch.3 samples 0-3
0x04000092 (SGWR0_H, R/W) : Sound Ch.3 samples 4-7
0x04000094 (SGWR1_L, R/W) : Sound Ch.3 samples 8-11
0x04000096 (SGWR1_H, R/W) : Sound Ch.3 samples 12-15
0x04000098 (SGWR2_L, R/W) : Sound Ch.3 samples 16-19
0x0400009a (SGWR2_H, R/W) : Sound Ch.3 samples 20-23
0x0400009c (SGWR3_L, R/W) : Sound Ch.3 samples 24-27
0x0400009e (SGWR3_H, R/W) : Sound Ch.3 samples 28-31
符号なし 4bit ループ波形データ
バンクセレクトでバンク 0/1 を切り替える
2 2 2 2 3 3 3 3 0 0 0 0 1 1 1 1
D D D D D D D D D D D D D D D D
3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0
0D3-0, 1D3-0, 2D3-0, 3D3-0 の順
0x040000a0 (SGFIFOA_L, W) : Direct sound A samples 0-1
0x040000a2 (SGFIFOA_H, W) : Direct sound A samples 2-3
0x040000a4 (SGFIFOB_L, W) : Direct sound B samples 0-1
0x040000a6 (SGFIFOB_H, W) : Direct sound B samples 2-3
符号なし 8bit 波形データ
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
D D D D D D D D D D D D D D D D
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0D7-0, 1D7-0 の順
その他
0x040000b0.w (DM0SAD, W) : DMA0 source address
0x040000bc.w (DM1SAD, W) : DMA1 source address
0x040000c8.w (DM2SAD, W) : DMA2 source address
0x040000d4.w (DM3SAD, W) : DMA3 source address
初期値 : 0x00000000
x x x x A A A A A A A A
x x x x 2 2 2 2 ... 0 0 0 0
x x x x 7 6 5 4 3 2 1 0
A27-00: DMA 転送元アドレス(DMA0 のみ A27 は無効)
0x040000b4.w (DM0DAD, W) : DMA0 destination address
0x040000c0.w (DM1DAD, W) : DMA1 destination address
0x040000cc.w (DM2DAD, W) : DMA2 destination address
0x040000d8.w (DM3DAD, W) : DMA3 destination address
初期値 : 0x00000000
x x x x A A A A A A A A
x x x x 2 2 2 2 ... 0 0 0 0
x x x x 7 6 5 4 3 2 1 0
A27-00: DMA 転送先アドレス(DMA0/1/2 では A27 は無効)
0x040000b8 (DM0CNT_L, W) : DMA0 transfer size
0x040000c4 (DM1CNT_L, W) : DMA1 transfer size
0x040000d0 (DM2CNT_L, W) : DMA2 transfer size
0x040000dc (DM3CNT_L, W) : DMA3 transfer size
初期値 : 0x0000
x x S S S S S S S S S S S S S S
x x 1 1 1 1 0 0 0 0 0 0 0 0 0 0
x x 3 2 1 0 9 8 7 6 5 4 3 2 1 0
S13-00: 転送量(16bit もしくは 32bit 単位)
0x040000ba (DM0CNT_H, R/W) : DMA0 control
0x040000c6 (DM1CNT_H, R/W) : DMA1 control
0x040000d2 (DM2CNT_H, R/W) : DMA2 control
0x040000de (DM3CNT_H, R/W) : DMA3 control
初期値 : 0x0000
E I T T G S R S S D D x x x x x
N N 1 0 P Z P 1 0 1 0 x x x x x
D1-0: 転送先アドレスの変化
00: 転送毎に増加
01: 転送毎に減少
10: 固定
11: 転送毎に増加、終了時にアドレスリセット
S1-0: 転送元アドレスの変化
00: 転送毎に増加
01: 転送毎に減少
10: 固定
11: 不明
RP : リピート ON(T が 01 もしくは 10 のとき有効)
SZ : 転送単位(0:16bit、1:32bit)
GP : DMA3: ゲームパックからのリクエストで開始?
T1-0: 転送タイミング
00: すぐに開始
01: 垂直ブランクで開始
10: 水平ブランクで開始
11: DMA1/2: FIFO リクエストで開始
DMA3 : ライン描画時に開始
IN : 転送終了割り込み ON
EN : DMA 転送開始
0x04000100 (TM0D, W) : Timer0 data
0x04000104 (TM1D, W) : Timer1 data
0x04000108 (TM2D, W) : Timer2 data
0x0400010c (TM3D, W) : Timer3 data
初期値 : 0x0000
16bit カウンタ
0x04000102 (TM0CNT, R/W) : Timer0 control
0x04000106 (TM1CNT, R/W) : Timer1 control
0x0400010a (TM2CNT, R/W) : Timer2 control
0x0400010e (TM3CNT, R/W) : Timer3 control
初期値 : 0x0000
? ? ? ? ? ? ? ? E I ? ? ? C F F
? ? ? ? ? ? ? ? N N ? ? ? S 1 0
F1-0: 1 カウントに要するクロック数
00: 1
01: 64
10: 256
11: 1024
CS : カスケード ON(下位のタイマーがオーバーフロー時にカウントアップ)
IN : オーバーフロー割り込み ON
EN : タイマー ON
0x04000120 (SCD0, R/W) :
0x04000122 (SCD1, R/W) :
0x04000124 (SCD2, R/W) :
0x04000126 (SCD3, R/W) :
0x04000128 (SCCNT_L, R/W) :
0x0400012a (SCCNT_H, R/W) :
0x04000130 (P1/KEYINPUT, R) : Key status register
全て負論理(0:ON、1:OFF)
x x x x x x B B C C C C S S B B
x x x x x x L R U D L R T L B A
BA: A ボタン
BB: B ボタン
SL: SELECT ボタン
ST: START ボタン
CR: 十字キー右
CL: 十字キー左
CD: 十字キー下
CU: 十字キー上
BR: R ボタン
BL: L ボタン
0x04000132 (P1CNT/KEYCNT, R/W) : Key control register
初期値 : 0x0000
キー入力割り込み用
各キーの対応ビットが 1 で有効
T E x x x x B B C C C C S S B B
Y N x x x x L R U D L R T L B A
BA: A ボタン
BB: B ボタン
SL: SELECT ボタン
ST: START ボタン
CR: 十字キー右
CL: 十字キー左
CD: 十字キー下
CU: 十字キー上
BR: R ボタン
BL: L ボタン
EN: キー入力割り込み ON
TY: 割り込みタイプ
0: いずれかの有効キーが押されたとき
1: 全ての有効キーが押されたとき
0x04000134 (R, R/W) :
0x04000140 (HS_CTRL, R/W) :
0x04000150 (JOYRE_L, W) : JOY BUS receive data
0x04000154 (JOYTR_L, R) : JOY BUS transmit data
0x04000158 (JSTAT, R) : JOY BUS status
0x04000200 (IE, R/W) : Interrupt enable
初期値 : 0x0000
各ビットが 1 で割り込み許可
x x G K D D D D S T T T T R H V
x x P Y 3 2 1 0 C 3 2 1 0 S B B
VB : V-Blank 割り込み
HB : H-Blank 割り込み
RS : ラスター割り込み
T3-0: タイマー割り込み
SC : シリアル通信割り込み
D3-0: DMA 割り込み
KY : キー入力割り込み
GP : ゲームパック割り込み
0x04000202 (IF, R/W) : Interrupt flags
初期値 : 0x0000
リード時、各ビットが 1 で割り込み発生
ライト時、各ビットが 1 で割り込みフラグリセット(0 を書き込み直す必要は無い)
x x G K D D D D S T T T T R H V
x x P Y 3 2 1 0 C 3 2 1 0 S B B
VB : V-Blank 割り込み
HB : H-Blank 割り込み
RS : ラスター割り込み
T3-0: タイマー割り込み
SC : シリアル通信割り込み
D3-0: DMA 割り込み
KY : キー入力割り込み
GP : ゲームパック割り込み
0x04000204 (WSCNT, R/W) : Wait state control
G P x C C C C C B B B A A A S S
P R x C C S I I S I I S I I R R
T F x 1 0 B 1 0 B 0 1 B 1 0 1 0
SR1-0: SRAM ウェイト
00: 4 クロック
01: 3 クロック
10: 2 クロック
11: 8 クロック
AI1-0: 0x08000000〜0x09ffffff 初期ウェイト
00: 4 クロック
01: 3 クロック
10: 2 クロック
11: 8 クロック
ASB : 0x08000000〜0x09ffffff 続行ウェイト
0: 2 クロック
1: 1 クロック
BI1-0: 0x0a000000〜0x0bffffff 初期ウェイト
00: 4 クロック
01: 3 クロック
10: 2 クロック
11: 8 クロック
BSB : 0x0a000000〜0x0bffffff 続行ウェイト
0: 4 クロック
1: 1 クロック
CI1-0: 0x0c000000〜0x0dffffff 初期ウェイト
00: 4 クロック
01: 3 クロック
10: 2 クロック
11: 8 クロック
CSB : 0x0c000000〜0x0dffffff 続行ウェイト
0: 8 クロック
1: 1 クロック
CC1-0: Cart クロック周波数?
00: クロック Low 固定
01: 4MHz
10: 8MHz
11: 16MHz
PRF : プリフェッチ ON(16bit×8 プリフェッチ)
GPT : ゲームパックタイプ(0:GBA、1:GBC)(リードのみ)
0x04000208 (IME, R/W) : Interrupt master enable
初期値 : 0x0000
x x x x x x x x x x x x x x x E
x x x x x x x x x x x x x x x N
EN: 割り込み使用 ON