24 lines
570 B
C

#pragma once
#include "common.h"
#define THREEDSX_MAGIC '3', 'D', 'S', 'X'
#define THREEDSX_EXT_MAGIC THREEDSX_MAGIC, 0x2C, 0x00
// see: http://3dbrew.org/wiki/3DSX_Format
typedef struct {
u8 magic[4]; // "3DSX"
u16 size_hdr; // 0x2C with extended header
u16 size_reloc_hdr; // 0x08 if existing
u32 version; // should be zero
u32 flags; // should be zero, too
u32 size_code;
u32 size_rodata;
u32 size_data_bss;
u32 size_bss;
u32 offset_smdh;
u32 size_smdh;
u32 offset_romfs_lv3;
} PACKED_STRUCT ThreedsxHeader;