diff options
-rw-r--r-- | asm/slot_machine.s | 117 | ||||
-rw-r--r-- | src/field/slot_machine.c | 43 |
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); |