summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/nakamura_debug_menu.s305
-rw-r--r--src/debug/nakamura_debug_menu.c85
2 files changed, 80 insertions, 310 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s
index 6ddce1855..e9072f6dd 100644
--- a/asm/nakamura_debug_menu.s
+++ b/asm/nakamura_debug_menu.s
@@ -5,311 +5,6 @@
.text
- thumb_func_start debug_sub_815F62C
-debug_sub_815F62C:
- push {lr}
- ldr r1, ._59 @ _nakamuraData0
- mov r0, #0x0
- strb r0, [r1]
- ldr r1, ._59 + 4 @ gMenuCallback
- ldr r0, ._59 + 8 @ debug_sub_815F5C4
- str r0, [r1]
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0x13
- bl Menu_EraseWindowRect
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0xb
- mov r3, #0xb
- bl Menu_DrawStdWindowFrame
- bl debug_sub_815F4D8
- mov r0, #0x0
- pop {r1}
- bx r1
-._60:
- .align 2, 0
-._59:
- .word _nakamuraData0
- .word gMenuCallback
- .word debug_sub_815F5C4+1
-
- thumb_func_end debug_sub_815F62C
-
- thumb_func_start debug_sub_815F668
-debug_sub_815F668:
- push {r4, r5, r6, lr}
- ldr r0, ._61 @ _nakamuraData0
- ldrb r0, [r0]
- lsl r1, r0, #0x2
- add r1, r1, r0
- lsl r1, r1, #0x5
- ldr r0, ._61 + 4 @ gSaveBlock1
- add r1, r1, r0
- ldrb r4, [r1, #0x3]
- lsl r4, r4, #0x18
- ldrb r0, [r1, #0x2]
- lsl r0, r0, #0x10
- orr r4, r4, r0
- ldrb r0, [r1, #0x1]
- lsl r0, r0, #0x8
- orr r4, r4, r0
- ldrb r0, [r1]
- orr r4, r4, r0
- ldr r5, ._61 + 8 @ gStringVar1
- ldr r6, ._61 + 12 @ 0x186a0
- add r0, r4, #0
- add r1, r6, #0
- bl __udivsi3
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0x2
- mov r3, #0x5
- bl ConvertIntToDecimalStringN
- add r0, r5, #0
- mov r1, #0x2
- mov r2, #0x7
- bl Menu_PrintText
- add r0, r4, #0
- add r1, r6, #0
- bl __umodsi3
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0x2
- mov r3, #0x5
- bl ConvertIntToDecimalStringN
- add r0, r5, #0
- mov r1, #0x7
- mov r2, #0x7
- bl Menu_PrintText
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._62:
- .align 2, 0
-._61:
- .word _nakamuraData0
- .word gSaveBlock1+0x1a11
- .word gStringVar1
- .word 0x186a0
-
- thumb_func_end debug_sub_815F668
-
- thumb_func_start debug_sub_815F6E4
-debug_sub_815F6E4:
- push {r4, lr}
- mov r0, #0x2
- mov r1, #0x3
- mov r2, #0xb
- mov r3, #0x4
- bl Menu_BlankWindowRect
- ldr r4, ._63 @ gStringVar1
- ldr r0, ._63 + 4 @ _nakamuraData0
- ldrb r0, [r0]
- lsl r1, r0, #0x2
- add r1, r1, r0
- lsl r1, r1, #0x5
- ldr r0, ._63 + 8 @ gSaveBlock1
- add r1, r1, r0
- add r0, r4, #0
- mov r2, #0x7
- bl StringCopyN
- mov r1, #0xff
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #0x2
- mov r2, #0x3
- bl Menu_PrintText
- pop {r4}
- pop {r0}
- bx r0
-._64:
- .align 2, 0
-._63:
- .word gStringVar1
- .word _nakamuraData0
- .word gSaveBlock1+0x1a0a
-
- thumb_func_end debug_sub_815F6E4
-
- thumb_func_start debug_sub_815F72C
-debug_sub_815F72C:
- push {r4, r5, lr}
- mov r0, #0x2
- mov r1, #0x1
- mov r2, #0xb
- mov r3, #0xa
- bl Menu_BlankWindowRect
- ldr r4, ._66 @ gStringVar1
- ldr r5, ._66 + 4 @ _nakamuraData0
- ldrb r1, [r5]
- add r0, r4, #0
- mov r2, #0x0
- mov r3, #0x2
- bl ConvertIntToDecimalStringN
- add r0, r4, #0
- mov r1, #0x2
- mov r2, #0x1
- bl Menu_PrintText
- ldr r2, ._66 + 8 @ gSaveBlock1
- ldrb r1, [r5]
- lsl r0, r1, #0x2
- add r0, r0, r1
- lsl r0, r0, #0x5
- add r0, r0, r2
- ldr r1, ._66 + 12 @ 0x1a08
- add r0, r0, r1
- ldrb r0, [r0]
- cmp r0, #0
- beq ._65 @cond_branch
- bl debug_sub_815F6E4
- bl debug_sub_815F668
-._65:
- pop {r4, r5}
- pop {r0}
- bx r0
-._67:
- .align 2, 0
-._66:
- .word gStringVar1
- .word _nakamuraData0
- .word gSaveBlock1
- .word 0x1a08
-
- thumb_func_end debug_sub_815F72C
-
- thumb_func_start debug_sub_815F788
-debug_sub_815F788:
- push {lr}
- mov r0, #0x2
- mov r1, #0x5
- mov r2, #0xb
- mov r3, #0x6
- bl Menu_BlankWindowRect
- ldr r0, ._68 @ Str_843E574
- ldr r1, ._68 + 4 @ _nakamuraData2
- ldrb r1, [r1]
- add r1, r1, #0x2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov r2, #0x5
- bl Menu_PrintText
- pop {r0}
- bx r0
-._69:
- .align 2, 0
-._68:
- .word Str_843E574
- .word _nakamuraData2
-
- thumb_func_end debug_sub_815F788
-
- thumb_func_start debug_sub_815F7B4
-debug_sub_815F7B4:
- push {lr}
- ldr r0, ._72 @ _nakamuraData1
- ldrb r0, [r0]
- cmp r0, #0
- beq ._70 @cond_branch
- mov r0, #0xb
- mov r1, #0x1
- mov r2, #0xb
- mov r3, #0x2
- bl Menu_BlankWindowRect
- b ._71
-._73:
- .align 2, 0
-._72:
- .word _nakamuraData1
-._70:
- ldr r0, ._74 @ _nakamuraData3
- ldrb r0, [r0]
- lsl r0, r0, #0x1
- ldr r1, ._74 + 4 @ Str_843E576
- add r0, r0, r1
- mov r1, #0xb
- mov r2, #0x1
- bl Menu_PrintText
-._71:
- pop {r0}
- bx r0
-._75:
- .align 2, 0
-._74:
- .word _nakamuraData3
- .word Str_843E576
-
- thumb_func_end debug_sub_815F7B4
-
- thumb_func_start debug_sub_815F7F0
-debug_sub_815F7F0:
- push {r4, r5, lr}
- ldr r1, ._78 @ _nakamuraData0
- ldrb r2, [r1]
- lsl r1, r2, #0x2
- add r1, r1, r2
- lsl r1, r1, #0x5
- ldr r2, ._78 + 4 @ gSaveBlock1
- add r3, r1, r2
- ldrb r1, [r3, #0x3]
- lsl r2, r1, #0x18
- ldrb r1, [r3, #0x2]
- lsl r1, r1, #0x10
- orr r2, r2, r1
- ldrb r1, [r3, #0x1]
- lsl r1, r1, #0x8
- orr r2, r2, r1
- ldrb r1, [r3]
- orr r2, r2, r1
- lsl r0, r0, #0x18
- asr r1, r0, #0x18
- mov r4, #0x9
- ldr r0, ._78 + 8 @ _nakamuraData2
- ldrb r0, [r0]
- cmp r4, r0
- ble ._76 @cond_branch
- add r5, r0, #0
-._77:
- lsl r0, r1, #0x2
- add r0, r0, r1
- lsl r1, r0, #0x1
- lsl r0, r4, #0x18
- mov r4, #0xff
- lsl r4, r4, #0x18
- add r0, r0, r4
- lsr r4, r0, #0x18
- asr r0, r0, #0x18
- cmp r0, r5
- bgt ._77 @cond_branch
-._76:
- add r2, r2, r1
- lsr r0, r2, #0x18
- strb r0, [r3, #0x3]
- mov r0, #0xff
- lsl r0, r0, #0x10
- and r0, r0, r2
- lsr r0, r0, #0x10
- strb r0, [r3, #0x2]
- mov r0, #0xff
- lsl r0, r0, #0x8
- and r0, r0, r2
- lsr r0, r0, #0x8
- strb r0, [r3, #0x1]
- strb r2, [r3]
- bl debug_sub_815F668
- pop {r4, r5}
- pop {r0}
- bx r0
-._79:
- .align 2, 0
-._78:
- .word _nakamuraData0
- .word gSaveBlock1+0x1a11
- .word _nakamuraData2
-
- thumb_func_end debug_sub_815F7F0
-
thumb_func_start debug_sub_815F86C
debug_sub_815F86C:
push {r4, r5, r6, lr}
diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c
index 623294254..38026b546 100644
--- a/src/debug/nakamura_debug_menu.c
+++ b/src/debug/nakamura_debug_menu.c
@@ -158,11 +158,13 @@ const u8 Str_843E556[] = _(
"♀4\n"
"♀5");
const u8 Str_843E574[] = _("ー");
-const u8 Str_843E576[] = _("あ");
-const u8 Str_843E578[] = _("ア");
-const u8 Str_843E57A[] = _("A");
-const u8 Str_843E57C[] = _("a");
-const u8 Str_843E57E[] = _("0");
+const u8 Str_843E576[][2] = {
+ _("あ"),
+ _("ア"),
+ _("A"),
+ _("a"),
+ _("0")
+};
const u8 Str_843E580[] = _(
"ADD\n"
"DEL\n"
@@ -393,4 +395,77 @@ bool8 debug_sub_815F5C4(void)
return FALSE;
}
+bool8 debug_sub_815F62C(void)
+{
+ _nakamuraData0 = 0;
+ gMenuCallback = debug_sub_815F5C4;
+ Menu_EraseWindowRect(0, 0, 29, 19);
+ Menu_DrawStdWindowFrame(0, 0, 11, 11);
+ debug_sub_815F4D8();
+ return FALSE;
+}
+
+void debug_sub_815F668(void)
+{
+ u8 * otIdPtr = gSaveBlock1.secretBases[_nakamuraData0].trainerId;
+ u32 otId = (otIdPtr[3] << 24) | (otIdPtr[2] << 16) | (otIdPtr[1] << 8) | (otIdPtr[0] << 0);
+ ConvertIntToDecimalStringN(gStringVar1, otId / 100000, STR_CONV_MODE_LEADING_ZEROS, 5);
+ Menu_PrintText(gStringVar1, 2, 7);
+ ConvertIntToDecimalStringN(gStringVar1, otId % 100000, STR_CONV_MODE_LEADING_ZEROS, 5);
+ Menu_PrintText(gStringVar1, 7, 7);
+}
+
+void debug_sub_815F6E4(void)
+{
+ Menu_BlankWindowRect(2, 3, 11, 4);
+ *StringCopyN(gStringVar1, gSaveBlock1.secretBases[_nakamuraData0].playerName, 7) = EOS;
+ Menu_PrintText(gStringVar1, 2, 3);
+}
+
+void debug_sub_815F72C(void)
+{
+ Menu_BlankWindowRect(2, 1, 11, 10);
+
+ ConvertIntToDecimalStringN(gStringVar1, _nakamuraData0, STR_CONV_MODE_LEFT_ALIGN, 2);
+ Menu_PrintText(gStringVar1, 2, 1);
+
+ if (gSaveBlock1.secretBases[_nakamuraData0].secretBaseId != 0)
+ {
+ debug_sub_815F6E4();
+ debug_sub_815F668();
+ }
+}
+
+void debug_sub_815F788(void)
+{
+ Menu_BlankWindowRect(2, 5, 11, 6);
+ Menu_PrintText(Str_843E574, _nakamuraData2 + 2, 5);
+}
+
+void debug_sub_815F7B4(void)
+{
+ if (_nakamuraData1)
+ Menu_BlankWindowRect(11, 1, 11, 2);
+ else
+ Menu_PrintText(Str_843E576[_nakamuraData3], 11, 1);
+}
+
+void debug_sub_815F7F0(s8 a0)
+{
+ u8 * otIdPtr = gSaveBlock1.secretBases[_nakamuraData0].trainerId;
+ u32 otId = (otIdPtr[3] << 24) | (otIdPtr[2] << 16) | (otIdPtr[1] << 8) | (otIdPtr[0] << 0);
+ s8 r4;
+ int r1 = a0;
+
+ for (r4 = 9; r4 > _nakamuraData2; r4--)
+ r1 *= 10;
+
+ otId += r1;
+ otIdPtr[3] = (otId & 0xFF000000) >> 24;
+ otIdPtr[2] = (otId & 0x00FF0000) >> 16;
+ otIdPtr[1] = (otId & 0x0000FF00) >> 8;
+ otIdPtr[0] = (otId & 0x000000FF) >> 0;
+ debug_sub_815F668();
+}
+
#endif // DEBUG