From 87a52afbb4b9a2cb8c29bde3078e9800198df084 Mon Sep 17 00:00:00 2001 From: red031000 Date: Sun, 1 Nov 2020 21:53:36 +0000 Subject: decompile MOD59_Init --- arm9/src/overlay_manager.c | 79 ++++++++++++++++++++++++++++++++++++++++++ arm9/src/unk_02006234.c | 86 ---------------------------------------------- 2 files changed, 79 insertions(+), 86 deletions(-) create mode 100644 arm9/src/overlay_manager.c delete mode 100644 arm9/src/unk_02006234.c (limited to 'arm9/src') diff --git a/arm9/src/overlay_manager.c b/arm9/src/overlay_manager.c new file mode 100644 index 00000000..a59e15ac --- /dev/null +++ b/arm9/src/overlay_manager.c @@ -0,0 +1,79 @@ +#include "global.h" +#include "main.h" +#include "poke_overlay.h" +#include "heap.h" +#include "overlay_manager.h" + +THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(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 OverlayManager_delete(struct UnkStruct_02006234 * a0) +{ + FreeToHeap(a0); +} + +THUMB_FUNC void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) +{ + return a0->unk1C = AllocFromHeap(heap_id, size); +} + +THUMB_FUNC void * OverlayManager_GetData(struct UnkStruct_02006234 * a0) +{ + return a0->unk1C; +} + +THUMB_FUNC void OverlayManager_FreeData(struct UnkStruct_02006234 * a0) +{ + FreeToHeap(a0->unk1C); + a0->unk1C = NULL; +} + +THUMB_FUNC int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) +{ + return a0->unk18; +} + +THUMB_FUNC BOOL OverlayManager_Run(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; +} diff --git a/arm9/src/unk_02006234.c b/arm9/src/unk_02006234.c deleted file mode 100644 index a493311d..00000000 --- a/arm9/src/unk_02006234.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "global.h" -#include "main.h" -#include "poke_overlay.h" -#include "heap.h" - -struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id); //todo header? -void OverlayManager_delete(struct UnkStruct_02006234 * a0); -void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id); -void * OverlayManager_GetData(struct UnkStruct_02006234 * a0); -void OverlayManager_FreeData(struct UnkStruct_02006234 * a0); -int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0); -BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0); - -THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(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 OverlayManager_delete(struct UnkStruct_02006234 * a0) -{ - FreeToHeap(a0); -} - -THUMB_FUNC void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id) -{ - return a0->unk1C = AllocFromHeap(heap_id, size); -} - -THUMB_FUNC void * OverlayManager_GetData(struct UnkStruct_02006234 * a0) -{ - return a0->unk1C; -} - -THUMB_FUNC void OverlayManager_FreeData(struct UnkStruct_02006234 * a0) -{ - FreeToHeap(a0->unk1C); - a0->unk1C = NULL; -} - -THUMB_FUNC int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) -{ - return a0->unk18; -} - -THUMB_FUNC BOOL OverlayManager_Run(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; -} -- cgit v1.2.3 From 697c2313123690ebb4af45629cbc337d19941d04 Mon Sep 17 00:00:00 2001 From: red031000 Date: Mon, 9 Nov 2020 19:49:19 +0000 Subject: start decompiling mod21_02254854 --- arm9/src/unk_0200CA44.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/unk_0200CA44.c b/arm9/src/unk_0200CA44.c index fc4656b2..1a572a89 100644 --- a/arm9/src/unk_0200CA44.c +++ b/arm9/src/unk_0200CA44.c @@ -2,30 +2,30 @@ #include "main.h" #include "unk_0200CA44.h" -extern void FUN_0201B60C(void *, void (*)(void *, void *), void *, void *); +extern BOOL FUN_0201B60C(void *, void (*)(void *, void *), void *, void *); extern void FUN_0201B6A0(s32); -THUMB_FUNC void FUN_0200CA44(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(void *, void *), void * r1, void * r2) { - FUN_0201B60C(gMain.unk18, r0, r1, r2); + return FUN_0201B60C(gMain.unk18, r0, r1, r2); } -THUMB_FUNC void FUN_0200CA60(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(void *, void *), void * r1, void * r2) { - FUN_0201B60C(gMain.unk1C, r0, r1, r2); + return FUN_0201B60C(gMain.unk1C, r0, r1, r2); } -THUMB_FUNC void FUN_0200CA7C(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(void *, void *), void * r1, void * r2) { - FUN_0201B60C(gMain.unk24, r0, r1, r2); + return FUN_0201B60C(gMain.unk24, r0, r1, r2); } -THUMB_FUNC void FUN_0200CA98(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(void *, void *), void * r1, void * r2) { - FUN_0201B60C(gMain.unk20, r0, r1, r2); + return FUN_0201B60C(gMain.unk20, r0, r1, r2); } -THUMB_FUNC void FUN_0200CAB4(s32 unk1) +THUMB_FUNC void FUN_0200CAB4(s32 unk1) //bool? { FUN_0201B6A0(unk1); } -- cgit v1.2.3 From bc3be40047d1b9ec45e7b355dff2280e7c5faa0a Mon Sep 17 00:00:00 2001 From: red031000 Date: Sat, 14 Nov 2020 00:07:14 +0000 Subject: more mod 21 --- arm9/src/unk_0200CA44.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'arm9/src') diff --git a/arm9/src/unk_0200CA44.c b/arm9/src/unk_0200CA44.c index 1a572a89..fd703cd3 100644 --- a/arm9/src/unk_0200CA44.c +++ b/arm9/src/unk_0200CA44.c @@ -2,25 +2,25 @@ #include "main.h" #include "unk_0200CA44.h" -extern BOOL FUN_0201B60C(void *, void (*)(void *, void *), void *, void *); +extern BOOL FUN_0201B60C(void *, void (*)(u32, void *), void *, void *); extern void FUN_0201B6A0(s32); -THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(u32, void *), void * r1, void * r2) { return FUN_0201B60C(gMain.unk18, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(u32, void *), void * r1, void * r2) { return FUN_0201B60C(gMain.unk1C, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(u32, void *), void * r1, void * r2) { return FUN_0201B60C(gMain.unk24, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(void *, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(u32, void *), void * r1, void * r2) { return FUN_0201B60C(gMain.unk20, r0, r1, r2); } -- cgit v1.2.3 From 22c9ea3a992c48fc5c8926902cbde48861195f10 Mon Sep 17 00:00:00 2001 From: tgsm Date: Fri, 18 Dec 2020 13:42:23 -0500 Subject: decompile Options --- arm9/src/options.c | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++ arm9/src/sound.c | 2 +- 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 arm9/src/options.c (limited to 'arm9/src') diff --git a/arm9/src/options.c b/arm9/src/options.c new file mode 100644 index 00000000..296b398a --- /dev/null +++ b/arm9/src/options.c @@ -0,0 +1,110 @@ +#include "global.h" +#include "heap.h" +#include "main.h" +#include "MI_memory.h" +#include "options.h" +#include "player_data.h" + +#pragma thumb on + +struct Options * Options_new(u32 heap_id) { + struct Options * ret = AllocFromHeap(heap_id, sizeof(struct Options)); + Options_init(ret); + return ret; +} + +void Options_copy(struct Options * src, struct Options * dest) { + MI_CpuCopy8(src, dest, sizeof(struct Options)); +} + +void Options_init(struct Options * options) { + MI_CpuFill8(options, 0, sizeof(struct Options)); + + options->textSpeed = 1; // mid speed + options->soundMethod = 0; // stereo + options->battleStyle = 0; // shift + options->battleScene = 0; // on + options->buttonMode = 0; // normal + options->frame = 0; // frame 1 +} + +void Options_SetButtonModeOnMain(struct SaveBlock2 * sav2, u32 buttonMode) { + if (sav2 != NULL) { + buttonMode = Options_GetButtonMode(Sav2_PlayerData_GetOptionsAddr(sav2)); + } + + switch (buttonMode) { + case 1: + gMain.unk34 = 1; + break; + case 2: + gMain.unk34 = 3; + break; + case 0: + default: + gMain.unk34 = 0; + break; + } +} + +u16 Options_GetTextSpeed(struct Options * options) { + return options->textSpeed; +} + +void Options_SetTextSpeed(struct Options * options, u16 textSpeed) { + options->textSpeed = (u16)(u32)textSpeed; +} + +u32 Options_GetTextFrameDelay(struct Options * options) { + u16 textSpeed = Options_GetTextSpeed(options); + + if (textSpeed == 0) { + return 8; + } + + if (textSpeed == 1) { + return 4; + } + + return 1; +} + +u16 Options_GetSoundMethod(struct Options * options) { + return options->soundMethod; +} + +void Options_SetSoundMethod(struct Options * options, u16 soundMethod) { + options->soundMethod = (u16)(u32)soundMethod; +} + +u16 Options_GetBattleScene(struct Options * options) { + return options->battleScene; +} + +void Options_SetBattleScene(struct Options * options, u16 battleScene) { + options->battleScene = (u16)(u32)battleScene; +} + +u16 Options_GetBattleStyle(struct Options * options) { + return options->battleStyle; +} + +void Options_SetBattleStyle(struct Options * options, u16 battleStyle) { + options->battleStyle = (u16)(u32)battleStyle; +} + +u16 Options_GetButtonMode(struct Options * options) { + return options->buttonMode; +} + +void Options_SetButtonMode(struct Options * options, u16 buttonMode) { + options->buttonMode = (u16)(u32)buttonMode; +} + +u16 Options_GetFrame(struct Options * options) { + return options->frame; +} + +void Options_SetFrame(struct Options * options, u16 frame) { + options->frame = (u16)(u32)frame; +} diff --git a/arm9/src/sound.c b/arm9/src/sound.c index dd928287..a1e31bbd 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -38,7 +38,7 @@ void InitSoundData(void * a0, struct Options * a1) FUN_020040A4(sdat); UNK_02107070[1] = 0; sdat->unk_BCD4C = a0; - FUN_02004D60(a1->unk0_4); + FUN_02004D60(a1->soundMethod); } void DoSoundUpdateFrame(void) -- cgit v1.2.3 From a37fd3dff5df3a93ac7d756d1e16d411a0299dc9 Mon Sep 17 00:00:00 2001 From: tgsm Date: Thu, 14 Jan 2021 18:22:00 -0500 Subject: decompile unk_0202C144 --- arm9/src/unk_0202C144.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 arm9/src/unk_0202C144.c (limited to 'arm9/src') diff --git a/arm9/src/unk_0202C144.c b/arm9/src/unk_0202C144.c new file mode 100644 index 00000000..b7dd45aa --- /dev/null +++ b/arm9/src/unk_0202C144.c @@ -0,0 +1,26 @@ +#include "global.h" +#include "pokedex.h" +#include "poketch.h" +#include "unk_02029FB0.h" +#include "unk_0202C144.h" + +#pragma thumb on + +extern struct UnkStruct_02029FB0 * FUN_02029FC8(struct SaveBlock2 * sav2); +extern void FUN_0202A1C4(struct UnkStruct_02029FB0 * unk, struct Pokedex * pokedex, u16 species); + +void FUN_0202C144(struct SaveBlock2 * sav2, struct Pokemon * mon) +{ + u32 is_egg = GetMonData(mon, MON_DATA_IS_EGG, NULL); + if (!is_egg) + { + struct Pokedex * pokedex = Sav2_Pokedex_get(sav2); + struct UnkStruct_02029FB0 * unk = FUN_02029FC8(sav2); + u32 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + FUN_0202A1C4(unk, pokedex, (u16)species); + Pokedex_SetMonCaughtFlag(pokedex, mon); + + struct SavePoketch * poketch = Sav2_Poketch_get(sav2); + Sav2_Poketch_PokemonHistoryAddMon(poketch, &mon->box); + } +} -- cgit v1.2.3