Last active
September 22, 2022 07:17
-
-
Save shinyquagsire23/d4977e0ad9ea2cd2e9840641ba53fb7a to your computer and use it in GitHub Desktop.
NDS IPC Reverse Engineering
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FIFO Message Header: | |
-------------------- | |
dddddddddddddddddddddddddd f ttttt | |
Tag (lower 5 bits, mask 0x1F) | |
Error (bit5, mask 0x20) | |
Data (Upper 26 bits, mask 0xFFFFFFC0) | |
FIFO Data Packing (26 bits): | |
-------------------- | |
Command (mask 0x7F00, >> 8) | |
TODO | |
Tag IDs: | |
-------- | |
0x00 - Unimplemented (hachihachi) TODO | |
0x01 - Unimplemented (hachihachi) TODO | |
0x02 - Unimplemented (hachihachi) TODO | |
0x03 - Unimplemented (hachihachi) TODO | |
0x04 - NVRAM | |
0x05 - RTC (Real Time Clock) | |
0x06 - TouchPanel | |
0x07 - Sound | |
0x08 - PM (Power Management) | |
0x09 - Microphone | |
0x0A - WM (Wireless Manager) | |
0x0B - FS (FileSystem) | |
0x0C - OS | |
0x0D - Cartridge | |
0x0E - Unimplemented (hachihachi) TODO | |
0x0F - WirelessVR | |
0x10 - Cartridge Unk10 | |
0x11 - Cartridge Unk11 | |
0x12 - WRAM Bank Control (TWL) | |
0x13 - AES (TWL) | |
0x14 - FATFS (TWL) | |
0x15 - Camera (TWL) | |
0x16 - NWM (TWL) | |
0x17 - SCFG (TWL) | |
0x18 - DSi Sound (TWL) | |
0x1F - Unk (TWL, only in Launcher?) | |
TouchPanel PXI: | |
--------------- | |
Data & 0x2000000 - Resets idk | |
Data & 0x1000000 - SPI idk | |
Data & 0x000F0000 - Some index | |
WM PXI: | |
------- | |
Data - Address | |
hachihachi only allows cmds 0x00 (Initialize), 0x01 (Reset), 0x02 (End), 0x0A (StartScan), 0x0B (EndScan), 0x26 (StartScanEx) | |
u16 [Data+0] - Cmd | |
___________________________ | |
| Cmd | Name | | |
|-----|---------------------| | |
|0x00 | Initialize | | |
|0x01 | Reset | | |
|0x02 | End | | |
|0x03 | Enable | | |
|0x04 | Disable | | |
|0x05 | PowerOn | | |
|0x06 | PowerOff | | |
|0x07 | SetParentParam | | |
|0x08 | StartParent | | |
|0x09 | EndParent | | |
|0x0A | StartScan | | |
|0x0B | EndScan | | |
|0x0C | Unk0C | | |
|0x0D | Unk0D | | |
|0x0E | StartMP | | |
|0x0F | Unk0F | | |
|0x10 | EndMP | | |
|0x11 | Unk11 | | |
|0x12 | Unk12 | | |
|0x13 | Unk13 | | |
|0x14 | Unk14 | | |
|-----|---------------------| | |
|0x18 | SetGameInfo | | |
|0x19 | SetBeaconTxRxInd | | |
|0x1A | Unk1A | | |
|0x1B | Unk1B | | |
|0x1C | Unk1C | | |
|0x1D | SetLifeTime | | |
|0x1E | MeasureChannel | | |
|0x1F | InitWirelessCounter | | |
|0x20 | Unk20 | | |
|0x21 | SetEntry | | |
|0x22 | Unk22 | | |
|0x23 | Unk23 | | |
|0x24 | Unk24 | | |
|0x25 | Unk25 | | |
|0x26 | StartScanEx | | |
|0x27 | Unk27 | | |
|0x28 | Unk28 | | |
|0x29 | Unk29 | | |
|0x2A | Unk2A | | |
|0x2B | Unk2B | | |
|0x2C | Unk2C | | |
|0x2D | Unk2D | | |
|_____|_____________________| | |
OS PXI: | |
------- | |
_____________ | |
|Cmd | Name | | |
|-----|-------| | |
|0x10 | Reset | | |
|_____|_______| | |
FATFS PXI: | |
---------- | |
___________________________ | |
| Cmd | Name | | |
|-----|---------------------| | |
|0x00 | Mount | | |
|0x01 | Unmount | | |
|0x02 | Unk02 | | |
|0x03 | Unk03 | | |
|0x04 | Unk04 | | |
|0x05 | Unk05 | | |
|0x06 | Unk06 | | |
|0x07 | Unk07 | | |
|0x08 | Unk08 | | |
|0x09 | Unk09 | | |
|0x0A | Unk0A | | |
|0x0B | Unk0B | | |
|0x0C | Unk0C | | |
|0x0D | Unk0D | | |
|0x0E | Unk0E | | |
|0x0F | Unk0F | | |
|0x10 | Unk10 | | |
|0x11 | Unk11 | | |
|0x12 | Unk12 | | |
|0x13 | Unk13 | | |
|0x14 | Unk14 | | |
|0x15 | Unk15 | | |
|0x16 | Unk16 | | |
|0x17 | Unk17 | | |
|0x18 | Unk18 | | |
|0x19 | Unk19 | | |
|0x1A | Unk1A | | |
|0x1B | Unk1B | | |
|0x1C | Unk1C | | |
|0x1D | Unk1D | | |
|0x1E | Unk1E | | |
|0x1F | Unk1F | | |
|0x20 | Unk20 | | |
|_____|_____________________| | |
NWM PXI: | |
-------- | |
Data - Address | |
u16 [Data+0] - Cmd | |
___________________________ | |
| Cmd | Name | | |
|-----|---------------------| | |
|0x00 | nullsub | | |
|0x01 | Reset | | |
|0x02 | nullsub | | |
|0x03 | Open? | | |
|0x04 | Close? | | |
|0x05 | Scan | | |
|0x06 | Unk06 | | |
|0x07 | Unk07 | | |
|0x08 | Unk08 | | |
|0x09 | Unk09 | | |
|0x0A | Unk0A | | |
|0x0B | Unk0B | | |
|0x0C | Unk0C | | |
|0x0D | Unk0D | | |
|0x0E | Unk0E | | |
|0x0F | Unk0F | | |
|0x10 | Unk10 | | |
|0x11 | Unk11 | | |
|0x12 | Unk12 | | |
|0x13 | LoadFirmware? | | |
|0x14 | Unk14 | | |
|0x15 | Unk15 | | |
|0x16 | Unk16 | | |
|0x17 | Unk17 | | |
|0x18 | Unk18 | | |
|0x19 | Unk19 | | |
|0x1A | Unk1A | | |
|0x1B | Unk1B | | |
|0x1C | Unk1C | | |
|0x1D | Unk1D | | |
|0x1E | Unk1E | | |
|_____|_____________________| |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment