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 /arm9/modules | |
parent | 80caebd738c642db675a37685a2d89338196dd35 (diff) |
start decompiling mod21_02254854
Diffstat (limited to 'arm9/modules')
-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 |
4 files changed, 30 insertions, 38 deletions
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) |