summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-11-09 19:49:19 +0000
committerred031000 <rubenru09@aol.com>2020-11-09 19:49:44 +0000
commit697c2313123690ebb4af45629cbc337d19941d04 (patch)
tree76220126ea07581c2987ca644043f96fcfa4a629 /arm9/modules
parent80caebd738c642db675a37685a2d89338196dd35 (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.h8
-rw-r--r--arm9/modules/21/src/mod21_02254854_src.c21
-rw-r--r--arm9/modules/21/src/module_21_sinit.c2
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)