summaryrefslogtreecommitdiff
path: root/src/scene
diff options
context:
space:
mode:
Diffstat (limited to 'src/scene')
-rw-r--r--src/scene/berry_blender.c21
-rw-r--r--src/scene/cable_car.c218
-rw-r--r--src/scene/cute_sketch.c344
-rw-r--r--src/scene/new_game.c73
-rw-r--r--src/scene/title_screen.c19
5 files changed, 667 insertions, 8 deletions
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 2cb68ccf1..24cbcb9c0 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -274,12 +274,12 @@ static void sub_8051B18(void);
static void sub_805123C(void);
static void sub_8050954(void);
static bool8 Blender_PrintBlendingRanking(void);
-static bool8 Blender_PrintBlendingResults(void);
+bool8 Blender_PrintBlendingResults(void);
static void sub_80510E8(void);
static void sub_8050E30(void);
static void sub_805197C(u16 a0, u16 a1);
-static void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst);
-static void sub_8052BD0(u8 taskID);
+/*static*/ void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst);
+/*static*/ void sub_8052BD0(u8 taskID);
static void sub_8052AF8(void);
static void sub_804F8C8(u8 taskID);
static void sub_804F9F4(u8 taskID);
@@ -2411,7 +2411,7 @@ static void BlenderDebug_CalculatePokeblock(struct BlenderBerry* berries, struct
Blender_CalculatePokeblock(berries, pokeblock, playersNo, flavours, a4);
}
-static void sub_8050760(void)
+/*static*/ void sub_8050760(void)
{
u32 frames = (u16)(gBerryBlenderData->gameFrameTime);
u16 max_RPM = gBerryBlenderData->max_RPM;
@@ -3270,13 +3270,13 @@ static void sub_8051C04(struct Sprite* sprite)
sprite->pos2.y = -(gBerryBlenderData->field_146);
}
-static void Blender_TrySettingRecord(void)
+/*static*/ void Blender_TrySettingRecord(void)
{
if (gSaveBlock1.berryBlenderRecords[gBerryBlenderData->playersNo - 2] < gBerryBlenderData->max_RPM)
gSaveBlock1.berryBlenderRecords[gBerryBlenderData->playersNo - 2] = gBerryBlenderData->max_RPM;
}
-static bool8 Blender_PrintBlendingResults(void)
+bool8 Blender_PrintBlendingResults(void)
{
u16 i;
@@ -3395,6 +3395,11 @@ static bool8 Blender_PrintBlendingResults(void)
Blender_CalculatePokeblock(gBerryBlenderData->blendedBerries, &pokeblock, gBerryBlenderData->playersNo, flavours, gBerryBlenderData->max_RPM);
Blender_PrintMadePokeblockString(&pokeblock, gBerryBlenderData->stringVar);
CreateTask(sub_8052BD0, 6);
+#if DEBUG
+ ConvertIntToHexStringN(text[0], sub_8007E40(), 0, 4);
+ StringAppend(text[0], gUnknown_08216249);
+ StringAppend(gBerryBlenderData->stringVar, text[0]);
+#endif
MenuPrintMessage(gBerryBlenderData->stringVar, 1, 15);
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_810CA34(&pokeblock);
@@ -3411,7 +3416,7 @@ static bool8 Blender_PrintBlendingResults(void)
return FALSE;
}
-static void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst)
+/*static*/ void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst)
{
u8 text[12];
u8 flavourLvl, feel;
@@ -3834,7 +3839,7 @@ void ShowBerryBlenderRecordWindow(void)
}
}
-static void sub_8052BD0(u8 taskID)
+/*static*/ void sub_8052BD0(u8 taskID)
{
if (gTasks[taskID].data[0] == 0)
{
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
index 7faa8d844..114505e4d 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"
@@ -103,6 +104,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");
@@ -183,6 +209,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 @ unk_203955C\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._1 + 4 @ MauvilleCity_GameCorner_EventScript_1C407E\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 @ unk_203955C\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._3 + 4 @ MauvilleCity_GameCorner_EventScript_1C40AC\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 @ gMain\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 @ 0x101\n\
+ cmp r1, r0\n\
+ bne ._8 @cond_branch\n\
+ ldr r1, ._10 + 8 @ gSpecialVar_0x8004\n\
+ mov r0, #0x1\n\
+ strh r0, [r1]\n\
+._7:\n\
+ ldr r4, ._10 + 12 @ gUnkDebug4Menu\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 @ gSpecialVar_0x8004\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 @ gUnkDebug4Menu\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 @ gMenuCallback\n\
+ ldr r0, ._14 + 12 @ debug_sub_8138C54\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 gMenuCallback\n\
+ .word debug_sub_8138C54+1");
+}
+
+#endif
+
static void CableCarTask1(u8 taskId)
{
if (!gPaletteFade.active)
@@ -199,6 +377,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 @ gSpecialVar_0x8004\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 @ gSpecialVar_0x8004\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/cute_sketch.c b/src/scene/cute_sketch.c
index 5317bc334..2af990290 100644
--- a/src/scene/cute_sketch.c
+++ b/src/scene/cute_sketch.c
@@ -29,6 +29,350 @@ void sub_80FD1C8(u16);
u16 sub_80FD39C(u16*);
u16 sub_80FD68C(u16*, u16*, u16*);
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_8110CCC(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, #0x0\n\
+ mov r1, #0x0\n\
+ ldr r2, ._5 @ gUnknown_083E79C0\n\
+ ldr r6, ._5 + 4 @ \n\
+._7:\n\
+ lsl r0, r1, #0x3\n\
+ add r4, r0, r2\n\
+ ldrh r0, [r6, #0x1c]\n\
+ ldrh r3, [r4, #0x4]\n\
+ cmp r0, r3\n\
+ bne ._1 @cond_branch\n\
+ ldrh r0, [r4, #0x6]\n\
+ bl FlagGet\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._4 @cond_branch\n\
+ ldrb r0, [r6, #0x1f]\n\
+ ldr r1, [r4]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ bl StringLength\n\
+ mov r1, #0xc\n\
+ sub r1, r1, r0\n\
+ lsl r1, r1, #0x10\n\
+ lsr r5, r1, #0x10\n\
+ cmp r1, #0\n\
+ bge ._3 @cond_branch\n\
+ mov r5, #0x0\n\
+._3:\n\
+ mov r7, #0x1\n\
+ mov r0, #0x10\n\
+ mov r1, #0xe\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ add r0, r6, #0\n\
+ add r0, r0, #0x8\n\
+ mov r1, #0x11\n\
+ mov r2, #0xf\n\
+ bl Menu_PrintText\n\
+ ldrb r0, [r6, #0x1f]\n\
+ ldr r1, [r4]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ add r1, r5, #0\n\
+ add r1, r1, #0x11\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ mov r2, #0x11\n\
+ bl Menu_PrintText\n\
+ b ._4\n\
+._6:\n\
+ .align 2, 0\n\
+._5:\n\
+ .word gUnknown_083E79C0\n\
+ .word +0x2000000\n\
+._1:\n\
+ add r0, r1, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r1, r0, #0x10\n\
+ cmp r1, #0\n\
+ beq ._7 @cond_branch\n\
+._4:\n\
+ cmp r7, #0\n\
+ bne ._8 @cond_branch\n\
+ mov r0, #0x10\n\
+ mov r1, #0x10\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ ldr r0, ._9 @ \n\
+ mov r1, #0x11\n\
+ mov r2, #0x11\n\
+ bl Menu_PrintText\n\
+ mov r0, #0x10\n\
+ mov r1, #0xe\n\
+ mov r2, #0x1d\n\
+ mov r3, #0xf\n\
+ bl Menu_EraseWindowRect\n\
+._8:\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._10:\n\
+ .align 2, 0\n\
+._9:\n\
+ .word +0x2000008");
+}
+
+__attribute__((naked))
+void debug_sub_8110D84(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r0, ._13 @ \n\
+ ldrh r0, [r0, #0x4]\n\
+ cmp r0, #0x7\n\
+ bls ._11 @cond_branch\n\
+ b ._65\n\
+._11:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._13 + 4 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._14:\n\
+ .align 2, 0\n\
+._13:\n\
+ .word +0x2000000\n\
+ .word ._15\n\
+._15:\n\
+ .word ._16\n\
+ .word ._17\n\
+ .word ._18\n\
+ .word ._19\n\
+ .word ._20\n\
+ .word ._21\n\
+ .word ._22\n\
+ .word ._23\n\
+._16:\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, ._25 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._26:\n\
+ .align 2, 0\n\
+._25:\n\
+ .word +0x2000000\n\
+._17:\n\
+ bl UpdatePaletteFade\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._27 @cond_branch\n\
+ b ._65\n\
+._27:\n\
+ ldr r1, ._30 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._31:\n\
+ .align 2, 0\n\
+._30:\n\
+ .word +0x2000000\n\
+._18:\n\
+ bl sub_80FAB60\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x3\n\
+ beq ._32 @cond_branch\n\
+ cmp r0, #0x3\n\
+ bgt ._33 @cond_branch\n\
+ b ._65\n\
+._33:\n\
+ cmp r0, #0x4\n\
+ beq ._35 @cond_branch\n\
+ cmp r0, #0x5\n\
+ beq ._36 @cond_branch\n\
+ b ._65\n\
+._35:\n\
+ ldr r4, ._41 @ \n\
+ ldrb r0, [r4, #0x1e]\n\
+ cmp r0, #0\n\
+ bne ._38 @cond_branch\n\
+ b ._65\n\
+._38:\n\
+ mov r0, #0x5\n\
+ bl m4aSongNumStart\n\
+ ldr r1, ._41 + 4 @ \n\
+ add r0, r4, r1\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._41 + 8 @ \n\
+ bl sub_80FC244\n\
+ b ._65\n\
+._42:\n\
+ .align 2, 0\n\
+._41:\n\
+ .word +0x2000000\n\
+ .word 0xa6e\n\
+ .word sub_80FC69C+1\n\
+._36:\n\
+ mov r0, #0x5\n\
+ bl m4aSongNumStart\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x0\n\
+ mov r3, #0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, ._44 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._45:\n\
+ .align 2, 0\n\
+._44:\n\
+ .word +0x2000000\n\
+._19:\n\
+ bl UpdatePaletteFade\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._65 @cond_branch\n\
+ ldr r0, ._48 @ sub_805469C\n\
+ bl SetMainCallback2\n\
+ b ._65\n\
+._49:\n\
+ .align 2, 0\n\
+._48:\n\
+ .word sub_805469C+1\n\
+._20:\n\
+ bl sub_80FAB60\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._50 @cond_branch\n\
+._32:\n\
+ bl debug_sub_8110CCC\n\
+ b ._65\n\
+._50:\n\
+ ldr r0, ._54 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._65 @cond_branch\n\
+ bl sub_80FBCA0\n\
+ bl sub_80FAEC4\n\
+ ldr r1, ._54 + 4 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._55:\n\
+ .align 2, 0\n\
+._54:\n\
+ .word gMain\n\
+ .word +0x2000000\n\
+._21:\n\
+ bl sub_80FAFC0\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._65 @cond_branch\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl CreateRegionMapCursor\n\
+ ldr r1, ._58 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._59:\n\
+ .align 2, 0\n\
+._58:\n\
+ .word +0x2000000\n\
+._22:\n\
+ bl sub_80FAB60\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._60 @cond_branch\n\
+ bl debug_sub_8110CCC\n\
+._60:\n\
+ ldr r0, ._63 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._65 @cond_branch\n\
+ bl sub_80FBCA0\n\
+ bl sub_80FAEC4\n\
+ ldr r1, ._63 + 4 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._64:\n\
+ .align 2, 0\n\
+._63:\n\
+ .word gMain\n\
+ .word +0x2000000\n\
+._23:\n\
+ bl sub_80FAFC0\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._65 @cond_branch\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl CreateRegionMapCursor\n\
+ ldr r1, ._66 @ \n\
+ mov r0, #0x3\n\
+._62:\n\
+ strh r0, [r1, #0x4]\n\
+._65:\n\
+ add sp, sp, #0x4\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._67:\n\
+ .align 2, 0\n\
+._66:\n\
+ .word +0x2000000");
+}
+
+__attribute__((naked))
+void debug_sub_8110F28(void)
+{
+ asm("\
+ push {lr}\n\
+ bl CB2_InitFlyRegionMap\n\
+ ldr r0, ._69 @ gMain\n\
+ ldr r1, [r0, #0x4]\n\
+ ldr r0, ._69 + 4 @ CB2_FlyRegionMap\n\
+ cmp r1, r0\n\
+ bne ._68 @cond_branch\n\
+ bl sub_80FBF94\n\
+ ldr r0, ._69 + 8 @ debug_sub_8110D84\n\
+ bl sub_80FC244\n\
+ bl debug_sub_8110CCC\n\
+._68:\n\
+ pop {r0}\n\
+ bx r0\n\
+._70:\n\
+ .align 2, 0\n\
+._69:\n\
+ .word gMain\n\
+ .word CB2_FlyRegionMap+1\n\
+ .word debug_sub_8110D84+1");
+}
+
+#endif
+
void sub_80FC7A0(struct Unk03005E20* info)
{
gUnknown_03005DEC = info->var_4;
diff --git a/src/scene/new_game.c b/src/scene/new_game.c
index 0279f99c6..e64dc91e3 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"
@@ -42,6 +46,18 @@ static const struct ContestWinner sEmptyMuseumPortrait =
.trainerName = {EOS},
};
+#if 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 +110,30 @@ void ZeroBattleTowerData(void)
CpuFill32(0, &gSaveBlock2.battleTower, sizeof(gSaveBlock2.battleTower));
}
+#if 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 +149,9 @@ void ClearSav2(void)
void sub_8052E4C(void)
{
gDifferentSaveFile = 0;
+#if DEBUG
+ gUnknown_020297ED = 0;
+#endif
sub_808C0A0();
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
@@ -161,3 +204,33 @@ void NewGameInitData(void)
WarpToTruck();
ScriptContext2_RunNewScript(gUnknown_0819FA81);
}
+
+#if 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..a1c8e081d 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,9 @@ static void Task_TitleScreenPhase1(u8);
static void Task_TitleScreenPhase2(u8);
static void Task_TitleScreenPhase3(u8);
static void CB2_GoToMainMenu(void);
+#if DEBUG
+static void CB2_GoToTestMenu(void);
+#endif
static void CB2_GoToClearSaveDataScreen(void);
static void CB2_GoToResetRtcScreen(void);
static void CB2_GoToCopyrightScreen(void);
@@ -829,6 +833,13 @@ static void Task_TitleScreenPhase3(u8 taskId)
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_GoToResetRtcScreen);
}
+#if DEBUG
+ else if (gMain.heldKeys == SELECT_BUTTON)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ SetMainCallback2(CB2_GoToTestMenu);
+ }
+#endif
else
{
REG_BG2Y = 0;
@@ -855,6 +866,14 @@ static void CB2_GoToMainMenu(void)
SetMainCallback2(CB2_InitMainMenu);
}
+#if DEBUG
+static void CB2_GoToTestMenu(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitTestMenu);
+}
+#endif
+
static void CB2_GoToCopyrightScreen(void)
{
if (!UpdatePaletteFade())