summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2018-02-17 17:30:31 -0600
committerCameron Hall <cameronghall@cox.net>2018-02-17 17:30:31 -0600
commit17a5968adbc1dfb6586641729b39eeb3873481df (patch)
tree2e7c2c4bb62807cf76ead753ddff001cd1123b85
parentb9f8d43825463363a67be0ce9fcd00b23d264e05 (diff)
decompile more debug code
-rw-r--r--data/debug_mystery_event_menu.s20
-rw-r--r--include/global.h26
-rw-r--r--include/link.h1
-rw-r--r--ld_script.txt2
-rw-r--r--src/engine/mystery_event_menu.c546
-rw-r--r--src/field/battle_tower.c129
-rw-r--r--src/field/item_menu.c552
7 files changed, 210 insertions, 1066 deletions
diff --git a/data/debug_mystery_event_menu.s b/data/debug_mystery_event_menu.s
deleted file mode 100644
index 06bf18377..000000000
--- a/data/debug_mystery_event_menu.s
+++ /dev/null
@@ -1,20 +0,0 @@
-.if DEBUG
-
- .include "include/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-Str_843DA70::
- .string "CARDーE emulation。。。$"
-
-Str_843DA84::
- .string "LR: select A: send。$"
-
-Str_843DA98::
- .string "sending。。。$"
-
-Str_843DAA3::
- .string "completed。$"
-
-.endif
diff --git a/include/global.h b/include/global.h
index 4b23fded7..dcd20981e 100644
--- a/include/global.h
+++ b/include/global.h
@@ -740,7 +740,7 @@ struct BattleTowerTrainer
/*0x0C*/
struct {
u16 easyChat[6];
- } greeting;
+ } greeting[6];
};
struct BattleTowerRecord // record mixing
@@ -757,28 +757,6 @@ struct BattleTowerRecord // record mixing
/*0xA0*/u32 checksum;
};
-#if 0
-struct BattleTowerEReaderTrainer
-{
- /*0x00*/u8 unk0;
- /*0x01*/u8 trainerClass;
- /*0x02*/u16 winStreak;
- /*0x04*/u8 name[8];
- /*0x0C*/u8 trainerId[4];
- /*0x10*/struct {
- u16 easyChat[6];
- } greeting;
- /*0x1C*/struct {
- u16 easyChat[6];
- } farewellPlayerLost;
- /*0x28*/struct {
- u16 easyChat[6];
- } farewellPlayerWon;
- /*0x34*/struct UnknownPokemonStruct party[3];
- /*0xB8*/u32 checksum;
-};
-#endif
-
struct BattleTowerEReaderTrainer
{
/*0x00*/ u8 unk0;
@@ -867,8 +845,6 @@ struct HallOfFame
u8 filler[0x1F00];
};
-extern struct HallOfFame gHallOfFame;
extern struct SaveBlock2 gSaveBlock2;
-extern u8 ewram[];
#endif // GUARD_GLOBAL_H
diff --git a/include/link.h b/include/link.h
index d8c6690ea..f9f2b6d0e 100644
--- a/include/link.h
+++ b/include/link.h
@@ -148,6 +148,7 @@ extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkOpen;
extern bool8 gLinkPlayerPending[MAX_LINK_PLAYERS];
void (*gLinkCallback)(void);
+extern u8 gUnknown_Debug_30030E0;
void Task_DestroySelf(u8);
void sub_8007270(u8);
diff --git a/ld_script.txt b/ld_script.txt
index 1ca6bc702..de03fe966 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -671,7 +671,7 @@ SECTIONS {
src/field/diploma.o(.rodata);
src/strings.o(.rodata);
src/field/berry_tag_screen.o(.rodata);
- data/debug_mystery_event_menu.o(.rodata);
+ src/engine/mystery_event_menu.o(.rodata);
src/engine/save_failed_screen.o(.rodata);
src/pokemon/pokeblock_feed.o(.rodata);
src/debug/nakamura_debug_menu.o(.rodata);
diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index bc14c760d..56801ff53 100644
--- a/src/engine/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
@@ -13,6 +13,7 @@
#include "strings2.h"
#include "task.h"
#include "text.h"
+#include "title_screen.h"
#include "ewram.h"
static EWRAM_DATA u8 gUnknown_02039338 = 0;
@@ -341,151 +342,51 @@ static void CB2_MysteryEventMenu(void)
#if DEBUG
+static const u8 Str_843DA70[] = _("CARDーE emulation。。。");
+static const u8 Str_843DA84[] = _("LR: select A: send。");
+static const u8 Str_843DA98[] = _("sending。。。");
+static const u8 Str_843DAA3[] = _("completed。");
+
+extern const struct {const u8 *text; void (*func)();} gUnknown_Debug_842E2D0[];
+extern const u8 gUnknown_Debug_842E350;
+
void debug_sub_815D1D8();
-__attribute__((naked))
-void debug_sub_815D04C()
+void debug_sub_815D04C(u8 taskId)
{
- asm(
- " push {r4, r5, r6, lr}\n"
- " lsl r0, r0, #0x18\n"
- " lsr r5, r0, #0x18\n"
- " ldr r1, ._125 @ gTasks\n"
- " lsl r0, r5, #0x2\n"
- " add r0, r0, r5\n"
- " lsl r0, r0, #0x3\n"
- " add r4, r0, r1\n"
- " mov r1, #0x8\n"
- " ldsh r0, [r4, r1]\n"
- " cmp r0, #0\n"
- " bne ._121 @cond_branch\n"
- " mov r0, #0x4\n"
- " mov r1, #0x4\n"
- " mov r2, #0xd\n"
- " mov r3, #0x7\n"
- " bl Menu_DrawStdWindowFrame\n"
- " ldr r1, ._125 + 4 @ gUnknown_Debug_842E2D0\n"
- " mov r2, #0xa\n"
- " ldsh r0, [r4, r2]\n"
- " lsl r0, r0, #0x3\n"
- " add r0, r0, r1\n"
- " ldr r0, [r0]\n"
- " mov r1, #0x5\n"
- " mov r2, #0x5\n"
- " bl Menu_PrintText\n"
- " ldrh r0, [r4, #0x8]\n"
- " add r0, r0, #0x1\n"
- " strh r0, [r4, #0x8]\n"
- "._121:\n"
- " ldr r2, ._125 + 8 @ gMain\n"
- " ldrh r1, [r2, #0x2e]\n"
- " mov r0, #0x20\n"
- " and r0, r0, r1\n"
- " add r6, r2, #0\n"
- " cmp r0, #0\n"
- " beq ._122 @cond_branch\n"
- " ldrh r1, [r4, #0xa]\n"
- " mov r2, #0xa\n"
- " ldsh r0, [r4, r2]\n"
- " cmp r0, #0\n"
- " bne ._123 @cond_branch\n"
- " ldr r0, ._125 + 12 @ gUnknown_Debug_842E350\n"
- " ldrb r0, [r0]\n"
- " sub r0, r0, #0x1\n"
- " b ._124\n"
- "._126:\n"
- " .align 2, 0\n"
- "._125:\n"
- " .word gTasks\n"
- " .word gUnknown_Debug_842E2D0\n"
- " .word gMain\n"
- " .word gUnknown_Debug_842E350\n"
- "._123:\n"
- " sub r0, r1, #1\n"
- "._124:\n"
- " strh r0, [r4, #0xa]\n"
- " ldr r0, ._130 @ gTasks\n"
- " lsl r1, r5, #0x2\n"
- " add r1, r1, r5\n"
- " lsl r1, r1, #0x3\n"
- " add r1, r1, r0\n"
- " mov r0, #0x0\n"
- " strh r0, [r1, #0x8]\n"
- "._122:\n"
- " ldrh r1, [r6, #0x2e]\n"
- " mov r0, #0x10\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._127 @cond_branch\n"
- " ldr r1, ._130 @ gTasks\n"
- " lsl r2, r5, #0x2\n"
- " add r0, r2, r5\n"
- " lsl r0, r0, #0x3\n"
- " add r4, r0, r1\n"
- " mov r0, #0xa\n"
- " ldsh r3, [r4, r0]\n"
- " ldr r0, ._130 + 4 @ gUnknown_Debug_842E350\n"
- " ldrb r0, [r0]\n"
- " sub r0, r0, #0x1\n"
- " cmp r3, r0\n"
- " bne ._128 @cond_branch\n"
- " mov r0, #0x0\n"
- " b ._129\n"
- "._131:\n"
- " .align 2, 0\n"
- "._130:\n"
- " .word gTasks\n"
- " .word gUnknown_Debug_842E350\n"
- "._128:\n"
- " ldrh r0, [r4, #0xa]\n"
- " add r0, r0, #0x1\n"
- "._129:\n"
- " strh r0, [r4, #0xa]\n"
- " add r0, r2, r5\n"
- " lsl r0, r0, #0x3\n"
- " add r0, r0, r1\n"
- " mov r1, #0x0\n"
- " strh r1, [r0, #0x8]\n"
- "._127:\n"
- " ldrh r1, [r6, #0x2e]\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._132 @cond_branch\n"
- " ldr r1, ._133 @ gTasks\n"
- " lsl r0, r5, #0x2\n"
- " add r0, r0, r5\n"
- " lsl r0, r0, #0x3\n"
- " add r0, r0, r1\n"
- " mov r2, #0xa\n"
- " ldsh r1, [r0, r2]\n"
- " lsl r1, r1, #0x3\n"
- " ldr r0, ._133 + 4 @ gUnknown_Debug_842E2D0\n"
- " add r0, r0, #0x4\n"
- " add r1, r1, r0\n"
- " ldr r0, ._133 + 8 @ \n"
- " ldr r1, [r1]\n"
- " bl _call_via_r1\n"
- " ldr r0, ._133 + 12 @ \n"
- " add r1, r6, r0\n"
- " ldrb r0, [r1]\n"
- " add r0, r0, #0x1\n"
- " strb r0, [r1]\n"
- " add r0, r5, #0\n"
- " bl DestroyTask\n"
- "._132:\n"
- " pop {r4, r5, r6}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._134:\n"
- " .align 2, 0\n"
- "._133:\n"
- " .word gTasks\n"
- " .word gUnknown_Debug_842E2D0\n"
- " .word +0x2004000\n"
- " .word 0x43c\n"
- "\n"
- );
+ if (gTasks[taskId].data[0] == 0)
+ {
+ Menu_DrawStdWindowFrame(4, 4, 13, 7);
+ Menu_PrintText(gUnknown_Debug_842E2D0[gTasks[taskId].data[1]].text, 5, 5);
+ gTasks[taskId].data[0]++;
+ }
+
+ if (gMain.newKeys & 0x20)
+ {
+ if (gTasks[taskId].data[1] == 0)
+ gTasks[taskId].data[1] = gUnknown_Debug_842E350 - 1;
+ else
+ gTasks[taskId].data[1]--;
+ gTasks[taskId].data[0] = 0;
+ }
+ if (gMain.newKeys & 0x10)
+ {
+ if (gTasks[taskId].data[1] == gUnknown_Debug_842E350 - 1)
+ gTasks[taskId].data[1] = 0;
+ else
+ gTasks[taskId].data[1]++;
+ gTasks[taskId].data[0] = 0;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ // TODO: fix this
+ s32 var = gTasks[taskId].data[1];
+ asm(""::"r"(var * 8));
+ gUnknown_Debug_842E2D0[var].func(gSharedMem + 0x4000);
+
+ gMain.state++;
+ DestroyTask(taskId);
+ }
}
void debug_sub_815D15C(void)
@@ -510,291 +411,84 @@ void debug_sub_815D15C(void)
SetMainCallback2(debug_sub_815D1D8);
}
-__attribute__((naked))
-void debug_sub_815D1D8()
+void debug_sub_815D1D8(void)
{
- asm(
- " push {r4, lr}\n"
- " add sp, sp, #0xfffffffc\n"
- " ldr r1, ._139 @ gMain\n"
- " ldr r2, ._139 + 4 @ 0x43c\n"
- " add r0, r1, r2\n"
- " ldrb r0, [r0]\n"
- " add r4, r1, #0\n"
- " cmp r0, #0xb\n"
- " bls ._137 @cond_branch\n"
- " b ._196\n"
- "._137:\n"
- " lsl r0, r0, #0x2\n"
- " ldr r1, ._139 + 8 @ \n"
- " add r0, r0, r1\n"
- " ldr r0, [r0]\n"
- " mov pc, r0\n"
- "._140:\n"
- " .align 2, 0\n"
- "._139:\n"
- " .word gMain\n"
- " .word 0x43c\n"
- " .word ._141\n"
- "._141:\n"
- " .word ._142\n"
- " .word ._143\n"
- " .word ._144\n"
- " .word ._145\n"
- " .word ._146\n"
- " .word ._196\n"
- " .word ._148\n"
- " .word ._149\n"
- " .word ._150\n"
- " .word ._151\n"
- " .word ._152\n"
- " .word ._153\n"
- "._142:\n"
- " mov r0, #0x3\n"
- " mov r1, #0xe\n"
- " mov r2, #0x1b\n"
- " mov r3, #0x13\n"
- " bl Menu_DrawStdWindowFrame\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, ._155 @ gMain\n"
- " ldr r0, ._155 + 4 @ 0x43c\n"
- " add r1, r1, r0\n"
- " b ._189\n"
- "._156:\n"
- " .align 2, 0\n"
- "._155:\n"
- " .word gMain\n"
- " .word 0x43c\n"
- "._143:\n"
- " ldr r0, ._161 @ gPaletteFade\n"
- " ldrb r1, [r0, #0x7]\n"
- " mov r0, #0x80\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._157 @cond_branch\n"
- " b ._196\n"
- "._157:\n"
- " ldrh r1, [r4, #0x2c]\n"
- " mov r0, #0x80\n"
- " lsl r0, r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._159 @cond_branch\n"
- " ldr r1, ._161 + 4 @ gUnknown_Debug_30030E0\n"
- " ldrb r0, [r1]\n"
- " add r0, r0, #0x1\n"
- " strb r0, [r1]\n"
- "._159:\n"
- " ldr r0, ._161 + 8 @ Str_843DA70\n"
- " mov r1, #0x4\n"
- " mov r2, #0xf\n"
- " bl MenuPrintMessage\n"
- " ldr r2, ._161 + 12 @ 0x43c\n"
- " add r1, r4, r2\n"
- " b ._189\n"
- "._162:\n"
- " .align 2, 0\n"
- "._161:\n"
- " .word gPaletteFade\n"
- " .word gUnknown_Debug_30030E0\n"
- " .word Str_843DA70\n"
- " .word 0x43c\n"
- "._144:\n"
- " bl Menu_UpdateWindowText\n"
- " lsl r0, r0, #0x18\n"
- " cmp r0, #0\n"
- " bne ._163 @cond_branch\n"
- " b ._196\n"
- "._163:\n"
- " ldr r1, ._166 @ gMain\n"
- " ldr r0, ._166 + 4 @ 0x43c\n"
- " add r1, r1, r0\n"
- " ldrb r0, [r1]\n"
- " add r0, r0, #0x1\n"
- " strb r0, [r1]\n"
- " ldr r1, ._166 + 8 @ gLinkType\n"
- " ldr r2, ._166 + 12 @ 0x5501\n"
- " add r0, r2, #0\n"
- " strh r0, [r1]\n"
- " bl OpenLink\n"
- " b ._196\n"
- "._167:\n"
- " .align 2, 0\n"
- "._166:\n"
- " .word gMain\n"
- " .word 0x43c\n"
- " .word gLinkType\n"
- " .word 0x5501\n"
- "._145:\n"
- " ldr r0, ._171 @ gReceivedRemoteLinkPlayers\n"
- " ldrb r0, [r0]\n"
- " cmp r0, #0\n"
- " bne ._168 @cond_branch\n"
- " b ._196\n"
- "._168:\n"
- " ldr r1, ._171 + 4 @ 0x43c\n"
- " add r0, r4, r1\n"
- " ldrb r1, [r0]\n"
- " add r1, r1, #0x1\n"
- " strb r1, [r0]\n"
- " ldr r0, ._171 + 8 @ Str_843DA84\n"
- " mov r1, #0x4\n"
- " mov r2, #0xf\n"
- " bl MenuPrintMessage\n"
- " b ._196\n"
- "._172:\n"
- " .align 2, 0\n"
- "._171:\n"
- " .word gReceivedRemoteLinkPlayers\n"
- " .word 0x43c\n"
- " .word Str_843DA84\n"
- "._146:\n"
- " bl Menu_UpdateWindowText\n"
- " lsl r0, r0, #0x18\n"
- " cmp r0, #0\n"
- " bne ._173 @cond_branch\n"
- " b ._196\n"
- "._173:\n"
- " ldr r0, ._176 @ debug_sub_815D04C\n"
- " mov r1, #0xa\n"
- " bl CreateTask\n"
- " ldr r1, ._176 + 4 @ gMain\n"
- " ldr r2, ._176 + 8 @ 0x43c\n"
- " add r1, r1, r2\n"
- " b ._189\n"
- "._177:\n"
- " .align 2, 0\n"
- "._176:\n"
- " .word debug_sub_815D04C+1\n"
- " .word gMain\n"
- " .word 0x43c\n"
- "._148:\n"
- " ldr r0, ._179 @ Str_843DA98\n"
- " mov r1, #0x4\n"
- " mov r2, #0xf\n"
- " bl MenuPrintMessage\n"
- " ldr r1, ._179 + 4 @ 0x2004000\n"
- " ldr r2, ._179 + 8 @ 0x2004\n"
- " mov r0, #0x0\n"
- " bl SendBlock\n"
- " ldr r1, ._179 + 12 @ gMain\n"
- " ldr r0, ._179 + 16 @ 0x43c\n"
- " add r1, r1, r0\n"
- " b ._189\n"
- "._180:\n"
- " .align 2, 0\n"
- "._179:\n"
- " .word Str_843DA98\n"
- " .word 0x2004000\n"
- " .word 0x2004\n"
- " .word gMain\n"
- " .word 0x43c\n"
- "._149:\n"
- " bl Menu_UpdateWindowText\n"
- " bl IsLinkTaskFinished\n"
- " lsl r0, r0, #0x18\n"
- " cmp r0, #0\n"
- " beq ._196 @cond_branch\n"
- " ldr r1, ._183 @ gMain\n"
- " ldr r2, ._183 + 4 @ 0x43c\n"
- " add r1, r1, r2\n"
- " b ._189\n"
- "._184:\n"
- " .align 2, 0\n"
- "._183:\n"
- " .word gMain\n"
- " .word 0x43c\n"
- "._150:\n"
- " bl sub_800832C\n"
- " ldr r1, ._186 @ gMain\n"
- " ldr r0, ._186 + 4 @ 0x43c\n"
- " add r1, r1, r0\n"
- " b ._189\n"
- "._187:\n"
- " .align 2, 0\n"
- "._186:\n"
- " .word gMain\n"
- " .word 0x43c\n"
- "._151:\n"
- " ldr r0, ._190 @ gReceivedRemoteLinkPlayers\n"
- " ldrb r0, [r0]\n"
- " cmp r0, #0\n"
- " bne ._196 @cond_branch\n"
- " mov r0, #0x4\n"
- " mov r1, #0xf\n"
- " mov r2, #0x1a\n"
- " mov r3, #0x12\n"
- " bl Menu_BlankWindowRect\n"
- " ldr r0, ._190 + 4 @ Str_843DAA3\n"
- " mov r1, #0x4\n"
- " mov r2, #0xf\n"
- " bl Menu_PrintText\n"
- " ldr r1, ._190 + 8 @ gMain\n"
- " ldr r2, ._190 + 12 @ 0x43c\n"
- " add r1, r1, r2\n"
- " b ._189\n"
- "._191:\n"
- " .align 2, 0\n"
- "._190:\n"
- " .word gReceivedRemoteLinkPlayers\n"
- " .word Str_843DAA3\n"
- " .word gMain\n"
- " .word 0x43c\n"
- "._152:\n"
- " ldrh r1, [r4, #0x2e]\n"
- " mov r0, #0x1\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " beq ._196 @cond_branch\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 r0, ._194 @ 0x43c\n"
- " add r1, r4, r0\n"
- "._189:\n"
- " ldrb r0, [r1]\n"
- " add r0, r0, #0x1\n"
- " strb r0, [r1]\n"
- " b ._196\n"
- "._195:\n"
- " .align 2, 0\n"
- "._194:\n"
- " .word 0x43c\n"
- "._153:\n"
- " ldr r0, ._197 @ gPaletteFade\n"
- " ldrb r1, [r0, #0x7]\n"
- " mov r0, #0x80\n"
- " and r0, r0, r1\n"
- " cmp r0, #0\n"
- " bne ._196 @cond_branch\n"
- " ldr r0, ._197 + 4 @ CB2_InitTitleScreen\n"
- " bl SetMainCallback2\n"
- "._196:\n"
- " bl RunTasks\n"
- " bl AnimateSprites\n"
- " bl BuildOamBuffer\n"
- " bl UpdatePaletteFade\n"
- " add sp, sp, #0x4\n"
- " pop {r4}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._198:\n"
- " .align 2, 0\n"
- "._197:\n"
- " .word gPaletteFade\n"
- " .word CB2_InitTitleScreen+1\n"
- "\n"
- );
+ switch (gMain.state)
+ {
+ case 0:
+ Menu_DrawStdWindowFrame(3, 14, 27, 19);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ gMain.state++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ if (gMain.heldKeys & 0x100)
+ gUnknown_Debug_30030E0++;
+ MenuPrintMessage(Str_843DA70, 4, 15);
+ gMain.state++;
+ }
+ break;
+ case 2:
+ if (Menu_UpdateWindowText())
+ {
+ gMain.state++;
+ gLinkType = 0x5501;
+ OpenLink();
+ }
+ break;
+ case 3:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ gMain.state++;
+ MenuPrintMessage(Str_843DA84, 4, 15);
+ }
+ break;
+ case 4:
+ if (Menu_UpdateWindowText())
+ {
+ CreateTask(debug_sub_815D04C, 10);
+ gMain.state++;
+ }
+ break;
+ case 6:
+ MenuPrintMessage(Str_843DA98, 4, 15);
+ SendBlock(0, gSharedMem + 0x4000, 0x2004);
+ gMain.state++;
+ break;
+ case 7:
+ Menu_UpdateWindowText();
+ if (IsLinkTaskFinished())
+ gMain.state++;
+ break;
+ case 8:
+ sub_800832C();
+ gMain.state++;
+ break;
+ case 9:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ Menu_BlankWindowRect(4, 15, 26, 18);
+ Menu_PrintText(Str_843DAA3, 4, 15);
+ gMain.state++;
+ }
+ break;
+ case 10:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gMain.state++;
+ }
+ break;
+ case 11:
+ if (!gPaletteFade.active)
+ SetMainCallback2(CB2_InitTitleScreen);
+ break;
+ }
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
}
#endif
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c
index 1853abbee..8d8498d45 100644
--- a/src/field/battle_tower.c
+++ b/src/field/battle_tower.c
@@ -33,7 +33,8 @@
#include "../data/battle_tower/trainers_de.h"
#endif
-static const u16 sBattleTowerHeldItems[] = {
+static const u16 sBattleTowerHeldItems[] =
+{
ITEM_NONE,
ITEM_KINGS_ROCK,
ITEM_SITRUS_BERRY,
@@ -102,7 +103,8 @@ static const u16 sBattleTowerHeldItems[] = {
#include "../data/battle_tower/level_50_mons.h"
#include "../data/battle_tower/level_100_mons.h"
-static const u8 sMaleTrainerClasses[] = {
+static const u8 sMaleTrainerClasses[] =
+{
FACILITY_CLASS_RUIN_MANIAC,
FACILITY_CLASS_TUBER_M,
FACILITY_CLASS_COOL_TRAINER_M,
@@ -135,7 +137,8 @@ static const u8 sMaleTrainerClasses[] = {
FACILITY_CLASS_HIKER,
};
-static const u8 sFemaleTrainerClasses[] = {
+static const u8 sFemaleTrainerClasses[] =
+{
FACILITY_CLASS_AROMA_LADY,
FACILITY_CLASS_TUBER_F,
FACILITY_CLASS_COOL_TRAINER_F,
@@ -158,7 +161,8 @@ static const u8 sFemaleTrainerClasses[] = {
FACILITY_CLASS_LASS,
};
-static const u8 sMaleTrainerGfxIds[] = {
+static const u8 sMaleTrainerGfxIds[] =
+{
MAP_OBJ_GFX_HIKER,
MAP_OBJ_GFX_TUBER_M,
MAP_OBJ_GFX_MAN_4,
@@ -191,7 +195,8 @@ static const u8 sMaleTrainerGfxIds[] = {
MAP_OBJ_GFX_HIKER,
};
-static const u8 sFemaleTrainerGfxIds[] = {
+static const u8 sFemaleTrainerGfxIds[] =
+{
MAP_OBJ_GFX_WOMAN_3,
MAP_OBJ_GFX_TUBER_F,
MAP_OBJ_GFX_WOMAN_7,
@@ -214,7 +219,8 @@ static const u8 sFemaleTrainerGfxIds[] = {
MAP_OBJ_GFX_LASS,
};
-const u16 gBattleTowerBannedSpecies[] = {
+const u16 gBattleTowerBannedSpecies[] =
+{
SPECIES_MEW,
SPECIES_MEWTWO,
SPECIES_HO_OH,
@@ -229,7 +235,8 @@ const u16 gBattleTowerBannedSpecies[] = {
};
// Item prizes for battle tower streaks of 5 or fewer sets.
-/*static*/ const u16 sShortStreakPrizes[] = {
+static const u16 sShortStreakPrizes[] =
+{
ITEM_HP_UP,
ITEM_PROTEIN,
ITEM_IRON,
@@ -239,7 +246,8 @@ const u16 gBattleTowerBannedSpecies[] = {
};
// Item prizes for battle tower streaks of greater than 5 sets.
-/*static*/ const u16 sLongStreakPrizes[] = {
+static const u16 sLongStreakPrizes[] =
+{
ITEM_BRIGHT_POWDER,
ITEM_WHITE_HERB,
ITEM_QUICK_CLAW,
@@ -292,9 +300,7 @@ void sub_8134548(void)
default:
ResetBattleTowerStreak(levelType);
if (!var1)
- {
VarSet(VAR_TEMP_0, 5);
- }
break;
case 1:
ResetBattleTowerStreak(levelType);
@@ -320,10 +326,8 @@ void sub_8134548(void)
}
if ((gSaveBlock2.battleTower.var_4AE[0] == 3 || gSaveBlock2.battleTower.var_4AE[0] == 6)
- && (gSaveBlock2.battleTower.var_4AE[1] == 3 || gSaveBlock2.battleTower.var_4AE[1] == 6))
- {
+ && (gSaveBlock2.battleTower.var_4AE[1] == 3 || gSaveBlock2.battleTower.var_4AE[1] == 6))
VarSet(VAR_TEMP_0, 5);
- }
ValidateBattleTowerRecordChecksums();
}
@@ -350,23 +354,18 @@ bool8 ShouldBattleEReaderTrainer(u8 levelType, u16 winStreak)
ValidateEReaderTrainer();
if (gSpecialVar_Result != 0 || gSaveBlock2.battleTower.ereaderTrainer.winStreak != winStreak)
- {
return FALSE;
- }
- trainerTeamLevel = 50;
if (levelType != 0)
- {
trainerTeamLevel = 100;
- }
+ else
+ trainerTeamLevel = 50;
for (i = 0; i < 3; i++)
{
monLevel = gSaveBlock2.battleTower.ereaderTrainer.party[i].level;
if (gSaveBlock2.battleTower.ereaderTrainer.party[i].level != trainerTeamLevel)
- {
return FALSE;
- }
CheckMonBattleTowerBanlist(
gSaveBlock2.battleTower.ereaderTrainer.party[i].species,
@@ -379,7 +378,7 @@ bool8 ShouldBattleEReaderTrainer(u8 levelType, u16 winStreak)
&numValid);
}
- return numValid == 3;
+ return (numValid == 3);
}
bool8 sub_81346F4(void)
@@ -408,6 +407,7 @@ bool8 sub_81346F4(void)
struct BattleTowerRecord *record = &gSaveBlock2.battleTower.records[recordIndex];
u32 recordHasData = 0;
u32 checksum = 0;
+
for (i = 0; i < sizeof(struct BattleTowerRecord) / sizeof(u32) - 1; i++)
{
recordHasData |= ((u32 *)record)[i];
@@ -415,9 +415,9 @@ bool8 sub_81346F4(void)
}
if (gSaveBlock2.battleTower.records[recordIndex].winStreak == winStreak
- && gSaveBlock2.battleTower.records[recordIndex].battleTowerLevelType == battleTowerLevelType
- && recordHasData
- && gSaveBlock2.battleTower.records[recordIndex].checksum == checksum)
+ && gSaveBlock2.battleTower.records[recordIndex].battleTowerLevelType == battleTowerLevelType
+ && recordHasData
+ && gSaveBlock2.battleTower.records[recordIndex].checksum == checksum)
{
trainerIds[numCandidates] = recordIndex;
numCandidates++;
@@ -784,19 +784,17 @@ void SetBattleTowerTrainerGfxId(u8 trainerIndex)
u8 trainerClass;
if (trainerIndex < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
- {
trainerClass = gBattleTowerTrainers[trainerIndex].trainerClass;
- }
else if (trainerIndex < BATTLE_TOWER_EREADER_TRAINER_ID)
- {
trainerClass = gSaveBlock2.battleTower.records[trainerIndex - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass;
- }
else
- {
trainerClass = gSaveBlock2.battleTower.ereaderTrainer.trainerClass;
- }
- for (i = 0; i < 30 && sMaleTrainerClasses[i] != trainerClass; i++);
+ for (i = 0; i < 30; i++)
+ {
+ if (sMaleTrainerClasses[i] == trainerClass)
+ break;
+ }
if (i != 30)
{
u8 trainerObjectGfxId = sMaleTrainerGfxIds[i];
@@ -804,7 +802,11 @@ void SetBattleTowerTrainerGfxId(u8 trainerIndex)
return;
}
- for (i = 0; i < 20 && sFemaleTrainerClasses[i] != trainerClass; i++);
+ for (i = 0; i < 20; i++)
+ {
+ if (sFemaleTrainerClasses[i] == trainerClass)
+ break;
+ }
if (i != 20)
{
u8 trainerObjectGfxId = sFemaleTrainerGfxIds[i];
@@ -1143,33 +1145,21 @@ _08134C70: .4byte gSaveBlock2\n\
u8 get_trainer_class_pic_index(void)
{
if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
- {
return gTrainerClassToPicIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass];
- }
else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
- {
return gTrainerClassToPicIndex[gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass];
- }
else
- {
return gTrainerClassToPicIndex[gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass];
- }
}
u8 get_trainer_class_name_index(void)
{
if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
- {
return gTrainerClassToNameIndex[gSaveBlock2.battleTower.ereaderTrainer.trainerClass];
- }
else if (gSaveBlock2.battleTower.battleTowerTrainerId >= BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
- {
return gTrainerClassToNameIndex[gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].trainerClass];
- }
else
- {
return gTrainerClassToNameIndex[gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].trainerClass];
- }
}
void get_trainer_name(u8* dest)
@@ -1179,26 +1169,20 @@ void get_trainer_name(u8* dest)
if (gSaveBlock2.battleTower.battleTowerTrainerId == BATTLE_TOWER_EREADER_TRAINER_ID)
{
for (i = 0; i < 7; i++)
- {
dest[i] = gSaveBlock2.battleTower.ereaderTrainer.name[i];
- }
}
else if (gSaveBlock2.battleTower.battleTowerTrainerId < BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID)
{
for (i = 0; i < 7; i++)
- {
dest[i] = gBattleTowerTrainers[gSaveBlock2.battleTower.battleTowerTrainerId].name[i];
- }
}
else
{
for (i = 0; i < 7; i++)
- {
dest[i] = gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].name[i];
- }
}
- dest[i] = 0xFF;
+ dest[i] = EOS;
}
void FillBattleTowerTrainerParty(void)
@@ -1266,10 +1250,7 @@ void FillBattleTowerTrainerParty(void)
{
// Load E-Reader trainer's party.
for (partyIndex = 0; partyIndex < 3; partyIndex++)
- {
sub_803ADE8(&gEnemyParty[partyIndex], &gSaveBlock2.battleTower.ereaderTrainer.party[partyIndex]);
- }
-
return;
}
else
@@ -1281,7 +1262,6 @@ void FillBattleTowerTrainerParty(void)
&gEnemyParty[partyIndex],
&gSaveBlock2.battleTower.records[gSaveBlock2.battleTower.battleTowerTrainerId - BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID].party[partyIndex]);
}
-
return;
}
@@ -1329,10 +1309,8 @@ void FillBattleTowerTrainerParty(void)
for (i = 0; i < partyIndex; i++)
{
if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != 0
- && GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) == sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem])
- {
+ && GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) == sBattleTowerHeldItems[battleTowerMons[battleMonIndex].heldItem])
break;
- }
}
if (i != partyIndex)
@@ -1341,7 +1319,12 @@ void FillBattleTowerTrainerParty(void)
// Ensure this exact pokemon index isn't a duplicate. This check doesn't seem necessary
// because the species and held items were already checked directly above. Perhaps this
// is leftover code before the logic for duplicate species and held items was added.
- for (i = 0; i < partyIndex && chosenMonIndices[i] != battleMonIndex; i++);
+ //for (i = 0; i < partyIndex && chosenMonIndices[i] != battleMonIndex; i++);
+ for (i = 0; i < partyIndex; i++)
+ {
+ if (chosenMonIndices[i] == battleMonIndex)
+ break;
+ }
if (i != partyIndex)
continue;
@@ -1361,10 +1344,7 @@ void FillBattleTowerTrainerParty(void)
{
SetMonMoveSlot(&gEnemyParty[partyIndex], battleTowerMons[battleMonIndex].moves[i], i);
if (battleTowerMons[battleMonIndex].moves[i] == MOVE_FRUSTRATION)
- {
- // MOVE_FRUSTRATION is more powerful the lower the pokemon's friendship is.
- friendship = 0;
- }
+ friendship = 0; // MOVE_FRUSTRATION is more powerful the lower the pokemon's friendship is.
}
SetMonData(&gEnemyParty[partyIndex], MON_DATA_FRIENDSHIP, &friendship);
@@ -1385,9 +1365,7 @@ u32 CountBattleTowerBanlistCaught(void)
for (i = 0; gBattleTowerBannedSpecies[i] != 0xFFFF; i++)
{
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleTowerBannedSpecies[i]), FLAG_GET_CAUGHT))
- {
numCaught++;
- }
}
return numCaught;
@@ -1398,7 +1376,6 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
{
curIndexToAppend++;
-
switch (curIndexToAppend - 1)
{
case 0:
@@ -1408,24 +1385,15 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT
case 8:
case 10:
if (numToAppend == curIndexToAppend)
- {
StringAppend(gStringVar1, BattleText_Format3);
- }
else if (numToAppend > curIndexToAppend)
- {
StringAppend(gStringVar1, BattleText_Format4);
- }
break;
case 1:
if (curIndexToAppend == numToAppend)
- {
StringAppend(gStringVar1, BattleText_Format3);
- }
else
- {
StringAppend(gStringVar1, BattleText_Format4);
- }
-
StringAppend(gStringVar1, BattleText_Format7);
break;
case 3:
@@ -1434,18 +1402,12 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT
case 9:
default:
if (curIndexToAppend == numToAppend)
- {
StringAppend(gStringVar1, BattleText_Format3);
- }
else
- {
StringAppend(gStringVar1, BattleText_Format4);
- }
-
StringAppend(gStringVar1, BattleText_Format6);
break;
}
-
StringAppend(gStringVar1, gSpeciesNames[species]);
}
@@ -1463,7 +1425,7 @@ void CheckMonBattleTowerBanlist(u16 species, u16 heldItem, u16 hp, u8 battleTowe
while (1)
{
if (gBattleTowerBannedSpecies[counter] == 0xFFFF)
- goto EXIT2; // Couldn't get the code to match without this GOTO
+ break;
if (gBattleTowerBannedSpecies[counter] == species)
break;
@@ -1474,7 +1436,6 @@ void CheckMonBattleTowerBanlist(u16 species, u16 heldItem, u16 hp, u8 battleTowe
if (gBattleTowerBannedSpecies[counter] != 0xFFFF)
return;
- EXIT2:
if (battleTowerLevelType == 0 && monLevel > 50)
return;
@@ -1527,9 +1488,7 @@ void CheckPartyBattleTowerBanlist(void)
numBanlistCaught = CountBattleTowerBanlistCaught();
for (i = 0; gBattleTowerBannedSpecies[i] != 0xFFFF; i++)
- {
counter = AppendBattleTowerBannedSpeciesName(gBattleTowerBannedSpecies[i], counter, numBanlistCaught);
- }
if (counter == 0)
{
diff --git a/src/field/item_menu.c b/src/field/item_menu.c
index 9fa3fd6cb..05fd3be53 100644
--- a/src/field/item_menu.c
+++ b/src/field/item_menu.c
@@ -289,24 +289,6 @@ static void sub_80A6618(u8);
const struct YesNoFuncTable gUnknown_083C16FC = {sub_80A65AC, sub_80A6618};
-#if DEBUG
-const struct {u16 item; u8 unk;} gUnknown_Debug_083EBC68[12+48] =
-{
- {ITEM_POKE_BALL, 10},
- {ITEM_ULTRA_BALL, 15},
- {ITEM_GREAT_BALL, 20},
- {ITEM_MASTER_BALL, 25},
- {ITEM_ACRO_BIKE, 1 },
- {ITEM_OLD_ROD, 1 },
- {ITEM_GOOD_ROD, 1 },
- {ITEM_SUPER_ROD, 1 },
- {ITEM_POKEBLOCK_CASE, 1 },
- {ITEM_WAILMER_PAIL, 1 },
- {ITEM_ITEMFINDER, 1 },
- {ITEM_NONE, 1 },
-};
-#endif
-
void sub_80A34E8(void);
static bool8 LoadBagGraphicsMultistep(void);
static void sub_80A362C(void);
@@ -393,390 +375,6 @@ static void sub_80A3134(void)
DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(VRAM + 0x6000), 0x800);
}
-#if DEBUG
-__attribute__((naked))
-static bool8 SetupBagMultistep(void)
-{
- asm("\
- push {r4, r5, lr}\n\
- add sp, sp, #0xfffffffc\n\
- ldr r0, ._5 @ gMain\n\
- ldr r1, ._5 + 4 @ 0x43c\n\
- add r0, r0, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, #0x10\n\
- bls ._3 @cond_branch\n\
- b ._66\n\
-._3:\n\
- lsl r0, r0, #0x2\n\
- ldr r1, ._5 + 8 @ \n\
- add r0, r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
-._6:\n\
- .align 2, 0\n\
-._5:\n\
- .word gMain\n\
- .word 0x43c\n\
- .word ._7\n\
-._7:\n\
- .word ._8\n\
- .word ._9\n\
- .word ._10\n\
- .word ._11\n\
- .word ._12\n\
- .word ._13\n\
- .word ._14\n\
- .word ._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\
- .word ._24\n\
-._8:\n\
- bl ClearVideoCallbacks\n\
- bl sub_80A34E8\n\
- b ._61\n\
-._9:\n\
- bl ScanlineEffect_Stop\n\
- ldr r1, ._27 @ gMain\n\
- ldr r0, ._27 + 4 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._28:\n\
- .align 2, 0\n\
-._27:\n\
- .word gMain\n\
- .word 0x43c\n\
-._10:\n\
- bl gpu_pal_allocator_reset__manage_upper_four\n\
- b ._61\n\
-._11:\n\
- bl ClearBGTilemapBuffers\n\
- ldr r0, ._31 @ \n\
- ldr r1, ._31 + 4 @ \n\
- add r0, r0, r1\n\
- mov r1, #0x0\n\
- strb r1, [r0]\n\
- b ._61\n\
-._32:\n\
- .align 2, 0\n\
-._31:\n\
- .word +0x2000000\n\
- .word 0x1ffff\n\
-._12:\n\
- bl ResetPaletteFade\n\
- ldr r2, ._34 @ gPaletteFade\n\
- ldrb r0, [r2, #0x8]\n\
- mov r1, #0x80\n\
- orr r0, r0, r1\n\
- strb r0, [r2, #0x8]\n\
- ldr r1, ._34 + 4 @ gMain\n\
- ldr r0, ._34 + 8 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._35:\n\
- .align 2, 0\n\
-._34:\n\
- .word gPaletteFade\n\
- .word gMain\n\
- .word 0x43c\n\
-._13:\n\
- bl ResetSpriteData\n\
- b ._61\n\
-._14:\n\
- bl LoadBagGraphicsMultistep\n\
- lsl r0, r0, #0x18\n\
- cmp r0, #0\n\
- bne ._37 @cond_branch\n\
- b ._66\n\
-._37:\n\
- ldr r1, ._40 @ gMain\n\
- ldr r0, ._40 + 4 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._41:\n\
- .align 2, 0\n\
-._40:\n\
- .word gMain\n\
- .word 0x43c\n\
-._15:\n\
- ldr r0, ._43 @ gWindowTemplate_81E6DFC\n\
- bl Text_LoadWindowTemplate\n\
- b ._61\n\
-._44:\n\
- .align 2, 0\n\
-._43:\n\
- .word gWindowTemplate_81E6DFC\n\
-._16:\n\
- ldr r0, ._46 @ gWindowTemplate_81E6DFC\n\
- bl MultistepInitMenuWindowBegin\n\
- ldr r1, ._46 + 4 @ gMain\n\
- ldr r0, ._46 + 8 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._47:\n\
- .align 2, 0\n\
-._46:\n\
- .word gWindowTemplate_81E6DFC\n\
- .word gMain\n\
- .word 0x43c\n\
-._17:\n\
- bl MultistepInitMenuWindowContinue\n\
- cmp r0, #0\n\
- bne ._48 @cond_branch\n\
- b ._66\n\
-._48:\n\
- b ._61\n\
-._18:\n\
- bl ClearVerticalScrollIndicatorPalettes\n\
- bl LoadScrollIndicatorPalette\n\
- mov r0, #0x0\n\
- mov r1, #0xac\n\
- mov r2, #0xc\n\
- bl CreateVerticalScrollIndicators\n\
- mov r0, #0x1\n\
- mov r1, #0xac\n\
- mov r2, #0x94\n\
- bl CreateVerticalScrollIndicators\n\
- mov r0, #0x2\n\
- mov r1, #0x1c\n\
- mov r2, #0x58\n\
- bl CreateVerticalScrollIndicators\n\
- mov r0, #0x3\n\
- mov r1, #0x64\n\
- mov r2, #0x58\n\
- bl CreateVerticalScrollIndicators\n\
- mov r0, #0x0\n\
- mov r1, #0x2\n\
- bl SetVerticalScrollIndicatorPriority\n\
- mov r0, #0x1\n\
- mov r1, #0x2\n\
- bl SetVerticalScrollIndicatorPriority\n\
- mov r0, #0x2\n\
- mov r1, #0x2\n\
- bl SetVerticalScrollIndicatorPriority\n\
- mov r0, #0x3\n\
- mov r1, #0x2\n\
- bl SetVerticalScrollIndicatorPriority\n\
- ldr r0, ._53 @ sReturnLocation\n\
- ldrb r0, [r0]\n\
- sub r0, r0, #0x4\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- cmp r0, #0x1\n\
- bhi ._51 @cond_branch\n\
- mov r0, #0x2\n\
- mov r1, #0x1\n\
- bl SetVerticalScrollIndicators\n\
- mov r0, #0x3\n\
- mov r1, #0x1\n\
- bl SetVerticalScrollIndicators\n\
-._51:\n\
- ldr r1, ._53 + 4 @ gMain\n\
- ldr r0, ._53 + 8 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._54:\n\
- .align 2, 0\n\
-._53:\n\
- .word sReturnLocation\n\
- .word gMain\n\
- .word 0x43c\n\
-._19:\n\
- ldr r1, ._56 @ gUnknown_0203855A\n\
- mov r0, #0x10\n\
- strb r0, [r1]\n\
- ldr r4, ._56 + 4 @ gBGTilemapBuffers\n\
- ldr r5, ._56 + 8 @ sCurrentBagPocket\n\
- ldrb r1, [r5]\n\
- add r1, r1, #0x1\n\
- lsl r1, r1, #0x18\n\
- lsr r1, r1, #0x18\n\
- add r0, r4, #0\n\
- bl sub_80A39B8\n\
- ldrb r1, [r5]\n\
- add r0, r4, #0\n\
- bl DrawPocketIndicatorDots\n\
- bl UpdateAllBagPockets\n\
- ldr r4, ._56 + 12 @ gBagPockets\n\
- ldr r0, [r4, #0x10]\n\
- ldr r1, [r4, #0x14]\n\
- bl SortItemSlots\n\
- ldr r0, [r4, #0x18]\n\
- ldr r1, [r4, #0x1c]\n\
- bl SortItemSlots\n\
- bl sub_80A3D40\n\
- ldr r1, ._56 + 16 @ gCurrentBagPocketItemSlots\n\
- mov r0, #0x0\n\
- ldsb r0, [r5, r0]\n\
- lsl r0, r0, #0x3\n\
- add r0, r0, r4\n\
- ldr r0, [r0]\n\
- str r0, [r1]\n\
- bl sub_80A362C\n\
- b ._61\n\
-._57:\n\
- .align 2, 0\n\
-._56:\n\
- .word gUnknown_0203855A\n\
- .word gBGTilemapBuffers+0x1000\n\
- .word sCurrentBagPocket\n\
- .word gBagPockets\n\
- .word gCurrentBagPocketItemSlots\n\
-._20:\n\
- ldr r0, ._59 @ 0xffff\n\
- mov r1, #0x0\n\
- mov r2, #0x7\n\
- bl sub_80A48E8\n\
- ldr r1, ._59 + 4 @ gBagPocketScrollStates\n\
- ldr r4, ._59 + 8 @ sCurrentBagPocket\n\
- mov r0, #0x0\n\
- ldsb r0, [r4, r0]\n\
- lsl r0, r0, #0x2\n\
- add r0, r0, r1\n\
- ldrb r1, [r0, #0x1]\n\
- ldrb r0, [r0]\n\
- add r1, r1, r0\n\
- ldr r0, ._59 + 12 @ gCurrentBagPocketItemSlots\n\
- ldr r0, [r0]\n\
- lsl r1, r1, #0x2\n\
- add r1, r1, r0\n\
- mov r2, #0x0\n\
- ldsh r0, [r1, r2]\n\
- bl ItemListMenu_InitDescription\n\
- bl ItemListMenu_InitMenu\n\
- ldr r1, ._59 + 16 @ gUnknown_0203855B\n\
- ldrb r0, [r4]\n\
- add r0, r0, #0x1\n\
- strb r0, [r1]\n\
- ldr r1, ._59 + 20 @ gUnknown_0203855C\n\
- mov r0, #0x0\n\
- strb r0, [r1]\n\
- ldr r1, ._59 + 24 @ gMain\n\
- ldr r0, ._59 + 28 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._60:\n\
- .align 2, 0\n\
-._59:\n\
- .word 0xffff\n\
- .word gBagPocketScrollStates\n\
- .word sCurrentBagPocket\n\
- .word gCurrentBagPocketItemSlots\n\
- .word gUnknown_0203855B\n\
- .word gUnknown_0203855C\n\
- .word gMain\n\
- .word 0x43c\n\
-._21:\n\
- bl CreateBagSprite\n\
- mov r0, #0x0\n\
- bl CreateBagPokeballSprite\n\
- bl sub_80A3740\n\
- b ._61\n\
-._22:\n\
- ldr r3, ._63 @ 0x4000208\n\
- ldrh r2, [r3]\n\
- mov r0, #0x0\n\
- strh r0, [r3]\n\
- ldr r4, ._63 + 4 @ 0x4000200\n\
- ldrh r0, [r4]\n\
- mov r1, #0x1\n\
- orr r0, r0, r1\n\
- strh r0, [r4]\n\
- strh r2, [r3]\n\
- ldr r2, ._63 + 8 @ 0x4000004\n\
- ldrh r0, [r2]\n\
- mov r1, #0x8\n\
- orr r0, r0, r1\n\
- strh r0, [r2]\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 r2, ._63 + 12 @ gPaletteFade\n\
- ldrb r1, [r2, #0x8]\n\
- mov r0, #0x7f\n\
- and r0, r0, r1\n\
- strb r0, [r2, #0x8]\n\
- ldr r1, ._63 + 16 @ gMain\n\
- ldr r0, ._63 + 20 @ 0x43c\n\
- add r1, r1, r0\n\
- b ._62\n\
-._64:\n\
- .align 2, 0\n\
-._63:\n\
- .word 0x4000208\n\
- .word 0x4000200\n\
- .word 0x4000004\n\
- .word gPaletteFade\n\
- .word gMain\n\
- .word 0x43c\n\
-._23:\n\
- bl sub_8055870\n\
- cmp r0, #0x1\n\
- beq ._66 @cond_branch\n\
-._61:\n\
- ldr r1, ._67 @ gMain\n\
- ldr r2, ._67 + 4 @ 0x43c\n\
- add r1, r1, r2\n\
-._62:\n\
- ldrb r0, [r1]\n\
- add r0, r0, #0x1\n\
- strb r0, [r1]\n\
- b ._66\n\
-._68:\n\
- .align 2, 0\n\
-._67:\n\
- .word gMain\n\
- .word 0x43c\n\
-._24:\n\
- ldr r0, ._71 @ sub_80A3134\n\
- bl SetVBlankCallback\n\
- ldr r0, ._71 + 4 @ sub_80A3118\n\
- bl SetMainCallback2\n\
- bl sub_80A751C\n\
- bl sub_80A7630\n\
- bl sub_80A770C\n\
- bl sub_80A7828\n\
- bl sub_80A78B8\n\
- ldr r0, ._71 + 8 @ gLinkOpen\n\
- ldrb r0, [r0]\n\
- cmp r0, #0x1\n\
- bne ._69 @cond_branch\n\
- ldr r0, ._71 + 12 @ 0x600f5e0\n\
- mov r1, #0x80\n\
- lsl r1, r1, #0x8\n\
- ldr r2, ._71 + 16 @ 0x600f800\n\
- mov r3, #0x0\n\
- bl debug_sub_8008218\n\
-._69:\n\
- mov r0, #0x1\n\
- b ._70\n\
-._72:\n\
- .align 2, 0\n\
-._71:\n\
- .word sub_80A3134+1\n\
- .word sub_80A3118+1\n\
- .word gLinkOpen\n\
- .word 0x600f5e0\n\
- .word 0x600f800\n\
-._66:\n\
- mov r0, #0x0\n\
-._70:\n\
- add sp, sp, #0x4\n\
- pop {r4, r5}\n\
- pop {r1}\n\
- bx r1");
-}
-#else
static bool8 SetupBagMultistep(void)
{
u32 index;
@@ -897,11 +495,14 @@ static bool8 SetupBagMultistep(void)
sub_80A770C();
sub_80A7828();
sub_80A78B8();
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0xF5E0), (void *)0x8000, (void *)(VRAM + 0xF800), 0);
+#endif
return TRUE;
}
return FALSE;
}
-#endif
static bool8 sub_80A34B4(void)
{
@@ -1029,76 +630,42 @@ void ClearBag(void)
}
#if DEBUG
-__attribute__((naked))
-void debug_sub_80A3714()
-{
- asm("\
- push {r4, r5, r6, lr}\n\
- add sp, sp, #0xfffffff4\n\
- mov r5, #0x0\n\
- ldr r2, ._138 @ gUnknown_Debug_083EBC68\n\
- mov r1, #0x0\n\
-._134:\n\
- lsl r0, r5, #0x1\n\
- add r0, r0, sp\n\
- strh r1, [r0]\n\
- add r0, r5, #1\n\
- lsl r0, r0, #0x10\n\
- lsr r5, r0, #0x10\n\
- cmp r5, #0x4\n\
- bls ._134 @cond_branch\n\
- mov r5, #0x0\n\
- ldrh r0, [r2]\n\
- cmp r0, #0\n\
- beq ._136 @cond_branch\n\
- add r6, r2, #0\n\
-._137:\n\
- lsl r4, r5, #0x2\n\
- add r4, r4, r6\n\
- ldrh r0, [r4]\n\
- bl ItemId_GetPocket\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x8\n\
- ldr r1, ._138 + 4 @ 0xffff0000\n\
- add r0, r0, r1\n\
- lsr r0, r0, #0x10\n\
- ldr r1, ._138 + 8 @ gBagPockets\n\
- lsl r2, r0, #0x3\n\
- add r2, r2, r1\n\
- lsl r0, r0, #0x1\n\
- mov r1, sp\n\
- add r3, r1, r0\n\
- ldrh r1, [r3]\n\
- ldr r0, [r2]\n\
- lsl r1, r1, #0x2\n\
- add r1, r1, r0\n\
- ldr r0, [r4]\n\
- str r0, [r1]\n\
- ldrh r0, [r3]\n\
- add r0, r0, #0x1\n\
- strh r0, [r3]\n\
- add r0, r5, #1\n\
- lsl r0, r0, #0x10\n\
- lsr r5, r0, #0x10\n\
- cmp r5, #0x3b\n\
- bhi ._136 @cond_branch\n\
- lsl r0, r5, #0x2\n\
- add r0, r0, r6\n\
- ldrh r0, [r0]\n\
- cmp r0, #0\n\
- bne ._137 @cond_branch\n\
-._136:\n\
- add sp, sp, #0xc\n\
- pop {r4, r5, r6}\n\
- pop {r0}\n\
- bx r0\n\
-._139:\n\
- .align 2, 0\n\
-._138:\n\
- .word gUnknown_Debug_083EBC68\n\
- .word 0xffff0000\n\
- .word gBagPockets");
+
+const struct ItemSlot gUnknown_Debug_083EBC68[60] =
+{
+ {ITEM_POKE_BALL, 10},
+ {ITEM_ULTRA_BALL, 15},
+ {ITEM_GREAT_BALL, 20},
+ {ITEM_MASTER_BALL, 25},
+ {ITEM_ACRO_BIKE, 1 },
+ {ITEM_OLD_ROD, 1 },
+ {ITEM_GOOD_ROD, 1 },
+ {ITEM_SUPER_ROD, 1 },
+ {ITEM_POKEBLOCK_CASE, 1 },
+ {ITEM_WAILMER_PAIL, 1 },
+ {ITEM_ITEMFINDER, 1 },
+ {ITEM_NONE, 1 },
+};
+
+void debug_sub_80A3714(void)
+{
+ u16 arr[5];
+ u16 i;
+
+ for (i = 0; i < 5; i++)
+ arr[i] = 0;
+ for (i = 0; i < ARRAY_COUNT(gUnknown_Debug_083EBC68); i++)
+ {
+ u16 pocket;
+
+ if (gUnknown_Debug_083EBC68[i].itemId == ITEM_NONE)
+ break;
+ pocket = ItemId_GetPocket(gUnknown_Debug_083EBC68[i].itemId) - 1;
+ gBagPockets[pocket].itemSlots[arr[pocket]] = gUnknown_Debug_083EBC68[i];
+ arr[pocket]++;
+ }
}
+
#endif
static void sub_80A3740(void)
@@ -4040,49 +3607,16 @@ static void sub_80A73FC(void)
MenuCursor_Destroy814AD44();
}
-#if DEBUG
-__attribute__((naked))
-static void sub_80A740C(void)
-{
- asm("\
- push {lr}\n\
- add sp, sp, #0xfffffffc\n\
- bl sub_80A75E4\n\
- bl sub_80A7768\n\
- bl sub_80A7420\n\
- ldr r0, ._931 @ gLinkOpen\n\
- ldrb r0, [r0]\n\
- cmp r0, #0x1\n\
- bne ._930 @cond_branch\n\
- ldr r0, ._931 + 4 @ gLink\n\
- ldr r1, ._931 + 8 @ 0xfbd\n\
- add r0, r0, r1\n\
- ldrb r0, [r0]\n\
- mov r1, #0x0\n\
- str r1, [sp]\n\
- mov r1, #0x1\n\
- mov r2, #0x1\n\
- mov r3, #0x2\n\
- bl debug_sub_8008264\n\
-._930:\n\
- add sp, sp, #0x4\n\
- pop {r0}\n\
- bx r0\n\
-._932:\n\
- .align 2, 0\n\
-._931:\n\
- .word gLinkOpen\n\
- .word gLink\n\
- .word 0xfbd");
-}
-#else
static void sub_80A740C(void)
{
sub_80A75E4();
sub_80A7768();
sub_80A7420();
-}
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 1, 1, 2, 0);
#endif
+}
static void sub_80A7420(void)
{