summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/modules/21/asm/mod21_02254A6C_asm.s27
-rw-r--r--arm9/modules/21/include/mod21_02254A6C.h1
-rw-r--r--arm9/modules/21/src/mod21_02254A6C_src.c19
3 files changed, 17 insertions, 30 deletions
diff --git a/arm9/modules/21/asm/mod21_02254A6C_asm.s b/arm9/modules/21/asm/mod21_02254A6C_asm.s
index a5a2d7ae..45ff2a27 100644
--- a/arm9/modules/21/asm/mod21_02254A6C_asm.s
+++ b/arm9/modules/21/asm/mod21_02254A6C_asm.s
@@ -3,33 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD21_02254AD4
-MOD21_02254AD4: ; 0x02254AD4
- push {r3, r4, r5, r6, r7, lr}
- mov r6, #9
- add r5, r0, #0
- add r4, r1, #0
- mov r7, #0
- lsl r6, r6, #6
-_02254AE0:
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x40
- bl MIi_CpuCopy16
- add r1, r4, #0
- add r0, r5, r6
- add r1, #0x40
- mov r2, #0x10
- bl MIi_CpuCopy16
- add r7, r7, #1
- add r5, #0x40
- add r4, #0x50
- sub r6, #0x30
- cmp r7, #9
- blt _02254AE0
- pop {r3, r4, r5, r6, r7, pc}
- thumb_func_end MOD21_02254AD4
-
thumb_func_start MOD21_02254B04
MOD21_02254B04: ; 0x02254B04
push {r3, lr}
diff --git a/arm9/modules/21/include/mod21_02254A6C.h b/arm9/modules/21/include/mod21_02254A6C.h
index 9c37ecc5..71bc78e7 100644
--- a/arm9/modules/21/include/mod21_02254A6C.h
+++ b/arm9/modules/21/include/mod21_02254A6C.h
@@ -13,5 +13,6 @@ typedef struct UnkStruct02254A6C
} UnkStruct02254A6C;
BOOL MOD21_02254A6C(UnkStruct02254A6C *param0, void *param1);
+void MOD21_02254AD4(void *param0, void *param1);
#endif //POKEDIAMOND_MOD21_02254A6C_H
diff --git a/arm9/modules/21/src/mod21_02254A6C_src.c b/arm9/modules/21/src/mod21_02254A6C_src.c
index ee664f13..4bd810d4 100644
--- a/arm9/modules/21/src/mod21_02254A6C_src.c
+++ b/arm9/modules/21/src/mod21_02254A6C_src.c
@@ -1,11 +1,11 @@
#include "global.h"
#include "heap.h"
#include "mod21_02254A6C.h"
+#include "MI_memory.h"
extern void MOD20_022536F4(u32 *param0, u32 param1);
extern u32 MOD20_02252D34(void);
extern void *FUN_02006BDC(u32 param0, u32 param1, u32 param2, void *param3, u32 param4);
-extern void MOD21_02254AD4(u32 param0, u32 *param1);
THUMB_FUNC BOOL MOD21_02254A6C(UnkStruct02254A6C *param0, void *param1)
{
@@ -22,10 +22,23 @@ THUMB_FUNC BOOL MOD21_02254A6C(UnkStruct02254A6C *param0, void *param1)
FreeToHeap(strct);
return FALSE;
}
- MOD21_02254AD4(sp4 + 0xc, strct->Unk30);
+ MOD21_02254AD4((void *)(sp4 + 0xc), strct->Unk30);
FreeToHeap(res);
param0->Unk00 = strct;
return TRUE;
}
return FALSE;
-} \ No newline at end of file
+}
+
+THUMB_FUNC void MOD21_02254AD4(void *param0, void *param1)
+{
+ s32 i = 0;
+ for (u32 r6 = 9 << 6; i < 9; r6 -= 0x30)
+ {
+ MI_CpuCopy16(param0, param1, 0x40);
+ MI_CpuCopy16((void *)((u32)param0 + r6), (void *)((u32)param1 + 0x40), 0x10);
+ i++;
+ param0 = (void *)((u32)param0 + 0x40);
+ param1 = (void *)((u32)param1 + 0x50);
+ }
+}