summaryrefslogtreecommitdiff
path: root/src/field/slot_machine.c
diff options
context:
space:
mode:
authorCameron Hall <camthesaxman@users.noreply.github.com>2018-02-18 19:20:50 -0600
committerGitHub <noreply@github.com>2018-02-18 19:20:50 -0600
commit2e21a867487e2187a954a351f775bd3f3a9535b1 (patch)
treee57f9f6851404a7591cffa7bb7842d2fc6b2d8da /src/field/slot_machine.c
parentadac76c8370b86176a52d8ecb2e349e2be13f8ba (diff)
parentb47dffc5df147adcd241df4bf11fa161d84af4f4 (diff)
Merge pull request #564 from camthesaxman/decompile_debug
decompile debug code
Diffstat (limited to 'src/field/slot_machine.c')
-rw-r--r--src/field/slot_machine.c3741
1 files changed, 930 insertions, 2811 deletions
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index 2c97c146d..8075f24e4 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -8,6 +8,7 @@
#include "sound.h"
#include "main.h"
#include "slot_machine.h"
+#include "string_util.h"
#include "decompress.h"
#include "trig.h"
#include "graphics.h"
@@ -17,6 +18,93 @@
#include "menu.h"
#include "ewram.h"
+enum
+{
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_REPLAY
+};
+
+enum
+{
+ SLOT_MACHINE_MATCHED_1CHERRY,
+ SLOT_MACHINE_MATCHED_2CHERRY,
+ SLOT_MACHINE_MATCHED_REPLAY,
+ SLOT_MACHINE_MATCHED_LOTAD,
+ SLOT_MACHINE_MATCHED_AZURILL,
+ SLOT_MACHINE_MATCHED_POWER,
+ SLOT_MACHINE_MATCHED_777_MIXED,
+ SLOT_MACHINE_MATCHED_777_RED,
+ SLOT_MACHINE_MATCHED_777_BLUE,
+ SLOT_MACHINE_MATCHED_NONE
+};
+
+struct SlotMachineEwramStruct
+{
+ /*0x00*/ u8 state;
+ /*0x01*/ u8 unk01;
+ /*0x02*/ u8 pikaPower;
+ /*0x03*/ u8 unk03;
+ /*0x04*/ u8 unk04;
+ /*0x05*/ u8 unk05;
+ /*0x06*/ u8 unk06;
+ /*0x07*/ u8 unk07;
+ /*0x08*/ u16 matchedSymbols;
+ /*0x0A*/ u8 unk0A;
+ /*0x0B*/ u8 unk0B;
+ /*0x0C*/ s16 coins;
+ /*0x0E*/ s16 payout;
+ /*0x10*/ s16 unk10;
+ /*0x12*/ s16 bet;
+ /*0x14*/ s16 unk14;
+ /*0x16*/ s16 unk16;
+ /*0x18*/ s16 unk18;
+ /*0x1A*/ s16 unk1A;
+ /*0x1C*/ s16 unk1C[3];
+ /*0x22*/ u16 unk22[3];
+ /*0x28*/ s16 reelPositions[3];
+ /*0x2E*/ s16 unk2E[3];
+ /*0x34*/ s16 unk34[3];
+ /*0x3A*/ u8 reelTasks[3];
+ /*0x3D*/ u8 unk3D;
+ /*0x3E*/ u8 unk3E;
+ /*0x3F*/ u8 unk3F;
+ /*0x40*/ u8 unk40;
+ /*0x41*/ u8 unk41;
+ /*0x42*/ u8 unk42;
+ /*0x43*/ u8 unk43;
+ /*0x44*/ u8 unk44[5];
+ /*0x49*/ u8 unk49[2];
+ /*0x49*/ u8 unk4B[3];
+ /*0x4E*/ u8 unk4E[2];
+ /*0x50*/ u8 unk50[2];
+ /*0x52*/ u8 unk52[2];
+ /*0x54*/ u8 unk54[4];
+ /*0x58*/ u16 win0h;
+ /*0x5a*/ u16 win0v;
+ /*0x5c*/ u16 winIn;
+ /*0x5e*/ u16 winOut;
+ /*0x60*/ u16 backupMapMusic;
+ /*0x64*/ MainCallback prevMainCb;
+#if DEBUG
+ u32 unk68;
+ u32 unk6C;
+ u32 unk70;
+ u32 unk74;
+ u32 unk78;
+ u32 unk7C;
+ u32 unk80;
+ u32 unk84;
+ u32 unk88;
+ u32 unk8C;
+ s32 unk90;
+#endif
+};
+
struct UnkStruct1
{
/*0x00*/ u8 unk00;
@@ -30,9 +118,6 @@ 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);
static void PlaySlotMachine_Internal(u8 arg0, MainCallback cb);
@@ -79,7 +164,9 @@ 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);
+#if DEBUG
static bool8 debug_sub_8116E74(struct Task *);
+#endif
static void sub_8102484(void);
static void sub_81024F0(void);
static bool8 sub_8102540(void);
@@ -227,12 +314,21 @@ 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;
+static void debug_sub_811B5D0(void);
+static void debug_sub_811B620(void);
+static void debug_sub_811B5B4(s32 *, s32);
+static void debug_sub_811B894(void);
+static u8 debug_sub_811B634(void);
+static void debug_sub_811B654(u8 taskId);
+#endif
+
+#if DEBUG
+static u8 unk_debug_bss_1_0;
+static u8 unk_debug_bss_1_1;
+static u8 unk_debug_bss_1_2;
+static u8 unk_debug_bss_1_3;
+static u8 unk_debug_bss_1_4;
+static u32 unk_debug_bss_1_8;
#endif
static const struct UnkStruct1 *const gUnknown_083ED048[];
@@ -391,135 +487,6 @@ 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_1");
-}
-#else
static void SlotMachineSetup_0_1(void)
{
u8 i;
@@ -550,8 +517,12 @@ static void SlotMachineSetup_0_1(void)
eSlotMachine->unk1C[i] = 0x1f8 - eSlotMachine->reelPositions[i] * 24;
eSlotMachine->unk1C[i] %= 0x1f8;
}
-}
+#if DEBUG
+ debug_sub_811B5D0();
+ if (unk_debug_bss_1_1 != 0)
+ eSlotMachine->coins = 1000;
#endif
+}
static void SlotMachineSetup_3_0(void)
{
@@ -634,7 +605,8 @@ static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) =
static void sub_8101D24(u8 taskId)
{
- while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId));
+ while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId))
+ ;
}
static bool8 sub_8101D5C(struct Task *task)
@@ -648,9 +620,7 @@ static bool8 sub_8101D5C(struct Task *task)
static bool8 sub_8101D8C(struct Task *task)
{
if (!gPaletteFade.active)
- {
eSlotMachine->state++;
- }
return FALSE;
}
@@ -676,265 +646,53 @@ static bool8 sub_8101DB0(struct Task *task)
static bool8 sub_8101DF4(struct Task *task)
{
if (sub_8104E18())
- {
eSlotMachine->state = 4;
- }
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_1\n\
- .word unk_debug_bss_1_4\n\
- .word 0x270e");
-}
-#else
static bool8 sub_8101E10(struct Task *task)
{
sub_8104CAC(0);
eSlotMachine->state = 5;
- if (eSlotMachine->coins >= 9999)
- {
+ if (
+#if DEBUG
+ (unk_debug_bss_1_1 == 0 || unk_debug_bss_1_4 == 0) &&
+#endif
+ eSlotMachine->coins >= 9999)
eSlotMachine->state = 23;
- }
return TRUE;
}
-#endif
-#if DEBUG
-__attribute__((naked))
-static bool8 sub_8101E3C(struct Task *task)
-{
- asm("\
- push {r4, r5, lr}\n\
- ldr r0, ._77 @ unk_debug_bss_1_1\n\
- ldrb r1, [r0]\n\
- add r3, r0, #0\n\
- ldr r5, ._77 + 4 @ gMain\n\
- cmp r1, #0\n\
- beq ._76 @cond_branch\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\
- 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_1\n\
- .word gMain\n\
- .word unk_debug_bss_1_4\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;
+#if DEBUG
+ if (unk_debug_bss_1_1 != 0 && unk_debug_bss_1_4 != 0)
+ {
+ if (eSlotMachine->coins <= 3 || (gMain.heldKeys & B_BUTTON))
+ {
+ unk_debug_bss_1_4 = 0;
+ }
+ else
+ {
+ sub_8103D50(0);
+ sub_8103D50(1);
+ sub_8103D50(2);
+ eSlotMachine->coins -= 3;
+ eSlotMachine->bet = 3;
+ eSlotMachine->state = 9;
+ return 0;
+ }
+ }
+ if (unk_debug_bss_1_1 != 0 && (gMain.newKeys & 8))
+ {
+ debug_sub_811B620();
+ eSlotMachine->state = 29;
+ return 0;
+ }
+#endif
+
if (gMain.newKeys & SELECT_BUTTON)
{
sub_8104AB8(0);
@@ -945,9 +703,7 @@ static bool8 sub_8101E3C(struct Task *task)
if (eSlotMachine->coins - (3 - eSlotMachine->bet) >= 0)
{
for (i = eSlotMachine->bet; i < 3; i++)
- {
sub_8103D50(i);
- }
eSlotMachine->coins -= (3 - eSlotMachine->bet);
eSlotMachine->bet = 3;
eSlotMachine->state = 9;
@@ -968,17 +724,12 @@ static bool8 sub_8101E3C(struct Task *task)
eSlotMachine->bet++;
}
if (eSlotMachine->bet >= 3 || (eSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON))
- {
eSlotMachine->state = 9;
- }
if (gMain.newKeys & B_BUTTON)
- {
eSlotMachine->state = 21;
- }
}
return FALSE;
}
-#endif
static void sub_8101F2C(const u8 *str)
{
@@ -1006,77 +757,10 @@ static bool8 sub_8101F60(struct Task *task)
static bool8 sub_8101F88(struct Task *task)
{
if (sub_8104AEC())
- {
eSlotMachine->state = 5;
- }
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_1");
-}
-#else
static bool8 sub_8101FA4(struct Task *task)
{
sub_8102484();
@@ -1097,12 +781,13 @@ static bool8 sub_8101FA4(struct Task *task)
}
eSlotMachine->unk1A = 8;
if (eSlotMachine->unk0A)
- {
eSlotMachine->unk1A = dp15_jump_random_unknown();
- }
+#if DEBUG
+ if (unk_debug_bss_1_1 != 0)
+ debug_sub_811B5B4(&eSlotMachine->unk68, 1);
+#endif
return FALSE;
}
-#endif
static bool8 sub_8102008(struct Task *task)
{
@@ -1115,134 +800,38 @@ 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 @ unk_debug_bss_1_1\n\
- ldrb r0, [r0]\n\
- cmp r0, #0\n\
- beq ._126 @cond_branch\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 @ unk_debug_bss_1_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_1\n\
- .word unk_debug_bss_1_4\n\
- .word unk_debug_bss_1_8\n\
- .word +0x2000000");
-}
-#else
static bool8 sub_8102034(struct Task *task)
{
if (++task->data[0] >= 30)
{
+#if DEBUG
+ if (unk_debug_bss_1_1 != 0 && unk_debug_bss_1_4 != 0)
+ unk_debug_bss_1_8 = (Random() & 0x1F) + 1;
+#endif
sub_81024F0();
eSlotMachine->state = 12;
}
return FALSE;
}
-#endif
-#if DEBUG
-__attribute__((naked))
-static bool8 sub_8102058(struct Task *task)
-{
- asm("\
- push {r4, r5, lr}\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 @ unk_debug_bss_1_4\n\
- ldrb r0, [r0]\n\
- cmp r0, #0\n\
- beq ._130 @cond_branch\n\
- ldr r5, ._133 + 8 @ unk_debug_bss_1_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_1\n\
- .word unk_debug_bss_1_4\n\
- .word unk_debug_bss_1_8\n\
- .word +0x2000000\n\
-._130:\n\
- ldr r0, ._136 @ gMain\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 DEBUG
+ if (unk_debug_bss_1_1 != 0 && unk_debug_bss_1_4 != 0)
+ {
+ unk_debug_bss_1_8--;
+ if (unk_debug_bss_1_8 == 0)
+ {
+ PlaySE(0x18);
+ sub_8102E1C(eSlotMachine->unk18);
+ sub_8103C14(eSlotMachine->unk18);
+ unk_debug_bss_1_8 = (Random() & 0x1F) + 1;
+ eSlotMachine->state = 13;
+ }
+ return FALSE;
+ }
+#endif
+
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_JYUNI);
@@ -1252,121 +841,7 @@ 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_0\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))
@@ -1376,173 +851,52 @@ static bool8 sub_8102090(struct Task *task)
if (eSlotMachine->unk18 > 2)
{
eSlotMachine->state = 14;
+#if DEBUG
+ switch (unk_debug_bss_1_0)
+ {
+ case 2:
+ eSlotMachine->reelPositions[0] = 20;
+ eSlotMachine->reelPositions[1] = 20;
+ eSlotMachine->reelPositions[2] = 18;
+ break;
+ case 1:
+ eSlotMachine->reelPositions[0] = 20;
+ eSlotMachine->reelPositions[1] = 20;
+ eSlotMachine->reelPositions[2] = 18;
+ break;
+ case 4:
+ eSlotMachine->reelPositions[0] = 3;
+ eSlotMachine->reelPositions[1] = 1;
+ eSlotMachine->reelPositions[2] = 2;
+ break;
+ case 8:
+ eSlotMachine->reelPositions[0] = 0;
+ eSlotMachine->reelPositions[1] = 2;
+ eSlotMachine->reelPositions[2] = 3;
+ break;
+ case 0x10:
+ eSlotMachine->reelPositions[0] = 2;
+ eSlotMachine->reelPositions[1] = 5;
+ eSlotMachine->reelPositions[2] = 20;
+ break;
+ case 0x40:
+ eSlotMachine->reelPositions[0] = 19;
+ eSlotMachine->reelPositions[1] = 19;
+ eSlotMachine->reelPositions[2] = 0;
+ break;
+ case 0x80:
+ eSlotMachine->reelPositions[0] = 19;
+ eSlotMachine->reelPositions[1] = 19;
+ eSlotMachine->reelPositions[2] = 19;
+ break;
+ }
+#endif
}
return TRUE;
}
return FALSE;
}
-#endif
-#if DEBUG
-__attribute__((naked))
-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 CheckMatch\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 @ 0x185\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 @ 0x270f\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
bool8 sub_81020C8(struct Task *task)
{
eSlotMachine->unk04 &= 0xc0;
@@ -1552,8 +906,18 @@ bool8 sub_81020C8(struct Task *task)
eSlotMachine->unk0A--;
eSlotMachine->unk0B++;
}
+#if DEBUG
+ else
+ {
+ debug_sub_811B894();
+ }
+#endif
+
if (eSlotMachine->matchedSymbols)
{
+#if DEBUG
+ debug_sub_811B5B4(&eSlotMachine->unk6C, eSlotMachine->payout);
+#endif
eSlotMachine->state = 15;
sub_8102A24();
sub_8103F70();
@@ -1585,9 +949,7 @@ bool8 sub_81020C8(struct Task *task)
eSlotMachine->unk0B = 0;
eSlotMachine->unk03 = 0;
if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE))
- {
eSlotMachine->unk03 = 1;
- }
}
}
if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && eSlotMachine->pikaPower < 16)
@@ -1601,20 +963,15 @@ bool8 sub_81020C8(struct Task *task)
sub_8104CAC(3);
eSlotMachine->state = 20;
if ((eSlotMachine->unk10 += eSlotMachine->bet) > 9999)
- {
eSlotMachine->unk10 = 9999;
- }
}
return FALSE;
}
-#endif
static bool8 sub_81021E0(struct Task *task)
{
if (sub_8102A44())
- {
eSlotMachine->state = 16;
- }
return FALSE;
}
@@ -1624,18 +981,14 @@ static bool8 sub_81021FC(struct Task *task)
{
eSlotMachine->state = 19;
if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE)))
- {
IncrementGameStat(GAME_STAT_SLOT_JACKPOTS);
- }
if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY))
{
eSlotMachine->unk18 = 0;
eSlotMachine->state = 9;
}
if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER))
- {
eSlotMachine->state = 17;
- }
if (eSlotMachine->unk0A && eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY))
{
sub_8104CAC(4);
@@ -1758,56 +1111,18 @@ 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 @ unk_debug_bss_1_1\n\
- ldrb r0, [r0]\n\
- cmp r0, #0\n\
- bne ._233 @cond_branch\n\
- ldr r0, ._234 + 4 @ gSaveBlock1\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_1\n\
- .word gSaveBlock1\n\
- .word +0x2000000\n\
- .word 0x494");
-}
+#if DEBUG
+ if (unk_debug_bss_1_1 == 0)
+ gSaveBlock1.coins = eSlotMachine->coins;
#else
-static bool8 sub_8102424(struct Task *task)
-{
gSaveBlock1.coins = eSlotMachine->coins;
+#endif
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
eSlotMachine->state++;
return FALSE;
}
-#endif
static bool8 sub_8102460(struct Task *task)
{
@@ -1819,271 +1134,91 @@ static bool8 sub_8102460(struct Task *task)
}
#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");
+ if (debug_sub_811B634() != 0)
+ eSlotMachine->state = 5;
+ return FALSE;
}
+
#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_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\
- 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 @ gUnknown_083ECE42\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");
+ u8 r3;
+
+ if (eSlotMachine->unk0A == 0)
+ {
+#if DEBUG
+ if (unk_debug_bss_1_1 != 0 && unk_debug_bss_1_2 != 0)
+ {
+ eSlotMachine->unk04 = unk_debug_bss_1_3;
+ unk_debug_bss_1_2 = 0;
+ unk_debug_bss_1_3 = 0;
+ if (eSlotMachine->unk04 & 0x80)
+ debug_sub_811B5B4(&eSlotMachine->unk88, 1);
+ if (eSlotMachine->unk04 & 0x40)
+ debug_sub_811B5B4(&eSlotMachine->unk84, 1);
+ if (eSlotMachine->unk04 & 0x20)
+ debug_sub_811B5B4(&eSlotMachine->unk8C, 1);
+ if (eSlotMachine->unk04 & 0x10)
+ debug_sub_811B5B4(&eSlotMachine->unk80, 1);
+ if (eSlotMachine->unk04 & 8)
+ debug_sub_811B5B4(&eSlotMachine->unk7C, 1);
+ if (eSlotMachine->unk04 & 4)
+ debug_sub_811B5B4(&eSlotMachine->unk78, 1);
+ if (eSlotMachine->unk04 & 1)
+ debug_sub_811B5B4(&eSlotMachine->unk74, 1);
+ if (eSlotMachine->unk04 & 2)
+ debug_sub_811B5B4(&eSlotMachine->unk70, 1);
+ return;
+ }
+#endif
+ if (!(eSlotMachine->unk04 & 0xc0))
+ {
+ if (sub_8102540())
+ {
+ r3 = sub_8102578();
+ if (r3 != 3)
+ {
+ eSlotMachine->unk04 |= gUnknown_083ECE42[r3];
+#if DEBUG
+ if (eSlotMachine->unk04 & 0x80)
+ debug_sub_811B5B4(&eSlotMachine->unk88, 1);
+ if (eSlotMachine->unk04 & 0x40)
+ debug_sub_811B5B4(&eSlotMachine->unk84, 1);
+ if (eSlotMachine->unk04 & 0x20)
+ debug_sub_811B5B4(&eSlotMachine->unk8C, 1);
+#endif
+ if (r3 != 1)
+ {
+ return;
+ }
+ }
+ }
+ r3 = sub_81025BC();
+ if (r3 != 5)
+ {
+ eSlotMachine->unk04 |= gUnknown_083ECE48[r3];
+#if DEBUG
+ if (eSlotMachine->unk04 & 0x10)
+ debug_sub_811B5B4(&eSlotMachine->unk80, 1);
+ if (eSlotMachine->unk04 & 8)
+ debug_sub_811B5B4(&eSlotMachine->unk7C, 1);
+ if (eSlotMachine->unk04 & 4)
+ debug_sub_811B5B4(&eSlotMachine->unk78, 1);
+ if (eSlotMachine->unk04 & 1)
+ debug_sub_811B5B4(&eSlotMachine->unk74, 1);
+ if (eSlotMachine->unk04 & 2)
+ debug_sub_811B5B4(&eSlotMachine->unk70, 1);
+#endif
+ }
+ }
+ }
}
-#else
+
+/*
static void sub_8102484(void)
{
u8 r3;
@@ -2109,15 +1244,13 @@ static void sub_8102484(void)
}
}
}
-#endif
+*/
static void sub_81024F0(void)
{
eSlotMachine->unk06 = 0;
if (eSlotMachine->unk04)
- {
eSlotMachine->unk06 = 1;
- }
}
static u8 sub_810250C(u8 a0)
@@ -2127,9 +1260,7 @@ static u8 sub_810250C(u8 a0)
for (i = 0; i < 8; i++)
{
if (a0 & 1)
- {
return gUnknown_083ECE3A[i];
- }
a0 >>= 1;
}
return 0;
@@ -2139,9 +1270,7 @@ static bool8 sub_8102540(void)
{
u8 rval = Random();
if (gUnknown_083ECD04[eSlotMachine->unk01][eSlotMachine->bet - 1] > rval)
- {
return TRUE;
- }
return FALSE;
}
@@ -2156,9 +1285,7 @@ static u8 sub_8102578(void)
s16 rval = Random() & 0xff;
s16 value = gUnknown_083ECD16[i][eSlotMachine->unk01];
if (value > rval)
- {
break;
- }
}
return i;
}
@@ -2177,22 +1304,16 @@ static u8 sub_81025BC(void)
{
r3 += 10;
if (r3 > 0x100)
- {
r3 = 0x100;
- }
}
else if (i == 4 && eSlotMachine->unk03 == 1)
{
r3 -= 10;
if (r3 < 0)
- {
r3 = 0;
- }
}
if (r3 > rval)
- {
break;
- }
}
return i;
}
@@ -2203,10 +1324,9 @@ static const u8 gUnknown_083ECDAC[][17];
static u8 sub_810264C(u8 a0)
{
if (eSlotMachine->unk03 == 0)
- {
return gUnknown_083ECD46[a0][eSlotMachine->pikaPower];
- }
- return gUnknown_083ECDAC[a0][eSlotMachine->pikaPower];
+ else
+ return gUnknown_083ECDAC[a0][eSlotMachine->pikaPower];
}
static void sub_8102680(void)
@@ -2217,16 +1337,12 @@ static void sub_8102680(void)
eSlotMachine->unk05 = 0;
rval = Random();
if (rval < sub_810264C(0))
- {
return;
- }
for (i = 5; i > 0; i--)
{
rval = Random();
if (rval < sub_810264C(i))
- {
break;
- }
}
eSlotMachine->unk05 = i;
}
@@ -2237,10 +1353,9 @@ static bool8 sub_81026DC(u16 a0)
{
u16 rval = Random() & 0xff;
if (rval < gUnknown_083ECE12[a0])
- {
return TRUE;
- }
- return FALSE;
+ else
+ return FALSE;
}
static const u16 gUnknown_083ECE1C[][2];
@@ -2252,33 +1367,21 @@ static u16 dp15_jump_random_unknown(void)
u8 rval;
u8 value;
if (eSlotMachine->unk10 >= 300)
- {
r4 = 4;
- }
else if (eSlotMachine->unk10 >= 250)
- {
r4 = 3;
- }
else if (eSlotMachine->unk10 >= 200)
- {
r4 = 2;
- }
else if (eSlotMachine->unk10 >= 150)
- {
r4 = 1;
- }
rval = Random() % 100;
value = gUnknown_083ECE1C[r4][0];
if (rval < value)
- {
return 4;
- }
rval = Random() % 100;
value = gUnknown_083ECE1C[r4][1] + gUnknown_083ECE30[eSlotMachine->unk0B];
if (rval < value)
- {
return 2;
- }
return 8;
}
@@ -2287,13 +1390,9 @@ static void CheckMatch(void)
eSlotMachine->matchedSymbols = 0;
CheckMatch_CenterRow();
if (eSlotMachine->bet > 1)
- {
CheckMatch_TopAndBottom();
- }
if (eSlotMachine->bet > 2)
- {
CheckMatch_Diagonals();
- }
}
static const u16 sSlotMatchFlags[];
@@ -2326,9 +1425,7 @@ static void CheckMatch_TopAndBottom(void)
if (match != SLOT_MACHINE_MATCHED_NONE)
{
if (match == SLOT_MACHINE_MATCHED_1CHERRY)
- {
match = SLOT_MACHINE_MATCHED_2CHERRY;
- }
eSlotMachine->payout += sSlotPayouts[match];
eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
sub_8103E04(1);
@@ -2340,9 +1437,7 @@ static void CheckMatch_TopAndBottom(void)
if (match != SLOT_MACHINE_MATCHED_NONE)
{
if (match == SLOT_MACHINE_MATCHED_1CHERRY)
- {
match = SLOT_MACHINE_MATCHED_2CHERRY;
- }
eSlotMachine->payout += sSlotPayouts[match];
eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
sub_8103E04(2);
@@ -2386,21 +1481,13 @@ static const u8 sSym2Match[];
static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3)
{
if (c1 == c2 && c1 == c3)
- {
return sSym2Match[c1];
- }
if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE)
- {
return SLOT_MACHINE_MATCHED_777_MIXED;
- }
if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED)
- {
return SLOT_MACHINE_MATCHED_777_MIXED;
- }
if (c1 == SLOT_MACHINE_TAG_CHERRY)
- {
return SLOT_MACHINE_MATCHED_1CHERRY;
- }
return SLOT_MACHINE_MATCHED_NONE;
}
@@ -2412,13 +1499,13 @@ static void sub_8102A24(void)
static bool8 sub_8102A44(void)
{
if (FindTaskIdByFunc(sub_8102A64) == 0xff)
- {
return TRUE;
- }
- return FALSE;
+ else
+ return FALSE;
}
-static bool8 (*const gUnknown_083ECB20[])(struct Task *task) = {
+static bool8 (*const gUnknown_083ECB20[])(struct Task *task) =
+{
sub_8102A9C,
sub_8102AD0,
sub_8102B80
@@ -2426,7 +1513,8 @@ static bool8 (*const gUnknown_083ECB20[])(struct Task *task) = {
static void sub_8102A64(u8 taskId)
{
- while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId));
+ while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId))
+ ;
}
static bool8 sub_8102A9C(struct Task *task)
@@ -2448,43 +1536,31 @@ static bool8 sub_8102AD0(struct Task *task)
if (!task->data[1]--)
{
if (IsFanfareTaskInactive())
- {
PlaySE(SE_PIN);
- }
eSlotMachine->payout--;
if (eSlotMachine->coins < 9999)
- {
eSlotMachine->coins++;
- }
task->data[1] = 8;
if (gMain.heldKeys & A_BUTTON)
- {
task->data[1] = 4;
- }
}
if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON)
{
PlaySE(SE_PIN);
eSlotMachine->coins += eSlotMachine->payout;
if (eSlotMachine->coins > 9999)
- {
eSlotMachine->coins = 9999;
- }
eSlotMachine->payout = 0;
}
if (eSlotMachine->payout == 0)
- {
task->data[0]++;
- }
return FALSE;
}
static bool8 sub_8102B80(struct Task *task)
{
if (sub_8103E7C())
- {
DestroyTask(FindTaskIdByFunc(sub_8102A64));
- }
return FALSE;
}
@@ -2494,9 +1570,7 @@ static u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y)
{
s16 offset = (eSlotMachine->reelPositions[x] + y) % 21;
if (offset < 0)
- {
offset += 21;
- }
return sReelSymbols[x][offset];
}
@@ -2586,7 +1660,8 @@ static bool8 sub_8102E40(u8 a0)
return gTasks[eSlotMachine->reelTasks[a0]].data[14];
}
-static bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = {
+static bool8 (*const gUnknown_083ECB2C[])(struct Task *task) =
+{
sub_8102EA0,
sub_8102EA4,
sub_8102EC0,
@@ -2596,7 +1671,8 @@ static bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = {
static void sub_8102E68(u8 taskId)
{
- while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId));
+ while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId))
+ ;
}
static bool8 sub_8102EA0(struct Task *task)
@@ -2610,12 +1686,15 @@ static bool8 sub_8102EA4(struct Task *task)
return FALSE;
}
-static bool8 (*const gUnknown_083ECB40[])(void) = {
+static bool8 (*const gUnknown_083ECB40[])(void) =
+{
sub_810305C,
sub_81032C0,
sub_81033DC
};
-static void (*const gUnknown_083ECB4C[])(void) = {
+
+static void (*const gUnknown_083ECB4C[])(void) =
+{
sub_81034F4,
sub_8103540,
sub_810380C
@@ -2640,9 +1719,7 @@ static bool8 sub_8102F4C(struct Task *task)
u16 sp[] = {2, 4, 4, 4, 8};
s16 r2 = eSlotMachine->unk1C[task->data[15]] % 24;
if (r2 != 0)
- {
r2 = sub_8102CCC(task->data[15], eSlotMachine->unk1A);
- }
else if (eSlotMachine->unk2E[task->data[15]])
{
eSlotMachine->unk2E[task->data[15]]--;
@@ -2664,9 +1741,7 @@ static bool8 sub_8103008(struct Task *task)
task->data[1] = -task->data[1];
task->data[2]++;
if ((task->data[2] & 0x3) == 0)
- {
task->data[1] >>= 1;
- }
if (task->data[1] == 0)
{
task->data[0] = 0;
@@ -2676,7 +1751,8 @@ static bool8 sub_8103008(struct Task *task)
return FALSE;
}
-static bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = {
+static bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) =
+{
sub_8103154,
sub_81031B4,
sub_81031B4
@@ -2708,19 +1784,17 @@ static bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2)
static bool8 sub_81030E0(s16 y)
{
if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4)
- {
return TRUE;
- }
- return FALSE;
+ else
+ return FALSE;
}
static bool8 sub_8103134(void)
{
if (eSlotMachine->unk04 & 0xc2)
- {
return TRUE;
- }
- return FALSE;
+ else
+ return FALSE;
}
static bool8 sub_8103154(u8 a0, u8 a1)
@@ -2783,7 +1857,8 @@ static bool8 sub_81031B4(u8 tag1, u8 tag2)
return FALSE;
}
-static bool8 (*const gUnknown_083ECB70[])(void) = {
+static bool8 (*const gUnknown_083ECB70[])(void) =
+{
sub_81032E8,
sub_81032E8,
sub_810333C
@@ -2845,7 +1920,8 @@ static bool8 sub_810333C(void)
return FALSE;
}
-static bool8 (*const gUnknown_083ECB7C[])(u8 a0) = {
+static bool8 (*const gUnknown_083ECB7C[])(u8 a0) =
+{
sub_810341C,
sub_810341C,
sub_810347C
@@ -2887,14 +1963,11 @@ static bool8 sub_810347C(u8 a0)
s16 i;
s16 r8;
if (eSlotMachine->unk34[0] == eSlotMachine->unk34[1])
- {
return sub_810341C(a0);
- }
- r8 = 1;
if (eSlotMachine->unk34[0] == 1)
- {
r8 = 3;
- }
+ else
+ r8 = 1;
for (i = 0; i < 5; i++)
{
if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0)
@@ -2909,8 +1982,10 @@ static bool8 sub_810347C(u8 a0)
static void sub_81034F4(void)
{
- s16 i;
- for (i = 0; sub_81030E0(i); i++);
+ s16 i = 0;
+
+ while (sub_81030E0(i) != 0)
+ i++;
eSlotMachine->unk2E[0] = i;
}
@@ -2929,7 +2004,8 @@ static bool8 sub_8103520(u8 *a0)
return FALSE;
}
-static void (*const gUnknown_083ECB88[])(void) = {
+static void (*const gUnknown_083ECB88[])(void) =
+{
sub_8103564,
j5_08111E84,
sub_8103668
@@ -3050,19 +2126,17 @@ static void sub_8103668(void)
static bool8 sub_8103764(u8 a0, u8 a1)
{
if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0))
- {
return TRUE;
- }
- return FALSE;
+ else
+ return FALSE;
}
static bool8 sub_810378C(u8 a0, u8 a1, u8 a2)
{
if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1))
- {
return TRUE;
- }
- return FALSE;
+ else
+ return FALSE;
}
static bool8 sub_81037BC(u8 a0, u8 a1, u8 a2)
@@ -3078,7 +2152,8 @@ static bool8 sub_81037BC(u8 a0, u8 a1, u8 a2)
return TRUE;
}
-static void (*const gUnknown_083ECB94[])(void) = {
+static void (*const gUnknown_083ECB94[])(void) =
+{
sub_8103830,
sub_8103910,
sub_8103A78
@@ -3100,9 +2175,7 @@ static void sub_8103830(void)
{
u8 r0;
if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0)))
- {
break;
- }
i++;
}
}
@@ -3123,9 +2196,7 @@ static void sub_8103830(void)
while (1)
{
if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i))
- {
break;
- }
i++;
}
}
@@ -3172,9 +2243,7 @@ static void sub_8103910(void)
}
}
if (r8 == 0)
- {
break;
- }
sp0++;
}
eSlotMachine->unk2E[2] = sp0;
@@ -3236,7 +2305,8 @@ static void sub_8103C14(u8 a0)
sub_8103C48(taskId);
}
-static void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = {
+static void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) =
+{
sub_8103C78,
sub_8103CAC,
sub_8103CC8
@@ -3288,18 +2358,14 @@ static void sub_8103D50(u8 a0)
{
u8 i;
for (i = 0; i < gUnknown_083EDD3B[a0]; i++)
- {
sub_8103D00(gUnknown_083EDD35[a0][i]);
- }
}
static void sub_8103D8C(u8 a0)
{
u8 i;
for (i = 0; i < gUnknown_083EDD3B[a0]; i++)
- {
sub_8103D28(gUnknown_083EDD35[a0][i]);
- }
}
static void sub_8103DC8(void)
@@ -3329,7 +2395,7 @@ static bool8 sub_8103E38(void)
u8 i;
for (i = 0; i < 5; i++)
{
- struct Sprite *sprite = gSprites + eSlotMachine->unk44[i];
+ struct Sprite *sprite = &gSprites[eSlotMachine->unk44[i]];
if (sprite->data[1] && sprite->data[2])
return FALSE;
}
@@ -3416,9 +2482,7 @@ static void sub_8103FE8(u8 taskId)
task->data[1] = 4;
task->data[2] += task->data[3];
if (task->data[2] == 0 || task->data[2] == 2)
- {
task->data[3] = -task->data[3];
- }
}
LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20);
}
@@ -3450,7 +2514,8 @@ static bool8 sub_81040C8(void)
return gTasks[eSlotMachine->unk3E].data[15];
}
-static void (*const gUnknown_083ECBB4[])(struct Task *task) = {
+static void (*const gUnknown_083ECBB4[])(struct Task *task) =
+{
nullsub_68,
sub_810411C,
sub_8104144,
@@ -3464,7 +2529,6 @@ static void sub_81040E8(u8 taskId)
static void nullsub_68(struct Task *task)
{
-
}
static void sub_810411C(struct Task *task)
@@ -3473,10 +2537,11 @@ static void sub_810411C(struct Task *task)
task->data[0]++;
}
-static const u16 gUnknown_083ECBC4[][2] = {
+static const u16 gUnknown_083ECBC4[][2] =
+{
{0x9e, 0x6e},
{0x9f, 0x6f},
- {0xaf, 0x7f}
+ {0xaf, 0x7f},
};
static void sub_8104144(struct Task *task)
@@ -3568,7 +2633,8 @@ static bool8 sub_810432C(void)
return FALSE;
}
-static void (*const gUnknown_083ECBD0[])(struct Task *task) = {
+static void (*const gUnknown_083ECBD0[])(struct Task *task) =
+{
sub_810437C,
sub_81043EC,
sub_8104468,
@@ -3705,9 +2771,7 @@ static void sub_81045CC(struct Task *task)
if (eSlotMachine->unk05)
{
if (eSlotMachine->unk0A <= task->data[6])
- {
task->data[0]++;
- }
}
else if (task->data[6] > 3)
{
@@ -3774,9 +2838,7 @@ static void sub_81046C0(struct Task *task)
static void sub_8104764(struct Task *task)
{
if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8())
- {
task->data[0]++;
- }
}
static void sub_8104794(struct Task *task)
@@ -3788,13 +2850,9 @@ static void sub_8104794(struct Task *task)
r4 = ((task->data[1] - 8) & 0xff) >> 3;
REG_BG1HOFS = task->data[1] & 0x1ff;
if (task->data[3] >> 3 <= 25)
- {
sub_8104A88(r4);
- }
else
- {
task->data[0]++;
- }
}
static void sub_81047EC(struct Task *task)
@@ -3825,21 +2883,15 @@ static void sub_81047EC(struct Task *task)
static void sub_8104860(struct Task *task)
{
if (eSlotMachine->unk1A == task->data[1])
- {
task->data[0]++;
- }
else if (eSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0)
- {
eSlotMachine->unk1A >>= 1;
- }
}
static void sub_81048A8(struct Task *task)
{
if (sub_8104E18())
- {
DestroyTask(FindTaskIdByFunc(sub_810434C));
- }
}
static void sub_81048CC(struct Task *task)
@@ -3935,10 +2987,12 @@ static bool8 sub_8104AEC(void)
{
if (FindTaskIdByFunc(sub_8104B0C) == 0xFF)
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
-static void (*const gUnknown_083ECC30[])(struct Task *task) = {
+static void (*const gUnknown_083ECC30[])(struct Task *task) =
+{
sub_8104B3C,
sub_8104B60,
sub_8104B80,
@@ -3964,9 +3018,7 @@ static void sub_8104B3C(struct Task *task)
static void sub_8104B60(struct Task *task)
{
if (!gPaletteFade.active)
- {
task->data[0]++;
- }
}
static void sub_8104B80(struct Task *task)
@@ -4013,9 +3065,7 @@ static void sub_8104C5C(void)
task = gTasks + i;
task->data[1] = -1;
for (i = 4; i < 16; i++)
- {
task->data[i] = MAX_SPRITES;
- }
}
static void LoadSlotMachineWheelOverlay(void);
@@ -4094,8 +3144,9 @@ static bool8 sub_8104E18(void)
return TRUE;
}
-static void (*const gUnknown_083ECC54[])(struct Task *task) = {
- nullsub_69
+static void (*const gUnknown_083ECC54[])(struct Task *task) =
+{
+ nullsub_69,
};
static void sub_8104E74(u8 taskId)
@@ -4105,7 +3156,6 @@ static void sub_8104E74(u8 taskId)
static void nullsub_69(struct Task *task)
{
-
}
static const struct SpriteTemplate gSpriteTemplate_83ED414;
@@ -4141,14 +3191,11 @@ static void sub_8104F8C(void)
{
s16 i;
s16 x;
+
for (x = 203, i = 1; i < 10000; i *= 10, x -= 7)
- {
sub_8104FF4(x, 23, 0, i);
- }
for (x = 235, i = 1; i < 10000; i *= 10, x -= 7)
- {
sub_8104FF4(x, 23, 1, i);
- }
}
static const struct SpriteTemplate gSpriteTemplate_83ED42C;
@@ -4211,9 +3258,7 @@ static void sub_8105170(struct Sprite *sprite)
{
sprite->pos2.y = sprite->pos2.x = 8;
if ((sprite->animCmdIndex != 0 && sprite->animDelayCounter != 0) || (sprite->animCmdIndex == 0 && sprite->animDelayCounter == 0))
- {
sprite->pos2.y = -8;
- }
}
}
@@ -4225,14 +3270,14 @@ static const struct SubspriteTable gSubspriteTables_83ED75C[];
static void sub_81051C0(void)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED474, 0x170, 0x34, 7);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->coordOffsetEnabled = TRUE;
SetSubspriteTables(sprite, gSubspriteTables_83ED73C);
eSlotMachine->unk49[0] = spriteId;
spriteId = CreateSprite(&gSpriteTemplate_83ED48C, 0x170, 0x54, 7);
- sprite = gSprites + spriteId;
+ sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->coordOffsetEnabled = TRUE;
SetSubspriteTables(sprite, gSubspriteTables_83ED75C);
@@ -4245,7 +3290,7 @@ static const struct SubspriteTable gSubspriteTables_83ED78C[];
static void sub_8105284(void)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4A4, 0xa8 - gSpriteCoordOffsetX, 0x50, 7);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->coordOffsetEnabled = TRUE;
SetSubspriteTables(sprite, gSubspriteTables_83ED78C);
@@ -4261,7 +3306,7 @@ static void sub_81052EC(void)
for (i = 0, r5 = 0; i < 3; i++, r5 += 20)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0x00, 10);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->coordOffsetEnabled = TRUE;
sprite->data[7] = r5;
@@ -4283,14 +3328,14 @@ static const struct SubspriteTable gSubspriteTables_83ED7B4[];
static void sub_81053A0(void)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = 1;
SetSubspriteTables(sprite, gSubspriteTables_83ED7B4);
eSlotMachine->unk4E[0] = spriteId;
spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4);
- sprite = gSprites + spriteId;
+ sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = 1;
SetSubspriteTables(sprite, gSubspriteTables_83ED7B4);
@@ -4303,7 +3348,7 @@ static const struct SubspriteTable gSubspriteTables_83ED7D4[];
static void sub_810545C(void)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = 1;
SetSubspriteTables(sprite, gSubspriteTables_83ED7D4);
@@ -4314,29 +3359,24 @@ static void sub_81054B8(void)
{
u8 i;
- DestroySprite(gSprites + eSlotMachine->unk40);
+ DestroySprite(&gSprites[eSlotMachine->unk40]);
for (i = 0; i < 2; i++)
- {
- DestroySprite(gSprites + eSlotMachine->unk49[i]);
- }
+ DestroySprite(&gSprites[eSlotMachine->unk49[i]]);
for (i = 0; i < 3; i++)
- {
- DestroySprite(gSprites + eSlotMachine->unk4B[i]);
- }
+ DestroySprite(&gSprites[eSlotMachine->unk4B[i]]);
}
static void sub_8105524(void)
{
u8 i;
+
for (i = 0; i < 2; i++)
- {
- DestroySprite(gSprites + eSlotMachine->unk4E[i]);
- }
+ DestroySprite(&gSprites[eSlotMachine->unk4E[i]]);
}
static void sub_8105554(void)
{
- DestroySprite(gSprites + eSlotMachine->unk42);
+ DestroySprite(&gSprites[eSlotMachine->unk42]);
}
static const struct SpriteTemplate gSpriteTemplate_83ED504;
@@ -4344,7 +3384,7 @@ static const struct SpriteTemplate gSpriteTemplate_83ED504;
static void sub_8105578(void)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->hFlip = TRUE;
eSlotMachine->unk50[0] = spriteId;
@@ -4354,7 +3394,7 @@ static void sub_8105578(void)
sprite->data[7] = 0x20;
spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5);
- sprite = gSprites + spriteId;
+ sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
eSlotMachine->unk50[1] = spriteId;
sprite->data[1] = 1;
@@ -4395,9 +3435,7 @@ static void sub_81056C0(void)
u8 i;
for (i = 0; i < 2; i++)
- {
- DestroySprite(gSprites + eSlotMachine->unk50[i]);
- }
+ DestroySprite(&gSprites[eSlotMachine->unk50[i]]);
}
static const struct SpriteTemplate gSpriteTemplate_83ED51C;
@@ -4442,9 +3480,7 @@ static void sub_8105804(void)
u8 i;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0);
for (i = 0; i < 2; i++)
- {
- DestroySprite(gSprites + eSlotMachine->unk52[i]);
- }
+ DestroySprite(&gSprites[eSlotMachine->unk52[i]]);
}
static const struct SpriteTemplate gSpriteTemplate_83ED534;
@@ -4463,7 +3499,7 @@ static void sub_8105894(struct Sprite *sprite)
static void sub_81058A0(void)
{
- DestroySprite(gSprites + eSlotMachine->unk41);
+ DestroySprite(&gSprites[eSlotMachine->unk41]);
}
static const struct SpriteTemplate gSpriteTemplate_83ED54C;
@@ -4475,7 +3511,7 @@ static void sub_81058C4(void)
for (i = 0; i < 4; i++)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->coordOffsetEnabled = TRUE;
sprite->data[0] = sp[i];
@@ -4506,7 +3542,7 @@ static void sub_81059B8(void)
u8 i;
for (i = 0; i < 4; i++)
{
- DestroySprite(gSprites + eSlotMachine->unk54[i]);
+ DestroySprite(&gSprites[eSlotMachine->unk54[i]]);
}
}
@@ -4515,7 +3551,7 @@ static const struct SpriteTemplate gSpriteTemplate_83ED564;
static void sub_81059E8(void)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 1;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
InitSpriteAffineAnim(sprite);
@@ -4556,7 +3592,7 @@ u8 sub_8105ACC(void)
static void sub_8105AEC(void)
{
- struct Sprite *sprite = gSprites + eSlotMachine->unk43;
+ struct Sprite *sprite = &gSprites[eSlotMachine->unk43];
FreeOamMatrix(sprite->oam.matrixNum);
DestroySprite(sprite);
}
@@ -4566,7 +3602,7 @@ static const struct SpriteTemplate gSpriteTemplate_83ED6CC;
static u8 sub_8105B1C(s16 x, s16 y)
{
u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 2;
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
InitSpriteAffineAnim(sprite);
@@ -4581,7 +3617,7 @@ static void sub_8105B70(struct Sprite *sprite)
static void sub_8105B88(u8 spriteId)
{
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
FreeOamMatrix(sprite->oam.matrixNum);
DestroySprite(sprite);
}
@@ -4600,7 +3636,7 @@ static const struct SubspriteTable *const gUnknown_083EDBC4[];
static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4)
{
u8 spriteId = CreateSprite(gUnknown_083EDB5C[templateIdx], x, y, 16);
- struct Sprite *sprite = gSprites + spriteId;
+ struct Sprite *sprite = &gSprites[spriteId];
sprite->oam.priority = 3;
sprite->callback = callback;
sprite->data[6] = a4;
@@ -4657,30 +3693,26 @@ static void sub_8105D3C(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- sprite->pos1.x += 4;
- if (sprite->pos1.x >= 0xd0)
- {
- sprite->pos1.x = 0xd0;
- sprite->data[0]++;
- }
- break;
- case 1:
- if (++sprite->data[1] > 90)
- {
- sprite->data[0]++;
- }
- break;
- case 2:
- sprite->pos1.x += 4;
- if (sprite->pos1.x >= 0x110)
- {
- sprite->data[0]++;
- }
- break;
- case 3:
- sprite->data[7] = 0;
- break;
+ case 0:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0xd0)
+ {
+ sprite->pos1.x = 0xd0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] > 90)
+ sprite->data[0]++;
+ break;
+ case 2:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0x110)
+ sprite->data[0]++;
+ break;
+ case 3:
+ sprite->data[7] = 0;
+ break;
}
}
@@ -4688,30 +3720,26 @@ static void sub_8105DA4(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- sprite->pos1.x -= 4;
- if (sprite->pos1.x <= 0xd0)
- {
- sprite->pos1.x = 0xd0;
- sprite->data[0]++;
- }
- break;
- case 1:
- if (++sprite->data[1] > 90)
- {
- sprite->data[0]++;
- }
- break;
- case 2:
- sprite->pos1.x -= 4;
- if (sprite->pos1.x <= 0x90)
- {
- sprite->data[0]++;
- }
- break;
- case 3:
- sprite->data[7] = 0;
- break;
+ case 0:
+ sprite->pos1.x -= 4;
+ if (sprite->pos1.x <= 0xd0)
+ {
+ sprite->pos1.x = 0xd0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] > 90)
+ sprite->data[0]++;
+ break;
+ case 2:
+ sprite->pos1.x -= 4;
+ if (sprite->pos1.x <= 0x90)
+ sprite->data[0]++;
+ break;
+ case 3:
+ sprite->data[7] = 0;
+ break;
}
}
@@ -4719,41 +3747,37 @@ static void sub_8105E08(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- StartSpriteAnim(sprite, eSlotMachine->unk0A - 1);
+ case 0:
+ StartSpriteAnim(sprite, eSlotMachine->unk0A - 1);
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ if (++sprite->data[1] >= 4)
+ {
sprite->data[0]++;
- // fallthrough
- case 1:
- if (++sprite->data[1] >= 4)
- {
- sprite->data[0]++;
- sprite->data[1] = 0;
- }
- break;
- case 2:
- sprite->pos1.x += 4;
- if (sprite->pos1.x >= 0xd0)
- {
- sprite->pos1.x = 0xd0;
- sprite->data[0]++;
- }
- break;
- case 3:
- if (++sprite->data[1] > 90)
- {
- sprite->data[0]++;
- }
- break;
- case 4:
- sprite->pos1.x += 4;
- if (sprite->pos1.x >= 0xf8)
- {
- sprite->data[0]++;
- }
- break;
- case 5:
- sprite->data[7] = 0;
- break;
+ sprite->data[1] = 0;
+ }
+ break;
+ case 2:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0xd0)
+ {
+ sprite->pos1.x = 0xd0;
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ if (++sprite->data[1] > 90)
+ sprite->data[0]++;
+ break;
+ case 4:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0xf8)
+ sprite->data[0]++;
+ break;
+ case 5:
+ sprite->data[7] = 0;
+ break;
}
}
@@ -4761,39 +3785,39 @@ static void sub_8105EB4(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- sprite->animPaused = TRUE;
+ case 0:
+ sprite->animPaused = TRUE;
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ sprite->pos1.y += 8;
+ if (sprite->pos1.y >= 0x70)
+ {
+ sprite->pos1.y = 0x70;
+ sprite->data[1] = 16;
sprite->data[0]++;
- // fallthrough
- case 1:
- sprite->pos1.y += 8;
- if (sprite->pos1.y >= 0x70)
- {
- sprite->pos1.y = 0x70;
- sprite->data[1] = 16;
- sprite->data[0]++;
- }
- break;
- case 2:
- if (sprite->data[2] == 0)
+ }
+ break;
+ case 2:
+ if (sprite->data[2] == 0)
+ {
+ sprite->pos1.y -= sprite->data[1];
+ sprite->data[1] = -sprite->data[1];
+ if (++sprite->data[3] >= 2)
{
- sprite->pos1.y -= sprite->data[1];
- sprite->data[1] = -sprite->data[1];
- if (++sprite->data[3] >= 2)
+ sprite->data[1] >>= 2;
+ sprite->data[3] = 0;
+ if (sprite->data[1] == 0)
{
- sprite->data[1] >>= 2;
- sprite->data[3] = 0;
- if (sprite->data[1] == 0)
- {
- sprite->data[0]++;
- sprite->data[7] = 0;
- sprite->animPaused = FALSE;
- }
+ sprite->data[0]++;
+ sprite->data[7] = 0;
+ sprite->animPaused = FALSE;
}
}
- sprite->data[2]++;
- sprite->data[2] &= 0x07;
- break;
+ }
+ sprite->data[2]++;
+ sprite->data[2] &= 0x07;
+ break;
}
}
@@ -4801,21 +3825,19 @@ static void sub_8105F54(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- if (++sprite->data[1] > 8)
- {
- sprite->data[0]++;
- }
- break;
- case 1:
- sprite->pos1.y += 2;
- if (sprite->pos1.y >= 0x30)
- {
- sprite->pos1.y = 0x30;
- sprite->data[0]++;
- sprite->data[7] = 0;
- }
- break;
+ case 0:
+ if (++sprite->data[1] > 8)
+ sprite->data[0]++;
+ break;
+ case 1:
+ sprite->pos1.y += 2;
+ if (sprite->pos1.y >= 0x30)
+ {
+ sprite->pos1.y = 0x30;
+ sprite->data[0]++;
+ sprite->data[7] = 0;
+ }
+ break;
}
}
@@ -4823,35 +3845,33 @@ static void sub_8105F9C(struct Sprite *sprite)
{
switch (sprite->data[0])
{
- case 0:
- sprite->invisible = TRUE;
- if (++sprite->data[1] > 0x20)
- {
- sprite->data[0]++;
- sprite->data[1] = 5;
- sprite->oam.mosaic = TRUE;
- sprite->invisible = FALSE;
- StartSpriteAnim(sprite, 1);
- REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8;
- }
- break;
- case 1:
- sprite->data[1] -= (sprite->data[2] >> 8);
- if (sprite->data[1] < 0)
- {
- sprite->data[1] = 0;
- }
+ case 0:
+ sprite->invisible = TRUE;
+ if (++sprite->data[1] > 0x20)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 5;
+ sprite->oam.mosaic = TRUE;
+ sprite->invisible = FALSE;
+ StartSpriteAnim(sprite, 1);
REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8;
- sprite->data[2] &= 0xff;
- sprite->data[2] += 0x80;
- if (sprite->data[1] == 0)
- {
- sprite->data[0]++;
- sprite->data[7] = 0;
- sprite->oam.mosaic = FALSE;
- StartSpriteAnim(sprite, 0);
- }
- break;
+ }
+ break;
+ case 1:
+ sprite->data[1] -= (sprite->data[2] >> 8);
+ if (sprite->data[1] < 0)
+ sprite->data[1] = 0;
+ REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8;
+ sprite->data[2] &= 0xff;
+ sprite->data[2] += 0x80;
+ if (sprite->data[1] == 0)
+ {
+ sprite->data[0]++;
+ sprite->data[7] = 0;
+ sprite->oam.mosaic = FALSE;
+ StartSpriteAnim(sprite, 0);
+ }
+ break;
}
}
@@ -4889,40 +3909,30 @@ static void sub_81060FC(struct Sprite *sprite)
switch (sprite->data[0])
{
- case 0:
- sprite->pos2.x = sp00[sprite->data[6]];
- sprite->pos2.y = sp10[sprite->data[6]];
- sprite->data[1] = sp20[sprite->data[6]];
+ case 0:
+ sprite->pos2.x = sp00[sprite->data[6]];
+ sprite->pos2.y = sp10[sprite->data[6]];
+ sprite->data[1] = sp20[sprite->data[6]];
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ if (sprite->data[1]-- == 0)
sprite->data[0]++;
- // fallthrough
- case 1:
- if (sprite->data[1]-- == 0)
- {
- sprite->data[0]++;
- }
- break;
- case 2:
- if (sprite->pos2.x > 0)
- {
- sprite->pos2.x -= 4;
- }
- else if (sprite->pos2.x < 0)
- {
- sprite->pos2.x += 4;
- }
- if (sprite->pos2.y > 0)
- {
- sprite->pos2.y -= 4;
- }
- else if (sprite->pos2.y < 0)
- {
- sprite->pos2.y += 4;
- }
- if (sprite->pos2.x == 0 && sprite->pos2.y == 0)
- {
- sprite->data[0]++;
- }
- break;
+ break;
+ case 2:
+ if (sprite->pos2.x > 0)
+ sprite->pos2.x -= 4;
+ else if (sprite->pos2.x < 0)
+ sprite->pos2.x += 4;
+
+ if (sprite->pos2.y > 0)
+ sprite->pos2.y -= 4;
+ else if (sprite->pos2.y < 0)
+ sprite->pos2.y += 4;
+
+ if (sprite->pos2.x == 0 && sprite->pos2.y == 0)
+ sprite->data[0]++;
+ break;
}
}
@@ -4937,10 +3947,8 @@ static void sub_81061C8(struct Sprite *sprite)
}
sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]);
sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]);
- if (sprite->data[1])
- {
+ if (sprite->data[1] != 0)
sprite->data[1]--;
- }
}
static void sub_8106230(struct Sprite *sprite)
@@ -4959,13 +3967,9 @@ static void sub_8106230(struct Sprite *sprite)
sprite->data[2] = sprite->data[1] + 0xb0;
sprite->data[3] = 0xf0 - sprite->data[1];
if (sprite->data[2] > 0xd0)
- {
sprite->data[2] = 0xd0;
- }
if (sprite->data[3] < 0xd0)
- {
sprite->data[3] = 0xd0;
- }
eSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3];
if (sprite->data[1] > 0x33)
{
@@ -4975,9 +3979,7 @@ static void sub_8106230(struct Sprite *sprite)
break;
case 2:
if (eSlotMachine->bet == 0)
- {
break;
- }
sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0);
eSlotMachine->win0h = 0xc0e0;
eSlotMachine->win0v = 0x6880;
@@ -4990,13 +3992,9 @@ static void sub_8106230(struct Sprite *sprite)
sprite->data[2] = sprite->data[1] + 0xc0;
sprite->data[3] = 0xe0 - sprite->data[1];
if (sprite->data[2] > 0xd0)
- {
sprite->data[2] = 0xd0;
- }
if (sprite->data[3] < 0xd0)
- {
sprite->data[3] = 0xd0;
- }
eSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3];
if (sprite->data[1] > 0x0f)
{
@@ -5009,7 +4007,6 @@ static void sub_8106230(struct Sprite *sprite)
static void nullsub_70(void)
{
-
}
static void sub_8106364(void)
@@ -5058,14 +4055,13 @@ static void sub_8106404(void)
{
u8 j;
for (j = 0; j < 0x20; j++, dest++)
- {
*dest = src[j];
- }
}
LoadSpriteSheet(sheet);
}
-static void sub_8106448(void) {
+static void sub_8106448(void)
+{
LZDecompressWram(gSlotMachine_Gfx, eSlotMachineGfxBuffer);
DmaCopyLarge16(3, eSlotMachineGfxBuffer, BG_VRAM, SLOTMACHINE_GFX_TILES * 32, 0x1000);
@@ -5074,12 +4070,14 @@ static void sub_8106448(void) {
LoadPalette(gPalette_83EDE24, 208, 32);
}
-static void sub_81064B8(void) {
+static void sub_81064B8(void)
+{
CpuCopy16(gUnknown_08E95AB8, BG_SCREEN_ADDR(29), 20 * 32 * 2);
LoadSlotMachineWheelOverlay();
}
-static void LoadSlotMachineWheelOverlay(void) {
+static void LoadSlotMachineWheelOverlay(void)
+{
s16 x, y, dx;
u16 *screen;
@@ -5099,13 +4097,12 @@ static void LoadSlotMachineWheelOverlay(void) {
screen[12 * 32 + x] = 0x28BE;
for (y = 7; y <= 11; y++)
- {
screen[y * 32 + x] = 0x20BF;
- }
}
}
-static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
+static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4)
+{
u16 *vram = BG_SCREEN_ADDR(29);
vram[15 * 32 + arg0] = arg1;
@@ -5125,1230 +4122,10 @@ static void sub_81065DC(void)
for (y = 0; y < 20; y++)
{
for (x = 0; x < 30; x++)
- {
screen[x + y * 32] = 0;
- }
}
}
-#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_3\n"
- " .word unk_debug_bss_1_0\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_3\n"
- " .word unk_debug_bss_1_0\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_3\n"
- " .word unk_debug_bss_1_0\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_3\n"
- " .word unk_debug_bss_1_0\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_3\n"
- " .word unk_debug_bss_1_0\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_3\n"
- " .word unk_debug_bss_1_0\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_3\n"
- " .word unk_debug_bss_1_0\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_3\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 Menu_PrintText\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 Menu_PrintText\n"
- " ldr r0, .__21 + 4\n"
- " mov r1, #0x1\n"
- " mov r2, #0x3\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 8\n"
- " mov r1, #0x1\n"
- " mov r2, #0x5\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 12\n"
- " mov r1, #0x1\n"
- " mov r2, #0x7\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 16\n"
- " mov r1, #0x1\n"
- " mov r2, #0x9\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 20\n"
- " mov r1, #0x1\n"
- " mov r2, #0xb\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 24\n"
- " mov r1, #0x1\n"
- " mov r2, #0xd\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 28\n"
- " mov r1, #0x1\n"
- " mov r2, #0xf\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 32\n"
- " mov r1, #0x1\n"
- " mov r2, #0x11\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 36\n"
- " mov r1, #0xf\n"
- " mov r2, #0x1\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 40\n"
- " mov r1, #0xf\n"
- " mov r2, #0x3\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 44\n"
- " mov r1, #0xf\n"
- " mov r2, #0x5\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 48\n"
- " mov r1, #0xf\n"
- " mov r2, #0x7\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 52\n"
- " mov r1, #0xf\n"
- " mov r2, #0x9\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 56\n"
- " mov r1, #0xf\n"
- " mov r2, #0xb\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 60\n"
- " mov r1, #0xf\n"
- " mov r2, #0xd\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 64\n"
- " mov r1, #0xf\n"
- " mov r2, #0xf\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__21 + 68\n"
- " mov r1, #0xf\n"
- " mov r2, #0x11\n"
- " bl Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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 Menu_PrintText\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_0\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 Menu_PrintText\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_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"
- );
-}
-
-__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 Menu_DrawStdWindowFrame\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 Menu_EraseScreen\n"
- " mov r0, #0x0\n"
- " mov r1, #0x0\n"
- " mov r2, #0x9\n"
- " mov r3, #0x5\n"
- " bl Menu_DrawStdWindowFrame\n"
- " ldr r0, .__85\n"
- " mov r1, #0x1\n"
- " mov r2, #0x1\n"
- " bl Menu_PrintText\n"
- " ldr r0, .__85 + 4\n"
- " mov r1, #0x1\n"
- " mov r2, #0x3\n"
- " bl Menu_PrintText\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 Menu_EraseScreen\n"
- " mov r0, #0x0\n"
- " mov r1, #0x0\n"
- " mov r2, #0xa\n"
- " mov r3, #0x13\n"
- " bl Menu_DrawStdWindowFrame\n"
- " ldr r0, .__91 + 8\n"
- " mov r1, #0x1\n"
- " mov r2, #0x1\n"
- " bl Menu_PrintText\n"
- " ldr r3, .__91 + 12\n"
- " mov r0, #0x2\n"
- " mov r1, #0x3\n"
- " mov r2, #0x8\n"
- " bl Menu_PrintItems\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_2\n"
- " .word unk_debug_bss_1_3\n"
- " .word Str_841B254\n"
- " .word _841B270\n"
- " .word unk_debug_bss_1_4\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"
- " 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 Menu_EraseScreen\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_2\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 Menu_EraseScreen\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 Menu_PrintText\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_4\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 Menu_PrintText\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 GetTagOfReelSymbolOnScreenAtPos\n"
- " lsl r0, r0, #0x18\n"
- " lsr r7, r0, #0x18\n"
- " mov r0, #0x0\n"
- " mov r1, #0x2\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 GetTagOfReelSymbolOnScreenAtPos\n"
- " lsl r0, r0, #0x18\n"
- " lsr r6, r0, #0x18\n"
- " mov r0, #0x1\n"
- " mov r1, #0x1\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 GetTagOfReelSymbolOnScreenAtPos\n"
- " lsl r0, r0, #0x18\n"
- " lsr r4, r0, #0x18\n"
- " mov r0, #0x1\n"
- " mov r1, #0x3\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 GetTagOfReelSymbolOnScreenAtPos\n"
- " lsl r0, r0, #0x18\n"
- " lsr r5, r0, #0x18\n"
- " mov r0, #0x2\n"
- " mov r1, #0x2\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 GetTagOfReelSymbolOnScreenAtPos\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 Menu_PrintText\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_4\n"
- " .word +0x2000000\n"
- " .word Str_841B2BF\n"
- "\n"
- );
-}
-#endif
-
static const u8 sReelSymbols[][21] =
{
{
@@ -6373,7 +4150,8 @@ static const u8 sReelSymbols[][21] =
SLOT_MACHINE_TAG_POWER,
SLOT_MACHINE_TAG_LOTAD,
SLOT_MACHINE_TAG_REPLAY
- }, {
+ },
+ {
SLOT_MACHINE_TAG_7_RED,
SLOT_MACHINE_TAG_CHERRY,
SLOT_MACHINE_TAG_REPLAY,
@@ -6395,7 +4173,8 @@ static const u8 sReelSymbols[][21] =
SLOT_MACHINE_TAG_LOTAD,
SLOT_MACHINE_TAG_REPLAY,
SLOT_MACHINE_TAG_CHERRY
- }, {
+ },
+ {
SLOT_MACHINE_TAG_7_RED,
SLOT_MACHINE_TAG_POWER,
SLOT_MACHINE_TAG_7_BLUE,
@@ -6417,7 +4196,7 @@ static const u8 sReelSymbols[][21] =
SLOT_MACHINE_TAG_REPLAY,
SLOT_MACHINE_TAG_LOTAD,
SLOT_MACHINE_TAG_CHERRY
- }
+ },
};
static const u8 gUnknown_083ECCF1[] = {
@@ -7782,33 +5561,204 @@ static const u16 sReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/re
#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[] =
+static void debug_sub_811B1C4(void)
+{
+ unk_debug_bss_1_3 |= 2;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 2) ? 0 : 2;
+}
+
+static void debug_sub_811B1EC(void)
+{
+ unk_debug_bss_1_3 |= 1;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 1) ? 0 : 1;
+}
+
+static void debug_sub_811B210(void)
+{
+ unk_debug_bss_1_3 |= 4;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 4) ? 0 : 4;
+}
+
+static void debug_sub_811B238(void)
+{
+ unk_debug_bss_1_3 |= 8;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 8) ? 0 : 8;
+}
+
+static void debug_sub_811B260(void)
+{
+ unk_debug_bss_1_3 |= 0x10;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 0x10) ? 0 : 0x10;
+}
+
+static void debug_sub_811B288(void)
+{
+ unk_debug_bss_1_3 |= 0x40;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 0x40) ? 0 : 0x40;
+}
+
+static void debug_sub_811B2B0(void)
+{
+ unk_debug_bss_1_3 |= 0x80;
+ unk_debug_bss_1_0 = (unk_debug_bss_1_0 == 0x80) ? 0 : 0x80;
+}
+
+static void debug_sub_811B2D8(void)
+{
+ unk_debug_bss_1_3 |= 0x20;
+}
+
+static void debug_sub_811B2E8(void)
+{
+ u8 text[2];
+
+ ConvertIntToDecimalStringN(text, eSlotMachine->unk01 + 1, 2, 1);
+ Menu_PrintText(text, 6, 1);
+}
+
+static const u8 Str_841B1C4[] = _("SETTEI");
+static const u8 Str_841B1CB[] = _("MAWASITA");
+static const u8 Str_841B1D4[] = _("MODOSI");
+static const u8 Str_841B1DB[] = _("NOMARE");
+static const u8 Str_841B1E2[] = _("MAE 7");
+static const u8 Str_841B1E8[] = _("LR  HENKOU");
+static const u8 Str_841B1F3[] = _("START  JIDOUSU");
+static const u8 Str_841B202[] = _("SELECT  SETTEI");
+static const u8 Str_841B211[] = _("TYUHSEN");
+static const u8 Str_841B219[] = _("CHERRY");
+static const u8 Str_841B220[] = _("REPLAY");
+static const u8 Str_841B227[] = _("HASUBO");
+static const u8 Str_841B22E[] = _("RURIRI");
+static const u8 Str_841B235[] = _("INAZU");
+static const u8 Str_841B23B[] = _("REG");
+static const u8 Str_841B23F[] = _("BIG");
+static const u8 Str_841B243[] = _("BD");
+static const u8 Str_841B246[] = _("R7");
+static const u8 Str_841B249[] = _("B7");
+static const u8 Str_841B24C[] = _("A  COIN");
+static const u8 Str_841B254[] = _("TYUHSEN");
+static const u8 Str_841B25C[] = _("UD  100");
+static const u8 Str_841B264[] = _("LR  1000");
+static const u8 Str_841B26D[] = _("×");
+
+void debug_sub_811B310(void)
+{
+ u8 text[5];
+
+ Menu_PrintText(Str_841B1C4, 1, 1);
+ Menu_PrintText(Str_841B1CB, 1, 3);
+ Menu_PrintText(Str_841B1D4, 1, 5);
+ Menu_PrintText(Str_841B1DB, 1, 7);
+ Menu_PrintText(Str_841B1E2, 1, 9);
+ Menu_PrintText(Str_841B1E8, 1, 11);
+ Menu_PrintText(Str_841B1F3, 1, 13);
+ Menu_PrintText(Str_841B202, 1, 15);
+ Menu_PrintText(Str_841B24C, 1, 17);
+ Menu_PrintText(Str_841B211, 15, 1);
+ Menu_PrintText(Str_841B219, 15, 3);
+ Menu_PrintText(Str_841B220, 15, 5);
+ Menu_PrintText(Str_841B227, 15, 7);
+ Menu_PrintText(Str_841B22E, 15, 9);
+ Menu_PrintText(Str_841B235, 15, 11);
+ Menu_PrintText(Str_841B23B, 15, 13);
+ Menu_PrintText(Str_841B23F, 15, 15);
+ Menu_PrintText(Str_841B243, 15, 17);
+ if (eSlotMachine->unk03 == 0)
+ Menu_PrintText(Str_841B246, 10, 9);
+ else
+ Menu_PrintText(Str_841B249, 10, 9);
+
+#define PRINT_NUMBER(n, x, y) \
+ ConvertIntToDecimalStringN(text, n, 2, 4); \
+ Menu_PrintText(text, x, y);
+
+ PRINT_NUMBER(eSlotMachine->unk68, 10, 3);
+ PRINT_NUMBER(eSlotMachine->unk6C, 10, 5);
+ PRINT_NUMBER(eSlotMachine->unk10, 10, 7);
+ PRINT_NUMBER(eSlotMachine->unk70, 20, 3);
+ PRINT_NUMBER(eSlotMachine->unk74, 20, 5);
+ PRINT_NUMBER(eSlotMachine->unk78, 20, 7);
+ PRINT_NUMBER(eSlotMachine->unk7C, 20, 9);
+ PRINT_NUMBER(eSlotMachine->unk80, 20, 11);
+ PRINT_NUMBER(eSlotMachine->unk84, 20, 13);
+ PRINT_NUMBER(eSlotMachine->unk88, 20, 15);
+ PRINT_NUMBER(eSlotMachine->unk8C, 20, 17);
+
+#undef PRINT_NUMBER
+
+ if (unk_debug_bss_1_0 != 0)
+ {
+ u8 y = 0;
+
+ switch (unk_debug_bss_1_0)
+ {
+ case 2:
+ y = 3;
+ break;
+ case 1:
+ y = 5;
+ break;
+ case 4:
+ y = 7;
+ break;
+ case 8:
+ y = 9;
+ break;
+ case 16:
+ y = 11;
+ break;
+ case 64:
+ y = 13;
+ break;
+ case 128:
+ y = 15;
+ break;
+ }
+ Menu_PrintText(Str_841B26D, 23, y);
+ }
+ debug_sub_811B2E8();
+}
+
+static void debug_sub_811B5B4(s32 *a, s32 b)
+{
+ *a += b;
+ if (*a > 9999)
+ *a = 9999;
+}
+
+static void debug_sub_811B5D0(void)
+{
+ unk_debug_bss_1_0 = 0;
+ unk_debug_bss_1_2 = 0;
+ unk_debug_bss_1_3 = 0;
+ unk_debug_bss_1_4 = 0;
+ eSlotMachine->unk68 = 0;
+ eSlotMachine->unk6C = 0;
+ eSlotMachine->unk70 = 0;
+ eSlotMachine->unk74 = 0;
+ eSlotMachine->unk78 = 0;
+ eSlotMachine->unk7C = 0;
+ eSlotMachine->unk80 = 0;
+ eSlotMachine->unk84 = 0;
+ eSlotMachine->unk88 = 0;
+ eSlotMachine->unk8C = 0;
+ eSlotMachine->unk90 = 0;
+}
+
+static void debug_sub_811B620(void)
+{
+ CreateTask(debug_sub_811B654, 0);
+}
+
+static u8 debug_sub_811B634(void)
+{
+ if (FindTaskIdByFunc(debug_sub_811B654) == 0xFF)
+ return 1;
+ else
+ return 0;
+}
+
+static const struct {const u8 *text; void (*func)();} _841B270[] =
{
{Str_841B219, debug_sub_811B1C4},
{Str_841B220, debug_sub_811B1EC},
@@ -7820,9 +5770,178 @@ const struct {const u8 *text; void (*func)();} _841B270[] =
{Str_841B243, debug_sub_811B2D8},
};
-const u8 Str_841B2B0[] = _("·カウントエラーがおきました");
-const u8 Str_841B2BF[] = _("·リールそうさで エラーが おきました");
-const u8 Str_841B2D3[] = _("·フラグオフエラーが おきました");
-const u8 Str_841B2E4[] = _("·ボーナスこやくの エラーが おきました");
+static void debug_sub_811B654(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ s8 selection;
+
+ switch (task->data[0])
+ {
+ case 0:
+ Menu_DrawStdWindowFrame(0, 0, 24, 19);
+ debug_sub_811B310();
+ task->data[0]++;
+ break;
+ case 1:
+ if (gMain.newKeys & B_BUTTON)
+ {
+ Menu_EraseScreen();
+ DestroyTask(taskId);
+ break;
+ }
+ if (gMain.newKeys & 0x20)
+ {
+ eSlotMachine->unk01--;
+ if ((s8)eSlotMachine->unk01 < 0) // Why? It's unsigned
+ eSlotMachine->unk01 = 5;
+ debug_sub_811B2E8();
+ break;
+ }
+ if (gMain.newKeys & 0x10)
+ {
+ eSlotMachine->unk01++;
+ if (eSlotMachine->unk01 > 5)
+ eSlotMachine->unk01 = 0;
+ debug_sub_811B2E8();
+ break;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ task->data[0] = 3;
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 9, 5);
+ Menu_PrintText(Str_841B25C, 1, 1);
+ Menu_PrintText(Str_841B264, 1, 3);
+ break;
+ }
+ if (gMain.newKeys & 4)
+ {
+ unk_debug_bss_1_2 = 0;
+ unk_debug_bss_1_3 = 0;
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 10, 19);
+ Menu_PrintText(Str_841B254, 1, 1);
+ Menu_PrintItems(2, 3, 8, (void *)_841B270);
+ InitMenu(0, 1, 3, 8, 0, 9);
+ task->data[0]++;
+ }
+ if (gMain.newKeys & 8)
+ {
+ unk_debug_bss_1_4 = 1;
+ Menu_EraseScreen();
+ DestroyTask(taskId);
+ }
+ break;
+ case 2:
+ selection = Menu_ProcessInput();
+ if (selection == -2)
+ break;
+ if (selection != -1)
+ {
+ unk_debug_bss_1_2 = 1;
+ _841B270[selection].func();
+ }
+ Menu_EraseScreen();
+ DestroyTask(taskId);
+ break;
+ case 3:
+ if (gMain.newAndRepeatedKeys & 0x80)
+ {
+ eSlotMachine->coins += 100;
+ if (eSlotMachine->coins > 9999)
+ eSlotMachine->coins = 9999;
+ break;
+ }
+ if (gMain.newAndRepeatedKeys & 0x40)
+ {
+ eSlotMachine->coins -= 100;
+ if (eSlotMachine->coins <= 0)
+ eSlotMachine->coins = 9999;
+ break;
+ }
+ if (gMain.newAndRepeatedKeys & 0x20)
+ {
+ eSlotMachine->coins -= 1000;
+ if (eSlotMachine->coins <= 0)
+ eSlotMachine->coins = 9999;
+ break;
+ }
+ if (gMain.newAndRepeatedKeys & 0x10)
+ {
+ eSlotMachine->coins += 1000;
+ if (eSlotMachine->coins > 9999)
+ eSlotMachine->coins = 9999;
+ break;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ Menu_EraseScreen();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static const u8 Str_841B2B0[] = _("·カウントエラーがおきました");
+static const u8 Str_841B2BF[] = _("·リールそうさで エラーが おきました");
+static const u8 Str_841B2D3[] = _("·フラグオフエラーが おきました");
+static const u8 Str_841B2E4[] = _("·ボーナスこやくの エラーが おきました");
+
+static void debug_sub_811B894(void)
+{
+ if (eSlotMachine->matchedSymbols & 0x180)
+ {
+ eSlotMachine->unk90++;
+ if (eSlotMachine->unk90 > 9999)
+ eSlotMachine->unk90 = 9999;
+ if (eSlotMachine->unk90 != eSlotMachine->unk88)
+ {
+ Menu_PrintText(Str_841B2B0, 4, 15);
+ unk_debug_bss_1_4 = 0;
+ }
+ if (!(eSlotMachine->unk04 & 0x80))
+ {
+ Menu_PrintText(Str_841B2D3, 4, 17);
+ unk_debug_bss_1_4 = 0;
+ }
+ }
+ else if (eSlotMachine->matchedSymbols != 0)
+ {
+ if ((eSlotMachine->unk04 & 0x80) && !(eSlotMachine->matchedSymbols & 3))
+ {
+ Menu_PrintText(Str_841B2E4, 4, 2);
+ unk_debug_bss_1_4 = 0;
+ }
+ }
+ if (eSlotMachine->matchedSymbols == 0 && eSlotMachine->bet == 3 && !(eSlotMachine->unk04 & 0x80))
+ {
+ u8 sym_0_1 = GetTagOfReelSymbolOnScreenAtPos(0, 1);
+ u8 sym_0_2 = GetTagOfReelSymbolOnScreenAtPos(0, 2);
+ u8 sym_0_3 = GetTagOfReelSymbolOnScreenAtPos(0, 3);
+
+ u8 sym_1_1 = GetTagOfReelSymbolOnScreenAtPos(1, 1);
+ u8 sym_1_2 = GetTagOfReelSymbolOnScreenAtPos(1, 2);
+ u8 sym_1_3 = GetTagOfReelSymbolOnScreenAtPos(1, 3);
+
+ u8 sym_2_1 = GetTagOfReelSymbolOnScreenAtPos(2, 1);
+ u8 sym_2_2 = GetTagOfReelSymbolOnScreenAtPos(2, 2);
+ u8 sym_2_3 = GetTagOfReelSymbolOnScreenAtPos(2, 3);
+
+ if ((sym_0_1 == 0 && sym_1_1 == 1 && sym_2_1 == 0)
+ || (sym_0_2 == 0 && sym_1_2 == 1 && sym_2_2 == 0)
+ || (sym_0_3 == 0 && sym_1_3 == 1 && sym_2_3 == 0)
+ || (sym_0_1 == 0 && sym_1_2 == 1 && sym_2_3 == 0)
+ || (sym_0_3 == 0 && sym_1_2 == 1 && sym_2_1 == 0)
+ || (sym_0_1 == 1 && sym_1_1 == 0 && sym_2_1 == 1)
+ || (sym_0_2 == 1 && sym_1_2 == 0 && sym_2_2 == 1)
+ || (sym_0_3 == 1 && sym_1_3 == 0 && sym_2_3 == 1)
+ || (sym_0_1 == 1 && sym_1_2 == 0 && sym_2_3 == 1)
+ || (sym_0_3 == 1 && sym_1_2 == 0 && sym_2_1 == 1))
+ {
+ Menu_PrintText(Str_841B2BF, 4, 0);
+ unk_debug_bss_1_4 = 0;
+ }
+ }
+}
#endif