Difference between revisions of "3DSX Format"

From 3dbrew
Jump to navigation Jump to search
(Created page with "The 3DSX format is an executable file-format designed for homebrew applications on the 3DS. The file is structured like this: * Header * Code segment * Rodata segment * Data seg...")
 
(fixed size)
Line 22: Line 22:
 
|-
 
|-
 
|  0x4
 
|  0x4
4
+
2
 
|  Header size
 
|  Header size
 
|-
 
|-
0x8
+
0x6
4
+
2
 
|  Relocation Header size
 
|  Relocation Header size
 
|-
 
|-
0xC
+
0x8
 
|  4
 
|  4
 
|  Format version
 
|  Format version
 
|-
 
|-
0x10
+
0xC
 
|  4
 
|  4
 
|  Flags
 
|  Flags
 
|-
 
|-
0x14
+
0x10
 
|  4
 
|  4
 
|  Code segment size
 
|  Code segment size
 
|-
 
|-
0x18
+
0x14
 
|  4
 
|  4
 
|  Rodata segment size
 
|  Rodata segment size
 
|-
 
|-
0x1C
+
0x18
 
|  4
 
|  4
 
|  Data segment size (including bss)
 
|  Data segment size (including bss)
 
|-
 
|-
0x20
+
0x1C
 
|  4
 
|  4
 
|  Bss segment size
 
|  Bss segment size

Revision as of 19:41, 14 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 segment
  • Rodata segment
  • Data segment
  • Relocation Header for code
  • Relocation Header for rodata
  • Relocation Header for data

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