mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-05-01 19:47:56 +02:00
56 lines
899 B
C++
56 lines
899 B
C++
/**
|
|
* @file nro.h
|
|
* @brief NRO headers.
|
|
* @copyright libnx Authors
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "thirdparty/libnx/types.h"
|
|
|
|
#define NROHEADER_MAGIC 0x304f524e
|
|
|
|
#define NROASSETHEADER_MAGIC 0x54455341
|
|
#define NROASSETHEADER_VERSION 0
|
|
|
|
/// Entry for each segment in the codebin.
|
|
typedef struct {
|
|
u32 file_off;
|
|
u32 size;
|
|
} NroSegment;
|
|
|
|
/// Offset 0x0 in the NRO.
|
|
typedef struct {
|
|
u32 unused;
|
|
u32 mod_offset;
|
|
u8 padding[8];
|
|
} NroStart;
|
|
|
|
/// This follows NroStart, the actual nro-header.
|
|
typedef struct {
|
|
u32 magic;
|
|
u32 unk1;
|
|
u32 size;
|
|
u32 unk2;
|
|
NroSegment segments[3];
|
|
u32 bss_size;
|
|
u32 unk3;
|
|
u8 build_id[0x20];
|
|
u8 padding[0x20];
|
|
} NroHeader;
|
|
|
|
/// Custom asset section.
|
|
typedef struct {
|
|
u64 offset;
|
|
u64 size;
|
|
} NroAssetSection;
|
|
|
|
/// Custom asset header.
|
|
typedef struct {
|
|
u32 magic;
|
|
u32 version;
|
|
NroAssetSection icon;
|
|
NroAssetSection nacp;
|
|
NroAssetSection romfs;
|
|
} NroAssetHeader;
|