3DSX File Format

The 3DSX file format is a relocatable and executable binary format used for Nintendo 3DS Homebrew software.

For more information about the 3DSX format, see http://3dbrew.org/wiki/3DSX_Format.

Creating 3DSX Files

3dsxtool is used to convert binary ELF executables into 3DSX format. Because 3dsxtool is invoked by CMake, through the ctr_convert_binary function, most ordinary users will not need to invoke 3dsxtool directly. For more about 3dsxtool, see Tools.

Specification

3DSX is not a formally defined specification.

3DSX is a derivative of the Executable Linkable Format standard. Refer to the offical ELF specification and the ELF for ARM ABI addendum for more information about the ELF standard.

3DSX differs from the ELF standard in the following ways:
  • 3DSX is currently not a formally defined standard.
  • The 3DSX format only supports a fixed number of sections.
  • The 3DSX format only defines an executable object. - Shared object files and relocatable object files are not supported. - The 3DSX executable object itself is relocatable.
  • It only supports a fixed number of sections.
  • Only defines relocatable, statically-linked executables. No shared libraries, or modules.
  • Restricted to 32-Bit ARM platforms.
  • No debugging support features.