跳到內容

超級任天堂程式設計/超級任天堂硬體暫存器

來自華夏公益教科書,開放世界開放書籍
地址 暫存器名稱 註釋
0x2100 螢幕顯示暫存器 a000bbbb a: 0=螢幕開啟 1=螢幕關閉,b = 亮度
0x2101 OAM 大小和資料區域指定 aaabbccc a = 大小,b = 名稱選擇,c = 基址選擇
0x2102 訪問 OAM 的地址
0x2104 OAM 資料寫入
0x2105 BG 模式和圖塊大小設定 abcdefff abcd = BG 圖塊大小 (4321): 0 = 8x8 1 = 16x16,e = BG 3 高優先順序,f = BG 模式
0x2106 馬賽克大小和 BG 使能 aaaabbbb a = 馬賽克大小 b = 馬賽克 BG 使能
0x2107 BG 1 地址和大小 aaaaaabb a = 螢幕基址 (高 6 位),b = 螢幕大小
0x2108 BG 2 地址和大小 aaaaaabb a = 螢幕基址 (高 6 位),b = 螢幕大小
0x2109 BG 3 地址和大小 aaaaaabb a = 螢幕基址 (高 6 位),b = 螢幕大小
0x210A BG 4 地址和大小 aaaaaabb a = 螢幕基址 (高 6 位),b = 螢幕大小
0x210b BG 1 & 2 圖塊資料指定 aaaabbbb a = BG 2 圖塊基址,b = BG 1 圖塊基址
0x210c BG 3 & 4 圖塊資料指定 aaaabbbb a = BG 4 圖塊基址,b = BG 3 圖塊基址
0x210d BG 1 水平滾動偏移 滾動偏移暫存器均為 16 位寬。
0x210e BG 1 垂直滾動偏移
0x210f BG 2 水平滾動偏移
0x2110 BG 2 垂直滾動偏移
0x2111 BG 3 水平滾動偏移
0x2112 BG 3 垂直滾動偏移
0x2113 BG 4 水平滾動偏移
0x2114 BG 4 垂直滾動偏移
0x2115 VRAM 地址增量值
0x2116 VRAM 讀/寫地址 (低位元組)
0x2117 VRAM 讀/寫地址 (高位元組)
0x2118 VRAM 寫入資料 (低位元組)
0x2119 VRAM 寫入資料 (高位元組)
0x211a 模式 7 的初始設定 aa0000bc a = 螢幕覆蓋 b = 垂直翻轉 c = 水平翻轉
0x211b 模式 7 矩陣引數 A 暫存器 211b 到 2120 都是 16 位寬。
0x211B 也用作暫存器 0x2134-6 的 16 位被乘數 (寫入兩次)
0x211C 也用作暫存器 0x2134-6 的 8 位乘數
0x211c 模式 7 矩陣引數 B
0x211d 模式 7 矩陣引數 C
0x211e 模式 7 矩陣引數 D
0x211f 模式 7 中心位置 X
0x2120 模式 7 中心位置 Y
0x2121 CG-RAM 寫入地址
0x2122 CG-RAM 寫入資料
0x2123 BG 1 和 2 視窗遮罩設定 aaaabbbb a = BG 2 視窗設定 b = BG 1 視窗設定
0x2124 BG 3 和 4 視窗遮罩設定 aaaabbbb a = BG 4 視窗設定 b = BG 3 視窗設定
0x2125 OBJ 和顏色視窗設定 aaaabbbb a = 顏色視窗設定 b = OBJ 視窗設定
0x2126 視窗 1 左側位置指定
0x2127 視窗 1 右側位置指定
0x2128 視窗 2 左側位置指定
0x2129 視窗 2 右側位置指定
0x212a BG 1、2、3 和 4 視窗邏輯設定 aabbccdd a = BG 4 b = BG 3 c = BG 2 d = BG 1
0x212b 顏色和 OBJ 視窗邏輯設定 0000aabb a = 顏色視窗 b = OBJ 視窗
0x212c 背景和物件使能 (主螢幕) 000abcde a = 物件 b = BG 4 c = BG 3 d = BG 2 e = BG 1
0x212d 背景和物件使能 (子螢幕) 000abcde a = 物件 b = BG 4 c = BG 3 d = BG 2 e = BG 1
0x212e 主螢幕的視窗遮罩指定 000abcde a = 物件 b = BG 4 c = BG 3 d = BG 2 e = BG 1
0x212f 子螢幕的視窗遮罩指定 000abcde a = 物件 b = BG 4 c = BG 3 d = BG 2 e = BG 1
0x2130 顏色疊加的初始設定 aabb00cd a = 主顏色視窗開啟/關閉,b = 子顏色視窗開啟/關閉,c = 固定顏色疊加/減法使能,d = 直接選擇
0x2131 疊加/減法選擇和使能 abcdefgh a = 0 表示疊加,1 表示減法,b = 1/2 使能 c = 後臺使能,d = 物件使能,efgh = 使能 BG 4、3、2、1
0x2132 固定顏色資料 abcddddd a = 藍色 b = 綠色 c = 紅色 ddddd = 顏色資料
0x2133 螢幕初始設定 ab00cdef a = 外部同步,b = 外部 BG 模式,c = 偽 512 模式,d = 垂直大小,e = 物件-V 選擇,f = 隔行掃描
0x2134 乘法結果 (低位元組)
0x2135 乘法結果 (中位元組)
0x2136 乘法結果 (高位元組)
0x2137 H/V 計數器的軟體鎖存器
0x2138 從 OAM 讀取資料 (低-高)
0x2139 從 VRAM 讀取資料 (低)
0x213a 從 VRAM 讀取資料 (高)
0x213b 從 CG-RAM 讀取資料 (低-高)
0x213c H 計數器資料
0x213d V 計數器資料
0x213e PPU 狀態標誌
0x213f
0x2140 APU I/O 埠
0x2141
0x2142
0x2143
0x2180 間接工作 RAM 訪問埠 0x2181 到 0x2183 中的地址在每次訪問後會自動遞增
0x2181 間接工作 RAM 訪問地址 (低位元組)
0x2182 間接工作 RAM 訪問地址 (中位元組)
0x2183 間接工作 RAM 訪問地址 (高位) 0000000a a : 記憶體庫,0 = 0x7E,1 = 0x7F
0x4200 NMI、V/H 計數和手柄使能 a0bc000d a = NMI b = V 計數 c = H 計數 d = 手柄
0x4201 可程式設計 I/O 埠輸出
0x4202 被乘數 A
0x4203 乘數 B
0x4204 被除數 (低位元組)
0x4205 被除數 (高位元組)
0x4206 除數 B
0x4207 H 計數計時器 (高 8 位)
0x4208 H 計數計時器 MSB (位 0)
0x4209 V 計數計時器 (高 8 位)
0x420a V 計數計時器 MSB (位 0)
0x420b 常規 DMA 通道使能 abcdefgh a = 通道 7...h = 通道 0: 1 = 使能 0 = 停用
0x420c H-DMA 通道使能 abcdefgh a = 通道 7 .. h = 通道 0: 1 = 使能 0 = 停用
0x420d 時鐘速度指定 0000000a a: 0 = 2.68 MHz,1 = 3.58 MHz
0x4210 NMI 標誌和 CPU 版本號 a000bbbb a = NMI 發生 b = CPU 版本號
0x4211 H/V 計數計時器觸發的 IRQ 標誌
0x4212 H/V 空閒標誌和手柄狀態
0x4213 可程式設計 I/O 埠輸入
0x4214 除法結果的商 (低位元組)
0x4215 除法結果的商 (高位元組)
0x4216 乘積/餘數結果 (低位元組)
0x4217 乘積/餘數結果 (高位元組)
0x4218 手柄 1 資料 (低位元組) abcd0000 a = 按鈕 A b = X c = L d = R
0x421a 手柄 2 資料 (低位元組)
0x421c 手柄 3 資料 (低位元組)
0x421e 手柄 4 資料 (低位元組)
0x4219 手柄 1 資料 (高位元組) abcdefgh a = B b = Y c = 選擇 d = 開始 efgh = 上/下/左/右
0x421b 手柄 2 資料 (高位元組)
0x421d 手柄 3 資料 (高位元組)
0x421f 手柄 4 資料 (高位元組)

DMA 暫存器

[編輯 | 編輯原始碼]

'X' 為 0 到 7 之間:

地址 暫存器名稱 註釋
0x43X0 DMA 傳輸引數 ab0cdeee a = 方向 b = 型別 c = 增/減 d = 自動/固定 e = 位元組大小選擇
0x43X1 B 地址
0x43X2 A 地址 (低位元組)
0x43X3 A 地址 (高位元組)
0x43X4 A 地址庫
0x43X5 要傳輸的位元組數 (低位元組) (DMA)
0x43X6 要傳輸的位元組數 (高位元組) (DMA)
0x43X7 資料庫 (H-DMA)
0x43X8 A2 表地址 (低位元組)
0x43X9 A2 表地址 (高位元組)
0x43Xa 要傳輸的行數 (H-DMA)
華夏公益教科書