diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-01 14:11:21 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-04-01 14:11:21 -0400 |
commit | 6725a429fe84f0b024695c4fa176f1c6f8b842e5 (patch) | |
tree | 6581587fd79b77a28bc18155965e0b3bbb1e5641 | |
parent | 6d98675f561431883bf9907f600097bb860525f1 (diff) |
debug_sub_815F2F4
-rw-r--r-- | asm/nakamura_debug_menu.s | 198 | ||||
-rw-r--r-- | include/secret_base.h | 3 | ||||
-rw-r--r-- | src/debug/nakamura_debug_menu.c | 56 |
3 files changed, 59 insertions, 198 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s index f479a209c..7e6feb25c 100644 --- a/asm/nakamura_debug_menu.s +++ b/asm/nakamura_debug_menu.s @@ -5,204 +5,6 @@ .text - thumb_func_start debug_sub_815F2F4 -debug_sub_815F2F4: - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, r9 - mov r5, r8 - push {r5, r6, r7} - add sp, sp, #0xfffffffc - bl CloseMenu - mov r7, #0x1 -._34: - lsl r1, r7, #0x2 - add r0, r1, r7 - lsl r2, r0, #0x5 - ldr r3, ._24 @ gSaveBlock1 - add r0, r2, r3 - ldr r5, ._24 + 4 @ 0x1a08 - add r0, r0, r5 - ldrb r0, [r0] - mov r9, r1 - add r1, r7, #1 - str r1, [sp] - cmp r0, #0 - beq ._18 @cond_branch - b ._19 -._18: - mov r5, #0x0 - ldr r6, ._24 + 8 @ gSaveBlock2 - add r4, r7, #0 - sub r4, r4, #0x46 - ldr r3, ._24 + 12 @ gSaveBlock1 -._21: - add r1, r5, r2 - add r1, r1, r3 - add r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0xff - beq ._20 @cond_branch - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x6 - bls ._21 @cond_branch -._20: - cmp r5, #0x7 - bne ._22 @cond_branch - add r0, r2, #6 - b ._23 -._25: - .align 2, 0 -._24: - .word gSaveBlock1 - .word 0x1a08 - .word gSaveBlock2 - .word gSaveBlock1+0x1a0a -._22: - add r0, r5, r2 -._23: - add r0, r0, r3 - strb r4, [r0] - ldr r1, ._35 @ gSaveBlock1 - ldr r2, ._35 + 4 @ 0x1a08 - add r2, r2, r1 - mov sl, r2 - mov r3, r9 - add r0, r3, r7 - lsl r6, r0, #0x5 - add r1, r6, r1 - ldr r5, ._35 + 4 @ 0x1a08 - add r5, r5, r1 - mov r8, r5 -._30: - bl Random - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x4b - bl __umodsi3 - lsl r0, r0, #0x10 - lsr r0, r0, #0xe - ldr r1, ._35 + 8 @ _843E424 - add r0, r0, r1 - ldrb r0, [r0] - mov r2, r8 - strb r0, [r2] - mov r5, #0x0 - cmp r5, r7 - bcs ._28 @cond_branch - mov r3, sl - ldrb r3, [r3] - cmp r0, r3 - beq ._28 @cond_branch - ldr r4, ._35 @ gSaveBlock1 - add r0, r6, r4 - ldr r2, ._35 + 4 @ 0x1a08 - add r3, r0, r2 -._29: - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r7 - bcs ._28 @cond_branch - lsl r0, r5, #0x2 - add r0, r0, r5 - lsl r0, r0, #0x5 - add r0, r0, r4 - add r0, r0, r2 - ldrb r1, [r3] - ldrb r0, [r0] - cmp r1, r0 - bne ._29 @cond_branch -._28: - cmp r5, r7 - bne ._30 @cond_branch - bl Random - mov r5, r9 - add r4, r5, r7 - lsl r4, r4, #0x5 - ldr r1, ._35 @ gSaveBlock1 - add r3, r4, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - mov r1, #0x1 - ldr r2, ._35 + 12 @ 0x1a09 - add r3, r3, r2 - and r0, r0, r1 - lsl r0, r0, #0x4 - ldrb r1, [r3] - mov r5, #0x11 - neg r5, r5 - add r2, r5, #0 - and r1, r1, r2 - orr r1, r1, r0 - strb r1, [r3] - mov r5, #0x0 - ldr r6, ._35 + 16 @ gSaveBlock1 -._31: - bl Random - add r1, r5, r4 - add r1, r1, r6 - strb r0, [r1] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x3 - bls ._31 @cond_branch - mov r5, #0x0 - mov r1, r9 - add r0, r1, r7 - lsl r4, r0, #0x5 - ldr r3, ._35 + 20 @ gSaveBlock1 - mov r2, #0x0 - add r6, r3, #0 - add r6, r6, #0x10 -._32: - add r1, r5, r4 - add r0, r1, r3 - strb r2, [r0] - add r1, r1, r6 - strb r2, [r1] - add r0, r5, #1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0xf - bls ._32 @cond_branch - add r0, r7, #0 - bl unref_sub_80BCD7C -._19: - ldr r2, [sp] - lsl r0, r2, #0x18 - lsr r7, r0, #0x18 - cmp r7, #0x13 - bhi ._33 @cond_branch - b ._34 -._33: - mov r0, #0x1 - add sp, sp, #0x4 - pop {r3, r4, r5} - mov r8, r3 - mov r9, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 -._36: - .align 2, 0 -._35: - .word gSaveBlock1 - .word 0x1a08 - .word _843E424 - .word 0x1a09 - .word gSaveBlock1+0x1a11 - .word gSaveBlock1+0x1a1a - - thumb_func_end debug_sub_815F2F4 - thumb_func_start debug_sub_815F470 debug_sub_815F470: push {r4, r5, r6, r7, lr} diff --git a/include/secret_base.h b/include/secret_base.h index a3fa22c05..7f60e0f79 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -20,5 +20,8 @@ u8 sub_80BCCA4(u8 secretBaseIndex); const u8 *GetSecretBaseTrainerLoseText(void); void sub_80BCF1C(u8 taskId); void sub_80BD674(void *playerRecords, u32 size, u8 c); +#if DEBUG +void unref_sub_80BCD7C(u8 secretBaseIndex); +#endif #endif // GUARD_SECRET_BASE_H diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c index 2045933f7..6d5a27a30 100644 --- a/src/debug/nakamura_debug_menu.c +++ b/src/debug/nakamura_debug_menu.c @@ -1,11 +1,13 @@ #if DEBUG #include "global.h" +#include "random.h" #include "palette.h" #include "main.h" #include "overworld.h" #include "start_menu.h" #include "party_menu.h" #include "choose_party.h" +#include "secret_base.h" #include "menu.h" typedef bool8 (*MenuFunc)(void); @@ -258,4 +260,58 @@ bool8 debug_sub_815F2B4(void) return TRUE; } +bool8 debug_sub_815F2F4(void) +{ + u8 i; + CloseMenu(); + + for (i = 1; i < 20; i++) + { + if (gSaveBlock1.secretBases[i].secretBaseId == 0) + { + u8 j; + + for (j = 0; j < 7; j++) + { + gSaveBlock1.secretBases[i].playerName[j] = gSaveBlock2.playerName[j]; + if (gSaveBlock1.secretBases[i].playerName[j] == EOS) + break; + } + + if (j == 7) + gSaveBlock1.secretBases[i].playerName[j - 1] = CHAR_A + i - 1; + else + gSaveBlock1.secretBases[i].playerName[j] = CHAR_A + i - 1; + + do + { + gSaveBlock1.secretBases[i].secretBaseId = _843E424[Random() % ARRAY_COUNT(_843E424)][0]; + + for (j = 0; j < i; j++) + { + if (gSaveBlock1.secretBases[i].secretBaseId == gSaveBlock1.secretBases[j].secretBaseId) + break; + } + } while (j != i); + + gSaveBlock1.secretBases[i].gender = Random() % 2; + + for (j = 0; j < 4; j++) + { + gSaveBlock1.secretBases[i].trainerId[j] = Random(); + } + + for (j = 0; j < 16; j++) + { + gSaveBlock1.secretBases[i].decorations[j] = 0; + gSaveBlock1.secretBases[i].decorationPos[j] = 0; + } + + unref_sub_80BCD7C(i); + } + } + + return TRUE; +} + #endif // DEBUG |