summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-01 19:03:19 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-01 19:03:19 -0400
commitaf04028ecebcc5631987699b399f745550794db2 (patch)
tree61bc7322fdcae98eae0d0adce7b67fb0bf57f9fe
parent27eba7b20cf25eb8e49a72ec72e1b7564f543439 (diff)
through (nonmatching) debug_sub_815F930
-rw-r--r--asm/nakamura_debug_menu.s260
-rw-r--r--src/debug/nakamura_debug_menu.c269
2 files changed, 266 insertions, 263 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s
index e9072f6dd..408fa7a4e 100644
--- a/asm/nakamura_debug_menu.s
+++ b/asm/nakamura_debug_menu.s
@@ -5,266 +5,6 @@
.text
- thumb_func_start debug_sub_815F86C
-debug_sub_815F86C:
- push {r4, r5, r6, lr}
- lsl r0, r0, #0x18
- ldr r1, ._84 @ _nakamuraData0
- ldrb r2, [r1]
- lsl r1, r2, #0x2
- add r1, r1, r2
- lsl r1, r1, #0x5
- ldr r2, ._84 + 4 @ gSaveBlock1
- add r5, r1, r2
- mov r2, #0x0
- mov r3, #0x0
- lsr r6, r0, #0x18
- asr r0, r0, #0x18
- cmp r0, #0x64
- bne ._80 @cond_branch
- ldr r0, ._84 + 8 @ _nakamuraData2
- ldrb r1, [r0]
- cmp r1, #0x6
- bhi ._100 @cond_branch
- mov r2, #0xff
-._82:
- add r0, r5, r1
- strb r2, [r0]
- add r0, r1, #1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- cmp r1, #0x6
- bls ._82 @cond_branch
- b ._100
-._85:
- .align 2, 0
-._84:
- .word _nakamuraData0
- .word gSaveBlock1+0x1a0a
- .word _nakamuraData2
-._80:
- ldr r0, ._87 @ _nakamuraData3
- ldrb r0, [r0]
- cmp r0, #0x4
- bhi ._98 @cond_branch
- lsl r0, r0, #0x2
- ldr r1, ._87 + 4 @
- add r0, r0, r1
- ldr r0, [r0]
- mov pc, r0
-._88:
- .align 2, 0
-._87:
- .word _nakamuraData3
- .word ._89
-._89:
- .word ._90
- .word ._91
- .word ._92
- .word ._93
- .word ._94
-._90:
- mov r3, #0x1
- mov r2, #0x50
- b ._98
-._91:
- mov r3, #0x51
- mov r2, #0xa0
- b ._98
-._92:
- mov r3, #0xbb
- mov r2, #0xd4
- b ._98
-._93:
- mov r3, #0xd5
- mov r2, #0xee
- b ._98
-._94:
- mov r3, #0xa1
- mov r2, #0xaa
-._98:
- ldr r4, ._101 @ _nakamuraData2
- ldrb r1, [r4]
- add r1, r5, r1
- ldrb r0, [r1]
- add r0, r0, r6
- strb r0, [r1]
- ldrb r0, [r4]
- add r1, r5, r0
- ldrb r0, [r1]
- cmp r0, r3
- bcs ._99 @cond_branch
- strb r2, [r1]
-._99:
- ldrb r0, [r4]
- add r1, r5, r0
- ldrb r0, [r1]
- cmp r0, r2
- bls ._100 @cond_branch
- strb r3, [r1]
-._100:
- bl debug_sub_815F6E4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._102:
- .align 2, 0
-._101:
- .word _nakamuraData2
-
- thumb_func_end debug_sub_815F86C
-
- thumb_func_start debug_sub_815F930
-debug_sub_815F930:
- push {r4, r5, lr}
- ldr r0, ._107 @ _nakamuraData1
- ldrb r2, [r0]
- mov r4, #0xa
- cmp r2, #0
- bne ._103 @cond_branch
- mov r4, #0x7
-._103:
- ldr r5, ._107 + 4 @ gMain
- ldrh r1, [r5, #0x30]
- mov r0, #0x40
- and r0, r0, r1
- cmp r0, #0
- beq ._104 @cond_branch
- cmp r2, #0
- beq ._105 @cond_branch
- mov r0, #0x1
- bl debug_sub_815F7F0
- b ._136
-._108:
- .align 2, 0
-._107:
- .word _nakamuraData1
- .word gMain
-._105:
- mov r0, #0x1
- b ._113
-._104:
- mov r0, #0x80
- and r0, r0, r1
- cmp r0, #0
- beq ._110 @cond_branch
- cmp r2, #0
- beq ._111 @cond_branch
- mov r0, #0x1
- neg r0, r0
- bl debug_sub_815F7F0
- b ._136
-._111:
- mov r0, #0x1
- neg r0, r0
- b ._113
-._110:
- mov r0, #0x20
- and r0, r0, r1
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- cmp r3, #0
- beq ._114 @cond_branch
- ldr r1, ._117 @ _nakamuraData2
- ldrb r0, [r1]
- cmp r0, #0
- bne ._115 @cond_branch
- sub r0, r4, #1
- b ._116
-._118:
- .align 2, 0
-._117:
- .word _nakamuraData2
-._115:
- sub r0, r0, #0x1
-._116:
- strb r0, [r1]
-._125:
- bl debug_sub_815F788
- b ._136
-._114:
- mov r0, #0x10
- and r0, r0, r1
- cmp r0, #0
- beq ._120 @cond_branch
- ldr r2, ._123 @ _nakamuraData2
- ldrb r1, [r2]
- sub r0, r4, #1
- cmp r1, r0
- bne ._121 @cond_branch
- strb r3, [r2]
- b ._125
-._124:
- .align 2, 0
-._123:
- .word _nakamuraData2
-._121:
- add r0, r1, #1
- strb r0, [r2]
- b ._125
-._120:
- ldrh r1, [r5, #0x2e]
- mov r0, #0x4
- and r0, r0, r1
- cmp r0, #0
- beq ._126 @cond_branch
- cmp r2, #0
- bne ._127 @cond_branch
- ldr r4, ._129 @ _nakamuraData3
- ldrb r0, [r4]
- add r0, r0, #0x1
- mov r1, #0x5
- bl __modsi3
- strb r0, [r4]
-._127:
- bl debug_sub_815F7B4
- b ._136
-._130:
- .align 2, 0
-._129:
- .word _nakamuraData3
-._126:
- mov r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._131 @cond_branch
- mov r0, #0x2
- mov r1, #0x5
- mov r2, #0xb
- mov r3, #0x6
- bl Menu_BlankWindowRect
- mov r0, #0xb
- mov r1, #0x1
- mov r2, #0xb
- mov r3, #0x2
- bl Menu_BlankWindowRect
- ldr r1, ._133 @ gMenuCallback
- ldr r0, ._133 + 4 @ debug_sub_815FA38
- str r0, [r1]
- b ._136
-._134:
- .align 2, 0
-._133:
- .word gMenuCallback
- .word debug_sub_815FA38+1
-._131:
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq ._136 @cond_branch
- cmp r2, #0
- bne ._136 @cond_branch
- mov r0, #0x64
-._113:
- bl debug_sub_815F86C
-._136:
- mov r0, #0x0
- pop {r4, r5}
- pop {r1}
- bx r1
-
- thumb_func_end debug_sub_815F930
-
thumb_func_start debug_sub_815FA38
debug_sub_815FA38:
push {r4, lr}
diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c
index 38026b546..959b9eae3 100644
--- a/src/debug/nakamura_debug_menu.c
+++ b/src/debug/nakamura_debug_menu.c
@@ -32,13 +32,14 @@ asm(".global _nakamuraStatic0");
asm(".global _nakamuraStatic18");
bool8 debug_sub_815F214(void);
-bool8 debug_sub_815FC54(void);
bool8 debug_sub_815F2B4(void);
-bool8 debug_sub_815FC94(void);
-bool8 debug_sub_815FB1C(void);
bool8 debug_sub_815F2F4(void);
bool8 debug_sub_815F62C(void);
+bool8 debug_sub_815FA38(void);
+bool8 debug_sub_815FB1C(void);
bool8 debug_sub_815FBE8(void);
+bool8 debug_sub_815FC54(void);
+bool8 debug_sub_815FC94(void);
bool8 debug_sub_815FE1C(void);
bool8 debug_sub_8160D98(void);
@@ -468,4 +469,266 @@ void debug_sub_815F7F0(s8 a0)
debug_sub_815F668();
}
+void debug_sub_815F86C(s8 a0)
+{
+ u8 * namePtr = gSaveBlock1.secretBases[_nakamuraData0].playerName;
+ u8 r2 = 0;
+ u8 r3 = 0;
+ u8 i;
+
+ if (a0 == 100)
+ {
+ for (i = _nakamuraData2; i < 7; i++)
+ {
+ namePtr[i] = EOS;
+ }
+ }
+ else
+ {
+ switch (_nakamuraData3)
+ {
+ case 0:
+ r3 = 1;
+ r2 = 80;
+ break;
+ case 1:
+ r3 = 81;
+ r2 = 160;
+ break;
+ case 2:
+ r3 = CHAR_A;
+ r2 = CHAR_Z;
+ break;
+ case 3:
+ r3 = CHAR_a;
+ r2 = CHAR_z;
+ break;
+ case 4:
+ r3 = CHAR_0;
+ r2 = CHAR_0 + 9;
+ break;
+ }
+
+ namePtr[_nakamuraData2] += a0;
+ if (namePtr[_nakamuraData2] < r3)
+ namePtr[_nakamuraData2] = r2;
+ if (namePtr[_nakamuraData2] > r2)
+ namePtr[_nakamuraData2] = r3;
+ }
+ debug_sub_815F6E4();
+}
+
+#ifdef NONMATCHING
+bool8 debug_sub_815F930(void)
+{
+ u32 r4 = _nakamuraData1 == 0 ? 7 : 10;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (_nakamuraData1)
+ debug_sub_815F7F0(1);
+ else
+ debug_sub_815F86C(1);
+ }
+
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (_nakamuraData1)
+ debug_sub_815F7F0(-1);
+ else
+ debug_sub_815F86C(-1);
+ }
+
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (_nakamuraData2 == 0)
+ _nakamuraData2 = r4 - 1;
+ else
+ _nakamuraData2--;
+ debug_sub_815F788();
+ }
+
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (_nakamuraData2 == r4 - 1)
+ _nakamuraData2 = 0;
+ else
+ _nakamuraData2++;
+ debug_sub_815F788();
+ }
+
+ else if (gMain.newKeys & SELECT_BUTTON)
+ {
+ if (_nakamuraData1 == 0)
+ _nakamuraData3 = (_nakamuraData3 + 1) % 5;
+ debug_sub_815F7B4();
+ }
+
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ Menu_BlankWindowRect(2, 5, 11, 6);
+ Menu_BlankWindowRect(11, 1, 11, 2);
+ gMenuCallback = debug_sub_815FA38;
+ }
+
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ if (_nakamuraData1 == 0)
+ debug_sub_815F86C(100);
+ }
+
+ return FALSE;
+}
+#else
+__attribute__((naked)) bool8 debug_sub_815F930(void)
+{
+ asm("\tpush\t{r4, r5, lr}\n"
+ "\tldr\tr0, ._107 @ _nakamuraData1\n"
+ "\tldrb\tr2, [r0]\n"
+ "\tmov\tr4, #0xa\n"
+ "\tcmp\tr2, #0\n"
+ "\tbne\t._103\t@cond_branch\n"
+ "\tmov\tr4, #0x7\n"
+ "._103:\n"
+ "\tldr\tr5, ._107 + 4 @ gMain\n"
+ "\tldrh\tr1, [r5, #0x30]\n"
+ "\tmov\tr0, #0x40\n"
+ "\tand\tr0, r0, r1\n"
+ "\tcmp\tr0, #0\n"
+ "\tbeq\t._104\t@cond_branch\n"
+ "\tcmp\tr2, #0\n"
+ "\tbeq\t._105\t@cond_branch\n"
+ "\tmov\tr0, #0x1\n"
+ "\tbl\tdebug_sub_815F7F0\n"
+ "\tb\t._136\n"
+ "._108:\n"
+ "\t.align\t2, 0\n"
+ "._107:\n"
+ "\t.word\t_nakamuraData1\n"
+ "\t.word\tgMain\n"
+ "._105:\n"
+ "\tmov\tr0, #0x1\n"
+ "\tb\t._113\n"
+ "._104:\n"
+ "\tmov\tr0, #0x80\n"
+ "\tand\tr0, r0, r1\n"
+ "\tcmp\tr0, #0\n"
+ "\tbeq\t._110\t@cond_branch\n"
+ "\tcmp\tr2, #0\n"
+ "\tbeq\t._111\t@cond_branch\n"
+ "\tmov\tr0, #0x1\n"
+ "\tneg\tr0, r0\n"
+ "\tbl\tdebug_sub_815F7F0\n"
+ "\tb\t._136\n"
+ "._111:\n"
+ "\tmov\tr0, #0x1\n"
+ "\tneg\tr0, r0\n"
+ "\tb\t._113\n"
+ "._110:\n"
+ "\tmov\tr0, #0x20\n"
+ "\tand\tr0, r0, r1\n"
+ "\tlsl\tr0, r0, #0x10\n"
+ "\tlsr\tr3, r0, #0x10\n"
+ "\tcmp\tr3, #0\n"
+ "\tbeq\t._114\t@cond_branch\n"
+ "\tldr\tr1, ._117 @ _nakamuraData2\n"
+ "\tldrb\tr0, [r1]\n"
+ "\tcmp\tr0, #0\n"
+ "\tbne\t._115\t@cond_branch\n"
+ "\tsub\tr0, r4, #1\n"
+ "\tb\t._116\n"
+ "._118:\n"
+ "\t.align\t2, 0\n"
+ "._117:\n"
+ "\t.word\t_nakamuraData2\n"
+ "._115:\n"
+ "\tsub\tr0, r0, #0x1\n"
+ "._116:\n"
+ "\tstrb\tr0, [r1]\n"
+ "._125:\n"
+ "\tbl\tdebug_sub_815F788\n"
+ "\tb\t._136\n"
+ "._114:\n"
+ "\tmov\tr0, #0x10\n"
+ "\tand\tr0, r0, r1\n"
+ "\tcmp\tr0, #0\n"
+ "\tbeq\t._120\t@cond_branch\n"
+ "\tldr\tr2, ._123 @ _nakamuraData2\n"
+ "\tldrb\tr1, [r2]\n"
+ "\tsub\tr0, r4, #1\n"
+ "\tcmp\tr1, r0\n"
+ "\tbne\t._121\t@cond_branch\n"
+ "\tstrb\tr3, [r2]\n"
+ "\tb\t._125\n"
+ "._124:\n"
+ "\t.align\t2, 0\n"
+ "._123:\n"
+ "\t.word\t_nakamuraData2\n"
+ "._121:\n"
+ "\tadd\tr0, r1, #1\n"
+ "\tstrb\tr0, [r2]\n"
+ "\tb\t._125\n"
+ "._120:\n"
+ "\tldrh\tr1, [r5, #0x2e]\n"
+ "\tmov\tr0, #0x4\n"
+ "\tand\tr0, r0, r1\n"
+ "\tcmp\tr0, #0\n"
+ "\tbeq\t._126\t@cond_branch\n"
+ "\tcmp\tr2, #0\n"
+ "\tbne\t._127\t@cond_branch\n"
+ "\tldr\tr4, ._129 @ _nakamuraData3\n"
+ "\tldrb\tr0, [r4]\n"
+ "\tadd\tr0, r0, #0x1\n"
+ "\tmov\tr1, #0x5\n"
+ "\tbl\t__modsi3\n"
+ "\tstrb\tr0, [r4]\n"
+ "._127:\n"
+ "\tbl\tdebug_sub_815F7B4\n"
+ "\tb\t._136\n"
+ "._130:\n"
+ "\t.align\t2, 0\n"
+ "._129:\n"
+ "\t.word\t_nakamuraData3\n"
+ "._126:\n"
+ "\tmov\tr0, #0x1\n"
+ "\tand\tr0, r0, r1\n"
+ "\tcmp\tr0, #0\n"
+ "\tbeq\t._131\t@cond_branch\n"
+ "\tmov\tr0, #0x2\n"
+ "\tmov\tr1, #0x5\n"
+ "\tmov\tr2, #0xb\n"
+ "\tmov\tr3, #0x6\n"
+ "\tbl\tMenu_BlankWindowRect\n"
+ "\tmov\tr0, #0xb\n"
+ "\tmov\tr1, #0x1\n"
+ "\tmov\tr2, #0xb\n"
+ "\tmov\tr3, #0x2\n"
+ "\tbl\tMenu_BlankWindowRect\n"
+ "\tldr\tr1, ._133 @ gMenuCallback\n"
+ "\tldr\tr0, ._133 + 4 @ debug_sub_815FA38\n"
+ "\tstr\tr0, [r1]\n"
+ "\tb\t._136\n"
+ "._134:\n"
+ "\t.align\t2, 0\n"
+ "._133:\n"
+ "\t.word\tgMenuCallback\n"
+ "\t.word\tdebug_sub_815FA38+1\n"
+ "._131:\n"
+ "\tmov\tr0, #0x2\n"
+ "\tand\tr0, r0, r1\n"
+ "\tcmp\tr0, #0\n"
+ "\tbeq\t._136\t@cond_branch\n"
+ "\tcmp\tr2, #0\n"
+ "\tbne\t._136\t@cond_branch\n"
+ "\tmov\tr0, #0x64\n"
+ "._113:\n"
+ "\tbl\tdebug_sub_815F86C\n"
+ "._136:\n"
+ "\tmov\tr0, #0x0\n"
+ "\tpop\t{r4, r5}\n"
+ "\tpop\t{r1}\n"
+ "\tbx\tr1");
+}
+#endif // NONMATCHING
+
#endif // DEBUG