mirror of
https://github.com/wiiu-env/AromaBaseModule.git
synced 2024-11-30 15:34:14 +01:00
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <wut.h>
|
|
|
|
// see https://github.com/decaf-emu/decaf-emu/tree/43366a34e7b55ab9d19b2444aeb0ccd46ac77dea/src/libdecaf/src/cafe/loader
|
|
struct LiImportTracking {
|
|
uint32_t numExports;
|
|
struct Export *exports;
|
|
uint32_t tlsModuleIndex;
|
|
struct LOADED_RPL *rpl;
|
|
};
|
|
|
|
struct Export {
|
|
uint32_t value;
|
|
uint32_t name;
|
|
};
|
|
|
|
struct RPLFileInfo_v4_2 {
|
|
char field_0x0[88];
|
|
uint16_t tlsModuleIndex;
|
|
char field_0x5a[6];
|
|
};
|
|
|
|
struct LOADED_RPL {
|
|
char u1[88];
|
|
struct RPLFileInfo_v4_2 *fileInfoBuffer;
|
|
char u2[20];
|
|
uint32_t loadStateFlags;
|
|
uint32_t entrypoint;
|
|
char u3[132];
|
|
uint32_t numFuncExports;
|
|
Export *funcExports;
|
|
uint32_t numDataExports;
|
|
Export *dataExports;
|
|
char u4[12];
|
|
};
|
|
|
|
// https://github.com/decaf-emu/decaf-emu/blob/6feb1be1db3938e6da2d4a65fc0a7a8599fc8dd6/src/libdecaf/src/cafe/libraries/coreinit/coreinit_dynload.cpp#L40
|
|
struct RPL_DATA {
|
|
uint32_t handle;
|
|
WUT_UNKNOWN_BYTES(0x94 - 0x4);
|
|
};
|
|
WUT_CHECK_SIZE(RPL_DATA, 0x94);
|
|
|
|
|
|
#define EXPORT_MASK 0xFFFF0000
|
|
#define EXPORT_MAGIC_MASK 0x0000FFFF
|
|
#define FUNCTION_EXPORT_MAGIC 0x88660000
|
|
#define DATA_EXPORT_MAGIC 0x88550000
|
|
|
|
#define MODULE_MAGIC_MASK 0xFFFF0000
|
|
#define MODULE_ID_MASK 0x0000FFFF
|
|
#define MODULE_MAGIC 0x87650000 |