diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-06 22:18:52 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-06 22:18:52 -0400 |
commit | 9a529d12a955a605810154ea0eb242860db9304e (patch) | |
tree | 2df500dc1b73344591691783ca6c7a6ff583f795 | |
parent | 2b09707c406245214572abb9f4bc81ee408e5be5 (diff) |
debug_sub_813C5B4
-rw-r--r-- | asm/unk_debug_menu_3.s | 68 | ||||
-rw-r--r-- | data/debug_menu_3.s | 1 | ||||
-rw-r--r-- | include/berry.h | 2 | ||||
-rw-r--r-- | src/berry.c | 2 | ||||
-rw-r--r-- | src/debug/unk_debug_menu_3.c | 58 |
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 |