summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2020-11-01 21:53:36 +0000
committerred031000 <rubenru09@aol.com>2020-11-01 21:54:59 +0000
commit87a52afbb4b9a2cb8c29bde3078e9800198df084 (patch)
tree64c2a6003822c1ab59f04ae70ef5ce8b8a21b894 /arm9/modules
parent584260c2b3d07d56fcdcbbb0c72b141555000aeb (diff)
decompile MOD59_Init
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/59/asm/mod59_021D74E0_asm.s (renamed from arm9/modules/59/asm/mod59_021D74E0.s)63
-rw-r--r--arm9/modules/59/include/mod59_021D74E0.h32
-rw-r--r--arm9/modules/59/src/mod59_021D74E0_src.c29
3 files changed, 61 insertions, 63 deletions
diff --git a/arm9/modules/59/asm/mod59_021D74E0.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s
index abc37879..8358f768 100644
--- a/arm9/modules/59/asm/mod59_021D74E0.s
+++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s
@@ -3,69 +3,6 @@
.section .text
.balign 4, 0
- thumb_func_start MOD59_021D74E0
-MOD59_021D74E0: ; 0x021D74E0
- push {r3, r4, r5, lr}
- mov r2, #1
- add r5, r0, #0
- mov r0, #3
- mov r1, #0x52
- lsl r2, r2, #0x12
- bl FUN_0201681C
- add r0, r5, #0
- mov r1, #0xb4
- mov r2, #0x52
- bl OverlayManager_CreateAndGetData
- mov r1, #0
- mov r2, #0xb4
- add r4, r0, #0
- bl memset
- mov r0, #0x52
- str r0, [r4]
- add r0, r5, #0
- bl OverlayManager_GetField18
- ldr r0, [r0, #8]
- str r0, [r4, #4]
- bl Sav2_PlayerData_GetOptionsAddr
- mov r1, #0
- str r0, [r4, #8]
- str r1, [r4, #0xc]
- str r1, [r4, #0x10]
- str r1, [r4, #0x14]
- ldr r0, [r4, #8]
- add r2, r1, #0
- str r0, [sp]
- mov r0, #0x52
- mov r3, #7
- bl FUN_02077A84
- str r0, [r4, #0x70]
- ldr r0, [r4, #8]
- mov r1, #3
- str r0, [sp]
- mov r0, #0x52
- mov r2, #0
- mov r3, #7
- bl FUN_02077A84
- str r0, [r4, #0x74]
- add r0, r4, #0
- mov r1, #0
- add r0, #0x88
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x89
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x8a
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x8b
- strb r1, [r0]
- add r4, #0x90
- str r1, [r4]
- mov r0, #1
- pop {r3, r4, r5, pc}
- thumb_func_end MOD59_021D74E0
-
thumb_func_start MOD59_021D7564
MOD59_021D7564: ; 0x021D7564
push {r3, r4, r5, r6, lr}
diff --git a/arm9/modules/59/include/mod59_021D74E0.h b/arm9/modules/59/include/mod59_021D74E0.h
new file mode 100644
index 00000000..9342913d
--- /dev/null
+++ b/arm9/modules/59/include/mod59_021D74E0.h
@@ -0,0 +1,32 @@
+#ifndef POKEDIAMOND_MOD59_021D74E0_H
+#define POKEDIAMOND_MOD59_021D74E0_H
+
+#include "nitro/types.h"
+#include "options.h"
+#include "save_block_2.h"
+#include "main.h"
+
+typedef struct MOD59_OverlayData
+{
+ u32 heap_id;
+ struct SaveBlock2 *sav2;
+ struct Options *options;
+ u32 Unk0C;
+ u32 Unk10;
+ u32 Unk14;
+ u8 padding[0x58];
+ u32 Unk70;
+ u32 Unk74;
+ u8 padding2[0x10];
+ u8 Unk88;
+ u8 Unk89;
+ u8 Unk8A;
+ u8 Unk8B;
+ u8 padding3[4];
+ u32 Unk90;
+ //TODO pad to 0xb4
+} MOD59_OverlayData;
+
+BOOL MOD59_Init(struct UnkStruct_02006234 *param0);
+
+#endif //POKEDIAMOND_MOD59_021D74E0_H
diff --git a/arm9/modules/59/src/mod59_021D74E0_src.c b/arm9/modules/59/src/mod59_021D74E0_src.c
new file mode 100644
index 00000000..9fccfd95
--- /dev/null
+++ b/arm9/modules/59/src/mod59_021D74E0_src.c
@@ -0,0 +1,29 @@
+#include "global.h"
+#include "player_data.h"
+#include "overlay_manager.h"
+#include "mod59_021D74E0.h"
+
+extern void FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
+extern u32 FUN_02077A84(u32 heap_id, u32 param1, u32 param2, u32 param3, struct Options *options);
+
+THUMB_FUNC BOOL MOD59_Init(struct UnkStruct_02006234 *param0)
+{
+ //note: 0xb4 is likely the overlay data struct size, once struct is padded replace with sizeof
+ FUN_0201681C(3, 0x52, 1 << 18);
+ MOD59_OverlayData *data = (MOD59_OverlayData *) OverlayManager_CreateAndGetData(param0, 0xb4, 0x52);
+ (void)memset((void *)data, 0, 0xb4);
+
+ data->heap_id = 0x52;
+ int *field18 = OverlayManager_GetField18(param0);
+ data->sav2 = (struct SaveBlock2 *)field18[2]; //?
+ data->options = Sav2_PlayerData_GetOptionsAddr(data->sav2);
+ data->Unk14 = data->Unk10 = data->Unk0C = 0;
+ data->Unk70 = FUN_02077A84(0x52, 0, 0, 7, data->options);
+ data->Unk74 = FUN_02077A84(0x52, 3, 0, 7, data->options);
+ data->Unk88 = 0;
+ data->Unk89 = 0;
+ data->Unk8A = 0;
+ data->Unk8B = 0;
+ data->Unk90 = 0;
+ return TRUE;
+}