diff options
author | red031000 <rubenru09@aol.com> | 2020-11-09 19:49:19 +0000 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-11-09 19:49:44 +0000 |
commit | 697c2313123690ebb4af45629cbc337d19941d04 (patch) | |
tree | 76220126ea07581c2987ca644043f96fcfa4a629 | |
parent | 80caebd738c642db675a37685a2d89338196dd35 (diff) |
start decompiling mod21_02254854
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | arm9/arm9.lsf | 3 | ||||
-rw-r--r-- | arm9/modules/21/asm/mod21_02254854_asm.s (renamed from arm9/modules/21/asm/mod21_02254854.s) | 37 | ||||
-rw-r--r-- | arm9/modules/21/include/mod21_02254854.h | 8 | ||||
-rw-r--r-- | arm9/modules/21/src/mod21_02254854_src.c | 21 | ||||
-rw-r--r-- | arm9/modules/21/src/module_21_sinit.c | 2 | ||||
-rw-r--r-- | arm9/src/unk_0200CA44.c | 20 | ||||
-rw-r--r-- | include/unk_0200CA44.h | 8 |
8 files changed, 47 insertions, 54 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index dc3f7fcc..4ef6e929 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ add_compile_options(-fms-extensions) file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c" "*.cpp") add_executable(PokeDiamond ${SOURCES}) -target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include arm7/lib/include arm9/modules/05/include arm9/modules/59/include arm9/modules/63/include) +target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include arm7/lib/include arm9/modules/05/include arm9/modules/21/include arm9/modules/59/include arm9/modules/63/include) add_executable(calcrom .travis/calcrom/calcrom.cpp) target_include_directories(calcrom PRIVATE /usr/local/include) diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index d95024ae..20c1b64c 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -664,7 +664,8 @@ Overlay MODULE_21 ##Pokétch Clock## After MODULE_20 Object module_21_sinit.o - Object mod21_02254854.o + Object mod21_02254854_src.o + Object mod21_02254854_asm.o Object mod21_02254A6C.o } diff --git a/arm9/modules/21/asm/mod21_02254854.s b/arm9/modules/21/asm/mod21_02254854_asm.s index bcbbf915..5e5dd958 100644 --- a/arm9/modules/21/asm/mod21_02254854.s +++ b/arm9/modules/21/asm/mod21_02254854_asm.s @@ -3,43 +3,6 @@ .section .text .balign 4, 0 - thumb_func_start MOD21_02254854 -MOD21_02254854: ; 0x02254854 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x2c - add r7, r2, #0 - str r3, [sp] - bl AllocFromHeap - add r4, r0, #0 - beq _02254892 - ldr r3, [sp] - add r1, r6, #0 - add r2, r7, #0 - bl MOD21_0225489C - cmp r0, #0 - beq _0225488C - ldr r0, _02254898 ; =MOD21_02254930 - add r1, r4, #0 - mov r2, #1 - bl FUN_0200CA44 - cmp r0, #0 - beq _0225488C - str r4, [r5] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_0225488C: - add r0, r4, #0 - bl FreeToHeap -_02254892: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - nop -_02254898: .word MOD21_02254930 - thumb_func_end MOD21_02254854 - thumb_func_start MOD21_0225489C MOD21_0225489C: ; 0x0225489C push {r3, r4, r5, lr} diff --git a/arm9/modules/21/include/mod21_02254854.h b/arm9/modules/21/include/mod21_02254854.h new file mode 100644 index 00000000..061e7e4b --- /dev/null +++ b/arm9/modules/21/include/mod21_02254854.h @@ -0,0 +1,8 @@ +#ifndef POKEDIAMOND_MOD21_02254854_H +#define POKEDIAMOND_MOD21_02254854_H + +#include "nitro/types.h" + +BOOL MOD21_02254854(u32 *param0, u32 param1, u32 param2, u32 param3); + +#endif //POKEDIAMOND_MOD21_02254854_H diff --git a/arm9/modules/21/src/mod21_02254854_src.c b/arm9/modules/21/src/mod21_02254854_src.c new file mode 100644 index 00000000..8a0c4146 --- /dev/null +++ b/arm9/modules/21/src/mod21_02254854_src.c @@ -0,0 +1,21 @@ +#include "global.h" +#include "heap.h" +#include "unk_0200CA44.h" + +extern BOOL MOD21_0225489C(void *param0, u32 param1, u32 param2, u32 param3); +extern void MOD21_02254930(void *, void *); + +THUMB_FUNC BOOL MOD21_02254854(u32 *param0, u32 param1, u32 param2, u32 param3) //param0 is likely actually a struct +{ + void * alloced = AllocFromHeap(8, 0x2c); + if (alloced != NULL) + { + if (MOD21_0225489C(alloced, param1, param2, param3) && FUN_0200CA44(MOD21_02254930, alloced, (void *)1)) + { + *param0 = (u32)alloced; + return TRUE; + } + FreeToHeap(alloced); + } + return FALSE; +}
\ No newline at end of file diff --git a/arm9/modules/21/src/module_21_sinit.c b/arm9/modules/21/src/module_21_sinit.c index 2af569ec..c4b2ac5a 100644 --- a/arm9/modules/21/src/module_21_sinit.c +++ b/arm9/modules/21/src/module_21_sinit.c @@ -1,7 +1,7 @@ #include "global.h" +#include "mod21_02254854.h" extern void Poketch_InitApp(void *func1, void *func2); -extern void MOD21_02254854(); extern void MOD21_0225496C(); THUMB_FUNC static void MOD21_02254840(void) 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); } diff --git a/include/unk_0200CA44.h b/include/unk_0200CA44.h index 27d58c5c..3a3be022 100644 --- a/include/unk_0200CA44.h +++ b/include/unk_0200CA44.h @@ -1,10 +1,10 @@ #ifndef POKEDIAMOND_UNK_0200CA44_H #define POKEDIAMOND_UNK_0200CA44_H -void FUN_0200CA44(void (*r0)(void *, void *), void * r1, void * r2); -void FUN_0200CA60(void (*r0)(void *, void *), void * r1, void * r2); -void FUN_0200CA7C(void (*r0)(void *, void *), void * r1, void * r2); -void FUN_0200CA98(void (*r0)(void *, void *), void * r1, void * r2); +BOOL FUN_0200CA44(void (*r0)(void *, void *), void * r1, void * r2); +BOOL FUN_0200CA60(void (*r0)(void *, void *), void * r1, void * r2); +BOOL FUN_0200CA7C(void (*r0)(void *, void *), void * r1, void * r2); +BOOL FUN_0200CA98(void (*r0)(void *, void *), void * r1, void * r2); void FUN_0200CAB4(s32 unk1); #endif //POKEDIAMOND_UNK_0200CA44_H |