3DSX Format
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The 3DSX format is an executable file-format designed for homebrew applications on the 3DS.
The file is structured like this:
- Header
- Extended Header, if the header size field is greater than 32.
- Code relocation table header
- Rodata relocation table header
- Data relocation table header
- Code segment
- Rodata segment
- Data segment
- Code relocation table
- Rodata relocation table
- Data relocation table
- SMDH data, if there is an extended header.
- RomFS data, if there is an extended header.
Header
Offset | Size | Description |
---|---|---|
0x0 | 4 | Magic (3DSX) |
0x4 | 2 | Header size |
0x6 | 2 | Relocation Header size |
0x8 | 4 | Format version |
0xC | 4 | Flags |
0x10 | 4 | Code segment size |
0x14 | 4 | Rodata segment size |
0x18 | 4 | Data segment size (including bss) |
0x1C | 4 | Bss segment size |
Extended Header
Offset | Size | Description |
---|---|---|
0x0 | 4 | SMDH offset |
0x4 | 4 | SMDH size |
0x8 | 4 | RomFS offset |
Relocation Header
Offset | Size | Description |
---|---|---|
0x0 | 4 | Number of absolute relocations |
0x4 | 4 | Number of relative relocations |
Relocation
Offset | Size | Description |
---|---|---|
0x0 | 2 | Number of words to skip |
0x2 | 2 | Number of words to patch |