summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2018-02-18 16:14:49 -0600
committerCameron Hall <cameronghall@cox.net>2018-02-18 16:14:49 -0600
commit605c4b66f0d53198413a3ebe69171eefa193f3b0 (patch)
treeeaa010deb7375ad6e231a3d36efe4342ecfa6cab /src
parent99befda409870bedc2120f3af0b84f3d6d55806b (diff)
decompile more debug code
Diffstat (limited to 'src')
-rw-r--r--src/battle/battle_controller_player.c14
-rw-r--r--src/engine/link.c158
-rw-r--r--src/field/field_map_obj.c295
-rw-r--r--src/roulette.c256
4 files changed, 122 insertions, 601 deletions
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 1824f9182..3e259a21b 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -1055,7 +1055,7 @@ void debug_sub_8030C24(void)
move += 9;
case DPAD_RIGHT:
if (++move > 354)
- move = 1;
+ move = 1;
SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1, &move);
gBattleMons[gActiveBank].moves[0] = move;
Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38);
@@ -1080,7 +1080,7 @@ void debug_sub_8030C24(void)
move -= 9;
case DPAD_LEFT:
if (--move <= 0)
- move = 354;
+ move = 354;
SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1, &move);
gBattleMons[gActiveBank].moves[0] = move;
Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x38);
@@ -1111,11 +1111,11 @@ void debug_sub_8030C24(void)
move = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i);
StringAppend(gDisplayedStringBattle, gMoveNames[move]);
Text_InitWindow(
- &gUnknown_03004210,
- gDisplayedStringBattle,
- 0x100 + i * 16,
- (i & 1) ? 10 : 2,
- (i < 2) ? 0x37 : 0x39);
+ &gUnknown_03004210,
+ gDisplayedStringBattle,
+ 0x100 + i * 16,
+ (i & 1) ? 10 : 2,
+ (i < 2) ? 0x37 : 0x39);
Text_PrintWindow8002F44(&gUnknown_03004210);
}
gBattleBankFunc[gActiveBank] = sub_802C68C;
diff --git a/src/engine/link.c b/src/engine/link.c
index 70c2b85cc..db5d0d935 100644
--- a/src/engine/link.c
+++ b/src/engine/link.c
@@ -192,19 +192,9 @@ const struct BlockRequest sBlockRequestLookupTable[5] =
static const u8 sTestString[] = _("テストな");
-// TODO: fix the alignment here
+const u8 sMagic[] = "GameFreak inc.";
-ALIGNED(4) const u8 sMagic[] = "GameFreak inc.";
-
-#if DEBUG
const u8 sEmptyString[] = _(" ");
-#else
-ALIGNED(4) const u8 sEmptyString[] = _("");
-#endif
-
-#if DEBUG
-const u8 linkDebugFillerPleaseRemove[2] = {0};
-#endif
void Task_DestroySelf(u8 taskId)
{
@@ -988,138 +978,50 @@ void PrintHex(u32 num, u8 x, u8 y, u8 maxDigits)
#if DEBUG
-EWRAM_DATA u16 *debugCharacterBase = NULL;
-EWRAM_DATA void *unk_20238C8 = NULL;
-EWRAM_DATA u16 (*debugTileMap)[] = NULL;
+//EWRAM_DATA u16 *debugCharacterBase = NULL;
+EWRAM_DATA uintptr_t debugCharacterBase = 0;
+EWRAM_DATA uintptr_t unk_20238C8 = 0;
+EWRAM_DATA u16 *debugTileMap = NULL;
EWRAM_DATA u32 unk_20238D0 = 0;
-void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3)
+void debug_sub_8008218(u16 *buffer, void *arg1, u16 *arg2, u32 arg3)
{
CpuSet(sLinkTestDigitTiles, buffer, 272);
- debugCharacterBase = buffer;
- unk_20238C8 = arg1;
+ debugCharacterBase = (uintptr_t)buffer;
+ unk_20238C8 = (uintptr_t)arg1;
debugTileMap = arg2;
unk_20238D0 = arg3;
}
-#ifdef NONMATCHING
-void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0)
+void debug_sub_8008264(u32 value, int left, int top, int d, int e)
{
+ s32 i;
u32 buffer[8];
- u32 *ptr;
-
- u16 *dest;
-
- int i;
-
- if (unk_20238D0 != sp0)
- return;
-
- r3 = max(r3, 8);
- ptr = &buffer[0];
- dest = &(*debugTileMap)[left + top * 32];
-
- for (i = r3; i != 0; i--)
+ if (unk_20238D0 == e)
{
- *(ptr++) = value & 0xF;
- value = value >> 4;
- }
+ u32 *ptr;
+ u16 *tilemapDest;
- ptr = &buffer[8 - r3];
- for (i = r3; i != 0; i--)
- {
- int charOffset = (((uintptr_t) debugCharacterBase) - ((uintptr_t) unk_20238C8)) / 32;
- *dest = *ptr + charOffset + 1;
- ptr--;
- dest++;
+ if (d > 8)
+ d = 8;
+ ptr = buffer;
+ for (i = 0; i < d; i++)
+ {
+ *ptr++ = value & 0xF;
+ value >>= 4;
+ }
+
+ tilemapDest = (u16 *)debugTileMap + top * 0x20 + left;
+ ptr = buffer + d - 1;
+ for (i = 0; i < d; i++)
+ {
+ *tilemapDest = (debugCharacterBase - unk_20238C8) / 32 + *ptr + 1;
+ ptr--;
+ tilemapDest++;
+ }
}
}
-#else
-__attribute__((naked))
-void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0)
-{
- asm(
- " push {r4, r5, r6, r7, lr}\n"
- " mov r7, r8\n"
- " push {r7}\n"
- " add sp, sp, #0xffffffe0\n"
- " add r5, r0, #0\n"
- " add r6, r1, #0\n"
- " add r4, r3, #0\n"
- " ldr r0, [sp, #0x38]\n"
- " ldr r1, ._347 @ unk_20238D0\n"
- " ldr r1, [r1]\n"
- " cmp r1, r0\n"
- " bne ._345 @cond_branch\n"
- " cmp r4, #0x8\n"
- " ble ._342 @cond_branch\n"
- " mov r4, #0x8\n"
- "._342:\n"
- " mov r3, sp\n"
- " ldr r0, ._347 + 4 @ debugTileMap\n"
- " mov r8, r0\n"
- " lsl r2, r2, #0x6\n"
- " mov ip, r2\n"
- " lsl r6, r6, #0x1\n"
- " lsl r7, r4, #0x2\n"
- " cmp r4, #0\n"
- " ble ._343 @cond_branch\n"
- " mov r1, #0xf\n"
- " add r2, r4, #0\n"
- "._344:\n"
- " add r0, r5, #0\n"
- " and r0, r0, r1\n"
- " stmia r3!, {r0}\n"
- " lsr r5, r5, #0x4\n"
- " sub r2, r2, #0x1\n"
- " cmp r2, #0\n"
- " bne ._344 @cond_branch\n"
- "._343:\n"
- " mov r1, r8\n"
- " ldr r0, [r1]\n"
- " add r0, r0, ip\n"
- " add r5, r0, r6\n"
- " mov r1, sp\n"
- " add r0, r1, r7\n"
- " sub r3, r0, #4\n"
- " cmp r4, #0\n"
- " ble ._345 @cond_branch\n"
- " ldr r7, ._347 + 8 @ debugCharacterBase\n"
- " ldr r6, ._347 + 12 @ unk_20238C8\n"
- " add r2, r4, #0\n"
- "._346:\n"
- " ldr r1, [r7]\n"
- " ldr r0, [r6]\n"
- " sub r1, r1, r0\n"
- " lsr r1, r1, #0x5\n"
- " ldr r0, [r3]\n"
- " add r0, r0, r1\n"
- " add r0, r0, #0x1\n"
- " strh r0, [r5]\n"
- " sub r3, r3, #0x4\n"
- " add r5, r5, #0x2\n"
- " sub r2, r2, #0x1\n"
- " cmp r2, #0\n"
- " bne ._346 @cond_branch\n"
- "._345:\n"
- " add sp, sp, #0x20\n"
- " pop {r3}\n"
- " mov r8, r3\n"
- " pop {r4, r5, r6, r7}\n"
- " pop {r0}\n"
- " bx r0\n"
- "._348:\n"
- " .align 2, 0\n"
- "._347:\n"
- " .word unk_20238D0\n"
- " .word debugTileMap\n"
- " .word debugCharacterBase\n"
- " .word unk_20238C8\n"
- "\n"
- );
-}
-#endif
#endif
diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c
index f3a949b51..99f9f1ef3 100644
--- a/src/field/field_map_obj.c
+++ b/src/field/field_map_obj.c
@@ -1908,7 +1908,7 @@ static u16 gUnknown_030005A6;
struct MapObject gMapObjects[16];
#if DEBUG
-u8 gUnknown_Debug_03004BC0; // unknown type
+u8 gUnknown_Debug_03004BC0;
#endif
void npc_clear_ids_and_state(struct MapObject *mapObj)
@@ -2214,226 +2214,6 @@ 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 @ gMapObjects\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 @ 0xffff\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 @ gUnknown_Debug_03004BC0\n"
- " ldrb r0, [r1]\n"
- " sub r0, r0, #0x1\n"
- " strb r0, [r1]\n"
- " ldr r0, ._93 + 8 @ gMapObjects\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 @ gSprites\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;
@@ -2463,6 +2243,9 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *
spriteId = CreateSprite(sprTemplate, 0, 0, 0);
if (spriteId == 64)
{
+#if DEBUG
+ gUnknown_Debug_03004BC0--;
+#endif
gMapObjects[mapObjectId].active = FALSE;
return 16;
}
@@ -2483,7 +2266,6 @@ 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)
{
@@ -2706,79 +2488,26 @@ 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 @ gUnknown_Debug_03004BC0\n"
- " mov r0, #0x0\n"
- " strb r0, [r6]\n"
- " bl ClearPlayerAvatarInfo\n"
- " mov r7, #0x0\n"
- " ldr r0, ._153 + 4 @ gMapObjects\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;
+#if DEBUG
+ gUnknown_Debug_03004BC0 = 0;
+#endif
ClearPlayerAvatarInfo();
for (i = 0; i < 16; i++)
{
if (gMapObjects[i].active)
+ {
sub_805B75C(i, a, b);
+#if DEBUG
+ gUnknown_Debug_03004BC0++;
+#endif
+ }
}
sub_805AAB0();
}
-#endif
extern void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8);
extern void sub_805B914(struct MapObject *);
diff --git a/src/roulette.c b/src/roulette.c
index 9197fe6be..85b1c053b 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -317,7 +317,7 @@ extern const s8 gUnknown_083FA64C[0x8][0x2];
#if DEBUG
EWRAM_DATA u8 unk_203955C[4] = { 0 };
-EWRAM_DATA u8 unk_2039560[4] = { 0 };
+EWRAM_DATA u8 unk_2039560 = 0;
#endif
@@ -1008,7 +1008,7 @@ void sub_811597C(u8 taskid)
void sub_81159BC(u8 taskid)
{
s16 i;
- if(eRoulette->var08 & 0x20)
+ if (eRoulette->var08 & 0x20)
{
for (i = 0xB; (i < 0xE); i++)
if ((eRoulette->var08 & gUnknown_083F8C00[i].var08) == 0)
@@ -1380,9 +1380,9 @@ void sub_8116474(u8 taskid)
{
if (gTasks[taskid].data[0x1]-- > 0x0)
{
- if(gTasks[taskid].data[0x1] > 0x2)
+ if (gTasks[taskid].data[0x1] > 0x2)
gSpriteCoordOffsetX -= 0x2;
- if((eRoulette->var26 -= 0x4) == 0x68)
+ if ((eRoulette->var26 -= 0x4) == 0x68)
gSprites[eRoulette->var3C[0x19]].callback = &sub_81184CC;
}
else
@@ -1400,7 +1400,7 @@ void sub_8116514(u8 taskid)
{
if (gTasks[taskid].data[0x1]-- > 0x1)
{
- switch(gTasks[taskid].data[0x1] % 0x10)
+ switch (gTasks[taskid].data[0x1] % 0x10)
{
case 0x8:
sub_8117AA8(0x0, 0xFF);
@@ -1420,14 +1420,14 @@ void sub_8116514(u8 taskid)
void sub_811659C(u8 taskid)
{
- switch(gTasks[taskid].data[0x5])
+ switch (gTasks[taskid].data[0x5])
{
case 0x1:
case 0x2:
if (IsFanfareTaskInactive())
{
u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS);
- if(wins < ++gTasks[taskid].data[0xB])
+ if (wins < ++gTasks[taskid].data[0xB])
SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskid].data[0xB]);
sub_8116C34(taskid, &sub_811677C, 0xFFFF, 0x3);
}
@@ -1444,7 +1444,7 @@ void sub_811659C(u8 taskid)
void sub_8116638(u8 taskid)
{
- switch(gTasks[taskid].data[0x5])
+ switch (gTasks[taskid].data[0x5])
{
case 0x1:
case 0x2:
@@ -1474,7 +1474,7 @@ void sub_8116638(u8 taskid)
void sub_81166E8(u8 taskid)
{
s32 r0 = gTasks[taskid].data[0x7];
- switch(r0)
+ switch (r0)
{
case 0x0:
gTasks[taskid].data[0xD]++;
@@ -1684,7 +1684,7 @@ void sub_8116B40(u8 taskid) // end roulette ?
void sub_8116BC0(u8 taskid)
{
- if(eRoulette->varA8 == 0 || gMain.newKeys & eRoulette->varAA)
+ if (eRoulette->varA8 == 0 || gMain.newKeys & eRoulette->varAA)
{
gTasks[taskid].func = eRoulette->varAC;
if (eRoulette->varAA > 0)
@@ -1700,7 +1700,7 @@ void sub_8116BC0(u8 taskid)
void sub_8116C34(u8 taskid, TaskFunc r1, u16 r2, u16 r3)
{
eRoulette->varB4 = gTasks[taskid].func;
- if(r1 == NULL)
+ if (r1 == NULL)
r1 = eRoulette->varB4;
eRoulette->varAC = r1;
eRoulette->varA8 = r2;
@@ -1780,7 +1780,7 @@ u8 sub_8116E5C(u8 r0, u8 r1)
u8 t = r0;
if (--r0 < 0x13)
{
- switch(r1)
+ switch (r1)
{
case 0x0:
return 0x3;
@@ -1810,7 +1810,7 @@ void sub_8116EF8(u8 r0)
u8 var2;
u16 var3;
u8 i;
- switch(r0)
+ switch (r0)
{
case 0x5:
case 0xA:
@@ -1889,7 +1889,7 @@ void sub_8117158(u8 r0)
eRoulette->var2A = 0x1;
sub_8117AA8(0x0, 0x0);
sub_8124E2C(gBGTilemapBuffers[1], (u16 *)ewram18800, 0xE, 0x7, 0x10, 0xD);
- switch(r0)
+ switch (r0)
{
case 0x0:
return;
@@ -2327,7 +2327,7 @@ void debug_sub_812CDE4()
}
__attribute__((naked))
-void debug_sub_812CFE8()
+void debug_sub_812CFE8(u8 taskId)
{
asm("\
push {r4, r5, lr}\n\
@@ -2403,66 +2403,22 @@ void debug_sub_812CFE8()
#endif
-#if DEBUG
-__attribute__((naked))
-void PlayRoulette(void)
-{
- asm("\
- push {lr}\n\
- bl ScriptContext2_Enable\n\
- ldr r1, ._604 @ unk_2039560\n\
- mov r0, #0x0\n\
- strb r0, [r1]\n\
- ldr r0, ._604 + 4 @ unk_203955C\n\
- ldrb r0, [r0]\n\
- cmp r0, #0\n\
- beq ._602 @cond_branch\n\
- ldr r0, ._604 + 8 @ debug_sub_812CFE8\n\
- mov r1, #0x0\n\
- bl CreateTask\n\
- b ._603\n\
-._605:\n\
- .align 2, 0\n\
-._604:\n\
- .word unk_2039560\n\
- .word unk_203955C\n\
- .word debug_sub_812CFE8+1\n\
-._602:\n\
- ldr r0, ._606 @ Task_Roulette_0\n\
- mov r1, #0x0\n\
- bl CreateTask\n\
- lsl r0, r0, #0x18\n\
- lsr r0, r0, #0x18\n\
- ldr r2, ._606 + 4 @ gTasks\n\
- lsl r1, r0, #0x2\n\
- add r1, r1, r0\n\
- lsl r1, r1, #0x3\n\
- add r1, r1, r2\n\
- ldr r0, ._606 + 8 @ gSaveBlock1\n\
- ldr r2, ._606 + 12 @ 0x494\n\
- add r0, r0, r2\n\
- ldrh r0, [r0]\n\
- strh r0, [r1, #0x22]\n\
-._603:\n\
- pop {r0}\n\
- bx r0\n\
-._607:\n\
- .align 2, 0\n\
-._606:\n\
- .word Task_Roulette_0+1\n\
- .word gTasks\n\
- .word gSaveBlock1\n\
- .word 0x494");
-}
-#else
void PlayRoulette(void)
{
u8 taskid;
+
ScriptContext2_Enable();
- taskid = CreateTask(&Task_Roulette_0, 0x0);
+#if DEBUG
+ unk_2039560 = 0;
+ if (unk_203955C[0] != 0)
+ {
+ taskid = CreateTask(debug_sub_812CFE8, 0);
+ return;
+ }
+#endif
+ taskid = CreateTask(Task_Roulette_0, 0);
gTasks[taskid].data[0xD] = gSaveBlock1.coins;
}
-#endif
void sub_8117838(u8 r0)
{
@@ -2548,7 +2504,7 @@ void unref_sub_8117A74(void) //destroy all sprites at 0x1D
void sub_8117AA8(u8 r0, u8 r1)
{
u8 i;
- switch(r0)
+ switch (r0)
{
case 0x1:
for (i = 0x0; i < 0x13; i++)
@@ -2564,7 +2520,7 @@ void sub_8117AA8(u8 r0, u8 r1)
else
gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE;
}
- for ( ; i < 0x13; i++)
+ for (; i < 0x13; i++)
gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE;
break;
}
@@ -2577,7 +2533,7 @@ void sub_8117BBC(void)
{
eRoulette->var3C[0x31 + i] = CreateSprite(&gSpriteTemplate_83FA40C, 0x74, 0x14, 0xA);
gSprites[eRoulette->var3C[0x31 + i]].invisible = TRUE;
- gSprites[eRoulette->var3C[0x31 + i]].data[0] = 0x1;
+ gSprites[eRoulette->var3C[0x31 + i]].data[0] = 0x1;
gSprites[eRoulette->var3C[0x31 + i]].callback = &sub_81184CC;
gSprites[eRoulette->var3C[0x31 + i]].oam.priority = 0x1;
StartSpriteAnim(&gSprites[eRoulette->var3C[0x31 + i]], 0x8);
@@ -2731,7 +2687,7 @@ u8 sub_81181E8(u8 r0)
// u8 t = {0, 1, 2, 3, 4};
if (r0 >= 20)
r0 = 0;
- switch(gUnknown_083F8C00[r0].var01_0)
+ switch (gUnknown_083F8C00[r0].var01_0)
{
case 0x3:
r0 = r0 / 5 - 1;
@@ -2766,7 +2722,7 @@ void sub_81182F8(u8 r0)
u8 t = 0x0;
if (eRoulette->var19 == 0x1)
t = 0x2;
- switch(r0)
+ switch (r0)
{
case 0x6:
for (i = 0x0; i < 0x3; i++)
@@ -3006,7 +2962,7 @@ void sub_81189A8(struct Sprite *sprite)
float f0, f1, f2;
struct StructgUnknown_083F8DF4 *p;
sub_8118724(sprite);
- switch(sprite->data[0x3])
+ switch (sprite->data[0x3])
{
case 0:
if (sprite->data[0x0] != 0x1)
@@ -3072,7 +3028,7 @@ void sub_8118BD8(struct Sprite *sprite)
if (sprite->data[0x2]++ < 45)
{
sprite->pos2.y--;
- if(sprite->data[0x2] == 45)
+ if (sprite->data[0x2] == 45)
{
if (gSprites[eRoulette->var3C[0x37]].animCmdIndex == 0x1)
sprite->pos2.y++;
@@ -3106,7 +3062,7 @@ void sub_8118BD8(struct Sprite *sprite)
void sub_8118CAC(struct Sprite *sprite)
{
sub_8118724(sprite);
- switch(sprite->data[0x3])
+ switch (sprite->data[0x3])
{
case 90:
if (sprite->data[0x0] != 0x1)
@@ -3128,7 +3084,7 @@ void sub_8118CAC(struct Sprite *sprite)
void sub_8118CEC(struct Sprite *sprite)
{
sub_8118724(sprite);
- switch(eRoulette->var03_0)
+ switch (eRoulette->var03_0)
{
default:
case 0x0:
@@ -3171,96 +3127,30 @@ void sub_8118D2C(struct Sprite *sprite)
}
#if DEBUG
-__attribute__((naked))
-void debug_sub_812E698()
+
+void debug_sub_812E698(struct Sprite *sprite)
{
- asm("\
- push {r4, r5, r6, r7, lr}\n\
- add r7, r0, #0\n\
- bl sub_8118724\n\
- mov r0, #0x0\n\
- strh r0, [r7, #0x32]\n\
- add r0, r7, #0\n\
- bl sub_81186B8\n\
- mov r0, #0x38\n\
- bl m4aSongNumStart\n\
- bl Random\n\
- mov r1, #0x1\n\
- and r1, r1, r0\n\
- cmp r1, #0\n\
- beq ._837 @cond_branch\n\
- ldr r4, ._839 @ 0x2019000\n\
- add r1, r4, #0\n\
- add r1, r1, #0x8c\n\
- ldr r0, ._839 + 4 @ 0x0\n\
- str r0, [r1]\n\
- add r0, r4, #0\n\
- add r0, r0, #0x7e\n\
- ldrb r0, [r0]\n\
- add r0, r0, #0x1\n\
- mov r1, #0xc\n\
- bl __modsi3\n\
- add r1, r4, #0\n\
- add r1, r1, #0x7f\n\
- strb r0, [r1]\n\
- add r1, r4, #0\n\
- ldr r4, ._839 + 8 @ gUnknown_083F8DF4\n\
- b ._838\n\
-._840:\n\
- .align 2, 0\n\
-._839:\n\
- .word 0x2019000\n\
- .word 0x0\n\
- .word gUnknown_083F8DF4\n\
-._837:\n\
- ldr r6, ._841 @ 0x2019000\n\
- add r5, r6, #0\n\
- add r5, r5, #0x8c\n\
- ldr r4, ._841 + 4 @ gUnknown_083F8DF4\n\
- ldrb r0, [r6, #0x4]\n\
- lsl r0, r0, #0x1e\n\
- lsr r0, r0, #0x19\n\
- add r1, r4, #0\n\
- add r1, r1, #0x1c\n\
- add r0, r0, r1\n\
- ldr r1, [r0]\n\
- add r0, r1, #0\n\
- bl __addsf3\n\
- str r0, [r5]\n\
- add r0, r6, #0\n\
- add r0, r0, #0x7e\n\
- ldrb r0, [r0]\n\
- add r1, r6, #0\n\
- add r1, r1, #0x7f\n\
- strb r0, [r1]\n\
- add r1, r6, #0\n\
-._838:\n\
- mov r0, #0x1\n\
- strh r0, [r7, #0x2e]\n\
- ldrb r0, [r1, #0x4]\n\
- lsl r0, r0, #0x1e\n\
- lsr r0, r0, #0x19\n\
- add r0, r0, r4\n\
- ldrb r0, [r0, #0x2]\n\
- strh r0, [r7, #0x32]\n\
- add r1, r1, #0x98\n\
- ldr r0, ._841 + 8 @ 0x3dae147b\n\
- str r0, [r1]\n\
- ldr r0, ._841 + 12 @ sub_8118D2C\n\
- str r0, [r7, #0x1c]\n\
- mov r0, #0x5\n\
- strh r0, [r7, #0x30]\n\
- pop {r4, r5, r6, r7}\n\
- pop {r0}\n\
- bx r0\n\
-._842:\n\
- .align 2, 0\n\
-._841:\n\
- .word 0x2019000\n\
- .word gUnknown_083F8DF4\n\
- .word 0x3dae147b\n\
- .word sub_8118D2C+1");
+ sub_8118724(sprite);
+ sprite->data[2] = 0;
+ sub_81186B8(sprite);
+ m4aSongNumStart(0x38);
+ if (Random() & 1)
+ {
+ eRoulette->var8C = 0;
+ eRoulette->var7F = (eRoulette->var7E + 1) % 12;
+ }
+ else
+ {
+ eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C * 2;
+ eRoulette->var7F = eRoulette->var7E;
+ }
+ sprite->data[0] = 1;
+ sprite->data[2] = gUnknown_083F8DF4[eRoulette->var04_0].var02;
+ eRoulette->var98 = 0.085;
+ sprite->callback = sub_8118D2C;
+ sprite->data[1] = 5;
}
+
#endif
void sub_8118DE4(struct Sprite *sprite)
@@ -3345,7 +3235,7 @@ void sub_8118F8C(struct Sprite *sprite)
/ ((float)(s16)(p[eRoulette->var04_0].var04 + 0x1));
sprite->data[0x1] = 0x4;
#if DEBUG
- if (unk_2039560[0])
+ if (unk_2039560 != 0)
sprite->callback = debug_sub_812E698;
else
#endif
@@ -3852,17 +3742,16 @@ void sub_811952C(struct Sprite *sprite)
void sub_8119780(struct Sprite *sprite)
{
- if (sprite->data[0x1]++ >= sprite->data[0x3])
+ if (sprite->data[1]++ >= sprite->data[3])
{
- if ((sprite->pos1.x -= 0x2) < -0x10)
+ sprite->pos1.x -= 2;
+ if (sprite->pos1.x < -16)
{
if (!eRoulette->var03_6)
- {
eRoulette->var03_6 = TRUE;
- }
DestroySprite(sprite);
- eRoulette->var01 = 0x0;
- eRoulette->var34 = gUnknown_083FA61E[0x0];
+ eRoulette->var01 = 0;
+ eRoulette->var34 = gUnknown_083FA61E[0];
}
}
}
@@ -3871,18 +3760,19 @@ void sub_81197D8(struct Sprite *sprite)
{
u16 t[0x3][0x4];
s32 p, z;
- memcpy(t, &gUnknown_083FA632, 0x18);
- if (sprite->data[0x1]++ < sprite->data[0x3])
+
+ memcpy(t, &gUnknown_083FA632, 24);
+ if (sprite->data[1]++ < sprite->data[3])
{
- if(sprite->data[0x1] & 0x1)
+ if (sprite->data[1] & 1)
{
- gSpriteCoordOffsetY = t[sprite->data[0x2] / 0x2][sprite->data[0x7]];
- p = z = sprite->data[0x7] + 0x1;
+ gSpriteCoordOffsetY = t[sprite->data[2] / 2][sprite->data[7]];
+ p = z = sprite->data[7] + 1;
if (z < 0)
- p += 0x3;
- sprite->data[0x7] = z - ((p >> 2) * 4);
+ p += 3;
+ sprite->data[7] = z - ((p >> 2) * 4);
}
- sprite->invisible ^= 0x1;
+ sprite->invisible ^= 1;
}
else
{
@@ -3915,7 +3805,7 @@ void sub_8119898(struct Sprite *sprite)
void sub_8119964(struct Sprite *sprite)
{
- if(sprite->data[0x7] == 0x0)
+ if (sprite->data[0x7] == 0x0)
{
register u32 t asm("r2");
u32 z ;
@@ -4047,7 +3937,7 @@ void sub_8119BCC(struct Sprite *sprite)
else
{
m4aSongNumStartOrChange(0x5E);
- if(eRoulette->var38->data[0x0] == 0x0)
+ if (eRoulette->var38->data[0x0] == 0x0)
PlayCry1(SPECIES_TAILLOW, 0x3F);
else
PlayCry1(SPECIES_TAILLOW, -0x3F);