diff options
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/filesystem.c | 56 | ||||
-rw-r--r-- | arm9/src/main.c | 12 | ||||
-rw-r--r-- | arm9/src/unk_02006234.c | 78 |
3 files changed, 112 insertions, 34 deletions
diff --git a/arm9/src/filesystem.c b/arm9/src/filesystem.c index 3faada5c..de0f6457 100644 --- a/arm9/src/filesystem.c +++ b/arm9/src/filesystem.c @@ -152,7 +152,7 @@ static char * sNarcFileList[] = { "poketool/shinzukan.narc", }; -THUMB_FUNC void ReadNARCFile(void * dest, const char * path, s32 file_idx, u32 offset, u32 size) +THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s32 file_idx, u32 offset, u32 size) { FSFile file; register u32 chunk_starts[3]; @@ -192,7 +192,7 @@ THUMB_FUNC void ReadNARCFile(void * dest, const char * path, s32 file_idx, u32 o FS_CloseFile(&file); } -THUMB_FUNC void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_id, u32 offset, u32 size, BOOL r4) +THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 file_idx, u32 heap_id, u32 offset, u32 size, BOOL r4) { FSFile file; register u32 chunk_starts[3]; @@ -232,10 +232,10 @@ THUMB_FUNC void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_i switch (r4) { case 0: - dest = FUN_02016998(heap_id, chunk_size); + dest = AllocFromHeap(heap_id, chunk_size); break; default: - dest = FUN_020169D8(heap_id, chunk_size); + dest = AllocFromHeapAtEnd(heap_id, chunk_size); break; } FS_ReadFile(&file, dest, chunk_size); @@ -243,37 +243,37 @@ THUMB_FUNC void * LoadFileIntoMemory(const char * path, s32 file_idx, u32 heap_i return dest; } -THUMB_FUNC void LoadFromNARC(void * dest, NarcId narc_id, s32 file_id) +THUMB_FUNC void ReadWholeNarcMemberByIdPair(void * dest, NarcId narc_id, s32 file_id) { - ReadNARCFile(dest, sNarcFileList[narc_id], file_id, 0, 0); + ReadFromNarcMemberByPathAndId(dest, sNarcFileList[narc_id], file_id, 0, 0); } -THUMB_FUNC void * LoadFromNarc_2(NarcId narc_id, s32 file_id, u32 heap_id) +THUMB_FUNC void * AllocAndReadWholeNarcMemberByIdPair(NarcId narc_id, s32 file_id, u32 heap_id) { - return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, 0, 0, FALSE); + return AllocAndReadFromNarcMemberByPathAndId(sNarcFileList[narc_id], file_id, heap_id, 0, 0, FALSE); } -THUMB_FUNC void * FUN_02006528(NarcId narc_id, s32 file_id, u32 heap_id) +THUMB_FUNC void * AllocAtEndAndReadWholeNarcMemberByIdPair(NarcId narc_id, s32 file_id, u32 heap_id) { - return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, 0, 0, TRUE); + return AllocAndReadFromNarcMemberByPathAndId(sNarcFileList[narc_id], file_id, heap_id, 0, 0, TRUE); } -THUMB_FUNC void FUN_02006548(void * dest, NarcId narc_id, s32 file_id, u32 offset, u32 size) +THUMB_FUNC void ReadFromNarcMemberByIdPair(void * dest, NarcId narc_id, s32 file_id, u32 offset, u32 size) { - ReadNARCFile(dest, sNarcFileList[narc_id], file_id, offset, size); + ReadFromNarcMemberByPathAndId(dest, sNarcFileList[narc_id], file_id, offset, size); } -THUMB_FUNC void * FUN_02006564(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size) +THUMB_FUNC void * AllocAndReadFromNarcMemberByIdPair(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size) { - return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, offset, size, FALSE); + return AllocAndReadFromNarcMemberByPathAndId(sNarcFileList[narc_id], file_id, heap_id, offset, size, FALSE); } -THUMB_FUNC void * FUN_02006584(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size) +THUMB_FUNC void * AllocAtEndAndReadFromNarcMemberByIdPair(NarcId narc_id, s32 file_id, u32 heap_id, u32 offset, u32 size) { - return LoadFileIntoMemory(sNarcFileList[narc_id], file_id, heap_id, offset, size, TRUE); + return AllocAndReadFromNarcMemberByPathAndId(sNarcFileList[narc_id], file_id, heap_id, offset, size, TRUE); } -THUMB_FUNC u32 LoadFromNARC_7(NarcId narc_id, s32 file_idx) +THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx) { FSFile file; register u32 chunk_starts[3]; @@ -310,9 +310,9 @@ THUMB_FUNC u32 LoadFromNARC_7(NarcId narc_id, s32 file_idx) return chunk_size; } -THUMB_FUNC NARC * FUN_02006670(NarcId narc_id, u32 heap_id) +THUMB_FUNC NARC * NARC_ctor(NarcId narc_id, u32 heap_id) { - NARC * narc = (NARC *)FUN_02016998(heap_id, sizeof(NARC)); + NARC * narc = (NARC *)AllocFromHeap(heap_id, sizeof(NARC)); u32 btnf_start; u32 chunk_size; if (narc != NULL) @@ -333,13 +333,13 @@ THUMB_FUNC NARC * FUN_02006670(NarcId narc_id, u32 heap_id) return narc; } -THUMB_FUNC void FUN_020066F4(NARC * narc) +THUMB_FUNC void NARC_dtor(NARC * narc) { FS_CloseFile(&narc->file); - FUN_02016A18(narc); // free to heap + FreeToHeap(narc); // free to heap } -THUMB_FUNC void * FUN_02006704(NARC * narc, u32 file_id, u32 heap_id) +THUMB_FUNC void * NARC_AllocAndReadWholeMember(NARC * narc, u32 file_id, u32 heap_id) { u32 file_start; u32 file_end; @@ -350,7 +350,7 @@ THUMB_FUNC void * FUN_02006704(NARC * narc, u32 file_id, u32 heap_id) FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); FS_SeekFile(&narc->file, narc->gmif_start + 8 + file_start, FS_SEEK_SET); - dest = FUN_02016998(heap_id, file_end - file_start); + dest = AllocFromHeap(heap_id, file_end - file_start); if (dest != NULL) { FS_ReadFile(&narc->file, dest, file_end - file_start); @@ -358,7 +358,7 @@ THUMB_FUNC void * FUN_02006704(NARC * narc, u32 file_id, u32 heap_id) return dest; } -THUMB_FUNC void FUN_02006774(NARC * narc, u32 file_id, void * dest) +THUMB_FUNC void NARC_ReadWholeMember(NARC * narc, u32 file_id, void * dest) { u32 file_start; u32 file_end; @@ -371,7 +371,7 @@ THUMB_FUNC void FUN_02006774(NARC * narc, u32 file_id, void * dest) FS_ReadFile(&narc->file, dest, file_end - file_start); } -THUMB_FUNC u32 FUN_020067D0(NARC * narc, u32 file_id) +THUMB_FUNC u32 NARC_GetMemberSize(NARC * narc, u32 file_id) { u32 file_start; u32 file_end; @@ -383,7 +383,7 @@ THUMB_FUNC u32 FUN_020067D0(NARC * narc, u32 file_id) return file_end - file_start; } -THUMB_FUNC void FUN_02006814(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest) +THUMB_FUNC void NARC_ReadFromMember(NARC * narc, u32 file_id, u32 pos, u32 size, void * dest) { u32 file_start; if (narc->num_files <= file_id) @@ -394,12 +394,12 @@ THUMB_FUNC void FUN_02006814(NARC * narc, u32 file_id, u32 pos, u32 size, void * FS_ReadFile(&narc->file, dest, size); } -THUMB_FUNC void FUN_02006864(NARC * narc, u32 size, void * dest) +THUMB_FUNC void NARC_ReadFile(NARC * narc, u32 size, void * dest) { FS_ReadFile(&narc->file, dest, size); } -THUMB_FUNC u16 FUN_02006874(NARC * narc) +THUMB_FUNC u16 NARC_GetFileCount(NARC * narc) { return narc->num_files; } diff --git a/arm9/src/main.c b/arm9/src/main.c index ae3961cd..82b8b734 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -54,8 +54,8 @@ extern struct Unk21DBE18 MOD52_UNK_021D76C8; extern u8 SDK_STATIC_BSS_START[]; -const enum GameVersion gGameVersion = VERSION_DIAMOND; -const enum GameLanguage gGameLanguage = LANGUAGE_ENGLISH; +const enum GameVersion gGameVersion = GAME_VERSION; +const enum GameLanguage gGameLanguage = GAME_LANGUAGE; THUMB_FUNC void NitroMain(void) { @@ -85,7 +85,7 @@ THUMB_FUNC void NitroMain(void) } else { - switch (*((s32 *)HW_RESET_PARAMETER_BUF)) + switch (OS_GetResetParameter()) { case 0: gBacklightTop.unk1C = 0; @@ -156,18 +156,18 @@ THUMB_FUNC void FUN_02000E0C(void) { if (gBacklightTop.unk14 == NULL) return; - if (gBacklightTop.unk10 != -1u) + if (gBacklightTop.unk10 != SDK_OVERLAY_INVALID_ID) HandleLoadOverlay(gBacklightTop.unk10, 0); gBacklightTop.unk8 = gBacklightTop.unk10; gBacklightTop.unkC = FUN_02006234(gBacklightTop.unk14, &gBacklightTop.unk18, 0); - gBacklightTop.unk10 = -1u; + gBacklightTop.unk10 = SDK_OVERLAY_INVALID_ID; gBacklightTop.unk14 = NULL; } if (FUN_02006290(gBacklightTop.unkC)) { FUN_02006260(gBacklightTop.unkC); gBacklightTop.unkC = 0; - if (gBacklightTop.unk8 != -1u) + if (gBacklightTop.unk8 != SDK_OVERLAY_INVALID_ID) UnloadOverlayByID(gBacklightTop.unk8); } } diff --git a/arm9/src/unk_02006234.c b/arm9/src/unk_02006234.c new file mode 100644 index 00000000..8915ab83 --- /dev/null +++ b/arm9/src/unk_02006234.c @@ -0,0 +1,78 @@ +#include "global.h" +#include "main.h" +#include "poke_overlay.h" +#include "heap.h" + +THUMB_FUNC struct UnkStruct_02006234 * FUN_02006234(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id) +{ + struct UnkStruct_02006234 * ret = (struct UnkStruct_02006234 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_02006234)); + ret->ovly_mgr = *ovly_mgr; + ret->unk10 = 0; + ret->unk14 = 0; + ret->unk18 = a1; + ret->unk1C = NULL; + ret->unk20 = 0; + ret->unk24 = 0; + return ret; +} + +THUMB_FUNC void FUN_02006260(struct UnkStruct_02006234 * a0) +{ + FreeToHeap(a0); +} + +THUMB_FUNC void * FUN_02006268(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) +{ + return a0->unk1C = AllocFromHeap(heap_id, size); +} + +THUMB_FUNC void * FUN_02006278(struct UnkStruct_02006234 * a0) +{ + return a0->unk1C; +} + +THUMB_FUNC void FUN_0200627C(struct UnkStruct_02006234 * a0) +{ + FreeToHeap(a0->unk1C); + a0->unk1C = NULL; +} + +THUMB_FUNC int * FUN_0200628C(struct UnkStruct_02006234 * a0) +{ + return a0->unk18; +} + +THUMB_FUNC BOOL FUN_02006290(struct UnkStruct_02006234 * a0) +{ + switch (a0->unk10) + { + case 0: + if (a0->ovly_mgr.ovly != SDK_OVERLAY_INVALID_ID) + HandleLoadOverlay(a0->ovly_mgr.ovly, 2); + a0->unk10 = 1; + // fallthrough + case 1: + if (a0->ovly_mgr.unk0(a0, &a0->unk14) == TRUE) + { + a0->unk10 = 2; + a0->unk14 = 0; + } + break; + case 2: + if (a0->ovly_mgr.unk4(a0, &a0->unk14) == TRUE) + { + a0->unk10 = 3; + a0->unk14 = 0; + } + break; + case 3: + if (a0->ovly_mgr.unk8(a0, &a0->unk14) == TRUE) + { + if (a0->ovly_mgr.ovly != SDK_OVERLAY_INVALID_ID) + UnloadOverlayByID(a0->ovly_mgr.ovly); + return TRUE; + } + break; + } + return FALSE; +} |