summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/nakamura_debug_menu.s476
-rw-r--r--include/strings.h1
-rw-r--r--src/debug/nakamura_debug_menu.c173
3 files changed, 171 insertions, 479 deletions
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s
index ad3af7e84..6f86ee268 100644
--- a/asm/nakamura_debug_menu.s
+++ b/asm/nakamura_debug_menu.s
@@ -5,482 +5,6 @@
.text
- thumb_func_start debug_sub_816097C
-debug_sub_816097C:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- add r7, r0, #0
- lsl r1, r1, #0x10
- lsr r5, r1, #0x10
- mov r6, #0x0
- mov r1, #0x0
-._405:
- add r0, r7, r6
- strb r1, [r0]
- add r0, r6, #1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- cmp r6, #0x3
- bls ._405 @cond_branch
- mov r0, #0xff
- strb r0, [r7, #0x4]
- lsl r0, r5, #0x10
- asr r0, r0, #0x10
- cmp r0, #0
- bne ._406 @cond_branch
- mov r0, #0xa1
- strb r0, [r7, #0x3]
- b ._414
-._406:
- cmp r0, #0
- ble ._408 @cond_branch
- mov r4, #0x64
- mov r0, #0x0
- mov r8, r0
- mov r6, #0x0
-._412:
- lsl r5, r5, #0x10
- asr r0, r5, #0x10
- lsl r4, r4, #0x10
- asr r1, r4, #0x10
- bl __divsi3
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r1, r8
- cmp r1, #0
- bne ._410 @cond_branch
- cmp r6, #0x2
- beq ._410 @cond_branch
- cmp r2, #0
- beq ._411 @cond_branch
-._410:
- add r1, r6, r7
- add r0, r2, #0
- sub r0, r0, #0x5f
- strb r0, [r1, #0x1]
- mov r0, #0x1
- mov r8, r0
-._411:
- asr r0, r5, #0x10
- asr r4, r4, #0x10
- add r1, r4, #0
- bl __modsi3
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0
- mov r1, #0xa
- bl __divsi3
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r6, #1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- cmp r6, #0x2
- bls ._412 @cond_branch
- b ._414
-._408:
- cmp r0, #0
- bge ._414 @cond_branch
- neg r0, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- mov r4, #0x64
- mov r1, #0x0
- mov r8, r1
- mov r6, #0x0
-._419:
- lsl r5, r5, #0x10
- asr r0, r5, #0x10
- lsl r4, r4, #0x10
- asr r1, r4, #0x10
- bl __divsi3
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r1, r8
- lsl r0, r1, #0x10
- add r3, r0, #0
- cmp r3, #0
- bne ._416 @cond_branch
- cmp r6, #0x2
- beq ._416 @cond_branch
- cmp r2, #0
- beq ._417 @cond_branch
-._416:
- add r1, r6, r7
- add r0, r2, #0
- sub r0, r0, #0x5f
- strb r0, [r1, #0x1]
- cmp r3, #0
- bne ._418 @cond_branch
- mov r0, #0xae
- strb r0, [r1]
-._418:
- mov r0, #0x1
- mov r8, r0
-._417:
- asr r0, r5, #0x10
- asr r4, r4, #0x10
- add r1, r4, #0
- bl __modsi3
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0
- mov r1, #0xa
- bl __divsi3
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r6, #1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- cmp r6, #0x2
- bls ._419 @cond_branch
-._414:
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_end debug_sub_816097C
-
- thumb_func_start debug_sub_8160A80
-debug_sub_8160A80:
- push {r4, lr}
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r2, r0, #0
- ldr r1, ._422 @ _nakamuraStatic18
- cmp r0, #0
- bne ._420 @cond_branch
- ldr r4, ._422 + 4 @ gStringVar1
- ldrb r1, [r1, #0x1]
- add r0, r4, #0
- bl debug_sub_816097C
- add r0, r4, #0
- mov r1, #0x8
- mov r2, #0x3
- bl Menu_PrintText
- b ._440
-._423:
- .align 2, 0
-._422:
- .word _nakamuraStatic18
- .word gStringVar1
-._420:
- cmp r0, #0x1
- bne ._424 @cond_branch
- ldr r4, ._426 @ gStringVar1
- ldrb r1, [r1, #0x2]
- add r0, r4, #0
- bl debug_sub_816097C
- add r0, r4, #0
- mov r1, #0x8
- mov r2, #0x5
- bl Menu_PrintText
- b ._440
-._427:
- .align 2, 0
-._426:
- .word gStringVar1
-._424:
- cmp r0, #0x2
- bne ._428 @cond_branch
- ldr r4, ._430 @ gStringVar1
- ldrb r1, [r1, #0x3]
- add r0, r4, #0
- bl debug_sub_816097C
- add r0, r4, #0
- mov r1, #0x8
- mov r2, #0x7
- bl Menu_PrintText
- b ._440
-._431:
- .align 2, 0
-._430:
- .word gStringVar1
-._428:
- cmp r0, #0x3
- bne ._432 @cond_branch
- ldr r4, ._434 @ gStringVar1
- ldrb r1, [r1, #0x4]
- add r0, r4, #0
- bl debug_sub_816097C
- add r0, r4, #0
- mov r1, #0x8
- mov r2, #0x9
- bl Menu_PrintText
- b ._440
-._435:
- .align 2, 0
-._434:
- .word gStringVar1
-._432:
- cmp r0, #0x4
- bne ._436 @cond_branch
- ldr r4, ._438 @ gStringVar1
- ldrb r1, [r1, #0x5]
- add r0, r4, #0
- bl debug_sub_816097C
- add r0, r4, #0
- mov r1, #0x8
- mov r2, #0xb
- bl Menu_PrintText
- b ._440
-._439:
- .align 2, 0
-._438:
- .word gStringVar1
-._436:
- cmp r2, #0x5
- bne ._440 @cond_branch
- ldr r4, ._441 @ gStringVar1
- ldrb r1, [r1, #0x6]
- add r0, r4, #0
- bl debug_sub_816097C
- add r0, r4, #0
- mov r1, #0x8
- mov r2, #0xd
- bl Menu_PrintText
-._440:
- pop {r4}
- pop {r0}
- bx r0
-._442:
- .align 2, 0
-._441:
- .word gStringVar1
-
- thumb_func_end debug_sub_8160A80
-
- thumb_func_start debug_sub_8160B50
-debug_sub_8160B50:
- push {r4, lr}
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r3, r0, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- add r4, r1, #0
- ldr r2, ._445 @ _nakamuraStatic18
- cmp r0, #0
- bne ._443 @cond_branch
- ldrb r0, [r2, #0x1]
- add r0, r0, r1
- strb r0, [r2, #0x1]
- b ._455
-._446:
- .align 2, 0
-._445:
- .word _nakamuraStatic18
-._443:
- cmp r0, #0x1
- bne ._447 @cond_branch
- ldrb r0, [r2, #0x2]
- add r0, r0, r1
- strb r0, [r2, #0x2]
- b ._455
-._447:
- cmp r0, #0x2
- bne ._449 @cond_branch
- ldrb r0, [r2, #0x3]
- add r0, r0, r1
- strb r0, [r2, #0x3]
- b ._455
-._449:
- cmp r0, #0x3
- bne ._451 @cond_branch
- ldrb r0, [r2, #0x4]
- add r0, r0, r1
- strb r0, [r2, #0x4]
- b ._455
-._451:
- cmp r0, #0x4
- bne ._453 @cond_branch
- ldrb r0, [r2, #0x5]
- add r0, r0, r1
- strb r0, [r2, #0x5]
- b ._455
-._453:
- cmp r3, #0x5
- bne ._455 @cond_branch
- ldrb r0, [r2, #0x6]
- add r0, r0, r4
- strb r0, [r2, #0x6]
-._455:
- pop {r4}
- pop {r0}
- bx r0
-
- thumb_func_end debug_sub_8160B50
-
- thumb_func_start debug_sub_8160BB0
-debug_sub_8160BB0:
- push {r4, r5, lr}
- ldr r5, ._456 @ gStringVar1
- ldr r4, ._456 + 4 @ _nakamuraStatic18
- add r0, r5, #0
- add r1, r4, #0
- bl debug_sub_8160714
- strb r0, [r4]
- mov r0, #0x1
- mov r1, #0x1
- mov r2, #0x8
- mov r3, #0x2
- bl Menu_BlankWindowRect
- add r0, r5, #0
- mov r1, #0x1
- mov r2, #0x1
- bl Menu_PrintText
- pop {r4, r5}
- pop {r0}
- bx r0
-._457:
- .align 2, 0
-._456:
- .word gStringVar1
- .word _nakamuraStatic18
-
- thumb_func_end debug_sub_8160BB0
-
- thumb_func_start debug_sub_8160BE4
-debug_sub_8160BE4:
- push {r4, lr}
- add sp, sp, #0xfffffff8
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0xc
- mov r3, #0xf
- bl Menu_DrawStdWindowFrame
- bl debug_sub_8160BB0
- ldr r0, ._459 @ gContestStatsText_Spicy
- mov r1, #0x2
- mov r2, #0x3
- bl Menu_PrintText
- ldr r0, ._459 + 4 @ gContestStatsText_Dry
- mov r1, #0x2
- mov r2, #0x5
- bl Menu_PrintText
- ldr r0, ._459 + 8 @ gContestStatsText_Sweet
- mov r1, #0x2
- mov r2, #0x7
- bl Menu_PrintText
- ldr r0, ._459 + 12 @ gContestStatsText_Bitter
- mov r1, #0x2
- mov r2, #0x9
- bl Menu_PrintText
- ldr r0, ._459 + 16 @ gContestStatsText_Sour
- mov r1, #0x2
- mov r2, #0xb
- bl Menu_PrintText
- ldr r0, ._459 + 20 @ gContestStatsText_Tasty
- mov r1, #0x2
- mov r2, #0xd
- bl Menu_PrintText
- mov r4, #0x0
-._458:
- add r0, r4, #0
- bl debug_sub_8160A80
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x5
- bls ._458 @cond_branch
- mov r0, #0x0
- str r0, [sp]
- mov r0, #0xb
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x1
- mov r2, #0x3
- mov r3, #0x6
- bl InitMenu
- add sp, sp, #0x8
- pop {r4}
- pop {r0}
- bx r0
-._460:
- .align 2, 0
-._459:
- .word gContestStatsText_Spicy
- .word gContestStatsText_Dry
- .word gContestStatsText_Sweet
- .word gContestStatsText_Bitter
- .word gContestStatsText_Sour
- .word gContestStatsText_Tasty
-
- thumb_func_end debug_sub_8160BE4
-
- thumb_func_start debug_sub_8160C7C
-debug_sub_8160C7C:
- push {r4, lr}
- ldr r2, ._469 @ _nakamuraStatic18
- mov r1, #0x0
- ldrb r0, [r2]
- cmp r0, #0xc
- bne ._467 @cond_branch
- ldrb r0, [r2, #0x1]
- cmp r0, #0x2
- bne ._462 @cond_branch
- mov r1, #0x1
-._462:
- ldrb r0, [r2, #0x3]
- cmp r0, #0x2
- bne ._463 @cond_branch
- add r0, r1, #1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-._463:
- ldrb r0, [r2, #0x4]
- cmp r0, #0x2
- bne ._464 @cond_branch
- add r0, r1, #1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-._464:
- ldrb r0, [r2, #0x2]
- cmp r0, #0x2
- bne ._465 @cond_branch
- add r0, r1, #1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-._465:
- ldrb r0, [r2, #0x5]
- cmp r0, #0x2
- bne ._466 @cond_branch
- add r0, r1, #1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-._466:
- cmp r1, #0x3
- beq ._467 @cond_branch
- mov r0, #0x2
- strb r0, [r2, #0x1]
- strb r0, [r2, #0x3]
- strb r0, [r2, #0x4]
-._467:
- add r0, r2, #0
- bl sub_810CA34
- bl debug_sub_8160BB0
- mov r4, #0x0
-._468:
- add r0, r4, #0
- bl debug_sub_8160A80
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x5
- bls ._468 @cond_branch
- pop {r4}
- pop {r0}
- bx r0
-._470:
- .align 2, 0
-._469:
- .word _nakamuraStatic18
-
- thumb_func_end debug_sub_8160C7C
-
thumb_func_start debug_sub_8160CF4
debug_sub_8160CF4:
push {lr}
diff --git a/include/strings.h b/include/strings.h
index 91c5c5344..7b97ec6ef 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -250,6 +250,7 @@ extern const u8 gContestStatsText_Dry[];
extern const u8 gContestStatsText_Sweet[];
extern const u8 gContestStatsText_Bitter[];
extern const u8 gContestStatsText_Sour[];
+extern const u8 gContestStatsText_Tasty[];
extern const u8 gContestStatsText_StowCase[];
extern const u8 gContestStatsText_ThrowAwayPrompt[];
diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c
index b1da30b27..97e1d4678 100644
--- a/src/debug/nakamura_debug_menu.c
+++ b/src/debug/nakamura_debug_menu.c
@@ -38,13 +38,12 @@ EWRAM_DATA u16 _nakamuraData8 = 0;
EWRAM_DATA u16 _nakamuraDataA = 0;
EWRAM_DATA u16 _nakamuraDataC = 0;
-__attribute__((unused)) static struct {
+static struct {
s16 species;
s8 level;
u8 unk3;
} _nakamuraStatic0[PARTY_SIZE];
-__attribute__((unused)) static u8 _nakamuraStatic18;
-__attribute__((unused)) static u8 gDebugFiller3000814[4];
+static struct Pokeblock _nakamuraStatic18;
asm(".global _nakamuraStatic0");
asm(".global _nakamuraStatic18");
@@ -1672,4 +1671,172 @@ u8 debug_sub_8160714(u8 * dest, struct Pokeblock * pokeblock)
}
#endif // NONMATCHING
+void debug_sub_816097C(u8 * buff, s16 a1)
+{
+ u8 i;
+ s16 divisor;
+ s16 quot;
+ s16 printZero;
+
+ for (i = 0; i < 4; i++)
+ buff[i] = CHAR_SPACE;
+ buff[4] = EOS;
+
+ if (a1 == 0)
+ buff[3] = CHAR_0;
+ else if (a1 > 0)
+ {
+ divisor = 100;
+ printZero = FALSE;
+ for (i = 0; i < 3; i++)
+ {
+ quot = a1 / divisor;
+ if (printZero || i == 2 || quot != 0)
+ {
+ buff[i + 1] = CHAR_0 + quot;
+ printZero = TRUE;
+ }
+ a1 %= divisor;
+ divisor /= 10;
+ }
+ }
+ else if (a1 < 0)
+ {
+ a1 = -a1;
+ divisor = 100;
+ printZero = FALSE;
+ for (i = 0; i < 3; i++)
+ {
+ quot = a1 / divisor;
+ if (printZero || i == 2 || quot != 0)
+ {
+ buff[i + 1] = CHAR_0 + quot;
+ if (!printZero)
+ buff[i] = CHAR_HYPHEN;
+ printZero = TRUE;
+ }
+ a1 %= divisor;
+ divisor /= 10;
+ }
+ }
+}
+
+void debug_sub_8160A80(u8 a0)
+{
+ struct Pokeblock *pkblk = &_nakamuraStatic18;
+
+ if (a0 == 0)
+ {
+ debug_sub_816097C(gStringVar1, pkblk->spicy);
+ Menu_PrintText(gStringVar1, 8, 3);
+ }
+ else if (a0 == 1)
+ {
+ debug_sub_816097C(gStringVar1, pkblk->dry);
+ Menu_PrintText(gStringVar1, 8, 5);
+ }
+ else if (a0 == 2)
+ {
+ debug_sub_816097C(gStringVar1, pkblk->sweet);
+ Menu_PrintText(gStringVar1, 8, 7);
+ }
+ else if (a0 == 3)
+ {
+ debug_sub_816097C(gStringVar1, pkblk->bitter);
+ Menu_PrintText(gStringVar1, 8, 9);
+ }
+ else if (a0 == 4)
+ {
+ debug_sub_816097C(gStringVar1, pkblk->sour);
+ Menu_PrintText(gStringVar1, 8, 11);
+ }
+ else if (a0 == 5)
+ {
+ debug_sub_816097C(gStringVar1, pkblk->feel);
+ Menu_PrintText(gStringVar1, 8, 13);
+ }
+}
+
+void debug_sub_8160B50(u8 a0, s8 a1)
+{
+ struct Pokeblock *pkblk = &_nakamuraStatic18;
+
+ if (a0 == 0)
+ pkblk->spicy += a1;
+ else if (a0 == 1)
+ pkblk->dry += a1;
+ else if (a0 == 2)
+ pkblk->sweet += a1;
+ else if (a0 == 3)
+ pkblk->bitter += a1;
+ else if (a0 == 4)
+ pkblk->sour += a1;
+ else if (a0 == 5)
+ pkblk->feel += a1;
+}
+
+void debug_sub_8160BB0(void)
+{
+ _nakamuraStatic18.color = debug_sub_8160714(gStringVar1, &_nakamuraStatic18);
+ Menu_BlankWindowRect(1, 1, 8, 2);
+ Menu_PrintText(gStringVar1, 1, 1);
+}
+
+void debug_sub_8160BE4(void)
+{
+ u8 i;
+
+ Menu_DrawStdWindowFrame(0, 0, 12, 15);
+ debug_sub_8160BB0();
+ Menu_PrintText(gContestStatsText_Spicy, 2, 3);
+ Menu_PrintText(gContestStatsText_Dry, 2, 5);
+ Menu_PrintText(gContestStatsText_Sweet, 2, 7);
+ Menu_PrintText(gContestStatsText_Bitter, 2, 9);
+ Menu_PrintText(gContestStatsText_Sour, 2, 11);
+ Menu_PrintText(gContestStatsText_Tasty, 2, 13);
+
+ for (i = 0; i < 6; i++)
+ debug_sub_8160A80(i);
+
+ InitMenu(0, 1, 3, 6, 0, 11);
+}
+
+void debug_sub_8160C7C(void)
+{
+ struct Pokeblock * pkblk = &_nakamuraStatic18;
+ u8 rval = 0;
+ u8 i;
+
+ if (pkblk->color == PBLOCK_CLR_BLACK)
+ {
+ if (pkblk->spicy == 2)
+ rval++;
+
+ if (pkblk->sweet == 2)
+ rval++;
+
+ if (pkblk->bitter == 2)
+ rval++;
+
+ if (pkblk->dry == 2)
+ rval++;
+
+ if (pkblk->sour == 2)
+ rval++;
+
+ if (rval != 3)
+ {
+ pkblk->spicy = 2;
+ pkblk->sweet = 2;
+ pkblk->bitter = 2;
+ }
+ }
+
+ sub_810CA34(pkblk);
+ debug_sub_8160BB0();
+
+ for (i = 0; i < 6; i++)
+ debug_sub_8160A80(i);
+}
+
#endif // DEBUG