summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-17 19:15:32 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-17 19:15:32 -0400
commitd42c033eb624bc096431de7f259088ed43126245 (patch)
treecf341c37899cffdbf4f47eb28610f9aa1d947758
parent670a3e6b2bccb4b2def62c848e3925ae1086bf58 (diff)
through debug_80C53F0 (also testing resplit of string)
-rw-r--r--asm/watanabe_debug_menu.s440
-rw-r--r--data/debug_menu_watanabe.s7
-rw-r--r--include/battle.h1
-rw-r--r--src/debug/watanabe_debug_menu.c141
4 files changed, 145 insertions, 444 deletions
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s
index 83e4c5f10..b8618a780 100644
--- a/asm/watanabe_debug_menu.s
+++ b/asm/watanabe_debug_menu.s
@@ -5,446 +5,6 @@
.text
- thumb_func_start debug_80C527C
-debug_80C527C:
- push {r4, r5, r6, r7, lr}
- add r6, r0, #0
- mov r5, #0x0
- ldr r7, ._359 @ gPlayerPartyCount
-._361:
- mov r0, #0x64
- add r1, r5, #0
- mul r1, r1, r0
- ldr r0, ._359 + 4 @ gPlayerParty
- add r4, r1, r0
- add r0, r4, #0
- mov r1, #0xb
- mov r2, #0x0
- bl GetMonData
- cmp r0, #0
- bne ._357 @cond_branch
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #0x64
- bl memcpy
- add r0, r5, #1
- strb r0, [r7]
- mov r0, #0x0
- b ._358
-._360:
- .align 2, 0
-._359:
- .word gPlayerPartyCount
- .word gPlayerParty
-._357:
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, #0x5
- bls ._361 @cond_branch
- ldr r0, ._362 @ gUnknown_Debug_2038A1C
- ldr r0, [r0]
- bl SendMonToPC
- mov r0, #0x1
-._358:
- pop {r4, r5, r6, r7}
- pop {r1}
- bx r1
-._363:
- .align 2, 0
-._362:
- .word gUnknown_Debug_2038A1C
-
- thumb_func_end debug_80C527C
-
- thumb_func_start InitCreatePokemon
-InitCreatePokemon:
- push {r4, r5, lr}
- add sp, sp, #0xffffffd4
- ldr r1, ._364 @ gUnknown_Debug_083F8733
- add r0, sp, #0x4
- mov r2, #0x25
- bl memcpy
- bl debug_80C35DC
- mov r0, #0x1
- neg r0, r0
- mov r4, #0x0
- str r4, [sp]
- mov r1, #0x0
- mov r2, #0x10
- mov r3, #0x0
- bl BeginNormalPaletteFade
- ldr r0, ._364 + 4 @ 0x4000050
- mov r5, #0x0
- strh r4, [r0]
- add r0, r0, #0x2
- strh r4, [r0]
- add r0, r0, #0x2
- strh r4, [r0]
- ldr r3, ._364 + 8 @ 0x4000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, ._364 + 12 @ 0x4000200
- ldrh r0, [r4]
- mov r1, #0x1
- orr r0, r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, ._364 + 16 @ 0x4000004
- ldrh r0, [r2]
- mov r1, #0x8
- orr r0, r0, r1
- strh r0, [r2]
- ldr r0, ._364 + 20 @ debug_80C3758
- bl SetVBlankCallback
- ldr r0, ._364 + 24 @ debug_80C370C
- bl SetMainCallback2
- mov r0, #0x0
- mov r1, #0x0
- mov r2, #0x1d
- mov r3, #0x3
- bl Menu_DrawStdWindowFrame
- add r0, sp, #0x4
- mov r1, #0x1
- mov r2, #0x1
- bl Menu_PrintText
- mov r1, #0x80
- lsl r1, r1, #0x13
- mov r2, #0x8a
- lsl r2, r2, #0x5
- add r0, r2, #0
- strh r0, [r1]
- ldr r0, ._364 + 28 @ debug_80C53A4
- mov r1, #0x0
- bl CreateTask
- bl debug_80C5208
- ldr r1, ._364 + 32 @ gUnknown_Debug_2038A1C
- ldr r0, [r1]
- mov r2, #0xb4
- lsl r2, r2, #0x1
- add r0, r0, r2
- strb r5, [r0]
- ldr r0, [r1]
- ldr r1, ._364 + 36 @ 0x169
- add r0, r0, r1
- strb r5, [r0]
- add sp, sp, #0x2c
- pop {r4, r5}
- pop {r0}
- bx r0
-._365:
- .align 2, 0
-._364:
- .word gUnknown_Debug_083F8733
- .word 0x4000050
- .word 0x4000208
- .word 0x4000200
- .word 0x4000004
- .word debug_80C3758+1
- .word debug_80C370C+1
- .word debug_80C53A4+1
- .word gUnknown_Debug_2038A1C
- .word 0x169
-
- thumb_func_end InitCreatePokemon
-
- thumb_func_start debug_80C53A4
-debug_80C53A4:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- ldr r2, ._366 @ gTasks
- lsl r1, r0, #0x2
- add r1, r1, r0
- lsl r1, r1, #0x3
- add r1, r1, r2
- ldr r0, ._366 + 4 @ debug_80C53C0
- str r0, [r1]
- bx lr
-._367:
- .align 2, 0
-._366:
- .word gTasks
- .word debug_80C53C0+1
-
- thumb_func_end debug_80C53A4
-
- thumb_func_start debug_80C53C0
-debug_80C53C0:
- push {r4, lr}
- add r4, r0, #0
- lsl r4, r4, #0x18
- lsr r4, r4, #0x18
- bl debug_80C6384
- mov r0, #0x0
- bl debug_80C627C
- ldr r1, ._368 @ gTasks
- lsl r0, r4, #0x2
- add r0, r0, r4
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._368 + 4 @ debug_80C53F0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
-._369:
- .align 2, 0
-._368:
- .word gTasks
- .word debug_80C53F0+1
-
- thumb_func_end debug_80C53C0
-
- thumb_func_start debug_80C53F0
-debug_80C53F0:
- push {r4, r5, r6, lr}
- add sp, sp, #0xfffffffc
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r0, ._372 @ gMain
- ldrh r1, [r0, #0x2e]
- mov r2, #0x1
- and r2, r2, r1
- add r4, r0, #0
- cmp r2, #0
- beq ._370 @cond_branch
- ldr r0, ._372 + 4 @ gUnknown_Debug_2038A1C
- ldr r3, [r0]
- mov r0, #0xb2
- lsl r0, r0, #0x1
- add r2, r3, r0
- ldr r1, ._372 + 8 @ gUnknown_Debug_083F8698
- mov r4, #0xb4
- lsl r4, r4, #0x1
- add r0, r3, r4
- ldrb r0, [r0]
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r6, ._372 + 12 @ 0x169
- add r1, r3, r6
- ldrb r1, [r1]
- ldr r0, [r0]
- add r0, r0, r1
- ldrb r1, [r0]
- lsl r1, r1, #0x2
- add r0, r3, #0
- add r0, r0, #0x64
- add r0, r0, r1
- ldr r0, [r0]
- str r0, [r2]
- mov r0, #0xb5
- lsl r0, r0, #0x1
- add r1, r3, r0
- mov r0, #0x0
- strb r0, [r1]
- bl debug_80C643C
- ldr r1, ._372 + 16 @ gTasks
- lsl r0, r5, #0x2
- add r0, r0, r5
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._372 + 20 @ debug_80C55E4
- b ._375
-._373:
- .align 2, 0
-._372:
- .word gMain
- .word gUnknown_Debug_2038A1C
- .word gUnknown_Debug_083F8698
- .word 0x169
- .word gTasks
- .word debug_80C55E4+1
-._370:
- mov r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq ._374 @cond_branch
- mov r0, #0x1
- neg r0, r0
- str r2, [sp]
- mov r1, #0x0
- mov r2, #0x0
- mov r3, #0x10
- bl BeginNormalPaletteFade
- ldr r0, ._376 @ debug_80C370C
- bl SetMainCallback2
- ldr r1, ._376 + 4 @ gTasks
- lsl r0, r5, #0x2
- add r0, r0, r5
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._376 + 8 @ debug_80C373C
- b ._375
-._377:
- .align 2, 0
-._376:
- .word debug_80C370C+1
- .word gTasks
- .word debug_80C373C+1
-._374:
- mov r0, #0x8
- and r0, r0, r1
- cmp r0, #0
- beq ._378 @cond_branch
- mov r0, #0x5
- bl PlaySE
- bl debug_80C5FFC
- ldr r0, ._381 @ gUnknown_Debug_2038A1C
- ldr r0, [r0]
- bl debug_80C527C
- add r4, r0, #0
- lsl r4, r4, #0x18
- lsr r4, r4, #0x18
- mov r0, #0x3
- mov r1, #0x8
- mov r2, #0x1a
- mov r3, #0xb
- bl Menu_DrawStdWindowFrame
- cmp r4, #0
- beq ._379 @cond_branch
- ldr r0, ._381 + 4 @ gUnknown_Debug_083F872A
- mov r1, #0x4
- mov r2, #0x9
- bl Menu_PrintText
- b ._380
-._382:
- .align 2, 0
-._381:
- .word gUnknown_Debug_2038A1C
- .word gUnknown_Debug_083F872A
-._379:
- ldr r0, ._384 @ gUnknown_Debug_083F8720
- mov r1, #0x4
- mov r2, #0x9
- bl Menu_PrintText
-._380:
- ldr r0, ._384 + 4 @ gTasks
- lsl r1, r5, #0x2
- add r1, r1, r5
- lsl r1, r1, #0x3
- add r1, r1, r0
- ldr r0, ._384 + 8 @ debug_80C5708
- str r0, [r1]
- b ._400
-._385:
- .align 2, 0
-._384:
- .word gUnknown_Debug_083F8720
- .word gTasks
- .word debug_80C5708+1
-._378:
- mov r0, #0x4
- and r0, r0, r1
- cmp r0, #0
- beq ._386 @cond_branch
- ldr r0, ._388 @ gUnknown_Debug_2038A1C
- ldr r0, [r0]
- ldr r4, [r0, #0x64]
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- add r0, r4, #0
- mov r1, #0x2
- bl GetSetPokedexFlag
- add r0, r4, #0
- mov r1, #0x3
- bl GetSetPokedexFlag
- mov r0, #0x5
- bl PlaySE
- b ._400
-._389:
- .align 2, 0
-._388:
- .word gUnknown_Debug_2038A1C
-._386:
- mov r0, #0x40
- and r0, r0, r1
- cmp r0, #0
- beq ._390 @cond_branch
- mov r0, #0x2
- bl debug_80C627C
- b ._400
-._390:
- mov r0, #0x80
- and r0, r0, r1
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- cmp r3, #0
- beq ._392 @cond_branch
- mov r0, #0x1
- bl debug_80C627C
- b ._400
-._392:
- mov r0, #0x80
- lsl r0, r0, #0x2
- and r0, r0, r1
- cmp r0, #0
- beq ._395 @cond_branch
- ldr r2, ._397 @ gUnknown_Debug_2038A1C
- ldr r0, [r2]
- mov r6, #0xb4
- lsl r6, r6, #0x1
- add r1, r0, r6
- ldrb r0, [r1]
- cmp r0, #0
- beq ._395 @cond_branch
- sub r0, r0, #0x1
- strb r0, [r1]
- ldr r0, [r2]
- ldr r1, ._397 + 4 @ 0x169
- add r0, r0, r1
- strb r3, [r0]
- b ._396
-._398:
- .align 2, 0
-._397:
- .word gUnknown_Debug_2038A1C
- .word 0x169
-._395:
- ldrh r1, [r4, #0x2e]
- mov r0, #0x80
- lsl r0, r0, #0x1
- and r0, r0, r1
- cmp r0, #0
- beq ._400 @cond_branch
- ldr r3, ._401 @ gUnknown_Debug_2038A1C
- ldr r0, [r3]
- mov r4, #0xb4
- lsl r4, r4, #0x1
- add r2, r0, r4
- ldrb r0, [r2]
- cmp r0, #0x4
- bhi ._400 @cond_branch
- add r0, r0, #0x1
- mov r1, #0x0
- strb r0, [r2]
- ldr r0, [r3]
- ldr r6, ._401 + 4 @ 0x169
- add r0, r0, r6
- strb r1, [r0]
-._396:
- ldr r1, ._401 + 8 @ gTasks
- lsl r0, r5, #0x2
- add r0, r0, r5
- lsl r0, r0, #0x3
- add r0, r0, r1
- ldr r1, ._401 + 12 @ debug_80C53C0
-._375:
- str r1, [r0]
-._400:
- add sp, sp, #0x4
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._402:
- .align 2, 0
-._401:
- .word gUnknown_Debug_2038A1C
- .word 0x169
- .word gTasks
- .word debug_80C53C0+1
-
- thumb_func_end debug_80C53F0
-
thumb_func_start debug_80C55E4
debug_80C55E4:
push {r4, r5, r6, r7, lr}
diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s
index 50cc210d7..b409ecab3 100644
--- a/data/debug_menu_watanabe.s
+++ b/data/debug_menu_watanabe.s
@@ -568,7 +568,10 @@ gUnknown_Debug_083F867F:: @ 0x83F867F
.string "$"
gUnknown_Debug_083F8687:: @ 0x83F8687
- .string "てとなにぬね{STRING 255}のはひふへほ$"
+ .string "てとなにぬね{STRING}$"
+
+gUnknown_Debug_083F868F:: @ 0x83F8687
+ .string "のはひふへほ$"
.align 2
gUnknown_Debug_083F8698:: @ 0x83F8698
@@ -577,7 +580,7 @@ gUnknown_Debug_083F8698:: @ 0x83F8698
.4byte gUnknown_Debug_083F8678, 0x6
.4byte gUnknown_Debug_083F867F, 0x6
.4byte gUnknown_Debug_083F8687, 0x6
- .4byte 0x83F868F, 0x6
+ .4byte gUnknown_Debug_083F868F, 0x6
gUnknown_Debug_083F86C8:: @ 0x83F86C8
.string "ーーー$"
diff --git a/include/battle.h b/include/battle.h
index 2af4bd19d..e63560421 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -724,7 +724,6 @@ extern u8 gBattleTextBuff1[];
extern u16 gBattleTypeFlags;
extern u8 gUnknown_02023A14_50;
extern u16 gTrainerBattleOpponent;
-extern u8 gBattleTerrain;
// src/battle_bg.o
void sub_800D6D4();
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
index b435c4558..5ed067651 100644
--- a/src/debug/watanabe_debug_menu.c
+++ b/src/debug/watanabe_debug_menu.c
@@ -35,8 +35,12 @@ struct WatanabeDebugMenuItem {
};
struct WatanabeEwram18000 {
- u8 filler_00[0x64];
+ struct Pokemon pokemon;
u32 unk64[0x40];
+ u32 unk164;
+ u8 unk168;
+ u8 unk169;
+ u8 unk16a;
};
#define eWatanabe18000 (*(struct WatanabeEwram18000 *)(gSharedMem + 0x18000))
@@ -48,6 +52,8 @@ EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 };
u32 byte_3005E30;
+extern s8 gBattleTerrain;
+
void debug_80C3A50(u8 taskId);
void debug_80C3D2C(u8 taskId);
void debug_80C4214(u8);
@@ -78,13 +84,23 @@ void debug_80C5190(u8 taskId);
void debug_80C51AC(u8 taskId);
void debug_80C51C8(u8 taskId);
void debug_80C51E4(u8 taskId);
+void debug_80C53A4(u8 taskId);
+void debug_80C53C0(u8 taskId);
+void debug_80C53F0(u8 taskId);
+void debug_80C55E4(u8 taskId);
+void debug_80C5708(u8 taskId);
void debug_80C5C94(void);
+void debug_80C5FFC(void);
+void debug_80C627C(u8);
+void debug_80C6384(void);
+void debug_80C643C(void);
void debug_80C68CC(u16, u8, u8, u8);
void debug_80C7584(struct Sprite *);
extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8068[5];
extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F80D8[10];
extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F814C[9];
+extern const struct WatanabeDebugMenuItem gUnknown_Debug_083F8698[6];
extern const u8 gUnknown_Debug_083F7FD4[2]; // = _("▶");
extern const u8 gUnknown_Debug_083F7FD6[4]; // = {0x25, 0x20, 0x01, 0x08};
@@ -111,6 +127,9 @@ extern const u8 gUnknown_Debug_083F8211[17]; // = _("じぶんの せいべつ
extern const u8 gUnknown_Debug_083F8222[13]; // = _("{COLOR RED}せいべつ せんたく");
extern const u8 gUnknown_Debug_083F822F[4]; // = _("おとこ");
extern const u8 gUnknown_Debug_083F8233[4]; // = _("おんな");
+extern const u8 gUnknown_Debug_083F8720[10];
+extern const u8 gUnknown_Debug_083F872A[9];
+extern const u8 gUnknown_Debug_083F8733[37]; // = _("Create POKひMON   LR:Shift  START:Add");
#define SPRITETAG_WATANABE 0x1000
@@ -1578,6 +1597,126 @@ void debug_80C5208(void)
debug_80C5C94();
}
+bool8 debug_80C527C(struct Pokemon *pokemon)
+{
+ u8 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES, NULL) == SPECIES_NONE)
+ {
+ gPlayerParty[i] = *pokemon;
+ gPlayerPartyCount = i + 1;
+ return FALSE;
+ }
+ }
+ SendMonToPC(&gUnknown_Debug_2038A1C->pokemon);
+ return TRUE;
+}
+
+void InitCreatePokemon(void)
+{
+ // u8 sp04[] = _("Create POKひMON   LR:Shift  START:Add");
+ u8 sp04[ARRAY_COUNT(gUnknown_Debug_083F8733)];
+
+ memcpy(sp04, gUnknown_Debug_083F8733, sizeof(gUnknown_Debug_083F8733));
+
+ debug_80C35DC();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ REG_BLDCNT = 0x0000;
+ REG_BLDALPHA = 0x0000;
+ REG_BLDY = 0x0000;
+
+ {
+ u16 imeBak = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = imeBak;
+ }
+
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+
+ SetVBlankCallback(debug_80C3758);
+ SetMainCallback2(debug_80C370C);
+
+ Menu_DrawStdWindowFrame(0, 0, 29, 3);
+ Menu_PrintText(sp04, 1, 1);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON;
+ CreateTask(debug_80C53A4, 0);
+ debug_80C5208();
+ gUnknown_Debug_2038A1C->unk168 = 0;
+ gUnknown_Debug_2038A1C->unk169 = 0;
+}
+
+void debug_80C53A4(u8 taskId)
+{
+ gTasks[taskId].func = debug_80C53C0;
+}
+
+void debug_80C53C0(u8 taskId)
+{
+ debug_80C6384();
+ debug_80C627C(0);
+ gTasks[taskId].func = debug_80C53F0;
+}
+
+void debug_80C53F0(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ gUnknown_Debug_2038A1C->unk164 = gUnknown_Debug_2038A1C->unk64[gUnknown_Debug_083F8698[gUnknown_Debug_2038A1C->unk168].text[gUnknown_Debug_2038A1C->unk169]];
+ gUnknown_Debug_2038A1C->unk16a = 0;
+ debug_80C643C();
+ gTasks[taskId].func = debug_80C55E4;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ SetMainCallback2(debug_80C370C);
+ gTasks[taskId].func = debug_80C373C;
+ }
+ else if (gMain.newKeys & START_BUTTON)
+ {
+ bool8 r4;
+ PlaySE(SE_SELECT);
+ debug_80C5FFC();
+ r4 = debug_80C527C(&gUnknown_Debug_2038A1C->pokemon);
+ Menu_DrawStdWindowFrame(3, 8, 26, 11);
+ if (r4)
+ Menu_PrintText(gUnknown_Debug_083F872A, 4, 9);
+ else
+ Menu_PrintText(gUnknown_Debug_083F8720, 4, 9);
+ gTasks[taskId].func = debug_80C5708;
+ }
+ else if (gMain.newKeys & SELECT_BUTTON)
+ {
+ u32 r4 = gUnknown_Debug_2038A1C->unk64[0];
+ GetSetPokedexFlag(r4, 2);
+ GetSetPokedexFlag(r4, 3);
+ PlaySE(SE_SELECT);
+ }
+ else if (gMain.newKeys & DPAD_UP)
+ {
+ debug_80C627C(2);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ debug_80C627C(1);
+ }
+ else if (gMain.newKeys & L_BUTTON && gUnknown_Debug_2038A1C->unk168 > 0)
+ {
+ gUnknown_Debug_2038A1C->unk168--;
+ gUnknown_Debug_2038A1C->unk169 = 0;
+ gTasks[taskId].func = debug_80C53C0;
+ }
+ else if (gMain.newKeys & R_BUTTON && gUnknown_Debug_2038A1C->unk168 < 5)
+ {
+ gUnknown_Debug_2038A1C->unk168++;
+ gUnknown_Debug_2038A1C->unk169 = 0;
+ gTasks[taskId].func = debug_80C53C0;
+ }
+}
+
u16 word_83F888C[] = INCBIN_U16("graphics/debug/sprite_browser.gbapal");
u8 byte_83F88EC[] = INCBIN_U8("graphics/debug/sprite_browser.4bpp");