summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-30 13:31:22 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-30 13:31:22 -0500
commit13b2657c49b60dcf5d851a63346801232f9ee832 (patch)
tree7c1822505b2f515a539537a35abe44e737d15a24
parent1d1c88a850e0967051599b37873328e63ae63643 (diff)
through sub_8104498; decompile some data
-rw-r--r--asm/slot_machine.s170
-rw-r--r--data/slot_machine.s114
-rw-r--r--include/global.h2
-rw-r--r--include/slot_machine.h3
-rw-r--r--src/field/slot_machine.c294
5 files changed, 236 insertions, 347 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 4cf21d22e..e3adefac1 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -5,176 +5,6 @@
.text
- thumb_func_start sub_81043EC
-sub_81043EC: @ 81043EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810445C @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r4, 0xA]
- adds r2, 0x8
- strh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xF0
- movs r1, 0xFF
- ands r0, r1
- lsrs r3, r0, 3
- ldr r1, _08104460 @ =REG_BG1HOFS
- ldr r0, _08104464 @ =0x000001ff
- ands r2, r0
- strh r2, [r1]
- adds r2, r3, 0
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r2, r0
- beq _08104438
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bgt _08104438
- strh r3, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- adds r0, r2, 0
- bl sub_8104A40
-_08104438:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xC7
- ble _0810444A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xE]
-_0810444A:
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810445C: .4byte gSpriteCoordOffsetX
-_08104460: .4byte REG_BG1HOFS
-_08104464: .4byte 0x000001ff
- thumb_func_end sub_81043EC
-
- thumb_func_start sub_8104468
-sub_8104468: @ 8104468
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104492
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105578
- bl sub_81056F0
-_08104492:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104468
-
- thumb_func_start sub_8104498
-sub_8104498: @ 8104498
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r1, _08104534 @ =gUnknown_083ECC1C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _08104538 @ =gUnknown_083ECC20
- movs r2, 0x8
- bl memcpy
- add r6, sp, 0xC
- ldr r1, _0810453C @ =gUnknown_083ECC28
- adds r0, r6, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r7, 0x10]
- subs r0, 0x4
- strh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- movs r5, 0x4
- subs r5, r0
- lsls r4, r5, 1
- add r8, r4
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl sub_8105688
- adds r6, r4
- movs r1, 0
- ldrsh r0, [r6, r1]
- bl sub_81057E8
- ldr r0, _08104540 @ =gSharedMem
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104544 @ =gSprites
- adds r0, r1
- mov r2, sp
- adds r1, r2, r5
- ldrb r1, [r1]
- bl StartSpriteAnimIfDifferent
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bgt _08104526
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- strh r1, [r7, 0x10]
- movs r0, 0
- strh r0, [r7, 0x12]
-_08104526:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104534: .4byte gUnknown_083ECC1C
-_08104538: .4byte gUnknown_083ECC20
-_0810453C: .4byte gUnknown_083ECC28
-_08104540: .4byte gSharedMem
-_08104544: .4byte gSprites
- thumb_func_end sub_8104498
-
thumb_func_start sub_8104548
sub_8104548: @ 8104548
push {r4,lr}
diff --git a/data/slot_machine.s b/data/slot_machine.s
index 3d7c6253c..91b3b0ebf 100644
--- a/data/slot_machine.s
+++ b/data/slot_machine.s
@@ -4,120 +4,6 @@
.section .rodata
.align 2
-gUnknown_083ECB20:: @ 83ECB20
- .4byte sub_8102A9C
- .4byte sub_8102AD0
- .4byte sub_8102B80
-
- .align 2
-gUnknown_083ECB2C:: @ 83ECB2C
- .4byte sub_8102EA0
- .4byte sub_8102EA4
- .4byte sub_8102EC0
- .4byte sub_8102F4C
- .4byte sub_8103008
-
- .align 2
-gUnknown_083ECB40:: @ 83ECB40
- .4byte sub_810305C
- .4byte sub_81032C0
- .4byte sub_81033DC
-
- .align 2
-gUnknown_083ECB4C:: @ 83ECB4C
- .4byte sub_81034F4
- .4byte sub_8103540
- .4byte sub_810380C
-
- .align 1
-gUnknown_083ECB58:: @ 83ECB58 (sub_8102F4C)
- .2byte 2, 4, 4, 4, 8
-
- .align 2
-gUnknown_083ECB64:: @ 83ECB64
- .4byte sub_8103154
- .4byte sub_81031B4
- .4byte sub_81031B4
-
- .align 2
-gUnknown_083ECB70:: @ 83ECB70
- .4byte sub_81032E8
- .4byte sub_81032E8
- .4byte sub_810333C
-
- .align 2
-gUnknown_083ECB7C:: @ 83ECB7C
- .4byte sub_810341C
- .4byte sub_810341C
- .4byte sub_810347C
-
- .align 2
-gUnknown_083ECB88:: @ 83ECB88
- .4byte sub_8103564
- .4byte j5_08111E84
- .4byte sub_8103668
-
- .align 2
-gUnknown_083ECB94:: @ 83ECB94
- .4byte sub_8103830
- .4byte sub_8103910
- .4byte sub_8103A78
-
- .align 2
-gUnknown_083ECBA0:: @ 83ECBA0
- .4byte sub_8103C78
- .4byte sub_8103CAC
- .4byte sub_8103CC8
-
- .align 1
-gUnknown_083ECBAC:: @ 83ECBAC
- .2byte 5, 10, 15
-
- .align 2
-gUnknown_083ECBB4:: @ 83ECBB4
- .4byte nullsub_68
- .4byte sub_810411C
- .4byte sub_8104144
- .4byte sub_81041AC
-
- .align 1
-gUnknown_083ECBC4:: @ 83ECBC4
- .2byte 0x9E, 0x6E, 0x9F, 0x6F, 0xAF, 0x7F
-
- .align 2
-gUnknown_083ECBD0:: @ 83ECBD0
- .4byte sub_810437C
- .4byte sub_81043EC
- .4byte sub_8104468
- .4byte sub_8104498
- .4byte sub_8104548
- .4byte sub_8104598
- .4byte sub_81045CC
- .4byte sub_810463C
- .4byte sub_81046C0
- .4byte sub_8104764
- .4byte sub_8104794
- .4byte sub_81047EC
- .4byte sub_8104860
- .4byte sub_81048A8
- .4byte sub_81048CC
- .4byte sub_8104940
- .4byte sub_81049C8
- .4byte sub_8104794
- .4byte sub_81049F8
-
-gUnknown_083ECC1C:: @ 83ECC1C
- .byte 1, 1, 2, 2
-
- .align 1
-gUnknown_083ECC20:: @ 83ECC20
- .2byte 0x40, 0x30, 0x18, 0x8
-
- .align 1
-gUnknown_083ECC28:: @ 83ECC28
- .2byte 10, 8, 6, 4
-
- .align 2
gUnknown_083ECC30:: @ 83ECC30
.4byte sub_8104B3C
.4byte sub_8104B60
diff --git a/include/global.h b/include/global.h
index a4e71852c..2ea69a1e1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -5,7 +5,7 @@
#include "config.h"
// IDE support
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__CYGWIN__)
#define _(x) x
#define __(x) x
#define INCBIN_U8 {0}
diff --git a/include/slot_machine.h b/include/slot_machine.h
index 81263e97e..a7a1fed44 100644
--- a/include/slot_machine.h
+++ b/include/slot_machine.h
@@ -29,7 +29,8 @@ struct SlotMachineEwramStruct {
/*0x3A*/ u8 unk3A[3];
/*0x3D*/ u8 unk3D;
/*0x3E*/ u8 unk3E;
- /*0x3F*/ u8 filler3F[5];
+ /*0x3F*/ u8 unk3F;
+ /*0x40*/ u8 filler40[4];
/*0x44*/ u8 unk44[5];
/*0x49*/ u8 filler49[15];
/*0x58*/ u16 win0h;
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index f7679588c..8bfb30bfa 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -22,20 +22,12 @@ struct UnkStruct1 {
/*0x02*/ s16 unk02;
};
-extern struct UnkStruct1 *gUnknown_083ED048[];
-extern const u16 gPalette_83EDE24[];
-
-extern const u8 gSlotMachine_Gfx[];
#if ENGLISH
#define SLOTMACHINE_GFX_TILES 233
#elif GERMAN
#define SLOTMACHINE_GFX_TILES 236
#endif
-extern const u16 gUnknown_08E95A18[];
-
-extern u16 gUnknown_08E95AB8[];
-extern u16 gUnknown_08E95FB8[];
static void sub_81018B8(void);
static void sub_8101954(void);
@@ -97,15 +89,44 @@ static u8 sub_81029D4(u8 c1, u8 c2, u8 c3);
static void sub_8102A24(void);
static void sub_8102A64(u8 taskId);
static bool8 sub_8102A44(void);
+bool8 sub_8102A9C(struct Task *task);
+bool8 sub_8102AD0(struct Task *task);
+bool8 sub_8102B80(struct Task *task);
u8 sub_8102BA4(u8 x, s16 y);
static void sub_8102DA8(void);
static void sub_8102DEC(u8 a0);
static void sub_8102E1C(u8 a0);
static bool8 sub_8102E40(u8 a0);
static void sub_8102E68(u8 taskId);
+bool8 sub_8102EA0(struct Task *task);
+bool8 sub_8102EA4(struct Task *task);
+bool8 sub_8102EC0(struct Task *task);
+bool8 sub_8102F4C(struct Task *task);
+bool8 sub_8103008(struct Task *task);
+bool8 sub_810305C(void);
+bool8 sub_8103154(u8 a0, u8 a1);
+bool8 sub_81031B4(u8 a0, u8 a1);
+bool8 sub_81032C0(void);
+bool8 sub_81032E8(void);
+bool8 sub_810333C(void);
+bool8 sub_81033DC(void);
+bool8 sub_810341C(u8 a0);
+bool8 sub_810347C(u8 a0);
+void sub_81034F4(void);
+void sub_8103540(void);
+void sub_8103564(void);
+void j5_08111E84(void);
+void sub_8103668(void);
+void sub_810380C(void);
+void sub_8103830(void);
+void sub_8103910(void);
+void sub_8103A78(void);
static void sub_8103C14(u8 a0);
static void sub_8103C48(u8 taskId);
static void sub_8103D50(u8 a0);
+void sub_8103C78(struct Task *task, u8 taskId);
+void sub_8103CAC(struct Task *task, u8 taskId);
+void sub_8103CC8(struct Task *task, u8 taskId);
static void sub_8103D8C(u8 a0);
static void sub_8103DC8(void);
static void sub_8103E04(u8 a0);
@@ -120,11 +141,33 @@ static void sub_8104048(void);
static void sub_8104064(u8 unused);
bool8 sub_81040C8(void);
static void sub_81040E8(u8 taskId);
+void nullsub_68(struct Task *task);
+void sub_810411C(struct Task *task);
+void sub_8104144(struct Task *task);
+void sub_81041AC(struct Task *task);
static void sub_810421C(struct Task *task);
void sub_810423C(u8 a0);
static void sub_810430C(void);
static bool8 sub_810432C(void);
void sub_810434C(u8 taskId);
+void sub_810437C(struct Task *task);
+void sub_81043EC(struct Task *task);
+void sub_8104468(struct Task *task);
+void sub_8104498(struct Task *task);
+void sub_8104548(struct Task *task);
+void sub_8104598(struct Task *task);
+void sub_81045CC(struct Task *task);
+void sub_810463C(struct Task *task);
+void sub_81046C0(struct Task *task);
+void sub_8104764(struct Task *task);
+void sub_8104794(struct Task *task);
+void sub_81047EC(struct Task *task);
+void sub_8104860(struct Task *task);
+void sub_81048A8(struct Task *task);
+void sub_81048CC(struct Task *task);
+void sub_8104940(struct Task *task);
+void sub_81049C8(struct Task *task);
+void sub_81049F8(struct Task *task);
void sub_8104A40(s16 a0, s16 a1);
void sub_8104AB8(u8 a0);
bool8 sub_8104AEC(void);
@@ -139,6 +182,10 @@ void sub_81051C0(void);
void sub_81052EC(void);
void sub_81053A0(void);
void sub_810545C(void);
+void sub_8105578(void);
+void sub_8105688(s16 a0);
+void sub_81056F0(void);
+void sub_81057E8(s16 a0);
u8 sub_8105B1C(s16 a0, s16 a1);
void sub_8105B88(u8 a0);
void sub_81063C0(void);
@@ -146,38 +193,12 @@ static void sub_8106448(void);
void sub_81064B8(void);
void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4);
-static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = {
- sub_8101D5C,
- sub_8101D8C,
- sub_8101DB0,
- sub_8101DF4,
- sub_8101E10,
- sub_8101E3C,
- sub_8101F44,
- sub_8101F60,
- sub_8101F88,
- sub_8101FA4,
- sub_8102008,
- sub_8102034,
- sub_8102058,
- sub_8102090,
- sub_81020C8,
- sub_81021E0,
- sub_81021FC,
- sub_8102264,
- sub_81022A0,
- sub_81022CC,
- sub_81022F0,
- sub_8102318,
- sub_8102344,
- sub_810239C,
- sub_81023B8,
- sub_81023E0,
- sub_81023FC,
- sub_8102424,
- sub_8102460
-};
-
+extern struct UnkStruct1 *gUnknown_083ED048[];
+extern const u16 gPalette_83EDE24[];
+extern const u8 gSlotMachine_Gfx[];
+extern const u16 gUnknown_08E95A18[];
+extern u16 gUnknown_08E95AB8[];
+extern u16 gUnknown_08E95FB8[];
extern const u8 gUnknown_083ECD04[][3];
extern const u8 gUnknown_083ECE3A[];
extern const u16 gUnknown_083ECE42[];
@@ -395,6 +416,38 @@ static void sub_8101D04(void)
sub_8101D24(CreateTask(sub_8101D24, 0));
}
+static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = {
+ sub_8101D5C,
+ sub_8101D8C,
+ sub_8101DB0,
+ sub_8101DF4,
+ sub_8101E10,
+ sub_8101E3C,
+ sub_8101F44,
+ sub_8101F60,
+ sub_8101F88,
+ sub_8101FA4,
+ sub_8102008,
+ sub_8102034,
+ sub_8102058,
+ sub_8102090,
+ sub_81020C8,
+ sub_81021E0,
+ sub_81021FC,
+ sub_8102264,
+ sub_81022A0,
+ sub_81022CC,
+ sub_81022F0,
+ sub_8102318,
+ sub_8102344,
+ sub_810239C,
+ sub_81023B8,
+ sub_81023E0,
+ sub_81023FC,
+ sub_8102424,
+ sub_8102460
+};
+
static void sub_8101D24(u8 taskId)
{
while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId));
@@ -1174,7 +1227,11 @@ static bool8 sub_8102A44(void)
return FALSE;
}
-extern bool8 (*const gUnknown_083ECB20[])(struct Task *task);
+bool8 (*const gUnknown_083ECB20[])(struct Task *task) = {
+ sub_8102A9C,
+ sub_8102AD0,
+ sub_8102B80
+};
static void sub_8102A64(u8 taskId)
{
@@ -1338,7 +1395,13 @@ static bool8 sub_8102E40(u8 a0)
return gTasks[eSlotMachine->unk3A[a0]].data[14];
}
-extern bool8 (*const gUnknown_083ECB2C[])(struct Task *task);
+bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = {
+ sub_8102EA0,
+ sub_8102EA4,
+ sub_8102EC0,
+ sub_8102F4C,
+ sub_8103008
+};
static void sub_8102E68(u8 taskId)
{
@@ -1356,8 +1419,16 @@ bool8 sub_8102EA4(struct Task *task)
return FALSE;
}
-extern bool8 (*const gUnknown_083ECB40[])(void);
-extern void (*const gUnknown_083ECB4C[])(void);
+bool8 (*const gUnknown_083ECB40[])(void) = {
+ sub_810305C,
+ sub_81032C0,
+ sub_81033DC
+};
+void (*const gUnknown_083ECB4C[])(void) = {
+ sub_81034F4,
+ sub_8103540,
+ sub_810380C
+};
bool8 sub_8102EC0(struct Task *task)
{
@@ -1373,15 +1444,10 @@ bool8 sub_8102EC0(struct Task *task)
return TRUE;
}
-extern const u16 gUnknown_083ECB58[5]; // don't move this
-
bool8 sub_8102F4C(struct Task *task)
{
- s16 r2;
- u16 sp[5];
- memcpy(sp, gUnknown_083ECB58, sizeof gUnknown_083ECB58);
- // u16 sp[] = {2, 4, 4, 4, 8};
- r2 = eSlotMachine->unk1C[task->data[15]] % 24;
+ 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);
@@ -1419,7 +1485,11 @@ bool8 sub_8103008(struct Task *task)
return FALSE;
}
-extern bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1);
+bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = {
+ sub_8103154,
+ sub_81031B4,
+ sub_81031B4
+};
bool8 sub_810305C(void)
{
@@ -1522,7 +1592,11 @@ bool8 sub_81031B4(u8 a0, u8 a1)
return FALSE;
}
-extern bool8 (*const gUnknown_083ECB70[])(void);
+bool8 (*const gUnknown_083ECB70[])(void) = {
+ sub_81032E8,
+ sub_81032E8,
+ sub_810333C
+};
bool8 sub_81032C0(void)
{
@@ -1580,7 +1654,11 @@ bool8 sub_810333C(void)
return FALSE;
}
-extern bool8 (*const gUnknown_083ECB7C[])(u8 a0);
+bool8 (*const gUnknown_083ECB7C[])(u8 a0) = {
+ sub_810341C,
+ sub_810341C,
+ sub_810347C
+};
bool8 sub_81033DC(void)
{
@@ -1660,7 +1738,11 @@ bool8 sub_8103520(u8 *a0)
return FALSE;
}
-extern void (*gUnknown_083ECB88[])(void);
+void (*const gUnknown_083ECB88[])(void) = {
+ sub_8103564,
+ j5_08111E84,
+ sub_8103668
+};
void sub_8103540(void)
{
@@ -1942,7 +2024,11 @@ bool8 sub_81037BC(u8 a0, u8 a1, u8 a2)
return TRUE;
}
-extern void (*const gUnknown_083ECB94[])(void);
+void (*const gUnknown_083ECB94[])(void) = {
+ sub_8103830,
+ sub_8103910,
+ sub_8103A78
+};
void sub_810380C(void)
{
@@ -2096,14 +2182,18 @@ static void sub_8103C14(u8 a0)
sub_8103C48(taskId);
}
-extern void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId);
+void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = {
+ sub_8103C78,
+ sub_8103CAC,
+ sub_8103CC8
+};
static void sub_8103C48(u8 taskId)
{
gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId);
}
-extern const s16 gUnknown_083ECBAC[];
+const s16 gUnknown_083ECBAC[] = {5, 10, 15};
void sub_8103C78(struct Task *task, u8 taskId)
{
@@ -2306,7 +2396,12 @@ bool8 sub_81040C8(void)
return gTasks[eSlotMachine->unk3E].data[15];
}
-extern void (*const gUnknown_083ECBB4[])(struct Task *task);
+void (*const gUnknown_083ECBB4[])(struct Task *task) = {
+ nullsub_68,
+ sub_810411C,
+ sub_8104144,
+ sub_81041AC
+};
static void sub_81040E8(u8 taskId)
{
@@ -2324,7 +2419,11 @@ void sub_810411C(struct Task *task)
task->data[0]++;
}
-extern const u16 gUnknown_083ECBC4[][2];
+const u16 gUnknown_083ECBC4[][2] = {
+ {0x9e, 0x6e},
+ {0x9f, 0x6f},
+ {0xaf, 0x7f}
+};
void sub_8104144(struct Task *task)
{
@@ -2415,7 +2514,27 @@ static bool8 sub_810432C(void)
return FALSE;
}
-extern void (*const gUnknown_083ECBD0[])(struct Task *task);
+void (*const gUnknown_083ECBD0[])(struct Task *task) = {
+ sub_810437C,
+ sub_81043EC,
+ sub_8104468,
+ sub_8104498,
+ sub_8104548,
+ sub_8104598,
+ sub_81045CC,
+ sub_810463C,
+ sub_81046C0,
+ sub_8104764,
+ sub_8104794,
+ sub_81047EC,
+ sub_8104860,
+ sub_81048A8,
+ sub_81048CC,
+ sub_8104940,
+ sub_81049C8,
+ sub_8104794,
+ sub_81049F8
+};
void sub_810434C(u8 taskId)
{
@@ -2446,6 +2565,59 @@ void sub_810437C(struct Task *task)
PlayNewMapMusic(BGM_BD_TIME);
}
+void sub_81043EC(struct Task *task)
+{
+ s16 r3;
+ gSpriteCoordOffsetX -= 8;
+ task->data[1] += 8;
+ r3 = ((task->data[1] + 240) & 0xff) >> 3;
+ REG_BG1HOFS = task->data[1] & 0x1ff;
+ if (r3 != task->data[2] && task->data[3] <= 18)
+ {
+ task->data[2] = r3;
+ task->data[3] = task->data[1] >> 3;
+ sub_8104A40(r3, task->data[3]);
+ }
+ if (task->data[1] >= 200)
+ {
+ task->data[0]++;
+ task->data[3] = 0;
+ }
+ sub_8102D28(task->data[4] >> 8);
+}
+
+void sub_8104468(struct Task *task)
+{
+ sub_8102D28(task->data[4] >> 8);
+ if (++task->data[5] >= 60)
+ {
+ task->data[0]++;
+ sub_8105578();
+ sub_81056F0();
+ }
+}
+
+void sub_8104498(struct Task *task)
+{
+ int r5;
+ u8 sp0[] = {1, 1, 2, 2};
+ s16 sp4[] = {0x40, 0x30, 0x18, 0x08};
+ s16 spC[] = {10, 8, 6, 4};
+
+ sub_8102D28(task->data[4] >> 8);
+ task->data[4] -= 4;
+ r5 = 4 - (task->data[4] >> 8);
+ sub_8105688(sp4[r5]);
+ sub_81057E8(spC[r5]);
+ StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, sp0[r5]);
+ if (task->data[4] <= 0x100)
+ {
+ task->data[0]++;
+ task->data[4] = 0x100;
+ task->data[5] = 0;
+ }
+}
+
asm(".section .text_a");
static void LoadSlotMachineWheelOverlay(void);