summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-01 14:11:21 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-01 14:11:21 -0400
commit6725a429fe84f0b024695c4fa176f1c6f8b842e5 (patch)
tree6581587fd79b77a28bc18155965e0b3bbb1e5641
parent6d98675f561431883bf9907f600097bb860525f1 (diff)
debug_sub_815F2F4
-rw-r--r--asm/nakamura_debug_menu.s198
-rw-r--r--include/secret_base.h3
-rw-r--r--src/debug/nakamura_debug_menu.c56
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