summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--common_syms/debug/watanabe_debug_menu.txt1
-rw-r--r--common_syms/field/field_map_obj.txt1
-rw-r--r--src/field/field_map_obj.c3
-rw-r--r--src/field/item_menu.c18
-rw-r--r--src/field/mauville_man.c197
-rw-r--r--src/pokemon/mail.c205
-rw-r--r--sym_bss.txt1
-rw-r--r--sym_common.txt19
-rw-r--r--sym_ewram.txt14
10 files changed, 259 insertions, 202 deletions
diff --git a/Makefile b/Makefile
index d91bb6840..8e2e503ab 100644
--- a/Makefile
+++ b/Makefile
@@ -105,7 +105,7 @@ tidy:
$(RM) $(ALL_BUILDS:%=poke%{.gba,.elf,.map})
$(RM) -r build
-$(BUILD_NAME).gba: $(BUILD_NAME).elf
+%.gba: %.elf
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
%.elf: $(LD_SCRIPT) $(ALL_OBJECTS)
diff --git a/common_syms/debug/watanabe_debug_menu.txt b/common_syms/debug/watanabe_debug_menu.txt
new file mode 100644
index 000000000..9b2626a86
--- /dev/null
+++ b/common_syms/debug/watanabe_debug_menu.txt
@@ -0,0 +1 @@
+byte_3005E30
diff --git a/common_syms/field/field_map_obj.txt b/common_syms/field/field_map_obj.txt
index 32d8b1915..93dd77dde 100644
--- a/common_syms/field/field_map_obj.txt
+++ b/common_syms/field/field_map_obj.txt
@@ -1 +1,2 @@
gMapObjects
+gUnknown_Debug_03004BC0
diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c
index 1c0cefacb..c255d3013 100644
--- a/src/field/field_map_obj.c
+++ b/src/field/field_map_obj.c
@@ -1907,6 +1907,9 @@ static u8 gUnknown_030005A4;
static u16 gUnknown_030005A6;
struct MapObject gMapObjects[16];
+#if DEBUG
+u8 gUnknown_Debug_03004BC0[4]; // unknown type
+#endif
void npc_clear_ids_and_state(struct MapObject *mapObj)
{
diff --git a/src/field/item_menu.c b/src/field/item_menu.c
index 61774f816..7922bf69d 100644
--- a/src/field/item_menu.c
+++ b/src/field/item_menu.c
@@ -289,6 +289,24 @@ 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);
diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c
index 51bd9bb35..144c0235a 100644
--- a/src/field/mauville_man.c
+++ b/src/field/mauville_man.c
@@ -1313,7 +1313,7 @@ static void PrintStoryList(void)
Menu_PrintText(gPCText_Cancel, 1, 2 + i * 2);
}
-u8 gUnknown_03000748;
+static u8 gUnknown_03000748;
static void Task_StoryListMenu(u8 taskId)
{
@@ -1392,3 +1392,198 @@ bool8 ScrSpecial_StorytellerInitializeRandomStat(void)
{
return StorytellerInitializeRandomStat();
}
+
+#if DEBUG
+__attribute__((naked))
+void This_is_not_HandleReadMail()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " add r6, r1, #0\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r5, r2, #0x18\n"
+ " ldr r0, .__3\n"
+ " ldrb r3, [r0]\n"
+ " cmp r3, #0\n"
+ " beq .__1 @cond_branch\n"
+ " ldr r2, .__3 + 4\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0xff\n"
+ " mov r0, #0x5\n"
+ " strb r0, [r1]\n"
+ " ldr r0, .__3 + 8\n"
+ " ldrh r1, [r0]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r2, r3\n"
+ " strb r1, [r0]\n"
+ " mov r0, #0x82\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, r0\n"
+ " ldr r0, .__3 + 12\n"
+ " str r0, [r1]\n"
+ " add r3, r3, #0x8\n"
+ " add r1, r2, r3\n"
+ " ldr r0, .__3 + 16\n"
+ " str r0, [r1]\n"
+ " ldr r0, .__3 + 20\n"
+ " ldrh r1, [r0]\n"
+ " b .__2\n"
+ ".__4:\n"
+ " .align 2, 0\n"
+ ".__3:\n"
+ " .word gUnknown_03000748+0x4\n"
+ " .word +0x2000000\n"
+ " .word gSpecialVar_0x8004\n"
+ " .word EasyChat_GetWordText+1\n"
+ " .word ConvertEasyChatWordsToString+1\n"
+ " .word gSpecialVar_0x8006\n"
+ ".__1:\n"
+ " ldr r2, .__7\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0xff\n"
+ " mov r0, #0x5\n"
+ " strb r0, [r1]\n"
+ " add r0, r0, #0xfb\n"
+ " add r1, r2, r0\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x82\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, r0\n"
+ " ldr r0, .__7 + 4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x84\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, r0\n"
+ " ldr r0, .__7 + 8\n"
+ " str r0, [r1]\n"
+ " ldrh r1, [r4, #0x20]\n"
+ " add r0, r1, #0\n"
+ " sub r0, r0, #0x79\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi .__5 @cond_branch\n"
+ " sub r1, r1, #0x79\n"
+ ".__2:\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xfa\n"
+ " strb r1, [r0]\n"
+ " b .__6\n"
+ ".__8:\n"
+ " .align 2, 0\n"
+ ".__7:\n"
+ " .word +0x2000000\n"
+ " .word EasyChat_GetWordText+1\n"
+ " .word ConvertEasyChatWordsToString+1\n"
+ ".__5:\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xfa\n"
+ " strb r3, [r0]\n"
+ " mov r5, #0x0\n"
+ ".__6:\n"
+ " ldr r1, .__12\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq .__9 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq .__10 @cond_branch\n"
+ ".__9:\n"
+ " mov r3, #0x86\n"
+ " lsl r3, r3, #0x1\n"
+ " add r2, r1, r3\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xfa\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, .__12 + 4\n"
+ " b .__11\n"
+ ".__13:\n"
+ " .align 2, 0\n"
+ ".__12:\n"
+ " .word +0x2000000\n"
+ " .word gUnknown_083E5730\n"
+ ".__10:\n"
+ " mov r0, #0x86\n"
+ " lsl r0, r0, #0x1\n"
+ " add r2, r1, r0\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xfa\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, .__18\n"
+ ".__11:\n"
+ " add r0, r0, r1\n"
+ " str r0, [r2]\n"
+ " ldrh r0, [r4, #0x1e]\n"
+ " mov r1, sp\n"
+ " bl MailSpeciesToSpecies\n"
+ " lsl r0, r0, #0x10\n"
+ " ldr r1, .__18 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xcd\n"
+ " lsl r1, r1, #0x11\n"
+ " cmp r0, r1\n"
+ " bhi .__14 @cond_branch\n"
+ " ldr r0, .__18 + 8\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xfa\n"
+ " ldrb r2, [r1]\n"
+ " add r1, r0, #0\n"
+ " cmp r2, #0x6\n"
+ " beq .__15 @cond_branch\n"
+ " cmp r2, #0x9\n"
+ " beq .__16 @cond_branch\n"
+ " b .__17\n"
+ ".__19:\n"
+ " .align 2, 0\n"
+ ".__18:\n"
+ " .word gUnknown_083E57A4\n"
+ " .word 0xffff0000\n"
+ " .word +0x2000000\n"
+ ".__15:\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0xfb\n"
+ " mov r0, #0x1\n"
+ " b .__21\n"
+ ".__16:\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0xfb\n"
+ " mov r0, #0x2\n"
+ " b .__21\n"
+ ".__14:\n"
+ " ldr r1, .__22\n"
+ ".__17:\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0xfb\n"
+ " mov r0, #0x0\n"
+ ".__21:\n"
+ " strb r0, [r2]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xf4\n"
+ " str r4, [r0]\n"
+ " sub r0, r0, #0x8\n"
+ " str r6, [r0]\n"
+ " add r0, r0, #0xc\n"
+ " strb r5, [r0]\n"
+ " ldr r0, .__22 + 4\n"
+ " bl SetMainCallback2\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ ".__23:\n"
+ " .align 2, 0\n"
+ ".__22:\n"
+ " .word +0x2000000\n"
+ " .word sub_80F8D50+1\n"
+ "\n"
+ );
+}
+#endif
diff --git a/src/pokemon/mail.c b/src/pokemon/mail.c
index 565a9861b..6e03958e6 100644
--- a/src/pokemon/mail.c
+++ b/src/pokemon/mail.c
@@ -68,6 +68,11 @@ struct MailGraphics
u16 color12;
};
+#if DEBUG
+// should be static
+__attribute__((section(".bss"))) u8 unk_debug_bss_2;
+#endif
+
const u16 gUnknown_083E562C[][2] =
{
{0x6ACD, 0x51A5},
@@ -322,205 +327,6 @@ static void sub_80F8F58(void);
static void sub_80F8F78(void);
static void sub_80F8FB4(void);
-
-#if DEBUG
-
-// should be static
-__attribute__((section(".bss"))) u8 unk_debug_bss_2;
-
-__attribute__((naked))
-void HandleReadMail(struct MailStruct *aStruct, MainCallback callback, bool8 bool81)
-{
- asm(
- " push {r4, r5, r6, lr}\n"
- " add sp, sp, #0xfffffffc\n"
- " add r4, r0, #0\n"
- " add r6, r1, #0\n"
- " lsl r2, r2, #0x18\n"
- " lsr r5, r2, #0x18\n"
- " ldr r0, ._3\n"
- " ldrb r3, [r0]\n"
- " cmp r3, #0\n"
- " beq ._1 @cond_branch\n"
- " ldr r2, ._3 + 4\n"
- " add r1, r2, #0\n"
- " add r1, r1, #0xff\n"
- " mov r0, #0x5\n"
- " strb r0, [r1]\n"
- " ldr r0, ._3 + 8\n"
- " ldrh r1, [r0]\n"
- " mov r3, #0x80\n"
- " lsl r3, r3, #0x1\n"
- " add r0, r2, r3\n"
- " strb r1, [r0]\n"
- " mov r0, #0x82\n"
- " lsl r0, r0, #0x1\n"
- " add r1, r2, r0\n"
- " ldr r0, ._3 + 12\n"
- " str r0, [r1]\n"
- " add r3, r3, #0x8\n"
- " add r1, r2, r3\n"
- " ldr r0, ._3 + 16\n"
- " str r0, [r1]\n"
- " ldr r0, ._3 + 20\n"
- " ldrh r1, [r0]\n"
- " b ._2\n"
- "._4:\n"
- " .align 2, 0\n"
- "._3:\n"
- " .word gUnknown_03000748+0x4\n"
- " .word +0x2000000\n"
- " .word gSpecialVar_0x8004\n"
- " .word EasyChat_GetWordText+1\n"
- " .word ConvertEasyChatWordsToString+1\n"
- " .word gSpecialVar_0x8006\n"
- "._1:\n"
- " ldr r2, ._7\n"
- " add r1, r2, #0\n"
- " add r1, r1, #0xff\n"
- " mov r0, #0x5\n"
- " strb r0, [r1]\n"
- " add r0, r0, #0xfb\n"
- " add r1, r2, r0\n"
- " mov r0, #0x1\n"
- " strb r0, [r1]\n"
- " mov r0, #0x82\n"
- " lsl r0, r0, #0x1\n"
- " add r1, r2, r0\n"
- " ldr r0, ._7 + 4\n"
- " str r0, [r1]\n"
- " mov r0, #0x84\n"
- " lsl r0, r0, #0x1\n"
- " add r1, r2, r0\n"
- " ldr r0, ._7 + 8\n"
- " str r0, [r1]\n"
- " ldrh r1, [r4, #0x20]\n"
- " add r0, r1, #0\n"
- " sub r0, r0, #0x79\n"
- " lsl r0, r0, #0x10\n"
- " lsr r0, r0, #0x10\n"
- " cmp r0, #0xb\n"
- " bhi ._5 @cond_branch\n"
- " sub r1, r1, #0x79\n"
- "._2:\n"
- " add r0, r2, #0\n"
- " add r0, r0, #0xfa\n"
- " strb r1, [r0]\n"
- " b ._6\n"
- "._8:\n"
- " .align 2, 0\n"
- "._7:\n"
- " .word +0x2000000\n"
- " .word EasyChat_GetWordText+1\n"
- " .word ConvertEasyChatWordsToString+1\n"
- "._5:\n"
- " add r0, r2, #0\n"
- " add r0, r0, #0xfa\n"
- " strb r3, [r0]\n"
- " mov r5, #0x0\n"
- "._6:\n"
- " ldr r1, ._12\n"
- " mov r2, #0x80\n"
- " lsl r2, r2, #0x1\n"
- " add r0, r1, r2\n"
- " ldrb r0, [r0]\n"
- " cmp r0, #0\n"
- " beq ._9 @cond_branch\n"
- " cmp r0, #0x1\n"
- " beq ._10 @cond_branch\n"
- "._9:\n"
- " mov r3, #0x86\n"
- " lsl r3, r3, #0x1\n"
- " add r2, r1, r3\n"
- " add r0, r1, #0\n"
- " add r0, r0, #0xfa\n"
- " ldrb r0, [r0]\n"
- " lsl r0, r0, #0x3\n"
- " ldr r1, ._12 + 4\n"
- " b ._11\n"
- "._13:\n"
- " .align 2, 0\n"
- "._12:\n"
- " .word +0x2000000\n"
- " .word gUnknown_083E5730\n"
- "._10:\n"
- " mov r0, #0x86\n"
- " lsl r0, r0, #0x1\n"
- " add r2, r1, r0\n"
- " add r0, r1, #0\n"
- " add r0, r0, #0xfa\n"
- " ldrb r0, [r0]\n"
- " lsl r0, r0, #0x3\n"
- " ldr r1, ._18\n"
- "._11:\n"
- " add r0, r0, r1\n"
- " str r0, [r2]\n"
- " ldrh r0, [r4, #0x1e]\n"
- " mov r1, sp\n"
- " bl MailSpeciesToSpecies\n"
- " lsl r0, r0, #0x10\n"
- " ldr r1, ._18 + 4\n"
- " add r0, r0, r1\n"
- " mov r1, #0xcd\n"
- " lsl r1, r1, #0x11\n"
- " cmp r0, r1\n"
- " bhi ._14 @cond_branch\n"
- " ldr r0, ._18 + 8\n"
- " add r1, r0, #0\n"
- " add r1, r1, #0xfa\n"
- " ldrb r2, [r1]\n"
- " add r1, r0, #0\n"
- " cmp r2, #0x6\n"
- " beq ._15 @cond_branch\n"
- " cmp r2, #0x9\n"
- " beq ._16 @cond_branch\n"
- " b ._17\n"
- "._19:\n"
- " .align 2, 0\n"
- "._18:\n"
- " .word gUnknown_083E57A4\n"
- " .word 0xffff0000\n"
- " .word +0x2000000\n"
- "._15:\n"
- " add r2, r1, #0\n"
- " add r2, r2, #0xfb\n"
- " mov r0, #0x1\n"
- " b ._21\n"
- "._16:\n"
- " add r2, r1, #0\n"
- " add r2, r2, #0xfb\n"
- " mov r0, #0x2\n"
- " b ._21\n"
- "._14:\n"
- " ldr r1, ._22\n"
- "._17:\n"
- " add r2, r1, #0\n"
- " add r2, r2, #0xfb\n"
- " mov r0, #0x0\n"
- "._21:\n"
- " strb r0, [r2]\n"
- " add r0, r1, #0\n"
- " add r0, r0, #0xf4\n"
- " str r4, [r0]\n"
- " sub r0, r0, #0x8\n"
- " str r6, [r0]\n"
- " add r0, r0, #0xc\n"
- " strb r5, [r0]\n"
- " ldr r0, ._22 + 4\n"
- " bl SetMainCallback2\n"
- " add sp, sp, #0x4\n"
- " pop {r4, r5, r6}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._23:\n"
- " .align 2, 0\n"
- "._22:\n"
- " .word +0x2000000\n"
- " .word sub_80F8D50+1\n"
- "\n"
- );
-}
-#else
void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
{
u16 mailDesign;
@@ -584,7 +390,6 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
SetMainCallback2(sub_80F8D50);
}
-#endif
#define RETURN_UP_STATE break
#define RETURN_SKIP_STATE return FALSE
diff --git a/sym_bss.txt b/sym_bss.txt
index bc2ae107c..d09270756 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -36,6 +36,7 @@ unk_debug_bss_3:
.include "src/easy_chat_2.o"
.include "src/pokenav_before.o"
.include "src/field/mauville_man.o"
+ .include "src/pokemon/mail.o"
.include "src/field/menu_helpers.o"
.include "src/field/slot_machine.o"
.include "src/scene/contest_painting.o"
diff --git a/sym_common.txt b/sym_common.txt
index e31dd104b..7844c799b 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -150,9 +150,23 @@ gUnknown_03004AE4: @ 3004AE4
.space 0x4
.include "field/start_menu.o"
+
+@ debug start menu
+gUnknown_Debug_03004BD0:
+ .space 0x4
+
.include "engine/sound.o"
.include "battle/battle_anim.o"
.include "engine/task.o"
+
+@ debug stuff (possibly part of mori_debug_menu?)
+unk_debug_common_1:
+ .space 0x4
+unk_3004E94:
+ .space 0x4
+unk_3004E98:
+ .space 0x8
+
.include "debug/mori_debug_menu.o"
@ unknown_task
@@ -184,6 +198,11 @@ gCurrentBagPocketItemSlots: @ 3005D24
gUnknown_03005D28: @ 3005D28
.space 0x4
+@ debug stuff
+unk_debug_common_0:
+ .space 0x4
+ .include "debug/watanabe_debug_menu.o"
+
.include "engine/record_mixing.o"
.include "debug/sound_check_menu.o"
.include "field/tv.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index e3ccb6283..ab59fe5a7 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -32,6 +32,12 @@ gUnknown_02023A04: @ 2023A04
gUnknown_02023A14: @ 2023A14
.space 0x4C
+@ debug stuff - probably not correct and should be part of gBattleBufferA
+gUnknown_02023A14_4C:
+ .space 0x4
+gUnknown_02023A14_50:
+ .space 0x290
+
gBattleBufferA: @ 2023A60
.space 0x2
@@ -362,6 +368,14 @@ gUnknown_0203847F: @ 203847F
gUnknown_02038480: @ 2038480
.space 0x64
+@ debug stuff
+unk_2038790:
+ .space 0x4
+unk_2038794:
+ .space 0x4
+unk_2038798:
+ .space 0x4
+
gUnknown_020384E4: @ 20384E4
.space 0x1