summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-12-24 20:48:44 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2017-12-24 20:48:44 -0500
commit64c3afb438eb712cca11a374d0025bf3492ccb82 (patch)
tree4cc47c6850d88d2b3e69678a4e605d69fa5900e2
parent482db3566086318c27d1accbe89a96e2f695de5b (diff)
through sub_810290C
-rw-r--r--asm/slot_machine.s194
-rw-r--r--src/field/slot_machine.c73
2 files changed, 72 insertions, 195 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index ea93063ea..e15bd0b0f 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -5,200 +5,6 @@
.text
- thumb_func_start sub_8102840
-sub_8102840: @ 8102840
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810289E
- cmp r1, 0
- bne _0810287C
- movs r1, 0x1
-_0810287C:
- ldr r2, _08102900 @ =gSharedMem
- ldr r0, _08102904 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x1
- bl sub_8103E04
-_0810289E:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081028FA
- cmp r1, 0
- bne _081028D8
- movs r1, 0x1
-_081028D8:
- ldr r2, _08102900 @ =gSharedMem
- ldr r0, _08102904 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x2
- bl sub_8103E04
-_081028FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102900: .4byte gSharedMem
-_08102904: .4byte gUnknown_083ECE6C
-_08102908: .4byte gUnknown_083ECE5A
- thumb_func_end sub_8102840
-
- thumb_func_start sub_810290C
-sub_810290C: @ 810290C
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _08102968
- cmp r1, 0
- beq _08102962
- ldr r2, _081029C8 @ =gSharedMem
- ldr r0, _081029CC @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_08102962:
- movs r0, 0x3
- bl sub_8103E04
-_08102968:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081029C2
- cmp r1, 0
- beq _081029BC
- ldr r2, _081029C8 @ =gSharedMem
- ldr r0, _081029CC @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_081029BC:
- movs r0, 0x4
- bl sub_8103E04
-_081029C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081029C8: .4byte gSharedMem
-_081029CC: .4byte gUnknown_083ECE6C
-_081029D0: .4byte gUnknown_083ECE5A
- thumb_func_end sub_810290C
-
thumb_func_start sub_81029D4
sub_81029D4: @ 81029D4
push {lr}
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index 2e47317a5..0a1ab8bb1 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -1036,7 +1036,12 @@ extern const u16 gUnknown_083ECE5A[];
void sub_81027D0(void)
{
- u8 payout = sub_81029D4(sub_8102BA4(0, 2), sub_8102BA4(1, 2), sub_8102BA4(2, 2));
+ u8 c1, c2, c3, payout;
+
+ c1 = sub_8102BA4(0, 2);
+ c2 = sub_8102BA4(1, 2);
+ c3 = sub_8102BA4(2, 2);
+ payout = sub_81029D4(c1, c2, c3);
if (payout != 9)
{
eSlotMachine->unk0E += gUnknown_083ECE6C[payout];
@@ -1045,6 +1050,72 @@ void sub_81027D0(void)
}
}
+void sub_8102840(void)
+{
+ u8 c1, c2, c3, payout;
+
+ c1 = sub_8102BA4(0, 1);
+ c2 = sub_8102BA4(1, 1);
+ c3 = sub_8102BA4(2, 1);
+ payout = sub_81029D4(c1, c2, c3);
+ if (payout != 9)
+ {
+ if (payout == 0)
+ {
+ payout = 1;
+ }
+ eSlotMachine->unk0E += gUnknown_083ECE6C[payout];
+ eSlotMachine->unk08 |= gUnknown_083ECE5A[payout];
+ sub_8103E04(1);
+ }
+ c1 = sub_8102BA4(0, 3);
+ c2 = sub_8102BA4(1, 3);
+ c3 = sub_8102BA4(2, 3);
+ payout = sub_81029D4(c1, c2, c3);
+ if (payout != 9)
+ {
+ if (payout == 0)
+ {
+ payout = 1;
+ }
+ eSlotMachine->unk0E += gUnknown_083ECE6C[payout];
+ eSlotMachine->unk08 |= gUnknown_083ECE5A[payout];
+ sub_8103E04(2);
+ }
+}
+
+void sub_810290C(void)
+{
+ u8 c1, c2, c3, payout;
+
+ c1 = sub_8102BA4(0, 1);
+ c2 = sub_8102BA4(1, 2);
+ c3 = sub_8102BA4(2, 3);
+ payout = sub_81029D4(c1, c2, c3);
+ if (payout != 9)
+ {
+ if (payout != 0)
+ {
+ eSlotMachine->unk0E += gUnknown_083ECE6C[payout];
+ eSlotMachine->unk08 |= gUnknown_083ECE5A[payout];
+ }
+ sub_8103E04(3);
+ }
+ c1 = sub_8102BA4(0, 3);
+ c2 = sub_8102BA4(1, 2);
+ c3 = sub_8102BA4(2, 1);
+ payout = sub_81029D4(c1, c2, c3);
+ if (payout != 9)
+ {
+ if (payout != 0)
+ {
+ eSlotMachine->unk0E += gUnknown_083ECE6C[payout];
+ eSlotMachine->unk08 |= gUnknown_083ECE5A[payout];
+ }
+ sub_8103E04(4);
+ }
+}
+
asm(".section .text_a");
static void LoadSlotMachineWheelOverlay(void);