From 91cfb6a564f73f02eb57792f8a0f4aa82e1867d1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 16 Jan 2018 22:25:35 -0600 Subject: add debug ifdefs --- src/field/berry.c | 521 ++++++++++++++++ src/field/bike.c | 21 + src/field/choose_party.c | 101 ++++ src/field/decoration_inventory.c | 11 + src/field/field_control_avatar.c | 472 ++++++++++++++- src/field/field_map_obj.c | 515 ++++++++++++++++ src/field/field_player_avatar.c | 100 ++- src/field/mauville_man.c | 81 +++ src/field/overworld.c | 95 +++ src/field/party_menu.c | 14 +- src/field/pokeblock.c | 46 +- src/field/roamer.c | 19 + src/field/slot_machine.c | 1237 +++++++++++++++++++++++++++++++++++++- src/field/start_menu.c | 303 ++++++++++ src/field/wild_encounter.c | 31 + 15 files changed, 3523 insertions(+), 44 deletions(-) (limited to 'src/field') diff --git a/src/field/berry.c b/src/field/berry.c index 088267ad0..7c6640dc8 100644 --- a/src/field/berry.c +++ b/src/field/berry.c @@ -999,6 +999,66 @@ extern u16 gSpecialVar_0x8006; static u8 CalcBerryYield(struct BerryTree *tree); static u16 GetStageDurationByBerryType(u8 berry); +#if DEBUG +__attribute__((naked)) +void debug_sub_80C2B04() +{ + asm( + " push {lr}\n" + " mov r0, #0x0\n" + " bl sub_80B47D8\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r2, ._1\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r2\n" + " ldrh r0, [r1, #0x10]\n" + " sub r0, r0, #0x1\n" + " strh r0, [r1, #0x10]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._2:\n" + " .align 2, 0\n" + "._1:\n" + " .word gTasks\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_80C2B30() +{ + asm( + " push {lr}\n" + " mov r0, #0x1\n" + " bl sub_80B47D8\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " ldr r2, ._3\n" + " lsl r1, r0, #0x2\n" + " add r1, r1, r0\n" + " lsl r1, r1, #0x3\n" + " add r1, r1, r2\n" + " ldrh r0, [r1, #0x10]\n" + " sub r0, r0, #0x1\n" + " strh r0, [r1, #0x10]\n" + " bl CloseMenu\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "._4:\n" + " .align 2, 0\n" + "._3:\n" + " .word gTasks\n" + "\n" + ); +} +#endif + // unused // this could be static, but making it so causes a compile-time warning. void ClearEnigmaBerries(void) @@ -1022,6 +1082,180 @@ void SetEnigmaBerry(u8 *src) gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2; } +#if DEBUG +__attribute__((naked)) +void debug_sub_80C2BD0() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " ldr r3, ._11\n" + " ldr r1, ._11 + 4\n" + " add r4, r3, r1\n" + " ldr r6, [r4]\n" + " add r1, r1, #0x4\n" + " add r2, r3, r1\n" + " ldr r7, [r2]\n" + " mov r1, #0x0\n" + " str r1, [r4]\n" + " str r1, [r2]\n" + " add r4, r0, #0\n" + " mov r2, #0x0\n" + " ldr r5, ._11 + 8\n" + "._10:\n" + " add r0, r4, r1\n" + " ldrb r0, [r0]\n" + " add r2, r2, r0\n" + " add r1, r1, #0x1\n" + " cmp r1, r5\n" + " bls ._10 @cond_branch\n" + " ldr r1, ._11 + 4\n" + " add r0, r3, r1\n" + " str r6, [r0]\n" + " add r1, r1, #0x4\n" + " add r0, r3, r1\n" + " str r7, [r0]\n" + " add r0, r2, #0\n" + " pop {r4, r5, r6, r7}\n" + " pop {r1}\n" + " bx r1\n" + "._12:\n" + " .align 2, 0\n" + "._11:\n" + " .word gSaveBlock1\n" + " .word 0x316c\n" + " .word 0x52b\n" + "\n" + ); +} +#endif + +#if DEBUG +__attribute__((naked)) +u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6, r7}\n" + " add r3, r0, #0\n" + " lsl r1, r1, #0x18\n" + " lsr r1, r1, #0x18\n" + " mov r9, r1\n" + " lsl r2, r2, #0x18\n" + " lsr r2, r2, #0x18\n" + " mov r8, r2\n" + " ldr r4, ._16\n" + " ldr r1, ._16 + 4\n" + " add r0, r4, r1\n" + " add r2, r0, #0\n" + " ldr r1, ._16 + 8\n" + " ldmia r1!, {r5, r6, r7}\n" + " stmia r2!, {r5, r6, r7}\n" + " ldmia r1!, {r5, r6, r7}\n" + " stmia r2!, {r5, r6, r7}\n" + " ldr r1, [r1]\n" + " str r1, [r2]\n" + " add r1, r3, #0\n" + " bl StringCopy\n" + " ldr r0, ._16 + 12\n" + " add r6, r4, r0\n" + " ldr r1, ._16 + 16\n" + " add r0, r6, #0\n" + " bl StringCopy\n" + " ldr r1, ._16 + 20\n" + " add r5, r4, r1\n" + " ldr r1, ._16 + 24\n" + " add r0, r5, #0\n" + " bl StringCopy\n" + " ldr r2, ._16 + 28\n" + " add r0, r4, r2\n" + " str r6, [r0]\n" + " ldr r6, ._16 + 32\n" + " add r0, r4, r6\n" + " str r5, [r0]\n" + " mov r2, #0x0\n" + " ldr r6, ._16 + 36\n" + " ldr r7, ._16 + 40\n" + " add r5, r4, r7\n" + " ldr r3, ._16 + 44\n" + "._13:\n" + " add r0, r2, r5\n" + " add r1, r2, r3\n" + " ldrb r1, [r1]\n" + " strb r1, [r0]\n" + " add r2, r2, #0x1\n" + " cmp r2, r6\n" + " ble ._13 @cond_branch\n" + " ldr r0, ._16\n" + " ldr r3, ._16 + 48\n" + " ldr r2, ._16 + 52\n" + " add r1, r0, r2\n" + " mov r2, #0xf\n" + "._14:\n" + " ldrh r0, [r3]\n" + " strh r0, [r1]\n" + " add r3, r3, #0x2\n" + " add r1, r1, #0x2\n" + " sub r2, r2, #0x1\n" + " cmp r2, #0\n" + " bge ._14 @cond_branch\n" + " mov r2, #0x0\n" + " ldr r5, ._16 + 56\n" + " ldr r3, ._16 + 60\n" + "._15:\n" + " add r0, r2, r5\n" + " add r1, r2, r3\n" + " ldrb r1, [r1]\n" + " strb r1, [r0]\n" + " add r2, r2, #0x1\n" + " cmp r2, #0x11\n" + " ble ._15 @cond_branch\n" + " ldr r5, ._16 + 64\n" + " add r0, r4, r5\n" + " mov r6, r9\n" + " strb r6, [r0]\n" + " ldr r7, ._16 + 68\n" + " add r0, r4, r7\n" + " mov r1, r8\n" + " strb r1, [r0]\n" + " ldr r2, ._16 + 4\n" + " add r0, r4, r2\n" + " bl debug_sub_80C2BD0\n" + " add r5, r5, #0x4\n" + " add r1, r4, r5\n" + " str r0, [r1]\n" + " pop {r3, r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._17:\n" + " .align 2, 0\n" + "._16:\n" + " .word gSaveBlock1\n" + " .word 0x3160\n" + " .word gBerries\n" + " .word 0x361c\n" + " .word gUnknown_Debug_083F7F84\n" + " .word 0x3649\n" + " .word gUnknown_Debug_083F7F90\n" + " .word 0x316c\n" + " .word 0x3170\n" + " .word 0x47f\n" + " .word 0x317c\n" + " .word gSpriteImage_83C172C+0x80\n" + " .word gSpriteImage_83C172C+0x500\n" + " .word 0x35fc\n" + " .word gSaveBlock1+0x3676\n" + " .word gUnknown_Debug_839B6CE\n" + " .word 0x3688\n" + " .word 0x3689\n" + "\n" + ); +} +#else static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) { const u8 *description1; @@ -1051,9 +1285,110 @@ static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) return checksum; } +#endif + +#if DEBUG +__attribute__((naked)) +void debug_sub_80C2D24() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r8\n" + " push {r7}\n" + " ldr r6, [sp, #0x18]\n" + " ldr r4, [sp, #0x1c]\n" + " mov r8, r4\n" + " ldr r5, ._18\n" + " ldr r7, ._18 + 4\n" + " add r4, r5, r7\n" + " strb r0, [r4]\n" + " ldr r4, ._18 + 8\n" + " add r0, r5, r4\n" + " strb r1, [r0]\n" + " add r7, r7, #0x2\n" + " add r0, r5, r7\n" + " strb r2, [r0]\n" + " ldr r1, ._18 + 12\n" + " add r0, r5, r1\n" + " strb r3, [r0]\n" + " add r4, r4, #0x3\n" + " add r0, r5, r4\n" + " strb r6, [r0]\n" + " add r7, r7, #0x3\n" + " add r0, r5, r7\n" + " mov r1, r8\n" + " strb r1, [r0]\n" + " sub r4, r4, #0x19\n" + " add r0, r5, r4\n" + " bl debug_sub_80C2BD0\n" + " ldr r7, ._18 + 16\n" + " add r5, r5, r7\n" + " str r0, [r5]\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._19:\n" + " .align 2, 0\n" + "._18:\n" + " .word gSaveBlock1\n" + " .word 0x3175\n" + " .word 0x3176\n" + " .word 0x3178\n" + " .word 0x368c\n" + "\n" + ); +} +#endif // due to e-reader scans being particularly volatile to failure, it is a requirement to check for // their integrity here due to scans possibly failing to produce the correct result. +#if DEBUG +__attribute__((naked)) +bool32 IsEnigmaBerryValid() +{ + asm( + " push {r4, lr}\n" + " ldr r4, ._24\n" + " ldr r1, ._24 + 4\n" + " add r0, r4, r1\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._22 @cond_branch\n" + " ldr r2, ._24 + 8\n" + " add r0, r4, r2\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._22 @cond_branch\n" + " ldr r1, ._24 + 12\n" + " add r0, r4, r1\n" + " bl debug_sub_80C2BD0\n" + " ldr r2, ._24 + 16\n" + " add r1, r4, r2\n" + " ldr r1, [r1]\n" + " cmp r0, r1\n" + " bne ._22 @cond_branch\n" + " mov r0, #0x1\n" + " b ._23\n" + "._25:\n" + " .align 2, 0\n" + "._24:\n" + " .word gSaveBlock1\n" + " .word 0x3174\n" + " .word 0x316a\n" + " .word 0x3160\n" + " .word 0x368c\n" + "._22:\n" + " mov r0, #0x0\n" + "._23:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} +#else bool32 IsEnigmaBerryValid(void) { if (gSaveBlock1.enigmaBerry.berry.stageDuration == 0) @@ -1064,6 +1399,7 @@ bool32 IsEnigmaBerryValid(void) return FALSE; return TRUE; } +#endif const struct Berry *GetBerryInfo(u8 berry) { @@ -1417,6 +1753,177 @@ bool8 PlayerHasBerries(void) return IsBagPocketNonEmpty(BAG_BERRIES); } +#if DEBUG +void debug_sub_80C33FC(u8 *buffer, s32 value, u8 n) +{ + StringAppend(gStringVar4, buffer); + ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, n); + StringAppend(gStringVar4, gStringVar1); +} + +extern const u8 gUnknown_Debug_083F7F9D[]; +extern const u8 gUnknown_Debug_083F7FA2[]; +extern const u8 gUnknown_Debug_083F7FA9[]; +extern const u8 gUnknown_Debug_083F7FB0[]; +extern const u8 gUnknown_Debug_083F7FB7[]; +extern const u8 gUnknown_Debug_083F7FBE[]; +extern const u8 gUnknown_Debug_083F7FC5[]; +extern const u8 gUnknown_Debug_083F7FCC[]; +extern const u8 gUnknown_Debug_083F7FD3[]; +extern const u8 gUnknown_Debug_083F7FD3[]; +extern const u8 gUnknown_Debug_083F7FD3[]; + +#ifdef NONMATCHING +u8* DebugOpenBerryInfo(void) +{ + s32 i; + u8 berryTreeId; + struct BerryTree *berryTree; + + if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript) + return NULL; + + berryTreeId = FieldObjectGetBerryTreeId(gSelectedMapObject); + berryTree = GetBerryTreeInfo(berryTreeId); + + for (i = 0; i < 500; i++) + gStringVar4[i] |= 0xFF; + + debug_sub_80C33FC(gUnknown_Debug_083F7F9D, berryTreeId, 3); + debug_sub_80C33FC(gUnknown_Debug_083F7FA2, berryTree->berry, 2); + debug_sub_80C33FC(gUnknown_Debug_083F7FA9, berryTree->stage, 2); + debug_sub_80C33FC(gUnknown_Debug_083F7FB0, berryTree->secondsUntilNextStage, 5); + debug_sub_80C33FC(gUnknown_Debug_083F7FB7, berryTree->berryYield, 2); + debug_sub_80C33FC(gUnknown_Debug_083F7FBE, berryTree->regrowthCount, 3); + debug_sub_80C33FC(gUnknown_Debug_083F7FC5, berryTree->growthSparkle, 1); + debug_sub_80C33FC(gUnknown_Debug_083F7FCC, berryTree->watered1, 1); + debug_sub_80C33FC(gUnknown_Debug_083F7FD3, berryTree->watered2, 1); + debug_sub_80C33FC(gUnknown_Debug_083F7FD3, berryTree->watered3, 1); + debug_sub_80C33FC(gUnknown_Debug_083F7FD3, berryTree->watered4, 1); + + return gStringVar4; +} +#else +__attribute__((naked)) +void DebugOpenBerryInfo() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " bl GetFieldObjectScriptPointerForComparison\n" + " ldr r1, ._138\n" + " cmp r0, r1\n" + " beq ._136 @cond_branch\n" + " mov r0, #0x0\n" + " b ._137\n" + "._139:\n" + " .align 2, 0\n" + "._138:\n" + " .word BerryTreeScript\n" + "._136:\n" + " ldr r0, ._141\n" + " ldrb r0, [r0]\n" + " bl FieldObjectGetBerryTreeId\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " add r0, r6, #0\n" + " bl GetBerryTreeInfo\n" + " add r5, r0, #0\n" + " mov r2, #0x0\n" + " ldr r7, ._141 + 4\n" + " ldr r4, ._141 + 8\n" + " mov r3, #0xff\n" + "._140:\n" + " add r1, r2, r4\n" + " ldrb r0, [r1]\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " add r2, r2, #0x1\n" + " cmp r2, r7\n" + " ble ._140 @cond_branch\n" + " ldr r0, ._141 + 12\n" + " add r1, r6, #0\n" + " mov r2, #0x3\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 16\n" + " ldrb r1, [r5]\n" + " mov r2, #0x2\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 20\n" + " ldrb r1, [r5, #0x1]\n" + " lsl r1, r1, #0x19\n" + " lsr r1, r1, #0x19\n" + " mov r2, #0x2\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 24\n" + " ldrh r1, [r5, #0x2]\n" + " mov r2, #0x5\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 28\n" + " ldrb r1, [r5, #0x4]\n" + " mov r2, #0x2\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 32\n" + " ldrb r1, [r5, #0x5]\n" + " lsl r1, r1, #0x1c\n" + " lsr r1, r1, #0x1c\n" + " mov r2, #0x3\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 36\n" + " ldrb r1, [r5, #0x1]\n" + " lsr r1, r1, #0x7\n" + " mov r2, #0x1\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 40\n" + " ldrb r1, [r5, #0x5]\n" + " lsl r1, r1, #0x1b\n" + " lsr r1, r1, #0x1f\n" + " mov r2, #0x1\n" + " bl debug_sub_80C33FC\n" + " ldr r4, ._141 + 44\n" + " ldrb r1, [r5, #0x5]\n" + " lsl r1, r1, #0x1a\n" + " lsr r1, r1, #0x1f\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " bl debug_sub_80C33FC\n" + " ldrb r1, [r5, #0x5]\n" + " lsl r1, r1, #0x19\n" + " lsr r1, r1, #0x1f\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " bl debug_sub_80C33FC\n" + " ldrb r1, [r5, #0x5]\n" + " lsr r1, r1, #0x7\n" + " add r0, r4, #0\n" + " mov r2, #0x1\n" + " bl debug_sub_80C33FC\n" + " ldr r0, ._141 + 8\n" + "._137:\n" + " pop {r4, r5, r6, r7}\n" + " pop {r1}\n" + " bx r1\n" + "._142:\n" + " .align 2, 0\n" + "._141:\n" + " .word gSelectedMapObject\n" + " .word 0x1f3\n" + " .word gStringVar4\n" + " .word gUnknown_Debug_083F7F9D\n" + " .word gUnknown_Debug_083F7FA2\n" + " .word gUnknown_Debug_083F7FA9\n" + " .word gUnknown_Debug_083F7FB0\n" + " .word gUnknown_Debug_083F7FB7\n" + " .word gUnknown_Debug_083F7FBE\n" + " .word gUnknown_Debug_083F7FC5\n" + " .word gUnknown_Debug_083F7FCC\n" + " .word gUnknown_Debug_083F7FD3\n" + "\n" + ); +} +#endif + +#endif + // whenever the player is not within view of the berry tree during its sparkle state, the // sparkle state will be reset. void ResetBerryTreeSparkleFlags(void) @@ -1445,3 +1952,17 @@ void ResetBerryTreeSparkleFlags(void) } } } + +#if DEBUG +static const u8 gUnknown_Debug_083F7F84[] = _("そとから きた きのみ"); +static const u8 gUnknown_Debug_083F7F90[] = _("ただいま かいはつちゅう"); +static const u8 gUnknown_Debug_083F7F9D[] = _("POS:"); +static const u8 gUnknown_Debug_083F7FA2[] = _("\nTYPE:"); +static const u8 gUnknown_Debug_083F7FA9[] = _("\nGROW:"); +static const u8 gUnknown_Debug_083F7FB0[] = _("\nTIME:"); +static const u8 gUnknown_Debug_083F7FB7[] = _("\nFCNT:"); +static const u8 gUnknown_Debug_083F7FBE[] = _("\nSCNT:"); +static const u8 gUnknown_Debug_083F7FC5[] = _("\nHOOK:"); +static const u8 gUnknown_Debug_083F7FCC[] = _("\nWBIT:"); +static const u8 gUnknown_Debug_083F7FD3[] = _(""); +#endif diff --git a/src/field/bike.c b/src/field/bike.c index 8db01b4b4..736dbc837 100644 --- a/src/field/bike.c +++ b/src/field/bike.c @@ -14,6 +14,11 @@ extern bool8 gBikeCyclingChallenge; extern u8 gBikeCollisions; extern u8 gUnusedBikeCameraAheadPanback; +#ifdef DEBUG +extern u8 gUnknown_020297ED; +u8 debug_sub_805F2B0(u8); +#endif + static void MovePlayerOnMachBike(u8, u16, u16); static u8 GetMachBikeTransition(u8 *); static void MachBikeTransition_FaceDirection(u8); @@ -126,6 +131,14 @@ static const struct BikeHistoryInputInfo gAcroBikeTricksList[] = void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys) { +#ifdef DEBUG + if (gUnknown_020297ED && debug_sub_805F2B0(direction)) + { + Bike_SetBikeStill(); + return; + } +#endif + if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) MovePlayerOnMachBike(direction, newKeys, heldKeys); else @@ -271,6 +284,14 @@ static void MachBikeTransition_TrySlowDown(u8 var) // the acro bike requires the input handler to be executed before the transition can. static void MovePlayerOnAcroBike(u8 newDirection, u16 newKeys, u16 heldKeys) { +#ifdef DEBUG + if (gUnknown_020297ED && debug_sub_805F2B0(newDirection)) + { + Bike_SetBikeStill(); + return; + } +#endif + sAcroBikeTransitions[CheckMovementInputAcroBike(&newDirection, newKeys, heldKeys)](newDirection); } diff --git a/src/field/choose_party.c b/src/field/choose_party.c index 3ba04e489..545c19dfa 100644 --- a/src/field/choose_party.c +++ b/src/field/choose_party.c @@ -527,6 +527,107 @@ static void BattleTowerEntryMenuCallback_Exit(u8 taskId) sub_81227FC(taskId); } +#if DEBUG +__attribute__((naked)) +void debug_sub_81381B4() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6, r7}\n" + " ldr r4, ._189\n" + " add r0, r4, #0\n" + " mov r1, #0x0\n" + " mov r2, #0x60\n" + " bl gScriptFuncs_End+0x5c24\n" + " mov r7, #0x0\n" + " mov r8, r4\n" + " mov r0, #0x4\n" + " add r0, r0, r8\n" + " mov r9, r0\n" + "._188:\n" + " mov r0, #0x64\n" + " add r1, r7, #0\n" + " mul r1, r1, r0\n" + " ldr r0, ._189 + 4\n" + " add r5, r1, r0\n" + " add r0, r5, #0\n" + " mov r1, #0x41\n" + " bl GetMonData\n" + " lsl r4, r7, #0x5\n" + " mov r1, r8\n" + " add r6, r4, r1\n" + " strh r0, [r6]\n" + " lsl r0, r0, #0x10\n" + " cmp r0, #0\n" + " beq ._187 @cond_branch\n" + " add r0, r5, #0\n" + " mov r1, #0x38\n" + " bl GetMonData\n" + " strb r0, [r6, #0xf]\n" + " add r0, r5, #0\n" + " mov r1, #0x39\n" + " bl GetMonData\n" + " strh r0, [r6, #0x10]\n" + " add r0, r5, #0\n" + " mov r1, #0x3a\n" + " bl GetMonData\n" + " strh r0, [r6, #0x12]\n" + " add r0, r5, #0\n" + " mov r1, #0x37\n" + " bl GetMonData\n" + " mov r1, r8\n" + " add r1, r1, #0x14\n" + " add r1, r4, r1\n" + " str r0, [r1]\n" + " add r0, r5, #0\n" + " mov r1, #0xc\n" + " bl GetMonData\n" + " strh r0, [r6, #0x2]\n" + " add r0, r5, #0\n" + " mov r1, #0x0\n" + " bl GetMonData\n" + " mov r1, r8\n" + " add r1, r1, #0x18\n" + " add r1, r4, r1\n" + " str r0, [r1]\n" + " add r0, r5, #0\n" + " bl GetMonGender\n" + " strb r0, [r6, #0x1c]\n" + " add r4, r4, r9\n" + " add r0, r5, #0\n" + " mov r1, #0x2\n" + " add r2, r4, #0\n" + " bl GetMonData\n" + " add r0, r4, #0\n" + " bl StripExtCtrlCodes\n" + " add r0, r5, #0\n" + " mov r1, #0x3\n" + " bl GetMonData\n" + " strb r0, [r6, #0x1d]\n" + "._187:\n" + " add r0, r7, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " cmp r7, #0x2\n" + " bls ._188 @cond_branch\n" + " pop {r3, r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._190:\n" + " .align 2, 0\n" + "._189:\n" + " .word gUnknown_02023A00\n" + " .word gPlayerParty+0x12c\n" + "\n" + ); +} +#endif + bool8 SetupLinkMultiBattlePartyMenu(void) { switch (ewram1B000_alt.setupState) diff --git a/src/field/decoration_inventory.c b/src/field/decoration_inventory.c index dd0e972aa..21ced1be8 100644 --- a/src/field/decoration_inventory.c +++ b/src/field/decoration_inventory.c @@ -164,3 +164,14 @@ u8 sub_81341D4(void) } return count; } + + +#ifdef DEBUG +void debug_sub_814A3A8(void) +{ + u8 decor; + + for (decor = 0; decor < DECOR_COUNT; decor++) + IsThereStorageSpaceForDecoration(decor); +} +#endif diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c index 52e66f16e..dad2fb1d2 100644 --- a/src/field/field_control_avatar.c +++ b/src/field/field_control_avatar.c @@ -82,25 +82,25 @@ extern u8 gUnknown_081C6BDE[]; static void player_get_pos_to_and_height(struct MapPosition *); static void player_get_next_pos_and_height(struct MapPosition *); -static u16 cur_mapdata_block_role_at_player_pos(int); -static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c); +/*static*/ u16 cur_mapdata_block_role_at_player_pos(int); +/*static*/ bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c); static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c); static u8 *sub_8068364(struct MapPosition *, u8, u8); static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *, u8, u8 c); static u8 *sub_8068500(struct MapPosition *, u8, u8); static u8 *TryGetFieldMoveScript(struct MapPosition *, u8, u8); -static bool32 sub_8068770(void); -static bool32 sub_80687A4(void); -static bool8 sub_80687E4(struct MapPosition *, u16, u16); +/*static*/ bool32 sub_8068770(void); +/*static*/ bool32 sub_80687A4(void); +/*static*/ bool8 sub_80687E4(struct MapPosition *, u16, u16); static void happiness_algorithm_step(void); static bool8 overworld_poison_step(void); -static bool8 is_it_battle_time_3(u16); -static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8); +/*static*/ bool8 is_it_battle_time_3(u16); +/*static*/ bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8); static bool8 sub_8068B30(u16); static bool8 is_non_stair_warp_tile(u16, u8); static s8 map_warp_check_packed(struct MapHeader *, struct MapPosition *); static void sub_8068C30(struct MapHeader *, s8, struct MapPosition *); -static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8); +/*static*/ bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8); static s8 map_warp_check(struct MapHeader *, u16, u16, u8); static u8 *mapheader_trigger_activate_at(struct MapHeader *, u16, u16, u8); static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8); @@ -122,6 +122,230 @@ void FieldClearPlayerInput(struct FieldInput *input) input->dpadDirection = 0; } +#if DEBUG +__attribute__((naked)) +void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6, r7}\n" + " add r4, r0, #0\n" + " lsl r1, r1, #0x10\n" + " lsr r1, r1, #0x10\n" + " mov r8, r1\n" + " lsl r2, r2, #0x10\n" + " lsr r5, r2, #0x10\n" + " ldr r0, ._17\n" + " ldrb r6, [r0, #0x3]\n" + " ldrb r0, [r0, #0x2]\n" + " mov r9, r0\n" + " bl cur_mapdata_block_role_at_player_pos\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " bl MetatileBehavior_IsMoveTile\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " cmp r6, #0x2\n" + " bne ._1 @cond_branch\n" + " cmp r7, #0\n" + " beq ._2 @cond_branch\n" + "._1:\n" + " cmp r6, #0\n" + " bne ._9 @cond_branch\n" + "._2:\n" + " bl GetPlayerSpeed\n" + " lsl r0, r0, #0x10\n" + " asr r0, r0, #0x10\n" + " cmp r0, #0x4\n" + " beq ._8 @cond_branch\n" + " mov r0, #0x8\n" + " mov r1, r8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._5 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x4\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._5:\n" + " mov r0, #0x4\n" + " mov r3, r8\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._6 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x8\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._6:\n" + " mov r0, #0x1\n" + " mov r1, r8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._7 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x1\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._7:\n" + " mov r0, #0x2\n" + " mov r3, r8\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._8 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x80\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._8:\n" + " mov r0, #0xf0\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._9 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x10\n" + " orr r0, r0, r1\n" + " mov r1, #0x20\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._9:\n" + " cmp r7, #0\n" + " bne ._14 @cond_branch\n" + " cmp r6, #0x2\n" + " bne ._12 @cond_branch\n" + " mov r0, r9\n" + " cmp r0, #0x2\n" + " bne ._12 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x40\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._12:\n" + " cmp r7, #0\n" + " bne ._14 @cond_branch\n" + " cmp r6, #0x2\n" + " bne ._14 @cond_branch\n" + " ldrb r0, [r4]\n" + " mov r1, #0x2\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + "._14:\n" + " mov r0, #0x40\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._15 @cond_branch\n" + " mov r0, #0x2\n" + " b ._22\n" + "._18:\n" + " .align 2, 0\n" + "._17:\n" + " .word gPlayerAvatar\n" + "._15:\n" + " mov r0, #0x80\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._19 @cond_branch\n" + " mov r0, #0x1\n" + " b ._22\n" + "._19:\n" + " mov r0, #0x20\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._21 @cond_branch\n" + " mov r0, #0x3\n" + " b ._22\n" + "._21:\n" + " mov r0, #0x10\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._23 @cond_branch\n" + " mov r0, #0x4\n" + "._22:\n" + " strb r0, [r4, #0x2]\n" + "._23:\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._25 @cond_branch\n" + " ldrb r2, [r4]\n" + " mov r0, #0x4\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._25 @cond_branch\n" + " ldrb r0, [r4, #0x1]\n" + " mov r1, #0x4\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0x1]\n" + " mov r0, #0x5\n" + " neg r0, r0\n" + " and r0, r0, r2\n" + " strb r0, [r4]\n" + "._25:\n" + " ldr r0, ._30\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._29 @cond_branch\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._28 @cond_branch\n" + " ldrb r1, [r4, #0x1]\n" + " mov r0, #0x2\n" + " orr r1, r1, r0\n" + " strb r1, [r4, #0x1]\n" + " ldrb r0, [r4]\n" + " mov r2, #0x41\n" + " neg r2, r2\n" + " and r2, r2, r0\n" + " mov r0, #0x3\n" + " neg r0, r0\n" + " and r2, r2, r0\n" + " sub r0, r0, #0xe\n" + " and r2, r2, r0\n" + " sub r0, r0, #0x10\n" + " and r2, r2, r0\n" + " strb r2, [r4]\n" + " mov r0, #0x4\n" + " mov r3, r8\n" + " and r0, r0, r3\n" + " cmp r0, #0\n" + " beq ._28 @cond_branch\n" + " mov r0, #0x1\n" + " orr r1, r1, r0\n" + " strb r1, [r4, #0x1]\n" + " mov r0, #0x9\n" + " neg r0, r0\n" + " and r0, r0, r2\n" + " strb r0, [r4]\n" + "._28:\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x2\n" + " and r0, r0, r5\n" + " cmp r0, #0\n" + " beq ._29 @cond_branch\n" + " ldrb r0, [r4, #0x1]\n" + " mov r1, #0x8\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0x1]\n" + "._29:\n" + " pop {r3, r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._31:\n" + " .align 2, 0\n" + "._30:\n" + " .word gUnknown_020297ED\n" + "\n" + ); +} +#else void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) { u8 r6 = gPlayerAvatar.tileTransitionState; @@ -163,7 +387,222 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) else if (heldKeys & DPAD_RIGHT) input->dpadDirection = DIR_EAST; } +#endif +#if DEBUG +__attribute__((naked)) +int sub_8068024(struct FieldInput *input) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " add sp, sp, #0xfffffff8\n" + " add r5, r0, #0\n" + " bl player_get_direction_lower_nybble\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " mov r4, sp\n" + " mov r0, sp\n" + " bl player_get_pos_to_and_height\n" + " mov r0, sp\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " mov r2, #0x2\n" + " ldsh r1, [r4, r2]\n" + " bl MapGridGetMetatileBehaviorAt\n" + " lsl r0, r0, #0x10\n" + " lsr r4, r0, #0x10\n" + " ldrb r1, [r5, #0x1]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._33 @cond_branch\n" + " mov r0, sp\n" + " add r1, r4, #0\n" + " bl dive_warp\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._33 @cond_branch\n" + " b ._63\n" + "._33:\n" + " ldrb r1, [r5, #0x1]\n" + " mov r6, #0x2\n" + " add r0, r6, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._39 @cond_branch\n" + " bl CheckTrainers\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._36 @cond_branch\n" + " b ._63\n" + "._36:\n" + " ldrb r1, [r5, #0x1]\n" + " add r0, r6, #0\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._39 @cond_branch\n" + " bl mapheader_run_first_tag2_script_list_match\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._39 @cond_branch\n" + " b ._63\n" + "._39:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._42 @cond_branch\n" + " bl sub_80687A4\n" + " cmp r0, #0x1\n" + " bne ._42 @cond_branch\n" + " b ._63\n" + "._42:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._44 @cond_branch\n" + " mov r0, #0x5\n" + " bl IncrementGameStat\n" + " mov r0, sp\n" + " add r1, r4, #0\n" + " add r2, r7, #0\n" + " bl sub_80687E4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._44:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._46 @cond_branch\n" + " add r0, r4, #0\n" + " bl is_it_battle_time_3\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._46:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x10\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._49 @cond_branch\n" + " ldrb r0, [r5, #0x2]\n" + " cmp r0, r7\n" + " bne ._49 @cond_branch\n" + " mov r0, sp\n" + " add r1, r4, #0\n" + " add r2, r7, #0\n" + " bl mapheader_run_first_tag2_script_list_match_conditionally\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._49:\n" + " mov r4, sp\n" + " mov r0, sp\n" + " bl player_get_next_pos_and_height\n" + " mov r0, sp\n" + " mov r1, #0x0\n" + " ldsh r0, [r0, r1]\n" + " mov r2, #0x2\n" + " ldsh r1, [r4, r2]\n" + " bl MapGridGetMetatileBehaviorAt\n" + " lsl r0, r0, #0x10\n" + " lsr r4, r0, #0x10\n" + " ldrb r1, [r5]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._51 @cond_branch\n" + " mov r0, sp\n" + " add r1, r4, #0\n" + " add r2, r7, #0\n" + " bl sub_80681F0\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._51:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x20\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._54 @cond_branch\n" + " ldrb r0, [r5, #0x2]\n" + " cmp r0, r7\n" + " bne ._54 @cond_branch\n" + " mov r0, sp\n" + " add r1, r4, #0\n" + " add r2, r7, #0\n" + " bl map_warp_consider_2_to_inside\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._54:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._56 @cond_branch\n" + " bl sub_8068770\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._56:\n" + " ldrb r1, [r5]\n" + " mov r0, #0x4\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._58 @cond_branch\n" + " mov r0, #0x6\n" + " bl PlaySE\n" + " bl sub_8071310\n" + " b ._63\n" + "._58:\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._60 @cond_branch\n" + " bl sub_80A6D1C\n" + " cmp r0, #0x1\n" + " beq ._63 @cond_branch\n" + "._60:\n" + " ldrb r1, [r5, #0x1]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._62 @cond_branch\n" + " bl debug_sub_80888D8\n" + " b ._63\n" + "._62:\n" + " mov r0, #0x4\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._64 @cond_branch\n" + " mov r0, #0x0\n" + " b ._65\n" + "._64:\n" + " mov r0, #0x6\n" + " bl PlaySE\n" + " bl DebugMenu_8077048\n" + "._63:\n" + " mov r0, #0x1\n" + "._65:\n" + " add sp, sp, #0x8\n" + " pop {r4, r5, r6, r7}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} +#else int sub_8068024(struct FieldInput *input) { struct MapPosition position; @@ -213,6 +652,7 @@ int sub_8068024(struct FieldInput *input) return TRUE; return FALSE; } +#endif static void player_get_pos_to_and_height(struct MapPosition *position) { @@ -232,7 +672,7 @@ static void player_get_next_pos_and_height(struct MapPosition *position) position->height = 0; } -static u16 cur_mapdata_block_role_at_player_pos(int unused) +/*static*/ u16 cur_mapdata_block_role_at_player_pos(int unused) { s16 x, y; @@ -240,7 +680,7 @@ static u16 cur_mapdata_block_role_at_player_pos(int unused) return MapGridGetMetatileBehaviorAt(x, y); } -static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) +/*static*/ bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) { u8 *script = TryGetScriptOnPressingA(position, b, c); @@ -435,7 +875,7 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2) return NULL; } -static bool32 sub_8068770(void) +/*static*/ bool32 sub_8068770(void) { if (FlagGet(FLAG_BADGE07_GET) && sub_8068F18() == 2) { @@ -445,7 +885,7 @@ static bool32 sub_8068770(void) return FALSE; } -static bool32 sub_80687A4(void) +/*static*/ bool32 sub_80687A4(void) { if (FlagGet(FLAG_BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_8068F18() == 1) { @@ -455,7 +895,7 @@ static bool32 sub_80687A4(void) return FALSE; } -static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused) +/*static*/ bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused) { if (mapheader_trigger_activate_at__run_now(position) == TRUE) return TRUE; @@ -575,7 +1015,7 @@ void prev_quest_postbuffer_cursor_backup_reset(void) gUnknown_0202E8C0 = 0; } -static bool8 is_it_battle_time_3(u16 a) +/*static*/ bool8 is_it_battle_time_3(u16 a) { if (gUnknown_0202E8C0 < 4) { @@ -596,7 +1036,7 @@ static bool8 is_it_battle_time_3(u16 a) } } -static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c) +/*static*/ bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c) { s8 r6 = map_warp_check_packed(&gMapHeader, position); @@ -704,7 +1144,7 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi } } -static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c) +/*static*/ bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c) { s8 r4; diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c index 77b4c8b5c..1c0cefacb 100644 --- a/src/field/field_map_obj.c +++ b/src/field/field_map_obj.c @@ -1917,6 +1917,40 @@ void npc_clear_ids_and_state(struct MapObject *mapObj) mapObj->mapobj_unk_1C = 0xFF; } +#if DEBUG +__attribute__((naked)) +void npcs_clear_ids_and_state() +{ + asm( + " push {r4, r5, lr}\n" + " mov r4, #0x0\n" + " ldr r5, ._2\n" + "._1:\n" + " lsl r0, r4, #0x3\n" + " add r0, r0, r4\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r5\n" + " bl npc_clear_ids_and_state\n" + " add r0, r4, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " cmp r4, #0xf\n" + " bls ._1 @cond_branch\n" + " ldr r1, ._2 + 4\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " pop {r4, r5}\n" + " pop {r0}\n" + " bx r0\n" + "._3:\n" + " .align 2, 0\n" + "._2:\n" + " .word gMapObjects\n" + " .word gUnknown_Debug_03004BC0\n" + "\n" + ); +} +#else void npcs_clear_ids_and_state(void) { u8 i; @@ -1924,6 +1958,7 @@ void npcs_clear_ids_and_state(void) for (i = 0; i < 16; i++) npc_clear_ids_and_state(&gMapObjects[i]); } +#endif void sub_805AA98(void) { @@ -2017,6 +2052,176 @@ u8 GetFieldObjectIdByLocalId(u8 localId) return 16; } +#if DEBUG +__attribute__((naked)) +u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 c) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r9\n" + " mov r6, r8\n" + " push {r6, r7}\n" + " add sp, sp, #0xfffffffc\n" + " add r5, r0, #0\n" + " lsl r1, r1, #0x18\n" + " lsr r6, r1, #0x18\n" + " lsl r2, r2, #0x18\n" + " lsr r7, r2, #0x18\n" + " ldrb r0, [r5]\n" + " add r1, r6, #0\n" + " add r2, r7, #0\n" + " mov r3, sp\n" + " bl GetAvailableFieldObjectSlot\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " beq ._35 @cond_branch\n" + " mov r0, #0x10\n" + " b ._36\n" + "._35:\n" + " mov r0, sp\n" + " ldrb r1, [r0]\n" + " lsl r0, r1, #0x3\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._40\n" + " add r4, r0, r1\n" + " add r0, r4, #0\n" + " bl npc_clear_ids_and_state\n" + " ldrh r3, [r5, #0x4]\n" + " add r3, r3, #0x7\n" + " lsl r3, r3, #0x10\n" + " lsr r3, r3, #0x10\n" + " ldrh r2, [r5, #0x6]\n" + " add r2, r2, #0x7\n" + " lsl r2, r2, #0x10\n" + " lsr r2, r2, #0x10\n" + " ldrb r0, [r4]\n" + " mov r1, #0x1\n" + " orr r0, r0, r1\n" + " mov r1, #0x4\n" + " orr r0, r0, r1\n" + " strb r0, [r4]\n" + " ldrb r0, [r5, #0x1]\n" + " strb r0, [r4, #0x5]\n" + " ldrb r0, [r5, #0x9]\n" + " strb r0, [r4, #0x6]\n" + " ldrb r0, [r5]\n" + " strb r0, [r4, #0x8]\n" + " strb r6, [r4, #0x9]\n" + " strb r7, [r4, #0xa]\n" + " strh r3, [r4, #0xc]\n" + " strh r2, [r4, #0xe]\n" + " strh r3, [r4, #0x10]\n" + " strh r2, [r4, #0x12]\n" + " strh r3, [r4, #0x14]\n" + " strh r2, [r4, #0x16]\n" + " ldrb r0, [r5, #0x8]\n" + " mov r7, #0xf\n" + " add r1, r7, #0\n" + " and r1, r1, r0\n" + " ldrb r2, [r4, #0xb]\n" + " mov r0, #0x10\n" + " neg r0, r0\n" + " mov r8, r0\n" + " and r0, r0, r2\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0xb]\n" + " ldrb r1, [r5, #0x8]\n" + " lsl r1, r1, #0x4\n" + " and r0, r0, r7\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0xb]\n" + " ldrb r1, [r5, #0xa]\n" + " lsl r1, r1, #0x1c\n" + " mov r0, #0xf\n" + " mov r9, r0\n" + " lsr r1, r1, #0x1c\n" + " ldrb r2, [r4, #0x19]\n" + " mov r0, r8\n" + " and r0, r0, r2\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0x19]\n" + " ldrb r1, [r5, #0xa]\n" + " lsr r1, r1, #0x4\n" + " lsl r1, r1, #0x4\n" + " and r0, r0, r7\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0x19]\n" + " ldrh r0, [r5, #0xc]\n" + " strb r0, [r4, #0x7]\n" + " ldrh r0, [r5, #0xe]\n" + " strb r0, [r4, #0x1d]\n" + " ldr r1, ._40 + 4\n" + " ldrb r0, [r5, #0x9]\n" + " add r0, r0, r1\n" + " ldrb r1, [r0]\n" + " add r0, r4, #0\n" + " add r0, r0, #0x20\n" + " strb r1, [r0]\n" + " ldrb r1, [r0]\n" + " add r0, r4, #0\n" + " bl FieldObjectSetDirection\n" + " add r0, r4, #0\n" + " bl FieldObjectHandleDynamicGraphicsId\n" + " ldr r1, ._40 + 8\n" + " ldrb r0, [r4, #0x6]\n" + " add r0, r0, r1\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._39 @cond_branch\n" + " ldrb r2, [r4, #0x19]\n" + " add r0, r7, #0\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " bne ._38 @cond_branch\n" + " lsl r0, r2, #0x1c\n" + " lsr r0, r0, #0x1c\n" + " add r0, r0, #0x1\n" + " mov r1, r9\n" + " and r0, r0, r1\n" + " mov r1, r8\n" + " and r1, r1, r2\n" + " orr r1, r1, r0\n" + " strb r1, [r4, #0x19]\n" + "._38:\n" + " ldrb r2, [r4, #0x19]\n" + " mov r0, #0xf0\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " bne ._39 @cond_branch\n" + " lsr r1, r2, #0x4\n" + " add r1, r1, #0x1\n" + " lsl r1, r1, #0x4\n" + " add r0, r7, #0\n" + " and r0, r0, r2\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0x19]\n" + "._39:\n" + " ldr r1, ._40 + 12\n" + " ldrb r0, [r1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1]\n" + " mov r0, sp\n" + " ldrb r0, [r0]\n" + "._36:\n" + " add sp, sp, #0x4\n" + " pop {r3, r4}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " pop {r4, r5, r6, r7}\n" + " pop {r1}\n" + " bx r1\n" + "._41:\n" + " .align 2, 0\n" + "._40:\n" + " .word gMapObjects\n" + " .word gUnknown_0836DC09\n" + " .word gUnknown_0836DBBC\n" + " .word gUnknown_Debug_03004BC0\n" + "\n" + ); +} +#else #ifdef NONMATCHING u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 c) { @@ -2227,6 +2432,7 @@ _0805ADD8: .4byte gUnknown_0836DBBC\n\ .syntax divided\n"); } #endif +#endif u8 sub_805ADDC(u8 localId) { @@ -2266,11 +2472,38 @@ u8 GetAvailableFieldObjectSlot(u16 a, u8 b, u8 c, u8 *d) return 0; } +#if DEBUG +__attribute__((naked)) +void RemoveFieldObject(struct MapObject *mapObject) +{ + asm( + " push {lr}\n" + " ldrb r2, [r0]\n" + " mov r1, #0x2\n" + " neg r1, r1\n" + " and r1, r1, r2\n" + " strb r1, [r0]\n" + " bl RemoveFieldObjectInternal\n" + " ldr r1, ._72\n" + " ldrb r0, [r1]\n" + " sub r0, r0, #0x1\n" + " strb r0, [r1]\n" + " pop {r0}\n" + " bx r0\n" + "._73:\n" + " .align 2, 0\n" + "._72:\n" + " .word gUnknown_Debug_03004BC0\n" + "\n" + ); +} +#else void RemoveFieldObject(struct MapObject *mapObject) { mapObject->active = FALSE; RemoveFieldObjectInternal(mapObject); } +#endif void RemoveFieldObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { @@ -2303,6 +2536,226 @@ void npc_hide_all_but_player(void) } } +#if DEBUG +__attribute__((naked)) +u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, u8 c, u8 d, s16 e, s16 f) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add r7, r1, #0\n" + " add r1, r2, #0\n" + " add r2, r3, #0\n" + " ldr r3, [sp, #0x20]\n" + " ldr r4, [sp, #0x24]\n" + " lsl r1, r1, #0x18\n" + " lsr r1, r1, #0x18\n" + " lsl r2, r2, #0x18\n" + " lsr r2, r2, #0x18\n" + " lsl r3, r3, #0x10\n" + " lsr r3, r3, #0x10\n" + " mov r9, r3\n" + " lsl r4, r4, #0x10\n" + " lsr r4, r4, #0x10\n" + " mov sl, r4\n" + " bl InitFieldObjectStateFromTemplate\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r8, r0\n" + " cmp r0, #0x10\n" + " bne ._83 @cond_branch\n" + " mov r0, #0x10\n" + " b ._92\n" + "._83:\n" + " mov r0, r8\n" + " lsl r4, r0, #0x3\n" + " add r0, r4, r0\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._87\n" + " add r5, r0, r1\n" + " ldrb r0, [r5, #0x5]\n" + " bl GetFieldObjectGraphicsInfo\n" + " add r6, r0, #0\n" + " ldrb r1, [r6, #0xc]\n" + " mov r0, #0xf\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._85 @cond_branch\n" + " ldrh r0, [r6, #0x2]\n" + " lsl r1, r1, #0x1c\n" + " lsr r1, r1, #0x1c\n" + " bl npc_load_two_palettes__no_record\n" + " b ._89\n" + "._88:\n" + " .align 2, 0\n" + "._87:\n" + " .word gMapObjects\n" + "._85:\n" + " cmp r0, #0xa\n" + " bne ._89 @cond_branch\n" + " ldrh r0, [r6, #0x2]\n" + " lsl r1, r1, #0x1c\n" + " lsr r1, r1, #0x1c\n" + " bl npc_load_two_palettes__and_record\n" + "._89:\n" + " ldrb r0, [r5, #0x6]\n" + " cmp r0, #0x4c\n" + " bne ._90 @cond_branch\n" + " ldrb r0, [r5, #0x1]\n" + " mov r1, #0x20\n" + " orr r0, r0, r1\n" + " strb r0, [r5, #0x1]\n" + "._90:\n" + " ldr r1, ._93\n" + " add r0, r1, #0\n" + " strh r0, [r7, #0x2]\n" + " add r0, r7, #0\n" + " mov r1, #0x0\n" + " mov r2, #0x0\n" + " mov r3, #0x0\n" + " bl CreateSprite\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " cmp r7, #0x40\n" + " bne ._91 @cond_branch\n" + " ldr r1, ._93 + 4\n" + " ldrb r0, [r1]\n" + " sub r0, r0, #0x1\n" + " strb r0, [r1]\n" + " ldr r0, ._93 + 8\n" + " mov r2, r8\n" + " add r1, r4, r2\n" + " lsl r1, r1, #0x2\n" + " add r1, r1, r0\n" + " ldrb r2, [r1]\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " and r0, r0, r2\n" + " strb r0, [r1]\n" + " mov r0, #0x10\n" + " b ._92\n" + "._94:\n" + " .align 2, 0\n" + "._93:\n" + " .word 0xffff\n" + " .word gUnknown_Debug_03004BC0\n" + " .word gMapObjects\n" + "._91:\n" + " lsl r0, r7, #0x4\n" + " add r0, r0, r7\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._96\n" + " add r4, r0, r1\n" + " mov r1, r9\n" + " lsl r0, r1, #0x10\n" + " asr r0, r0, #0x10\n" + " ldrh r2, [r5, #0x10]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x10\n" + " asr r0, r0, #0x10\n" + " mov r2, sl\n" + " lsl r1, r2, #0x10\n" + " asr r1, r1, #0x10\n" + " ldrh r2, [r5, #0x12]\n" + " add r1, r1, r2\n" + " lsl r1, r1, #0x10\n" + " asr r1, r1, #0x10\n" + " add r2, r4, #0\n" + " add r2, r2, #0x20\n" + " add r3, r4, #0\n" + " add r3, r3, #0x22\n" + " bl sub_8060388\n" + " ldrh r0, [r6, #0x8]\n" + " lsl r0, r0, #0x10\n" + " asr r0, r0, #0x11\n" + " neg r0, r0\n" + " add r1, r4, #0\n" + " add r1, r1, #0x28\n" + " strb r0, [r1]\n" + " ldrh r0, [r6, #0xa]\n" + " lsl r0, r0, #0x10\n" + " asr r0, r0, #0x11\n" + " neg r0, r0\n" + " add r2, r4, #0\n" + " add r2, r2, #0x29\n" + " strb r0, [r2]\n" + " ldrh r0, [r4, #0x20]\n" + " add r0, r0, #0x8\n" + " strh r0, [r4, #0x20]\n" + " ldrh r1, [r4, #0x22]\n" + " add r1, r1, #0x10\n" + " mov r0, #0x0\n" + " ldsb r0, [r2, r0]\n" + " add r0, r0, r1\n" + " strh r0, [r4, #0x22]\n" + " ldrb r1, [r6, #0xc]\n" + " lsl r1, r1, #0x1c\n" + " lsr r1, r1, #0x18\n" + " ldrb r2, [r4, #0x5]\n" + " mov r0, #0xf\n" + " and r0, r0, r2\n" + " orr r0, r0, r1\n" + " strb r0, [r4, #0x5]\n" + " add r2, r4, #0\n" + " add r2, r2, #0x3e\n" + " ldrb r0, [r2]\n" + " mov r1, #0x2\n" + " orr r0, r0, r1\n" + " strb r0, [r2]\n" + " mov r0, r8\n" + " strh r0, [r4, #0x2e]\n" + " strb r7, [r5, #0x4]\n" + " ldrb r1, [r6, #0xc]\n" + " lsl r1, r1, #0x19\n" + " lsr r1, r1, #0x1f\n" + " lsl r1, r1, #0x4\n" + " ldrb r2, [r5, #0x1]\n" + " mov r0, #0x11\n" + " neg r0, r0\n" + " and r0, r0, r2\n" + " orr r0, r0, r1\n" + " strb r0, [r5, #0x1]\n" + " lsl r0, r0, #0x1b\n" + " cmp r0, #0\n" + " blt ._95 @cond_branch\n" + " ldrb r0, [r5, #0x18]\n" + " lsl r0, r0, #0x1c\n" + " lsr r0, r0, #0x1c\n" + " bl FieldObjectDirectionToImageAnimId\n" + " add r1, r0, #0\n" + " lsl r1, r1, #0x18\n" + " lsr r1, r1, #0x18\n" + " add r0, r4, #0\n" + " bl StartSpriteAnim\n" + "._95:\n" + " ldrb r0, [r5, #0xb]\n" + " lsr r0, r0, #0x4\n" + " add r1, r4, #0\n" + " mov r2, #0x1\n" + " bl SetObjectSubpriorityByZCoord\n" + " add r0, r5, #0\n" + " add r1, r4, #0\n" + " bl sub_80634D0\n" + " mov r0, r8\n" + "._92:\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r1}\n" + " bx r1\n" + "._97:\n" + " .align 2, 0\n" + "._96:\n" + " .word gSprites\n" + "\n" + ); +} +#else u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, u8 c, u8 d, s16 e, s16 f) { u8 mapObjectId; @@ -2352,6 +2805,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate * sub_80634D0(mapObject, sprite); return mapObjectId; } +#endif u8 SpawnFieldObject(struct MapObjectTemplate *mapObjTemplate, u8 b, u8 c, s16 d, s16 e) { @@ -2574,6 +3028,66 @@ void RemoveFieldObjectIfOutsideView(struct MapObject *mapObject) void sub_805B75C(u8, s16, s16); +#if DEBUG +__attribute__((naked)) +void sub_805B710(u16 u161, u16 u162) +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r8\n" + " push {r7}\n" + " add r4, r0, #0\n" + " add r5, r1, #0\n" + " lsl r4, r4, #0x10\n" + " lsr r4, r4, #0x10\n" + " lsl r5, r5, #0x10\n" + " lsr r5, r5, #0x10\n" + " ldr r6, ._153\n" + " mov r0, #0x0\n" + " strb r0, [r6]\n" + " bl ClearPlayerAvatarInfo\n" + " mov r7, #0x0\n" + " ldr r0, ._153 + 4\n" + " mov r8, r0\n" + " lsl r4, r4, #0x10\n" + " lsl r5, r5, #0x10\n" + "._152:\n" + " lsl r0, r7, #0x3\n" + " add r0, r0, r7\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r8\n" + " ldrb r0, [r0]\n" + " lsl r0, r0, #0x1f\n" + " cmp r0, #0\n" + " beq ._151 @cond_branch\n" + " add r0, r7, #0\n" + " asr r1, r4, #0x10\n" + " asr r2, r5, #0x10\n" + " bl sub_805B75C\n" + " ldrb r0, [r6]\n" + " add r0, r0, #0x1\n" + " strb r0, [r6]\n" + "._151:\n" + " add r0, r7, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " cmp r7, #0xf\n" + " bls ._152 @cond_branch\n" + " bl sub_805AAB0\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._154:\n" + " .align 2, 0\n" + "._153:\n" + " .word gUnknown_Debug_03004BC0\n" + " .word gMapObjects\n" + "\n" + ); +} +#else void sub_805B710(u16 a, u16 b) { u8 i; @@ -2586,6 +3100,7 @@ void sub_805B710(u16 a, u16 b) } sub_805AAB0(); } +#endif extern void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8); extern void sub_805B914(struct MapObject *); diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c index 9a29e2e92..747edf816 100644 --- a/src/field/field_player_avatar.c +++ b/src/field/field_player_avatar.c @@ -32,9 +32,9 @@ static void npc_clear_strange_bits(struct MapObject *a); static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c); static void PlayerAllowForcedMovementIfMovingSameDirection(void); static bool8 TryDoMetatileBehaviorForcedMovement(void); -static u8 GetForcedMovementByMetatileBehavior(void); +/*static*/ u8 GetForcedMovementByMetatileBehavior(void); static void MovePlayerNotOnBike(u8 a, u16 b); -static u8 CheckMovementInputNotOnBike(u8 a); +/*static*/ u8 CheckMovementInputNotOnBike(u8 a); static u8 CheckForPlayerAvatarCollision(u8 a); static u8 sub_8058EF0(s16 a, s16 b, u8 c); static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c); @@ -260,12 +260,59 @@ static void PlayerAllowForcedMovementIfMovingSameDirection(void) gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5; } +#if DEBUG +__attribute__((naked)) +u8 TryDoMetatileBehaviorForcedMovement() +{ + asm( + " push {r4, lr}\n" + " ldr r0, ._27\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._25 @cond_branch\n" + " ldr r0, ._27 + 4\n" + " ldrh r1, [r0, #0x2c]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._25 @cond_branch\n" + " mov r0, #0x0\n" + " b ._26\n" + "._28:\n" + " .align 2, 0\n" + "._27:\n" + " .word gUnknown_020297ED\n" + " .word gMain\n" + "._25:\n" + " ldr r4, ._29\n" + " bl GetForcedMovementByMetatileBehavior\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x16\n" + " add r0, r0, r4\n" + " ldr r0, [r0]\n" + " bl gScriptFuncs_End+0x3cf4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + "._26:\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "._30:\n" + " .align 2, 0\n" + "._29:\n" + " .word gUnknown_0830FBA0\n" + "\n" + ); +} +#else static bool8 TryDoMetatileBehaviorForcedMovement(void) { return gUnknown_0830FBA0[GetForcedMovementByMetatileBehavior()](); } +#endif -static u8 GetForcedMovementByMetatileBehavior(void) +/*static*/ u8 GetForcedMovementByMetatileBehavior(void) { u8 i; @@ -436,12 +483,57 @@ bool8 ForcedMovement_MuddySlope(void) } } +#if DEBUG +__attribute__((naked)) +void MovePlayerNotOnBike(u8 u81, u16 u161) +{ + asm( + " push {r4, r5, r6, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r2, r0, #0x18\n" + " add r5, r2, #0\n" + " lsl r1, r1, #0x10\n" + " lsr r6, r1, #0x10\n" + " ldr r0, ._84\n" + " ldrb r0, [r0]\n" + " cmp r0, #0\n" + " beq ._82 @cond_branch\n" + " add r0, r2, #0\n" + " bl debug_sub_805F2B0\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bne ._83 @cond_branch\n" + "._82:\n" + " ldr r4, ._84 + 4\n" + " add r0, r5, #0\n" + " bl CheckMovementInputNotOnBike\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x16\n" + " add r0, r0, r4\n" + " ldr r2, [r0]\n" + " add r0, r5, #0\n" + " add r1, r6, #0\n" + " bl gScriptFuncs_End+0x3cfc\n" + "._83:\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._85:\n" + " .align 2, 0\n" + "._84:\n" + " .word gUnknown_020297ED\n" + " .word gUnknown_0830FBEC\n" + "\n" + ); +} +#else static void MovePlayerNotOnBike(u8 direction, u16 heldKeys) { gUnknown_0830FBEC[CheckMovementInputNotOnBike(direction)](direction, heldKeys); } +#endif -static u8 CheckMovementInputNotOnBike(u8 direction) +/*static*/ u8 CheckMovementInputNotOnBike(u8 direction) { if (direction == DIR_NONE) { diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 0a841eed1..1b53df6be 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -250,6 +250,87 @@ void SetupMauvilleOldMan(void) sub_80F83D0(); } +#ifdef DEBUG +__attribute__((naked)) +void debug_sub_810B32C() +{ + asm( + " push {r4, lr}\n" + " add sp, sp, #0xfffffff8\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x4\n" + " bhi ._37 @cond_branch\n" + " lsl r0, r0, #0x2\n" + " ldr r1, ._23\n" + " add r0, r0, r1\n" + " ldr r0, [r0]\n" + " mov pc, r0\n" + "._24:\n" + " .align 2, 0\n" + "._23:\n" + " .word ._22\n" + "._22:\n" + " .word ._25\n" + " .word ._26\n" + " .word ._27\n" + " .word ._28\n" + " .word ._29\n" + "._25:\n" + " bl sub_80F7A34\n" + " b ._37\n" + "._26:\n" + " mov r2, #0x0\n" + " ldr r3, ._34\n" + "._31:\n" + " mov r0, sp\n" + " add r1, r0, r2\n" + " add r0, r2, r3\n" + " ldrb r0, [r0]\n" + " strb r0, [r1]\n" + " add r0, r2, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r2, r0, #0x18\n" + " cmp r2, #0x7\n" + " bls ._31 @cond_branch\n" + " bl sub_80F7A6C\n" + " mov r2, #0x0\n" + " ldr r3, ._34\n" + "._32:\n" + " add r1, r2, r3\n" + " mov r4, sp\n" + " add r0, r4, r2\n" + " ldrb r0, [r0]\n" + " strb r0, [r1]\n" + " add r0, r2, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r2, r0, #0x18\n" + " cmp r2, #0x7\n" + " bls ._32 @cond_branch\n" + " b ._37\n" + "._35:\n" + " .align 2, 0\n" + "._34:\n" + " .word gSaveBlock1+0x2d8c\n" + "._27:\n" + " bl sub_80F7A98\n" + " b ._37\n" + "._28:\n" + " bl sub_80F7A7C\n" + " b ._37\n" + "._29:\n" + " bl sub_80F7A88\n" + "._37:\n" + " bl sub_80F83D0\n" + " add sp, sp, #0x8\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} +#endif + static u8 GetCurrentMauvilleOldMan(void) { struct MauvilleManCommon *common = &gSaveBlock1.mauvilleMan.common; diff --git a/src/field/overworld.c b/src/field/overworld.c index 86b0a5dac..8346ce3f9 100644 --- a/src/field/overworld.c +++ b/src/field/overworld.c @@ -25,6 +25,7 @@ #include "link.h" #include "load_save.h" #include "main.h" +#include "m4a.h" #include "constants/maps.h" #include "map_name_popup.h" #include "menu.h" @@ -62,6 +63,7 @@ struct UnkTVStruct u32 tv_field_4; }; +extern u8 gUnknown_020297ED; extern u16 gUnknown_03004898; extern u16 gUnknown_0300489C; @@ -1106,6 +1108,68 @@ u8 sav1_map_get_battletype(void) return Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum)->battleType; } +#if DEBUG + +void debug_sub_8076B68(void); + +void debug_sub_80589D8(void); + +void debug_sub_8058A50(void); + +void CB2_InitTestMenu(void) +{ + m4aSoundVSyncOff(); + SetVBlankCallback(NULL); + DmaFill32(3, 0, (void *) VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *) PLTT, PLTT_SIZE); + ResetPaletteFade(); + ResetSpriteData(); + ResetTasks(); + ScanlineEffect_Stop(); + Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4); + InitMenuWindow(&gWindowTemplate_81E6CE4); + debug_sub_8076B68(); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + REG_IE |= 1; + REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP; + m4aSoundVSyncOn(); + SetVBlankCallback(debug_sub_8058A50); + m4aSongNumStart(0x19D); + SetMainCallback2(debug_sub_80589D8); +} + +void debug_sub_80589D8(void) +{ + if (UpdatePaletteFade()) + return; + + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); +} + +void debug_sub_80589F4(void) +{ + if (UpdatePaletteFade()) + return; + + SetVBlankCallback(NULL); + + DmaFill32(3, 0, (void *) VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *) PLTT, PLTT_SIZE); + + SetMainCallback2(gMain.savedCallback); +} + +void debug_sub_8058A50(void) +{ + ProcessSpriteCopyRequests(); + LoadOam(); + TransferPlttBuffer(); +} + +#endif + void ResetSafariZoneFlag_(void) { ResetSafariZoneFlag(); @@ -1210,6 +1274,33 @@ void CB2_NewGame(void) SetMainCallback2(c2_overworld); } +#if DEBUG + +extern void (*gFieldCallback)(void); + +void debug_sub_8058C00(void) +{ + FieldClearVBlankHBlankCallbacks(); + StopMapMusic(); + ResetSafariZoneFlag_(); + player_avatar_init_params_reset(); + PlayTimeCounter_Start(); + ScriptContext1_Init(); + ScriptContext2_Disable(); + + if (gMain.heldKeys & R_BUTTON) + gFieldCallback = ExecuteTruckSequence; + else + gFieldCallback = sub_8080B60; + + do_load_map_stuff_loop(&gMain.state); + SetFieldVBlankCallback(); + set_callback1(c1_overworld); + SetMainCallback2(c2_overworld); +} + +#endif + void CB2_WhiteOut(void) { u8 val; @@ -1365,6 +1456,10 @@ void CB2_ContinueSavedGame(void) { FieldClearVBlankHBlankCallbacks(); StopMapMusic(); +#if DEBUG + if (gMain.heldKeys & R_BUTTON) + gUnknown_020297ED = TRUE; +#endif ResetSafariZoneFlag_(); LoadSaveblockMapHeader(); LoadSaveblockMapObjScripts(); diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 7d243f569..053368a0e 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -4022,6 +4022,10 @@ void TeachMonTMMove(u8 taskId, u16 move, TaskFunc func) CreateTask(Task_TeamMonTMMove, 5); } +#ifdef DEBUG +extern u8 gUnknown_020297ED; +#endif + void Task_TeamMonTMMove(u8 taskId) { GetMonNickname(ewram1C000.pokemon, gStringVar1); @@ -4036,7 +4040,11 @@ void Task_TeamMonTMMove(u8 taskId) } else { - if (!CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33)) + if ( +#ifdef DEBUG + !gUnknown_020297ED && +#endif + !CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33)) { StringExpandPlaceholders(gStringVar4, gOtherText_NotCompatible); sub_806E834(gStringVar4, 1); @@ -5514,9 +5522,13 @@ _08070F8A:\n\ } #endif // NONMATCHING + +// Maybe this goes in start_menu.c +#if !DEBUG void unref_sub_8070F90(void) { FlagSet(FLAG_SYS_POKEDEX_GET); FlagSet(FLAG_SYS_POKEMON_GET); FlagSet(FLAG_SYS_POKENAV_GET); } +#endif diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c index 7e8bdc2ce..73fa53d97 100644 --- a/src/field/pokeblock.c +++ b/src/field/pokeblock.c @@ -95,7 +95,8 @@ static const u8 *gUnknown_03000758; #define GFX_TAG_POKEBLOCK_CASE 14800 -const s8 gPokeblockFlavorCompatibilityTable[] = { +const s8 gPokeblockFlavorCompatibilityTable[] = +{ // Cool, Beauty, Cute, Smart, Tough 0, 0, 0, 0, 0, // Hardy 1, 0, 0, 0, -1, // Lonely @@ -124,14 +125,16 @@ const s8 gPokeblockFlavorCompatibilityTable[] = { 0, 0, 0, 0, 0 // Quirky }; -void (*const gUnknown_083F7EA8[])(void) = { +void (*const gUnknown_083F7EA8[])(void) = +{ sub_80A5B40, c2_exit_to_overworld_2_switch, sub_802E424, c2_exit_to_overworld_2_switch }; -const u8 *const gPokeblockNames[] = { +const u8 *const gPokeblockNames[] = +{ NULL, ContestStatsText_RedPokeBlock, ContestStatsText_BluePokeBlock, @@ -149,7 +152,8 @@ const u8 *const gPokeblockNames[] = { ContestStatsText_GoldPokeBlock }; -const struct MenuAction2 gUnknown_083F7EF4[] = { +const struct MenuAction2 gUnknown_083F7EF4[] = +{ {OtherText_Use, sub_810C508}, {OtherText_Toss, sub_810C5C0}, {gOtherText_CancelNoTerminator, sub_810C748}, @@ -165,21 +169,25 @@ const struct YesNoFuncTable gUnknown_083F7F24 = {sub_810C610, sub_810C668}; const u8 UnreferencedData_083F7F2C[] = {0x16, 0x17, 0x18, 0x21, 0x2f}; -const struct OamData gOamData_83F7F34 = { +const struct OamData gOamData_83F7F34 = +{ .size = 3, .priority = 2 }; -const union AnimCmd gSpriteAnim_83F7F3C[] = { +const union AnimCmd gSpriteAnim_83F7F3C[] = +{ ANIMCMD_FRAME(.imageValue = 0, .duration = 0), ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_83F7F44[] = { +const union AnimCmd *const gSpriteAnimTable_83F7F44[] = +{ gSpriteAnim_83F7F3C }; -const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = { +const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = +{ AFFINEANIMCMD_FRAME(0, 0, -2, 2), AFFINEANIMCMD_FRAME(0, 0, 2, 4), AFFINEANIMCMD_FRAME(0, 0, -2, 4), @@ -187,22 +195,26 @@ const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = { AFFINEANIMCMD_END }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] = { +const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] = +{ gSpriteAffineAnim_83F7F48 }; -const struct CompressedSpriteSheet gUnknown_083F7F74 = { +const struct CompressedSpriteSheet gUnknown_083F7F74 = +{ gMenuPokeblockDevice_Gfx, 0x800, GFX_TAG_POKEBLOCK_CASE }; -const struct CompressedSpritePalette gUnknown_083F7F7C = { +const struct CompressedSpritePalette gUnknown_083F7F7C = +{ gMenuPokeblockDevice_Pal, GFX_TAG_POKEBLOCK_CASE }; -const struct SpriteTemplate gSpriteTemplate_83F7F84 = { +const struct SpriteTemplate gSpriteTemplate_83F7F84 = +{ GFX_TAG_POKEBLOCK_CASE, GFX_TAG_POKEBLOCK_CASE, &gOamData_83F7F34, @@ -212,7 +224,8 @@ const struct SpriteTemplate gSpriteTemplate_83F7F84 = { SpriteCallbackDummy }; -const struct Pokeblock gUnknown_083F7F9C[] = { +const struct Pokeblock gUnknown_083F7F9C[] = +{ { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20}, { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20}, { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20}, @@ -432,14 +445,13 @@ void OpenPokeblockCaseOnFeeder(void) SetMainCallback2(sub_810B96C); } -#ifdef DEBUG +#if DEBUG void debug_sub_8120F98(void) { u8 i; - for (i=0; i<40 && gUnknown_083F7F9C[i].color != 0; i++) - { + + for (i = 0; i < 40 && gUnknown_083F7F9C[i].color != 0; i++) gSaveBlock1.pokeblocks[i] = gUnknown_083F7F9C[i]; - } } #endif diff --git a/src/field/roamer.c b/src/field/roamer.c index 2eb26ef9d..16a42e9f1 100644 --- a/src/field/roamer.c +++ b/src/field/roamer.c @@ -1,7 +1,9 @@ #include "global.h" +#include "debug.h" #include "roamer.h" #include "pokemon.h" #include "random.h" +#include "region_map.h" #include "constants/species.h" #ifdef SAPPHIRE @@ -224,3 +226,20 @@ void GetRoamerLocation(u8 *mapGroup, u8 *mapNum) *mapGroup = sRoamerLocation[MAP_GRP]; *mapNum = sRoamerLocation[MAP_NUM]; } + +#ifdef DEBUG +void debug_sub_814A714(void) +{ + if (gSaveBlock1.location.mapGroup == 0) + { + CreateInitialRoamerMon(); + sRoamerLocation[0] = 0; + sRoamerLocation[1] = gSaveBlock1.location.mapNum; + } +} + +void debug_sub_814A73C(u8* str) +{ + GetMapSectionName(str, sRoamerLocation[1], 0); +} +#endif diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 9ff3a037c..e231f686d 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -17,7 +17,8 @@ #include "menu.h" #include "ewram.h" -struct UnkStruct1 { +struct UnkStruct1 +{ /*0x00*/ u8 unk00; /*0x01*/ u8 unk01; /*0x02*/ s16 unk02; @@ -2854,7 +2855,13 @@ static void sub_8104C5C(void) static void LoadSlotMachineWheelOverlay(void); -static void sub_8104CAC(u8 arg0) { +#ifdef DEBUG +// should be static +__attribute__((section(".bss"))) u8 unk_debug_bss_1[0xC] = { 0 }; +#endif + +static void sub_8104CAC(u8 arg0) +{ u8 i; struct Task *task; @@ -2875,9 +2882,7 @@ static void sub_8104CAC(u8 arg0) { #ifdef GERMAN if (arg0 == 5 && i <= 2) - { gSprites[spriteId].invisible = TRUE; - } #endif } } @@ -3966,7 +3971,8 @@ static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { vram[16 * 32 + 1 + arg0] = arg4; } -static void sub_81065DC(void) { +static void sub_81065DC(void) +{ s16 y, x; u16 *screen; @@ -3982,7 +3988,1226 @@ static void sub_81065DC(void) { } } -static const u8 sReelSymbols[][21] = { +#if DEBUG +__attribute__((naked)) +void debug_sub_811B1C4() +{ + asm( + " ldr r1, ._1\n" + " ldrb r0, [r1]\n" + " mov r3, #0x2\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " ldr r2, ._1 + 4\n" + " ldrb r1, [r2]\n" + " mov r0, #0x2\n" + " eor r1, r1, r0\n" + " neg r0, r1\n" + " orr r0, r0, r1\n" + " asr r0, r0, #0x1f\n" + " and r0, r0, r3\n" + " strb r0, [r2]\n" + " bx lr\n" + "._2:\n" + " .align 2, 0\n" + "._1:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B1EC() +{ + asm( + " ldr r2, ._3\n" + " ldrb r0, [r2]\n" + " mov r1, #0x1\n" + " orr r0, r0, r1\n" + " strb r0, [r2]\n" + " ldr r2, ._3 + 4\n" + " ldrb r0, [r2]\n" + " mov r1, #0x1\n" + " eor r0, r0, r1\n" + " neg r0, r0\n" + " lsr r0, r0, #0x1f\n" + " strb r0, [r2]\n" + " bx lr\n" + "._4:\n" + " .align 2, 0\n" + "._3:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B210() +{ + asm( + " ldr r1, ._5\n" + " ldrb r0, [r1]\n" + " mov r3, #0x4\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " ldr r2, ._5 + 4\n" + " ldrb r1, [r2]\n" + " mov r0, #0x4\n" + " eor r1, r1, r0\n" + " neg r0, r1\n" + " orr r0, r0, r1\n" + " asr r0, r0, #0x1f\n" + " and r0, r0, r3\n" + " strb r0, [r2]\n" + " bx lr\n" + "._6:\n" + " .align 2, 0\n" + "._5:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B238() +{ + asm( + " ldr r1, ._7\n" + " ldrb r0, [r1]\n" + " mov r3, #0x8\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " ldr r2, ._7 + 4\n" + " ldrb r1, [r2]\n" + " mov r0, #0x8\n" + " eor r1, r1, r0\n" + " neg r0, r1\n" + " orr r0, r0, r1\n" + " asr r0, r0, #0x1f\n" + " and r0, r0, r3\n" + " strb r0, [r2]\n" + " bx lr\n" + "._8:\n" + " .align 2, 0\n" + "._7:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B260() +{ + asm( + " ldr r1, ._9\n" + " ldrb r0, [r1]\n" + " mov r3, #0x10\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " ldr r2, ._9 + 4\n" + " ldrb r1, [r2]\n" + " mov r0, #0x10\n" + " eor r1, r1, r0\n" + " neg r0, r1\n" + " orr r0, r0, r1\n" + " asr r0, r0, #0x1f\n" + " and r0, r0, r3\n" + " strb r0, [r2]\n" + " bx lr\n" + "._10:\n" + " .align 2, 0\n" + "._9:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B288() +{ + asm( + " ldr r1, ._11\n" + " ldrb r0, [r1]\n" + " mov r3, #0x40\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " ldr r2, ._11 + 4\n" + " ldrb r1, [r2]\n" + " mov r0, #0x40\n" + " eor r1, r1, r0\n" + " neg r0, r1\n" + " orr r0, r0, r1\n" + " asr r0, r0, #0x1f\n" + " and r0, r0, r3\n" + " strb r0, [r2]\n" + " bx lr\n" + "._12:\n" + " .align 2, 0\n" + "._11:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B2B0() +{ + asm( + " ldr r1, ._13\n" + " ldrb r0, [r1]\n" + " mov r3, #0x80\n" + " orr r0, r0, r3\n" + " strb r0, [r1]\n" + " ldr r2, ._13 + 4\n" + " ldrb r1, [r2]\n" + " mov r0, #0x80\n" + " eor r1, r1, r0\n" + " neg r0, r1\n" + " orr r0, r0, r1\n" + " asr r0, r0, #0x1f\n" + " and r0, r0, r3\n" + " strb r0, [r2]\n" + " bx lr\n" + "._14:\n" + " .align 2, 0\n" + "._13:\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B2D8() +{ + asm( + " ldr r0, ._15\n" + " ldrb r1, [r0]\n" + " mov r2, #0x20\n" + " orr r1, r1, r2\n" + " strb r1, [r0]\n" + " bx lr\n" + "._16:\n" + " .align 2, 0\n" + "._15:\n" + " .word unk_debug_bss_1+0x3\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B2E8() +{ + asm( + " push {lr}\n" + " add sp, sp, #0xfffffffc\n" + " ldr r0, ._17\n" + " ldrb r1, [r0, #0x1]\n" + " add r1, r1, #0x1\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x1\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x6\n" + " mov r2, #0x1\n" + " bl MenuPrint\n" + " add sp, sp, #0x4\n" + " pop {r0}\n" + " bx r0\n" + "._18:\n" + " .align 2, 0\n" + "._17:\n" + " .word +0x2000000\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B310() +{ + asm( + " push {r4, lr}\n" + " add sp, sp, #0xfffffff8\n" + " ldr r0, ._21\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 4\n" + " mov r1, #0x1\n" + " mov r2, #0x3\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 8\n" + " mov r1, #0x1\n" + " mov r2, #0x5\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 12\n" + " mov r1, #0x1\n" + " mov r2, #0x7\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 16\n" + " mov r1, #0x1\n" + " mov r2, #0x9\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 20\n" + " mov r1, #0x1\n" + " mov r2, #0xb\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 24\n" + " mov r1, #0x1\n" + " mov r2, #0xd\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 28\n" + " mov r1, #0x1\n" + " mov r2, #0xf\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 32\n" + " mov r1, #0x1\n" + " mov r2, #0x11\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 36\n" + " mov r1, #0xf\n" + " mov r2, #0x1\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 40\n" + " mov r1, #0xf\n" + " mov r2, #0x3\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 44\n" + " mov r1, #0xf\n" + " mov r2, #0x5\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 48\n" + " mov r1, #0xf\n" + " mov r2, #0x7\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 52\n" + " mov r1, #0xf\n" + " mov r2, #0x9\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 56\n" + " mov r1, #0xf\n" + " mov r2, #0xb\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 60\n" + " mov r1, #0xf\n" + " mov r2, #0xd\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 64\n" + " mov r1, #0xf\n" + " mov r2, #0xf\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 68\n" + " mov r1, #0xf\n" + " mov r2, #0x11\n" + " bl MenuPrint\n" + " ldr r0, ._21 + 72\n" + " ldrb r0, [r0, #0x3]\n" + " cmp r0, #0\n" + " bne ._19 @cond_branch\n" + " ldr r0, ._21 + 76\n" + " mov r1, #0xa\n" + " mov r2, #0x9\n" + " bl MenuPrint\n" + " b ._20\n" + "._22:\n" + " .align 2, 0\n" + "._21:\n" + " .word Str_841B1C4\n" + " .word Str_841B1CB\n" + " .word Str_841B1D4\n" + " .word Str_841B1DB\n" + " .word Str_841B1E2\n" + " .word Str_841B1E8\n" + " .word Str_841B1F3\n" + " .word Str_841B202\n" + " .word Str_841B24C\n" + " .word Str_841B211\n" + " .word Str_841B219\n" + " .word Str_841B220\n" + " .word Str_841B227\n" + " .word Str_841B22E\n" + " .word Str_841B235\n" + " .word Str_841B23B\n" + " .word Str_841B23F\n" + " .word Str_841B243\n" + " .word +0x2000000\n" + " .word Str_841B246\n" + "._19:\n" + " ldr r0, ._30\n" + " mov r1, #0xa\n" + " mov r2, #0x9\n" + " bl MenuPrint\n" + "._20:\n" + " ldr r4, ._30 + 4\n" + " ldr r1, [r4, #0x68]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0xa\n" + " mov r2, #0x3\n" + " bl MenuPrint\n" + " ldr r1, [r4, #0x6c]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0xa\n" + " mov r2, #0x5\n" + " bl MenuPrint\n" + " mov r0, #0x10\n" + " ldsh r1, [r4, r0]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0xa\n" + " mov r2, #0x7\n" + " bl MenuPrint\n" + " ldr r1, [r4, #0x70]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0x3\n" + " bl MenuPrint\n" + " ldr r1, [r4, #0x74]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0x5\n" + " bl MenuPrint\n" + " ldr r1, [r4, #0x78]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0x7\n" + " bl MenuPrint\n" + " ldr r1, [r4, #0x7c]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0x9\n" + " bl MenuPrint\n" + " add r0, r4, #0\n" + " add r0, r0, #0x80\n" + " ldr r1, [r0]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0xb\n" + " bl MenuPrint\n" + " add r0, r4, #0\n" + " add r0, r0, #0x84\n" + " ldr r1, [r0]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0xd\n" + " bl MenuPrint\n" + " add r0, r4, #0\n" + " add r0, r0, #0x88\n" + " ldr r1, [r0]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0xf\n" + " bl MenuPrint\n" + " add r0, r4, #0\n" + " add r0, r0, #0x8c\n" + " ldr r1, [r0]\n" + " mov r0, sp\n" + " mov r2, #0x2\n" + " mov r3, #0x4\n" + " bl ConvertIntToDecimalStringN\n" + " mov r0, sp\n" + " mov r1, #0x14\n" + " mov r2, #0x11\n" + " bl MenuPrint\n" + " ldr r1, ._30 + 8\n" + " ldrb r0, [r1]\n" + " cmp r0, #0\n" + " beq ._23 @cond_branch\n" + " mov r2, #0x0\n" + " cmp r0, #0x8\n" + " beq ._24 @cond_branch\n" + " cmp r0, #0x8\n" + " bgt ._25 @cond_branch\n" + " cmp r0, #0x2\n" + " beq ._26 @cond_branch\n" + " cmp r0, #0x2\n" + " bgt ._27 @cond_branch\n" + " cmp r0, #0x1\n" + " beq ._28 @cond_branch\n" + " b ._45\n" + "._31:\n" + " .align 2, 0\n" + "._30:\n" + " .word Str_841B249\n" + " .word +0x2000000\n" + " .word unk_debug_bss_1\n" + "._27:\n" + " cmp r0, #0x4\n" + " beq ._32 @cond_branch\n" + " b ._45\n" + "._25:\n" + " cmp r0, #0x40\n" + " beq ._34 @cond_branch\n" + " cmp r0, #0x40\n" + " bgt ._35 @cond_branch\n" + " cmp r0, #0x10\n" + " beq ._36 @cond_branch\n" + " b ._45\n" + "._35:\n" + " cmp r0, #0x80\n" + " beq ._38 @cond_branch\n" + " b ._45\n" + "._26:\n" + " mov r2, #0x3\n" + " b ._45\n" + "._28:\n" + " mov r2, #0x5\n" + " b ._45\n" + "._32:\n" + " mov r2, #0x7\n" + " b ._45\n" + "._24:\n" + " mov r2, #0x9\n" + " b ._45\n" + "._36:\n" + " mov r2, #0xb\n" + " b ._45\n" + "._34:\n" + " mov r2, #0xd\n" + " b ._45\n" + "._38:\n" + " mov r2, #0xf\n" + "._45:\n" + " ldr r0, ._46\n" + " mov r1, #0x17\n" + " bl MenuPrint\n" + "._23:\n" + " bl debug_sub_811B2E8\n" + " add sp, sp, #0x8\n" + " pop {r4}\n" + " pop {r0}\n" + " bx r0\n" + "._47:\n" + " .align 2, 0\n" + "._46:\n" + " .word Str_841B26D\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B5B4() +{ + asm( + " push {lr}\n" + " add r2, r0, #0\n" + " ldr r0, [r2]\n" + " add r0, r0, r1\n" + " str r0, [r2]\n" + " ldr r1, ._49\n" + " cmp r0, r1\n" + " ble ._48 @cond_branch\n" + " str r1, [r2]\n" + "._48:\n" + " pop {r0}\n" + " bx r0\n" + "._50:\n" + " .align 2, 0\n" + "._49:\n" + " .word 0x270f\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B5D0() +{ + asm( + " ldr r0, ._51\n" + " mov r1, #0x0\n" + " strb r1, [r0]\n" + " ldr r0, ._51 + 4\n" + " strb r1, [r0]\n" + " ldr r0, ._51 + 8\n" + " strb r1, [r0]\n" + " ldr r0, ._51 + 12\n" + " strb r1, [r0]\n" + " ldr r2, ._51 + 16\n" + " mov r0, #0x0\n" + " str r0, [r2, #0x68]\n" + " str r0, [r2, #0x6c]\n" + " str r0, [r2, #0x70]\n" + " str r0, [r2, #0x74]\n" + " str r0, [r2, #0x78]\n" + " str r0, [r2, #0x7c]\n" + " add r1, r2, #0\n" + " add r1, r1, #0x80\n" + " str r0, [r1]\n" + " add r1, r1, #0x4\n" + " str r0, [r1]\n" + " add r1, r1, #0x4\n" + " str r0, [r1]\n" + " add r1, r1, #0x4\n" + " str r0, [r1]\n" + " add r1, r1, #0x4\n" + " str r0, [r1]\n" + " bx lr\n" + "._52:\n" + " .align 2, 0\n" + "._51:\n" + " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1+0x2\n" + " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1+0x4\n" + " .word +0x2000000\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B620() +{ + asm( + " push {lr}\n" + " ldr r0, ._53\n" + " mov r1, #0x0\n" + " bl CreateTask\n" + " pop {r0}\n" + " bx r0\n" + "._54:\n" + " .align 2, 0\n" + "._53:\n" + " .word debug_sub_811B654+1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B634() +{ + asm( + " push {lr}\n" + " ldr r0, ._57\n" + " bl FindTaskIdByFunc\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0xff\n" + " beq ._55 @cond_branch\n" + " mov r0, #0x0\n" + " b ._56\n" + "._58:\n" + " .align 2, 0\n" + "._57:\n" + " .word debug_sub_811B654+1\n" + "._55:\n" + " mov r0, #0x1\n" + "._56:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B654() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " add sp, sp, #0xfffffff8\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " lsl r0, r6, #0x2\n" + " add r0, r0, r6\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._63\n" + " add r5, r0, r1\n" + " mov r0, #0x8\n" + " ldsh r1, [r5, r0]\n" + " cmp r1, #0x1\n" + " beq ._59 @cond_branch\n" + " cmp r1, #0x1\n" + " bgt ._60 @cond_branch\n" + " cmp r1, #0\n" + " beq ._61 @cond_branch\n" + " b ._116\n" + "._64:\n" + " .align 2, 0\n" + "._63:\n" + " .word gTasks\n" + "._60:\n" + " cmp r1, #0x2\n" + " bne ._65 @cond_branch\n" + " b ._66\n" + "._65:\n" + " cmp r1, #0x3\n" + " bne ._67 @cond_branch\n" + " b ._68\n" + "._67:\n" + " b ._116\n" + "._61:\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0x18\n" + " mov r3, #0x13\n" + " bl MenuDrawTextWindow\n" + " bl debug_sub_811B310\n" + " ldrh r0, [r5, #0x8]\n" + " add r0, r0, #0x1\n" + " strh r0, [r5, #0x8]\n" + " b ._116\n" + "._59:\n" + " ldr r7, ._76\n" + " ldrh r2, [r7, #0x2e]\n" + " mov r0, #0x2\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._71 @cond_branch\n" + " b ._94\n" + "._71:\n" + " mov r0, #0x20\n" + " and r0, r0, r2\n" + " lsl r0, r0, #0x10\n" + " lsr r3, r0, #0x10\n" + " cmp r3, #0\n" + " beq ._73 @cond_branch\n" + " ldr r1, ._76 + 4\n" + " ldrb r0, [r1, #0x1]\n" + " sub r0, r0, #0x1\n" + " strb r0, [r1, #0x1]\n" + " lsl r0, r0, #0x18\n" + " cmp r0, #0\n" + " bge ._79 @cond_branch\n" + " mov r0, #0x5\n" + " strb r0, [r1, #0x1]\n" + " b ._79\n" + "._77:\n" + " .align 2, 0\n" + "._76:\n" + " .word gMain\n" + " .word +0x2000000\n" + "._73:\n" + " mov r0, #0x10\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._78 @cond_branch\n" + " ldr r1, ._81\n" + " ldrb r0, [r1, #0x1]\n" + " add r0, r0, #0x1\n" + " strb r0, [r1, #0x1]\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x5\n" + " bls ._79 @cond_branch\n" + " strb r3, [r1, #0x1]\n" + "._79:\n" + " bl debug_sub_811B2E8\n" + " b ._116\n" + "._82:\n" + " .align 2, 0\n" + "._81:\n" + " .word +0x2000000\n" + "._78:\n" + " and r1, r1, r2\n" + " lsl r0, r1, #0x10\n" + " lsr r4, r0, #0x10\n" + " cmp r4, #0\n" + " beq ._83 @cond_branch\n" + " mov r0, #0x3\n" + " strh r0, [r5, #0x8]\n" + " bl MenuZeroFillScreen\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0x9\n" + " mov r3, #0x5\n" + " bl MenuDrawTextWindow\n" + " ldr r0, ._85\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " bl MenuPrint\n" + " ldr r0, ._85 + 4\n" + " mov r1, #0x1\n" + " mov r2, #0x3\n" + " bl MenuPrint\n" + " b ._116\n" + "._86:\n" + " .align 2, 0\n" + "._85:\n" + " .word Str_841B25C\n" + " .word Str_841B264\n" + "._83:\n" + " mov r0, #0x4\n" + " and r0, r0, r2\n" + " cmp r0, #0\n" + " beq ._87 @cond_branch\n" + " ldr r0, ._91\n" + " strb r4, [r0]\n" + " ldr r0, ._91 + 4\n" + " strb r4, [r0]\n" + " bl MenuZeroFillScreen\n" + " mov r0, #0x0\n" + " mov r1, #0x0\n" + " mov r2, #0xa\n" + " mov r3, #0x13\n" + " bl MenuDrawTextWindow\n" + " ldr r0, ._91 + 8\n" + " mov r1, #0x1\n" + " mov r2, #0x1\n" + " bl MenuPrint\n" + " ldr r3, ._91 + 12\n" + " mov r0, #0x2\n" + " mov r1, #0x3\n" + " mov r2, #0x8\n" + " bl PrintMenuItems\n" + " str r4, [sp]\n" + " mov r0, #0x9\n" + " str r0, [sp, #0x4]\n" + " mov r0, #0x0\n" + " mov r1, #0x1\n" + " mov r2, #0x3\n" + " mov r3, #0x8\n" + " bl InitMenu\n" + " ldrh r0, [r5, #0x8]\n" + " add r0, r0, #0x1\n" + " strh r0, [r5, #0x8]\n" + "._87:\n" + " ldrh r1, [r7, #0x2e]\n" + " mov r0, #0x8\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._88 @cond_branch\n" + " b ._116\n" + "._88:\n" + " ldr r1, ._91 + 16\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " b ._94\n" + "._92:\n" + " .align 2, 0\n" + "._91:\n" + " .word unk_debug_bss_1+0x2\n" + " .word unk_debug_bss_1+0x3\n" + " .word Str_841B254\n" + " .word _841B270\n" + " .word unk_debug_bss_1+0x4\n" + "._66:\n" + " bl ProcessMenuInput\n" + " lsl r0, r0, #0x18\n" + " asr r2, r0, #0x18\n" + " mov r0, #0x2\n" + " neg r0, r0\n" + " cmp r2, r0\n" + " beq ._116 @cond_branch\n" + " add r0, r0, #0x1\n" + " cmp r2, r0\n" + " beq ._94 @cond_branch\n" + " ldr r1, ._96\n" + " mov r0, #0x1\n" + " strb r0, [r1]\n" + " ldr r0, ._96 + 4\n" + " lsl r1, r2, #0x3\n" + " add r0, r0, #0x4\n" + " add r1, r1, r0\n" + " ldr r0, [r1]\n" + " bl _call_via_r0\n" + "._94:\n" + " bl MenuZeroFillScreen\n" + " add r0, r6, #0\n" + " bl DestroyTask\n" + " b ._116\n" + "._97:\n" + " .align 2, 0\n" + "._96:\n" + " .word unk_debug_bss_1+0x2\n" + " .word _841B270\n" + "._68:\n" + " ldr r2, ._100\n" + " ldrh r1, [r2, #0x30]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._98 @cond_branch\n" + " ldr r2, ._100 + 4\n" + " ldrh r0, [r2, #0xc]\n" + " add r0, r0, #0x64\n" + " b ._99\n" + "._101:\n" + " .align 2, 0\n" + "._100:\n" + " .word gMain\n" + " .word +0x2000000\n" + "._98:\n" + " mov r0, #0x40\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._102 @cond_branch\n" + " ldr r1, ._104\n" + " ldrh r0, [r1, #0xc]\n" + " sub r0, r0, #0x64\n" + " b ._103\n" + "._105:\n" + " .align 2, 0\n" + "._104:\n" + " .word +0x2000000\n" + "._102:\n" + " mov r0, #0x20\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._106 @cond_branch\n" + " ldr r1, ._109\n" + " ldr r2, ._109 + 4\n" + " add r0, r2, #0\n" + " ldrh r2, [r1, #0xc]\n" + " add r0, r0, r2\n" + "._103:\n" + " strh r0, [r1, #0xc]\n" + " lsl r0, r0, #0x10\n" + " cmp r0, #0\n" + " bgt ._116 @cond_branch\n" + " ldr r0, ._109 + 8\n" + " strh r0, [r1, #0xc]\n" + " b ._116\n" + "._110:\n" + " .align 2, 0\n" + "._109:\n" + " .word +0x2000000\n" + " .word 0xfffffc18\n" + " .word 0x270f\n" + "._106:\n" + " mov r0, #0x10\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._111 @cond_branch\n" + " ldr r2, ._114\n" + " mov r1, #0xfa\n" + " lsl r1, r1, #0x2\n" + " add r0, r1, #0\n" + " ldrh r1, [r2, #0xc]\n" + " add r0, r0, r1\n" + "._99:\n" + " strh r0, [r2, #0xc]\n" + " lsl r0, r0, #0x10\n" + " asr r0, r0, #0x10\n" + " ldr r1, ._114 + 4\n" + " cmp r0, r1\n" + " ble ._116 @cond_branch\n" + " strh r1, [r2, #0xc]\n" + " b ._116\n" + "._115:\n" + " .align 2, 0\n" + "._114:\n" + " .word +0x2000000\n" + " .word 0x270f\n" + "._111:\n" + " ldrh r1, [r2, #0x2e]\n" + " mov r0, #0x2\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._116 @cond_branch\n" + " bl MenuZeroFillScreen\n" + " add r0, r6, #0\n" + " bl DestroyTask\n" + "._116:\n" + " add sp, sp, #0x8\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_811B894() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " add sp, sp, #0xfffffffc\n" + " ldr r1, ._122\n" + " ldrh r2, [r1, #0x8]\n" + " mov r0, #0xc0\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r2\n" + " add r4, r1, #0\n" + " cmp r0, #0\n" + " beq ._117 @cond_branch\n" + " add r1, r1, #0x90\n" + " ldr r0, [r1]\n" + " add r0, r0, #0x1\n" + " str r0, [r1]\n" + " ldr r2, ._122 + 4\n" + " cmp r0, r2\n" + " ble ._118 @cond_branch\n" + " str r2, [r1]\n" + "._118:\n" + " add r0, r4, #0\n" + " add r0, r0, #0x88\n" + " ldr r1, [r1]\n" + " ldr r0, [r0]\n" + " cmp r1, r0\n" + " beq ._119 @cond_branch\n" + " ldr r0, ._122 + 8\n" + " mov r1, #0x4\n" + " mov r2, #0xf\n" + " bl MenuPrint\n" + " ldr r1, ._122 + 12\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + "._119:\n" + " ldrb r1, [r4, #0x4]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " cmp r4, #0\n" + " bne ._126 @cond_branch\n" + " ldr r0, ._122 + 16\n" + " mov r1, #0x4\n" + " mov r2, #0x11\n" + " b ._121\n" + "._123:\n" + " .align 2, 0\n" + "._122:\n" + " .word +0x2000000\n" + " .word 0x270f\n" + " .word Str_841B2B0\n" + " .word unk_debug_bss_1+0x4\n" + " .word Str_841B2D3\n" + "._117:\n" + " lsl r0, r2, #0x10\n" + " cmp r0, #0\n" + " beq ._127 @cond_branch\n" + " ldrb r1, [r4, #0x4]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._126 @cond_branch\n" + " mov r4, #0x3\n" + " and r4, r4, r2\n" + " cmp r4, #0\n" + " bne ._126 @cond_branch\n" + " ldr r0, ._163\n" + " mov r1, #0x4\n" + " mov r2, #0x2\n" + "._121:\n" + " bl MenuPrint\n" + " ldr r0, ._163 + 4\n" + " strb r4, [r0]\n" + "._126:\n" + " ldr r0, ._163 + 8\n" + " ldrh r1, [r0, #0x8]\n" + " add r4, r0, #0\n" + " cmp r1, #0\n" + " beq ._127 @cond_branch\n" + " b ._162\n" + "._127:\n" + " mov r1, #0x12\n" + " ldsh r0, [r4, r1]\n" + " cmp r0, #0x3\n" + " beq ._129 @cond_branch\n" + " b ._162\n" + "._129:\n" + " ldrb r1, [r4, #0x4]\n" + " mov r0, #0x80\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._131 @cond_branch\n" + " b ._162\n" + "._131:\n" + " mov r0, #0x0\n" + " mov r1, #0x1\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " mov r0, #0x0\n" + " mov r1, #0x2\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " str r0, [sp]\n" + " mov r0, #0x0\n" + " mov r1, #0x3\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " mov r0, #0x1\n" + " mov r1, #0x1\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r9, r0\n" + " mov r0, #0x1\n" + " mov r1, #0x2\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " mov r0, #0x1\n" + " mov r1, #0x3\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov sl, r0\n" + " mov r0, #0x2\n" + " mov r1, #0x1\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r5, r0, #0x18\n" + " mov r0, #0x2\n" + " mov r1, #0x2\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r8, r0\n" + " mov r0, #0x2\n" + " mov r1, #0x3\n" + " bl sub_8102BA4\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r7, #0\n" + " bne ._134 @cond_branch\n" + " mov r1, r9\n" + " cmp r1, #0x1\n" + " bne ._134 @cond_branch\n" + " cmp r5, #0\n" + " beq ._159 @cond_branch\n" + "._134:\n" + " ldr r1, [sp]\n" + " cmp r1, #0\n" + " bne ._137 @cond_branch\n" + " cmp r4, #0x1\n" + " bne ._137 @cond_branch\n" + " mov r1, r8\n" + " cmp r1, #0\n" + " beq ._159 @cond_branch\n" + "._137:\n" + " cmp r6, #0\n" + " bne ._140 @cond_branch\n" + " mov r1, sl\n" + " cmp r1, #0x1\n" + " bne ._140 @cond_branch\n" + " cmp r0, #0\n" + " beq ._159 @cond_branch\n" + "._140:\n" + " cmp r7, #0\n" + " bne ._143 @cond_branch\n" + " cmp r4, #0x1\n" + " bne ._143 @cond_branch\n" + " cmp r0, #0\n" + " beq ._159 @cond_branch\n" + "._143:\n" + " cmp r6, #0\n" + " bne ._146 @cond_branch\n" + " cmp r4, #0x1\n" + " bne ._146 @cond_branch\n" + " cmp r5, #0\n" + " beq ._159 @cond_branch\n" + "._146:\n" + " cmp r7, #0x1\n" + " bne ._149 @cond_branch\n" + " mov r1, r9\n" + " cmp r1, #0\n" + " bne ._149 @cond_branch\n" + " cmp r5, #0x1\n" + " beq ._159 @cond_branch\n" + "._149:\n" + " ldr r1, [sp]\n" + " cmp r1, #0x1\n" + " bne ._152 @cond_branch\n" + " cmp r4, #0\n" + " bne ._152 @cond_branch\n" + " mov r1, r8\n" + " cmp r1, #0x1\n" + " beq ._159 @cond_branch\n" + "._152:\n" + " cmp r6, #0x1\n" + " bne ._155 @cond_branch\n" + " mov r1, sl\n" + " cmp r1, #0\n" + " bne ._155 @cond_branch\n" + " cmp r0, #0x1\n" + " beq ._159 @cond_branch\n" + "._155:\n" + " cmp r7, #0x1\n" + " bne ._158 @cond_branch\n" + " cmp r4, #0\n" + " bne ._158 @cond_branch\n" + " cmp r0, #0x1\n" + " beq ._159 @cond_branch\n" + "._158:\n" + " cmp r6, #0x1\n" + " bne ._162 @cond_branch\n" + " cmp r4, #0\n" + " bne ._162 @cond_branch\n" + " cmp r5, #0x1\n" + " bne ._162 @cond_branch\n" + "._159:\n" + " ldr r0, ._163 + 12\n" + " mov r1, #0x4\n" + " mov r2, #0x0\n" + " bl MenuPrint\n" + " ldr r1, ._163 + 4\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + "._162:\n" + " add sp, sp, #0x4\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._164:\n" + " .align 2, 0\n" + "._163:\n" + " .word Str_841B2E4\n" + " .word unk_debug_bss_1+0x4\n" + " .word +0x2000000\n" + " .word Str_841B2BF\n" + "\n" + ); +} +#endif + +static const u8 sReelSymbols[][21] = +{ { SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_CHERRY, diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 2f6f1e7dd..5e76d30a6 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -44,6 +44,11 @@ enum { MENU_ACTION_PLAYER_LINK }; +#ifdef DEBUG +static u32 _debugStartMenu_0 __attribute__((unused)); +static u32 _debugStartMenu_1 __attribute__((unused)); +#endif + static u8 (*saveDialogCallback)(void); static u8 saveDialogTimer; //Number of frames to keep the window on screen after save was completed static bool8 savingComplete; @@ -132,6 +137,304 @@ static bool32 sub_80719FC(u8 *ptr); static void sub_8071B54(void); static void Task_8071B64(u8 taskId); +#ifdef DEBUG +__attribute__((naked)) +void debug_sub_8075C30() +{ + asm( + " push {lr}\n" + " bl CloseMenu\n" + " bl debug_sub_8075D9C\n" + " mov r0, #0x1\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8075C40() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, sl\n" + " mov r6, r9\n" + " mov r5, r8\n" + " push {r5, r6, r7}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " lsl r0, r4, #0x2\n" + " add r0, r0, r4\n" + " lsl r0, r0, #0x3\n" + " ldr r1, ._5\n" + " add r5, r0, r1\n" + " mov r1, #0x0\n" + " ldsh r0, [r5, r1]\n" + " cmp r0, #0x1\n" + " beq ._1 @cond_branch\n" + " cmp r0, #0x1\n" + " bgt ._2 @cond_branch\n" + " cmp r0, #0\n" + " beq ._3 @cond_branch\n" + " b ._18\n" + "._6:\n" + " .align 2, 0\n" + "._5:\n" + " .word gTasks+0x8\n" + "._2:\n" + " cmp r0, #0x2\n" + " beq ._7 @cond_branch\n" + " cmp r0, #0x3\n" + " beq ._8 @cond_branch\n" + " b ._18\n" + "._3:\n" + " bl m4aSoundVSyncOff\n" + " b ._12\n" + "._1:\n" + " ldr r1, ._13\n" + " ldrh r0, [r1]\n" + " mov sl, r0\n" + " mov r0, #0x0\n" + " strh r0, [r1]\n" + " ldr r1, ._13 + 4\n" + " strh r0, [r1]\n" + " mov r0, #0x83\n" + " lsl r0, r0, #0x10\n" + " str r0, [r1]\n" + " ldr r4, ._13 + 8\n" + " mov r9, r4\n" + " ldr r2, ._13 + 12\n" + " ldr r0, ._13 + 16\n" + " mov ip, r0\n" + " ldr r1, ._13 + 20\n" + " mov r8, r1\n" + " ldr r7, ._13 + 24\n" + " mov r3, r9\n" + " add r3, r3, #0x1\n" + " ldr r6, ._13 + 28\n" + " ldr r4, ._13 + 32\n" + "._11:\n" + " mov r0, ip\n" + " str r0, [r2]\n" + " str r6, [r2, #0x4]\n" + " str r4, [r2, #0x8]\n" + " ldr r0, [r2, #0x8]\n" + " ldrh r1, [r2, #0xa]\n" + " mov r0, r8\n" + " and r0, r0, r1\n" + " strh r0, [r2, #0xa]\n" + " ldrh r1, [r2, #0xa]\n" + " add r0, r7, #0\n" + " and r0, r0, r1\n" + " strh r0, [r2, #0xa]\n" + " ldrh r0, [r2, #0xa]\n" + " sub r3, r3, #0x1\n" + " cmp r3, #0\n" + " bne ._11 @cond_branch\n" + " mov r3, r9\n" + " add r3, r3, #0x1\n" + " ldr r0, ._13 + 36\n" + " mov r2, #0x0\n" + " strh r2, [r0]\n" + " ldr r1, ._13 + 4\n" + " ldrh r0, [r1]\n" + " ldr r4, ._13 + 40\n" + " str r0, [r4]\n" + " strh r2, [r1]\n" + " ldr r0, ._13\n" + " mov r1, sl\n" + " strh r1, [r0]\n" + " ldr r4, ._13 + 44\n" + " str r3, [r4]\n" + " bl m4aSoundVSyncOn\n" + " b ._12\n" + "._14:\n" + " .align 2, 0\n" + "._13:\n" + " .word 0x4000208\n" + " .word 0x4000108\n" + " .word 0xc34f\n" + " .word 0x40000b0\n" + " .word gUnknown_03004DE0\n" + " .word 0xc5ff\n" + " .word 0x7fff\n" + " .word 0x4000040\n" + " .word 0xa2600001\n" + " .word 0x400010a\n" + " .word _debugStartMenu_0\n" + " .word _debugStartMenu_1\n" + "._7:\n" + " mov r0, #0x15\n" + " bl PlaySE\n" + " ldr r0, ._16\n" + " ldr r1, ._16 + 4\n" + " ldr r1, [r1]\n" + " mov r2, #0x1\n" + " mov r3, #0x8\n" + " bl ConvertIntToDecimalStringN\n" + " ldr r0, ._16 + 8\n" + " ldr r1, ._16 + 12\n" + " ldr r1, [r1]\n" + " mov r2, #0x1\n" + " mov r3, #0x8\n" + " bl ConvertIntToDecimalStringN\n" + " bl MenuDisplayMessageBox\n" + " ldr r0, ._16 + 16\n" + " mov r1, #0x2\n" + " mov r2, #0xf\n" + " bl MenuPrint\n" + "._12:\n" + " ldrh r0, [r5]\n" + " add r0, r0, #0x1\n" + " strh r0, [r5]\n" + " b ._18\n" + "._17:\n" + " .align 2, 0\n" + "._16:\n" + " .word gStringVar1\n" + " .word _debugStartMenu_1\n" + " .word gStringVar2\n" + " .word _debugStartMenu_0\n" + " .word gUnknown_Debug_839B6D8\n" + "._8:\n" + " ldr r0, ._19\n" + " ldrh r1, [r0, #0x2e]\n" + " mov r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " beq ._18 @cond_branch\n" + " bl MenuZeroFillScreen\n" + " bl ScriptContext2_Disable\n" + " add r0, r4, #0\n" + " bl DestroyTask\n" + "._18:\n" + " pop {r3, r4, r5}\n" + " mov r8, r3\n" + " mov r9, r4\n" + " mov sl, r5\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "._20:\n" + " .align 2, 0\n" + "._19:\n" + " .word gMain\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8075D9C() +{ + asm( + " push {lr}\n" + " ldr r0, ._21\n" + " mov r1, #0xa\n" + " bl CreateTask\n" + " bl ScriptContext2_Enable\n" + " pop {r0}\n" + " bx r0\n" + "._22:\n" + " .align 2, 0\n" + "._21:\n" + " .word debug_sub_8075C40+1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_8075DB4() +{ + asm( + " push {r4, r5, r6, lr}\n" + " add r6, r0, #0\n" + " add r5, r1, #0\n" + " add r4, r2, #0\n" + " add r0, r4, #0\n" + " mov r1, #0x4d\n" + " bl __umodsi3\n" + " strb r0, [r6, #0x1]\n" + " add r1, r6, #0\n" + " add r1, r1, #0xc\n" + " add r0, r4, #0\n" + " bl write_word_to_mem\n" + " add r0, r6, #4\n" + " add r1, r5, #0\n" + " bl StringCopy8\n" + " mov r3, #0x7\n" + " mov r4, #0x0\n" + " ldr r0, ._25\n" + " ldr r1, ._25 + 4\n" + " add r5, r0, r1\n" + " add r2, r6, #0\n" + " add r2, r2, #0x10\n" + " add r1, r6, #0\n" + " add r1, r1, #0x1c\n" + "._23:\n" + " ldrh r0, [r5]\n" + " strh r0, [r2]\n" + " strh r3, [r1]\n" + " add r0, r3, #6\n" + " strh r0, [r1, #0xc]\n" + " add r3, r3, #0x1\n" + " add r5, r5, #0x2\n" + " add r2, r2, #0x2\n" + " add r1, r1, #0x2\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x5\n" + " ble ._23 @cond_branch\n" + " mov r4, #0x0\n" + "._24:\n" + " mov r0, #0x64\n" + " mul r0, r0, r4\n" + " ldr r1, ._25 + 8\n" + " add r0, r0, r1\n" + " mov r1, #0x2c\n" + " mul r1, r1, r4\n" + " add r1, r1, #0x34\n" + " add r1, r6, r1\n" + " bl sub_803AF78\n" + " add r4, r4, #0x1\n" + " cmp r4, #0x2\n" + " ble ._24 @cond_branch\n" + " add r0, r6, #0\n" + " bl sub_8136088\n" + " pop {r4, r5, r6}\n" + " pop {r0}\n" + " bx r0\n" + "._26:\n" + " .align 2, 0\n" + "._25:\n" + " .word gSaveBlock1\n" + " .word 0x2b28\n" + " .word gPlayerParty\n" + "\n" + ); +} + +__attribute__((naked)) +void unref_sub_8070F90() +{ + asm( + " push {lr}\n" + " ldr r0, ._27\n" + " bl FlagSet\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x4\n" + " bl FlagSet\n" + " ldr r0, ._27 + 4\n" + " bl FlagSet\n" + " pop {r0}\n" + " bx r0\n" + "._28:\n" + " .align 2, 0\n" + "._27:\n" + " .word 0x801\n" + " .word 0x802\n" + "\n" + ); +} +#endif static void BuildStartMenuActions(void) { diff --git a/src/field/wild_encounter.c b/src/field/wild_encounter.c index 4bf83cad8..08913f40d 100644 --- a/src/field/wild_encounter.c +++ b/src/field/wild_encounter.c @@ -3802,6 +3802,19 @@ static void FeebasSeedRng(u16 seed) sFeebasRngValue = seed; } +#if DEBUG +u16 debug_sub_8092344(u8 arg0) +{ + if (arg0 == 0) + return 131; + if (arg0 == 1) + return 167; + if (arg0 == 2) + return 149; + return 0; +} +#endif + static u8 ChooseWildMonIndex_Land(void) { u8 rand = Random() % 100; @@ -4042,6 +4055,24 @@ static bool8 DoWildEncounterRateDiceRoll(u16 encounterRate) return FALSE; } +#if DEBUG +u16 debug_sub_809283C(u16 attempts) +{ + u16 retval = 0; + u16 i = 0; + + while (i < attempts) + { + if (DoWildEncounterRateDiceRoll(320) == TRUE) + retval++; + + i++; + } + + return retval; +} +#endif + static bool8 DoWildEncounterTest(u32 encounterRate, bool8 ignoreAbility) { encounterRate *= 16; -- cgit v1.2.3 From d79f440b8d4c5af26a98011719807b05745533e1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 12:10:41 -0600 Subject: use 'if DEBUG' instead of 'ifdef DEBUG' --- src/field/bike.c | 6 +++--- src/field/decoration_inventory.c | 2 +- src/field/mauville_man.c | 2 +- src/field/party_menu.c | 4 ++-- src/field/roamer.c | 2 +- src/field/slot_machine.c | 2 +- src/field/start_menu.c | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) (limited to 'src/field') diff --git a/src/field/bike.c b/src/field/bike.c index 736dbc837..eb9d56a64 100644 --- a/src/field/bike.c +++ b/src/field/bike.c @@ -14,7 +14,7 @@ extern bool8 gBikeCyclingChallenge; extern u8 gBikeCollisions; extern u8 gUnusedBikeCameraAheadPanback; -#ifdef DEBUG +#if DEBUG extern u8 gUnknown_020297ED; u8 debug_sub_805F2B0(u8); #endif @@ -131,7 +131,7 @@ static const struct BikeHistoryInputInfo gAcroBikeTricksList[] = void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys) { -#ifdef DEBUG +#if DEBUG if (gUnknown_020297ED && debug_sub_805F2B0(direction)) { Bike_SetBikeStill(); @@ -284,7 +284,7 @@ static void MachBikeTransition_TrySlowDown(u8 var) // the acro bike requires the input handler to be executed before the transition can. static void MovePlayerOnAcroBike(u8 newDirection, u16 newKeys, u16 heldKeys) { -#ifdef DEBUG +#if DEBUG if (gUnknown_020297ED && debug_sub_805F2B0(newDirection)) { Bike_SetBikeStill(); diff --git a/src/field/decoration_inventory.c b/src/field/decoration_inventory.c index 21ced1be8..8f7f5eb92 100644 --- a/src/field/decoration_inventory.c +++ b/src/field/decoration_inventory.c @@ -166,7 +166,7 @@ u8 sub_81341D4(void) } -#ifdef DEBUG +#if DEBUG void debug_sub_814A3A8(void) { u8 decor; diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 1b53df6be..00368c2f5 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -250,7 +250,7 @@ void SetupMauvilleOldMan(void) sub_80F83D0(); } -#ifdef DEBUG +#if DEBUG __attribute__((naked)) void debug_sub_810B32C() { diff --git a/src/field/party_menu.c b/src/field/party_menu.c index c099fd8f4..7994dd60c 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -4025,7 +4025,7 @@ void TeachMonTMMove(u8 taskId, u16 move, TaskFunc func) CreateTask(Task_TeamMonTMMove, 5); } -#ifdef DEBUG +#if DEBUG extern u8 gUnknown_020297ED; #endif @@ -4044,7 +4044,7 @@ void Task_TeamMonTMMove(u8 taskId) else { if ( -#ifdef DEBUG +#if DEBUG !gUnknown_020297ED && #endif !CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33)) diff --git a/src/field/roamer.c b/src/field/roamer.c index 16a42e9f1..6ed5b6c89 100644 --- a/src/field/roamer.c +++ b/src/field/roamer.c @@ -227,7 +227,7 @@ void GetRoamerLocation(u8 *mapGroup, u8 *mapNum) *mapNum = sRoamerLocation[MAP_NUM]; } -#ifdef DEBUG +#if DEBUG void debug_sub_814A714(void) { if (gSaveBlock1.location.mapGroup == 0) diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index e231f686d..311679cb7 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -2855,7 +2855,7 @@ static void sub_8104C5C(void) static void LoadSlotMachineWheelOverlay(void); -#ifdef DEBUG +#if DEBUG // should be static __attribute__((section(".bss"))) u8 unk_debug_bss_1[0xC] = { 0 }; #endif diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 105ef1756..36295b3f8 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -44,7 +44,7 @@ enum { MENU_ACTION_PLAYER_LINK }; -#ifdef DEBUG +#if DEBUG static u32 _debugStartMenu_0 __attribute__((unused)); static u32 _debugStartMenu_1 __attribute__((unused)); #endif @@ -137,7 +137,7 @@ static bool32 sub_80719FC(u8 *ptr); static void sub_8071B54(void); static void Task_8071B64(u8 taskId); -#ifdef DEBUG +#if DEBUG __attribute__((naked)) void debug_sub_8075C30() { -- cgit v1.2.3 From 6903b3626aed4e5521243b4517c43fed3c4d0ff5 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 13:11:10 -0600 Subject: resolve some undefined references --- src/field/slot_machine.c | 96 ++++++++++++++++++++++++------------------------ src/field/start_menu.c | 6 +-- 2 files changed, 51 insertions(+), 51 deletions(-) (limited to 'src/field') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 311679cb7..3aefa80de 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -4217,7 +4217,7 @@ void debug_sub_811B2E8() " mov r0, sp\n" " mov r1, #0x6\n" " mov r2, #0x1\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " add sp, sp, #0x4\n" " pop {r0}\n" " bx r0\n" @@ -4238,75 +4238,75 @@ void debug_sub_811B310() " ldr r0, ._21\n" " mov r1, #0x1\n" " mov r2, #0x1\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 4\n" " mov r1, #0x1\n" " mov r2, #0x3\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 8\n" " mov r1, #0x1\n" " mov r2, #0x5\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 12\n" " mov r1, #0x1\n" " mov r2, #0x7\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 16\n" " mov r1, #0x1\n" " mov r2, #0x9\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 20\n" " mov r1, #0x1\n" " mov r2, #0xb\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 24\n" " mov r1, #0x1\n" " mov r2, #0xd\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 28\n" " mov r1, #0x1\n" " mov r2, #0xf\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 32\n" " mov r1, #0x1\n" " mov r2, #0x11\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 36\n" " mov r1, #0xf\n" " mov r2, #0x1\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 40\n" " mov r1, #0xf\n" " mov r2, #0x3\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 44\n" " mov r1, #0xf\n" " mov r2, #0x5\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 48\n" " mov r1, #0xf\n" " mov r2, #0x7\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 52\n" " mov r1, #0xf\n" " mov r2, #0x9\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 56\n" " mov r1, #0xf\n" " mov r2, #0xb\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 60\n" " mov r1, #0xf\n" " mov r2, #0xd\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 64\n" " mov r1, #0xf\n" " mov r2, #0xf\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 68\n" " mov r1, #0xf\n" " mov r2, #0x11\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._21 + 72\n" " ldrb r0, [r0, #0x3]\n" " cmp r0, #0\n" @@ -4314,7 +4314,7 @@ void debug_sub_811B310() " ldr r0, ._21 + 76\n" " mov r1, #0xa\n" " mov r2, #0x9\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " b ._20\n" "._22:\n" " .align 2, 0\n" @@ -4343,7 +4343,7 @@ void debug_sub_811B310() " ldr r0, ._30\n" " mov r1, #0xa\n" " mov r2, #0x9\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" "._20:\n" " ldr r4, ._30 + 4\n" " ldr r1, [r4, #0x68]\n" @@ -4354,7 +4354,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0xa\n" " mov r2, #0x3\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, [r4, #0x6c]\n" " mov r0, sp\n" " mov r2, #0x2\n" @@ -4363,7 +4363,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0xa\n" " mov r2, #0x5\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " mov r0, #0x10\n" " ldsh r1, [r4, r0]\n" " mov r0, sp\n" @@ -4373,7 +4373,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0xa\n" " mov r2, #0x7\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, [r4, #0x70]\n" " mov r0, sp\n" " mov r2, #0x2\n" @@ -4382,7 +4382,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0x3\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, [r4, #0x74]\n" " mov r0, sp\n" " mov r2, #0x2\n" @@ -4391,7 +4391,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0x5\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, [r4, #0x78]\n" " mov r0, sp\n" " mov r2, #0x2\n" @@ -4400,7 +4400,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0x7\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, [r4, #0x7c]\n" " mov r0, sp\n" " mov r2, #0x2\n" @@ -4409,7 +4409,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0x9\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " add r0, r4, #0\n" " add r0, r0, #0x80\n" " ldr r1, [r0]\n" @@ -4420,7 +4420,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0xb\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " add r0, r4, #0\n" " add r0, r0, #0x84\n" " ldr r1, [r0]\n" @@ -4431,7 +4431,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0xd\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " add r0, r4, #0\n" " add r0, r0, #0x88\n" " ldr r1, [r0]\n" @@ -4442,7 +4442,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0xf\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " add r0, r4, #0\n" " add r0, r0, #0x8c\n" " ldr r1, [r0]\n" @@ -4453,7 +4453,7 @@ void debug_sub_811B310() " mov r0, sp\n" " mov r1, #0x14\n" " mov r2, #0x11\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, ._30 + 8\n" " ldrb r0, [r1]\n" " cmp r0, #0\n" @@ -4515,7 +4515,7 @@ void debug_sub_811B310() "._45:\n" " ldr r0, ._46\n" " mov r1, #0x17\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" "._23:\n" " bl debug_sub_811B2E8\n" " add sp, sp, #0x8\n" @@ -4684,7 +4684,7 @@ void debug_sub_811B654() " mov r1, #0x0\n" " mov r2, #0x18\n" " mov r3, #0x13\n" - " bl MenuDrawTextWindow\n" + " bl Menu_DrawStdWindowFrame\n" " bl debug_sub_811B310\n" " ldrh r0, [r5, #0x8]\n" " add r0, r0, #0x1\n" @@ -4749,20 +4749,20 @@ void debug_sub_811B654() " beq ._83 @cond_branch\n" " mov r0, #0x3\n" " strh r0, [r5, #0x8]\n" - " bl MenuZeroFillScreen\n" + " bl Menu_EraseScreen\n" " mov r0, #0x0\n" " mov r1, #0x0\n" " mov r2, #0x9\n" " mov r3, #0x5\n" - " bl MenuDrawTextWindow\n" + " bl Menu_DrawStdWindowFrame\n" " ldr r0, ._85\n" " mov r1, #0x1\n" " mov r2, #0x1\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._85 + 4\n" " mov r1, #0x1\n" " mov r2, #0x3\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " b ._116\n" "._86:\n" " .align 2, 0\n" @@ -4778,21 +4778,21 @@ void debug_sub_811B654() " strb r4, [r0]\n" " ldr r0, ._91 + 4\n" " strb r4, [r0]\n" - " bl MenuZeroFillScreen\n" + " bl Menu_EraseScreen\n" " mov r0, #0x0\n" " mov r1, #0x0\n" " mov r2, #0xa\n" " mov r3, #0x13\n" - " bl MenuDrawTextWindow\n" + " bl Menu_DrawStdWindowFrame\n" " ldr r0, ._91 + 8\n" " mov r1, #0x1\n" " mov r2, #0x1\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r3, ._91 + 12\n" " mov r0, #0x2\n" " mov r1, #0x3\n" " mov r2, #0x8\n" - " bl PrintMenuItems\n" + " bl Menu_PrintItems\n" " str r4, [sp]\n" " mov r0, #0x9\n" " str r0, [sp, #0x4]\n" @@ -4825,7 +4825,7 @@ void debug_sub_811B654() " .word _841B270\n" " .word unk_debug_bss_1+0x4\n" "._66:\n" - " bl ProcessMenuInput\n" + " bl Menu_ProcessInput\n" " lsl r0, r0, #0x18\n" " asr r2, r0, #0x18\n" " mov r0, #0x2\n" @@ -4845,7 +4845,7 @@ void debug_sub_811B654() " ldr r0, [r1]\n" " bl _call_via_r0\n" "._94:\n" - " bl MenuZeroFillScreen\n" + " bl Menu_EraseScreen\n" " add r0, r6, #0\n" " bl DestroyTask\n" " b ._116\n" @@ -4938,7 +4938,7 @@ void debug_sub_811B654() " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._116 @cond_branch\n" - " bl MenuZeroFillScreen\n" + " bl Menu_EraseScreen\n" " add r0, r6, #0\n" " bl DestroyTask\n" "._116:\n" @@ -4986,7 +4986,7 @@ void debug_sub_811B894() " ldr r0, ._122 + 8\n" " mov r1, #0x4\n" " mov r2, #0xf\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, ._122 + 12\n" " mov r0, #0x0\n" " strb r0, [r1]\n" @@ -5027,7 +5027,7 @@ void debug_sub_811B894() " mov r1, #0x4\n" " mov r2, #0x2\n" "._121:\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r0, ._163 + 4\n" " strb r4, [r0]\n" "._126:\n" @@ -5181,7 +5181,7 @@ void debug_sub_811B894() " ldr r0, ._163 + 12\n" " mov r1, #0x4\n" " mov r2, #0x0\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" " ldr r1, ._163 + 4\n" " mov r0, #0x0\n" " strb r0, [r1]\n" diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 36295b3f8..1e4eace87 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -278,11 +278,11 @@ void debug_sub_8075C40() " mov r2, #0x1\n" " mov r3, #0x8\n" " bl ConvertIntToDecimalStringN\n" - " bl MenuDisplayMessageBox\n" + " bl Menu_DisplayDialogueFrame\n" " ldr r0, ._16 + 16\n" " mov r1, #0x2\n" " mov r2, #0xf\n" - " bl MenuPrint\n" + " bl Menu_PrintText\n" "._12:\n" " ldrh r0, [r5]\n" " add r0, r0, #0x1\n" @@ -303,7 +303,7 @@ void debug_sub_8075C40() " and r0, r0, r1\n" " cmp r0, #0\n" " beq ._18 @cond_branch\n" - " bl MenuZeroFillScreen\n" + " bl Menu_EraseScreen\n" " bl ScriptContext2_Disable\n" " add r0, r4, #0\n" " bl DestroyTask\n" -- cgit v1.2.3 From 6efb614f3f3bf1b1b381bdfe220391e152fc8ebe Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 15:49:51 -0600 Subject: add more debug things --- src/field/choose_party.c | 2 +- src/field/field_player_avatar.c | 99 ++- src/field/field_weather.c | 181 ++++ src/field/fldeff_secretpower.c | 96 ++ src/field/mauville_man.c | 2 +- src/field/party_menu.c | 17 +- src/field/region_map.c | 4 +- src/field/slot_machine.c | 1863 ++++++++++++++++++++++++++++++++------- 8 files changed, 1944 insertions(+), 320 deletions(-) (limited to 'src/field') diff --git a/src/field/choose_party.c b/src/field/choose_party.c index 545c19dfa..8a54b0ad0 100644 --- a/src/field/choose_party.c +++ b/src/field/choose_party.c @@ -540,7 +540,7 @@ void debug_sub_81381B4() " add r0, r4, #0\n" " mov r1, #0x0\n" " mov r2, #0x60\n" - " bl gScriptFuncs_End+0x5c24\n" + " bl gMysteryEventScriptCmdTableEnd+0x5c24\n" " mov r7, #0x0\n" " mov r8, r4\n" " mov r0, #0x4\n" diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c index 747edf816..db674e52f 100644 --- a/src/field/field_player_avatar.c +++ b/src/field/field_player_avatar.c @@ -291,7 +291,7 @@ u8 TryDoMetatileBehaviorForcedMovement() " lsr r0, r0, #0x16\n" " add r0, r0, r4\n" " ldr r0, [r0]\n" - " bl gScriptFuncs_End+0x3cf4\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" "._26:\n" @@ -513,7 +513,7 @@ void MovePlayerNotOnBike(u8 u81, u16 u161) " ldr r2, [r0]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl gScriptFuncs_End+0x3cfc\n" + " bl gMysteryEventScriptCmdTableEnd+0x3cfc\n" "._83:\n" " pop {r4, r5, r6}\n" " pop {r0}\n" @@ -1855,3 +1855,98 @@ static void sub_805A954(void) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 1, playerSprite->pos2.y); } + +#if DEBUG +__attribute__((naked)) +void debug_sub_805F2B0() +{ + asm( + " push {lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r2, r0, #0x18\n" + " ldr r0, ._422\n" + " ldrh r1, [r0, #0x2c]\n" + " mov r0, #0x80\n" + " lsl r0, r0, #0x1\n" + " and r0, r0, r1\n" + " cmp r0, #0\n" + " bne ._420 @cond_branch\n" + " mov r0, #0x0\n" + " b ._421\n" + "._423:\n" + " .align 2, 0\n" + "._422:\n" + " .word gMain\n" + "._420:\n" + " add r0, r2, #0\n" + " bl debug_sub_805F2DC\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + "._421:\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} + +__attribute__((naked)) +void debug_sub_805F2DC() +{ + asm( + " push {r4, lr}\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " cmp r4, #0\n" + " bne ._424 @cond_branch\n" + " ldr r2, ._426\n" + " ldr r0, ._426 + 4\n" + " ldrb r1, [r0, #0x5]\n" + " lsl r0, r1, #0x3\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r2\n" + " ldrb r0, [r0, #0x18]\n" + " lsr r0, r0, #0x4\n" + " bl PlayerFaceDirection\n" + " b ._430\n" + "._427:\n" + " .align 2, 0\n" + "._426:\n" + " .word gMapObjects\n" + " .word gPlayerAvatar\n" + "._424:\n" + " ldr r2, ._431\n" + " ldr r0, ._431 + 4\n" + " ldrb r1, [r0, #0x5]\n" + " lsl r0, r1, #0x3\n" + " add r0, r0, r1\n" + " lsl r0, r0, #0x2\n" + " add r0, r0, r2\n" + " ldrb r0, [r0, #0x1]\n" + " lsr r0, r0, #0x7\n" + " cmp r0, #0\n" + " beq ._429 @cond_branch\n" + " add r0, r4, #0\n" + " bl CanCameraMoveInDirection\n" + " cmp r0, #0\n" + " bne ._429 @cond_branch\n" + " add r0, r4, #0\n" + " bl PlayerOnBikeCollide\n" + " b ._430\n" + "._432:\n" + " .align 2, 0\n" + "._431:\n" + " .word gMapObjects\n" + " .word gPlayerAvatar\n" + "._429:\n" + " add r0, r4, #0\n" + " bl sub_80593F4\n" + "._430:\n" + " mov r0, #0x1\n" + " pop {r4}\n" + " pop {r1}\n" + " bx r1\n" + "\n" + ); +} +#endif diff --git a/src/field/field_weather.c b/src/field/field_weather.c index b6475d8ff..97eba16e0 100644 --- a/src/field/field_weather.c +++ b/src/field/field_weather.c @@ -188,6 +188,45 @@ const u8 gUnknown_083970C8[] = 1, }; +#if DEBUG + +const u8 gDebugText_Weather_0[] = _("なし   "); +const u8 gDebugText_Weather_1[] = _("はれ   "); +const u8 gDebugText_Weather_2[] = _("はれ2  "); +const u8 gDebugText_Weather_3[] = _("あめ   "); +const u8 gDebugText_Weather_4[] = _("ゆき   "); +const u8 gDebugText_Weather_5[] = _("かみなり "); +const u8 gDebugText_Weather_6[] = _("きり   "); +const u8 gDebugText_Weather_7[] = _("かざんばい"); +const u8 gDebugText_Weather_8[] = _("すなあらし"); +const u8 gDebugText_Weather_9[] = _("きり2  "); +const u8 gDebugText_Weather_10[] = _("かいてい "); +const u8 gDebugText_Weather_11[] = _("くもり  "); +const u8 gDebugText_Weather_12[] = _("はれ3  "); +const u8 gDebugText_Weather_13[] = _("おおあめ"); +const u8 gDebugText_Weather_14[] = _("かいてい2"); + +const u8 *const gDebugText_Weather[] = +{ + gDebugText_Weather_0, + gDebugText_Weather_1, + gDebugText_Weather_2, + gDebugText_Weather_3, + gDebugText_Weather_4, + gDebugText_Weather_5, + gDebugText_Weather_6, + gDebugText_Weather_7, + gDebugText_Weather_8, + gDebugText_Weather_9, + gDebugText_Weather_10, + gDebugText_Weather_11, + gDebugText_Weather_12, + gDebugText_Weather_13, + gDebugText_Weather_14, +}; + +#endif + const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal"); void StartWeather(void) @@ -1159,3 +1198,145 @@ void sub_807DE68(void) { gUnknown_030006DC = gUnknown_083970C8; } + +#if DEBUG + +__attribute__((naked)) +u8 debug_sub_8085564(void) +{ + asm("\ + push {lr}\n\ + mov r2, #0x0\n\ + ldr r0, ._375\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._370 @cond_branch\n\ + ldr r1, ._375 + 4\n\ + ldrb r0, [r1]\n\ + add r0, r0, #0x1\n\ + strb r0, [r1]\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0xf\n\ + bne ._371 @cond_branch\n\ + strb r2, [r1]\n\ +._371:\n\ + mov r2, #0x1\n\ +._370:\n\ + ldr r0, ._375\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._372 @cond_branch\n\ + ldr r1, ._375 + 4\n\ + ldrb r0, [r1]\n\ + cmp r0, #0\n\ + beq ._373 @cond_branch\n\ + sub r0, r0, #0x1\n\ + b ._374\n\ +._376:\n\ + .align 2, 0\n\ +._375:\n\ + .word gMain\n\ + .word gUnknown_0202FF58+0x2\n\ +._373:\n\ + mov r0, #0xe\n\ +._374:\n\ + strb r0, [r1]\n\ + mov r2, #0x1\n\ +._372:\n\ + cmp r2, #0\n\ + beq ._377 @cond_branch\n\ + mov r0, #0x16\n\ + mov r1, #0x1\n\ + mov r2, #0x1c\n\ + mov r3, #0x2\n\ + bl MenuFillWindowRectWithBlankTile\n\ + ldr r1, ._380\n\ + ldr r0, ._380 + 4\n\ + ldrb r0, [r0]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x17\n\ + mov r2, #0x1\n\ + bl MenuPrint\n\ +._377:\n\ + ldr r0, ._380 + 8\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._378 @cond_branch\n\ + mov r0, #0x0\n\ + b ._379\n\ +._381:\n\ + .align 2, 0\n\ +._380:\n\ + .word gDebugText_Weather\n\ + .word gUnknown_0202FF58+0x2\n\ + .word gMain\n\ +._378:\n\ + ldr r0, ._382\n\ + ldrb r0, [r0]\n\ + bl DoWeatherEffect\n\ + bl CloseMenu\n\ + mov r0, #0x1\n\ +._379:\n\ + pop {r1}\n\ + bx r1\n\ +._383:\n\ + .align 2, 0\n\ +._382:\n\ + .word gUnknown_0202FF58+0x2"); +} + +__attribute__((naked)) +u8 debug_sub_808560C(void) +{ + asm("\ + push {r4, lr}\n\ + ldr r4, ._384\n\ + ldr r0, ._384 + 4\n\ + mov r1, #0xda\n\ + lsl r1, r1, #0x3\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + strb r0, [r4]\n\ + bl MenuZeroFillScreen\n\ + mov r0, #0x16\n\ + mov r1, #0x1\n\ + mov r2, #0x1c\n\ + mov r3, #0x2\n\ + bl MenuFillWindowRectWithBlankTile\n\ + ldr r1, ._384 + 8\n\ + ldrb r0, [r4]\n\ + lsl r0, r0, #0x2\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x17\n\ + mov r2, #0x1\n\ + bl MenuPrint\n\ + ldr r1, ._384 + 12\n\ + ldr r0, ._384 + 16\n\ + str r0, [r1]\n\ + mov r0, #0x0\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ +._385:\n\ + .align 2, 0\n\ +._384:\n\ + .word gUnknown_0202FF58+0x2\n\ + .word gUnknown_0202F7E8\n\ + .word gDebugText_Weather\n\ + .word gCallback_03004AE8\n\ + .word debug_sub_8085564+1"); +} + +#endif diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c index bf8e98403..c200ce2f5 100644 --- a/src/field/fldeff_secretpower.c +++ b/src/field/fldeff_secretpower.c @@ -243,6 +243,102 @@ void sub_80C6280(void) } } +#if DEBUG + +__attribute__((naked)) +void debug_sub_80D93F4() +{ + asm("\ + push {r4, lr}\n\ + bl sub_80BB63C\n\ + ldr r0, ._98\n\ + ldrh r0, [r0]\n\ + cmp r0, #0x1\n\ + beq ._95 @cond_branch\n\ + bl player_get_direction_lower_nybble\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x2\n\ + beq ._96 @cond_branch\n\ +._95:\n\ + bl ScriptContext2_Disable\n\ + b ._109\n\ +._99:\n\ + .align 2, 0\n\ +._98:\n\ + .word gScriptResult\n\ +._96:\n\ + ldr r4, ._102\n\ + add r1, r4, #2\n\ + add r0, r4, #0\n\ + bl GetXYCoordsOneStepInFrontOfPlayer\n\ + mov r1, #0x0\n\ + ldsh r0, [r4, r1]\n\ + mov r2, #0x2\n\ + ldsh r1, [r4, r2]\n\ + bl MapGridGetMetatileBehaviorAt\n\ + lsl r0, r0, #0x18\n\ + lsr r4, r0, #0x18\n\ + add r0, r4, #0\n\ + bl MetatileBehavior_IsSecretBaseCave\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bne ._100 @cond_branch\n\ + bl sub_80C6264\n\ + ldr r1, ._102 + 4\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ + bl sub_80C639C\n\ + b ._109\n\ +._103:\n\ + .align 2, 0\n\ +._102:\n\ + .word gUnknown_0203923C\n\ + .word gLastFieldPokeMenuOpened\n\ +._100:\n\ + add r0, r4, #0\n\ + bl MetatileBehavior_IsSecretBaseTree\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bne ._104 @cond_branch\n\ + bl sub_80C6264\n\ + ldr r1, ._106\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ + bl sub_80C64A8\n\ + b ._109\n\ +._107:\n\ + .align 2, 0\n\ +._106:\n\ + .word gLastFieldPokeMenuOpened\n\ +._104:\n\ + add r0, r4, #0\n\ + bl MetatileBehavior_IsSecretBaseShrub\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bne ._108 @cond_branch\n\ + bl sub_80C6264\n\ + ldr r1, ._110\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ + bl sub_80C660C\n\ + b ._109\n\ +._111:\n\ + .align 2, 0\n\ +._110:\n\ + .word gLastFieldPokeMenuOpened\n\ +._108:\n\ + bl ScriptContext2_Disable\n\ +._109:\n\ + pop {r4}\n\ + pop {r0}\n\ + bx r0"); +} +#endif + bool8 SetUpFieldMove_SecretPower(void) { u8 behavior; diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 00368c2f5..1bce9bc3f 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -277,7 +277,7 @@ void debug_sub_810B32C() " .word ._28\n" " .word ._29\n" "._25:\n" - " bl sub_80F7A34\n" + " bl SetupBard\n" " b ._37\n" "._26:\n" " mov r2, #0x0\n" diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 7994dd60c..75c0cba78 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -4777,7 +4777,8 @@ void DoPPUpItemEffect(u8 taskId, u16 b, TaskFunc c) gMain.newKeys = 0; } -static const u8 *const StatNames[] = { +static const u8 *const StatNames[] = +{ gOtherText_HP, gOtherText_Attack, gOtherText_Defense, @@ -4786,7 +4787,8 @@ static const u8 *const StatNames[] = { gOtherText_Speed, }; -static const u8 StatDataTypes[] = { +static const u8 StatDataTypes[] = +{ MON_DATA_MAX_HP, MON_DATA_ATK, MON_DATA_DEF, @@ -4794,6 +4796,17 @@ static const u8 StatDataTypes[] = { MON_DATA_SPDEF, MON_DATA_SPEED, }; + +#if DEBUG + +const u8 gUnknown_Debug_839B6CE[] = {0x40, 0, 0, 0, 0x44, 0, 0xFF, 0, 0, 0}; + +const u8 gUnknown_Debug_839B6D8[] = _( + "{STR_VAR_1}かい じっこう\n" + "{STR_VAR_2}たんいじかん しょうひ"); + +#endif + void DoRareCandyItemEffect(u8 taskId, u16 b, TaskFunc c) { u8 i; diff --git a/src/field/region_map.c b/src/field/region_map.c index a098eb73d..3bd64a8a0 100644 --- a/src/field/region_map.c +++ b/src/field/region_map.c @@ -280,7 +280,7 @@ static u16 sub_80FB9C0(u16); static void sub_80FBA18(void); static bool8 sub_80FBAA0(u16); void CreateRegionMapCursor(u16, u16); -static void sub_80FBCA0(void); +void sub_80FBCA0(void); static void sub_80FBDF8(void); static void sub_80FBE24(void); static void SpriteCB_PlayerIconZoomedOut(struct Sprite *); @@ -1127,7 +1127,7 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) } } -static void sub_80FBCA0(void) +void sub_80FBCA0(void) { if (gRegionMap->cursorSprite != NULL) { diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 3aefa80de..d84a6e592 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -30,6 +30,8 @@ struct UnkStruct1 #define SLOTMACHINE_GFX_TILES 236 #endif +// TODO: figure out which functions are static and which are not. +#define static static void CB2_SlotMachineSetup(void); static void CB2_SlotMachineLoop(void); @@ -77,6 +79,7 @@ static bool8 sub_81023E0(struct Task *task); static bool8 sub_81023FC(struct Task *task); static bool8 sub_8102424(struct Task *task); static bool8 sub_8102460(struct Task *task); +static bool8 debug_sub_8116E74(struct Task *); static void sub_8102484(void); static void sub_81024F0(void); static bool8 sub_8102540(void); @@ -230,11 +233,59 @@ static const u8 gUnknown_083ECE3A[]; static const u16 gUnknown_083ECE42[]; static const u16 gUnknown_083ECE48[]; +#if DEBUG +__attribute__((naked)) +void PlaySlotMachine(u8 arg0, MainCallback cb) +{ + asm("\ + push {lr}\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r3, ._1\n\ + mov r2, #0x0\n\ + strb r2, [r3]\n\ + bl sub_81019B0\n\ + ldr r0, ._1 + 4\n\ + bl SetMainCallback2\n\ + pop {r0}\n\ + bx r0\n\ +._2:\n\ + .align 2, 0\n\ +._1:\n\ + .word unk_debug_bss_1+0x1\n\ + .word sub_81018B8+1"); +} +#else void PlaySlotMachine(u8 arg0, MainCallback cb) { PlaySlotMachine_Internal(arg0, cb); SetMainCallback2(CB2_SlotMachineSetup); } +#endif + +#if DEBUG +__attribute__((naked)) +void debug_sub_811609C() +{ + asm("\ + push {lr}\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + ldr r3, ._3\n\ + mov r2, #0x1\n\ + strb r2, [r3]\n\ + bl sub_81019B0\n\ + ldr r0, ._3 + 4\n\ + bl SetMainCallback2\n\ + pop {r0}\n\ + bx r0\n\ +._4:\n\ + .align 2, 0\n\ +._3:\n\ + .word unk_debug_bss_1+0x1\n\ + .word sub_81018B8+1"); +} +#endif static void CB2_SlotMachineSetup(void) { @@ -367,6 +418,135 @@ static void SlotMachineSetup_2_1(void) static const s16 gUnknown_083ECCF8[][2]; +#if DEBUG +__attribute__((naked)) +static void SlotMachineSetup_0_1(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, sl\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5, r6, r7}\n\ + bl sub_81019EC\n\ + ldr r5, ._43\n\ + mov r4, #0x0\n\ + strb r4, [r5]\n\ + strb r4, [r5, #0x2]\n\ + bl Random\n\ + mov r1, #0x1\n\ + and r1, r1, r0\n\ + strb r1, [r5, #0x3]\n\ + strb r4, [r5, #0x4]\n\ + mov r0, #0x0\n\ + strh r4, [r5, #0x8]\n\ + strb r0, [r5, #0xa]\n\ + strb r0, [r5, #0xb]\n\ + ldr r0, ._43 + 4\n\ + ldr r1, ._43 + 8\n\ + add r0, r0, r1\n\ + ldrh r0, [r0]\n\ + strh r0, [r5, #0xc]\n\ + strh r4, [r5, #0xe]\n\ + strh r4, [r5, #0x10]\n\ + strh r4, [r5, #0x12]\n\ + strh r4, [r5, #0x18]\n\ + mov r0, #0x8\n\ + strh r0, [r5, #0x1a]\n\ + add r1, r5, #0\n\ + add r1, r1, #0x58\n\ + mov r0, #0xf0\n\ + strh r0, [r1]\n\ + add r1, r1, #0x2\n\ + mov r0, #0xa0\n\ + strh r0, [r1]\n\ + add r0, r5, #0\n\ + add r0, r0, #0x5c\n\ + mov r1, #0x3f\n\ + strh r1, [r0]\n\ + add r0, r0, #0x2\n\ + strh r1, [r0]\n\ + bl GetCurrentMapMusic\n\ + add r1, r5, #0\n\ + add r1, r1, #0x60\n\ + strh r0, [r1]\n\ + mov r7, #0x0\n\ + add r6, r5, #0\n\ + ldr r2, ._43 + 12\n\ + mov sl, r2\n\ + mov r0, #0x1c\n\ + add r0, r0, r6\n\ + mov r9, r0\n\ +._41:\n\ + lsl r5, r7, #0x1\n\ + mov r1, #0x22\n\ + add r1, r1, r6\n\ + mov r8, r1\n\ + add r1, r5, r1\n\ + mov r0, #0x0\n\ + strh r0, [r1]\n\ + add r4, r6, #0\n\ + add r4, r4, #0x28\n\ + add r4, r5, r4\n\ + ldrb r0, [r6, #0x3]\n\ + lsl r0, r0, #0x1\n\ + lsl r1, r7, #0x2\n\ + add r0, r0, r1\n\ + add r0, r0, sl\n\ + mov r2, #0x0\n\ + ldsh r0, [r0, r2]\n\ + mov r1, #0x15\n\ + bl __modsi3\n\ + strh r0, [r4]\n\ + add r5, r5, r9\n\ + mov r1, #0x0\n\ + ldsh r0, [r4, r1]\n\ + lsl r1, r0, #0x1\n\ + add r1, r1, r0\n\ + lsl r1, r1, #0x3\n\ + mov r2, #0xfc\n\ + lsl r2, r2, #0x1\n\ + add r0, r2, #0\n\ + sub r0, r0, r1\n\ + strh r0, [r5]\n\ + mov r1, #0x0\n\ + ldsh r0, [r5, r1]\n\ + add r1, r2, #0\n\ + bl __modsi3\n\ + strh r0, [r5]\n\ + add r0, r7, #1\n\ + lsl r0, r0, #0x18\n\ + lsr r7, r0, #0x18\n\ + cmp r7, #0x2\n\ + bls ._41 @cond_branch\n\ + bl debug_sub_811B5D0\n\ + ldr r0, ._43 + 16\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._42 @cond_branch\n\ + mov r1, r8\n\ + sub r1, r1, #0x22\n\ + mov r0, #0xfa\n\ + lsl r0, r0, #0x2\n\ + strh r0, [r1, #0xc]\n\ +._42:\n\ + pop {r3, r4, r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov sl, r5\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._44:\n\ + .align 2, 0\n\ +._43:\n\ + .word +0x2000000\n\ + .word gSaveBlock1\n\ + .word 0x494\n\ + .word gUnknown_083ECCF8\n\ + .word unk_debug_bss_1+0x1"); +} +#else static void SlotMachineSetup_0_1(void) { u8 i; @@ -398,6 +578,7 @@ static void SlotMachineSetup_0_1(void) eSlotMachine->unk1C[i] %= 0x1f8; } } +#endif static void SlotMachineSetup_3_0(void) { @@ -442,7 +623,8 @@ static void sub_8101D04(void) sub_8101D24(CreateTask(sub_8101D24, 0)); } -static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { +static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = +{ sub_8101D5C, sub_8101D8C, sub_8101DB0, @@ -471,7 +653,10 @@ static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = { sub_81023E0, sub_81023FC, sub_8102424, - sub_8102460 + sub_8102460, +#if DEBUG + debug_sub_8116E74, +#endif }; static void sub_8101D24(u8 taskId) @@ -524,6 +709,46 @@ static bool8 sub_8101DF4(struct Task *task) return FALSE; } +#if DEBUG +__attribute__((naked)) +static bool8 sub_8101E10(struct Task *task) +{ + asm("\ + push {lr}\n\ + mov r0, #0x0\n\ + bl sub_8104CAC\n\ + ldr r2, ._70\n\ + mov r0, #0x5\n\ + strb r0, [r2]\n\ + ldr r0, ._70 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._67 @cond_branch\n\ + ldr r0, ._70 + 8\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + bne ._69 @cond_branch\n\ +._67:\n\ + mov r0, #0xc\n\ + ldsh r1, [r2, r0]\n\ + ldr r0, ._70 + 12\n\ + cmp r1, r0\n\ + ble ._69 @cond_branch\n\ + mov r0, #0x17\n\ + strb r0, [r2]\n\ +._69:\n\ + mov r0, #0x1\n\ + pop {r1}\n\ + bx r1\n\ +._71:\n\ + .align 2, 0\n\ +._70:\n\ + .word +0x2000000\n\ + .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1+0x4\n\ + .word 0x270e"); +} +#else static bool8 sub_8101E10(struct Task *task) { sub_8104CAC(0); @@ -534,7 +759,205 @@ static bool8 sub_8101E10(struct Task *task) } return TRUE; } +#endif +#if DEBUG +__attribute__((naked)) +static bool8 sub_8101E3C(struct Task *task) +{ + asm("\ + push {r4, r5, lr}\n\ + ldr r0, ._77\n\ + ldrb r1, [r0]\n\ + add r3, r0, #0\n\ + ldr r5, ._77 + 4\n\ + cmp r1, #0\n\ + beq ._76 @cond_branch\n\ + ldr r2, ._77 + 8\n\ + ldrb r0, [r2]\n\ + cmp r0, #0\n\ + beq ._76 @cond_branch\n\ + ldr r4, ._77 + 12\n\ + mov r1, #0xc\n\ + ldsh r0, [r4, r1]\n\ + cmp r0, #0x3\n\ + ble ._74 @cond_branch\n\ + ldrh r1, [r5, #0x2c]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._75 @cond_branch\n\ +._74:\n\ + mov r0, #0x0\n\ + strb r0, [r2]\n\ + b ._76\n\ +._78:\n\ + .align 2, 0\n\ +._77:\n\ + .word unk_debug_bss_1+0x1\n\ + .word gMain\n\ + .word unk_debug_bss_1+0x4\n\ + .word +0x2000000\n\ +._75:\n\ + mov r0, #0x0\n\ + bl sub_8103D50\n\ + mov r0, #0x1\n\ + bl sub_8103D50\n\ + mov r0, #0x2\n\ + bl sub_8103D50\n\ + ldrh r0, [r4, #0xc]\n\ + sub r0, r0, #0x3\n\ + strh r0, [r4, #0xc]\n\ + mov r0, #0x3\n\ + strh r0, [r4, #0x12]\n\ + mov r0, #0x9\n\ + strb r0, [r4]\n\ + b ._102\n\ +._76:\n\ + ldrb r0, [r3]\n\ + cmp r0, #0\n\ + beq ._81 @cond_branch\n\ + ldrh r1, [r5, #0x2e]\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._81 @cond_branch\n\ + bl debug_sub_811B620\n\ + ldr r1, ._83\n\ + mov r0, #0x1d\n\ + strb r0, [r1]\n\ + b ._102\n\ +._84:\n\ + .align 2, 0\n\ +._83:\n\ + .word +0x2000000\n\ +._81:\n\ + ldrh r1, [r5, #0x2e]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._85 @cond_branch\n\ + mov r0, #0x0\n\ + bl sub_8104AB8\n\ + ldr r1, ._87\n\ + mov r0, #0x8\n\ + strb r0, [r1]\n\ + b ._102\n\ +._88:\n\ + .align 2, 0\n\ +._87:\n\ + .word +0x2000000\n\ +._85:\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._89 @cond_branch\n\ + ldr r2, ._94\n\ + mov r3, #0xc\n\ + ldsh r0, [r2, r3]\n\ + sub r0, r0, #0x3\n\ + mov r3, #0x12\n\ + ldsh r1, [r2, r3]\n\ + add r0, r0, r1\n\ + cmp r0, #0\n\ + blt ._90 @cond_branch\n\ + ldrh r4, [r2, #0x12]\n\ + add r0, r1, #0\n\ + cmp r0, #0x2\n\ + bgt ._91 @cond_branch\n\ +._92:\n\ + lsl r0, r4, #0x18\n\ + lsr r0, r0, #0x18\n\ + bl sub_8103D50\n\ + lsl r0, r4, #0x10\n\ + mov r2, #0x80\n\ + lsl r2, r2, #0x9\n\ + add r0, r0, r2\n\ + lsr r4, r0, #0x10\n\ + asr r0, r0, #0x10\n\ + cmp r0, #0x2\n\ + ble ._92 @cond_branch\n\ +._91:\n\ + ldr r1, ._94\n\ + ldrh r0, [r1, #0xc]\n\ + sub r0, r0, #0x3\n\ + ldrh r3, [r1, #0x12]\n\ + add r0, r0, r3\n\ + strh r0, [r1, #0xc]\n\ + mov r0, #0x3\n\ + strh r0, [r1, #0x12]\n\ + mov r0, #0x9\n\ + strb r0, [r1]\n\ + mov r0, #0x5f\n\ + bl PlaySE\n\ + b ._102\n\ +._95:\n\ + .align 2, 0\n\ +._94:\n\ + .word +0x2000000\n\ +._90:\n\ + mov r0, #0x6\n\ + b ._96\n\ +._89:\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._98 @cond_branch\n\ + ldr r4, ._103\n\ + mov r1, #0xc\n\ + ldsh r0, [r4, r1]\n\ + cmp r0, #0\n\ + beq ._98 @cond_branch\n\ + mov r0, #0x5f\n\ + bl PlaySE\n\ + ldrb r0, [r4, #0x12]\n\ + bl sub_8103D50\n\ + ldrh r0, [r4, #0xc]\n\ + sub r0, r0, #0x1\n\ + strh r0, [r4, #0xc]\n\ + ldrh r0, [r4, #0x12]\n\ + add r0, r0, #0x1\n\ + strh r0, [r4, #0x12]\n\ +._98:\n\ + ldr r0, ._103\n\ + mov r2, #0x12\n\ + ldsh r1, [r0, r2]\n\ + add r2, r0, #0\n\ + ldr r5, ._103 + 4\n\ + cmp r1, #0x2\n\ + bgt ._99 @cond_branch\n\ + cmp r1, #0\n\ + beq ._101 @cond_branch\n\ + ldrh r1, [r5, #0x2e]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._101 @cond_branch\n\ +._99:\n\ + mov r0, #0x9\n\ + strb r0, [r2]\n\ +._101:\n\ + ldrh r1, [r5, #0x2e]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._102 @cond_branch\n\ + mov r0, #0x15\n\ +._96:\n\ + strb r0, [r2]\n\ +._102:\n\ + mov r0, #0x0\n\ + pop {r4, r5}\n\ + pop {r1}\n\ + bx r1\n\ +._104:\n\ + .align 2, 0\n\ +._103:\n\ + .word +0x2000000\n\ + .word gMain"); +} +#else static bool8 sub_8101E3C(struct Task *task) { s16 i; @@ -582,6 +1005,7 @@ static bool8 sub_8101E3C(struct Task *task) } return FALSE; } +#endif static void sub_8101F2C(const u8 *str) { @@ -615,6 +1039,71 @@ static bool8 sub_8101F88(struct Task *task) return FALSE; } +#if DEBUG +__attribute__((naked)) +static bool8 sub_8101FA4(struct Task *task) +{ + asm("\ + push {r4, lr}\n\ + add r4, r0, #0\n\ + bl sub_8102484\n\ + bl sub_8104DA4\n\ + mov r0, #0x0\n\ + bl sub_8102DEC\n\ + mov r0, #0x1\n\ + bl sub_8102DEC\n\ + mov r0, #0x2\n\ + bl sub_8102DEC\n\ + mov r0, #0x0\n\ + strh r0, [r4, #0x8]\n\ + ldr r4, ._115\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._113 @cond_branch\n\ + bl sub_810430C\n\ + mov r0, #0xa\n\ + b ._114\n\ +._116:\n\ + .align 2, 0\n\ +._115:\n\ + .word +0x2000000\n\ +._113:\n\ + mov r0, #0x1\n\ + bl sub_8104CAC\n\ + mov r0, #0xb\n\ +._114:\n\ + strb r0, [r4]\n\ + ldr r4, ._119\n\ + mov r0, #0x8\n\ + strh r0, [r4, #0x1a]\n\ + ldrb r0, [r4, #0xa]\n\ + cmp r0, #0\n\ + beq ._117 @cond_branch\n\ + bl dp15_jump_random_unknown\n\ + strh r0, [r4, #0x1a]\n\ +._117:\n\ + ldr r0, ._119 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._118 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x68\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._118:\n\ + mov r0, #0x0\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ +._120:\n\ + .align 2, 0\n\ +._119:\n\ + .word +0x2000000\n\ + .word unk_debug_bss_1+0x1"); +} +#else static bool8 sub_8101FA4(struct Task *task) { sub_8102484(); @@ -640,6 +1129,7 @@ static bool8 sub_8101FA4(struct Task *task) } return FALSE; } +#endif static bool8 sub_8102008(struct Task *task) { @@ -652,6 +1142,52 @@ static bool8 sub_8102008(struct Task *task) return FALSE; } +#if DEBUG +__attribute__((naked)) +static bool8 sub_8102034(struct Task *task) +{ + asm("\ + push {r4, lr}\n\ + ldrh r1, [r0, #0x8]\n\ + add r1, r1, #0x1\n\ + strh r1, [r0, #0x8]\n\ + lsl r1, r1, #0x10\n\ + asr r1, r1, #0x10\n\ + cmp r1, #0x1d\n\ + ble ._124 @cond_branch\n\ + ldr r0, ._127\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._126 @cond_branch\n\ + ldr r0, ._127 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._126 @cond_branch\n\ + ldr r4, ._127 + 8\n\ + bl Random\n\ + mov r1, #0x1f\n\ + and r1, r1, r0\n\ + add r1, r1, #0x1\n\ + str r1, [r4]\n\ +._126:\n\ + bl sub_81024F0\n\ + ldr r1, ._127 + 12\n\ + mov r0, #0xc\n\ + strb r0, [r1]\n\ +._124:\n\ + mov r0, #0x0\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ +._128:\n\ + .align 2, 0\n\ +._127:\n\ + .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1+0x4\n\ + .word unk_debug_bss_1+0x8\n\ + .word +0x2000000"); +} +#else static bool8 sub_8102034(struct Task *task) { if (++task->data[0] >= 30) @@ -661,7 +1197,77 @@ static bool8 sub_8102034(struct Task *task) } return FALSE; } +#endif +#if DEBUG +__attribute__((naked)) +static bool8 sub_8102058(struct Task *task) +{ + asm("\ + push {r4, r5, lr}\n\ + ldr r0, ._133\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._130 @cond_branch\n\ + ldr r0, ._133 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._130 @cond_branch\n\ + ldr r5, ._133 + 8\n\ + ldr r0, [r5]\n\ + sub r0, r0, #0x1\n\ + str r0, [r5]\n\ + cmp r0, #0\n\ + bne ._135 @cond_branch\n\ + mov r0, #0x18\n\ + bl PlaySE\n\ + ldr r4, ._133 + 12\n\ + ldrb r0, [r4, #0x18]\n\ + bl sub_8102E1C\n\ + ldrb r0, [r4, #0x18]\n\ + bl sub_8103C14\n\ + bl Random\n\ + mov r1, #0x1f\n\ + and r1, r1, r0\n\ + add r1, r1, #0x1\n\ + str r1, [r5]\n\ + b ._132\n\ +._134:\n\ + .align 2, 0\n\ +._133:\n\ + .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1+0x4\n\ + .word unk_debug_bss_1+0x8\n\ + .word +0x2000000\n\ +._130:\n\ + ldr r0, ._136\n\ + ldrh r1, [r0, #0x2e]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._135 @cond_branch\n\ + mov r0, #0x18\n\ + bl PlaySE\n\ + ldr r4, ._136 + 4\n\ + ldrb r0, [r4, #0x18]\n\ + bl sub_8102E1C\n\ + ldrb r0, [r4, #0x18]\n\ + bl sub_8103C14\n\ +._132:\n\ + mov r0, #0xd\n\ + strb r0, [r4]\n\ +._135:\n\ + mov r0, #0x0\n\ + pop {r4, r5}\n\ + pop {r1}\n\ + bx r1\n\ +._137:\n\ + .align 2, 0\n\ +._136:\n\ + .word gMain\n\ + .word +0x2000000"); +} +#else static bool8 sub_8102058(struct Task *task) { if (gMain.newKeys & A_BUTTON) @@ -673,7 +1279,121 @@ static bool8 sub_8102058(struct Task *task) } return FALSE; } +#endif +#if DEBUG +__attribute__((naked)) +static bool8 sub_8102090(struct Task *task) +{ + asm("\ + push {r4, lr}\n\ + ldr r4, ._146\n\ + ldrb r0, [r4, #0x18]\n\ + bl sub_8102E40\n\ + lsl r0, r0, #0x18\n\ + lsr r2, r0, #0x18\n\ + cmp r2, #0\n\ + bne ._138 @cond_branch\n\ + ldrh r0, [r4, #0x18]\n\ + add r0, r0, #0x1\n\ + strh r0, [r4, #0x18]\n\ + mov r1, #0xc\n\ + strb r1, [r4]\n\ + lsl r0, r0, #0x10\n\ + asr r0, r0, #0x10\n\ + cmp r0, #0x2\n\ + ble ._161 @cond_branch\n\ + mov r0, #0xe\n\ + strb r0, [r4]\n\ + ldr r0, ._146 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x8\n\ + beq ._140 @cond_branch\n\ + cmp r0, #0x8\n\ + bgt ._141 @cond_branch\n\ + cmp r0, #0x2\n\ + beq ._142 @cond_branch\n\ + cmp r0, #0x2\n\ + bgt ._143 @cond_branch\n\ + cmp r0, #0x1\n\ + beq ._144 @cond_branch\n\ + b ._161\n\ +._147:\n\ + .align 2, 0\n\ +._146:\n\ + .word +0x2000000\n\ + .word unk_debug_bss_1\n\ +._143:\n\ + cmp r0, #0x4\n\ + beq ._148 @cond_branch\n\ + b ._161\n\ +._141:\n\ + cmp r0, #0x40\n\ + beq ._150 @cond_branch\n\ + cmp r0, #0x40\n\ + bgt ._151 @cond_branch\n\ + cmp r0, #0x10\n\ + beq ._152 @cond_branch\n\ + b ._161\n\ +._151:\n\ + cmp r0, #0x80\n\ + beq ._154 @cond_branch\n\ + b ._161\n\ +._142:\n\ + mov r0, #0x14\n\ + strh r0, [r4, #0x28]\n\ + strh r0, [r4, #0x2a]\n\ + mov r0, #0x12\n\ + b ._160\n\ +._144:\n\ + mov r0, #0x14\n\ + strh r0, [r4, #0x28]\n\ + strh r0, [r4, #0x2a]\n\ + mov r0, #0x12\n\ + b ._160\n\ +._148:\n\ + mov r0, #0x3\n\ + strh r0, [r4, #0x28]\n\ + mov r0, #0x1\n\ + strh r0, [r4, #0x2a]\n\ + mov r0, #0x2\n\ + b ._160\n\ +._140:\n\ + strh r2, [r4, #0x28]\n\ + mov r0, #0x2\n\ + strh r0, [r4, #0x2a]\n\ + mov r0, #0x3\n\ + b ._160\n\ +._152:\n\ + mov r0, #0x2\n\ + strh r0, [r4, #0x28]\n\ + mov r0, #0x5\n\ + strh r0, [r4, #0x2a]\n\ + mov r0, #0x14\n\ + b ._160\n\ +._150:\n\ + mov r0, #0x13\n\ + strh r0, [r4, #0x28]\n\ + strh r0, [r4, #0x2a]\n\ + strh r2, [r4, #0x2c]\n\ + b ._161\n\ +._154:\n\ + mov r0, #0x13\n\ + strh r0, [r4, #0x28]\n\ + strh r0, [r4, #0x2a]\n\ +._160:\n\ + strh r0, [r4, #0x2c]\n\ +._161:\n\ + mov r0, #0x1\n\ + b ._162\n\ +._138:\n\ + mov r0, #0x0\n\ +._162:\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1"); +} +#else static bool8 sub_8102090(struct Task *task) { if (!sub_8102E40(eSlotMachine->unk18)) @@ -688,7 +1408,168 @@ static bool8 sub_8102090(struct Task *task) } return FALSE; } +#endif +#if DEBUG +__attribute__((naked)) +static bool8 sub_81020C8(struct Task *task) +{ + asm("\ + push {r4, lr}\n\ + ldr r4, ._165\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0xc0\n\ + and r0, r0, r1\n\ + strb r0, [r4, #0x4]\n\ + bl sub_81027A0\n\ + ldrb r0, [r4, #0xa]\n\ + cmp r0, #0\n\ + beq ._163 @cond_branch\n\ + sub r0, r0, #0x1\n\ + strb r0, [r4, #0xa]\n\ + ldrb r0, [r4, #0xb]\n\ + add r0, r0, #0x1\n\ + strb r0, [r4, #0xb]\n\ + b ._164\n\ +._166:\n\ + .align 2, 0\n\ +._165:\n\ + .word +0x2000000\n\ +._163:\n\ + bl debug_sub_811B894\n\ +._164:\n\ + ldr r4, ._171\n\ + ldrh r0, [r4, #0x8]\n\ + cmp r0, #0\n\ + beq ._167 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x6c\n\ + mov r2, #0xe\n\ + ldsh r1, [r4, r2]\n\ + bl debug_sub_811B5B4\n\ + mov r0, #0xf\n\ + strb r0, [r4]\n\ + bl sub_8102A24\n\ + bl sub_8103F70\n\ + ldrh r0, [r4, #0x10]\n\ + ldrh r1, [r4, #0xe]\n\ + sub r0, r0, r1\n\ + strh r0, [r4, #0x10]\n\ + lsl r0, r0, #0x10\n\ + cmp r0, #0\n\ + bge ._168 @cond_branch\n\ + mov r0, #0x0\n\ + strh r0, [r4, #0x10]\n\ +._168:\n\ + ldrh r1, [r4, #0x8]\n\ + mov r0, #0xc0\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._169 @cond_branch\n\ + ldr r0, ._171 + 4\n\ + bl PlayFanfare\n\ + mov r0, #0x6\n\ + bl sub_8104CAC\n\ + b ._174\n\ +._172:\n\ + .align 2, 0\n\ +._171:\n\ + .word +0x2000000\n\ + .word 0x185\n\ +._169:\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._173 @cond_branch\n\ + ldr r0, ._175\n\ + bl PlayFanfare\n\ + mov r0, #0x5\n\ + bl sub_8104CAC\n\ + b ._174\n\ +._176:\n\ + .align 2, 0\n\ +._175:\n\ + .word 0x185\n\ +._173:\n\ + mov r0, #0xc3\n\ + lsl r0, r0, #0x1\n\ + bl PlayFanfare\n\ + mov r0, #0x2\n\ + bl sub_8104CAC\n\ +._174:\n\ + ldr r1, ._183\n\ + ldrh r3, [r1, #0x8]\n\ + mov r0, #0xe0\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r3\n\ + add r2, r1, #0\n\ + cmp r0, #0\n\ + beq ._179 @cond_branch\n\ + ldrb r1, [r2, #0x4]\n\ + mov r0, #0x3f\n\ + and r0, r0, r1\n\ + mov r1, #0x0\n\ + strb r0, [r2, #0x4]\n\ + mov r0, #0xc0\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r3\n\ + cmp r0, #0\n\ + beq ._179 @cond_branch\n\ + strb r1, [r2, #0xa]\n\ + strb r1, [r2, #0xb]\n\ + strb r1, [r2, #0x3]\n\ + mov r0, #0x80\n\ + lsl r0, r0, #0x1\n\ + and r0, r0, r3\n\ + cmp r0, #0\n\ + beq ._179 @cond_branch\n\ + mov r0, #0x1\n\ + strb r0, [r2, #0x3]\n\ +._179:\n\ + ldrh r1, [r2, #0x8]\n\ + mov r0, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._185 @cond_branch\n\ + ldrb r0, [r2, #0x2]\n\ + cmp r0, #0xf\n\ + bhi ._185 @cond_branch\n\ + add r0, r0, #0x1\n\ + strb r0, [r2, #0x2]\n\ + ldrb r0, [r2, #0x2]\n\ + bl sub_8104064\n\ + b ._185\n\ +._184:\n\ + .align 2, 0\n\ +._183:\n\ + .word +0x2000000\n\ +._167:\n\ + mov r0, #0x3\n\ + bl sub_8104CAC\n\ + mov r0, #0x14\n\ + strb r0, [r4]\n\ + ldrh r0, [r4, #0x12]\n\ + ldrh r1, [r4, #0x10]\n\ + add r0, r0, r1\n\ + strh r0, [r4, #0x10]\n\ + lsl r0, r0, #0x10\n\ + asr r0, r0, #0x10\n\ + ldr r1, ._186\n\ + cmp r0, r1\n\ + ble ._185 @cond_branch\n\ + strh r1, [r4, #0x10]\n\ +._185:\n\ + mov r0, #0x0\n\ + pop {r4}\n\ + pop {r1}\n\ + bx r1\n\ +._187:\n\ + .align 2, 0\n\ +._186:\n\ + .word 0x270f"); +} +#else static bool8 sub_81020C8(struct Task *task) { eSlotMachine->unk04 &= 0xc0; @@ -753,6 +1634,7 @@ static bool8 sub_81020C8(struct Task *task) } return FALSE; } +#endif static bool8 sub_81021E0(struct Task *task) { @@ -903,6 +1785,48 @@ static bool8 sub_81023FC(struct Task *task) return FALSE; } +#if DEBUG +__attribute__((naked)) +static bool8 sub_8102424(struct Task *task) +{ + asm("\ + push {lr}\n\ + add sp, sp, #0xfffffffc\n\ + ldr r0, ._234\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + bne ._233 @cond_branch\n\ + ldr r0, ._234 + 4\n\ + ldr r1, ._234 + 8\n\ + ldrh r1, [r1, #0xc]\n\ + ldr r2, ._234 + 12\n\ + add r0, r0, r2\n\ + strh r1, [r0]\n\ +._233:\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, ._234 + 8\n\ + ldrb r0, [r1]\n\ + add r0, r0, #0x1\n\ + strb r0, [r1]\n\ + mov r0, #0x0\n\ + add sp, sp, #0x4\n\ + pop {r1}\n\ + bx r1\n\ +._235:\n\ + .align 2, 0\n\ +._234:\n\ + .word unk_debug_bss_1+0x1\n\ + .word gSaveBlock1\n\ + .word +0x2000000\n\ + .word 0x494"); +} +#else static bool8 sub_8102424(struct Task *task) { gSaveBlock1.coins = eSlotMachine->coins; @@ -910,6 +1834,7 @@ static bool8 sub_8102424(struct Task *task) eSlotMachine->state++; return FALSE; } +#endif static bool8 sub_8102460(struct Task *task) { @@ -920,6 +1845,272 @@ static bool8 sub_8102460(struct Task *task) return FALSE; } +#if DEBUG +__attribute__((naked)) +static bool8 debug_sub_8116E74(struct Task *task) +{ + asm("\ + push {lr}\n\ + bl debug_sub_811B634\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._239 @cond_branch\n\ + ldr r1, ._240\n\ + mov r0, #0x5\n\ + strb r0, [r1]\n\ +._239:\n\ + mov r0, #0x0\n\ + pop {r1}\n\ + bx r1\n\ +._241:\n\ + .align 2, 0\n\ +._240:\n\ + .word +0x2000000"); +} +#endif + +#if DEBUG +__attribute__((naked)) +static void sub_8102484(void) +{ + asm("\ + push {r4, r5, r6, lr}\n\ + ldr r0, ._256\n\ + ldrb r2, [r0, #0xa]\n\ + add r4, r0, #0\n\ + cmp r2, #0\n\ + beq ._242 @cond_branch\n\ + b ._270\n\ +._242:\n\ + ldr r0, ._256 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + beq ._245 @cond_branch\n\ + ldr r3, ._256 + 8\n\ + ldrb r0, [r3]\n\ + cmp r0, #0\n\ + beq ._245 @cond_branch\n\ + ldr r0, ._256 + 12\n\ + ldrb r1, [r0]\n\ + strb r1, [r4, #0x4]\n\ + strb r2, [r3]\n\ + strb r2, [r0]\n\ + mov r0, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._246 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x88\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._246:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._247 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x84\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._247:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._248 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x8c\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._248:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._249 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x80\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._249:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._250 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x7c\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._250:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._251 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x78\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._251:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._252 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x74\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._252:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._253 @cond_branch\n\ + b ._270\n\ +._253:\n\ + add r0, r4, #0\n\ + add r0, r0, #0x70\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ + b ._270\n\ +._257:\n\ + .align 2, 0\n\ +._256:\n\ + .word +0x2000000\n\ + .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1+0x2\n\ + .word unk_debug_bss_1+0x3\n\ +._245:\n\ + add r5, r4, #0\n\ + ldrb r1, [r5, #0x4]\n\ + mov r0, #0xc0\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + bne ._270 @cond_branch\n\ + bl sub_8102540\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + beq ._260 @cond_branch\n\ + bl sub_8102578\n\ + lsl r0, r0, #0x18\n\ + lsr r6, r0, #0x18\n\ + cmp r6, #0x3\n\ + beq ._260 @cond_branch\n\ + ldr r1, ._271\n\ + lsl r0, r6, #0x1\n\ + add r0, r0, r1\n\ + ldrb r1, [r0]\n\ + ldrb r0, [r5, #0x4]\n\ + orr r0, r0, r1\n\ + strb r0, [r5, #0x4]\n\ + mov r1, #0x80\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._261 @cond_branch\n\ + add r0, r5, #0\n\ + add r0, r0, #0x88\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._261:\n\ + ldrb r1, [r5, #0x4]\n\ + mov r0, #0x40\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._262 @cond_branch\n\ + add r0, r5, #0\n\ + add r0, r0, #0x84\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._262:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x20\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._263 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x8c\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._263:\n\ + cmp r6, #0x1\n\ + bne ._270 @cond_branch\n\ +._260:\n\ + bl sub_81025BC\n\ + lsl r0, r0, #0x18\n\ + lsr r6, r0, #0x18\n\ + cmp r6, #0x5\n\ + beq ._270 @cond_branch\n\ + ldr r4, ._271 + 4\n\ + ldr r1, ._271 + 8\n\ + lsl r0, r6, #0x1\n\ + add r0, r0, r1\n\ + ldrb r1, [r0]\n\ + ldrb r0, [r4, #0x4]\n\ + orr r0, r0, r1\n\ + strb r0, [r4, #0x4]\n\ + mov r1, #0x10\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._266 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x80\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._266:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x8\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._267 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x7c\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._267:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x4\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._268 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x78\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._268:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x1\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._269 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x74\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._269:\n\ + ldrb r1, [r4, #0x4]\n\ + mov r0, #0x2\n\ + and r0, r0, r1\n\ + cmp r0, #0\n\ + beq ._270 @cond_branch\n\ + add r0, r4, #0\n\ + add r0, r0, #0x70\n\ + mov r1, #0x1\n\ + bl debug_sub_811B5B4\n\ +._270:\n\ + pop {r4, r5, r6}\n\ + pop {r0}\n\ + bx r0\n\ +._272:\n\ + .align 2, 0\n\ +._271:\n\ + .word gUnknown_083ECE42\n\ + .word +0x2000000\n\ + .word gUnknown_083ECE48"); +} +#else static void sub_8102484(void) { u8 r3; @@ -945,6 +2136,7 @@ static void sub_8102484(void) } } } +#endif static void sub_81024F0(void) { @@ -3993,12 +5185,12 @@ __attribute__((naked)) void debug_sub_811B1C4() { asm( - " ldr r1, ._1\n" + " ldr r1, .__1_\n" " ldrb r0, [r1]\n" " mov r3, #0x2\n" " orr r0, r0, r3\n" " strb r0, [r1]\n" - " ldr r2, ._1 + 4\n" + " ldr r2, .__1_ + 4\n" " ldrb r1, [r2]\n" " mov r0, #0x2\n" " eor r1, r1, r0\n" @@ -4008,9 +5200,9 @@ void debug_sub_811B1C4() " and r0, r0, r3\n" " strb r0, [r2]\n" " bx lr\n" - "._2:\n" + ".__2_:\n" " .align 2, 0\n" - "._1:\n" + ".__1_:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4021,12 +5213,12 @@ __attribute__((naked)) void debug_sub_811B1EC() { asm( - " ldr r2, ._3\n" + " ldr r2, .__3\n" " ldrb r0, [r2]\n" " mov r1, #0x1\n" " orr r0, r0, r1\n" " strb r0, [r2]\n" - " ldr r2, ._3 + 4\n" + " ldr r2, .__3 + 4\n" " ldrb r0, [r2]\n" " mov r1, #0x1\n" " eor r0, r0, r1\n" @@ -4034,9 +5226,9 @@ void debug_sub_811B1EC() " lsr r0, r0, #0x1f\n" " strb r0, [r2]\n" " bx lr\n" - "._4:\n" + ".__4:\n" " .align 2, 0\n" - "._3:\n" + ".__3:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4047,12 +5239,12 @@ __attribute__((naked)) void debug_sub_811B210() { asm( - " ldr r1, ._5\n" + " ldr r1, .__5\n" " ldrb r0, [r1]\n" " mov r3, #0x4\n" " orr r0, r0, r3\n" " strb r0, [r1]\n" - " ldr r2, ._5 + 4\n" + " ldr r2, .__5 + 4\n" " ldrb r1, [r2]\n" " mov r0, #0x4\n" " eor r1, r1, r0\n" @@ -4062,9 +5254,9 @@ void debug_sub_811B210() " and r0, r0, r3\n" " strb r0, [r2]\n" " bx lr\n" - "._6:\n" + ".__6:\n" " .align 2, 0\n" - "._5:\n" + ".__5:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4075,12 +5267,12 @@ __attribute__((naked)) void debug_sub_811B238() { asm( - " ldr r1, ._7\n" + " ldr r1, .__7\n" " ldrb r0, [r1]\n" " mov r3, #0x8\n" " orr r0, r0, r3\n" " strb r0, [r1]\n" - " ldr r2, ._7 + 4\n" + " ldr r2, .__7 + 4\n" " ldrb r1, [r2]\n" " mov r0, #0x8\n" " eor r1, r1, r0\n" @@ -4090,9 +5282,9 @@ void debug_sub_811B238() " and r0, r0, r3\n" " strb r0, [r2]\n" " bx lr\n" - "._8:\n" + ".__8:\n" " .align 2, 0\n" - "._7:\n" + ".__7:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4103,12 +5295,12 @@ __attribute__((naked)) void debug_sub_811B260() { asm( - " ldr r1, ._9\n" + " ldr r1, .__9\n" " ldrb r0, [r1]\n" " mov r3, #0x10\n" " orr r0, r0, r3\n" " strb r0, [r1]\n" - " ldr r2, ._9 + 4\n" + " ldr r2, .__9 + 4\n" " ldrb r1, [r2]\n" " mov r0, #0x10\n" " eor r1, r1, r0\n" @@ -4118,9 +5310,9 @@ void debug_sub_811B260() " and r0, r0, r3\n" " strb r0, [r2]\n" " bx lr\n" - "._10:\n" + ".__10:\n" " .align 2, 0\n" - "._9:\n" + ".__9:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4131,12 +5323,12 @@ __attribute__((naked)) void debug_sub_811B288() { asm( - " ldr r1, ._11\n" + " ldr r1, .__11\n" " ldrb r0, [r1]\n" " mov r3, #0x40\n" " orr r0, r0, r3\n" " strb r0, [r1]\n" - " ldr r2, ._11 + 4\n" + " ldr r2, .__11 + 4\n" " ldrb r1, [r2]\n" " mov r0, #0x40\n" " eor r1, r1, r0\n" @@ -4146,9 +5338,9 @@ void debug_sub_811B288() " and r0, r0, r3\n" " strb r0, [r2]\n" " bx lr\n" - "._12:\n" + ".__12:\n" " .align 2, 0\n" - "._11:\n" + ".__11:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4159,12 +5351,12 @@ __attribute__((naked)) void debug_sub_811B2B0() { asm( - " ldr r1, ._13\n" + " ldr r1, .__13\n" " ldrb r0, [r1]\n" " mov r3, #0x80\n" " orr r0, r0, r3\n" " strb r0, [r1]\n" - " ldr r2, ._13 + 4\n" + " ldr r2, .__13 + 4\n" " ldrb r1, [r2]\n" " mov r0, #0x80\n" " eor r1, r1, r0\n" @@ -4174,9 +5366,9 @@ void debug_sub_811B2B0() " and r0, r0, r3\n" " strb r0, [r2]\n" " bx lr\n" - "._14:\n" + ".__14:\n" " .align 2, 0\n" - "._13:\n" + ".__13:\n" " .word unk_debug_bss_1+0x3\n" " .word unk_debug_bss_1\n" "\n" @@ -4187,15 +5379,15 @@ __attribute__((naked)) void debug_sub_811B2D8() { asm( - " ldr r0, ._15\n" + " ldr r0, .__15\n" " ldrb r1, [r0]\n" " mov r2, #0x20\n" " orr r1, r1, r2\n" " strb r1, [r0]\n" " bx lr\n" - "._16:\n" + ".__16:\n" " .align 2, 0\n" - "._15:\n" + ".__15:\n" " .word unk_debug_bss_1+0x3\n" "\n" ); @@ -4207,7 +5399,7 @@ void debug_sub_811B2E8() asm( " push {lr}\n" " add sp, sp, #0xfffffffc\n" - " ldr r0, ._17\n" + " ldr r0, .__17\n" " ldrb r1, [r0, #0x1]\n" " add r1, r1, #0x1\n" " mov r0, sp\n" @@ -4221,9 +5413,9 @@ void debug_sub_811B2E8() " add sp, sp, #0x4\n" " pop {r0}\n" " bx r0\n" - "._18:\n" + ".__18:\n" " .align 2, 0\n" - "._17:\n" + ".__17:\n" " .word +0x2000000\n" "\n" ); @@ -4235,90 +5427,90 @@ void debug_sub_811B310() asm( " push {r4, lr}\n" " add sp, sp, #0xfffffff8\n" - " ldr r0, ._21\n" + " ldr r0, .__21\n" " mov r1, #0x1\n" " mov r2, #0x1\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 4\n" + " ldr r0, .__21 + 4\n" " mov r1, #0x1\n" " mov r2, #0x3\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 8\n" + " ldr r0, .__21 + 8\n" " mov r1, #0x1\n" " mov r2, #0x5\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 12\n" + " ldr r0, .__21 + 12\n" " mov r1, #0x1\n" " mov r2, #0x7\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 16\n" + " ldr r0, .__21 + 16\n" " mov r1, #0x1\n" " mov r2, #0x9\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 20\n" + " ldr r0, .__21 + 20\n" " mov r1, #0x1\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 24\n" + " ldr r0, .__21 + 24\n" " mov r1, #0x1\n" " mov r2, #0xd\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 28\n" + " ldr r0, .__21 + 28\n" " mov r1, #0x1\n" " mov r2, #0xf\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 32\n" + " ldr r0, .__21 + 32\n" " mov r1, #0x1\n" " mov r2, #0x11\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 36\n" + " ldr r0, .__21 + 36\n" " mov r1, #0xf\n" " mov r2, #0x1\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 40\n" + " ldr r0, .__21 + 40\n" " mov r1, #0xf\n" " mov r2, #0x3\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 44\n" + " ldr r0, .__21 + 44\n" " mov r1, #0xf\n" " mov r2, #0x5\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 48\n" + " ldr r0, .__21 + 48\n" " mov r1, #0xf\n" " mov r2, #0x7\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 52\n" + " ldr r0, .__21 + 52\n" " mov r1, #0xf\n" " mov r2, #0x9\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 56\n" + " ldr r0, .__21 + 56\n" " mov r1, #0xf\n" " mov r2, #0xb\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 60\n" + " ldr r0, .__21 + 60\n" " mov r1, #0xf\n" " mov r2, #0xd\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 64\n" + " ldr r0, .__21 + 64\n" " mov r1, #0xf\n" " mov r2, #0xf\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 68\n" + " ldr r0, .__21 + 68\n" " mov r1, #0xf\n" " mov r2, #0x11\n" " bl Menu_PrintText\n" - " ldr r0, ._21 + 72\n" + " ldr r0, .__21 + 72\n" " ldrb r0, [r0, #0x3]\n" " cmp r0, #0\n" - " bne ._19 @cond_branch\n" - " ldr r0, ._21 + 76\n" + " bne .__19 @cond_branch\n" + " ldr r0, .__21 + 76\n" " mov r1, #0xa\n" " mov r2, #0x9\n" " bl Menu_PrintText\n" - " b ._20\n" - "._22:\n" + " b .__20\n" + ".__22:\n" " .align 2, 0\n" - "._21:\n" + ".__21:\n" " .word Str_841B1C4\n" " .word Str_841B1CB\n" " .word Str_841B1D4\n" @@ -4339,13 +5531,13 @@ void debug_sub_811B310() " .word Str_841B243\n" " .word +0x2000000\n" " .word Str_841B246\n" - "._19:\n" - " ldr r0, ._30\n" + ".__19:\n" + " ldr r0, .__30\n" " mov r1, #0xa\n" " mov r2, #0x9\n" " bl Menu_PrintText\n" - "._20:\n" - " ldr r4, ._30 + 4\n" + ".__20:\n" + " ldr r4, .__30 + 4\n" " ldr r1, [r4, #0x68]\n" " mov r0, sp\n" " mov r2, #0x2\n" @@ -4454,77 +5646,77 @@ void debug_sub_811B310() " mov r1, #0x14\n" " mov r2, #0x11\n" " bl Menu_PrintText\n" - " ldr r1, ._30 + 8\n" + " ldr r1, .__30 + 8\n" " ldrb r0, [r1]\n" " cmp r0, #0\n" - " beq ._23 @cond_branch\n" + " beq .__23 @cond_branch\n" " mov r2, #0x0\n" " cmp r0, #0x8\n" - " beq ._24 @cond_branch\n" + " beq .__24 @cond_branch\n" " cmp r0, #0x8\n" - " bgt ._25 @cond_branch\n" + " bgt .__25 @cond_branch\n" " cmp r0, #0x2\n" - " beq ._26 @cond_branch\n" + " beq .__26 @cond_branch\n" " cmp r0, #0x2\n" - " bgt ._27 @cond_branch\n" + " bgt .__27 @cond_branch\n" " cmp r0, #0x1\n" - " beq ._28 @cond_branch\n" - " b ._45\n" - "._31:\n" + " beq .__28 @cond_branch\n" + " b .__45\n" + ".__31:\n" " .align 2, 0\n" - "._30:\n" + ".__30:\n" " .word Str_841B249\n" " .word +0x2000000\n" " .word unk_debug_bss_1\n" - "._27:\n" + ".__27:\n" " cmp r0, #0x4\n" - " beq ._32 @cond_branch\n" - " b ._45\n" - "._25:\n" + " beq .__32 @cond_branch\n" + " b .__45\n" + ".__25:\n" " cmp r0, #0x40\n" - " beq ._34 @cond_branch\n" + " beq .__34 @cond_branch\n" " cmp r0, #0x40\n" - " bgt ._35 @cond_branch\n" + " bgt .__35 @cond_branch\n" " cmp r0, #0x10\n" - " beq ._36 @cond_branch\n" - " b ._45\n" - "._35:\n" + " beq .__36 @cond_branch\n" + " b .__45\n" + ".__35:\n" " cmp r0, #0x80\n" - " beq ._38 @cond_branch\n" - " b ._45\n" - "._26:\n" + " beq .__38 @cond_branch\n" + " b .__45\n" + ".__26:\n" " mov r2, #0x3\n" - " b ._45\n" - "._28:\n" + " b .__45\n" + ".__28:\n" " mov r2, #0x5\n" - " b ._45\n" - "._32:\n" + " b .__45\n" + ".__32:\n" " mov r2, #0x7\n" - " b ._45\n" - "._24:\n" + " b .__45\n" + ".__24:\n" " mov r2, #0x9\n" - " b ._45\n" - "._36:\n" + " b .__45\n" + ".__36:\n" " mov r2, #0xb\n" - " b ._45\n" - "._34:\n" + " b .__45\n" + ".__34:\n" " mov r2, #0xd\n" - " b ._45\n" - "._38:\n" + " b .__45\n" + ".__38:\n" " mov r2, #0xf\n" - "._45:\n" - " ldr r0, ._46\n" + ".__45:\n" + " ldr r0, .__46\n" " mov r1, #0x17\n" " bl Menu_PrintText\n" - "._23:\n" + ".__23:\n" " bl debug_sub_811B2E8\n" " add sp, sp, #0x8\n" " pop {r4}\n" " pop {r0}\n" " bx r0\n" - "._47:\n" + ".__47:\n" " .align 2, 0\n" - "._46:\n" + ".__46:\n" " .word Str_841B26D\n" "\n" ); @@ -4539,16 +5731,16 @@ void debug_sub_811B5B4() " ldr r0, [r2]\n" " add r0, r0, r1\n" " str r0, [r2]\n" - " ldr r1, ._49\n" + " ldr r1, .__49\n" " cmp r0, r1\n" - " ble ._48 @cond_branch\n" + " ble .__48 @cond_branch\n" " str r1, [r2]\n" - "._48:\n" + ".__48:\n" " pop {r0}\n" " bx r0\n" - "._50:\n" + ".__50:\n" " .align 2, 0\n" - "._49:\n" + ".__49:\n" " .word 0x270f\n" "\n" ); @@ -4558,16 +5750,16 @@ __attribute__((naked)) void debug_sub_811B5D0() { asm( - " ldr r0, ._51\n" + " ldr r0, .__51\n" " mov r1, #0x0\n" " strb r1, [r0]\n" - " ldr r0, ._51 + 4\n" + " ldr r0, .__51 + 4\n" " strb r1, [r0]\n" - " ldr r0, ._51 + 8\n" + " ldr r0, .__51 + 8\n" " strb r1, [r0]\n" - " ldr r0, ._51 + 12\n" + " ldr r0, .__51 + 12\n" " strb r1, [r0]\n" - " ldr r2, ._51 + 16\n" + " ldr r2, .__51 + 16\n" " mov r0, #0x0\n" " str r0, [r2, #0x68]\n" " str r0, [r2, #0x6c]\n" @@ -4587,9 +5779,9 @@ void debug_sub_811B5D0() " add r1, r1, #0x4\n" " str r0, [r1]\n" " bx lr\n" - "._52:\n" + ".__52:\n" " .align 2, 0\n" - "._51:\n" + ".__51:\n" " .word unk_debug_bss_1\n" " .word unk_debug_bss_1+0x2\n" " .word unk_debug_bss_1+0x3\n" @@ -4604,14 +5796,14 @@ void debug_sub_811B620() { asm( " push {lr}\n" - " ldr r0, ._53\n" + " ldr r0, .__53\n" " mov r1, #0x0\n" " bl CreateTask\n" " pop {r0}\n" " bx r0\n" - "._54:\n" + ".__54:\n" " .align 2, 0\n" - "._53:\n" + ".__53:\n" " .word debug_sub_811B654+1\n" "\n" ); @@ -4622,21 +5814,21 @@ void debug_sub_811B634() { asm( " push {lr}\n" - " ldr r0, ._57\n" + " ldr r0, .__57\n" " bl FindTaskIdByFunc\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " cmp r0, #0xff\n" - " beq ._55 @cond_branch\n" + " beq .__55 @cond_branch\n" " mov r0, #0x0\n" - " b ._56\n" - "._58:\n" + " b .__56\n" + ".__58:\n" " .align 2, 0\n" - "._57:\n" + ".__57:\n" " .word debug_sub_811B654+1\n" - "._55:\n" + ".__55:\n" " mov r0, #0x1\n" - "._56:\n" + ".__56:\n" " pop {r1}\n" " bx r1\n" "\n" @@ -4654,32 +5846,32 @@ void debug_sub_811B654() " lsl r0, r6, #0x2\n" " add r0, r0, r6\n" " lsl r0, r0, #0x3\n" - " ldr r1, ._63\n" + " ldr r1, .__63\n" " add r5, r0, r1\n" " mov r0, #0x8\n" " ldsh r1, [r5, r0]\n" " cmp r1, #0x1\n" - " beq ._59 @cond_branch\n" + " beq .__59 @cond_branch\n" " cmp r1, #0x1\n" - " bgt ._60 @cond_branch\n" + " bgt .__60 @cond_branch\n" " cmp r1, #0\n" - " beq ._61 @cond_branch\n" - " b ._116\n" - "._64:\n" + " beq .__61 @cond_branch\n" + " b .__116\n" + ".__64:\n" " .align 2, 0\n" - "._63:\n" + ".__63:\n" " .word gTasks\n" - "._60:\n" + ".__60:\n" " cmp r1, #0x2\n" - " bne ._65 @cond_branch\n" - " b ._66\n" - "._65:\n" + " bne .__65 @cond_branch\n" + " b .__66\n" + ".__65:\n" " cmp r1, #0x3\n" - " bne ._67 @cond_branch\n" - " b ._68\n" - "._67:\n" - " b ._116\n" - "._61:\n" + " bne .__67 @cond_branch\n" + " b .__68\n" + ".__67:\n" + " b .__116\n" + ".__61:\n" " mov r0, #0x0\n" " mov r1, #0x0\n" " mov r2, #0x18\n" @@ -4689,64 +5881,64 @@ void debug_sub_811B654() " ldrh r0, [r5, #0x8]\n" " add r0, r0, #0x1\n" " strh r0, [r5, #0x8]\n" - " b ._116\n" - "._59:\n" - " ldr r7, ._76\n" + " b .__116\n" + ".__59:\n" + " ldr r7, .__76\n" " ldrh r2, [r7, #0x2e]\n" " mov r0, #0x2\n" " and r0, r0, r2\n" " cmp r0, #0\n" - " beq ._71 @cond_branch\n" - " b ._94\n" - "._71:\n" + " beq .__71 @cond_branch\n" + " b .__94\n" + ".__71:\n" " mov r0, #0x20\n" " and r0, r0, r2\n" " lsl r0, r0, #0x10\n" " lsr r3, r0, #0x10\n" " cmp r3, #0\n" - " beq ._73 @cond_branch\n" - " ldr r1, ._76 + 4\n" + " beq .__73 @cond_branch\n" + " ldr r1, .__76 + 4\n" " ldrb r0, [r1, #0x1]\n" " sub r0, r0, #0x1\n" " strb r0, [r1, #0x1]\n" " lsl r0, r0, #0x18\n" " cmp r0, #0\n" - " bge ._79 @cond_branch\n" + " bge .__79 @cond_branch\n" " mov r0, #0x5\n" " strb r0, [r1, #0x1]\n" - " b ._79\n" - "._77:\n" + " b .__79\n" + ".__77:\n" " .align 2, 0\n" - "._76:\n" + ".__76:\n" " .word gMain\n" " .word +0x2000000\n" - "._73:\n" + ".__73:\n" " mov r0, #0x10\n" " and r0, r0, r2\n" " cmp r0, #0\n" - " beq ._78 @cond_branch\n" - " ldr r1, ._81\n" + " beq .__78 @cond_branch\n" + " ldr r1, .__81\n" " ldrb r0, [r1, #0x1]\n" " add r0, r0, #0x1\n" " strb r0, [r1, #0x1]\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " cmp r0, #0x5\n" - " bls ._79 @cond_branch\n" + " bls .__79 @cond_branch\n" " strb r3, [r1, #0x1]\n" - "._79:\n" + ".__79:\n" " bl debug_sub_811B2E8\n" - " b ._116\n" - "._82:\n" + " b .__116\n" + ".__82:\n" " .align 2, 0\n" - "._81:\n" + ".__81:\n" " .word +0x2000000\n" - "._78:\n" + ".__78:\n" " and r1, r1, r2\n" " lsl r0, r1, #0x10\n" " lsr r4, r0, #0x10\n" " cmp r4, #0\n" - " beq ._83 @cond_branch\n" + " beq .__83 @cond_branch\n" " mov r0, #0x3\n" " strh r0, [r5, #0x8]\n" " bl Menu_EraseScreen\n" @@ -4755,28 +5947,28 @@ void debug_sub_811B654() " mov r2, #0x9\n" " mov r3, #0x5\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._85\n" + " ldr r0, .__85\n" " mov r1, #0x1\n" " mov r2, #0x1\n" " bl Menu_PrintText\n" - " ldr r0, ._85 + 4\n" + " ldr r0, .__85 + 4\n" " mov r1, #0x1\n" " mov r2, #0x3\n" " bl Menu_PrintText\n" - " b ._116\n" - "._86:\n" + " b .__116\n" + ".__86:\n" " .align 2, 0\n" - "._85:\n" + ".__85:\n" " .word Str_841B25C\n" " .word Str_841B264\n" - "._83:\n" + ".__83:\n" " mov r0, #0x4\n" " and r0, r0, r2\n" " cmp r0, #0\n" - " beq ._87 @cond_branch\n" - " ldr r0, ._91\n" + " beq .__87 @cond_branch\n" + " ldr r0, .__91\n" " strb r4, [r0]\n" - " ldr r0, ._91 + 4\n" + " ldr r0, .__91 + 4\n" " strb r4, [r0]\n" " bl Menu_EraseScreen\n" " mov r0, #0x0\n" @@ -4784,11 +5976,11 @@ void debug_sub_811B654() " mov r2, #0xa\n" " mov r3, #0x13\n" " bl Menu_DrawStdWindowFrame\n" - " ldr r0, ._91 + 8\n" + " ldr r0, .__91 + 8\n" " mov r1, #0x1\n" " mov r2, #0x1\n" " bl Menu_PrintText\n" - " ldr r3, ._91 + 12\n" + " ldr r3, .__91 + 12\n" " mov r0, #0x2\n" " mov r1, #0x3\n" " mov r2, #0x8\n" @@ -4804,144 +5996,144 @@ void debug_sub_811B654() " ldrh r0, [r5, #0x8]\n" " add r0, r0, #0x1\n" " strh r0, [r5, #0x8]\n" - "._87:\n" + ".__87:\n" " ldrh r1, [r7, #0x2e]\n" " mov r0, #0x8\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " bne ._88 @cond_branch\n" - " b ._116\n" - "._88:\n" - " ldr r1, ._91 + 16\n" + " bne .__88 @cond_branch\n" + " b .__116\n" + ".__88:\n" + " ldr r1, .__91 + 16\n" " mov r0, #0x1\n" " strb r0, [r1]\n" - " b ._94\n" - "._92:\n" + " b .__94\n" + ".__92:\n" " .align 2, 0\n" - "._91:\n" + ".__91:\n" " .word unk_debug_bss_1+0x2\n" " .word unk_debug_bss_1+0x3\n" " .word Str_841B254\n" " .word _841B270\n" " .word unk_debug_bss_1+0x4\n" - "._66:\n" + ".__66:\n" " bl Menu_ProcessInput\n" " lsl r0, r0, #0x18\n" " asr r2, r0, #0x18\n" " mov r0, #0x2\n" " neg r0, r0\n" " cmp r2, r0\n" - " beq ._116 @cond_branch\n" + " beq .__116 @cond_branch\n" " add r0, r0, #0x1\n" " cmp r2, r0\n" - " beq ._94 @cond_branch\n" - " ldr r1, ._96\n" + " beq .__94 @cond_branch\n" + " ldr r1, .__96\n" " mov r0, #0x1\n" " strb r0, [r1]\n" - " ldr r0, ._96 + 4\n" + " ldr r0, .__96 + 4\n" " lsl r1, r2, #0x3\n" " add r0, r0, #0x4\n" " add r1, r1, r0\n" " ldr r0, [r1]\n" " bl _call_via_r0\n" - "._94:\n" + ".__94:\n" " bl Menu_EraseScreen\n" " add r0, r6, #0\n" " bl DestroyTask\n" - " b ._116\n" - "._97:\n" + " b .__116\n" + ".__97:\n" " .align 2, 0\n" - "._96:\n" + ".__96:\n" " .word unk_debug_bss_1+0x2\n" " .word _841B270\n" - "._68:\n" - " ldr r2, ._100\n" + ".__68:\n" + " ldr r2, .__100\n" " ldrh r1, [r2, #0x30]\n" " mov r0, #0x80\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._98 @cond_branch\n" - " ldr r2, ._100 + 4\n" + " beq .__98 @cond_branch\n" + " ldr r2, .__100 + 4\n" " ldrh r0, [r2, #0xc]\n" " add r0, r0, #0x64\n" - " b ._99\n" - "._101:\n" + " b .__99\n" + ".__101:\n" " .align 2, 0\n" - "._100:\n" + ".__100:\n" " .word gMain\n" " .word +0x2000000\n" - "._98:\n" + ".__98:\n" " mov r0, #0x40\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._102 @cond_branch\n" - " ldr r1, ._104\n" + " beq .__102 @cond_branch\n" + " ldr r1, .__104\n" " ldrh r0, [r1, #0xc]\n" " sub r0, r0, #0x64\n" - " b ._103\n" - "._105:\n" + " b .__103\n" + ".__105:\n" " .align 2, 0\n" - "._104:\n" + ".__104:\n" " .word +0x2000000\n" - "._102:\n" + ".__102:\n" " mov r0, #0x20\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._106 @cond_branch\n" - " ldr r1, ._109\n" - " ldr r2, ._109 + 4\n" + " beq .__106 @cond_branch\n" + " ldr r1, .__109\n" + " ldr r2, .__109 + 4\n" " add r0, r2, #0\n" " ldrh r2, [r1, #0xc]\n" " add r0, r0, r2\n" - "._103:\n" + ".__103:\n" " strh r0, [r1, #0xc]\n" " lsl r0, r0, #0x10\n" " cmp r0, #0\n" - " bgt ._116 @cond_branch\n" - " ldr r0, ._109 + 8\n" + " bgt .__116 @cond_branch\n" + " ldr r0, .__109 + 8\n" " strh r0, [r1, #0xc]\n" - " b ._116\n" - "._110:\n" + " b .__116\n" + ".__110:\n" " .align 2, 0\n" - "._109:\n" + ".__109:\n" " .word +0x2000000\n" " .word 0xfffffc18\n" " .word 0x270f\n" - "._106:\n" + ".__106:\n" " mov r0, #0x10\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._111 @cond_branch\n" - " ldr r2, ._114\n" + " beq .__111 @cond_branch\n" + " ldr r2, .__114\n" " mov r1, #0xfa\n" " lsl r1, r1, #0x2\n" " add r0, r1, #0\n" " ldrh r1, [r2, #0xc]\n" " add r0, r0, r1\n" - "._99:\n" + ".__99:\n" " strh r0, [r2, #0xc]\n" " lsl r0, r0, #0x10\n" " asr r0, r0, #0x10\n" - " ldr r1, ._114 + 4\n" + " ldr r1, .__114 + 4\n" " cmp r0, r1\n" - " ble ._116 @cond_branch\n" + " ble .__116 @cond_branch\n" " strh r1, [r2, #0xc]\n" - " b ._116\n" - "._115:\n" + " b .__116\n" + ".__115:\n" " .align 2, 0\n" - "._114:\n" + ".__114:\n" " .word +0x2000000\n" " .word 0x270f\n" - "._111:\n" + ".__111:\n" " ldrh r1, [r2, #0x2e]\n" " mov r0, #0x2\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._116 @cond_branch\n" + " beq .__116 @cond_branch\n" " bl Menu_EraseScreen\n" " add r0, r6, #0\n" " bl DestroyTask\n" - "._116:\n" + ".__116:\n" " add sp, sp, #0x8\n" " pop {r4, r5, r6, r7}\n" " pop {r0}\n" @@ -4960,232 +6152,232 @@ void debug_sub_811B894() " mov r5, r8\n" " push {r5, r6, r7}\n" " add sp, sp, #0xfffffffc\n" - " ldr r1, ._122\n" + " ldr r1, .__122\n" " ldrh r2, [r1, #0x8]\n" " mov r0, #0xc0\n" " lsl r0, r0, #0x1\n" " and r0, r0, r2\n" " add r4, r1, #0\n" " cmp r0, #0\n" - " beq ._117 @cond_branch\n" + " beq .__117 @cond_branch\n" " add r1, r1, #0x90\n" " ldr r0, [r1]\n" " add r0, r0, #0x1\n" " str r0, [r1]\n" - " ldr r2, ._122 + 4\n" + " ldr r2, .__122 + 4\n" " cmp r0, r2\n" - " ble ._118 @cond_branch\n" + " ble .__118 @cond_branch\n" " str r2, [r1]\n" - "._118:\n" + ".__118:\n" " add r0, r4, #0\n" " add r0, r0, #0x88\n" " ldr r1, [r1]\n" " ldr r0, [r0]\n" " cmp r1, r0\n" - " beq ._119 @cond_branch\n" - " ldr r0, ._122 + 8\n" + " beq .__119 @cond_branch\n" + " ldr r0, .__122 + 8\n" " mov r1, #0x4\n" " mov r2, #0xf\n" " bl Menu_PrintText\n" - " ldr r1, ._122 + 12\n" + " ldr r1, .__122 + 12\n" " mov r0, #0x0\n" " strb r0, [r1]\n" - "._119:\n" + ".__119:\n" " ldrb r1, [r4, #0x4]\n" " mov r0, #0x80\n" " and r0, r0, r1\n" " lsl r0, r0, #0x18\n" " lsr r4, r0, #0x18\n" " cmp r4, #0\n" - " bne ._126 @cond_branch\n" - " ldr r0, ._122 + 16\n" + " bne .__126 @cond_branch\n" + " ldr r0, .__122 + 16\n" " mov r1, #0x4\n" " mov r2, #0x11\n" - " b ._121\n" - "._123:\n" + " b .__121\n" + ".__123:\n" " .align 2, 0\n" - "._122:\n" + ".__122:\n" " .word +0x2000000\n" " .word 0x270f\n" " .word Str_841B2B0\n" " .word unk_debug_bss_1+0x4\n" " .word Str_841B2D3\n" - "._117:\n" + ".__117:\n" " lsl r0, r2, #0x10\n" " cmp r0, #0\n" - " beq ._127 @cond_branch\n" + " beq .__127 @cond_branch\n" " ldrb r1, [r4, #0x4]\n" " mov r0, #0x80\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._126 @cond_branch\n" + " beq .__126 @cond_branch\n" " mov r4, #0x3\n" " and r4, r4, r2\n" " cmp r4, #0\n" - " bne ._126 @cond_branch\n" - " ldr r0, ._163\n" + " bne .__126 @cond_branch\n" + " ldr r0, .__163\n" " mov r1, #0x4\n" " mov r2, #0x2\n" - "._121:\n" + ".__121:\n" " bl Menu_PrintText\n" - " ldr r0, ._163 + 4\n" + " ldr r0, .__163 + 4\n" " strb r4, [r0]\n" - "._126:\n" - " ldr r0, ._163 + 8\n" + ".__126:\n" + " ldr r0, .__163 + 8\n" " ldrh r1, [r0, #0x8]\n" " add r4, r0, #0\n" " cmp r1, #0\n" - " beq ._127 @cond_branch\n" - " b ._162\n" - "._127:\n" + " beq .__127 @cond_branch\n" + " b .__162\n" + ".__127:\n" " mov r1, #0x12\n" " ldsh r0, [r4, r1]\n" " cmp r0, #0x3\n" - " beq ._129 @cond_branch\n" - " b ._162\n" - "._129:\n" + " beq .__129 @cond_branch\n" + " b .__162\n" + ".__129:\n" " ldrb r1, [r4, #0x4]\n" " mov r0, #0x80\n" " and r0, r0, r1\n" " cmp r0, #0\n" - " beq ._131 @cond_branch\n" - " b ._162\n" - "._131:\n" + " beq .__131 @cond_branch\n" + " b .__162\n" + ".__131:\n" " mov r0, #0x0\n" " mov r1, #0x1\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r7, r0, #0x18\n" " mov r0, #0x0\n" " mov r1, #0x2\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " str r0, [sp]\n" " mov r0, #0x0\n" " mov r1, #0x3\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r6, r0, #0x18\n" " mov r0, #0x1\n" " mov r1, #0x1\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " mov r9, r0\n" " mov r0, #0x1\n" " mov r1, #0x2\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r4, r0, #0x18\n" " mov r0, #0x1\n" " mov r1, #0x3\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " mov sl, r0\n" " mov r0, #0x2\n" " mov r1, #0x1\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r5, r0, #0x18\n" " mov r0, #0x2\n" " mov r1, #0x2\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " mov r8, r0\n" " mov r0, #0x2\n" " mov r1, #0x3\n" - " bl sub_8102BA4\n" + " bl GetTagOfReelSymbolOnScreenAtPos\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" " cmp r7, #0\n" - " bne ._134 @cond_branch\n" + " bne .__134 @cond_branch\n" " mov r1, r9\n" " cmp r1, #0x1\n" - " bne ._134 @cond_branch\n" + " bne .__134 @cond_branch\n" " cmp r5, #0\n" - " beq ._159 @cond_branch\n" - "._134:\n" + " beq .__159 @cond_branch\n" + ".__134:\n" " ldr r1, [sp]\n" " cmp r1, #0\n" - " bne ._137 @cond_branch\n" + " bne .__137 @cond_branch\n" " cmp r4, #0x1\n" - " bne ._137 @cond_branch\n" + " bne .__137 @cond_branch\n" " mov r1, r8\n" " cmp r1, #0\n" - " beq ._159 @cond_branch\n" - "._137:\n" + " beq .__159 @cond_branch\n" + ".__137:\n" " cmp r6, #0\n" - " bne ._140 @cond_branch\n" + " bne .__140 @cond_branch\n" " mov r1, sl\n" " cmp r1, #0x1\n" - " bne ._140 @cond_branch\n" + " bne .__140 @cond_branch\n" " cmp r0, #0\n" - " beq ._159 @cond_branch\n" - "._140:\n" + " beq .__159 @cond_branch\n" + ".__140:\n" " cmp r7, #0\n" - " bne ._143 @cond_branch\n" + " bne .__143 @cond_branch\n" " cmp r4, #0x1\n" - " bne ._143 @cond_branch\n" + " bne .__143 @cond_branch\n" " cmp r0, #0\n" - " beq ._159 @cond_branch\n" - "._143:\n" + " beq .__159 @cond_branch\n" + ".__143:\n" " cmp r6, #0\n" - " bne ._146 @cond_branch\n" + " bne .__146 @cond_branch\n" " cmp r4, #0x1\n" - " bne ._146 @cond_branch\n" + " bne .__146 @cond_branch\n" " cmp r5, #0\n" - " beq ._159 @cond_branch\n" - "._146:\n" + " beq .__159 @cond_branch\n" + ".__146:\n" " cmp r7, #0x1\n" - " bne ._149 @cond_branch\n" + " bne .__149 @cond_branch\n" " mov r1, r9\n" " cmp r1, #0\n" - " bne ._149 @cond_branch\n" + " bne .__149 @cond_branch\n" " cmp r5, #0x1\n" - " beq ._159 @cond_branch\n" - "._149:\n" + " beq .__159 @cond_branch\n" + ".__149:\n" " ldr r1, [sp]\n" " cmp r1, #0x1\n" - " bne ._152 @cond_branch\n" + " bne .__152 @cond_branch\n" " cmp r4, #0\n" - " bne ._152 @cond_branch\n" + " bne .__152 @cond_branch\n" " mov r1, r8\n" " cmp r1, #0x1\n" - " beq ._159 @cond_branch\n" - "._152:\n" + " beq .__159 @cond_branch\n" + ".__152:\n" " cmp r6, #0x1\n" - " bne ._155 @cond_branch\n" + " bne .__155 @cond_branch\n" " mov r1, sl\n" " cmp r1, #0\n" - " bne ._155 @cond_branch\n" + " bne .__155 @cond_branch\n" " cmp r0, #0x1\n" - " beq ._159 @cond_branch\n" - "._155:\n" + " beq .__159 @cond_branch\n" + ".__155:\n" " cmp r7, #0x1\n" - " bne ._158 @cond_branch\n" + " bne .__158 @cond_branch\n" " cmp r4, #0\n" - " bne ._158 @cond_branch\n" + " bne .__158 @cond_branch\n" " cmp r0, #0x1\n" - " beq ._159 @cond_branch\n" - "._158:\n" + " beq .__159 @cond_branch\n" + ".__158:\n" " cmp r6, #0x1\n" - " bne ._162 @cond_branch\n" + " bne .__162 @cond_branch\n" " cmp r4, #0\n" - " bne ._162 @cond_branch\n" + " bne .__162 @cond_branch\n" " cmp r5, #0x1\n" - " bne ._162 @cond_branch\n" - "._159:\n" - " ldr r0, ._163 + 12\n" + " bne .__162 @cond_branch\n" + ".__159:\n" + " ldr r0, .__163 + 12\n" " mov r1, #0x4\n" " mov r2, #0x0\n" " bl Menu_PrintText\n" - " ldr r1, ._163 + 4\n" + " ldr r1, .__163 + 4\n" " mov r0, #0x0\n" " strb r0, [r1]\n" - "._162:\n" + ".__162:\n" " add sp, sp, #0x4\n" " pop {r3, r4, r5}\n" " mov r8, r3\n" @@ -5194,9 +6386,9 @@ void debug_sub_811B894() " pop {r4, r5, r6, r7}\n" " pop {r0}\n" " bx r0\n" - "._164:\n" + ".__164:\n" " .align 2, 0\n" - "._163:\n" + ".__163:\n" " .word Str_841B2E4\n" " .word unk_debug_bss_1+0x4\n" " .word +0x2000000\n" @@ -6636,3 +7828,50 @@ static const struct SpritePalette gSlotMachineSpritePalettes[] = { static const u8 sReelTimeGfx[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz"); static const u16 sReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin"); + +#if DEBUG + +const u8 Str_841B1C4[] = _("SETTEI"); +const u8 Str_841B1CB[] = _("MAWASITA"); +const u8 Str_841B1D4[] = _("MODOSI"); +const u8 Str_841B1DB[] = _("NOMARE"); +const u8 Str_841B1E2[] = _("MAE 7"); +const u8 Str_841B1E8[] = _("LR  HENKOU"); +const u8 Str_841B1F3[] = _("START  JIDOUSU"); +const u8 Str_841B202[] = _("SELECT  SETTEI"); +const u8 Str_841B211[] = _("TYUHSEN"); +const u8 Str_841B219[] = _("CHERRY"); +const u8 Str_841B220[] = _("REPLAY"); +const u8 Str_841B227[] = _("HASUBO"); +const u8 Str_841B22E[] = _("RURIRI"); +const u8 Str_841B235[] = _("INAZU"); +const u8 Str_841B23B[] = _("REG"); +const u8 Str_841B23F[] = _("BIG"); +const u8 Str_841B243[] = _("BD"); +const u8 Str_841B246[] = _("R7"); +const u8 Str_841B249[] = _("B7"); +const u8 Str_841B24C[] = _("A  COIN"); +const u8 Str_841B254[] = _("TYUHSEN"); +const u8 Str_841B25C[] = _("UD  100"); +const u8 Str_841B264[] = _("LR  1000"); +const u8 Str_841B26D[] = _("×"); + +// Is this MenuAction2? I'm not sure. +const struct {const u8 *text; void (*func)();} _841B270[] = +{ + {Str_841B219, debug_sub_811B1C4}, + {Str_841B220, debug_sub_811B1EC}, + {Str_841B227, debug_sub_811B210}, + {Str_841B22E, debug_sub_811B238}, + {Str_841B235, debug_sub_811B260}, + {Str_841B23B, debug_sub_811B288}, + {Str_841B23F, debug_sub_811B2B0}, + {Str_841B243, debug_sub_811B2D8}, +}; + +const u8 Str_841B2B0[] = _("·カウントエラーがおきました"); +const u8 Str_841B2BF[] = _("·リールそうさで エラーが おきました"); +const u8 Str_841B2D3[] = _("·フラグオフエラーが おきました"); +const u8 Str_841B2E4[] = _("·ボーナスこやくの エラーが おきました"); + +#endif -- cgit v1.2.3 From c3534e7b0e2df48fe989deb74c26f98e1fe759b8 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 16:46:54 -0600 Subject: add more debug code --- src/field/field_fadetransition.c | 16 ++ src/field/fldeff_cut.c | 109 +++++++++ src/field/fldeff_flash.c | 30 +++ src/field/fldeff_strength.c | 23 ++ src/field/item_menu.c | 498 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 676 insertions(+) (limited to 'src/field') diff --git a/src/field/field_fadetransition.c b/src/field/field_fadetransition.c index 5014e97e3..6d40c53aa 100644 --- a/src/field/field_fadetransition.c +++ b/src/field/field_fadetransition.c @@ -511,6 +511,22 @@ void sub_80810DC(void) CreateTask(sub_8081050, 10); } +#if DEBUG + +__attribute__((naked)) +void debug_sub_80888D8() +{ + asm("\ + PUSH {LR}\n\ + BL debug_sub_8052E04\n\ + BL sub_8080E88\n\ + BL ScriptContext2_Enable\n\ + POP {R0}\n\ + BX R0"); +} + +#endif + void task0A_fade_n_map_maybe(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/field/fldeff_cut.c b/src/field/fldeff_cut.c index e4328acfc..7d90b9f4d 100644 --- a/src/field/fldeff_cut.c +++ b/src/field/fldeff_cut.c @@ -72,6 +72,115 @@ static const struct SpriteTemplate gSpriteTemplate_CutGrass = .callback = sub_80A2A48, }; +#if DEBUG +__attribute__((naked)) +void debug_sub_80AFEE4() +{ + asm( + " push {r4, r5, r6, r7, lr}\n" + " mov r7, r8\n" + " push {r7}\n" + " mov r0, #0x52\n" + " bl npc_before_player_of_type\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._1 @cond_branch\n" + " ldr r1, ._3\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " bl sub_80A2634\n" + " b ._8\n" + "._4:\n" + " .align 2, 0\n" + "._3:\n" + " .word gLastFieldPokeMenuOpened\n" + "._1:\n" + " ldr r4, ._9\n" + " add r1, r4, #2\n" + " add r0, r4, #0\n" + " bl PlayerGetDestCoords\n" + " mov r7, #0x0\n" + " mov r8, r4\n" + "._12:\n" + " ldr r1, ._9 + 4\n" + " add r0, r7, r1\n" + " mov r2, r8\n" + " ldrh r2, [r2, #0x2]\n" + " add r0, r0, r2\n" + " mov r6, #0x0\n" + " lsl r0, r0, #0x10\n" + " asr r5, r0, #0x10\n" + "._11:\n" + " ldr r1, ._9 + 4\n" + " add r0, r6, r1\n" + " mov r2, r8\n" + " ldrh r2, [r2]\n" + " add r0, r0, r2\n" + " lsl r0, r0, #0x10\n" + " asr r4, r0, #0x10\n" + " add r0, r4, #0\n" + " add r1, r5, #0\n" + " bl MapGridGetZCoordAt\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " mov r2, r8\n" + " mov r1, #0x4\n" + " ldsb r1, [r2, r1]\n" + " cmp r0, r1\n" + " bne ._7 @cond_branch\n" + " add r0, r4, #0\n" + " add r1, r5, #0\n" + " bl MapGridGetMetatileBehaviorAt\n" + " lsl r0, r0, #0x18\n" + " lsr r4, r0, #0x18\n" + " add r0, r4, #0\n" + " bl MetatileBehavior_IsPokeGrass\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " beq ._6 @cond_branch\n" + " add r0, r4, #0\n" + " bl MetatileBehavior_IsAshGrass\n" + " lsl r0, r0, #0x18\n" + " lsr r0, r0, #0x18\n" + " cmp r0, #0x1\n" + " bne ._7 @cond_branch\n" + "._6:\n" + " ldr r1, ._9 + 8\n" + " mov r0, #0x0\n" + " strb r0, [r1]\n" + " bl sub_80A25E8\n" + " b ._8\n" + "._10:\n" + " .align 2, 0\n" + "._9:\n" + " .word gUnknown_0203923C\n" + " .word 0xffff\n" + " .word gLastFieldPokeMenuOpened\n" + "._7:\n" + " add r0, r6, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r6, r0, #0x18\n" + " cmp r6, #0x2\n" + " bls ._11 @cond_branch\n" + " add r0, r7, #1\n" + " lsl r0, r0, #0x18\n" + " lsr r7, r0, #0x18\n" + " cmp r7, #0x2\n" + " bls ._12 @cond_branch\n" + " bl ScriptContext2_Disable\n" + "._8:\n" + " pop {r3}\n" + " mov r8, r3\n" + " pop {r4, r5, r6, r7}\n" + " pop {r0}\n" + " bx r0\n" + "\n" + ); +} +#endif + bool8 SetUpFieldMove_Cut(void) { s16 x, y; diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c index 22f170184..d8f70200c 100644 --- a/src/field/fldeff_flash.c +++ b/src/field/fldeff_flash.c @@ -71,6 +71,36 @@ static const u16 gUnknown_083F809C[] = INCBIN_U16("graphics/misc/83F809C.gbapal" static const u16 gCaveTransitionTilemap[] = INCBIN_U16("graphics/misc/cave_transition_map.bin.lz"); static const u8 gCaveTransitionTiles[] = INCBIN_U8("graphics/misc/cave_transition.4bpp.lz"); +#if DEBUG +__attribute__((naked)) +void debug_sub_8122080(void) +{ + asm("\ + push {lr}\n\ + ldr r0, ._4\n\ + ldrb r0, [r0, #0x15]\n\ + cmp r0, #0x1\n\ + bne ._2 @cond_branch\n\ + ldr r0, ._4 + 4\n\ + bl FlagGet\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._2 @cond_branch\n\ + bl sub_810CBFC\n\ + b ._3\n\ +._5:\n\ + .align 2, 0\n\ +._4:\n\ + .word gMapHeader\n\ + .word 0x828\n\ +._2:\n\ + bl ScriptContext2_Disable\n\ +._3:\n\ + pop {r0}\n\ + bx r0"); +} +#endif + bool8 SetUpFieldMove_Flash(void) { if (gMapHeader.cave == TRUE && !FlagGet(FLAG_SYS_USE_FLASH)) diff --git a/src/field/fldeff_strength.c b/src/field/fldeff_strength.c index 565ac1651..9f9cd4013 100644 --- a/src/field/fldeff_strength.c +++ b/src/field/fldeff_strength.c @@ -1,4 +1,5 @@ #include "global.h" +#include "constants/map_objects.h" #include "braille_puzzles.h" #include "field_effect.h" #include "party_menu.h" @@ -20,6 +21,28 @@ extern void (*gUnknown_03005CE4)(void); extern u8 S_UseStrength[]; +#if DEBUG +void debug_sub_8130318(void) +{ + if (ShouldDoBrailleStrengthEffect()) + { + gLastFieldPokeMenuOpened = 0; + gSpecialVar_Result = 0; + sub_811AA38(); + } + else if (npc_before_player_of_type(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE) + { + gLastFieldPokeMenuOpened = 0; + gSpecialVar_Result = 0; + sub_811AA18(); + } + else + { + ScriptContext2_Disable(); + } +} +#endif + bool8 SetUpFieldMove_Strength(void) { if (ShouldDoBrailleStrengthEffect()) diff --git a/src/field/item_menu.c b/src/field/item_menu.c index e0575af4c..125edfef2 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -158,6 +158,9 @@ extern struct PocketScrollState gBagPocketScrollStates[]; extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots extern const u8 Event_NoRegisteredItem[]; +// TODO: decompile the debug code so we can use static in this file +#define static + extern const struct CompressedSpriteSheet sMaleBagSpriteSheet; extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet; extern const struct CompressedSpritePalette sBagSpritePalette; @@ -384,6 +387,390 @@ static void sub_80A3134(void) } } +#if DEBUG +__attribute__((naked)) +static bool8 SetupBagMultistep(void) +{ + asm("\ + push {r4, r5, lr}\n\ + add sp, sp, #0xfffffffc\n\ + ldr r0, ._5\n\ + ldr r1, ._5 + 4\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 sub_80F9438\n\ + bl sub_80A34E8\n\ + b ._61\n\ +._9:\n\ + bl remove_some_task\n\ + ldr r1, ._27\n\ + ldr r0, ._27 + 4\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 sub_80F9020\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\n\ + ldrb r0, [r2, #0x8]\n\ + mov r1, #0x80\n\ + orr r0, r0, r1\n\ + strb r0, [r2, #0x8]\n\ + ldr r1, ._34 + 4\n\ + ldr r0, ._34 + 8\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 sub_80A3520\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._37 @cond_branch\n\ + b ._66\n\ +._37:\n\ + ldr r1, ._40\n\ + ldr r0, ._40 + 4\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\n\ + bl SetUpWindowConfig\n\ + b ._61\n\ +._44:\n\ + .align 2, 0\n\ +._43:\n\ + .word gWindowConfig_81E6DFC\n\ +._16:\n\ + ldr r0, ._46\n\ + bl MultistepInitMenuWindowBegin\n\ + ldr r1, ._46 + 4\n\ + ldr r0, ._46 + 8\n\ + add r1, r1, r0\n\ + b ._62\n\ +._47:\n\ + .align 2, 0\n\ +._46:\n\ + .word gWindowConfig_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 sub_80F944C\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 sub_80F9988\n\ + mov r0, #0x1\n\ + mov r1, #0x2\n\ + bl sub_80F9988\n\ + mov r0, #0x2\n\ + mov r1, #0x2\n\ + bl sub_80F9988\n\ + mov r0, #0x3\n\ + mov r1, #0x2\n\ + bl sub_80F9988\n\ + ldr r0, ._53\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 sub_80F979C\n\ + mov r0, #0x3\n\ + mov r1, #0x1\n\ + bl sub_80F979C\n\ +._51:\n\ + ldr r1, ._53 + 4\n\ + ldr r0, ._53 + 8\n\ + add r1, r1, r0\n\ + b ._62\n\ +._54:\n\ + .align 2, 0\n\ +._53:\n\ + .word gUnknown_03000701\n\ + .word gMain\n\ + .word 0x43c\n\ +._19:\n\ + ldr r1, ._56\n\ + mov r0, #0x10\n\ + strb r0, [r1]\n\ + ldr r4, ._56 + 4\n\ + ldr r5, ._56 + 8\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 sub_80A3AC0\n\ + bl sub_80A3D08\n\ + ldr r4, ._56 + 12\n\ + ldr r0, [r4, #0x10]\n\ + ldr r1, [r4, #0x14]\n\ + bl sub_80A3C34\n\ + ldr r0, [r4, #0x18]\n\ + ldr r1, [r4, #0x1c]\n\ + bl sub_80A3C34\n\ + bl sub_80A3D40\n\ + ldr r1, ._56 + 16\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 gUnknown_02038559\n\ + .word gBagPockets\n\ + .word gUnknown_03005D24\n\ +._20:\n\ + ldr r0, ._59\n\ + mov r1, #0x0\n\ + mov r2, #0x7\n\ + bl sub_80A48E8\n\ + ldr r1, ._59 + 4\n\ + ldr r4, ._59 + 8\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\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\n\ + ldrb r0, [r4]\n\ + add r0, r0, #0x1\n\ + strb r0, [r1]\n\ + ldr r1, ._59 + 20\n\ + mov r0, #0x0\n\ + strb r0, [r1]\n\ + ldr r1, ._59 + 24\n\ + ldr r0, ._59 + 28\n\ + add r1, r1, r0\n\ + b ._62\n\ +._60:\n\ + .align 2, 0\n\ +._59:\n\ + .word 0xffff\n\ + .word gUnknown_03005D10\n\ + .word gUnknown_02038559\n\ + .word gUnknown_03005D24\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\n\ + ldrh r2, [r3]\n\ + mov r0, #0x0\n\ + strh r0, [r3]\n\ + ldr r4, ._63 + 4\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\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\n\ + ldrb r1, [r2, #0x8]\n\ + mov r0, #0x7f\n\ + and r0, r0, r1\n\ + strb r0, [r2, #0x8]\n\ + ldr r1, ._63 + 16\n\ + ldr r0, ._63 + 20\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\n\ + ldr r2, ._67 + 4\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\n\ + bl SetVBlankCallback\n\ + ldr r0, ._71 + 4\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\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + bne ._69 @cond_branch\n\ + ldr r0, ._71 + 12\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x8\n\ + ldr r2, ._71 + 16\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; @@ -508,6 +895,7 @@ static bool8 SetupBagMultistep(void) } return FALSE; } +#endif static bool8 sub_80A34B4(void) { @@ -634,6 +1022,79 @@ void ClearBag(void) ResetBagScrollPositions(); } +#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\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\n\ + add r0, r0, r1\n\ + lsr r0, r0, #0x10\n\ + ldr r1, ._138 + 8\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"); +} +#endif + static void sub_80A3740(void) { const u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE}; @@ -3573,12 +4034,49 @@ 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\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + bne ._930 @cond_branch\n\ + ldr r0, ._931 + 4\n\ + ldr r1, ._931 + 8\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(); } +#endif static void sub_80A7420(void) { -- cgit v1.2.3 From 233654746815b884d303cc3416c3fe6c377b4a73 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 17:30:45 -0600 Subject: resolve more undefined references --- src/field/berry_tag_screen.c | 2 +- src/field/choose_party.c | 2 +- src/field/field_weather.c | 10 +++++----- src/field/item_menu.c | 28 ++++++++++++++-------------- src/field/mauville_man.c | 10 +++++----- src/field/region_map.c | 14 +++++++------- src/field/slot_machine.c | 16 ++++++++-------- src/field/start_menu.c | 2 +- 8 files changed, 42 insertions(+), 42 deletions(-) (limited to 'src/field') diff --git a/src/field/berry_tag_screen.c b/src/field/berry_tag_screen.c index a05d9bf87..56d578464 100644 --- a/src/field/berry_tag_screen.c +++ b/src/field/berry_tag_screen.c @@ -42,7 +42,7 @@ extern u8 gBerryCheck_Pal[]; extern u8 gUnknown_08E788E4[]; extern u8 gUnknown_08E78A84[]; -static const u8 *const gUnknown_0841192C[] = +const u8 *const gUnknown_0841192C[] = { ContestStatsText_VerySoft, ContestStatsText_Soft, diff --git a/src/field/choose_party.c b/src/field/choose_party.c index 8a54b0ad0..b108ede5a 100644 --- a/src/field/choose_party.c +++ b/src/field/choose_party.c @@ -601,7 +601,7 @@ void debug_sub_81381B4() " add r2, r4, #0\n" " bl GetMonData\n" " add r0, r4, #0\n" - " bl StripExtCtrlCodes\n" + " bl Text_StripExtCtrlCodes\n" " add r0, r5, #0\n" " mov r1, #0x3\n" " bl GetMonData\n" diff --git a/src/field/field_weather.c b/src/field/field_weather.c index 97eba16e0..1a4985892 100644 --- a/src/field/field_weather.c +++ b/src/field/field_weather.c @@ -1256,7 +1256,7 @@ u8 debug_sub_8085564(void) mov r1, #0x1\n\ mov r2, #0x1c\n\ mov r3, #0x2\n\ - bl MenuFillWindowRectWithBlankTile\n\ + bl Menu_BlankWindowRect\n\ ldr r1, ._380\n\ ldr r0, ._380 + 4\n\ ldrb r0, [r0]\n\ @@ -1265,7 +1265,7 @@ u8 debug_sub_8085564(void) ldr r0, [r0]\n\ mov r1, #0x17\n\ mov r2, #0x1\n\ - bl MenuPrint\n\ + bl Menu_PrintText\n\ ._377:\n\ ldr r0, ._380 + 8\n\ ldrh r1, [r0, #0x2e]\n\ @@ -1313,7 +1313,7 @@ u8 debug_sub_808560C(void) mov r1, #0x1\n\ mov r2, #0x1c\n\ mov r3, #0x2\n\ - bl MenuFillWindowRectWithBlankTile\n\ + bl Menu_BlankWindowRect\n\ ldr r1, ._384 + 8\n\ ldrb r0, [r4]\n\ lsl r0, r0, #0x2\n\ @@ -1321,7 +1321,7 @@ u8 debug_sub_808560C(void) ldr r0, [r0]\n\ mov r1, #0x17\n\ mov r2, #0x1\n\ - bl MenuPrint\n\ + bl Menu_PrintText\n\ ldr r1, ._384 + 12\n\ ldr r0, ._384 + 16\n\ str r0, [r1]\n\ @@ -1333,7 +1333,7 @@ u8 debug_sub_808560C(void) .align 2, 0\n\ ._384:\n\ .word gUnknown_0202FF58+0x2\n\ - .word gUnknown_0202F7E8\n\ + .word gWeather\n\ .word gDebugText_Weather\n\ .word gCallback_03004AE8\n\ .word debug_sub_8085564+1"); diff --git a/src/field/item_menu.c b/src/field/item_menu.c index 125edfef2..ce1f18cdb 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -483,7 +483,7 @@ static bool8 SetupBagMultistep(void) bl ResetSpriteData\n\ b ._61\n\ ._14:\n\ - bl sub_80A3520\n\ + bl LoadBagGraphicsMultistep\n\ lsl r0, r0, #0x18\n\ cmp r0, #0\n\ bne ._37 @cond_branch\n\ @@ -500,12 +500,12 @@ static bool8 SetupBagMultistep(void) .word 0x43c\n\ ._15:\n\ ldr r0, ._43\n\ - bl SetUpWindowConfig\n\ + bl Text_LoadWindowTemplate\n\ b ._61\n\ ._44:\n\ .align 2, 0\n\ ._43:\n\ - .word gWindowConfig_81E6DFC\n\ + .word gWindowTemplate_81E6DFC\n\ ._16:\n\ ldr r0, ._46\n\ bl MultistepInitMenuWindowBegin\n\ @@ -516,7 +516,7 @@ static bool8 SetupBagMultistep(void) ._47:\n\ .align 2, 0\n\ ._46:\n\ - .word gWindowConfig_81E6DFC\n\ + .word gWindowTemplate_81E6DFC\n\ .word gMain\n\ .word 0x43c\n\ ._17:\n\ @@ -578,7 +578,7 @@ static bool8 SetupBagMultistep(void) ._54:\n\ .align 2, 0\n\ ._53:\n\ - .word gUnknown_03000701\n\ + .word sReturnLocation\n\ .word gMain\n\ .word 0x43c\n\ ._19:\n\ @@ -595,15 +595,15 @@ static bool8 SetupBagMultistep(void) bl sub_80A39B8\n\ ldrb r1, [r5]\n\ add r0, r4, #0\n\ - bl sub_80A3AC0\n\ - bl sub_80A3D08\n\ + bl DrawPocketIndicatorDots\n\ + bl UpdateAllBagPockets\n\ ldr r4, ._56 + 12\n\ ldr r0, [r4, #0x10]\n\ ldr r1, [r4, #0x14]\n\ - bl sub_80A3C34\n\ + bl SortItemSlots\n\ ldr r0, [r4, #0x18]\n\ ldr r1, [r4, #0x1c]\n\ - bl sub_80A3C34\n\ + bl SortItemSlots\n\ bl sub_80A3D40\n\ ldr r1, ._56 + 16\n\ mov r0, #0x0\n\ @@ -619,9 +619,9 @@ static bool8 SetupBagMultistep(void) ._56:\n\ .word gUnknown_0203855A\n\ .word gBGTilemapBuffers+0x1000\n\ - .word gUnknown_02038559\n\ + .word sCurrentBagPocket\n\ .word gBagPockets\n\ - .word gUnknown_03005D24\n\ + .word gCurrentBagPocketItemSlots\n\ ._20:\n\ ldr r0, ._59\n\ mov r1, #0x0\n\ @@ -659,9 +659,9 @@ static bool8 SetupBagMultistep(void) .align 2, 0\n\ ._59:\n\ .word 0xffff\n\ - .word gUnknown_03005D10\n\ - .word gUnknown_02038559\n\ - .word gUnknown_03005D24\n\ + .word gBagPocketScrollStates\n\ + .word sCurrentBagPocket\n\ + .word gCurrentBagPocketItemSlots\n\ .word gUnknown_0203855B\n\ .word gUnknown_0203855C\n\ .word gMain\n\ diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 1bce9bc3f..91165a2ee 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -293,7 +293,7 @@ void debug_sub_810B32C() " lsr r2, r0, #0x18\n" " cmp r2, #0x7\n" " bls ._31 @cond_branch\n" - " bl sub_80F7A6C\n" + " bl SetupHipster\n" " mov r2, #0x0\n" " ldr r3, ._34\n" "._32:\n" @@ -313,13 +313,13 @@ void debug_sub_810B32C() "._34:\n" " .word gSaveBlock1+0x2d8c\n" "._27:\n" - " bl sub_80F7A98\n" + " bl SetupTrader\n" " b ._37\n" "._28:\n" - " bl sub_80F7A7C\n" + " bl SetupStoryteller\n" " b ._37\n" "._29:\n" - " bl sub_80F7A88\n" + " bl SetupGiddy\n" "._37:\n" " bl sub_80F83D0\n" " add sp, sp, #0x8\n" @@ -1313,7 +1313,7 @@ static void PrintStoryList(void) Menu_PrintText(gPCText_Cancel, 1, 2 + i * 2); } -static u8 gUnknown_03000748; +u8 gUnknown_03000748; static void Task_StoryListMenu(u8 taskId) { diff --git a/src/field/region_map.c b/src/field/region_map.c index 3bd64a8a0..d6ebf0b9f 100644 --- a/src/field/region_map.c +++ b/src/field/region_map.c @@ -289,7 +289,7 @@ static void SpriteCB_PlayerIconZoomedIn(struct Sprite *); const u8 *GetMapSectionName(u8 *, u16, u16); static void VBlankCB_FlyRegionMap(void); static void CB2_FlyRegionMap(void); -static void sub_80FC244(void (*func)(void)); +void sub_80FC244(void (*func)(void)); static void PrintFlyTargetName(void); static void CreateFlyTargetGraphics(void); static void CreateCityTownFlyTargetIcons(void); @@ -297,7 +297,7 @@ static void CreateSpecialAreaFlyTargetIcons(void); static void SpriteCB_FlyTargetIcons(struct Sprite *); static void sub_80FC5B4(void); static void sub_80FC600(void); -static void sub_80FC69C(void); +void sub_80FC69C(void); void InitRegionMap(struct RegionMap *regionMap, bool8 zoomed) { @@ -1420,7 +1420,7 @@ struct UnknownStruct4 static const u8 *const sEverGrandeCityAreaNames[] = {OtherText_PokeLeague, OtherText_PokeCenter}; -static const struct UnknownStruct4 sUnknown_083E79C0[1] = +const struct UnknownStruct4 gUnknown_083E79C0[1] = { {sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, FLAG_SYS_POKEMON_LEAGUE_FLY}, }; @@ -1598,7 +1598,7 @@ static void CB2_FlyRegionMap(void) BuildOamBuffer(); } -static void sub_80FC244(void (*func)(void)) +void sub_80FC244(void (*func)(void)) { ewram0_3.unk0 = func; ewram0_3.unk4 = 0; @@ -1611,9 +1611,9 @@ static void PrintFlyTargetName(void) u16 i = 0; int zero; - for (i = 0; i < ARRAY_COUNT(sUnknown_083E79C0); i++) + for (i = 0; i < ARRAY_COUNT(gUnknown_083E79C0); i++) { - const struct UnknownStruct4 *r4 = &sUnknown_083E79C0[i]; + const struct UnknownStruct4 *r4 = &gUnknown_083E79C0[i]; if (ewram0_3.regionMap.mapSectionId == r4->mapSectionId) { @@ -1796,7 +1796,7 @@ static void sub_80FC600(void) } } -static void sub_80FC69C(void) +void sub_80FC69C(void) { switch (ewram0_3.unk4) { diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index d84a6e592..c4a4128b3 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -64,7 +64,7 @@ static bool8 sub_8102008(struct Task *task); static bool8 sub_8102034(struct Task *task); static bool8 sub_8102058(struct Task *task); static bool8 sub_8102090(struct Task *task); -static bool8 sub_81020C8(struct Task *task); +bool8 sub_81020C8(struct Task *task); static bool8 sub_81021E0(struct Task *task); static bool8 sub_81021FC(struct Task *task); static bool8 sub_8102264(struct Task *task); @@ -244,7 +244,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) ldr r3, ._1\n\ mov r2, #0x0\n\ strb r2, [r3]\n\ - bl sub_81019B0\n\ + bl PlaySlotMachine_Internal\n\ ldr r0, ._1 + 4\n\ bl SetMainCallback2\n\ pop {r0}\n\ @@ -253,7 +253,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) .align 2, 0\n\ ._1:\n\ .word unk_debug_bss_1+0x1\n\ - .word sub_81018B8+1"); + .word CB2_SlotMachineSetup+1"); } #else void PlaySlotMachine(u8 arg0, MainCallback cb) @@ -274,7 +274,7 @@ void debug_sub_811609C() ldr r3, ._3\n\ mov r2, #0x1\n\ strb r2, [r3]\n\ - bl sub_81019B0\n\ + bl PlaySlotMachine_Internal\n\ ldr r0, ._3 + 4\n\ bl SetMainCallback2\n\ pop {r0}\n\ @@ -283,7 +283,7 @@ void debug_sub_811609C() .align 2, 0\n\ ._3:\n\ .word unk_debug_bss_1+0x1\n\ - .word sub_81018B8+1"); + .word CB2_SlotMachineSetup+1"); } #endif @@ -1412,7 +1412,7 @@ static bool8 sub_8102090(struct Task *task) #if DEBUG __attribute__((naked)) -static bool8 sub_81020C8(struct Task *task) +bool8 sub_81020C8(struct Task *task) { asm("\ push {r4, lr}\n\ @@ -1421,7 +1421,7 @@ static bool8 sub_81020C8(struct Task *task) mov r0, #0xc0\n\ and r0, r0, r1\n\ strb r0, [r4, #0x4]\n\ - bl sub_81027A0\n\ + bl CheckMatch\n\ ldrb r0, [r4, #0xa]\n\ cmp r0, #0\n\ beq ._163 @cond_branch\n\ @@ -1570,7 +1570,7 @@ static bool8 sub_81020C8(struct Task *task) .word 0x270f"); } #else -static bool8 sub_81020C8(struct Task *task) +bool8 sub_81020C8(struct Task *task) { eSlotMachine->unk04 &= 0xc0; CheckMatch(); diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 1e4eace87..17aeb8242 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -255,7 +255,7 @@ void debug_sub_8075C40() " .word 0x4000108\n" " .word 0xc34f\n" " .word 0x40000b0\n" - " .word gUnknown_03004DE0\n" + " .word gScanlineEffectRegBuffers\n" " .word 0xc5ff\n" " .word 0x7fff\n" " .word 0x4000040\n" -- cgit v1.2.3 From 73392181fe47fd0fe5ac3702978307926a442ef4 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 18:08:02 -0600 Subject: resolve more undefined references --- src/field/berry.c | 6 +++--- src/field/field_player_avatar.c | 2 +- src/field/field_weather.c | 2 +- src/field/fldeff_secretpower.c | 2 +- src/field/item_menu.c | 2 +- src/field/mauville_man.c | 2 +- src/field/region_map.c | 4 ++-- src/field/safari_zone.c | 2 +- src/field/start_menu.c | 2 +- src/field/wild_encounter.c | 10 +++++----- 10 files changed, 17 insertions(+), 17 deletions(-) (limited to 'src/field') diff --git a/src/field/berry.c b/src/field/berry.c index 7c6640dc8..d6982479e 100644 --- a/src/field/berry.c +++ b/src/field/berry.c @@ -1780,7 +1780,7 @@ u8* DebugOpenBerryInfo(void) u8 berryTreeId; struct BerryTree *berryTree; - if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript) + if (GetFieldObjectScriptPointerPlayerFacing() != &S_BerryTree) return NULL; berryTreeId = FieldObjectGetBerryTreeId(gSelectedMapObject); @@ -1809,7 +1809,7 @@ void DebugOpenBerryInfo() { asm( " push {r4, r5, r6, r7, lr}\n" - " bl GetFieldObjectScriptPointerForComparison\n" + " bl GetFieldObjectScriptPointerPlayerFacing\n" " ldr r1, ._138\n" " cmp r0, r1\n" " beq ._136 @cond_branch\n" @@ -1818,7 +1818,7 @@ void DebugOpenBerryInfo() "._139:\n" " .align 2, 0\n" "._138:\n" - " .word BerryTreeScript\n" + " .word S_BerryTree\n" "._136:\n" " ldr r0, ._141\n" " ldrb r0, [r0]\n" diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c index db674e52f..795a53d0b 100644 --- a/src/field/field_player_avatar.c +++ b/src/field/field_player_avatar.c @@ -1940,7 +1940,7 @@ void debug_sub_805F2DC() " .word gPlayerAvatar\n" "._429:\n" " add r0, r4, #0\n" - " bl sub_80593F4\n" + " bl PlayerGoSpeed4\n" "._430:\n" " mov r0, #0x1\n" " pop {r4}\n" diff --git a/src/field/field_weather.c b/src/field/field_weather.c index 1a4985892..4a03322d5 100644 --- a/src/field/field_weather.c +++ b/src/field/field_weather.c @@ -1308,7 +1308,7 @@ u8 debug_sub_808560C(void) add r0, r0, r1\n\ ldrb r0, [r0]\n\ strb r0, [r4]\n\ - bl MenuZeroFillScreen\n\ + bl Menu_EraseScreen\n\ mov r0, #0x16\n\ mov r1, #0x1\n\ mov r2, #0x1c\n\ diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c index c200ce2f5..3f539fc6e 100644 --- a/src/field/fldeff_secretpower.c +++ b/src/field/fldeff_secretpower.c @@ -266,7 +266,7 @@ void debug_sub_80D93F4() ._99:\n\ .align 2, 0\n\ ._98:\n\ - .word gScriptResult\n\ + .word gSpecialVar_Result\n\ ._96:\n\ ldr r4, ._102\n\ add r1, r4, #2\n\ diff --git a/src/field/item_menu.c b/src/field/item_menu.c index ce1f18cdb..61774f816 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -436,7 +436,7 @@ static bool8 SetupBagMultistep(void) bl sub_80A34E8\n\ b ._61\n\ ._9:\n\ - bl remove_some_task\n\ + bl ScanlineEffect_Stop\n\ ldr r1, ._27\n\ ldr r0, ._27 + 4\n\ add r1, r1, r0\n\ diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 91165a2ee..51bd9bb35 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -331,7 +331,7 @@ void debug_sub_810B32C() } #endif -static u8 GetCurrentMauvilleOldMan(void) +u8 GetCurrentMauvilleOldMan(void) { struct MauvilleManCommon *common = &gSaveBlock1.mauvilleMan.common; diff --git a/src/field/region_map.c b/src/field/region_map.c index d6ebf0b9f..9194e791d 100644 --- a/src/field/region_map.c +++ b/src/field/region_map.c @@ -288,7 +288,7 @@ static void UpdateIconBlink(struct Sprite *); static void SpriteCB_PlayerIconZoomedIn(struct Sprite *); const u8 *GetMapSectionName(u8 *, u16, u16); static void VBlankCB_FlyRegionMap(void); -static void CB2_FlyRegionMap(void); +void CB2_FlyRegionMap(void); void sub_80FC244(void (*func)(void)); static void PrintFlyTargetName(void); static void CreateFlyTargetGraphics(void); @@ -1591,7 +1591,7 @@ static void VBlankCB_FlyRegionMap(void) TransferPlttBuffer(); } -static void CB2_FlyRegionMap(void) +void CB2_FlyRegionMap(void) { ewram0_3.unk0(); AnimateSprites(); diff --git a/src/field/safari_zone.c b/src/field/safari_zone.c index e9ca3a9f9..2829001f6 100644 --- a/src/field/safari_zone.c +++ b/src/field/safari_zone.c @@ -26,7 +26,7 @@ static void DecrementFeederStepCounters(void); extern u8 gBattleOutcome; EWRAM_DATA u8 gNumSafariBalls = 0; -EWRAM_DATA static u16 gSafariZoneStepCounter = 0; +EWRAM_DATA u16 gSafariZoneStepCounter = 0; EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0}; extern void (*gFieldCallback)(void); diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 17aeb8242..47c7fca05 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -398,7 +398,7 @@ void debug_sub_8075DB4() " cmp r4, #0x2\n" " ble ._24 @cond_branch\n" " add r0, r6, #0\n" - " bl sub_8136088\n" + " bl SetEReaderTrainerChecksum\n" " pop {r4, r5, r6}\n" " pop {r0}\n" " bx r0\n" diff --git a/src/field/wild_encounter.c b/src/field/wild_encounter.c index 08913f40d..10391348d 100644 --- a/src/field/wild_encounter.c +++ b/src/field/wild_encounter.c @@ -3698,13 +3698,13 @@ const u16 gRoute119WaterTileData[] = extern u16 gSpecialVar_Result; extern u8 S_RepelWoreOff[]; -EWRAM_DATA static u8 sWildEncountersDisabled = 0; +EWRAM_DATA u8 sWildEncountersDisabled = 0; EWRAM_DATA static u32 sFeebasRngValue = 0; #define NUM_FEEBAS_SPOTS 6 -static u16 FeebasRandom(void); -static void FeebasSeedRng(u16 seed); +u16 FeebasRandom(void); +void FeebasSeedRng(u16 seed); static bool8 IsWildLevelAllowedByRepel(u8 level); static void ApplyFluteEncounterRateMod(u32 *encRate); @@ -3791,13 +3791,13 @@ static bool8 CheckFeebas(void) return FALSE; } -static u16 FeebasRandom(void) +u16 FeebasRandom(void) { sFeebasRngValue = 12345 + 0x41C64E6D * sFeebasRngValue; return sFeebasRngValue >> 16; } -static void FeebasSeedRng(u16 seed) +void FeebasSeedRng(u16 seed) { sFeebasRngValue = seed; } -- cgit v1.2.3 From 8835353325d9c7eba7664bde5d5a2d4c40c4376d Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 18:24:33 -0600 Subject: resolve more undefined references --- src/field/battle_tower.c | 2 +- src/field/trader.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/field') diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index ab2a818a7..41d5ae9d1 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -259,7 +259,7 @@ static void SaveCurrentWinStreak(void); static void sub_8135CFC(void); static void CheckMonBattleTowerBanlist(u16, u16, u16, u8, u8, u16 *, u16 *, u8 *); static void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *); -static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer); +void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer); static void SetBattleTowerRecordChecksum(struct BattleTowerRecord *); static void ClearBattleTowerRecord(struct BattleTowerRecord *); diff --git a/src/field/trader.c b/src/field/trader.c index b4732ab15..2801df322 100644 --- a/src/field/trader.c +++ b/src/field/trader.c @@ -108,7 +108,7 @@ void CreateAvailableDecorationsMenu(u8 taskId) { if (trader->unk1[i] > DECOR_REGISTEEL_DOLL) { - Menu_PrintText(gOtherText_FiveQuestionsAndSlash, 1, numDecorations * 2 + 2); + Menu_PrintText(gOtherText_FiveQuestions, 1, numDecorations * 2 + 2); } else { -- cgit v1.2.3 From a02a85f477cbf44aa0370de8f40bd8ced77513c2 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 17 Jan 2018 18:56:16 -0600 Subject: get nonmatching debug rom to build --- src/field/field_map_obj.c | 3 + src/field/item_menu.c | 18 +++++ src/field/mauville_man.c | 197 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 217 insertions(+), 1 deletion(-) (limited to 'src/field') 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 -- cgit v1.2.3 From ec84ae801985ac7f83397979bde6a15508eb02ed Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 11:54:49 -0600 Subject: add more debug code --- src/field/party_menu.c | 492 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 489 insertions(+), 3 deletions(-) (limited to 'src/field') diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 75c0cba78..e26b801bc 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -94,9 +94,9 @@ static void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite); static void ItemUseMoveMenu_HandleMoveSelection(u8 taskId); static void ItemUseMoveMenu_HandleCancel(u8 taskId); static bool8 SetupDefaultPartyMenu(void); -static void sub_806B4A8(void); -static void VBlankCB_PartyMenu(void); -static bool8 LoadPartyMenuGraphics(u8 a); +/*static*/ void sub_806B4A8(void); +/*static*/ void VBlankCB_PartyMenu(void); +/*static*/ bool8 LoadPartyMenuGraphics(u8 a); static void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d); static void sub_806BB9C(u8 a); static void sub_806BBEC(u8 a); @@ -493,6 +493,71 @@ extern const u8 gStatusPal_Icons[]; #define WINDOW_RIGHT (29) #endif +#if DEBUG +__attribute__((naked)) +void CB2_PartyMenuMain(void) +{ + asm("\ + push {r4, r5, r6, lr}\n\ + add sp, sp, #0xfffffffc\n\ + bl AnimateSprites\n\ + bl BuildOamBuffer\n\ + ldr r0, ._3\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x4\n\ + ldr r1, ._3 + 4\n\ + add r5, r0, r1\n\ + mov r6, #0x0\n\ +._1:\n\ + ldrb r0, [r5]\n\ + lsl r0, r0, #0x3\n\ + ldrb r1, [r5, #0x1]\n\ + lsl r1, r1, #0x3\n\ + ldr r2, [r5, #0x4]\n\ + lsl r3, r6, #0x5\n\ + mov r4, #0x80\n\ + lsl r4, r4, #0x2\n\ + orr r3, r3, r4\n\ + str r3, [sp]\n\ + mov r3, #0x0\n\ + bl DrawPartyMenuMonText\n\ + add r5, r5, #0x8\n\ + add r6, r6, #0x1\n\ + cmp r6, #0x5\n\ + ble ._1 @cond_branch\n\ + bl RunTasks\n\ + bl UpdatePaletteFade\n\ + ldr r0, ._3 + 8\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + bne ._2 @cond_branch\n\ + ldr r0, ._3 + 12\n\ + ldr r1, ._3 + 16\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + mov r1, #0x2\n\ + str r1, [sp]\n\ + mov r1, #0x1\n\ + mov r2, #0x1\n\ + mov r3, #0x2\n\ + bl debug_sub_8008264\n\ +._2:\n\ + add sp, sp, #0x4\n\ + pop {r4, r5, r6}\n\ + pop {r0}\n\ + bx r0\n\ +._4:\n\ + .align 2, 0\n\ +._3:\n\ + .word gPartyMenuType\n\ + .word PartyMonTextSettings\n\ + .word gLinkOpen\n\ + .word gLink\n\ + .word 0xfbd"); +} +#else void CB2_PartyMenuMain(void) { const struct PartyMonTextSettingsStruct *textSettings; @@ -517,6 +582,7 @@ void CB2_PartyMenuMain(void) RunTasks(); UpdatePaletteFade(); } +#endif void VBlankCB_PartyMenu(void) { @@ -621,6 +687,425 @@ bool8 SetupDefaultPartyMenu(void) return FALSE; } +#if DEBUG +__attribute__((naked)) +bool8 InitPartyMenu(void) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + add sp, sp, #0xfffffff4\n\ + ldr r0, ._55\n\ + ldr r1, ._55 + 4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x11\n\ + bls ._53 @cond_branch\n\ + b ._125\n\ +._53:\n\ + lsl r0, r0, #0x2\n\ + ldr r1, ._55 + 8\n\ + add r0, r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ +._56:\n\ + .align 2, 0\n\ +._55:\n\ + .word gMain\n\ + .word 0x43c\n\ + .word ._57\n\ +._57:\n\ + .word ._58\n\ + .word ._59\n\ + .word ._60\n\ + .word ._61\n\ + .word ._62\n\ + .word ._63\n\ + .word ._64\n\ + .word ._65\n\ + .word ._66\n\ + .word ._67\n\ + .word ._68\n\ + .word ._69\n\ + .word ._70\n\ + .word ._71\n\ + .word ._72\n\ + .word ._73\n\ + .word ._74\n\ + .word ._75\n\ +._58:\n\ + mov r0, #0x0\n\ + bl SetVBlankCallback\n\ + mov r3, #0xc0\n\ + lsl r3, r3, #0x13\n\ + mov r4, #0xc0\n\ + lsl r4, r4, #0x9\n\ + add r2, sp, #0x8\n\ + mov r8, r2\n\ + add r2, sp, #0x4\n\ + mov r6, #0x0\n\ + ldr r1, ._78\n\ + mov r5, #0x80\n\ + lsl r5, r5, #0x5\n\ + ldr r7, ._78 + 4\n\ + mov r0, #0x81\n\ + lsl r0, r0, #0x18\n\ + mov ip, r0\n\ +._76:\n\ + strh r6, [r2]\n\ + add r0, sp, #0x4\n\ + str r0, [r1]\n\ + str r3, [r1, #0x4]\n\ + str r7, [r1, #0x8]\n\ + ldr r0, [r1, #0x8]\n\ + add r3, r3, r5\n\ + sub r4, r4, r5\n\ + cmp r4, r5\n\ + bhi ._76 @cond_branch\n\ + strh r6, [r2]\n\ + add r2, sp, #0x4\n\ + str r2, [r1]\n\ + str r3, [r1, #0x4]\n\ + lsr r0, r4, #0x1\n\ + mov r3, ip\n\ + orr r0, r0, r3\n\ + str r0, [r1, #0x8]\n\ + ldr r0, [r1, #0x8]\n\ + mov r0, #0xe0\n\ + lsl r0, r0, #0x13\n\ + mov r3, #0x80\n\ + lsl r3, r3, #0x3\n\ + mov r4, #0x0\n\ + str r4, [sp, #0x8]\n\ + ldr r2, ._78\n\ + mov r1, r8\n\ + str r1, [r2]\n\ + str r0, [r2, #0x4]\n\ + lsr r0, r3, #0x2\n\ + mov r1, #0x85\n\ + lsl r1, r1, #0x18\n\ + orr r0, r0, r1\n\ + str r0, [r2, #0x8]\n\ + ldr r0, [r2, #0x8]\n\ + mov r1, #0xa0\n\ + lsl r1, r1, #0x13\n\ + add r0, sp, #0x4\n\ + strh r4, [r0]\n\ + str r0, [r2]\n\ + str r1, [r2, #0x4]\n\ + lsr r3, r3, #0x1\n\ + mov r0, #0x81\n\ + lsl r0, r0, #0x18\n\ + orr r3, r3, r0\n\ + str r3, [r2, #0x8]\n\ + ldr r0, [r2, #0x8]\n\ + ldr r2, ._78 + 8\n\ + ldrb r0, [r2, #0x8]\n\ + mov r1, #0x80\n\ + orr r0, r0, r1\n\ + strb r0, [r2, #0x8]\n\ + ldr r1, ._78 + 12\n\ + ldr r2, ._78 + 16\n\ + add r1, r1, r2\n\ + b ._122\n\ +._79:\n\ + .align 2, 0\n\ +._78:\n\ + .word 0x40000d4\n\ + .word 0x81000800\n\ + .word gPaletteFade\n\ + .word gMain\n\ + .word 0x43c\n\ +._59:\n\ + bl ScanlineEffect_Stop\n\ + b ._115\n\ +._60:\n\ + bl sub_806B4A8\n\ + ldr r1, ._82\n\ + mov r2, #0x99\n\ + lsl r2, r2, #0x2\n\ + add r0, r1, r2\n\ + mov r2, #0x0\n\ + strh r2, [r0]\n\ + ldr r3, ._82 + 4\n\ + add r0, r1, r3\n\ + strh r2, [r0]\n\ + mov r0, #0x9a\n\ + lsl r0, r0, #0x2\n\ + add r1, r1, r0\n\ + strh r2, [r1]\n\ + ldr r1, ._82 + 8\n\ + ldr r2, ._82 + 12\n\ + add r1, r1, r2\n\ + b ._122\n\ +._83:\n\ + .align 2, 0\n\ +._82:\n\ + .word +0x201b000\n\ + .word 0x266\n\ + .word gMain\n\ + .word 0x43c\n\ +._61:\n\ + bl ResetSpriteData\n\ + b ._115\n\ +._62:\n\ + ldr r0, ._88\n\ + mov r1, #0x96\n\ + lsl r1, r1, #0x2\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + beq ._86 @cond_branch\n\ + cmp r0, #0x5\n\ + beq ._86 @cond_branch\n\ + bl ResetTasks\n\ +._86:\n\ + ldr r1, ._88 + 4\n\ + ldr r2, ._88 + 8\n\ + add r1, r1, r2\n\ + b ._122\n\ +._89:\n\ + .align 2, 0\n\ +._88:\n\ + .word +0x201b000\n\ + .word gMain\n\ + .word 0x43c\n\ +._63:\n\ + bl FreeAllSpritePalettes\n\ + b ._115\n\ +._64:\n\ + ldr r4, ._92\n\ + mov r1, #0x97\n\ + lsl r1, r1, #0x2\n\ + add r0, r4, r1\n\ + ldr r0, [r0]\n\ + mov r1, #0x0\n\ + bl CreateTask\n\ + mov r2, #0x98\n\ + lsl r2, r2, #0x2\n\ + add r1, r4, r2\n\ + strb r0, [r1]\n\ + b ._115\n\ +._93:\n\ + .align 2, 0\n\ +._92:\n\ + .word +0x201b000\n\ +._65:\n\ + ldr r0, ._95\n\ + bl Text_LoadWindowTemplate\n\ + ldr r1, ._95 + 4\n\ + ldr r0, ._95 + 8\n\ + add r1, r1, r0\n\ + b ._122\n\ +._96:\n\ + .align 2, 0\n\ +._95:\n\ + .word gWindowTemplate_81E6C90\n\ + .word gMain\n\ + .word 0x43c\n\ +._66:\n\ + ldr r4, ._98\n\ + ldr r1, ._98 + 4\n\ + add r0, r4, #0\n\ + bl Text_InitWindowWithTemplate\n\ + add r0, r4, #0\n\ + mov r1, #0x1\n\ + bl MultistepInitWindowTileData\n\ + ldr r1, ._98 + 8\n\ + ldr r2, ._98 + 12\n\ + add r1, r1, r2\n\ + b ._122\n\ +._99:\n\ + .align 2, 0\n\ +._98:\n\ + .word gUnknown_03004210\n\ + .word gWindowTemplate_81E6C90\n\ + .word gMain\n\ + .word 0x43c\n\ +._67:\n\ + bl MultistepLoadFont\n\ + cmp r0, #0\n\ + bne ._100 @cond_branch\n\ + b ._125\n\ +._100:\n\ + ldr r0, ._103\n\ + mov r3, #0x99\n\ + lsl r3, r3, #0x2\n\ + add r0, r0, r3\n\ + mov r1, #0x1\n\ + strh r1, [r0]\n\ + ldr r1, ._103 + 4\n\ + ldr r0, ._103 + 8\n\ + add r1, r1, r0\n\ + b ._122\n\ +._104:\n\ + .align 2, 0\n\ +._103:\n\ + .word +0x201b000\n\ + .word gMain\n\ + .word 0x43c\n\ +._68:\n\ + ldr r0, ._107\n\ + mov r1, #0x99\n\ + lsl r1, r1, #0x2\n\ + add r4, r0, r1\n\ + ldrb r0, [r4]\n\ + bl LoadPartyMenuGraphics\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bne ._105 @cond_branch\n\ + mov r0, #0x0\n\ + strh r0, [r4]\n\ + ldr r1, ._107 + 4\n\ + ldr r2, ._107 + 8\n\ + add r1, r1, r2\n\ + b ._122\n\ +._108:\n\ + .align 2, 0\n\ +._107:\n\ + .word +0x201b000\n\ + .word gMain\n\ + .word 0x43c\n\ +._105:\n\ + ldrh r0, [r4]\n\ + add r0, r0, #0x1\n\ + strh r0, [r4]\n\ + b ._125\n\ +._69:\n\ + bl sub_809D51C\n\ + b ._115\n\ +._70:\n\ + ldr r2, ._113\n\ + ldr r0, ._113 + 4\n\ + mov r1, #0x96\n\ + lsl r1, r1, #0x2\n\ + add r0, r0, r1\n\ + ldrb r1, [r0]\n\ + lsl r0, r1, #0x1\n\ + add r0, r0, r1\n\ + lsl r0, r0, #0x2\n\ + add r2, r2, #0x4\n\ + add r0, r0, r2\n\ + ldr r0, [r0]\n\ + bl gMysteryEventScriptCmdTableEnd+0x3cf4\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x1\n\ + bne ._125 @cond_branch\n\ + ldr r1, ._113 + 8\n\ + ldr r2, ._113 + 12\n\ + add r1, r1, r2\n\ + b ._122\n\ +._114:\n\ + .align 2, 0\n\ +._113:\n\ + .word PartyMenuHandlers\n\ + .word +0x201b000\n\ + .word gMain\n\ + .word 0x43c\n\ +._71:\n\ + ldr r0, ._116\n\ + bl MultistepInitMenuWindowBegin\n\ + b ._115\n\ +._117:\n\ + .align 2, 0\n\ +._116:\n\ + .word gWindowTemplate_81E6CC8\n\ +._72:\n\ + bl MultistepInitMenuWindowContinue\n\ + cmp r0, #0\n\ + beq ._125 @cond_branch\n\ + ldr r1, ._120\n\ + ldr r0, ._120 + 4\n\ + add r1, r1, r0\n\ + b ._122\n\ +._121:\n\ + .align 2, 0\n\ +._120:\n\ + .word gMain\n\ + .word 0x43c\n\ +._73:\n\ + ldr r0, ._123\n\ + ldr r1, ._123 + 4\n\ + add r0, r0, r1\n\ + ldrb r0, [r0]\n\ + mov r1, #0x0\n\ + bl PrintPartyMenuPromptText\n\ + ldr r1, ._123 + 8\n\ + ldr r2, ._123 + 12\n\ + add r1, r1, r2\n\ + b ._122\n\ +._124:\n\ + .align 2, 0\n\ +._123:\n\ + .word +0x201b000\n\ + .word 0x259\n\ + .word gMain\n\ + .word 0x43c\n\ +._74:\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, ._126\n\ + ldrb r1, [r2, #0x8]\n\ + mov r0, #0x7f\n\ + and r0, r0, r1\n\ + strb r0, [r2, #0x8]\n\ +._115:\n\ + ldr r1, ._126 + 4\n\ + ldr r3, ._126 + 8\n\ + add r1, r1, r3\n\ +._122:\n\ + ldrb r0, [r1]\n\ + add r0, r0, #0x1\n\ + strb r0, [r1]\n\ + b ._125\n\ +._127:\n\ + .align 2, 0\n\ +._126:\n\ + .word gPaletteFade\n\ + .word gMain\n\ + .word 0x43c\n\ +._75:\n\ + ldr r0, ._130\n\ + bl SetVBlankCallback\n\ + ldr r0, ._130 + 4\n\ + ldrb r0, [r0]\n\ + cmp r0, #0x1\n\ + bne ._128 @cond_branch\n\ + ldr r0, ._130 + 8\n\ + mov r1, #0x80\n\ + lsl r1, r1, #0x8\n\ + ldr r2, ._130 + 12\n\ + mov r3, #0x2\n\ + bl debug_sub_8008218\n\ +._128:\n\ + mov r0, #0x1\n\ + b ._129\n\ +._131:\n\ + .align 2, 0\n\ +._130:\n\ + .word VBlankCB_PartyMenu+1\n\ + .word gLinkOpen\n\ + .word 0x600e5e0\n\ + .word 0x6007800\n\ +._125:\n\ + mov r0, #0x0\n\ +._129:\n\ + add sp, sp, #0xc\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4, r5, r6, r7}\n\ + pop {r1}\n\ + bx r1"); +} +#else bool8 InitPartyMenu(void) { u8 *addr; @@ -744,6 +1229,7 @@ bool8 InitPartyMenu(void) return FALSE; } +#endif void CB2_InitPartyMenu(void) { -- cgit v1.2.3 From 2ca829a4abda20bb1b053f50a9f1c9b6c8e93223 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 13:06:47 -0600 Subject: add more debug code --- src/field/bike.c | 15 ++--- src/field/secret_base.c | 173 ++++++++++++++++++++++++++++++++++++++++++++++++ src/field/shop.c | 21 ++++++ 3 files changed, 201 insertions(+), 8 deletions(-) (limited to 'src/field') diff --git a/src/field/bike.c b/src/field/bike.c index eb9d56a64..98966ebd4 100644 --- a/src/field/bike.c +++ b/src/field/bike.c @@ -131,14 +131,6 @@ static const struct BikeHistoryInputInfo gAcroBikeTricksList[] = void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys) { -#if DEBUG - if (gUnknown_020297ED && debug_sub_805F2B0(direction)) - { - Bike_SetBikeStill(); - return; - } -#endif - if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE) MovePlayerOnMachBike(direction, newKeys, heldKeys); else @@ -147,6 +139,13 @@ void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys) static void MovePlayerOnMachBike(u8 direction, u16 newKeys, u16 heldKeys) { +#if DEBUG + if (gUnknown_020297ED && debug_sub_805F2B0(direction)) + { + Bike_SetBikeStill(); + return; + } +#endif sMachBikeTransitions[GetMachBikeTransition(&direction)](direction); } diff --git a/src/field/secret_base.c b/src/field/secret_base.c index 728decc9c..1bdc76b23 100644 --- a/src/field/secret_base.c +++ b/src/field/secret_base.c @@ -1648,6 +1648,178 @@ void sub_80BD610(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases sub_80BD328(basesC, 0); } +#if DEBUG +__attribute__((naked)) +void sub_80BD674(void *playerRecords, u32 size, u8 c) +{ + asm("\ + push {r4, r5, r6, r7, lr}\n\ + add r6, r0, #0\n\ + add r5, r1, #0\n\ + lsl r2, r2, #0x18\n\ + lsr r7, r2, #0x18\n\ + ldr r0, ._503\n\ + ldrb r0, [r0]\n\ + cmp r0, #0\n\ + bne ._498 @cond_branch\n\ + mov r0, #0x60\n\ + bl FlagGet\n\ + lsl r0, r0, #0x18\n\ + cmp r0, #0\n\ + bne ._498 @cond_branch\n\ + b ._520\n\ +._498:\n\ + bl GetLinkPlayerCount\n\ + lsl r0, r0, #0x18\n\ + lsr r0, r0, #0x18\n\ + cmp r0, #0x2\n\ + beq ._500 @cond_branch\n\ + cmp r0, #0x3\n\ + beq ._501 @cond_branch\n\ + b ._505\n\ +._504:\n\ + .align 2, 0\n\ +._503:\n\ + .word gUnknown_020297ED\n\ +._500:\n\ + lsl r4, r5, #0x1\n\ + add r0, r6, r4\n\ + mov r1, #0x0\n\ + add r2, r5, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + add r4, r4, r5\n\ + add r4, r6, r4\n\ + add r0, r4, #0\n\ + mov r1, #0x0\n\ + add r2, r5, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + b ._505\n\ +._501:\n\ + lsl r0, r5, #0x1\n\ + add r0, r0, r5\n\ + add r0, r6, r0\n\ + mov r1, #0x0\n\ + add r2, r5, #0\n\ + bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ +._505:\n\ + cmp r7, #0x1\n\ + beq ._506 @cond_branch\n\ + cmp r7, #0x1\n\ + bgt ._507 @cond_branch\n\ + cmp r7, #0\n\ + beq ._508 @cond_branch\n\ + b ._515\n\ +._507:\n\ + cmp r7, #0x2\n\ + beq ._510 @cond_branch\n\ + cmp r7, #0x3\n\ + beq ._511 @cond_branch\n\ + b ._515\n\ +._508:\n\ + add r0, r6, r5\n\ + lsl r2, r5, #0x1\n\ + add r1, r6, r2\n\ + add r2, r2, r5\n\ + add r2, r6, r2\n\ + bl sub_80BD610\n\ + b ._515\n\ +._506:\n\ + lsl r1, r5, #0x1\n\ + add r0, r6, r1\n\ + add r1, r1, r5\n\ + add r1, r6, r1\n\ + add r2, r6, #0\n\ + bl sub_80BD610\n\ + b ._515\n\ +._510:\n\ + lsl r0, r5, #0x1\n\ + add r0, r0, r5\n\ + add r0, r6, r0\n\ + add r2, r6, r5\n\ + add r1, r6, #0\n\ + bl sub_80BD610\n\ + b ._515\n\ +._511:\n\ + add r1, r6, r5\n\ + lsl r2, r5, #0x1\n\ + add r2, r6, r2\n\ + add r0, r6, #0\n\ + bl sub_80BD610\n\ +._515:\n\ + mov r3, #0x1\n\ + ldr r6, ._521\n\ + mov r5, #0x10\n\ + neg r5, r5\n\ + ldr r4, ._521 + 4\n\ +._517:\n\ + lsl r0, r3, #0x2\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x5\n\ + add r0, r0, r6\n\ + add r2, r0, r4\n\ + ldrb r1, [r2]\n\ + lsl r0, r1, #0x1c\n\ + lsr r0, r0, #0x1c\n\ + cmp r0, #0x1\n\ + bne ._516 @cond_branch\n\ + mov r0, #0x3f\n\ + and r0, r0, r1\n\ + mov r1, #0x40\n\ + orr r0, r0, r1\n\ + and r0, r0, r5\n\ + strb r0, [r2]\n\ +._516:\n\ + add r0, r3, #1\n\ + lsl r0, r0, #0x10\n\ + lsr r3, r0, #0x10\n\ + cmp r3, #0x13\n\ + bls ._517 @cond_branch\n\ + bl sub_80BD280\n\ + mov r3, #0x1\n\ + ldr r4, ._521\n\ + ldr r6, ._521 + 4\n\ + add r7, r4, #0\n\ + mov r5, #0x3f\n\ +._519:\n\ + lsl r0, r3, #0x2\n\ + add r0, r0, r3\n\ + lsl r0, r0, #0x5\n\ + add r0, r0, r4\n\ + add r2, r0, r6\n\ + ldrb r1, [r2]\n\ + lsr r0, r1, #0x6\n\ + cmp r0, #0x2\n\ + bne ._518 @cond_branch\n\ + add r0, r5, #0\n\ + and r0, r0, r1\n\ + strb r0, [r2]\n\ +._518:\n\ + add r0, r3, #1\n\ + lsl r0, r0, #0x10\n\ + lsr r3, r0, #0x10\n\ + cmp r3, #0x13\n\ + bls ._519 @cond_branch\n\ + ldr r0, ._521 + 8\n\ + add r2, r7, r0\n\ + ldrh r1, [r2]\n\ + ldr r0, ._521 + 12\n\ + cmp r1, r0\n\ + beq ._520 @cond_branch\n\ + add r0, r1, #1\n\ + strh r0, [r2]\n\ +._520:\n\ + pop {r4, r5, r6, r7}\n\ + pop {r0}\n\ + bx r0\n\ +._522:\n\ + .align 2, 0\n\ +._521:\n\ + .word gSaveBlock1\n\ + .word 0x1a09\n\ + .word 0x1a16\n\ + .word 0xffff"); +} +#else void sub_80BD674(void *playerRecords, u32 size, u8 c) { if (FlagGet(FLAG_RECEIVED_SECRET_POWER)) @@ -1706,3 +1878,4 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) } } } +#endif diff --git a/src/field/shop.c b/src/field/shop.c index 1dc6ba0cd..df271743d 100644 --- a/src/field/shop.c +++ b/src/field/shop.c @@ -1222,6 +1222,27 @@ void CreateDecorationShop2Menu(u16 *itemList) SetShopMenuCallback(EnableBothScriptContexts); } +#if DEBUG +__attribute__((naked)) +void debug_sub_80C2818(void) +{ + asm("\ + push {lr}\n\ + mov r0, #0x0\n\ + bl CreateShopMenu\n\ + ldr r0, ._290\n\ + bl SetShopItemsForSale\n\ + mov r0, #0x0\n\ + bl SetShopMenuCallback\n\ + pop {r0}\n\ + bx r0\n\ +._291:\n\ + .align 2, 0\n\ +._290:\n\ + .word gUnknown_083CC6EB+0x3"); +} +#endif + void sub_80B45B4(u8 taskId, const s16 *list, u16 c) { s16 r5 = gTasks[taskId].data[4] - 1; -- cgit v1.2.3 From 9c2f7c88f0d7e57c99d548870e78185e05cc472a Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 13:54:10 -0600 Subject: add more debug code --- src/field/mauville_man.c | 195 ----------------------------------------------- 1 file changed, 195 deletions(-) (limited to 'src/field') diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index 144c0235a..e41ea1628 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -1392,198 +1392,3 @@ 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 -- cgit v1.2.3 From bcbc9d040ba671df27183bff0b7356da3d9511f6 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 15:19:31 -0600 Subject: finish adding all debug code --- src/field/party_menu.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'src/field') diff --git a/src/field/party_menu.c b/src/field/party_menu.c index e26b801bc..b76710a2d 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -107,6 +107,69 @@ EWRAM_DATA u8 gUnknown_0202E8F6 = 0; EWRAM_DATA u16 gUnknown_0202E8F8 = 0; EWRAM_DATA u8 gPartyMenuType = 0; +#if 0 +const u16 TMHMMoves[] = +{ + 0x5016, + 0x030D, + 0x3DFF, + MOVE_CALM_MIND, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLAR_BEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, +}; +#else const u16 TMHMMoves[] = { MOVE_FOCUS_PUNCH, @@ -168,6 +231,7 @@ const u16 TMHMMoves[] = MOVE_WATERFALL, MOVE_DIVE, }; +#endif //FIXME //const u8 *unrefTileBuffer = gTileBuffer; -- cgit v1.2.3 From b85e23c15a5cbdd88d6c3111d2f54de0a2adac35 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Thu, 18 Jan 2018 17:07:11 -0600 Subject: add some debug data --- src/field/field_effect_helpers.c | 2 -- src/field/party_menu.c | 64 ---------------------------------------- src/field/pokeblock.c | 5 ++++ 3 files changed, 5 insertions(+), 66 deletions(-) (limited to 'src/field') diff --git a/src/field/field_effect_helpers.c b/src/field/field_effect_helpers.c index 165829a55..e2514df90 100644 --- a/src/field/field_effect_helpers.c +++ b/src/field/field_effect_helpers.c @@ -29,8 +29,6 @@ static void sub_81280A0(struct MapObject *, struct Sprite *, struct Sprite *); static void sub_8128174(struct Sprite *); static u32 ShowDisguiseFieldEffect(u8, u8, u8); -const u8 UnusedEggString_8401E28[] = _("タマゴ"); - void SetUpReflection(struct MapObject *mapObject, struct Sprite *sprite, bool8 flag) { struct Sprite *newSprite; diff --git a/src/field/party_menu.c b/src/field/party_menu.c index b76710a2d..e26b801bc 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -107,69 +107,6 @@ EWRAM_DATA u8 gUnknown_0202E8F6 = 0; EWRAM_DATA u16 gUnknown_0202E8F8 = 0; EWRAM_DATA u8 gPartyMenuType = 0; -#if 0 -const u16 TMHMMoves[] = -{ - 0x5016, - 0x030D, - 0x3DFF, - MOVE_CALM_MIND, - MOVE_ROAR, - MOVE_TOXIC, - MOVE_HAIL, - MOVE_BULK_UP, - MOVE_BULLET_SEED, - MOVE_HIDDEN_POWER, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_ICE_BEAM, - MOVE_BLIZZARD, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_GIGA_DRAIN, - MOVE_SAFEGUARD, - MOVE_FRUSTRATION, - MOVE_SOLAR_BEAM, - MOVE_IRON_TAIL, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_EARTHQUAKE, - MOVE_RETURN, - MOVE_DIG, - MOVE_PSYCHIC, - MOVE_SHADOW_BALL, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_REFLECT, - MOVE_SHOCK_WAVE, - MOVE_FLAMETHROWER, - MOVE_SLUDGE_BOMB, - MOVE_SANDSTORM, - MOVE_FIRE_BLAST, - MOVE_ROCK_TOMB, - MOVE_AERIAL_ACE, - MOVE_TORMENT, - MOVE_FACADE, - MOVE_SECRET_POWER, - MOVE_REST, - MOVE_ATTRACT, - MOVE_THIEF, - MOVE_STEEL_WING, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_OVERHEAT, - MOVE_CUT, - MOVE_FLY, - MOVE_SURF, - MOVE_STRENGTH, - MOVE_FLASH, - MOVE_ROCK_SMASH, - MOVE_WATERFALL, - MOVE_DIVE, -}; -#else const u16 TMHMMoves[] = { MOVE_FOCUS_PUNCH, @@ -231,7 +168,6 @@ const u16 TMHMMoves[] = MOVE_WATERFALL, MOVE_DIVE, }; -#endif //FIXME //const u8 *unrefTileBuffer = gTileBuffer; diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c index 73fa53d97..b69d8ac06 100644 --- a/src/field/pokeblock.c +++ b/src/field/pokeblock.c @@ -233,6 +233,11 @@ const struct Pokeblock gUnknown_083F7F9C[] = { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20} }; +#if DEBUG +// possibly continuation of gUnknown_083F7F9C? +asm(".incbin \"baserom_de_debug.gba\", 0x424128, 0x50"); +#endif + // text static void sub_810B674(void) -- cgit v1.2.3 From 1685a7977a652f35998a717395407d625878e20e Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 21:42:14 -0600 Subject: dump some debug baseroms --- src/field/pokeblock.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'src/field') diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c index 43684dfec..b4be44aa2 100644 --- a/src/field/pokeblock.c +++ b/src/field/pokeblock.c @@ -222,17 +222,24 @@ const struct SpriteTemplate gSpriteTemplate_83F7F84 = const struct Pokeblock gUnknown_083F7F9C[] = { - { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20}, - { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20}, - { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20}, - { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20}, - { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20} -}; - + { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20 }, + { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20 }, + { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20 }, + { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20 }, + { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20 }, #if DEBUG -// possibly continuation of gUnknown_083F7F9C? -asm(".incbin \"baserom_de_debug.gba\", 0x424128, 0x50"); + { PBLOCK_CLR_PURPLE, 20, 0, 20, 0, 0, 20 }, + { PBLOCK_CLR_INDIGO, 0, 20, 0, 20, 0, 20 }, + { PBLOCK_CLR_BROWN, 0, 0, 20, 0, 20, 20 }, + { PBLOCK_CLR_LITEBLUE, 20, 0, 0, 20, 0, 20 }, + { PBLOCK_CLR_OLIVE, 0, 20, 0, 0, 20, 20 }, + { PBLOCK_CLR_GRAY, 0, 2, 0, 2, 2, 0 }, + { PBLOCK_CLR_BLACK, 3, 3, 3, 4, 3, 0 }, + { PBLOCK_CLR_WHITE, 1, 1, 1, 1, 1, 1 }, + { PBLOCK_CLR_GOLD, 20, 0, 0, 0, 0, 20 }, + { 0 }, #endif +}; // text -- cgit v1.2.3 From 0f09d2e7046a54c95e2ed4a7ff759d4cd1db87f7 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 22 Jan 2018 22:35:27 -0600 Subject: fix false gMysteryEventScriptCmdTableEnd offsets --- src/field/choose_party.c | 2 +- src/field/field_player_avatar.c | 4 ++-- src/field/party_menu.c | 2 +- src/field/secret_base.c | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/field') diff --git a/src/field/choose_party.c b/src/field/choose_party.c index fd5808fc3..b2d950e35 100644 --- a/src/field/choose_party.c +++ b/src/field/choose_party.c @@ -540,7 +540,7 @@ void debug_sub_81381B4() " add r0, r4, #0\n" " mov r1, #0x0\n" " mov r2, #0x60\n" - " bl gMysteryEventScriptCmdTableEnd+0x5c24\n" + " bl memset\n" " mov r7, #0x0\n" " mov r8, r4\n" " mov r0, #0x4\n" diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c index 85cfdb829..c382db19f 100644 --- a/src/field/field_player_avatar.c +++ b/src/field/field_player_avatar.c @@ -291,7 +291,7 @@ u8 TryDoMetatileBehaviorForcedMovement() " lsr r0, r0, #0x16\n" " add r0, r0, r4\n" " ldr r0, [r0]\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cf4\n" + " bl _call_via_r0\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" "._26:\n" @@ -513,7 +513,7 @@ void MovePlayerNotOnBike(u8 u81, u16 u161) " ldr r2, [r0]\n" " add r0, r5, #0\n" " add r1, r6, #0\n" - " bl gMysteryEventScriptCmdTableEnd+0x3cfc\n" + " bl _call_via_r2\n" "._83:\n" " pop {r4, r5, r6}\n" " pop {r0}\n" diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 4fdb17786..4108145c1 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -989,7 +989,7 @@ bool8 InitPartyMenu(void) add r2, r2, #0x4\n\ add r0, r0, r2\n\ ldr r0, [r0]\n\ - bl gMysteryEventScriptCmdTableEnd+0x3cf4\n\ + bl _call_via_r0\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x18\n\ cmp r0, #0x1\n\ diff --git a/src/field/secret_base.c b/src/field/secret_base.c index 082e8ebc6..01e9711dc 100644 --- a/src/field/secret_base.c +++ b/src/field/secret_base.c @@ -1686,13 +1686,13 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) add r0, r6, r4\n\ mov r1, #0x0\n\ add r2, r5, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + bl memset\n\ add r4, r4, r5\n\ add r4, r6, r4\n\ add r0, r4, #0\n\ mov r1, #0x0\n\ add r2, r5, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + bl memset\n\ b ._505\n\ ._501:\n\ lsl r0, r5, #0x1\n\ @@ -1700,7 +1700,7 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) add r0, r6, r0\n\ mov r1, #0x0\n\ add r2, r5, #0\n\ - bl gMysteryEventScriptCmdTableEnd+0x5c24\n\ + bl memset\n\ ._505:\n\ cmp r7, #0x1\n\ beq ._506 @cond_branch\n\ -- cgit v1.2.3 From e03633d6bc1e1cd155bc258edbb7783020b4bdb7 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 23 Jan 2018 16:55:48 -0600 Subject: fix more false offsets --- src/field/berry.c | 4 +- src/field/field_weather.c | 13 +++--- src/field/slot_machine.c | 104 ++++++++++++++++++++++++---------------------- 3 files changed, 64 insertions(+), 57 deletions(-) (limited to 'src/field') diff --git a/src/field/berry.c b/src/field/berry.c index d6982479e..5c1ecd699 100644 --- a/src/field/berry.c +++ b/src/field/berry.c @@ -1245,8 +1245,8 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) " .word 0x3170\n" " .word 0x47f\n" " .word 0x317c\n" - " .word gSpriteImage_83C172C+0x80\n" - " .word gSpriteImage_83C172C+0x500\n" + " .word gSpriteImage_UnusedCherry\n" + " .word gSpritePalette_UnusedCherry\n" " .word 0x35fc\n" " .word gSaveBlock1+0x3676\n" " .word gUnknown_Debug_839B6CE\n" diff --git a/src/field/field_weather.c b/src/field/field_weather.c index cf96b2e87..c411bf20b 100644 --- a/src/field/field_weather.c +++ b/src/field/field_weather.c @@ -43,7 +43,10 @@ struct WeatherCallbacks EWRAM_DATA struct Weather gWeather = {0}; EWRAM_DATA u8 gFieldEffectPaletteGammaTypes[32] = {0}; -EWRAM_DATA u16 gUnknown_0202FF58 = {0}; +EWRAM_DATA u16 gUnknown_0202FF58 = 0; +#if DEBUG +EWRAM_DATA u16 gUnknown_Debug_20301FE = 0; +#endif static const u8 *sPaletteGammaTypes; @@ -1297,7 +1300,7 @@ u8 debug_sub_8085564(void) .align 2, 0\n\ ._375:\n\ .word gMain\n\ - .word gUnknown_0202FF58+0x2\n\ + .word gUnknown_Debug_20301FE\n\ ._373:\n\ mov r0, #0xe\n\ ._374:\n\ @@ -1333,7 +1336,7 @@ u8 debug_sub_8085564(void) .align 2, 0\n\ ._380:\n\ .word gDebugText_Weather\n\ - .word gUnknown_0202FF58+0x2\n\ + .word gUnknown_Debug_20301FE\n\ .word gMain\n\ ._378:\n\ ldr r0, ._382\n\ @@ -1347,7 +1350,7 @@ u8 debug_sub_8085564(void) ._383:\n\ .align 2, 0\n\ ._382:\n\ - .word gUnknown_0202FF58+0x2"); + .word gUnknown_Debug_20301FE"); } __attribute__((naked)) @@ -1386,7 +1389,7 @@ u8 debug_sub_808560C(void) ._385:\n\ .align 2, 0\n\ ._384:\n\ - .word gUnknown_0202FF58+0x2\n\ + .word gUnknown_Debug_20301FE\n\ .word gWeather\n\ .word gDebugText_Weather\n\ .word gMenuCallback\n\ diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index b5b13c533..99770f6e3 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -226,6 +226,15 @@ static void sub_81064B8(void); static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); static void sub_81065DC(void); +#if DEBUG +__attribute__((section(".bss"))) u8 unk_debug_bss_1_0 = 0; +__attribute__((section(".bss"))) u8 unk_debug_bss_1_1 = 0; +__attribute__((section(".bss"))) u8 unk_debug_bss_1_2 = 0; +__attribute__((section(".bss"))) u8 unk_debug_bss_1_3 = 0; +__attribute__((section(".bss"))) u8 unk_debug_bss_1_4 = 0; +__attribute__((section(".bss"))) u32 unk_debug_bss_1_8 = 0; +#endif + static const struct UnkStruct1 *const gUnknown_083ED048[]; static const u16 gPalette_83EDE24[]; static const u8 gUnknown_083ECD04[][3]; @@ -252,7 +261,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) ._2:\n\ .align 2, 0\n\ ._1:\n\ - .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1_1\n\ .word CB2_SlotMachineSetup+1"); } #else @@ -282,7 +291,7 @@ void debug_sub_811609C() ._4:\n\ .align 2, 0\n\ ._3:\n\ - .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1_1\n\ .word CB2_SlotMachineSetup+1"); } #endif @@ -544,7 +553,7 @@ static void SlotMachineSetup_0_1(void) .word gSaveBlock1\n\ .word 0x494\n\ .word gUnknown_083ECCF8\n\ - .word unk_debug_bss_1+0x1"); + .word unk_debug_bss_1_1"); } #else static void SlotMachineSetup_0_1(void) @@ -744,8 +753,8 @@ static bool8 sub_8101E10(struct Task *task) .align 2, 0\n\ ._70:\n\ .word +0x2000000\n\ - .word unk_debug_bss_1+0x1\n\ - .word unk_debug_bss_1+0x4\n\ + .word unk_debug_bss_1_1\n\ + .word unk_debug_bss_1_4\n\ .word 0x270e"); } #else @@ -794,9 +803,9 @@ static bool8 sub_8101E3C(struct Task *task) ._78:\n\ .align 2, 0\n\ ._77:\n\ - .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1_1\n\ .word gMain\n\ - .word unk_debug_bss_1+0x4\n\ + .word unk_debug_bss_1_4\n\ .word +0x2000000\n\ ._75:\n\ mov r0, #0x0\n\ @@ -1101,7 +1110,7 @@ static bool8 sub_8101FA4(struct Task *task) .align 2, 0\n\ ._119:\n\ .word +0x2000000\n\ - .word unk_debug_bss_1+0x1"); + .word unk_debug_bss_1_1"); } #else static bool8 sub_8101FA4(struct Task *task) @@ -1182,9 +1191,9 @@ static bool8 sub_8102034(struct Task *task) ._128:\n\ .align 2, 0\n\ ._127:\n\ - .word unk_debug_bss_1+0x1\n\ - .word unk_debug_bss_1+0x4\n\ - .word unk_debug_bss_1+0x8\n\ + .word unk_debug_bss_1_1\n\ + .word unk_debug_bss_1_4\n\ + .word unk_debug_bss_1_8\n\ .word +0x2000000"); } #else @@ -1235,9 +1244,9 @@ static bool8 sub_8102058(struct Task *task) ._134:\n\ .align 2, 0\n\ ._133:\n\ - .word unk_debug_bss_1+0x1\n\ - .word unk_debug_bss_1+0x4\n\ - .word unk_debug_bss_1+0x8\n\ + .word unk_debug_bss_1_1\n\ + .word unk_debug_bss_1_4\n\ + .word unk_debug_bss_1_8\n\ .word +0x2000000\n\ ._130:\n\ ldr r0, ._136\n\ @@ -1322,7 +1331,7 @@ static bool8 sub_8102090(struct Task *task) .align 2, 0\n\ ._146:\n\ .word +0x2000000\n\ - .word unk_debug_bss_1\n\ + .word unk_debug_bss_1_0\n\ ._143:\n\ cmp r0, #0x4\n\ beq ._148 @cond_branch\n\ @@ -1821,7 +1830,7 @@ static bool8 sub_8102424(struct Task *task) ._235:\n\ .align 2, 0\n\ ._234:\n\ - .word unk_debug_bss_1+0x1\n\ + .word unk_debug_bss_1_1\n\ .word gSaveBlock1\n\ .word +0x2000000\n\ .word 0x494"); @@ -1980,9 +1989,9 @@ static void sub_8102484(void) .align 2, 0\n\ ._256:\n\ .word +0x2000000\n\ - .word unk_debug_bss_1+0x1\n\ - .word unk_debug_bss_1+0x2\n\ - .word unk_debug_bss_1+0x3\n\ + .word unk_debug_bss_1_1\n\ + .word unk_debug_bss_1_2\n\ + .word unk_debug_bss_1_3\n\ ._245:\n\ add r5, r4, #0\n\ ldrb r1, [r5, #0x4]\n\ @@ -4047,11 +4056,6 @@ static void sub_8104C5C(void) static void LoadSlotMachineWheelOverlay(void); -#if DEBUG -// should be static -__attribute__((section(".bss"))) u8 unk_debug_bss_1[0xC] = { 0 }; -#endif - static void sub_8104CAC(u8 arg0) { u8 i; @@ -5186,8 +5190,8 @@ void debug_sub_811B1C4() ".__2_:\n" " .align 2, 0\n" ".__1_:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5212,8 +5216,8 @@ void debug_sub_811B1EC() ".__4:\n" " .align 2, 0\n" ".__3:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5240,8 +5244,8 @@ void debug_sub_811B210() ".__6:\n" " .align 2, 0\n" ".__5:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5268,8 +5272,8 @@ void debug_sub_811B238() ".__8:\n" " .align 2, 0\n" ".__7:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5296,8 +5300,8 @@ void debug_sub_811B260() ".__10:\n" " .align 2, 0\n" ".__9:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5324,8 +5328,8 @@ void debug_sub_811B288() ".__12:\n" " .align 2, 0\n" ".__11:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5352,8 +5356,8 @@ void debug_sub_811B2B0() ".__14:\n" " .align 2, 0\n" ".__13:\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_0\n" "\n" ); } @@ -5371,7 +5375,7 @@ void debug_sub_811B2D8() ".__16:\n" " .align 2, 0\n" ".__15:\n" - " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1_3\n" "\n" ); } @@ -5650,7 +5654,7 @@ void debug_sub_811B310() ".__30:\n" " .word Str_841B249\n" " .word +0x2000000\n" - " .word unk_debug_bss_1\n" + " .word unk_debug_bss_1_0\n" ".__27:\n" " cmp r0, #0x4\n" " beq .__32 @cond_branch\n" @@ -5765,10 +5769,10 @@ void debug_sub_811B5D0() ".__52:\n" " .align 2, 0\n" ".__51:\n" - " .word unk_debug_bss_1\n" - " .word unk_debug_bss_1+0x2\n" - " .word unk_debug_bss_1+0x3\n" - " .word unk_debug_bss_1+0x4\n" + " .word unk_debug_bss_1_0\n" + " .word unk_debug_bss_1_2\n" + " .word unk_debug_bss_1_3\n" + " .word unk_debug_bss_1_4\n" " .word +0x2000000\n" "\n" ); @@ -5994,11 +5998,11 @@ void debug_sub_811B654() ".__92:\n" " .align 2, 0\n" ".__91:\n" - " .word unk_debug_bss_1+0x2\n" - " .word unk_debug_bss_1+0x3\n" + " .word unk_debug_bss_1_2\n" + " .word unk_debug_bss_1_3\n" " .word Str_841B254\n" " .word _841B270\n" - " .word unk_debug_bss_1+0x4\n" + " .word unk_debug_bss_1_4\n" ".__66:\n" " bl Menu_ProcessInput\n" " lsl r0, r0, #0x18\n" @@ -6027,7 +6031,7 @@ void debug_sub_811B654() ".__97:\n" " .align 2, 0\n" ".__96:\n" - " .word unk_debug_bss_1+0x2\n" + " .word unk_debug_bss_1_2\n" " .word _841B270\n" ".__68:\n" " ldr r2, .__100\n" @@ -6183,7 +6187,7 @@ void debug_sub_811B894() " .word +0x2000000\n" " .word 0x270f\n" " .word Str_841B2B0\n" - " .word unk_debug_bss_1+0x4\n" + " .word unk_debug_bss_1_4\n" " .word Str_841B2D3\n" ".__117:\n" " lsl r0, r2, #0x10\n" @@ -6373,7 +6377,7 @@ void debug_sub_811B894() " .align 2, 0\n" ".__163:\n" " .word Str_841B2E4\n" - " .word unk_debug_bss_1+0x4\n" + " .word unk_debug_bss_1_4\n" " .word +0x2000000\n" " .word Str_841B2BF\n" "\n" -- cgit v1.2.3 From 6437a2acd5b662db779352c24f34116852a1c605 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Tue, 23 Jan 2018 21:44:01 -0600 Subject: decompile kagaya_debug_menu.c --- src/field/slot_machine.c | 50 +++++++----------------------------------------- 1 file changed, 7 insertions(+), 43 deletions(-) (limited to 'src/field') diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 99770f6e3..0d4ebe3f0 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -242,57 +242,21 @@ static const u8 gUnknown_083ECE3A[]; static const u16 gUnknown_083ECE42[]; static const u16 gUnknown_083ECE48[]; -#if DEBUG -__attribute__((naked)) -void PlaySlotMachine(u8 arg0, MainCallback cb) -{ - asm("\ - push {lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - ldr r3, ._1\n\ - mov r2, #0x0\n\ - strb r2, [r3]\n\ - bl PlaySlotMachine_Internal\n\ - ldr r0, ._1 + 4\n\ - bl SetMainCallback2\n\ - pop {r0}\n\ - bx r0\n\ -._2:\n\ - .align 2, 0\n\ -._1:\n\ - .word unk_debug_bss_1_1\n\ - .word CB2_SlotMachineSetup+1"); -} -#else void PlaySlotMachine(u8 arg0, MainCallback cb) { +#if DEBUG + unk_debug_bss_1_1 = 0; +#endif PlaySlotMachine_Internal(arg0, cb); SetMainCallback2(CB2_SlotMachineSetup); } -#endif #if DEBUG -__attribute__((naked)) -void debug_sub_811609C() +void debug_sub_811609C(u8 a, void (*func)(void)) { - asm("\ - push {lr}\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - ldr r3, ._3\n\ - mov r2, #0x1\n\ - strb r2, [r3]\n\ - bl PlaySlotMachine_Internal\n\ - ldr r0, ._3 + 4\n\ - bl SetMainCallback2\n\ - pop {r0}\n\ - bx r0\n\ -._4:\n\ - .align 2, 0\n\ -._3:\n\ - .word unk_debug_bss_1_1\n\ - .word CB2_SlotMachineSetup+1"); + unk_debug_bss_1_1 = 1; + PlaySlotMachine_Internal(a, func); + SetMainCallback2(CB2_SlotMachineSetup); } #endif -- cgit v1.2.3 From 8cce68537704adb0d1d34a96fa977675ad1a0340 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 20:11:06 -0600 Subject: integrate debug functions in field_control_avatar.c --- src/field/field_control_avatar.c | 537 ++++++--------------------------------- 1 file changed, 77 insertions(+), 460 deletions(-) (limited to 'src/field') diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c index 9ac5ae11d..8dc1fed18 100644 --- a/src/field/field_control_avatar.c +++ b/src/field/field_control_avatar.c @@ -4,6 +4,7 @@ #include "bike.h" #include "coord_event_weather.h" #include "daycare.h" +#include "debug.h" #include "event_data.h" #include "field_fadetransition.h" #include "field_player_avatar.h" @@ -35,6 +36,7 @@ extern u16 gSpecialVar_Facing; extern struct LinkPlayerMapObject gLinkPlayerMapObjects[]; extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; +extern u8 gUnknown_020297ED; static EWRAM_DATA u8 gUnknown_0202E8C0 = 0; static EWRAM_DATA u16 gUnknown_0202E8C2 = 0; @@ -82,28 +84,28 @@ extern u8 gUnknown_081C6BDE[]; static void player_get_pos_to_and_height(struct MapPosition *); static void player_get_next_pos_and_height(struct MapPosition *); -/*static*/ u16 cur_mapdata_block_role_at_player_pos(int); -/*static*/ bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c); +static u16 cur_mapdata_block_role_at_player_pos(int); +static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c); static u8 *TryGetScriptOnPressingA(struct MapPosition *position, u8 b, u8 c); static u8 *sub_8068364(struct MapPosition *, u8, u8); static u8 *TryGetInvisibleMapObjectScript(struct MapPosition *, u8, u8 c); static u8 *sub_8068500(struct MapPosition *, u8, u8); static u8 *TryGetFieldMoveScript(struct MapPosition *, u8, u8); -/*static*/ bool32 sub_8068770(void); -/*static*/ bool32 sub_80687A4(void); -/*static*/ bool8 sub_80687E4(struct MapPosition *, u16, u16); +static bool32 sub_8068770(void); +static bool32 sub_80687A4(void); +static bool8 sub_80687E4(struct MapPosition *, u16, u16); static void happiness_algorithm_step(void); static bool8 overworld_poison_step(void); -/*static*/ bool8 is_it_battle_time_3(u16); -/*static*/ bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8); +static bool8 is_it_battle_time_3(u16); +static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *, u16, u8); static bool8 sub_8068B30(u16); static bool8 is_non_stair_warp_tile(u16, u8); static s8 map_warp_check_packed(struct MapHeader *, struct MapPosition *); static void sub_8068C30(struct MapHeader *, s8, struct MapPosition *); -/*static*/ bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8); +static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8); static s8 map_warp_check(struct MapHeader *, u16, u16, u8); static u8 *mapheader_trigger_activate_at(struct MapHeader *, u16, u16, u8); -static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8); +static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8);; void FieldClearPlayerInput(struct FieldInput *input) { @@ -122,230 +124,6 @@ void FieldClearPlayerInput(struct FieldInput *input) input->dpadDirection = 0; } -#if DEBUG -__attribute__((naked)) -void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " mov r7, r9\n" - " mov r6, r8\n" - " push {r6, r7}\n" - " add r4, r0, #0\n" - " lsl r1, r1, #0x10\n" - " lsr r1, r1, #0x10\n" - " mov r8, r1\n" - " lsl r2, r2, #0x10\n" - " lsr r5, r2, #0x10\n" - " ldr r0, ._17\n" - " ldrb r6, [r0, #0x3]\n" - " ldrb r0, [r0, #0x2]\n" - " mov r9, r0\n" - " bl cur_mapdata_block_role_at_player_pos\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " bl MetatileBehavior_IsMoveTile\n" - " lsl r0, r0, #0x18\n" - " lsr r7, r0, #0x18\n" - " cmp r6, #0x2\n" - " bne ._1 @cond_branch\n" - " cmp r7, #0\n" - " beq ._2 @cond_branch\n" - "._1:\n" - " cmp r6, #0\n" - " bne ._9 @cond_branch\n" - "._2:\n" - " bl GetPlayerSpeed\n" - " lsl r0, r0, #0x10\n" - " asr r0, r0, #0x10\n" - " cmp r0, #0x4\n" - " beq ._8 @cond_branch\n" - " mov r0, #0x8\n" - " mov r1, r8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._5 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x4\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._5:\n" - " mov r0, #0x4\n" - " mov r3, r8\n" - " and r0, r0, r3\n" - " cmp r0, #0\n" - " beq ._6 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x8\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._6:\n" - " mov r0, #0x1\n" - " mov r1, r8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._7 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x1\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._7:\n" - " mov r0, #0x2\n" - " mov r3, r8\n" - " and r0, r0, r3\n" - " cmp r0, #0\n" - " beq ._8 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x80\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._8:\n" - " mov r0, #0xf0\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._9 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x10\n" - " orr r0, r0, r1\n" - " mov r1, #0x20\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._9:\n" - " cmp r7, #0\n" - " bne ._14 @cond_branch\n" - " cmp r6, #0x2\n" - " bne ._12 @cond_branch\n" - " mov r0, r9\n" - " cmp r0, #0x2\n" - " bne ._12 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x40\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._12:\n" - " cmp r7, #0\n" - " bne ._14 @cond_branch\n" - " cmp r6, #0x2\n" - " bne ._14 @cond_branch\n" - " ldrb r0, [r4]\n" - " mov r1, #0x2\n" - " orr r0, r0, r1\n" - " strb r0, [r4]\n" - "._14:\n" - " mov r0, #0x40\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._15 @cond_branch\n" - " mov r0, #0x2\n" - " b ._22\n" - "._18:\n" - " .align 2, 0\n" - "._17:\n" - " .word gPlayerAvatar\n" - "._15:\n" - " mov r0, #0x80\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._19 @cond_branch\n" - " mov r0, #0x1\n" - " b ._22\n" - "._19:\n" - " mov r0, #0x20\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._21 @cond_branch\n" - " mov r0, #0x3\n" - " b ._22\n" - "._21:\n" - " mov r0, #0x10\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._23 @cond_branch\n" - " mov r0, #0x4\n" - "._22:\n" - " strb r0, [r4, #0x2]\n" - "._23:\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._25 @cond_branch\n" - " ldrb r2, [r4]\n" - " mov r0, #0x4\n" - " and r0, r0, r2\n" - " cmp r0, #0\n" - " beq ._25 @cond_branch\n" - " ldrb r0, [r4, #0x1]\n" - " mov r1, #0x4\n" - " orr r0, r0, r1\n" - " strb r0, [r4, #0x1]\n" - " mov r0, #0x5\n" - " neg r0, r0\n" - " and r0, r0, r2\n" - " strb r0, [r4]\n" - "._25:\n" - " ldr r0, ._30\n" - " ldrb r0, [r0]\n" - " cmp r0, #0\n" - " beq ._29 @cond_branch\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x1\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._28 @cond_branch\n" - " ldrb r1, [r4, #0x1]\n" - " mov r0, #0x2\n" - " orr r1, r1, r0\n" - " strb r1, [r4, #0x1]\n" - " ldrb r0, [r4]\n" - " mov r2, #0x41\n" - " neg r2, r2\n" - " and r2, r2, r0\n" - " mov r0, #0x3\n" - " neg r0, r0\n" - " and r2, r2, r0\n" - " sub r0, r0, #0xe\n" - " and r2, r2, r0\n" - " sub r0, r0, #0x10\n" - " and r2, r2, r0\n" - " strb r2, [r4]\n" - " mov r0, #0x4\n" - " mov r3, r8\n" - " and r0, r0, r3\n" - " cmp r0, #0\n" - " beq ._28 @cond_branch\n" - " mov r0, #0x1\n" - " orr r1, r1, r0\n" - " strb r1, [r4, #0x1]\n" - " mov r0, #0x9\n" - " neg r0, r0\n" - " and r0, r0, r2\n" - " strb r0, [r4]\n" - "._28:\n" - " mov r0, #0x80\n" - " lsl r0, r0, #0x2\n" - " and r0, r0, r5\n" - " cmp r0, #0\n" - " beq ._29 @cond_branch\n" - " ldrb r0, [r4, #0x1]\n" - " mov r1, #0x8\n" - " orr r0, r0, r1\n" - " strb r0, [r4, #0x1]\n" - "._29:\n" - " pop {r3, r4}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " pop {r4, r5, r6, r7}\n" - " pop {r0}\n" - " bx r0\n" - "._31:\n" - " .align 2, 0\n" - "._30:\n" - " .word gUnknown_020297ED\n" - "\n" - ); -} -#else void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) { u8 r6 = gPlayerAvatar.tileTransitionState; @@ -386,223 +164,33 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) input->dpadDirection = DIR_WEST; else if (heldKeys & DPAD_RIGHT) input->dpadDirection = DIR_EAST; -} -#endif - #if DEBUG -__attribute__((naked)) -int sub_8068024(struct FieldInput *input) -{ - asm( - " push {r4, r5, r6, r7, lr}\n" - " add sp, sp, #0xfffffff8\n" - " add r5, r0, #0\n" - " bl player_get_direction_lower_nybble\n" - " lsl r0, r0, #0x18\n" - " lsr r7, r0, #0x18\n" - " mov r4, sp\n" - " mov r0, sp\n" - " bl player_get_pos_to_and_height\n" - " mov r0, sp\n" - " mov r1, #0x0\n" - " ldsh r0, [r0, r1]\n" - " mov r2, #0x2\n" - " ldsh r1, [r4, r2]\n" - " bl MapGridGetMetatileBehaviorAt\n" - " lsl r0, r0, #0x10\n" - " lsr r4, r0, #0x10\n" - " ldrb r1, [r5, #0x1]\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._33 @cond_branch\n" - " mov r0, sp\n" - " add r1, r4, #0\n" - " bl dive_warp\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " bne ._33 @cond_branch\n" - " b ._63\n" - "._33:\n" - " ldrb r1, [r5, #0x1]\n" - " mov r6, #0x2\n" - " add r0, r6, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._39 @cond_branch\n" - " bl CheckTrainers\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " bne ._36 @cond_branch\n" - " b ._63\n" - "._36:\n" - " ldrb r1, [r5, #0x1]\n" - " add r0, r6, #0\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._39 @cond_branch\n" - " bl mapheader_run_first_tag2_script_list_match\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " bne ._39 @cond_branch\n" - " b ._63\n" - "._39:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x80\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._42 @cond_branch\n" - " bl sub_80687A4\n" - " cmp r0, #0x1\n" - " bne ._42 @cond_branch\n" - " b ._63\n" - "._42:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x40\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._44 @cond_branch\n" - " mov r0, #0x5\n" - " bl IncrementGameStat\n" - " mov r0, sp\n" - " add r1, r4, #0\n" - " add r2, r7, #0\n" - " bl sub_80687E4\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._44:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x2\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._46 @cond_branch\n" - " add r0, r4, #0\n" - " bl is_it_battle_time_3\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._46:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x10\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._49 @cond_branch\n" - " ldrb r0, [r5, #0x2]\n" - " cmp r0, r7\n" - " bne ._49 @cond_branch\n" - " mov r0, sp\n" - " add r1, r4, #0\n" - " add r2, r7, #0\n" - " bl mapheader_run_first_tag2_script_list_match_conditionally\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._49:\n" - " mov r4, sp\n" - " mov r0, sp\n" - " bl player_get_next_pos_and_height\n" - " mov r0, sp\n" - " mov r1, #0x0\n" - " ldsh r0, [r0, r1]\n" - " mov r2, #0x2\n" - " ldsh r1, [r4, r2]\n" - " bl MapGridGetMetatileBehaviorAt\n" - " lsl r0, r0, #0x10\n" - " lsr r4, r0, #0x10\n" - " ldrb r1, [r5]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._51 @cond_branch\n" - " mov r0, sp\n" - " add r1, r4, #0\n" - " add r2, r7, #0\n" - " bl sub_80681F0\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._51:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x20\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._54 @cond_branch\n" - " ldrb r0, [r5, #0x2]\n" - " cmp r0, r7\n" - " bne ._54 @cond_branch\n" - " mov r0, sp\n" - " add r1, r4, #0\n" - " add r2, r7, #0\n" - " bl map_warp_consider_2_to_inside\n" - " lsl r0, r0, #0x18\n" - " lsr r0, r0, #0x18\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._54:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._56 @cond_branch\n" - " bl sub_8068770\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._56:\n" - " ldrb r1, [r5]\n" - " mov r0, #0x4\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._58 @cond_branch\n" - " mov r0, #0x6\n" - " bl PlaySE\n" - " bl sub_8071310\n" - " b ._63\n" - "._58:\n" - " mov r0, #0x8\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._60 @cond_branch\n" - " bl sub_80A6D1C\n" - " cmp r0, #0x1\n" - " beq ._63 @cond_branch\n" - "._60:\n" - " ldrb r1, [r5, #0x1]\n" - " mov r0, #0x1\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " beq ._62 @cond_branch\n" - " bl debug_sub_80888D8\n" - " b ._63\n" - "._62:\n" - " mov r0, #0x4\n" - " and r0, r0, r1\n" - " cmp r0, #0\n" - " bne ._64 @cond_branch\n" - " mov r0, #0x0\n" - " b ._65\n" - "._64:\n" - " mov r0, #0x6\n" - " bl PlaySE\n" - " bl DebugMenu_8077048\n" - "._63:\n" - " mov r0, #0x1\n" - "._65:\n" - " add sp, sp, #0x8\n" - " pop {r4, r5, r6, r7}\n" - " pop {r1}\n" - " bx r1\n" - "\n" - ); + if ((heldKeys & R_BUTTON) && input->pressedStartButton) + { + input->input_field_1_2 = TRUE; + input->pressedStartButton = FALSE; + } + if (gUnknown_020297ED) + { + if (heldKeys & R_BUTTON) + { + input->input_field_1_1 = TRUE; + input->input_field_0_6 = FALSE; + input->input_field_0_1 = FALSE; + input->input_field_0_4 = FALSE; + input->input_field_0_5 = FALSE; + if (newKeys & SELECT_BUTTON) + { + input->input_field_1_0 = TRUE; + input->pressedSelectButton = FALSE; + } + } + if (heldKeys & L_BUTTON) + input->input_field_1_3 = TRUE; + } +#endif } -#else + int sub_8068024(struct FieldInput *input) { struct MapPosition position; @@ -612,10 +200,25 @@ int sub_8068024(struct FieldInput *input) r6 = player_get_direction_lower_nybble(); player_get_pos_to_and_height(&position); r4 = MapGridGetMetatileBehaviorAt(position.x, position.y); - if (CheckTrainers() == TRUE) +#if DEBUG + if (input->input_field_1_3 && dive_warp(&position, r4) == TRUE) return TRUE; - if (mapheader_run_first_tag2_script_list_match() == 1) +#endif + + if ( +#if DEBUG + !input->input_field_1_1 +#endif + && CheckTrainers() == TRUE) return TRUE; + + if ( +#if DEBUG + !input->input_field_1_1 +#endif + && mapheader_run_first_tag2_script_list_match() == 1) + return TRUE; + if (input->pressedBButton && sub_80687A4() == 1) return TRUE; if (input->input_field_0_6) @@ -650,9 +253,23 @@ int sub_8068024(struct FieldInput *input) } if (input->pressedSelectButton && sub_80A6D1C() == TRUE) return TRUE; + +#if DEBUG + if (input->input_field_1_0) + { + debug_sub_80888D8(); + return TRUE; + } + if (input->input_field_1_2) + { + PlaySE(SE_WIN_OPEN); + DebugMenu_8077048(); + return TRUE; + } +#endif + return FALSE; } -#endif static void player_get_pos_to_and_height(struct MapPosition *position) { @@ -672,7 +289,7 @@ static void player_get_next_pos_and_height(struct MapPosition *position) position->height = 0; } -/*static*/ u16 cur_mapdata_block_role_at_player_pos(int unused) +static u16 cur_mapdata_block_role_at_player_pos(int unused) { s16 x, y; @@ -680,7 +297,7 @@ static void player_get_next_pos_and_height(struct MapPosition *position) return MapGridGetMetatileBehaviorAt(x, y); } -/*static*/ bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) +static bool8 sub_80681F0(struct MapPosition *position, u16 b, u8 c) { u8 *script = TryGetScriptOnPressingA(position, b, c); @@ -875,7 +492,7 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2) return NULL; } -/*static*/ bool32 sub_8068770(void) +static bool32 sub_8068770(void) { if (FlagGet(FLAG_BADGE07_GET) && sub_8068F18() == 2) { @@ -885,7 +502,7 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2) return FALSE; } -/*static*/ bool32 sub_80687A4(void) +static bool32 sub_80687A4(void) { if (FlagGet(FLAG_BADGE07_GET) && gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_8068F18() == 1) { @@ -895,7 +512,7 @@ static u8 *TryGetFieldMoveScript(struct MapPosition *unused1, u8 b, u8 unused2) return FALSE; } -/*static*/ bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused) +static bool8 sub_80687E4(struct MapPosition *position, u16 b, u16 unused) { if (mapheader_trigger_activate_at__run_now(position) == TRUE) return TRUE; @@ -1015,7 +632,7 @@ void prev_quest_postbuffer_cursor_backup_reset(void) gUnknown_0202E8C0 = 0; } -/*static*/ bool8 is_it_battle_time_3(u16 a) +static bool8 is_it_battle_time_3(u16 a) { if (gUnknown_0202E8C0 < 4) { @@ -1036,7 +653,7 @@ void prev_quest_postbuffer_cursor_backup_reset(void) } } -/*static*/ bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c) +static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct MapPosition *position, u16 b, u8 c) { s8 r6 = map_warp_check_packed(&gMapHeader, position); @@ -1144,7 +761,7 @@ static void sub_8068C30(struct MapHeader *unused, s8 b, struct MapPosition *posi } } -/*static*/ bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c) +static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 b, u8 c) { s8 r4; @@ -1250,7 +867,7 @@ static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *mapHea return NULL; } -int dive_warp(struct MapPosition *position, u16 b) +bool8 dive_warp(struct MapPosition *position, u16 b) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_805750C(b) == 0) { -- cgit v1.2.3 From d6f6e12490f5d980c66c2de0f767bbaf8da75da1 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Wed, 24 Jan 2018 20:16:00 -0600 Subject: fix build --- src/field/field_control_avatar.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/field') diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c index 8dc1fed18..48eb64dd7 100644 --- a/src/field/field_control_avatar.c +++ b/src/field/field_control_avatar.c @@ -207,16 +207,16 @@ int sub_8068024(struct FieldInput *input) if ( #if DEBUG - !input->input_field_1_1 + !input->input_field_1_1 && #endif - && CheckTrainers() == TRUE) + CheckTrainers() == TRUE) return TRUE; if ( #if DEBUG - !input->input_field_1_1 + !input->input_field_1_1 && #endif - && mapheader_run_first_tag2_script_list_match() == 1) + mapheader_run_first_tag2_script_list_match() == 1) return TRUE; if (input->pressedBButton && sub_80687A4() == 1) -- cgit v1.2.3 From fe400f60b6609d37d2b8a0c2aec75321adc3e95f Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sat, 27 Jan 2018 17:03:40 -0600 Subject: add comments for pool loads in C files --- src/field/berry.c | 100 ++++++++++++++++++------------------- src/field/choose_party.c | 4 +- src/field/field_map_obj.c | 28 +++++------ src/field/field_player_avatar.c | 20 ++++---- src/field/field_weather.c | 26 +++++----- src/field/fldeff_cut.c | 10 ++-- src/field/fldeff_flash.c | 4 +- src/field/fldeff_secretpower.c | 10 ++-- src/field/item_menu.c | 102 ++++++++++++++++++------------------- src/field/mauville_man.c | 6 +-- src/field/party_menu.c | 106 +++++++++++++++++++-------------------- src/field/secret_base.c | 14 +++--- src/field/shop.c | 2 +- src/field/slot_machine.c | 108 ++++++++++++++++++++-------------------- src/field/start_menu.c | 54 ++++++++++---------- 15 files changed, 297 insertions(+), 297 deletions(-) (limited to 'src/field') diff --git a/src/field/berry.c b/src/field/berry.c index 5c1ecd699..588807755 100644 --- a/src/field/berry.c +++ b/src/field/berry.c @@ -1009,7 +1009,7 @@ void debug_sub_80C2B04() " bl sub_80B47D8\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" - " ldr r2, ._1\n" + " ldr r2, ._1 @ gTasks\n" " lsl r1, r0, #0x2\n" " add r1, r1, r0\n" " lsl r1, r1, #0x3\n" @@ -1038,7 +1038,7 @@ void debug_sub_80C2B30() " bl sub_80B47D8\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x18\n" - " ldr r2, ._3\n" + " ldr r2, ._3 @ gTasks\n" " lsl r1, r0, #0x2\n" " add r1, r1, r0\n" " lsl r1, r1, #0x3\n" @@ -1088,8 +1088,8 @@ void debug_sub_80C2BD0() { asm( " push {r4, r5, r6, r7, lr}\n" - " ldr r3, ._11\n" - " ldr r1, ._11 + 4\n" + " ldr r3, ._11 @ gSaveBlock1\n" + " ldr r1, ._11 + 4 @ 0x316c\n" " add r4, r3, r1\n" " ldr r6, [r4]\n" " add r1, r1, #0x4\n" @@ -1100,7 +1100,7 @@ void debug_sub_80C2BD0() " str r1, [r2]\n" " add r4, r0, #0\n" " mov r2, #0x0\n" - " ldr r5, ._11 + 8\n" + " ldr r5, ._11 + 8 @ 0x52b\n" "._10:\n" " add r0, r4, r1\n" " ldrb r0, [r0]\n" @@ -1108,7 +1108,7 @@ void debug_sub_80C2BD0() " add r1, r1, #0x1\n" " cmp r1, r5\n" " bls ._10 @cond_branch\n" - " ldr r1, ._11 + 4\n" + " ldr r1, ._11 + 4 @ 0x316c\n" " add r0, r3, r1\n" " str r6, [r0]\n" " add r1, r1, #0x4\n" @@ -1145,11 +1145,11 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) " lsl r2, r2, #0x18\n" " lsr r2, r2, #0x18\n" " mov r8, r2\n" - " ldr r4, ._16\n" - " ldr r1, ._16 + 4\n" + " ldr r4, ._16 @ gSaveBlock1\n" + " ldr r1, ._16 + 4 @ 0x3160\n" " add r0, r4, r1\n" " add r2, r0, #0\n" - " ldr r1, ._16 + 8\n" + " ldr r1, ._16 + 8 @ gBerries\n" " ldmia r1!, {r5, r6, r7}\n" " stmia r2!, {r5, r6, r7}\n" " ldmia r1!, {r5, r6, r7}\n" @@ -1158,27 +1158,27 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) " str r1, [r2]\n" " add r1, r3, #0\n" " bl StringCopy\n" - " ldr r0, ._16 + 12\n" + " ldr r0, ._16 + 12 @ 0x361c\n" " add r6, r4, r0\n" - " ldr r1, ._16 + 16\n" + " ldr r1, ._16 + 16 @ gUnknown_Debug_083F7F84\n" " add r0, r6, #0\n" " bl StringCopy\n" - " ldr r1, ._16 + 20\n" + " ldr r1, ._16 + 20 @ 0x3649\n" " add r5, r4, r1\n" - " ldr r1, ._16 + 24\n" + " ldr r1, ._16 + 24 @ gUnknown_Debug_083F7F90\n" " add r0, r5, #0\n" " bl StringCopy\n" - " ldr r2, ._16 + 28\n" + " ldr r2, ._16 + 28 @ 0x316c\n" " add r0, r4, r2\n" " str r6, [r0]\n" - " ldr r6, ._16 + 32\n" + " ldr r6, ._16 + 32 @ 0x3170\n" " add r0, r4, r6\n" " str r5, [r0]\n" " mov r2, #0x0\n" - " ldr r6, ._16 + 36\n" - " ldr r7, ._16 + 40\n" + " ldr r6, ._16 + 36 @ 0x47f\n" + " ldr r7, ._16 + 40 @ 0x317c\n" " add r5, r4, r7\n" - " ldr r3, ._16 + 44\n" + " ldr r3, ._16 + 44 @ gSpriteImage_UnusedCherry\n" "._13:\n" " add r0, r2, r5\n" " add r1, r2, r3\n" @@ -1187,9 +1187,9 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) " add r2, r2, #0x1\n" " cmp r2, r6\n" " ble ._13 @cond_branch\n" - " ldr r0, ._16\n" - " ldr r3, ._16 + 48\n" - " ldr r2, ._16 + 52\n" + " ldr r0, ._16 @ gSaveBlock1\n" + " ldr r3, ._16 + 48 @ gSpritePalette_UnusedCherry\n" + " ldr r2, ._16 + 52 @ 0x35fc\n" " add r1, r0, r2\n" " mov r2, #0xf\n" "._14:\n" @@ -1201,8 +1201,8 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) " cmp r2, #0\n" " bge ._14 @cond_branch\n" " mov r2, #0x0\n" - " ldr r5, ._16 + 56\n" - " ldr r3, ._16 + 60\n" + " ldr r5, ._16 + 56 @ gSaveBlock1\n" + " ldr r3, ._16 + 60 @ gUnknown_Debug_839B6CE\n" "._15:\n" " add r0, r2, r5\n" " add r1, r2, r3\n" @@ -1211,15 +1211,15 @@ u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry) " add r2, r2, #0x1\n" " cmp r2, #0x11\n" " ble ._15 @cond_branch\n" - " ldr r5, ._16 + 64\n" + " ldr r5, ._16 + 64 @ 0x3688\n" " add r0, r4, r5\n" " mov r6, r9\n" " strb r6, [r0]\n" - " ldr r7, ._16 + 68\n" + " ldr r7, ._16 + 68 @ 0x3689\n" " add r0, r4, r7\n" " mov r1, r8\n" " strb r1, [r0]\n" - " ldr r2, ._16 + 4\n" + " ldr r2, ._16 + 4 @ 0x3160\n" " add r0, r4, r2\n" " bl debug_sub_80C2BD0\n" " add r5, r5, #0x4\n" @@ -1298,17 +1298,17 @@ void debug_sub_80C2D24() " ldr r6, [sp, #0x18]\n" " ldr r4, [sp, #0x1c]\n" " mov r8, r4\n" - " ldr r5, ._18\n" - " ldr r7, ._18 + 4\n" + " ldr r5, ._18 @ gSaveBlock1\n" + " ldr r7, ._18 + 4 @ 0x3175\n" " add r4, r5, r7\n" " strb r0, [r4]\n" - " ldr r4, ._18 + 8\n" + " ldr r4, ._18 + 8 @ 0x3176\n" " add r0, r5, r4\n" " strb r1, [r0]\n" " add r7, r7, #0x2\n" " add r0, r5, r7\n" " strb r2, [r0]\n" - " ldr r1, ._18 + 12\n" + " ldr r1, ._18 + 12 @ 0x3178\n" " add r0, r5, r1\n" " strb r3, [r0]\n" " add r4, r4, #0x3\n" @@ -1321,7 +1321,7 @@ void debug_sub_80C2D24() " sub r4, r4, #0x19\n" " add r0, r5, r4\n" " bl debug_sub_80C2BD0\n" - " ldr r7, ._18 + 16\n" + " ldr r7, ._18 + 16 @ 0x368c\n" " add r5, r5, r7\n" " str r0, [r5]\n" " pop {r3}\n" @@ -1350,21 +1350,21 @@ bool32 IsEnigmaBerryValid() { asm( " push {r4, lr}\n" - " ldr r4, ._24\n" - " ldr r1, ._24 + 4\n" + " ldr r4, ._24 @ gSaveBlock1\n" + " ldr r1, ._24 + 4 @ 0x3174\n" " add r0, r4, r1\n" " ldrb r0, [r0]\n" " cmp r0, #0\n" " beq ._22 @cond_branch\n" - " ldr r2, ._24 + 8\n" + " ldr r2, ._24 + 8 @ 0x316a\n" " add r0, r4, r2\n" " ldrb r0, [r0]\n" " cmp r0, #0\n" " beq ._22 @cond_branch\n" - " ldr r1, ._24 + 12\n" + " ldr r1, ._24 + 12 @ 0x3160\n" " add r0, r4, r1\n" " bl debug_sub_80C2BD0\n" - " ldr r2, ._24 + 16\n" + " ldr r2, ._24 + 16 @ 0x368c\n" " add r1, r4, r2\n" " ldr r1, [r1]\n" " cmp r0, r1\n" @@ -1810,7 +1810,7 @@ void DebugOpenBerryInfo() asm( " push {r4, r5, r6, r7, lr}\n" " bl GetFieldObjectScriptPointerPlayerFacing\n" - " ldr r1, ._138\n" + " ldr r1, ._138 @ S_BerryTree\n" " cmp r0, r1\n" " beq ._136 @cond_branch\n" " mov r0, #0x0\n" @@ -1820,7 +1820,7 @@ void DebugOpenBerryInfo() "._138:\n" " .word S_BerryTree\n" "._136:\n" - " ldr r0, ._141\n" + " ldr r0, ._141 @ gSelectedMapObject\n" " ldrb r0, [r0]\n" " bl FieldObjectGetBerryTreeId\n" " lsl r0, r0, #0x18\n" @@ -1829,8 +1829,8 @@ void DebugOpenBerryInfo() " bl GetBerryTreeInfo\n" " add r5, r0, #0\n" " mov r2, #0x0\n" - " ldr r7, ._141 + 4\n" - " ldr r4, ._141 + 8\n" + " ldr r7, ._141 + 4 @ 0x1f3\n" + " ldr r4, ._141 + 8 @ gStringVar4\n" " mov r3, #0xff\n" "._140:\n" " add r1, r2, r4\n" @@ -1840,46 +1840,46 @@ void DebugOpenBerryInfo() " add r2, r2, #0x1\n" " cmp r2, r7\n" " ble ._140 @cond_branch\n" - " ldr r0, ._141 + 12\n" + " ldr r0, ._141 + 12 @ gUnknown_Debug_083F7F9D\n" " add r1, r6, #0\n" " mov r2, #0x3\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 16\n" + " ldr r0, ._141 + 16 @ gUnknown_Debug_083F7FA2\n" " ldrb r1, [r5]\n" " mov r2, #0x2\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 20\n" + " ldr r0, ._141 + 20 @ gUnknown_Debug_083F7FA9\n" " ldrb r1, [r5, #0x1]\n" " lsl r1, r1, #0x19\n" " lsr r1, r1, #0x19\n" " mov r2, #0x2\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 24\n" + " ldr r0, ._141 + 24 @ gUnknown_Debug_083F7FB0\n" " ldrh r1, [r5, #0x2]\n" " mov r2, #0x5\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 28\n" + " ldr r0, ._141 + 28 @ gUnknown_Debug_083F7FB7\n" " ldrb r1, [r5, #0x4]\n" " mov r2, #0x2\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 32\n" + " ldr r0, ._141 + 32 @ gUnknown_Debug_083F7FBE\n" " ldrb r1, [r5, #0x5]\n" " lsl r1, r1, #0x1c\n" " lsr r1, r1, #0x1c\n" " mov r2, #0x3\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 36\n" + " ldr r0, ._141 + 36 @ gUnknown_Debug_083F7FC5\n" " ldrb r1, [r5, #0x1]\n" " lsr r1, r1, #0x7\n" " mov r2, #0x1\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 40\n" + " ldr r0, ._141 + 40 @ gUnknown_Debug_083F7FCC\n" " ldrb r1, [r5, #0x5]\n" " lsl r1, r1, #0x1b\n" " lsr r1, r1, #0x1f\n" " mov r2, #0x1\n" " bl debug_sub_80C33FC\n" - " ldr r4, ._141 + 44\n" + " ldr r4, ._141 + 44 @ gUnknown_Debug_083F7FD3\n" " ldrb r1, [r5, #0x5]\n" " lsl r1, r1, #0x1a\n" " lsr r1, r1, #0x1f\n" @@ -1897,7 +1897,7 @@ void DebugOpenBerryInfo() " add r0, r4, #0\n" " mov r2, #0x1\n" " bl debug_sub_80C33FC\n" - " ldr r0, ._141 + 8\n" + " ldr r0, ._141 + 8 @ gStringVar4\n" "._137:\n" " pop {r4, r5, r6, r7}\n" " pop {r1}\n" diff --git a/src/field/choose_party.c b/src/field/choose_party.c index b2d950e35..696f7cf4f 100644 --- a/src/field/choose_party.c +++ b/src/field/choose_party.c @@ -536,7 +536,7 @@ void debug_sub_81381B4() " mov r7, r9\n" " mov r6, r8\n" " push {r6, r7}\n" - " ldr r4, ._189\n" + " ldr r4, ._189 @ gUnknown_02023A00\n" " add r0, r4, #0\n" " mov r1, #0x0\n" " mov r2, #0x60\n" @@ -550,7 +550,7 @@ void debug_sub_81381B4() " mov r0, #0x64\n" " add r1, r7, #0\n" " mul r1, r1, r0\n" - " ldr r0, ._189 + 4\n" + " ldr r0, ._189 + 4 @ gPlayerParty\n" " add r5, r1, r0\n" " add r0, r5, #0\n" " mov r1, #0x41\n" diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c index c255d3013..13d8ebb5b 100644 --- a/src/field/field_map_obj.c +++ b/src/field/field_map_obj.c @@ -1927,7 +1927,7 @@ void npcs_clear_ids_and_state() asm( " push {r4, r5, lr}\n" " mov r4, #0x0\n" - " ldr r5, ._2\n" + " ldr r5, ._2 @ gMapObjects\n" "._1:\n" " lsl r0, r4, #0x3\n" " add r0, r0, r4\n" @@ -1939,7 +1939,7 @@ void npcs_clear_ids_and_state() " lsr r4, r0, #0x18\n" " cmp r4, #0xf\n" " bls ._1 @cond_branch\n" - " ldr r1, ._2 + 4\n" + " ldr r1, ._2 + 4 @ gUnknown_Debug_03004BC0\n" " mov r0, #0x0\n" " strb r0, [r1]\n" " pop {r4, r5}\n" @@ -2086,7 +2086,7 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 " lsl r0, r1, #0x3\n" " add r0, r0, r1\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._40\n" + " ldr r1, ._40 @ gMapObjects\n" " add r4, r0, r1\n" " add r0, r4, #0\n" " bl npc_clear_ids_and_state\n" @@ -2154,7 +2154,7 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 " strb r0, [r4, #0x7]\n" " ldrh r0, [r5, #0xe]\n" " strb r0, [r4, #0x1d]\n" - " ldr r1, ._40 + 4\n" + " ldr r1, ._40 + 4 @ gUnknown_0836DC09\n" " ldrb r0, [r5, #0x9]\n" " add r0, r0, r1\n" " ldrb r1, [r0]\n" @@ -2166,7 +2166,7 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 " bl FieldObjectSetDirection\n" " add r0, r4, #0\n" " bl FieldObjectHandleDynamicGraphicsId\n" - " ldr r1, ._40 + 8\n" + " ldr r1, ._40 + 8 @ gUnknown_0836DBBC\n" " ldrb r0, [r4, #0x6]\n" " add r0, r0, r1\n" " ldrb r0, [r0]\n" @@ -2200,7 +2200,7 @@ u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 " orr r0, r0, r1\n" " strb r0, [r4, #0x19]\n" "._39:\n" - " ldr r1, ._40 + 12\n" + " ldr r1, ._40 + 12 @ gUnknown_Debug_03004BC0\n" " ldrb r0, [r1]\n" " add r0, r0, #0x1\n" " strb r0, [r1]\n" @@ -2487,7 +2487,7 @@ void RemoveFieldObject(struct MapObject *mapObject) " and r1, r1, r2\n" " strb r1, [r0]\n" " bl RemoveFieldObjectInternal\n" - " ldr r1, ._72\n" + " ldr r1, ._72 @ gUnknown_Debug_03004BC0\n" " ldrb r0, [r1]\n" " sub r0, r0, #0x1\n" " strb r0, [r1]\n" @@ -2577,7 +2577,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate * " lsl r4, r0, #0x3\n" " add r0, r4, r0\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._87\n" + " ldr r1, ._87 @ gMapObjects\n" " add r5, r0, r1\n" " ldrb r0, [r5, #0x5]\n" " bl GetFieldObjectGraphicsInfo\n" @@ -2612,7 +2612,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate * " orr r0, r0, r1\n" " strb r0, [r5, #0x1]\n" "._90:\n" - " ldr r1, ._93\n" + " ldr r1, ._93 @ 0xffff\n" " add r0, r1, #0\n" " strh r0, [r7, #0x2]\n" " add r0, r7, #0\n" @@ -2624,11 +2624,11 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate * " lsr r7, r0, #0x18\n" " cmp r7, #0x40\n" " bne ._91 @cond_branch\n" - " ldr r1, ._93 + 4\n" + " ldr r1, ._93 + 4 @ gUnknown_Debug_03004BC0\n" " ldrb r0, [r1]\n" " sub r0, r0, #0x1\n" " strb r0, [r1]\n" - " ldr r0, ._93 + 8\n" + " ldr r0, ._93 + 8 @ gMapObjects\n" " mov r2, r8\n" " add r1, r4, r2\n" " lsl r1, r1, #0x2\n" @@ -2650,7 +2650,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate * " lsl r0, r7, #0x4\n" " add r0, r0, r7\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._96\n" + " ldr r1, ._96 @ gSprites\n" " add r4, r0, r1\n" " mov r1, r9\n" " lsl r0, r1, #0x10\n" @@ -3045,12 +3045,12 @@ void sub_805B710(u16 u161, u16 u162) " lsr r4, r4, #0x10\n" " lsl r5, r5, #0x10\n" " lsr r5, r5, #0x10\n" - " ldr r6, ._153\n" + " ldr r6, ._153 @ gUnknown_Debug_03004BC0\n" " mov r0, #0x0\n" " strb r0, [r6]\n" " bl ClearPlayerAvatarInfo\n" " mov r7, #0x0\n" - " ldr r0, ._153 + 4\n" + " ldr r0, ._153 + 4 @ gMapObjects\n" " mov r8, r0\n" " lsl r4, r4, #0x10\n" " lsl r5, r5, #0x10\n" diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c index c382db19f..a7594372d 100644 --- a/src/field/field_player_avatar.c +++ b/src/field/field_player_avatar.c @@ -266,11 +266,11 @@ u8 TryDoMetatileBehaviorForcedMovement() { asm( " push {r4, lr}\n" - " ldr r0, ._27\n" + " ldr r0, ._27 @ gUnknown_020297ED\n" " ldrb r0, [r0]\n" " cmp r0, #0\n" " beq ._25 @cond_branch\n" - " ldr r0, ._27 + 4\n" + " ldr r0, ._27 + 4 @ gMain\n" " ldrh r1, [r0, #0x2c]\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" @@ -285,7 +285,7 @@ u8 TryDoMetatileBehaviorForcedMovement() " .word gUnknown_020297ED\n" " .word gMain\n" "._25:\n" - " ldr r4, ._29\n" + " ldr r4, ._29 @ gUnknown_0830FBA0\n" " bl GetForcedMovementByMetatileBehavior\n" " lsl r0, r0, #0x18\n" " lsr r0, r0, #0x16\n" @@ -494,7 +494,7 @@ void MovePlayerNotOnBike(u8 u81, u16 u161) " add r5, r2, #0\n" " lsl r1, r1, #0x10\n" " lsr r6, r1, #0x10\n" - " ldr r0, ._84\n" + " ldr r0, ._84 @ gUnknown_020297ED\n" " ldrb r0, [r0]\n" " cmp r0, #0\n" " beq ._82 @cond_branch\n" @@ -504,7 +504,7 @@ void MovePlayerNotOnBike(u8 u81, u16 u161) " cmp r0, #0\n" " bne ._83 @cond_branch\n" "._82:\n" - " ldr r4, ._84 + 4\n" + " ldr r4, ._84 + 4 @ gUnknown_0830FBEC\n" " add r0, r5, #0\n" " bl CheckMovementInputNotOnBike\n" " lsl r0, r0, #0x18\n" @@ -1864,7 +1864,7 @@ void debug_sub_805F2B0() " push {lr}\n" " lsl r0, r0, #0x18\n" " lsr r2, r0, #0x18\n" - " ldr r0, ._422\n" + " ldr r0, ._422 @ gMain\n" " ldrh r1, [r0, #0x2c]\n" " mov r0, #0x80\n" " lsl r0, r0, #0x1\n" @@ -1898,8 +1898,8 @@ void debug_sub_805F2DC() " lsr r4, r0, #0x18\n" " cmp r4, #0\n" " bne ._424 @cond_branch\n" - " ldr r2, ._426\n" - " ldr r0, ._426 + 4\n" + " ldr r2, ._426 @ gMapObjects\n" + " ldr r0, ._426 + 4 @ gPlayerAvatar\n" " ldrb r1, [r0, #0x5]\n" " lsl r0, r1, #0x3\n" " add r0, r0, r1\n" @@ -1915,8 +1915,8 @@ void debug_sub_805F2DC() " .word gMapObjects\n" " .word gPlayerAvatar\n" "._424:\n" - " ldr r2, ._431\n" - " ldr r0, ._431 + 4\n" + " ldr r2, ._431 @ gMapObjects\n" + " ldr r0, ._431 + 4 @ gPlayerAvatar\n" " ldrb r1, [r0, #0x5]\n" " lsl r0, r1, #0x3\n" " add r0, r0, r1\n" diff --git a/src/field/field_weather.c b/src/field/field_weather.c index c411bf20b..fbc5431ae 100644 --- a/src/field/field_weather.c +++ b/src/field/field_weather.c @@ -1264,14 +1264,14 @@ u8 debug_sub_8085564(void) asm("\ push {lr}\n\ mov r2, #0x0\n\ - ldr r0, ._375\n\ + ldr r0, ._375 @ gMain\n\ ldrh r1, [r0, #0x2e]\n\ mov r0, #0x80\n\ lsl r0, r0, #0x1\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._370 @cond_branch\n\ - ldr r1, ._375 + 4\n\ + ldr r1, ._375 + 4 @ gUnknown_Debug_20301FE\n\ ldrb r0, [r1]\n\ add r0, r0, #0x1\n\ strb r0, [r1]\n\ @@ -1283,14 +1283,14 @@ u8 debug_sub_8085564(void) ._371:\n\ mov r2, #0x1\n\ ._370:\n\ - ldr r0, ._375\n\ + ldr r0, ._375 @ gMain\n\ ldrh r1, [r0, #0x2e]\n\ mov r0, #0x80\n\ lsl r0, r0, #0x2\n\ and r0, r0, r1\n\ cmp r0, #0\n\ beq ._372 @cond_branch\n\ - ldr r1, ._375 + 4\n\ + ldr r1, ._375 + 4 @ gUnknown_Debug_20301FE\n\ ldrb r0, [r1]\n\ cmp r0, #0\n\ beq ._373 @cond_branch\n\ @@ -1314,8 +1314,8 @@ u8 debug_sub_8085564(void) mov r2, #0x1c\n\ mov r3, #0x2\n\ bl Menu_BlankWindowRect\n\ - ldr r1, ._380\n\ - ldr r0, ._380 + 4\n\ + ldr r1, ._380 @ gDebugText_Weather\n\ + ldr r0, ._380 + 4 @ gUnknown_Debug_20301FE\n\ ldrb r0, [r0]\n\ lsl r0, r0, #0x2\n\ add r0, r0, r1\n\ @@ -1324,7 +1324,7 @@ u8 debug_sub_8085564(void) mov r2, #0x1\n\ bl Menu_PrintText\n\ ._377:\n\ - ldr r0, ._380 + 8\n\ + ldr r0, ._380 + 8 @ gMain\n\ ldrh r1, [r0, #0x2e]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ @@ -1339,7 +1339,7 @@ u8 debug_sub_8085564(void) .word gUnknown_Debug_20301FE\n\ .word gMain\n\ ._378:\n\ - ldr r0, ._382\n\ + ldr r0, ._382 @ gUnknown_Debug_20301FE\n\ ldrb r0, [r0]\n\ bl ChangeWeather\n\ bl CloseMenu\n\ @@ -1358,8 +1358,8 @@ u8 debug_sub_808560C(void) { asm("\ push {r4, lr}\n\ - ldr r4, ._384\n\ - ldr r0, ._384 + 4\n\ + ldr r4, ._384 @ gUnknown_Debug_20301FE\n\ + ldr r0, ._384 + 4 @ gWeather\n\ mov r1, #0xda\n\ lsl r1, r1, #0x3\n\ add r0, r0, r1\n\ @@ -1371,7 +1371,7 @@ u8 debug_sub_808560C(void) mov r2, #0x1c\n\ mov r3, #0x2\n\ bl Menu_BlankWindowRect\n\ - ldr r1, ._384 + 8\n\ + ldr r1, ._384 + 8 @ gDebugText_Weather\n\ ldrb r0, [r4]\n\ lsl r0, r0, #0x2\n\ add r0, r0, r1\n\ @@ -1379,8 +1379,8 @@ u8 debug_sub_808560C(void) mov r1, #0x17\n\ mov r2, #0x1\n\ bl Menu_PrintText\n\ - ldr r1, ._384 + 12\n\ - ldr r0, ._384 + 16\n\ + ldr r1, ._384 + 12 @ gMenuCallback\n\ + ldr r0, ._384 + 16 @ debug_sub_8085564\n\ str r0, [r1]\n\ mov r0, #0x0\n\ pop {r4}\n\ diff --git a/src/field/fldeff_cut.c b/src/field/fldeff_cut.c index 522fb01d6..5d39b87a9 100644 --- a/src/field/fldeff_cut.c +++ b/src/field/fldeff_cut.c @@ -86,7 +86,7 @@ void debug_sub_80AFEE4() " lsr r0, r0, #0x18\n" " cmp r0, #0x1\n" " bne ._1 @cond_branch\n" - " ldr r1, ._3\n" + " ldr r1, ._3 @ gLastFieldPokeMenuOpened\n" " mov r0, #0x0\n" " strb r0, [r1]\n" " bl sub_80A2634\n" @@ -96,14 +96,14 @@ void debug_sub_80AFEE4() "._3:\n" " .word gLastFieldPokeMenuOpened\n" "._1:\n" - " ldr r4, ._9\n" + " ldr r4, ._9 @ gUnknown_0203923C\n" " add r1, r4, #2\n" " add r0, r4, #0\n" " bl PlayerGetDestCoords\n" " mov r7, #0x0\n" " mov r8, r4\n" "._12:\n" - " ldr r1, ._9 + 4\n" + " ldr r1, ._9 + 4 @ 0xffff\n" " add r0, r7, r1\n" " mov r2, r8\n" " ldrh r2, [r2, #0x2]\n" @@ -112,7 +112,7 @@ void debug_sub_80AFEE4() " lsl r0, r0, #0x10\n" " asr r5, r0, #0x10\n" "._11:\n" - " ldr r1, ._9 + 4\n" + " ldr r1, ._9 + 4 @ 0xffff\n" " add r0, r6, r1\n" " mov r2, r8\n" " ldrh r2, [r2]\n" @@ -147,7 +147,7 @@ void debug_sub_80AFEE4() " cmp r0, #0x1\n" " bne ._7 @cond_branch\n" "._6:\n" - " ldr r1, ._9 + 8\n" + " ldr r1, ._9 + 8 @ gLastFieldPokeMenuOpened\n" " mov r0, #0x0\n" " strb r0, [r1]\n" " bl sub_80A25E8\n" diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c index d8f70200c..8c0f09bd9 100644 --- a/src/field/fldeff_flash.c +++ b/src/field/fldeff_flash.c @@ -77,11 +77,11 @@ void debug_sub_8122080(void) { asm("\ push {lr}\n\ - ldr r0, ._4\n\ + ldr r0, ._4 @ gMapHeader\n\ ldrb r0, [r0, #0x15]\n\ cmp r0, #0x1\n\ bne ._2 @cond_branch\n\ - ldr r0, ._4 + 4\n\ + ldr r0, ._4 + 4 @ 0x828\n\ bl FlagGet\n\ lsl r0, r0, #0x18\n\ cmp r0, #0\n\ diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c index 3f539fc6e..0e91bb55c 100644 --- a/src/field/fldeff_secretpower.c +++ b/src/field/fldeff_secretpower.c @@ -251,7 +251,7 @@ void debug_sub_80D93F4() asm("\ push {r4, lr}\n\ bl sub_80BB63C\n\ - ldr r0, ._98\n\ + ldr r0, ._98 @ gSpecialVar_Result\n\ ldrh r0, [r0]\n\ cmp r0, #0x1\n\ beq ._95 @cond_branch\n\ @@ -268,7 +268,7 @@ void debug_sub_80D93F4() ._98:\n\ .word gSpecialVar_Result\n\ ._96:\n\ - ldr r4, ._102\n\ + ldr r4, ._102 @ gUnknown_0203923C\n\ add r1, r4, #2\n\ add r0, r4, #0\n\ bl GetXYCoordsOneStepInFrontOfPlayer\n\ @@ -286,7 +286,7 @@ void debug_sub_80D93F4() cmp r0, #0x1\n\ bne ._100 @cond_branch\n\ bl sub_80C6264\n\ - ldr r1, ._102 + 4\n\ + ldr r1, ._102 + 4 @ gLastFieldPokeMenuOpened\n\ mov r0, #0x0\n\ strb r0, [r1]\n\ bl sub_80C639C\n\ @@ -304,7 +304,7 @@ void debug_sub_80D93F4() cmp r0, #0x1\n\ bne ._104 @cond_branch\n\ bl sub_80C6264\n\ - ldr r1, ._106\n\ + ldr r1, ._106 @ gLastFieldPokeMenuOpened\n\ mov r0, #0x0\n\ strb r0, [r1]\n\ bl sub_80C64A8\n\ @@ -321,7 +321,7 @@ void debug_sub_80D93F4() cmp r0, #0x1\n\ bne ._108 @cond_branch\n\ bl sub_80C6264\n\ - ldr r1, ._110\n\ + ldr r1, ._110 @ gLastFieldPokeMenuOpened\n\ mov r0, #0x0\n\ strb r0, [r1]\n\ bl sub_80C660C\n\ diff --git a/src/field/item_menu.c b/src/field/item_menu.c index cf3c7ca4b..ae1465fbd 100644 --- a/src/field/item_menu.c +++ b/src/field/item_menu.c @@ -400,8 +400,8 @@ static bool8 SetupBagMultistep(void) asm("\ push {r4, r5, lr}\n\ add sp, sp, #0xfffffffc\n\ - ldr r0, ._5\n\ - ldr r1, ._5 + 4\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\ @@ -409,7 +409,7 @@ static bool8 SetupBagMultistep(void) b ._66\n\ ._3:\n\ lsl r0, r0, #0x2\n\ - ldr r1, ._5 + 8\n\ + ldr r1, ._5 + 8 @ \n\ add r0, r0, r1\n\ ldr r0, [r0]\n\ mov pc, r0\n\ @@ -443,8 +443,8 @@ static bool8 SetupBagMultistep(void) b ._61\n\ ._9:\n\ bl ScanlineEffect_Stop\n\ - ldr r1, ._27\n\ - ldr r0, ._27 + 4\n\ + ldr r1, ._27 @ gMain\n\ + ldr r0, ._27 + 4 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._28:\n\ @@ -457,8 +457,8 @@ static bool8 SetupBagMultistep(void) b ._61\n\ ._11:\n\ bl ClearBGTilemapBuffers\n\ - ldr r0, ._31\n\ - ldr r1, ._31 + 4\n\ + ldr r0, ._31 @ \n\ + ldr r1, ._31 + 4 @ \n\ add r0, r0, r1\n\ mov r1, #0x0\n\ strb r1, [r0]\n\ @@ -470,13 +470,13 @@ static bool8 SetupBagMultistep(void) .word 0x1ffff\n\ ._12:\n\ bl ResetPaletteFade\n\ - ldr r2, ._34\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\n\ - ldr r0, ._34 + 8\n\ + ldr r1, ._34 + 4 @ gMain\n\ + ldr r0, ._34 + 8 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._35:\n\ @@ -495,8 +495,8 @@ static bool8 SetupBagMultistep(void) bne ._37 @cond_branch\n\ b ._66\n\ ._37:\n\ - ldr r1, ._40\n\ - ldr r0, ._40 + 4\n\ + ldr r1, ._40 @ gMain\n\ + ldr r0, ._40 + 4 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._41:\n\ @@ -505,7 +505,7 @@ static bool8 SetupBagMultistep(void) .word gMain\n\ .word 0x43c\n\ ._15:\n\ - ldr r0, ._43\n\ + ldr r0, ._43 @ gWindowTemplate_81E6DFC\n\ bl Text_LoadWindowTemplate\n\ b ._61\n\ ._44:\n\ @@ -513,10 +513,10 @@ static bool8 SetupBagMultistep(void) ._43:\n\ .word gWindowTemplate_81E6DFC\n\ ._16:\n\ - ldr r0, ._46\n\ + ldr r0, ._46 @ gWindowTemplate_81E6DFC\n\ bl MultistepInitMenuWindowBegin\n\ - ldr r1, ._46 + 4\n\ - ldr r0, ._46 + 8\n\ + ldr r1, ._46 + 4 @ gMain\n\ + ldr r0, ._46 + 8 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._47:\n\ @@ -563,7 +563,7 @@ static bool8 SetupBagMultistep(void) mov r0, #0x3\n\ mov r1, #0x2\n\ bl SetVerticalScrollIndicatorPriority\n\ - ldr r0, ._53\n\ + ldr r0, ._53 @ sReturnLocation\n\ ldrb r0, [r0]\n\ sub r0, r0, #0x4\n\ lsl r0, r0, #0x18\n\ @@ -577,8 +577,8 @@ static bool8 SetupBagMultistep(void) mov r1, #0x1\n\ bl SetVerticalScrollIndicators\n\ ._51:\n\ - ldr r1, ._53 + 4\n\ - ldr r0, ._53 + 8\n\ + ldr r1, ._53 + 4 @ gMain\n\ + ldr r0, ._53 + 8 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._54:\n\ @@ -588,11 +588,11 @@ static bool8 SetupBagMultistep(void) .word gMain\n\ .word 0x43c\n\ ._19:\n\ - ldr r1, ._56\n\ + ldr r1, ._56 @ gUnknown_0203855A\n\ mov r0, #0x10\n\ strb r0, [r1]\n\ - ldr r4, ._56 + 4\n\ - ldr r5, ._56 + 8\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\ @@ -603,7 +603,7 @@ static bool8 SetupBagMultistep(void) add r0, r4, #0\n\ bl DrawPocketIndicatorDots\n\ bl UpdateAllBagPockets\n\ - ldr r4, ._56 + 12\n\ + ldr r4, ._56 + 12 @ gBagPockets\n\ ldr r0, [r4, #0x10]\n\ ldr r1, [r4, #0x14]\n\ bl SortItemSlots\n\ @@ -611,7 +611,7 @@ static bool8 SetupBagMultistep(void) ldr r1, [r4, #0x1c]\n\ bl SortItemSlots\n\ bl sub_80A3D40\n\ - ldr r1, ._56 + 16\n\ + ldr r1, ._56 + 16 @ gCurrentBagPocketItemSlots\n\ mov r0, #0x0\n\ ldsb r0, [r5, r0]\n\ lsl r0, r0, #0x3\n\ @@ -629,12 +629,12 @@ static bool8 SetupBagMultistep(void) .word gBagPockets\n\ .word gCurrentBagPocketItemSlots\n\ ._20:\n\ - ldr r0, ._59\n\ + ldr r0, ._59 @ 0xffff\n\ mov r1, #0x0\n\ mov r2, #0x7\n\ bl sub_80A48E8\n\ - ldr r1, ._59 + 4\n\ - ldr r4, ._59 + 8\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\ @@ -642,7 +642,7 @@ static bool8 SetupBagMultistep(void) ldrb r1, [r0, #0x1]\n\ ldrb r0, [r0]\n\ add r1, r1, r0\n\ - ldr r0, ._59 + 12\n\ + ldr r0, ._59 + 12 @ gCurrentBagPocketItemSlots\n\ ldr r0, [r0]\n\ lsl r1, r1, #0x2\n\ add r1, r1, r0\n\ @@ -650,15 +650,15 @@ static bool8 SetupBagMultistep(void) ldsh r0, [r1, r2]\n\ bl ItemListMenu_InitDescription\n\ bl ItemListMenu_InitMenu\n\ - ldr r1, ._59 + 16\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\n\ + ldr r1, ._59 + 20 @ gUnknown_0203855C\n\ mov r0, #0x0\n\ strb r0, [r1]\n\ - ldr r1, ._59 + 24\n\ - ldr r0, ._59 + 28\n\ + ldr r1, ._59 + 24 @ gMain\n\ + ldr r0, ._59 + 28 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._60:\n\ @@ -679,17 +679,17 @@ static bool8 SetupBagMultistep(void) bl sub_80A3740\n\ b ._61\n\ ._22:\n\ - ldr r3, ._63\n\ + ldr r3, ._63 @ 0x4000208\n\ ldrh r2, [r3]\n\ mov r0, #0x0\n\ strh r0, [r3]\n\ - ldr r4, ._63 + 4\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\n\ + ldr r2, ._63 + 8 @ 0x4000004\n\ ldrh r0, [r2]\n\ mov r1, #0x8\n\ orr r0, r0, r1\n\ @@ -701,13 +701,13 @@ static bool8 SetupBagMultistep(void) mov r2, #0x10\n\ mov r3, #0x0\n\ bl BeginNormalPaletteFade\n\ - ldr r2, ._63 + 12\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\n\ - ldr r0, ._63 + 20\n\ + ldr r1, ._63 + 16 @ gMain\n\ + ldr r0, ._63 + 20 @ 0x43c\n\ add r1, r1, r0\n\ b ._62\n\ ._64:\n\ @@ -724,8 +724,8 @@ static bool8 SetupBagMultistep(void) cmp r0, #0x1\n\ beq ._66 @cond_branch\n\ ._61:\n\ - ldr r1, ._67\n\ - ldr r2, ._67 + 4\n\ + ldr r1, ._67 @ gMain\n\ + ldr r2, ._67 + 4 @ 0x43c\n\ add r1, r1, r2\n\ ._62:\n\ ldrb r0, [r1]\n\ @@ -738,23 +738,23 @@ static bool8 SetupBagMultistep(void) .word gMain\n\ .word 0x43c\n\ ._24:\n\ - ldr r0, ._71\n\ + ldr r0, ._71 @ sub_80A3134\n\ bl SetVBlankCallback\n\ - ldr r0, ._71 + 4\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\n\ + ldr r0, ._71 + 8 @ gLinkOpen\n\ ldrb r0, [r0]\n\ cmp r0, #0x1\n\ bne ._69 @cond_branch\n\ - ldr r0, ._71 + 12\n\ + ldr r0, ._71 + 12 @ 0x600f5e0\n\ mov r1, #0x80\n\ lsl r1, r1, #0x8\n\ - ldr r2, ._71 + 16\n\ + ldr r2, ._71 + 16 @ 0x600f800\n\ mov r3, #0x0\n\ bl debug_sub_8008218\n\ ._69:\n\ @@ -1036,7 +1036,7 @@ void debug_sub_80A3714() push {r4, r5, r6, lr}\n\ add sp, sp, #0xfffffff4\n\ mov r5, #0x0\n\ - ldr r2, ._138\n\ + ldr r2, ._138 @ gUnknown_Debug_083EBC68\n\ mov r1, #0x0\n\ ._134:\n\ lsl r0, r5, #0x1\n\ @@ -1059,10 +1059,10 @@ void debug_sub_80A3714() bl ItemId_GetPocket\n\ lsl r0, r0, #0x18\n\ lsr r0, r0, #0x8\n\ - ldr r1, ._138 + 4\n\ + ldr r1, ._138 + 4 @ 0xffff0000\n\ add r0, r0, r1\n\ lsr r0, r0, #0x10\n\ - ldr r1, ._138 + 8\n\ + ldr r1, ._138 + 8 @ gBagPockets\n\ lsl r2, r0, #0x3\n\ add r2, r2, r1\n\ lsl r0, r0, #0x1\n\ @@ -4050,12 +4050,12 @@ static void sub_80A740C(void) bl sub_80A75E4\n\ bl sub_80A7768\n\ bl sub_80A7420\n\ - ldr r0, ._931\n\ + ldr r0, ._931 @ gLinkOpen\n\ ldrb r0, [r0]\n\ cmp r0, #0x1\n\ bne ._930 @cond_branch\n\ - ldr r0, ._931 + 4\n\ - ldr r1, ._931 + 8\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\ diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c index e41ea1628..b42c50513 100644 --- a/src/field/mauville_man.c +++ b/src/field/mauville_man.c @@ -262,7 +262,7 @@ void debug_sub_810B32C() " cmp r0, #0x4\n" " bhi ._37 @cond_branch\n" " lsl r0, r0, #0x2\n" - " ldr r1, ._23\n" + " ldr r1, ._23 @ \n" " add r0, r0, r1\n" " ldr r0, [r0]\n" " mov pc, r0\n" @@ -281,7 +281,7 @@ void debug_sub_810B32C() " b ._37\n" "._26:\n" " mov r2, #0x0\n" - " ldr r3, ._34\n" + " ldr r3, ._34 @ gSaveBlock1\n" "._31:\n" " mov r0, sp\n" " add r1, r0, r2\n" @@ -295,7 +295,7 @@ void debug_sub_810B32C() " bls ._31 @cond_branch\n" " bl SetupHipster\n" " mov r2, #0x0\n" - " ldr r3, ._34\n" + " ldr r3, ._34 @ gSaveBlock1\n" "._32:\n" " add r1, r2, r3\n" " mov r4, sp\n" diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 4108145c1..66e7e2319 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -502,12 +502,12 @@ void CB2_PartyMenuMain(void) add sp, sp, #0xfffffffc\n\ bl AnimateSprites\n\ bl BuildOamBuffer\n\ - ldr r0, ._3\n\ + ldr r0, ._3 @ gPartyMenuType\n\ ldrb r1, [r0]\n\ lsl r0, r1, #0x1\n\ add r0, r0, r1\n\ lsl r0, r0, #0x4\n\ - ldr r1, ._3 + 4\n\ + ldr r1, ._3 + 4 @ PartyMonTextSettings\n\ add r5, r0, r1\n\ mov r6, #0x0\n\ ._1:\n\ @@ -529,12 +529,12 @@ void CB2_PartyMenuMain(void) ble ._1 @cond_branch\n\ bl RunTasks\n\ bl UpdatePaletteFade\n\ - ldr r0, ._3 + 8\n\ + ldr r0, ._3 + 8 @ gLinkOpen\n\ ldrb r0, [r0]\n\ cmp r0, #0x1\n\ bne ._2 @cond_branch\n\ - ldr r0, ._3 + 12\n\ - ldr r1, ._3 + 16\n\ + ldr r0, ._3 + 12 @ gLink\n\ + ldr r1, ._3 + 16 @ 0xfbd\n\ add r0, r0, r1\n\ ldrb r0, [r0]\n\ mov r1, #0x2\n\ @@ -696,8 +696,8 @@ bool8 InitPartyMenu(void) mov r7, r8\n\ push {r7}\n\ add sp, sp, #0xfffffff4\n\ - ldr r0, ._55\n\ - ldr r1, ._55 + 4\n\ + ldr r0, ._55 @ gMain\n\ + ldr r1, ._55 + 4 @ 0x43c\n\ add r0, r0, r1\n\ ldrb r0, [r0]\n\ cmp r0, #0x11\n\ @@ -705,7 +705,7 @@ bool8 InitPartyMenu(void) b ._125\n\ ._53:\n\ lsl r0, r0, #0x2\n\ - ldr r1, ._55 + 8\n\ + ldr r1, ._55 + 8 @ \n\ add r0, r0, r1\n\ ldr r0, [r0]\n\ mov pc, r0\n\ @@ -745,10 +745,10 @@ bool8 InitPartyMenu(void) mov r8, r2\n\ add r2, sp, #0x4\n\ mov r6, #0x0\n\ - ldr r1, ._78\n\ + ldr r1, ._78 @ 0x40000d4\n\ mov r5, #0x80\n\ lsl r5, r5, #0x5\n\ - ldr r7, ._78 + 4\n\ + ldr r7, ._78 + 4 @ 0x81000800\n\ mov r0, #0x81\n\ lsl r0, r0, #0x18\n\ mov ip, r0\n\ @@ -778,7 +778,7 @@ bool8 InitPartyMenu(void) lsl r3, r3, #0x3\n\ mov r4, #0x0\n\ str r4, [sp, #0x8]\n\ - ldr r2, ._78\n\ + ldr r2, ._78 @ 0x40000d4\n\ mov r1, r8\n\ str r1, [r2]\n\ str r0, [r2, #0x4]\n\ @@ -800,13 +800,13 @@ bool8 InitPartyMenu(void) orr r3, r3, r0\n\ str r3, [r2, #0x8]\n\ ldr r0, [r2, #0x8]\n\ - ldr r2, ._78 + 8\n\ + ldr r2, ._78 + 8 @ gPaletteFade\n\ ldrb r0, [r2, #0x8]\n\ mov r1, #0x80\n\ orr r0, r0, r1\n\ strb r0, [r2, #0x8]\n\ - ldr r1, ._78 + 12\n\ - ldr r2, ._78 + 16\n\ + ldr r1, ._78 + 12 @ gMain\n\ + ldr r2, ._78 + 16 @ 0x43c\n\ add r1, r1, r2\n\ b ._122\n\ ._79:\n\ @@ -822,21 +822,21 @@ bool8 InitPartyMenu(void) b ._115\n\ ._60:\n\ bl sub_806B4A8\n\ - ldr r1, ._82\n\ + ldr r1, ._82 @ \n\ mov r2, #0x99\n\ lsl r2, r2, #0x2\n\ add r0, r1, r2\n\ mov r2, #0x0\n\ strh r2, [r0]\n\ - ldr r3, ._82 + 4\n\ + ldr r3, ._82 + 4 @ \n\ add r0, r1, r3\n\ strh r2, [r0]\n\ mov r0, #0x9a\n\ lsl r0, r0, #0x2\n\ add r1, r1, r0\n\ strh r2, [r1]\n\ - ldr r1, ._82 + 8\n\ - ldr r2, ._82 + 12\n\ + ldr r1, ._82 + 8 @ \n\ + ldr r2, ._82 + 12 @ \n\ add r1, r1, r2\n\ b ._122\n\ ._83:\n\ @@ -850,7 +850,7 @@ bool8 InitPartyMenu(void) bl ResetSpriteData\n\ b ._115\n\ ._62:\n\ - ldr r0, ._88\n\ + ldr r0, ._88 @ \n\ mov r1, #0x96\n\ lsl r1, r1, #0x2\n\ add r0, r0, r1\n\ @@ -861,8 +861,8 @@ bool8 InitPartyMenu(void) beq ._86 @cond_branch\n\ bl ResetTasks\n\ ._86:\n\ - ldr r1, ._88 + 4\n\ - ldr r2, ._88 + 8\n\ + ldr r1, ._88 + 4 @ \n\ + ldr r2, ._88 + 8 @ \n\ add r1, r1, r2\n\ b ._122\n\ ._89:\n\ @@ -875,7 +875,7 @@ bool8 InitPartyMenu(void) bl FreeAllSpritePalettes\n\ b ._115\n\ ._64:\n\ - ldr r4, ._92\n\ + ldr r4, ._92 @ \n\ mov r1, #0x97\n\ lsl r1, r1, #0x2\n\ add r0, r4, r1\n\ @@ -892,10 +892,10 @@ bool8 InitPartyMenu(void) ._92:\n\ .word +0x201b000\n\ ._65:\n\ - ldr r0, ._95\n\ + ldr r0, ._95 @ gWindowTemplate_81E6C90\n\ bl Text_LoadWindowTemplate\n\ - ldr r1, ._95 + 4\n\ - ldr r0, ._95 + 8\n\ + ldr r1, ._95 + 4 @ gMain\n\ + ldr r0, ._95 + 8 @ 0x43c\n\ add r1, r1, r0\n\ b ._122\n\ ._96:\n\ @@ -905,15 +905,15 @@ bool8 InitPartyMenu(void) .word gMain\n\ .word 0x43c\n\ ._66:\n\ - ldr r4, ._98\n\ - ldr r1, ._98 + 4\n\ + ldr r4, ._98 @ gUnknown_03004210\n\ + ldr r1, ._98 + 4 @ gWindowTemplate_81E6C90\n\ add r0, r4, #0\n\ bl Text_InitWindowWithTemplate\n\ add r0, r4, #0\n\ mov r1, #0x1\n\ bl MultistepInitWindowTileData\n\ - ldr r1, ._98 + 8\n\ - ldr r2, ._98 + 12\n\ + ldr r1, ._98 + 8 @ gMain\n\ + ldr r2, ._98 + 12 @ 0x43c\n\ add r1, r1, r2\n\ b ._122\n\ ._99:\n\ @@ -929,14 +929,14 @@ bool8 InitPartyMenu(void) bne ._100 @cond_branch\n\ b ._125\n\ ._100:\n\ - ldr r0, ._103\n\ + ldr r0, ._103 @ \n\ mov r3, #0x99\n\ lsl r3, r3, #0x2\n\ add r0, r0, r3\n\ mov r1, #0x1\n\ strh r1, [r0]\n\ - ldr r1, ._103 + 4\n\ - ldr r0, ._103 + 8\n\ + ldr r1, ._103 + 4 @ \n\ + ldr r0, ._103 + 8 @ \n\ add r1, r1, r0\n\ b ._122\n\ ._104:\n\ @@ -946,7 +946,7 @@ bool8 InitPartyMenu(void) .word gMain\n\ .word 0x43c\n\ ._68:\n\ - ldr r0, ._107\n\ + ldr r0, ._107 @ \n\ mov r1, #0x99\n\ lsl r1, r1, #0x2\n\ add r4, r0, r1\n\ @@ -958,8 +958,8 @@ bool8 InitPartyMenu(void) bne ._105 @cond_branch\n\ mov r0, #0x0\n\ strh r0, [r4]\n\ - ldr r1, ._107 + 4\n\ - ldr r2, ._107 + 8\n\ + ldr r1, ._107 + 4 @ \n\ + ldr r2, ._107 + 8 @ \n\ add r1, r1, r2\n\ b ._122\n\ ._108:\n\ @@ -977,8 +977,8 @@ bool8 InitPartyMenu(void) bl sub_809D51C\n\ b ._115\n\ ._70:\n\ - ldr r2, ._113\n\ - ldr r0, ._113 + 4\n\ + ldr r2, ._113 @ PartyMenuHandlers\n\ + ldr r0, ._113 + 4 @ \n\ mov r1, #0x96\n\ lsl r1, r1, #0x2\n\ add r0, r0, r1\n\ @@ -994,8 +994,8 @@ bool8 InitPartyMenu(void) lsr r0, r0, #0x18\n\ cmp r0, #0x1\n\ bne ._125 @cond_branch\n\ - ldr r1, ._113 + 8\n\ - ldr r2, ._113 + 12\n\ + ldr r1, ._113 + 8 @ \n\ + ldr r2, ._113 + 12 @ \n\ add r1, r1, r2\n\ b ._122\n\ ._114:\n\ @@ -1006,7 +1006,7 @@ bool8 InitPartyMenu(void) .word gMain\n\ .word 0x43c\n\ ._71:\n\ - ldr r0, ._116\n\ + ldr r0, ._116 @ gWindowTemplate_81E6CC8\n\ bl MultistepInitMenuWindowBegin\n\ b ._115\n\ ._117:\n\ @@ -1017,8 +1017,8 @@ bool8 InitPartyMenu(void) bl MultistepInitMenuWindowContinue\n\ cmp r0, #0\n\ beq ._125 @cond_branch\n\ - ldr r1, ._120\n\ - ldr r0, ._120 + 4\n\ + ldr r1, ._120 @ gMain\n\ + ldr r0, ._120 + 4 @ 0x43c\n\ add r1, r1, r0\n\ b ._122\n\ ._121:\n\ @@ -1027,14 +1027,14 @@ bool8 InitPartyMenu(void) .word gMain\n\ .word 0x43c\n\ ._73:\n\ - ldr r0, ._123\n\ - ldr r1, ._123 + 4\n\ + ldr r0, ._123 @ \n\ + ldr r1, ._123 + 4 @ \n\ add r0, r0, r1\n\ ldrb r0, [r0]\n\ mov r1, #0x0\n\ bl PrintPartyMenuPromptText\n\ - ldr r1, ._123 + 8\n\ - ldr r2, ._123 + 12\n\ + ldr r1, ._123 + 8 @ \n\ + ldr r2, ._123 + 12 @ \n\ add r1, r1, r2\n\ b ._122\n\ ._124:\n\ @@ -1052,14 +1052,14 @@ bool8 InitPartyMenu(void) mov r2, #0x10\n\ mov r3, #0x0\n\ bl BeginNormalPaletteFade\n\ - ldr r2, ._126\n\ + ldr r2, ._126 @ gPaletteFade\n\ ldrb r1, [r2, #0x8]\n\ mov r0, #0x7f\n\ and r0, r0, r1\n\ strb r0, [r2, #0x8]\n\ ._115:\n\ - ldr r1, ._126 + 4\n\ - ldr r3, ._126 + 8\n\ + ldr r1, ._126 + 4 @ gMain\n\ + ldr r3, ._126 + 8 @ 0x43c\n\ add r1, r1, r3\n\ ._122:\n\ ldrb r0, [r1]\n\ @@ -1073,16 +1073,16 @@ bool8 InitPartyMenu(void) .word gMain\n\ .word 0x43c\n\ ._75:\n\ - ldr r0, ._130\n\ + ldr r0, ._130 @ VBlankCB_PartyMenu\n\ bl SetVBlankCallback\n\ - ldr r0, ._130 + 4\n\ + ldr r0, ._130 + 4 @ gLinkOpen\n\ ldrb r0, [r0]\n\ cmp r0, #0x1\n\ bne ._128 @cond_branch\n\ - ldr r0, ._130 + 8\n\ + ldr r0, ._130 + 8 @ 0x600e5e0\n\ mov r1, #0x80\n\ lsl r1, r1, #0x8\n\ - ldr r2, ._130 + 12\n\ + ldr r2, ._130 + 12 @ 0x6007800\n\ mov r3, #0x2\n\ bl debug_sub_8008218\n\ ._128:\n\ diff --git a/src/field/secret_base.c b/src/field/secret_base.c index 01e9711dc..8b67a2cd9 100644 --- a/src/field/secret_base.c +++ b/src/field/secret_base.c @@ -1658,7 +1658,7 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) add r5, r1, #0\n\ lsl r2, r2, #0x18\n\ lsr r7, r2, #0x18\n\ - ldr r0, ._503\n\ + ldr r0, ._503 @ gUnknown_020297ED\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ bne ._498 @cond_branch\n\ @@ -1747,10 +1747,10 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) bl sub_80BD610\n\ ._515:\n\ mov r3, #0x1\n\ - ldr r6, ._521\n\ + ldr r6, ._521 @ gSaveBlock1\n\ mov r5, #0x10\n\ neg r5, r5\n\ - ldr r4, ._521 + 4\n\ + ldr r4, ._521 + 4 @ 0x1a09\n\ ._517:\n\ lsl r0, r3, #0x2\n\ add r0, r0, r3\n\ @@ -1776,8 +1776,8 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) bls ._517 @cond_branch\n\ bl sub_80BD280\n\ mov r3, #0x1\n\ - ldr r4, ._521\n\ - ldr r6, ._521 + 4\n\ + ldr r4, ._521 @ gSaveBlock1\n\ + ldr r6, ._521 + 4 @ 0x1a09\n\ add r7, r4, #0\n\ mov r5, #0x3f\n\ ._519:\n\ @@ -1799,10 +1799,10 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) lsr r3, r0, #0x10\n\ cmp r3, #0x13\n\ bls ._519 @cond_branch\n\ - ldr r0, ._521 + 8\n\ + ldr r0, ._521 + 8 @ 0x1a16\n\ add r2, r7, r0\n\ ldrh r1, [r2]\n\ - ldr r0, ._521 + 12\n\ + ldr r0, ._521 + 12 @ 0xffff\n\ cmp r1, r0\n\ beq ._520 @cond_branch\n\ add r0, r1, #1\n\ diff --git a/src/field/shop.c b/src/field/shop.c index 852ccddda..fdee31178 100644 --- a/src/field/shop.c +++ b/src/field/shop.c @@ -1247,7 +1247,7 @@ void debug_sub_80C2818(void) push {lr}\n\ mov r0, #0x0\n\ bl CreateShopMenu\n\ - ldr r0, ._290\n\ + ldr r0, ._290 @ gMartBuyNoSellOptionList\n\ bl SetShopItemsForSale\n\ mov r0, #0x0\n\ bl SetShopMenuCallback\n\ diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c index 0d4ebe3f0..2c97c146d 100644 --- a/src/field/slot_machine.c +++ b/src/field/slot_machine.c @@ -402,7 +402,7 @@ static void SlotMachineSetup_0_1(void) mov r5, r8\n\ push {r5, r6, r7}\n\ bl sub_81019EC\n\ - ldr r5, ._43\n\ + ldr r5, ._43 @ \n\ mov r4, #0x0\n\ strb r4, [r5]\n\ strb r4, [r5, #0x2]\n\ @@ -415,8 +415,8 @@ static void SlotMachineSetup_0_1(void) strh r4, [r5, #0x8]\n\ strb r0, [r5, #0xa]\n\ strb r0, [r5, #0xb]\n\ - ldr r0, ._43 + 4\n\ - ldr r1, ._43 + 8\n\ + ldr r0, ._43 + 4 @ \n\ + ldr r1, ._43 + 8 @ \n\ add r0, r0, r1\n\ ldrh r0, [r0]\n\ strh r0, [r5, #0xc]\n\ @@ -445,7 +445,7 @@ static void SlotMachineSetup_0_1(void) strh r0, [r1]\n\ mov r7, #0x0\n\ add r6, r5, #0\n\ - ldr r2, ._43 + 12\n\ + ldr r2, ._43 + 12 @ \n\ mov sl, r2\n\ mov r0, #0x1c\n\ add r0, r0, r6\n\ @@ -493,7 +493,7 @@ static void SlotMachineSetup_0_1(void) cmp r7, #0x2\n\ bls ._41 @cond_branch\n\ bl debug_sub_811B5D0\n\ - ldr r0, ._43 + 16\n\ + ldr r0, ._43 + 16 @ \n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._42 @cond_branch\n\ @@ -690,21 +690,21 @@ static bool8 sub_8101E10(struct Task *task) push {lr}\n\ mov r0, #0x0\n\ bl sub_8104CAC\n\ - ldr r2, ._70\n\ + ldr r2, ._70 @ \n\ mov r0, #0x5\n\ strb r0, [r2]\n\ - ldr r0, ._70 + 4\n\ + ldr r0, ._70 + 4 @ \n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._67 @cond_branch\n\ - ldr r0, ._70 + 8\n\ + ldr r0, ._70 + 8 @ \n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ bne ._69 @cond_branch\n\ ._67:\n\ mov r0, #0xc\n\ ldsh r1, [r2, r0]\n\ - ldr r0, ._70 + 12\n\ + ldr r0, ._70 + 12 @ \n\ cmp r1, r0\n\ ble ._69 @cond_branch\n\ mov r0, #0x17\n\ @@ -740,17 +740,17 @@ static bool8 sub_8101E3C(struct Task *task) { asm("\ push {r4, r5, lr}\n\ - ldr r0, ._77\n\ + ldr r0, ._77 @ unk_debug_bss_1_1\n\ ldrb r1, [r0]\n\ add r3, r0, #0\n\ - ldr r5, ._77 + 4\n\ + ldr r5, ._77 + 4 @ gMain\n\ cmp r1, #0\n\ beq ._76 @cond_branch\n\ - ldr r2, ._77 + 8\n\ + ldr r2, ._77 + 8 @ unk_debug_bss_1_4\n\ ldrb r0, [r2]\n\ cmp r0, #0\n\ beq ._76 @cond_branch\n\ - ldr r4, ._77 + 12\n\ + ldr r4, ._77 + 12 @ \n\ mov r1, #0xc\n\ ldsh r0, [r4, r1]\n\ cmp r0, #0x3\n\ @@ -796,7 +796,7 @@ static bool8 sub_8101E3C(struct Task *task) cmp r0, #0\n\ beq ._81 @cond_branch\n\ bl debug_sub_811B620\n\ - ldr r1, ._83\n\ + ldr r1, ._83 @ \n\ mov r0, #0x1d\n\ strb r0, [r1]\n\ b ._102\n\ @@ -812,7 +812,7 @@ static bool8 sub_8101E3C(struct Task *task) beq ._85 @cond_branch\n\ mov r0, #0x0\n\ bl sub_8104AB8\n\ - ldr r1, ._87\n\ + ldr r1, ._87 @ \n\ mov r0, #0x8\n\ strb r0, [r1]\n\ b ._102\n\ @@ -826,7 +826,7 @@ static bool8 sub_8101E3C(struct Task *task) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._89 @cond_branch\n\ - ldr r2, ._94\n\ + ldr r2, ._94 @ \n\ mov r3, #0xc\n\ ldsh r0, [r2, r3]\n\ sub r0, r0, #0x3\n\ @@ -852,7 +852,7 @@ static bool8 sub_8101E3C(struct Task *task) cmp r0, #0x2\n\ ble ._92 @cond_branch\n\ ._91:\n\ - ldr r1, ._94\n\ + ldr r1, ._94 @ \n\ ldrh r0, [r1, #0xc]\n\ sub r0, r0, #0x3\n\ ldrh r3, [r1, #0x12]\n\ @@ -877,7 +877,7 @@ static bool8 sub_8101E3C(struct Task *task) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._98 @cond_branch\n\ - ldr r4, ._103\n\ + ldr r4, ._103 @ \n\ mov r1, #0xc\n\ ldsh r0, [r4, r1]\n\ cmp r0, #0\n\ @@ -893,11 +893,11 @@ static bool8 sub_8101E3C(struct Task *task) add r0, r0, #0x1\n\ strh r0, [r4, #0x12]\n\ ._98:\n\ - ldr r0, ._103\n\ + ldr r0, ._103 @ \n\ mov r2, #0x12\n\ ldsh r1, [r0, r2]\n\ add r2, r0, #0\n\ - ldr r5, ._103 + 4\n\ + ldr r5, ._103 + 4 @ \n\ cmp r1, #0x2\n\ bgt ._99 @cond_branch\n\ cmp r1, #0\n\ @@ -1029,7 +1029,7 @@ static bool8 sub_8101FA4(struct Task *task) bl sub_8102DEC\n\ mov r0, #0x0\n\ strh r0, [r4, #0x8]\n\ - ldr r4, ._115\n\ + ldr r4, ._115 @ \n\ ldrb r1, [r4, #0x4]\n\ mov r0, #0x20\n\ and r0, r0, r1\n\ @@ -1048,7 +1048,7 @@ static bool8 sub_8101FA4(struct Task *task) mov r0, #0xb\n\ ._114:\n\ strb r0, [r4]\n\ - ldr r4, ._119\n\ + ldr r4, ._119 @ \n\ mov r0, #0x8\n\ strh r0, [r4, #0x1a]\n\ ldrb r0, [r4, #0xa]\n\ @@ -1057,7 +1057,7 @@ static bool8 sub_8101FA4(struct Task *task) bl dp15_jump_random_unknown\n\ strh r0, [r4, #0x1a]\n\ ._117:\n\ - ldr r0, ._119 + 4\n\ + ldr r0, ._119 + 4 @ \n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._118 @cond_branch\n\ @@ -1128,15 +1128,15 @@ static bool8 sub_8102034(struct Task *task) asr r1, r1, #0x10\n\ cmp r1, #0x1d\n\ ble ._124 @cond_branch\n\ - ldr r0, ._127\n\ + ldr r0, ._127 @ unk_debug_bss_1_1\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._126 @cond_branch\n\ - ldr r0, ._127 + 4\n\ + ldr r0, ._127 + 4 @ unk_debug_bss_1_4\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._126 @cond_branch\n\ - ldr r4, ._127 + 8\n\ + ldr r4, ._127 + 8 @ unk_debug_bss_1_8\n\ bl Random\n\ mov r1, #0x1f\n\ and r1, r1, r0\n\ @@ -1144,7 +1144,7 @@ static bool8 sub_8102034(struct Task *task) str r1, [r4]\n\ ._126:\n\ bl sub_81024F0\n\ - ldr r1, ._127 + 12\n\ + ldr r1, ._127 + 12 @ \n\ mov r0, #0xc\n\ strb r0, [r1]\n\ ._124:\n\ @@ -1178,15 +1178,15 @@ static bool8 sub_8102058(struct Task *task) { asm("\ push {r4, r5, lr}\n\ - ldr r0, ._133\n\ + ldr r0, ._133 @ unk_debug_bss_1_1\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._130 @cond_branch\n\ - ldr r0, ._133 + 4\n\ + ldr r0, ._133 + 4 @ unk_debug_bss_1_4\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._130 @cond_branch\n\ - ldr r5, ._133 + 8\n\ + ldr r5, ._133 + 8 @ unk_debug_bss_1_8\n\ ldr r0, [r5]\n\ sub r0, r0, #0x1\n\ str r0, [r5]\n\ @@ -1194,7 +1194,7 @@ static bool8 sub_8102058(struct Task *task) bne ._135 @cond_branch\n\ mov r0, #0x18\n\ bl PlaySE\n\ - ldr r4, ._133 + 12\n\ + ldr r4, ._133 + 12 @ \n\ ldrb r0, [r4, #0x18]\n\ bl sub_8102E1C\n\ ldrb r0, [r4, #0x18]\n\ @@ -1213,7 +1213,7 @@ static bool8 sub_8102058(struct Task *task) .word unk_debug_bss_1_8\n\ .word +0x2000000\n\ ._130:\n\ - ldr r0, ._136\n\ + ldr r0, ._136 @ gMain\n\ ldrh r1, [r0, #0x2e]\n\ mov r0, #0x1\n\ and r0, r0, r1\n\ @@ -1221,7 +1221,7 @@ static bool8 sub_8102058(struct Task *task) beq ._135 @cond_branch\n\ mov r0, #0x18\n\ bl PlaySE\n\ - ldr r4, ._136 + 4\n\ + ldr r4, ._136 + 4 @ \n\ ldrb r0, [r4, #0x18]\n\ bl sub_8102E1C\n\ ldrb r0, [r4, #0x18]\n\ @@ -1260,7 +1260,7 @@ static bool8 sub_8102090(struct Task *task) { asm("\ push {r4, lr}\n\ - ldr r4, ._146\n\ + ldr r4, ._146 @ \n\ ldrb r0, [r4, #0x18]\n\ bl sub_8102E40\n\ lsl r0, r0, #0x18\n\ @@ -1278,7 +1278,7 @@ static bool8 sub_8102090(struct Task *task) ble ._161 @cond_branch\n\ mov r0, #0xe\n\ strb r0, [r4]\n\ - ldr r0, ._146 + 4\n\ + ldr r0, ._146 + 4 @ \n\ ldrb r0, [r0]\n\ cmp r0, #0x8\n\ beq ._140 @cond_branch\n\ @@ -1389,7 +1389,7 @@ bool8 sub_81020C8(struct Task *task) { asm("\ push {r4, lr}\n\ - ldr r4, ._165\n\ + ldr r4, ._165 @ \n\ ldrb r1, [r4, #0x4]\n\ mov r0, #0xc0\n\ and r0, r0, r1\n\ @@ -1411,7 +1411,7 @@ bool8 sub_81020C8(struct Task *task) ._163:\n\ bl debug_sub_811B894\n\ ._164:\n\ - ldr r4, ._171\n\ + ldr r4, ._171 @ \n\ ldrh r0, [r4, #0x8]\n\ cmp r0, #0\n\ beq ._167 @cond_branch\n\ @@ -1440,7 +1440,7 @@ bool8 sub_81020C8(struct Task *task) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._169 @cond_branch\n\ - ldr r0, ._171 + 4\n\ + ldr r0, ._171 + 4 @ \n\ bl PlayFanfare\n\ mov r0, #0x6\n\ bl sub_8104CAC\n\ @@ -1455,7 +1455,7 @@ bool8 sub_81020C8(struct Task *task) and r0, r0, r1\n\ cmp r0, #0\n\ beq ._173 @cond_branch\n\ - ldr r0, ._175\n\ + ldr r0, ._175 @ 0x185\n\ bl PlayFanfare\n\ mov r0, #0x5\n\ bl sub_8104CAC\n\ @@ -1471,7 +1471,7 @@ bool8 sub_81020C8(struct Task *task) mov r0, #0x2\n\ bl sub_8104CAC\n\ ._174:\n\ - ldr r1, ._183\n\ + ldr r1, ._183 @ \n\ ldrh r3, [r1, #0x8]\n\ mov r0, #0xe0\n\ lsl r0, r0, #0x1\n\ @@ -1528,7 +1528,7 @@ bool8 sub_81020C8(struct Task *task) strh r0, [r4, #0x10]\n\ lsl r0, r0, #0x10\n\ asr r0, r0, #0x10\n\ - ldr r1, ._186\n\ + ldr r1, ._186 @ 0x270f\n\ cmp r0, r1\n\ ble ._185 @cond_branch\n\ strh r1, [r4, #0x10]\n\ @@ -1765,14 +1765,14 @@ static bool8 sub_8102424(struct Task *task) asm("\ push {lr}\n\ add sp, sp, #0xfffffffc\n\ - ldr r0, ._234\n\ + ldr r0, ._234 @ unk_debug_bss_1_1\n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ bne ._233 @cond_branch\n\ - ldr r0, ._234 + 4\n\ - ldr r1, ._234 + 8\n\ + ldr r0, ._234 + 4 @ gSaveBlock1\n\ + ldr r1, ._234 + 8 @ \n\ ldrh r1, [r1, #0xc]\n\ - ldr r2, ._234 + 12\n\ + ldr r2, ._234 + 12 @ \n\ add r0, r0, r2\n\ strh r1, [r0]\n\ ._233:\n\ @@ -1783,7 +1783,7 @@ static bool8 sub_8102424(struct Task *task) mov r2, #0x0\n\ mov r3, #0x10\n\ bl BeginNormalPaletteFade\n\ - ldr r1, ._234 + 8\n\ + ldr r1, ._234 + 8 @ \n\ ldrb r0, [r1]\n\ add r0, r0, #0x1\n\ strb r0, [r1]\n\ @@ -1828,7 +1828,7 @@ static bool8 debug_sub_8116E74(struct Task *task) lsl r0, r0, #0x18\n\ cmp r0, #0\n\ beq ._239 @cond_branch\n\ - ldr r1, ._240\n\ + ldr r1, ._240 @ \n\ mov r0, #0x5\n\ strb r0, [r1]\n\ ._239:\n\ @@ -1848,22 +1848,22 @@ static void sub_8102484(void) { asm("\ push {r4, r5, r6, lr}\n\ - ldr r0, ._256\n\ + ldr r0, ._256 @ \n\ ldrb r2, [r0, #0xa]\n\ add r4, r0, #0\n\ cmp r2, #0\n\ beq ._242 @cond_branch\n\ b ._270\n\ ._242:\n\ - ldr r0, ._256 + 4\n\ + ldr r0, ._256 + 4 @ \n\ ldrb r0, [r0]\n\ cmp r0, #0\n\ beq ._245 @cond_branch\n\ - ldr r3, ._256 + 8\n\ + ldr r3, ._256 + 8 @ \n\ ldrb r0, [r3]\n\ cmp r0, #0\n\ beq ._245 @cond_branch\n\ - ldr r0, ._256 + 12\n\ + ldr r0, ._256 + 12 @ \n\ ldrb r1, [r0]\n\ strb r1, [r4, #0x4]\n\ strb r2, [r3]\n\ @@ -1972,7 +1972,7 @@ static void sub_8102484(void) lsr r6, r0, #0x18\n\ cmp r6, #0x3\n\ beq ._260 @cond_branch\n\ - ldr r1, ._271\n\ + ldr r1, ._271 @ gUnknown_083ECE42\n\ lsl r0, r6, #0x1\n\ add r0, r0, r1\n\ ldrb r1, [r0]\n\ @@ -2016,8 +2016,8 @@ static void sub_8102484(void) lsr r6, r0, #0x18\n\ cmp r6, #0x5\n\ beq ._270 @cond_branch\n\ - ldr r4, ._271 + 4\n\ - ldr r1, ._271 + 8\n\ + ldr r4, ._271 + 4 @ \n\ + ldr r1, ._271 + 8 @ \n\ lsl r0, r6, #0x1\n\ add r0, r0, r1\n\ ldrb r1, [r0]\n\ diff --git a/src/field/start_menu.c b/src/field/start_menu.c index 1b01bf7a8..4904f4a80 100644 --- a/src/field/start_menu.c +++ b/src/field/start_menu.c @@ -166,7 +166,7 @@ void debug_sub_8075C40() " lsl r0, r4, #0x2\n" " add r0, r0, r4\n" " lsl r0, r0, #0x3\n" - " ldr r1, ._5\n" + " ldr r1, ._5 @ gTasks\n" " add r5, r0, r1\n" " mov r1, #0x0\n" " ldsh r0, [r5, r1]\n" @@ -191,28 +191,28 @@ void debug_sub_8075C40() " bl m4aSoundVSyncOff\n" " b ._12\n" "._1:\n" - " ldr r1, ._13\n" + " ldr r1, ._13 @ 0x4000208\n" " ldrh r0, [r1]\n" " mov sl, r0\n" " mov r0, #0x0\n" " strh r0, [r1]\n" - " ldr r1, ._13 + 4\n" + " ldr r1, ._13 + 4 @ 0x4000108\n" " strh r0, [r1]\n" " mov r0, #0x83\n" " lsl r0, r0, #0x10\n" " str r0, [r1]\n" - " ldr r4, ._13 + 8\n" + " ldr r4, ._13 + 8 @ 0xc34f\n" " mov r9, r4\n" - " ldr r2, ._13 + 12\n" - " ldr r0, ._13 + 16\n" + " ldr r2, ._13 + 12 @ 0x40000b0\n" + " ldr r0, ._13 + 16 @ gScanlineEffectRegBuffers\n" " mov ip, r0\n" - " ldr r1, ._13 + 20\n" + " ldr r1, ._13 + 20 @ 0xc5ff\n" " mov r8, r1\n" - " ldr r7, ._13 + 24\n" + " ldr r7, ._13 + 24 @ 0x7fff\n" " mov r3, r9\n" " add r3, r3, #0x1\n" - " ldr r6, ._13 + 28\n" - " ldr r4, ._13 + 32\n" + " ldr r6, ._13 + 28 @ 0x4000040\n" + " ldr r4, ._13 + 32 @ 0xa2600001\n" "._11:\n" " mov r0, ip\n" " str r0, [r2]\n" @@ -233,18 +233,18 @@ void debug_sub_8075C40() " bne ._11 @cond_branch\n" " mov r3, r9\n" " add r3, r3, #0x1\n" - " ldr r0, ._13 + 36\n" + " ldr r0, ._13 + 36 @ 0x400010a\n" " mov r2, #0x0\n" " strh r2, [r0]\n" - " ldr r1, ._13 + 4\n" + " ldr r1, ._13 + 4 @ 0x4000108\n" " ldrh r0, [r1]\n" - " ldr r4, ._13 + 40\n" + " ldr r4, ._13 + 40 @ _debugStartMenu_0\n" " str r0, [r4]\n" " strh r2, [r1]\n" - " ldr r0, ._13\n" + " ldr r0, ._13 @ 0x4000208\n" " mov r1, sl\n" " strh r1, [r0]\n" - " ldr r4, ._13 + 44\n" + " ldr r4, ._13 + 44 @ _debugStartMenu_1\n" " str r3, [r4]\n" " bl m4aSoundVSyncOn\n" " b ._12\n" @@ -266,20 +266,20 @@ void debug_sub_8075C40() "._7:\n" " mov r0, #0x15\n" " bl PlaySE\n" - " ldr r0, ._16\n" - " ldr r1, ._16 + 4\n" + " ldr r0, ._16 @ gStringVar1\n" + " ldr r1, ._16 + 4 @ _debugStartMenu_1\n" " ldr r1, [r1]\n" " mov r2, #0x1\n" " mov r3, #0x8\n" " bl ConvertIntToDecimalStringN\n" - " ldr r0, ._16 + 8\n" - " ldr r1, ._16 + 12\n" + " ldr r0, ._16 + 8 @ gStringVar2\n" + " ldr r1, ._16 + 12 @ _debugStartMenu_0\n" " ldr r1, [r1]\n" " mov r2, #0x1\n" " mov r3, #0x8\n" " bl ConvertIntToDecimalStringN\n" " bl Menu_DisplayDialogueFrame\n" - " ldr r0, ._16 + 16\n" + " ldr r0, ._16 + 16 @ gUnknown_Debug_839B6D8\n" " mov r1, #0x2\n" " mov r2, #0xf\n" " bl Menu_PrintText\n" @@ -297,7 +297,7 @@ void debug_sub_8075C40() " .word _debugStartMenu_0\n" " .word gUnknown_Debug_839B6D8\n" "._8:\n" - " ldr r0, ._19\n" + " ldr r0, ._19 @ gMain\n" " ldrh r1, [r0, #0x2e]\n" " mov r0, #0x1\n" " and r0, r0, r1\n" @@ -328,7 +328,7 @@ void debug_sub_8075D9C() { asm( " push {lr}\n" - " ldr r0, ._21\n" + " ldr r0, ._21 @ debug_sub_8075C40\n" " mov r1, #0xa\n" " bl CreateTask\n" " bl ScriptContext2_Enable\n" @@ -363,8 +363,8 @@ void debug_sub_8075DB4() " bl StringCopy8\n" " mov r3, #0x7\n" " mov r4, #0x0\n" - " ldr r0, ._25\n" - " ldr r1, ._25 + 4\n" + " ldr r0, ._25 @ gSaveBlock1\n" + " ldr r1, ._25 + 4 @ 0x2b28\n" " add r5, r0, r1\n" " add r2, r6, #0\n" " add r2, r2, #0x10\n" @@ -387,7 +387,7 @@ void debug_sub_8075DB4() "._24:\n" " mov r0, #0x64\n" " mul r0, r0, r4\n" - " ldr r1, ._25 + 8\n" + " ldr r1, ._25 + 8 @ gPlayerParty\n" " add r0, r0, r1\n" " mov r1, #0x2c\n" " mul r1, r1, r4\n" @@ -417,12 +417,12 @@ void unref_sub_8070F90() { asm( " push {lr}\n" - " ldr r0, ._27\n" + " ldr r0, ._27 @ 0x801\n" " bl FlagSet\n" " mov r0, #0x80\n" " lsl r0, r0, #0x4\n" " bl FlagSet\n" - " ldr r0, ._27 + 4\n" + " ldr r0, ._27 + 4 @ 0x802\n" " bl FlagSet\n" " pop {r0}\n" " bx r0\n" -- cgit v1.2.3