summaryrefslogtreecommitdiff
path: root/src/field/slot_machine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/field/slot_machine.c')
-rw-r--r--src/field/slot_machine.c1237
1 files changed, 1231 insertions, 6 deletions
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index 9ff3a037c..e231f686d 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -17,7 +17,8 @@
#include "menu.h"
#include "ewram.h"
-struct UnkStruct1 {
+struct UnkStruct1
+{
/*0x00*/ u8 unk00;
/*0x01*/ u8 unk01;
/*0x02*/ s16 unk02;
@@ -2854,7 +2855,13 @@ static void sub_8104C5C(void)
static void LoadSlotMachineWheelOverlay(void);
-static void sub_8104CAC(u8 arg0) {
+#ifdef DEBUG
+// should be static
+__attribute__((section(".bss"))) u8 unk_debug_bss_1[0xC] = { 0 };
+#endif
+
+static void sub_8104CAC(u8 arg0)
+{
u8 i;
struct Task *task;
@@ -2875,9 +2882,7 @@ static void sub_8104CAC(u8 arg0) {
#ifdef GERMAN
if (arg0 == 5 && i <= 2)
- {
gSprites[spriteId].invisible = TRUE;
- }
#endif
}
}
@@ -3966,7 +3971,8 @@ static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
vram[16 * 32 + 1 + arg0] = arg4;
}
-static void sub_81065DC(void) {
+static void sub_81065DC(void)
+{
s16 y, x;
u16 *screen;
@@ -3982,7 +3988,1226 @@ static void sub_81065DC(void) {
}
}
-static const u8 sReelSymbols[][21] = {
+#if DEBUG
+__attribute__((naked))
+void debug_sub_811B1C4()
+{
+ asm(
+ " ldr r1, ._1\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x2\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, ._1 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x2\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._2:\n"
+ " .align 2, 0\n"
+ "._1:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B1EC()
+{
+ asm(
+ " ldr r2, ._3\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " ldr r2, ._3 + 4\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " neg r0, r0\n"
+ " lsr r0, r0, #0x1f\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B210()
+{
+ asm(
+ " ldr r1, ._5\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x4\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, ._5 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x4\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._6:\n"
+ " .align 2, 0\n"
+ "._5:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B238()
+{
+ asm(
+ " ldr r1, ._7\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x8\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, ._7 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x8\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._8:\n"
+ " .align 2, 0\n"
+ "._7:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B260()
+{
+ asm(
+ " ldr r1, ._9\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x10\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, ._9 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x10\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._10:\n"
+ " .align 2, 0\n"
+ "._9:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B288()
+{
+ asm(
+ " ldr r1, ._11\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x40\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, ._11 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x40\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._12:\n"
+ " .align 2, 0\n"
+ "._11:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B2B0()
+{
+ asm(
+ " ldr r1, ._13\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x80\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, ._13 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x80\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ "._14:\n"
+ " .align 2, 0\n"
+ "._13:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B2D8()
+{
+ asm(
+ " ldr r0, ._15\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x20\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bx lr\n"
+ "._16:\n"
+ " .align 2, 0\n"
+ "._15:\n"
+ " .word unk_debug_bss_1+0x3\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B2E8()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r0, ._17\n"
+ " ldrb r1, [r0, #0x1]\n"
+ " add r1, r1, #0x1\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x6\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " add sp, sp, #0x4\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._18:\n"
+ " .align 2, 0\n"
+ "._17:\n"
+ " .word +0x2000000\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B310()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " ldr r0, ._21\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 4\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 8\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 12\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 16\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 20\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 24\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 28\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 32\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 36\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 40\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 44\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 48\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 52\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 56\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 60\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 64\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 68\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._21 + 72\n"
+ " ldrb r0, [r0, #0x3]\n"
+ " cmp r0, #0\n"
+ " bne ._19 @cond_branch\n"
+ " ldr r0, ._21 + 76\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " b ._20\n"
+ "._22:\n"
+ " .align 2, 0\n"
+ "._21:\n"
+ " .word Str_841B1C4\n"
+ " .word Str_841B1CB\n"
+ " .word Str_841B1D4\n"
+ " .word Str_841B1DB\n"
+ " .word Str_841B1E2\n"
+ " .word Str_841B1E8\n"
+ " .word Str_841B1F3\n"
+ " .word Str_841B202\n"
+ " .word Str_841B24C\n"
+ " .word Str_841B211\n"
+ " .word Str_841B219\n"
+ " .word Str_841B220\n"
+ " .word Str_841B227\n"
+ " .word Str_841B22E\n"
+ " .word Str_841B235\n"
+ " .word Str_841B23B\n"
+ " .word Str_841B23F\n"
+ " .word Str_841B243\n"
+ " .word +0x2000000\n"
+ " .word Str_841B246\n"
+ "._19:\n"
+ " ldr r0, ._30\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ "._20:\n"
+ " ldr r4, ._30 + 4\n"
+ " ldr r1, [r4, #0x68]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r1, [r4, #0x6c]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x10\n"
+ " ldsh r1, [r4, r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r1, [r4, #0x70]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r1, [r4, #0x74]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r1, [r4, #0x78]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r1, [r4, #0x7c]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x80\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x84\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x88\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x8c\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r1, ._30 + 8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._23 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " cmp r0, #0x8\n"
+ " beq ._24 @cond_branch\n"
+ " cmp r0, #0x8\n"
+ " bgt ._25 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq ._26 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " bgt ._27 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._28 @cond_branch\n"
+ " b ._45\n"
+ "._31:\n"
+ " .align 2, 0\n"
+ "._30:\n"
+ " .word Str_841B249\n"
+ " .word +0x2000000\n"
+ " .word unk_debug_bss_1\n"
+ "._27:\n"
+ " cmp r0, #0x4\n"
+ " beq ._32 @cond_branch\n"
+ " b ._45\n"
+ "._25:\n"
+ " cmp r0, #0x40\n"
+ " beq ._34 @cond_branch\n"
+ " cmp r0, #0x40\n"
+ " bgt ._35 @cond_branch\n"
+ " cmp r0, #0x10\n"
+ " beq ._36 @cond_branch\n"
+ " b ._45\n"
+ "._35:\n"
+ " cmp r0, #0x80\n"
+ " beq ._38 @cond_branch\n"
+ " b ._45\n"
+ "._26:\n"
+ " mov r2, #0x3\n"
+ " b ._45\n"
+ "._28:\n"
+ " mov r2, #0x5\n"
+ " b ._45\n"
+ "._32:\n"
+ " mov r2, #0x7\n"
+ " b ._45\n"
+ "._24:\n"
+ " mov r2, #0x9\n"
+ " b ._45\n"
+ "._36:\n"
+ " mov r2, #0xb\n"
+ " b ._45\n"
+ "._34:\n"
+ " mov r2, #0xd\n"
+ " b ._45\n"
+ "._38:\n"
+ " mov r2, #0xf\n"
+ "._45:\n"
+ " ldr r0, ._46\n"
+ " mov r1, #0x17\n"
+ " bl MenuPrint\n"
+ "._23:\n"
+ " bl debug_sub_811B2E8\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._47:\n"
+ " .align 2, 0\n"
+ "._46:\n"
+ " .word Str_841B26D\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B5B4()
+{
+ asm(
+ " push {lr}\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r2]\n"
+ " add r0, r0, r1\n"
+ " str r0, [r2]\n"
+ " ldr r1, ._49\n"
+ " cmp r0, r1\n"
+ " ble ._48 @cond_branch\n"
+ " str r1, [r2]\n"
+ "._48:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._50:\n"
+ " .align 2, 0\n"
+ "._49:\n"
+ " .word 0x270f\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B5D0()
+{
+ asm(
+ " ldr r0, ._51\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " ldr r0, ._51 + 4\n"
+ " strb r1, [r0]\n"
+ " ldr r0, ._51 + 8\n"
+ " strb r1, [r0]\n"
+ " ldr r0, ._51 + 12\n"
+ " strb r1, [r0]\n"
+ " ldr r2, ._51 + 16\n"
+ " mov r0, #0x0\n"
+ " str r0, [r2, #0x68]\n"
+ " str r0, [r2, #0x6c]\n"
+ " str r0, [r2, #0x70]\n"
+ " str r0, [r2, #0x74]\n"
+ " str r0, [r2, #0x78]\n"
+ " str r0, [r2, #0x7c]\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0x80\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._52:\n"
+ " .align 2, 0\n"
+ "._51:\n"
+ " .word unk_debug_bss_1\n"
+ " .word unk_debug_bss_1+0x2\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word unk_debug_bss_1+0x4\n"
+ " .word +0x2000000\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B620()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._53\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._54:\n"
+ " .align 2, 0\n"
+ "._53:\n"
+ " .word debug_sub_811B654+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B634()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._57\n"
+ " bl FindTaskIdByFunc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0xff\n"
+ " beq ._55 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._56\n"
+ "._58:\n"
+ " .align 2, 0\n"
+ "._57:\n"
+ " .word debug_sub_811B654+1\n"
+ "._55:\n"
+ " mov r0, #0x1\n"
+ "._56:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B654()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._63\n"
+ " add r5, r0, r1\n"
+ " mov r0, #0x8\n"
+ " ldsh r1, [r5, r0]\n"
+ " cmp r1, #0x1\n"
+ " beq ._59 @cond_branch\n"
+ " cmp r1, #0x1\n"
+ " bgt ._60 @cond_branch\n"
+ " cmp r1, #0\n"
+ " beq ._61 @cond_branch\n"
+ " b ._116\n"
+ "._64:\n"
+ " .align 2, 0\n"
+ "._63:\n"
+ " .word gTasks\n"
+ "._60:\n"
+ " cmp r1, #0x2\n"
+ " bne ._65 @cond_branch\n"
+ " b ._66\n"
+ "._65:\n"
+ " cmp r1, #0x3\n"
+ " bne ._67 @cond_branch\n"
+ " b ._68\n"
+ "._67:\n"
+ " b ._116\n"
+ "._61:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x18\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " bl debug_sub_811B310\n"
+ " ldrh r0, [r5, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r5, #0x8]\n"
+ " b ._116\n"
+ "._59:\n"
+ " ldr r7, ._76\n"
+ " ldrh r2, [r7, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._71 @cond_branch\n"
+ " b ._94\n"
+ "._71:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0\n"
+ " beq ._73 @cond_branch\n"
+ " ldr r1, ._76 + 4\n"
+ " ldrb r0, [r1, #0x1]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0x1]\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bge ._79 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " strb r0, [r1, #0x1]\n"
+ " b ._79\n"
+ "._77:\n"
+ " .align 2, 0\n"
+ "._76:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ "._73:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._78 @cond_branch\n"
+ " ldr r1, ._81\n"
+ " ldrb r0, [r1, #0x1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1, #0x1]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bls ._79 @cond_branch\n"
+ " strb r3, [r1, #0x1]\n"
+ "._79:\n"
+ " bl debug_sub_811B2E8\n"
+ " b ._116\n"
+ "._82:\n"
+ " .align 2, 0\n"
+ "._81:\n"
+ " .word +0x2000000\n"
+ "._78:\n"
+ " and r1, r1, r2\n"
+ " lsl r0, r1, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0\n"
+ " beq ._83 @cond_branch\n"
+ " mov r0, #0x3\n"
+ " strh r0, [r5, #0x8]\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x5\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._85\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._85 + 4\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " b ._116\n"
+ "._86:\n"
+ " .align 2, 0\n"
+ "._85:\n"
+ " .word Str_841B25C\n"
+ " .word Str_841B264\n"
+ "._83:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._87 @cond_branch\n"
+ " ldr r0, ._91\n"
+ " strb r4, [r0]\n"
+ " ldr r0, ._91 + 4\n"
+ " strb r4, [r0]\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._91 + 8\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r3, ._91 + 12\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0x8\n"
+ " bl PrintMenuItems\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x9\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x8\n"
+ " bl InitMenu\n"
+ " ldrh r0, [r5, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r5, #0x8]\n"
+ "._87:\n"
+ " ldrh r1, [r7, #0x2e]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._88 @cond_branch\n"
+ " b ._116\n"
+ "._88:\n"
+ " ldr r1, ._91 + 16\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._94\n"
+ "._92:\n"
+ " .align 2, 0\n"
+ "._91:\n"
+ " .word unk_debug_bss_1+0x2\n"
+ " .word unk_debug_bss_1+0x3\n"
+ " .word Str_841B254\n"
+ " .word _841B270\n"
+ " .word unk_debug_bss_1+0x4\n"
+ "._66:\n"
+ " bl ProcessMenuInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r2, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r2, r0\n"
+ " beq ._116 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r2, r0\n"
+ " beq ._94 @cond_branch\n"
+ " ldr r1, ._96\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._96 + 4\n"
+ " lsl r1, r2, #0x3\n"
+ " add r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r0, [r1]\n"
+ " bl _call_via_r0\n"
+ "._94:\n"
+ " bl MenuZeroFillScreen\n"
+ " add r0, r6, #0\n"
+ " bl DestroyTask\n"
+ " b ._116\n"
+ "._97:\n"
+ " .align 2, 0\n"
+ "._96:\n"
+ " .word unk_debug_bss_1+0x2\n"
+ " .word _841B270\n"
+ "._68:\n"
+ " ldr r2, ._100\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._98 @cond_branch\n"
+ " ldr r2, ._100 + 4\n"
+ " ldrh r0, [r2, #0xc]\n"
+ " add r0, r0, #0x64\n"
+ " b ._99\n"
+ "._101:\n"
+ " .align 2, 0\n"
+ "._100:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ "._98:\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._102 @cond_branch\n"
+ " ldr r1, ._104\n"
+ " ldrh r0, [r1, #0xc]\n"
+ " sub r0, r0, #0x64\n"
+ " b ._103\n"
+ "._105:\n"
+ " .align 2, 0\n"
+ "._104:\n"
+ " .word +0x2000000\n"
+ "._102:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._106 @cond_branch\n"
+ " ldr r1, ._109\n"
+ " ldr r2, ._109 + 4\n"
+ " add r0, r2, #0\n"
+ " ldrh r2, [r1, #0xc]\n"
+ " add r0, r0, r2\n"
+ "._103:\n"
+ " strh r0, [r1, #0xc]\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bgt ._116 @cond_branch\n"
+ " ldr r0, ._109 + 8\n"
+ " strh r0, [r1, #0xc]\n"
+ " b ._116\n"
+ "._110:\n"
+ " .align 2, 0\n"
+ "._109:\n"
+ " .word +0x2000000\n"
+ " .word 0xfffffc18\n"
+ " .word 0x270f\n"
+ "._106:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._111 @cond_branch\n"
+ " ldr r2, ._114\n"
+ " mov r1, #0xfa\n"
+ " lsl r1, r1, #0x2\n"
+ " add r0, r1, #0\n"
+ " ldrh r1, [r2, #0xc]\n"
+ " add r0, r0, r1\n"
+ "._99:\n"
+ " strh r0, [r2, #0xc]\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " ldr r1, ._114 + 4\n"
+ " cmp r0, r1\n"
+ " ble ._116 @cond_branch\n"
+ " strh r1, [r2, #0xc]\n"
+ " b ._116\n"
+ "._115:\n"
+ " .align 2, 0\n"
+ "._114:\n"
+ " .word +0x2000000\n"
+ " .word 0x270f\n"
+ "._111:\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._116 @cond_branch\n"
+ " bl MenuZeroFillScreen\n"
+ " add r0, r6, #0\n"
+ " bl DestroyTask\n"
+ "._116:\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B894()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r1, ._122\n"
+ " ldrh r2, [r1, #0x8]\n"
+ " mov r0, #0xc0\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " add r4, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._117 @cond_branch\n"
+ " add r1, r1, #0x90\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " str r0, [r1]\n"
+ " ldr r2, ._122 + 4\n"
+ " cmp r0, r2\n"
+ " ble ._118 @cond_branch\n"
+ " str r2, [r1]\n"
+ "._118:\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x88\n"
+ " ldr r1, [r1]\n"
+ " ldr r0, [r0]\n"
+ " cmp r1, r0\n"
+ " beq ._119 @cond_branch\n"
+ " ldr r0, ._122 + 8\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " ldr r1, ._122 + 12\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ "._119:\n"
+ " ldrb r1, [r4, #0x4]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0\n"
+ " bne ._126 @cond_branch\n"
+ " ldr r0, ._122 + 16\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x11\n"
+ " b ._121\n"
+ "._123:\n"
+ " .align 2, 0\n"
+ "._122:\n"
+ " .word +0x2000000\n"
+ " .word 0x270f\n"
+ " .word Str_841B2B0\n"
+ " .word unk_debug_bss_1+0x4\n"
+ " .word Str_841B2D3\n"
+ "._117:\n"
+ " lsl r0, r2, #0x10\n"
+ " cmp r0, #0\n"
+ " beq ._127 @cond_branch\n"
+ " ldrb r1, [r4, #0x4]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._126 @cond_branch\n"
+ " mov r4, #0x3\n"
+ " and r4, r4, r2\n"
+ " cmp r4, #0\n"
+ " bne ._126 @cond_branch\n"
+ " ldr r0, ._163\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x2\n"
+ "._121:\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._163 + 4\n"
+ " strb r4, [r0]\n"
+ "._126:\n"
+ " ldr r0, ._163 + 8\n"
+ " ldrh r1, [r0, #0x8]\n"
+ " add r4, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._127 @cond_branch\n"
+ " b ._162\n"
+ "._127:\n"
+ " mov r1, #0x12\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0x3\n"
+ " beq ._129 @cond_branch\n"
+ " b ._162\n"
+ "._129:\n"
+ " ldrb r1, [r4, #0x4]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._131 @cond_branch\n"
+ " b ._162\n"
+ "._131:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x2\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x3\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r9, r0\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x2\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x3\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov sl, r0\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x1\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x2\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x3\n"
+ " bl sub_8102BA4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r7, #0\n"
+ " bne ._134 @cond_branch\n"
+ " mov r1, r9\n"
+ " cmp r1, #0x1\n"
+ " bne ._134 @cond_branch\n"
+ " cmp r5, #0\n"
+ " beq ._159 @cond_branch\n"
+ "._134:\n"
+ " ldr r1, [sp]\n"
+ " cmp r1, #0\n"
+ " bne ._137 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne ._137 @cond_branch\n"
+ " mov r1, r8\n"
+ " cmp r1, #0\n"
+ " beq ._159 @cond_branch\n"
+ "._137:\n"
+ " cmp r6, #0\n"
+ " bne ._140 @cond_branch\n"
+ " mov r1, sl\n"
+ " cmp r1, #0x1\n"
+ " bne ._140 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._159 @cond_branch\n"
+ "._140:\n"
+ " cmp r7, #0\n"
+ " bne ._143 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne ._143 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._159 @cond_branch\n"
+ "._143:\n"
+ " cmp r6, #0\n"
+ " bne ._146 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne ._146 @cond_branch\n"
+ " cmp r5, #0\n"
+ " beq ._159 @cond_branch\n"
+ "._146:\n"
+ " cmp r7, #0x1\n"
+ " bne ._149 @cond_branch\n"
+ " mov r1, r9\n"
+ " cmp r1, #0\n"
+ " bne ._149 @cond_branch\n"
+ " cmp r5, #0x1\n"
+ " beq ._159 @cond_branch\n"
+ "._149:\n"
+ " ldr r1, [sp]\n"
+ " cmp r1, #0x1\n"
+ " bne ._152 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne ._152 @cond_branch\n"
+ " mov r1, r8\n"
+ " cmp r1, #0x1\n"
+ " beq ._159 @cond_branch\n"
+ "._152:\n"
+ " cmp r6, #0x1\n"
+ " bne ._155 @cond_branch\n"
+ " mov r1, sl\n"
+ " cmp r1, #0\n"
+ " bne ._155 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._159 @cond_branch\n"
+ "._155:\n"
+ " cmp r7, #0x1\n"
+ " bne ._158 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne ._158 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._159 @cond_branch\n"
+ "._158:\n"
+ " cmp r6, #0x1\n"
+ " bne ._162 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne ._162 @cond_branch\n"
+ " cmp r5, #0x1\n"
+ " bne ._162 @cond_branch\n"
+ "._159:\n"
+ " ldr r0, ._163 + 12\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x0\n"
+ " bl MenuPrint\n"
+ " ldr r1, ._163 + 4\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ "._162:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._164:\n"
+ " .align 2, 0\n"
+ "._163:\n"
+ " .word Str_841B2E4\n"
+ " .word unk_debug_bss_1+0x4\n"
+ " .word +0x2000000\n"
+ " .word Str_841B2BF\n"
+ "\n"
+ );
+}
+#endif
+
+static const u8 sReelSymbols[][21] =
+{
{
SLOT_MACHINE_TAG_7_RED,
SLOT_MACHINE_TAG_CHERRY,