3DSX Format: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
|  fixed size | No edit summary | ||
| Line 3: | Line 3: | ||
| The file is structured like this: | The file is structured like this: | ||
| * Header | * Header | ||
| * Code relocation table header | |||
| * Rodata relocation table header | |||
| * Data relocation table header | |||
| * Code segment | * Code segment | ||
| * Rodata segment | * Rodata segment | ||
| * Data segment | * Data segment | ||
| *  | * Code relocation table | ||
| *  | * Rodata relocation table | ||
| *  | * Data relocation table | ||
| == Header == | == Header == | ||
Revision as of 14:11, 15 November 2014
The 3DSX format is an executable file-format designed for homebrew applications on the 3DS.
The file is structured like this:
- Header
- 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
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 | 
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 |