Difference between revisions of "3DSX Format"

From 3dbrew
Jump to navigation Jump to search
(fixed size)
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
* Relocation Header for code
+
* Code relocation table
* Relocation Header for rodata
+
* Rodata relocation table
* Relocation Header for data
+
* 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