User Tools

Site Tools


notes:homebrew:gba_nds_slot2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
notes:homebrew:gba_nds_slot2 [2023/03/28 17:56] – removed - external edit (Unknown date) 127.0.0.1notes:homebrew:gba_nds_slot2 [2023/03/28 17:56] (current) – ↷ Page name changed from notes:homebrew:flashtek to notes:homebrew:gba_nds_slot2 asie
Line 1: Line 1:
 +====== GBA/NDS Slot-2 peripheral programming notes ======
  
 +===== Compact Flash Adapters =====
 +
 +Compact Flash adapters on the GBA cartridge interface all generally work by exposing IDE registers using the top eight address bits coupled with the sixteen-bit data bus, wiring them directly to the relevant IDE connector pins.
 +
 +In programmer-facing documentation, the two address ranges mentioned (matching PC I/O) are 1F0h-1F7h and 3F0-3F7h. In hardware, the choice is controled by Chip Select (CS) pins, while the specific register is chosen using DA0-DA2.
 +
 +TODO:
 +
 +  * Is INTRQ relayed in any way? On which adapters?
 +
 +==== GBA Movie Player ====
 +
 +^ Address bits ^ Map to ^
 +| 23 | "1" |
 +| 22 | Chip Select 0/1 |
 +| 18-16 | DA2-DA0 |
 +
 +===== Memory Expansion Pak =====
 +
 +Identification:
 +
 +  * 0B4h (device type) == 24h
 +  * 0BFh - bit 7 clear
 +  * 1FFFFh - bit 7 clear
 +
 +Timings:
 +
 +  * Official software uses default timings (EXMEMCNT[6:0] = 00h).
 +
 +Memory map:
 +
 +  * 240000h - unlock register (32-bit)
 +    * bit 0 - set if unlocked, clear if locked
 +    * bit 1-31 - unknown
 +  * 1000000h - 8 megabytes of memory starts here
 +
 +TODO:
 +
 +  * what are the remaining unlock register bits?
 +    * official software crashes if any bits 16-31 are set on initialization
 +  * does the unlock register control memory visibility or just writability?