summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-06 22:18:52 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-06 22:18:52 -0400
commit9a529d12a955a605810154ea0eb242860db9304e (patch)
tree2df500dc1b73344591691783ca6c7a6ff583f795
parent2b09707c406245214572abb9f4bc81ee408e5be5 (diff)
debug_sub_813C5B4
-rw-r--r--asm/unk_debug_menu_3.s68
-rw-r--r--data/debug_menu_3.s1
-rw-r--r--include/berry.h2
-rw-r--r--src/berry.c2
-rw-r--r--src/debug/unk_debug_menu_3.c58
5 files changed, 48 insertions, 83 deletions
diff --git a/asm/unk_debug_menu_3.s b/asm/unk_debug_menu_3.s
index 4463c680b..d501950d7 100644
--- a/asm/unk_debug_menu_3.s
+++ b/asm/unk_debug_menu_3.s
@@ -5,74 +5,6 @@
.text
- thumb_func_start debug_sub_813C5B4
-debug_sub_813C5B4:
- push {r4, r5, r6, r7, lr}
- add r4, r0, #0
- ldr r7, ._23 @ gSaveBlock1
- ldr r0, ._23 + 4 @ gUnknown_Debug_845DDD6
- ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2
- sub r0, r0, r1
- add r6, r0, r4
- ldr r0, ._23 + 12 @ gUnknown_Debug_845E306
- sub r5, r0, r1
- ldr r0, ._23 + 16 @ Str_842E23C
- mov r1, #0x0
- mov r2, #0x0
- bl debug_sub_80C2C18
- mov r2, #0x0
- ldr r3, ._23 + 20 @ 0xfff
- mov r1, #0x0
-._19:
- add r0, r4, r2
- strb r1, [r0]
- add r2, r2, #0x1
- cmp r2, r3
- ble ._19 @cond_branch
- mov r2, #0x0
- cmp r2, r5
- bcs ._20 @cond_branch
- ldr r3, ._23 + 8 @ gUnknown_Debug_845DDB2
-._21:
- add r0, r4, r2
- add r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- add r2, r2, #0x1
- cmp r2, r5
- bcc ._21 @cond_branch
-._20:
- mov r2, #0x0
- ldr r3, ._23 + 24 @ 0x52f
-._22:
- add r0, r6, r2
- add r1, r7, r2
- ldrb r1, [r1]
- strb r1, [r0]
- add r2, r2, #0x1
- cmp r2, r3
- bls ._22 @cond_branch
- bl ClearEnigmaBerries
- ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2
- add r0, r4, #0
- bl unref_sub_81261B4
- add r0, r5, #0
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-._24:
- .align 2, 0
-._23:
- .word gSaveBlock1+0x3160
- .word gUnknown_Debug_845DDD6
- .word gUnknown_Debug_845DDB2
- .word gUnknown_Debug_845E306
- .word Str_842E23C
- .word 0xfff
- .word 0x52f
-
- thumb_func_end debug_sub_813C5B4
-
thumb_func_start debug_sub_813C638
debug_sub_813C638:
push {r4, r5, r6, lr}
diff --git a/data/debug_menu_3.s b/data/debug_menu_3.s
index e2021c97d..be2966756 100644
--- a/data/debug_menu_3.s
+++ b/data/debug_menu_3.s
@@ -131,6 +131,7 @@ gUnknown_Debug_845DDD6::
.space 0x530
_0845DDD0End:
.size _0845DDD0, _0845DDD0End - _0845DDD0
+gUnknown_Debug_845DDB2End::
gUnknown_Debug_845E306::
me_checkcompat gUnknown_Debug_845E306, 0x4, 0x4, 0x4, 0x80
diff --git a/include/berry.h b/include/berry.h
index a7ac5ba94..7c8f5e5fd 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -23,6 +23,8 @@ enum
BERRY_STAGE_SPARKLING = 0xFF,
};
+void ClearEnigmaBerries(void);
+void debug_sub_80C2C18(const u8 *name, u8 holdEffect, u8 holdEffectParam);
void SetEnigmaBerry(u8 *src);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
diff --git a/src/berry.c b/src/berry.c
index 9313c458b..16b5b2b22 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -1085,7 +1085,7 @@ extern u8 gUnknown_Debug_839B6CE[];
static const u8 gUnknown_Debug_083F7F84[] = _("そとから きた きのみ");
static const u8 gUnknown_Debug_083F7F90[] = _("ただいま かいはつちゅう");
-void debug_sub_80C2C18(u8 *name, u8 holdEffect, u8 holdEffectParam)
+void debug_sub_80C2C18(const u8 *name, u8 holdEffect, u8 holdEffectParam)
{
s32 i;
diff --git a/src/debug/unk_debug_menu_3.c b/src/debug/unk_debug_menu_3.c
index 4b40927b9..7e63abbd3 100644
--- a/src/debug/unk_debug_menu_3.c
+++ b/src/debug/unk_debug_menu_3.c
@@ -1,14 +1,15 @@
-#if DEBUG
-
#include "global.h"
#include "debug.h"
#include "constants/items.h"
#include "mystery_event_script.h"
+#include "berry.h"
+
+#if DEBUG
extern const u8 gUnknown_Debug_845DAE1[];
extern const u8 gUnknown_Debug_845DAE1End[];
-size_t debug_sub_813C404(void * dest)
+size_t debug_sub_813C404(u8 * dest)
{
size_t size = gUnknown_Debug_845DAE1End - gUnknown_Debug_845DAE1;
memcpy(dest, gUnknown_Debug_845DAE1, size);
@@ -19,7 +20,7 @@ size_t debug_sub_813C404(void * dest)
extern const u8 gUnknown_Debug_845E3E0[];
extern const u8 gUnknown_Debug_845E3E0End[];
-size_t debug_sub_813C430(void * dest)
+size_t debug_sub_813C430(u8 * dest)
{
size_t size = gUnknown_Debug_845E3E0End - gUnknown_Debug_845E3E0;
memcpy(dest, gUnknown_Debug_845E3E0, size);
@@ -30,7 +31,7 @@ size_t debug_sub_813C430(void * dest)
extern const u8 gUnknown_Debug_845E422[];
extern const u8 gUnknown_Debug_845E422End[];
-size_t debug_sub_813C45C(void * dest)
+size_t debug_sub_813C45C(u8 * dest)
{
size_t size = gUnknown_Debug_845E422End - gUnknown_Debug_845E422;
memcpy(dest, gUnknown_Debug_845E422, size);
@@ -41,7 +42,7 @@ size_t debug_sub_813C45C(void * dest)
extern const u8 gUnknown_Debug_845E402[];
extern const u8 gUnknown_Debug_845E402End[];
-size_t debug_sub_813C488(void * dest)
+size_t debug_sub_813C488(u8 * dest)
{
size_t size = gUnknown_Debug_845E402End - gUnknown_Debug_845E402;
memcpy(dest, gUnknown_Debug_845E402, size);
@@ -52,7 +53,7 @@ size_t debug_sub_813C488(void * dest)
extern const u8 gUnknown_Debug_845E606[];
extern const u8 gUnknown_Debug_845E606End[];
-size_t debug_sub_813C4B4(void * dest)
+size_t debug_sub_813C4B4(u8 * dest)
{
size_t size = gUnknown_Debug_845E606End - gUnknown_Debug_845E606;
memcpy(dest, gUnknown_Debug_845E606, size);
@@ -62,7 +63,7 @@ size_t debug_sub_813C4B4(void * dest)
extern const u8 gUnknown_Debug_845E619[];
extern const u8 gUnknown_Debug_845E619End[];
-size_t debug_sub_813C4D4(void * dest)
+size_t debug_sub_813C4D4(u8 * dest)
{
size_t size = gUnknown_Debug_845E619End - gUnknown_Debug_845E619;
memcpy(dest, gUnknown_Debug_845E619, size);
@@ -73,7 +74,7 @@ size_t debug_sub_813C4D4(void * dest)
extern const u8 gUnknown_Debug_845E712[];
extern const u8 gUnknown_Debug_845E712End[];
-size_t debug_sub_813C500(void * dest)
+size_t debug_sub_813C500(u8 * dest)
{
size_t size = gUnknown_Debug_845E712End - gUnknown_Debug_845E712;
memcpy(dest, gUnknown_Debug_845E712, size);
@@ -85,7 +86,7 @@ extern const u8 gUnknown_Debug_845E797[];
extern const u8 gUnknown_Debug_845E797End[];
extern const u8 gUnknown_Debug_845E7B5[];
-size_t debug_sub_813C52C(void * dest, u16 itemId)
+size_t debug_sub_813C52C(u8 * dest, u16 itemId)
{
u8 * ptr;
size_t size = gUnknown_Debug_845E797End - gUnknown_Debug_845E797;
@@ -98,24 +99,53 @@ size_t debug_sub_813C52C(void * dest, u16 itemId)
return size;
}
-size_t debug_sub_813C580(void * dest)
+size_t debug_sub_813C580(u8 * dest)
{
return debug_sub_813C52C(dest, ITEM_POTION);
}
-size_t debug_sub_813C58C(void * dest)
+size_t debug_sub_813C58C(u8 * dest)
{
return debug_sub_813C52C(dest, ITEM_POKE_BALL);
}
-size_t debug_sub_813C598(void * dest)
+size_t debug_sub_813C598(u8 * dest)
{
return debug_sub_813C52C(dest, ITEM_CHERI_BERRY);
}
-size_t debug_sub_813C5A4(void * dest)
+size_t debug_sub_813C5A4(u8 * dest)
{
return debug_sub_813C52C(dest, ITEM_TM01_FOCUS_PUNCH);
}
+extern const u8 gUnknown_Debug_845DDB2[];
+extern const u8 gUnknown_Debug_845DDB2End[];
+extern const u8 gUnknown_Debug_845DDD6[];
+
+extern const u8 Str_842E23C[]; //static const u8 Str_842E23C[] = _("ガイブ");
+
+size_t debug_sub_813C5B4(u8 * dest)
+{
+ u8 * saveBerry = (u8 *)&gSaveBlock1.enigmaBerry;
+ u8 * berry = (u8 *)(dest - gUnknown_Debug_845DDB2 + gUnknown_Debug_845DDD6);
+ size_t size = gUnknown_Debug_845DDB2End - gUnknown_Debug_845DDB2;
+ int i;
+
+ debug_sub_80C2C18(Str_842E23C, 0, 0);
+
+ for (i = 0; i < 0x1000; i++)
+ dest[i] = 0;
+
+ for (i = 0; i < size; i++)
+ dest[i] = gUnknown_Debug_845DDB2[i];
+
+ for (i = 0; i < sizeof(struct EnigmaBerry); i++)
+ berry[i] = saveBerry[i];
+
+ ClearEnigmaBerries();
+ unref_sub_81261B4(dest, gUnknown_Debug_845DDB2);
+ return size;
+}
+
#endif // DEBUG