summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/slot_machine.s117
-rw-r--r--src/field/slot_machine.c43
2 files changed, 43 insertions, 117 deletions
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 38573f519..1df6bb486 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -5,123 +5,6 @@
.text
- thumb_func_start sub_8103830
-sub_8103830: @ 8103830
- push {r4-r7,lr}
- movs r6, 0
- ldr r7, _08103868 @ =gSharedMem
- ldrh r1, [r7, 0x2E]
- movs r4, 0x2
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x30]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, r1
- bne _081038A0
- movs r4, 0x2
- b _08103876
- .align 2, 0
-_08103868: .4byte gSharedMem
-_0810386C:
- lsls r0, r6, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r6, r0, 16
-_08103876:
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0810386C
- cmp r5, 0
- bne _08103896
- cmp r0, 0x1
- beq _0810386C
-_08103896:
- cmp r5, 0x1
- bne _08103900
- cmp r0, 0
- beq _0810386C
- b _08103900
-_081038A0:
- adds r0, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103900
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081038DC
- movs r7, 0x2
-_081038B8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08103900
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081038B8
-_081038DC:
- movs r6, 0
- movs r7, 0x2
- b _081038E8
-_081038E2:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081038E8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _081038E2
-_08103900:
- ldr r0, _0810390C @ =gSharedMem
- strh r6, [r0, 0x32]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810390C: .4byte gSharedMem
- thumb_func_end sub_8103830
-
thumb_func_start sub_8103910
sub_8103910: @ 8103910
push {r4-r7,lr}
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index a4b3175d2..fbc89133a 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -1931,6 +1931,49 @@ void sub_810380C(void)
gUnknown_083ECB94[eSlotMachine->bet - 1]();
}
+void sub_8103830(void)
+{
+ s16 i = 0;
+ u8 r5 = sub_8102BF8(0, 2 - eSlotMachine->unk2E[0]);
+ u8 r1 = sub_8102BF8(1, 2 - eSlotMachine->unk2E[1]);
+ if (r5 == r1)
+ {
+ while (1)
+ {
+ u8 r0;
+ if (!(r5 == (r0 = sub_8102BF8(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0)))
+ {
+ break;
+ }
+ i++;
+ }
+ }
+ else if (sub_8103764(r5, r1))
+ {
+ if (eSlotMachine->unk04 & 0x80)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ if (r5 == sub_8102BF8(2, 2 - i))
+ {
+ eSlotMachine->unk2E[2] = i;
+ return;
+ }
+ }
+ }
+ i = 0;
+ while (1)
+ {
+ if (r5 != sub_8102BF8(2, 2 - i))
+ {
+ break;
+ }
+ i++;
+ }
+ }
+ eSlotMachine->unk2E[2] = i;
+}
+
asm(".section .text_a");
static void LoadSlotMachineWheelOverlay(void);