summaryrefslogtreecommitdiff
path: root/src/scene
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2018-01-16 22:25:35 -0600
committerCameron Hall <cameronghall@cox.net>2018-01-16 22:25:35 -0600
commit91cfb6a564f73f02eb57792f8a0f4aa82e1867d1 (patch)
tree16c7a1de365dabdd85dcc3621ea366fb79a5282c /src/scene
parent6b5a7d8611103ab2ee0210dc6d87bd42f4e3317f (diff)
add debug ifdefs
Diffstat (limited to 'src/scene')
-rw-r--r--src/scene/cable_car.c218
-rw-r--r--src/scene/new_game.c77
-rw-r--r--src/scene/title_screen.c17
3 files changed, 312 insertions, 0 deletions
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
index d8e099130..4bf0cef09 100644
--- a/src/scene/cable_car.c
+++ b/src/scene/cable_car.c
@@ -6,6 +6,7 @@
#include "palette.h"
#include "random.h"
#include "main.h"
+#include "menu.h"
#include "script.h"
#include "task.h"
#include "sound.h"
@@ -102,6 +103,31 @@ static void sub_81248AC(u8);
// .rodata
+#if DEBUG
+
+u8 debug_sub_8138D74(void);
+u8 debug_sub_8138D8C(void);
+u8 debug_sub_8138C14(void);
+u8 debug_sub_8138C34(void);
+u8 debug_sub_810CD9C(void);
+
+const u8 Str_842DBD0[] = _("CABLE CAR U");
+const u8 Str_842DBDC[] = _("CABLE CAR D");
+const u8 Str_842DBE8[] = _("ROULETTE1");
+const u8 Str_842DBF2[] = _("ROULETTE3");
+const u8 Str_842DBFC[] = _("View a MAIL");
+
+const struct MenuAction gUnkDebug4Menu[] =
+{
+ {Str_842DBD0, debug_sub_8138D74},
+ {Str_842DBDC, debug_sub_8138D8C},
+ {Str_842DBE8, debug_sub_8138C14},
+ {Str_842DBF2, debug_sub_8138C34},
+ {Str_842DBFC, debug_sub_810CD9C},
+};
+
+#endif
+
static const u8 gCableCarMtChimneyTilemap[] = INCBIN_U8("graphics/misc/cable_car_mt_chimney_map.bin.lz");
static const u8 gCableCarTreeTilemap[] = INCBIN_U8("graphics/misc/cable_car_tree_map.bin.lz");
@@ -182,6 +208,158 @@ static const struct SpriteTemplate gSpriteTemplate_8401D40[] = {
// .text
+#if DEBUG
+
+__attribute__((naked))
+u8 debug_sub_8138C14(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r0, ._1\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._1 + 4\n\
+ bl ScriptContext1_SetupScript\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+ pop {r1}\n\
+ bx r1\n\
+._2:\n\
+ .align 2, 0\n\
+._1:\n\
+ .word unk_203955C\n\
+ .word MauvilleCity_GameCorner_EventScript_1C407E");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138C34(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r0, ._3\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._3 + 4\n\
+ bl ScriptContext1_SetupScript\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+ pop {r1}\n\
+ bx r1\n\
+._4:\n\
+ .align 2, 0\n\
+._3:\n\
+ .word unk_203955C\n\
+ .word MauvilleCity_GameCorner_EventScript_1C40AC");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138C54(void)
+{
+ asm("\n\
+ push {r4, lr}\n\
+ ldr r4, ._10\n\
+ ldrh r0, [r4, #0x2e]\n\
+ cmp r0, #0x40\n\
+ bne ._5 @cond_branch\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ bl Menu_MoveCursor\n\
+._5:\n\
+ ldrh r0, [r4, #0x2e]\n\
+ cmp r0, #0x80\n\
+ bne ._6 @cond_branch\n\
+ mov r0, #0x1\n\
+ bl Menu_MoveCursor\n\
+._6:\n\
+ ldrh r1, [r4, #0x2e]\n\
+ cmp r1, #0x1\n\
+ beq ._7 @cond_branch\n\
+ ldr r0, ._10 + 4\n\
+ cmp r1, r0\n\
+ bne ._8 @cond_branch\n\
+ ldr r1, ._10 + 8\n\
+ mov r0, #0x1\n\
+ strh r0, [r1]\n\
+._7:\n\
+ ldr r4, ._10 + 12\n\
+ bl Menu_GetCursorPos\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x15\n\
+ add r4, r4, #0x4\n\
+ add r0, r0, r4\n\
+ ldr r0, [r0]\n\
+ bl _call_via_r0\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ b ._13\n\
+._11:\n\
+ .align 2, 0\n\
+._10:\n\
+ .word gMain\n\
+ .word 0x101\n\
+ .word gSpecialVar_0x8004\n\
+ .word gUnkDebug4Menu\n\
+._8:\n\
+ cmp r1, #0x2\n\
+ beq ._12 @cond_branch\n\
+ mov r0, #0x0\n\
+ b ._13\n\
+._12:\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+._13:\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138CC4(void)
+{
+ asm("\n\
+ push {lr}\n\
+ add sp, sp, #0xfffffff8\n\
+ ldr r1, ._14\n\
+ mov r0, #0x0\n\
+ strh r0, [r1]\n\
+ bl Menu_EraseScreen\n\
+ mov r0, #0x13\n\
+ mov r1, #0x0\n\
+ mov r2, #0x1d\n\
+ mov r3, #0xc\n\
+ bl Menu_DrawStdWindowFrame\n\
+ ldr r3, ._14 + 4\n\
+ mov r0, #0x14\n\
+ mov r1, #0x1\n\
+ mov r2, #0x5\n\
+ bl Menu_PrintItems\n\
+ mov r0, #0x0\n\
+ str r0, [sp]\n\
+ mov r0, #0x8\n\
+ str r0, [sp, #0x4]\n\
+ mov r0, #0x0\n\
+ mov r1, #0x14\n\
+ mov r2, #0x1\n\
+ mov r3, #0x5\n\
+ bl InitMenu\n\
+ ldr r1, ._14 + 8\n\
+ ldr r0, ._14 + 12\n\
+ str r0, [r1]\n\
+ mov r0, #0x0\n\
+ add sp, sp, #0x8\n\
+ pop {r1}\n\
+ bx r1\n\
+._15:\n\
+ .align 2, 0\n\
+._14:\n\
+ .word gSpecialVar_0x8004\n\
+ .word gUnkDebug4Menu\n\
+ .word gCallback_03004AE8\n\
+ .word debug_sub_8138C54+1");
+}
+
+#endif
+
static void CableCarTask1(u8 taskId)
{
if (!gPaletteFade.active)
@@ -198,6 +376,46 @@ void CableCar(void)
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
}
+#if DEBUG
+
+__attribute__((naked))
+u8 debug_sub_8138D74(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r1, ._21\n\
+ mov r0, #0x0\n\
+ strh r0, [r1]\n\
+ bl CloseMenu\n\
+ bl CableCar\n\
+ pop {r0}\n\
+ bx r0\n\
+._22:\n\
+ .align 2, 0\n\
+._21:\n\
+ .word gSpecialVar_0x8004");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138D8C(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r1, ._23\n\
+ mov r0, #0x1\n\
+ strh r0, [r1]\n\
+ bl CloseMenu\n\
+ bl CableCar\n\
+ pop {r0}\n\
+ bx r0\n\
+._24:\n\
+ .align 2, 0\n\
+._23:\n\
+ .word gSpecialVar_0x8004");
+}
+
+#endif
+
static void CableCarMainCallback_Setup(void)
{
u8 i;
diff --git a/src/scene/new_game.c b/src/scene/new_game.c
index 0279f99c6..d954fb3c8 100644
--- a/src/scene/new_game.c
+++ b/src/scene/new_game.c
@@ -1,4 +1,7 @@
#include "global.h"
+#include "constants/maps.h"
+#include "constants/species.h"
+#include "clock.h"
#include "new_game.h"
#include "battle_records.h"
#include "berry.h"
@@ -20,6 +23,7 @@
#include "pokemon_storage_system.h"
#include "random.h"
#include "roamer.h"
+#include "script_pokemon_80C4.h"
#include "overworld.h"
#include "rtc.h"
#include "script.h"
@@ -27,6 +31,10 @@
#include "text.h"
#include "tv.h"
+#ifdef DEBUG
+extern u8 gUnknown_020297ED;
+#endif
+
EWRAM_DATA u8 gDifferentSaveFile = 0;
EWRAM_DATA u8 gUnknown_020297ED = 0;
@@ -42,6 +50,18 @@ static const struct ContestWinner sEmptyMuseumPortrait =
.trainerName = {EOS},
};
+#ifdef DEBUG
+const s8 gUnknown_Debug_0823C788[][2] =
+{
+ { MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK) },
+ { MAP_GROUP(OLDALE_TOWN_POKEMON_CENTER_2F), MAP_NUM(OLDALE_TOWN_POKEMON_CENTER_2F) },
+ { MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN) },
+ { MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F) }
+};
+
+const u8 gUnknown_Debug_0823C790[] = _("KRÖTE");
+#endif
+
void write_word_to_mem(u32 var, u8 *dataPtr)
{
dataPtr[0] = var;
@@ -94,6 +114,30 @@ void ZeroBattleTowerData(void)
CpuFill32(0, &gSaveBlock2.battleTower, sizeof(gSaveBlock2.battleTower));
}
+#ifdef DEBUG
+void debug_sub_8052E04()
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_Debug_0823C788[i][0] == gSaveBlock1.location.mapGroup &&
+ gUnknown_Debug_0823C788[i][1] == gSaveBlock1.location.mapNum)
+ {
+ break;
+ }
+ }
+
+ i++;
+ if (i >= 4)
+ {
+ i = 0;
+ }
+
+ Overworld_SetWarpDestination(gUnknown_Debug_0823C788[i][0], gUnknown_Debug_0823C788[i][1], -1, -1, -1);
+}
+#endif
+
void WarpToTruck(void)
{
Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck
@@ -109,6 +153,9 @@ void ClearSav2(void)
void sub_8052E4C(void)
{
gDifferentSaveFile = 0;
+#ifdef DEBUG
+ gUnknown_020297ED = 0;
+#endif
sub_808C0A0();
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
@@ -161,3 +208,33 @@ void NewGameInitData(void)
WarpToTruck();
ScriptContext2_RunNewScript(gUnknown_0819FA81);
}
+
+#ifdef DEBUG
+extern void debug_sub_80A3904(void);
+extern void debug_sub_80A3714(void);
+extern void debug_sub_8120F98(void);
+extern void unref_sub_8070F90(void);
+
+void debug_sub_8057508(bool32 arg0)
+{
+ gUnknown_020297ED = 1;
+ NewGameInitData();
+ gSaveBlock1.money = 999999;
+ FlagSet(FLAG_SYS_POKEMON_GET);
+ FlagSet(FLAG_SYS_POKEDEX_GET);
+ FlagSet(FLAG_SYS_POKENAV_GET);
+ FlagSet(FLAG_SYS_B_DASH);
+ ScriptGiveMon(SPECIES_TREECKO, 99, 0, 0, 0, 0);
+
+ if (arg0 == TRUE)
+ SetMonData(&gPlayerParty[0], MON_DATA_NICKNAME, gUnknown_Debug_0823C790);
+
+ debug_sub_80A3904();
+ debug_sub_80A3714();
+ debug_sub_8120F98();
+ FlagSet(FLAG_SYS_HIPSTER_MEET);
+ sub_80EB8EC();
+ unref_sub_8070F90();
+ InitTimeBasedEvents();
+}
+#endif
diff --git a/src/scene/title_screen.c b/src/scene/title_screen.c
index 202b752a6..8d5c4da13 100644
--- a/src/scene/title_screen.c
+++ b/src/scene/title_screen.c
@@ -8,6 +8,7 @@
#include "m4a.h"
#include "main.h"
#include "main_menu.h"
+#include "overworld.h"
#include "palette.h"
#include "reset_rtc_screen.h"
#include "sound.h"
@@ -353,6 +354,7 @@ static void Task_TitleScreenPhase1(u8);
static void Task_TitleScreenPhase2(u8);
static void Task_TitleScreenPhase3(u8);
static void CB2_GoToMainMenu(void);
+static void CB2_GoToTestMenu(void);
static void CB2_GoToClearSaveDataScreen(void);
static void CB2_GoToResetRtcScreen(void);
static void CB2_GoToCopyrightScreen(void);
@@ -829,6 +831,13 @@ static void Task_TitleScreenPhase3(u8 taskId)
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_GoToResetRtcScreen);
}
+#ifdef DEBUG
+ else if (gMain.heldKeys == SELECT_BUTTON)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ SetMainCallback2(CB2_GoToTestMenu);
+ }
+#endif
else
{
REG_BG2Y = 0;
@@ -855,6 +864,14 @@ static void CB2_GoToMainMenu(void)
SetMainCallback2(CB2_InitMainMenu);
}
+#ifdef DEBUG
+static void CB2_GoToTestMenu(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitTestMenu);
+}
+#endif
+
static void CB2_GoToCopyrightScreen(void)
{
if (!UpdatePaletteFade())