summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRevo <projectrevotpp@hotmail.com>2021-03-16 08:31:31 -0400
committerGitHub <noreply@github.com>2021-03-16 08:31:31 -0400
commita70ceda94c9daac7c1576dcf6c9b82c24e8167b0 (patch)
tree8719d75247ba15eea47a5f5d4a9f4e3d477a4396
parent6138b2ea49421579ec2857d7a8a491de6b1701b6 (diff)
parentfe49a1d229fef47e7a4c78d2fea6b92a22892ddb (diff)
Merge pull request #332 from remicalixte/decomp-unk_02024E64
Decompile unk_02024E64.s
-rw-r--r--arm9/asm/unk_02024E64.s118
-rw-r--r--arm9/src/save_arrays.c3
-rw-r--r--arm9/src/script_buffers.c3
-rw-r--r--arm9/src/trainer_data.c3
-rw-r--r--arm9/src/unk_02024E64.c62
-rw-r--r--include/unk_02024E64.h15
6 files changed, 80 insertions, 124 deletions
diff --git a/arm9/asm/unk_02024E64.s b/arm9/asm/unk_02024E64.s
deleted file mode 100644
index 0234a504..00000000
--- a/arm9/asm/unk_02024E64.s
+++ /dev/null
@@ -1,118 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02024E64
-FUN_02024E64: ; 0x02024E64
- ldr r0, _02024E68 ; =0x0000074C
- bx lr
- .balign 4
-_02024E68: .word 0x0000074C
-
- thumb_func_start FUN_02024E6C
-FUN_02024E6C: ; 0x02024E6C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r2, _02024EA4 ; =0x0000074C
- mov r0, #0x0
- add r1, r4, #0x0
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_020250A4
- mov r0, #0x7
- lsl r0, r0, #0x8
- add r0, r4, r0
- bl FUN_02025484
- ldr r1, _02024EA8 ; =0x00000724
- ldr r0, _02024EAC ; =0x0000FFFF
- add r1, r4, r1
- mov r2, #0x8
- bl MIi_CpuClear16
- ldr r1, _02024EB0 ; =0x00000734
- ldr r0, _02024EAC ; =0x0000FFFF
- add r1, r4, r1
- mov r2, #0xb
- bl MIi_CpuClear16
- pop {r4, pc}
- .balign 4
-_02024EA4: .word 0x0000074C
-_02024EA8: .word 0x00000724
-_02024EAC: .word 0x0000FFFF
-_02024EB0: .word 0x00000734
-
- thumb_func_start FUN_02024EB4
-FUN_02024EB4: ; 0x02024EB4
- ldr r3, _02024EBC ; =SavArray_get
- mov r1, #0xa
- bx r3
- nop
-_02024EBC: .word SavArray_get
-
- thumb_func_start FUN_02024EC0
-FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =FUN_02022634
- mov r1, #0xa
- bx r3
- nop
-_02024EC8: .word FUN_02022634
-
- thumb_func_start FUN_02024ECC
-FUN_02024ECC: ; 0x02024ECC
- ldr r3, _02024ED4 ; =SavArray_get
- mov r1, #0xa
- bx r3
- nop
-_02024ED4: .word SavArray_get
-
- thumb_func_start FUN_02024ED8
-FUN_02024ED8: ; 0x02024ED8
- push {r3, lr}
- mov r1, #0xa
- bl SavArray_get
- mov r1, #0x7
- lsl r1, r1, #0x8
- add r0, r0, r1
- pop {r3, pc}
-
- thumb_func_start FUN_02024EE8
-FUN_02024EE8: ; 0x02024EE8
- ldr r1, _02024EF0 ; =0x00000724
- add r0, r0, r1
- bx lr
- nop
-_02024EF0: .word 0x00000724
-
- thumb_func_start FUN_02024EF4
-FUN_02024EF4: ; 0x02024EF4
- add r2, r0, #0x0
- add r0, r1, #0x0
- ldr r1, _02024F04 ; =0x00000724
- ldr r3, _02024F08 ; =CopyStringToU16Array
- add r1, r2, r1
- mov r2, #0x8
- bx r3
- nop
-_02024F04: .word 0x00000724
-_02024F08: .word CopyStringToU16Array
-
- thumb_func_start FUN_02024F0C
-FUN_02024F0C: ; 0x02024F0C
- ldr r1, _02024F14 ; =0x00000734
- add r0, r0, r1
- bx lr
- nop
-_02024F14: .word 0x00000734
-
- thumb_func_start FUN_02024F18
-FUN_02024F18: ; 0x02024F18
- add r2, r0, #0x0
- add r0, r1, #0x0
- ldr r1, _02024F28 ; =0x00000734
- ldr r3, _02024F2C ; =CopyStringToU16Array
- add r1, r2, r1
- mov r2, #0xb
- bx r3
- nop
-_02024F28: .word 0x00000734
-_02024F2C: .word CopyStringToU16Array
diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c
index 397f1f69..8520f2c1 100644
--- a/arm9/src/save_arrays.c
+++ b/arm9/src/save_arrays.c
@@ -14,10 +14,10 @@
#include "pokedex.h"
#include "seal.h"
#include "unk_020139D8.h"
+#include "unk_02024E64.h"
extern u32 FUN_0202AC20(void);
extern u32 FUN_02034D7C(void);
-extern u32 FUN_02024E64(void);
extern u32 FUN_02034D80(void);
extern u32 FUN_02025954(void);
extern u32 FUN_02023AC8(void);
@@ -39,7 +39,6 @@ extern u32 FUN_0202BE98(void);
extern u32 FUN_0202C0E0(void);
extern void FUN_0202AC28(void *);
extern void FUN_02034D98(void *);
-extern void FUN_02024E6C(void *);
extern void FUN_02034D88(void *);
extern void FUN_0202597C(void *);
extern void FUN_02023AD8(void *);
diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c
index 431f63b4..293c0bac 100644
--- a/arm9/src/script_buffers.c
+++ b/arm9/src/script_buffers.c
@@ -11,11 +11,10 @@
#include "unk_0201B8B8.h"
#include "trainer_data.h"
#include "script_buffers.h"
+#include "unk_02024E64.h"
#pragma thumb on
-extern void * FUN_02024EC0(struct SaveBlock2 * sav2);
-extern u16 * FUN_02024EE8(void *);
extern u32 GetCityNamesMsgdataIdByCountry(u32);
extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1);
extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src);
diff --git a/arm9/src/trainer_data.c b/arm9/src/trainer_data.c
index 7af4b2ce..a797956c 100644
--- a/arm9/src/trainer_data.c
+++ b/arm9/src/trainer_data.c
@@ -6,11 +6,10 @@
#include "proto.h"
#include "msgdata.h"
#include "constants/trainer_classes.h"
+#include "unk_02024E64.h"
#pragma thumb on
-extern void * FUN_02024EC0(struct SaveBlock2 *);
-extern u16 * FUN_02024EE8(void *);
// Loads all battle opponents, including multi-battle partner if exists.
void EnemyTrainerSet_Init(struct BattleSetupStruct * enemies, struct SaveBlock2 * sav2, u32 heap_id)
diff --git a/arm9/src/unk_02024E64.c b/arm9/src/unk_02024E64.c
new file mode 100644
index 00000000..fc596418
--- /dev/null
+++ b/arm9/src/unk_02024E64.c
@@ -0,0 +1,62 @@
+#include "unk_02024E64.h"
+
+extern void FUN_020250A4(void *param0);
+extern void FUN_02025484(void *param0);
+
+THUMB_FUNC u32 FUN_02024E64()
+{
+ return 0x74C;
+}
+
+THUMB_FUNC void FUN_02024E6C(void *param0)
+{
+ MIi_CpuClearFast(0, param0, 0x74C);
+
+ FUN_020250A4(param0);
+
+ FUN_02025484(param0 + (7 << 8));
+
+ MIi_CpuClear16(0xFFFF, param0 + 0x724, 8);
+ MIi_CpuClear16(0xFFFF, param0 + 0x734, 0xb);
+}
+
+THUMB_FUNC void *FUN_02024EB4(struct SaveBlock2 *sav2)
+{
+ return SavArray_get(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2)
+{
+ return FUN_02022634(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024ECC(struct SaveBlock2 *sav2)
+{
+ return SavArray_get(sav2, 0xa);
+}
+
+THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2)
+{
+ void *res = SavArray_get(sav2, 0xa);
+ return res + (7 << 8);
+}
+
+THUMB_FUNC u16 *FUN_02024EE8(void *buf)
+{
+ return buf + 0x724;
+}
+
+THUMB_FUNC void FUN_02024EF4(u16 *buf, struct String *str)
+{
+ CopyStringToU16Array(str, buf + 0x392, 8);
+}
+
+THUMB_FUNC u16 *FUN_02024F0C(void *buf)
+{
+ return buf + 0x734;
+}
+
+THUMB_FUNC void FUN_02024F18(u16 *buf, struct String *str)
+{
+ CopyStringToU16Array(str, buf + 0x39A, 0xb);
+}
diff --git a/include/unk_02024E64.h b/include/unk_02024E64.h
new file mode 100644
index 00000000..b5cfaa6e
--- /dev/null
+++ b/include/unk_02024E64.h
@@ -0,0 +1,15 @@
+#include "global.h"
+#include "MI_memory.h"
+#include "save_block_2.h"
+#include "string16.h"
+
+THUMB_FUNC u32 FUN_02024E64();
+THUMB_FUNC void FUN_02024E6C(void *param0);
+THUMB_FUNC void *FUN_02024EB4(struct SaveBlock2 *sav2);
+THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2);
+THUMB_FUNC void *FUN_02024ECC(struct SaveBlock2 *sav2);
+THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2);
+THUMB_FUNC u16 *FUN_02024EE8(void *buf);
+THUMB_FUNC void FUN_02024EF4(u16 *buf, struct String *str);
+THUMB_FUNC u16 *FUN_02024F0C(void *buf);
+THUMB_FUNC void FUN_02024F18(u16 *buf, struct String *str);