diff options
author | red031000 <rubenru09@aol.com> | 2020-07-31 22:13:06 +0100 |
---|---|---|
committer | red031000 <rubenru09@aol.com> | 2020-07-31 22:13:06 +0100 |
commit | bc66969b13ed0e8279d93edd730ef584f0828c77 (patch) | |
tree | 62a6a929cf2afe20800b9d3b016cfd228bd1facc | |
parent | 6f3e7107cfa63832c1e9643443bcd9de08b4ec0d (diff) |
finish mod63_021DB450
-rw-r--r-- | arm9/arm9.lsf | 1 | ||||
-rw-r--r-- | arm9/modules/63/asm/mod63_021DB450_asm.s | 52 | ||||
-rw-r--r-- | arm9/modules/63/include/mod63_021DB450.h | 18 | ||||
-rw-r--r-- | arm9/modules/63/src/mod63_021DB450.c | 17 |
4 files changed, 32 insertions, 56 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 225d62cf..27d530ed 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -946,7 +946,6 @@ Overlay MODULE_63 Object mod63_021DA640.o Object mod63_021DAE5C.o Object mod63_021DB450.o - Object mod63_021DB450_asm.o } Overlay MODULE_64 diff --git a/arm9/modules/63/asm/mod63_021DB450_asm.s b/arm9/modules/63/asm/mod63_021DB450_asm.s deleted file mode 100644 index dd2f570d..00000000 --- a/arm9/modules/63/asm/mod63_021DB450_asm.s +++ /dev/null @@ -1,52 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - - thumb_func_start MOD63_021DB940 -MOD63_021DB940: ; 0x021DB940 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - bl FUN_0201341C - add r2, sp, #0 - mov r1, #0 - str r1, [r2] - str r1, [r2, #4] - add r4, r0, #0 - str r1, [r2, #8] - bl FUN_0200782C - sub r0, #0x80 - mov r1, #0xac - mul r1, r0 - str r1, [sp] - add r0, r4, #0 - mov r1, #1 - bl FUN_0200782C - sub r0, #0x60 - mov r1, #0xac - mul r1, r0 - str r1, [sp, #4] - mov r0, #0x40 - str r0, [sp, #8] - ldr r0, [r5, #0x20] - ldr r1, [sp] - ldr r0, [r0] - ldr r0, [r0, #4] - add r0, r1, r0 - str r0, [r5, #0x28] - ldr r0, [r5, #0x20] - ldr r1, [sp, #4] - ldr r0, [r0] - ldr r0, [r0, #8] - add r0, r1, r0 - str r0, [r5, #0x2c] - ldr r0, [r5, #0x20] - ldr r1, [sp, #8] - ldr r0, [r0] - ldr r0, [r0, #0xc] - add r0, r1, r0 - str r0, [r5, #0x30] - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end MOD63_021DB940 diff --git a/arm9/modules/63/include/mod63_021DB450.h b/arm9/modules/63/include/mod63_021DB450.h index 32985960..5de4609b 100644 --- a/arm9/modules/63/include/mod63_021DB450.h +++ b/arm9/modules/63/include/mod63_021DB450.h @@ -59,6 +59,23 @@ typedef struct UnkStruct63_021DBED8 BOOL (*unk_04)(struct UnkStruct63_021DB5CC *, u32); } UnkStruct63_021DBED8; +typedef struct UnkStruct_02090A58 +{ + struct UnkStruct_02090A58 * unk_00; + u32 unk_04; + u32 unk_08; + u32 unk_0C; + u32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + u32 ** unk_20; + u32 unk_24; + u32 unk_28; + u32 unk_2C; + u32 unk_30; +} UnkStruct_02090A58; + u32 MOD63_021DB450(u32 param0, u32 param1); u32 MOD63_021DB474(u32 param0, u32 param1); u32 MOD63_021DB498(void); @@ -74,5 +91,6 @@ BOOL MOD63_021DB838(UnkStruct63_021DB5CC *param0, u32 param1); BOOL MOD63_021DB884(UnkStruct63_021DB5CC *param0, u32 param1); BOOL MOD63_021DB8E8(UnkStruct63_021DB5CC *param0, u32 param1); void MOD63_021DB934(void); +void MOD63_021DB940(struct UnkStruct_02090A58 * a0); #endif //POKEDIAMOND_MOD63_021DB450_H diff --git a/arm9/modules/63/src/mod63_021DB450.c b/arm9/modules/63/src/mod63_021DB450.c index 51b9a3ad..975836e8 100644 --- a/arm9/modules/63/src/mod63_021DB450.c +++ b/arm9/modules/63/src/mod63_021DB450.c @@ -42,10 +42,9 @@ extern void FUN_020079E0(u32, u32, s32); extern void FUN_02013364(void); extern void FUN_02013388(void); -//todo funcs -extern void MOD63_021DB940(); +void * FUN_0201341C(struct UnkStruct_02090A58 *); +int FUN_0200782C(void *, int); -//todo data const s32 MOD63_021DBEC0[3] = {0x703, 0x7CE, 0x8A8}; const struct UnkStruct63_021DBEF0 MOD63_021DBEF0[3]; @@ -293,3 +292,15 @@ THUMB_FUNC void MOD63_021DB934(void) FUN_02013364(); FUN_02013388(); } + +THUMB_FUNC void MOD63_021DB940(struct UnkStruct_02090A58 * a0) +{ + void * r4 = FUN_0201341C(a0); + int sp0[3] = {0, 0, 0}; + sp0[0] = (FUN_0200782C(r4, 0) - 0x80) * 0xAC; + sp0[1] = (FUN_0200782C(r4, 1) - 0x60) * 0xAC; + sp0[2] = 0x40; + a0->unk_28 = sp0[0] + (*a0->unk_20)[1]; + a0->unk_2C = sp0[1] + (*a0->unk_20)[2]; + a0->unk_30 = sp0[2] + (*a0->unk_20)[3]; +} |