summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-11-11 16:11:28 -0500
committerGitHub <noreply@github.com>2019-11-11 16:11:28 -0500
commit8d70c54cd37a6bf8aeed72c77dd70d2cb124cbf9 (patch)
treebc55693b64a92944beada2353ccf46ac2caa061c /src
parenta0b2fa5d33c43bc4f42fc4f132f73e960d771d5b (diff)
parent678c024fabc1f26e6f2969c35aa20abeaee9a760 (diff)
Merge pull request #152 from jiangzhengwenjz/nonmatching
real match sub_81406E8
Diffstat (limited to 'src')
-rw-r--r--src/slot_machine.c299
1 files changed, 5 insertions, 294 deletions
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 866da9eb1..903f14d45 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -1343,13 +1343,13 @@ static bool32 sub_814054C(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4)
return FALSE;
}
-#ifdef NONMATCHING
static bool32 sub_81406E8(s32 a0, s32 a1, s32 a2)
{
u8 sp0[9];
s32 r3, r6;
s32 i;
+ r6++; r6--;
r6 = sSlotMachineState->field_20[sSlotMachineState->field_32[0]] + 1;
r3 = sSlotMachineState->field_20[sSlotMachineState->field_32[1]] + 1;
a1++;
@@ -1364,15 +1364,12 @@ static bool32 sub_81406E8(s32 a0, s32 a1, s32 a2)
sp0[sSlotMachineState->field_32[0] * 3 + i] = gUnknown_8464926[sSlotMachineState->field_32[0]][r6];
sp0[sSlotMachineState->field_32[1] * 3 + i] = gUnknown_8464926[sSlotMachineState->field_32[1]][r3];
sp0[a0 * 3 + i] = gUnknown_8464926[a0][a1];
- r6++;
- if (r6 >= 21)
+ if (++r6 >= 21)
r6 = 0;
- r3++;
- if (r3 >= 21)
+ if (++r3 >= 21)
r3 = 0;
- a1++;
- if (a1 >= 21)
- a1++;
+ if (++a1 >= 21)
+ a1 = 0;
}
switch (a2)
{
@@ -1415,292 +1412,6 @@ static bool32 sub_81406E8(s32 a0, s32 a1, s32 a2)
}
return FALSE;
}
-#else
-NAKED
-static bool32 sub_81406E8(s32 a0, s32 a1, s32 a2)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r10\n"
- "\tmov r6, r9\n"
- "\tmov r5, r8\n"
- "\tpush {r5-r7}\n"
- "\tsub sp, 0x10\n"
- "\tadds r7, r0, 0\n"
- "\tadds r5, r1, 0\n"
- "\tmov r8, r2\n"
- "\tldr r0, _081407C8 @ =sSlotMachineState\n"
- "\tldr r2, [r0]\n"
- "\tmovs r1, 0x32\n"
- "\tldrsh r0, [r2, r1]\n"
- "\tlsls r0, 1\n"
- "\tadds r1, r2, 0\n"
- "\tadds r1, 0x20\n"
- "\tadds r0, r1, r0\n"
- "\tmovs r3, 0\n"
- "\tldrsh r0, [r0, r3]\n"
- "\tadds r6, r0, 0x1\n"
- "\tmovs r3, 0x34\n"
- "\tldrsh r0, [r2, r3]\n"
- "\tlsls r0, 1\n"
- "\tadds r1, r0\n"
- "\tmovs r3, 0\n"
- "\tldrsh r0, [r1, r3]\n"
- "\tadds r3, r0, 0x1\n"
- "\tadds r5, 0x1\n"
- "\tcmp r6, 0x14\n"
- "\tble _08140726\n"
- "\tmovs r6, 0\n"
- "_08140726:\n"
- "\tcmp r3, 0x14\n"
- "\tble _0814072C\n"
- "\tmovs r3, 0\n"
- "_0814072C:\n"
- "\tcmp r5, 0x14\n"
- "\tble _08140732\n"
- "\tmovs r5, 0\n"
- "_08140732:\n"
- "\tmovs r4, 0\n"
- "\tlsls r1, r7, 1\n"
- "\tlsls r0, r7, 2\n"
- "\tmov r9, r2\n"
- "\tldr r2, _081407CC @ =gUnknown_8464926\n"
- "\tmov r10, r2\n"
- "\tadds r1, r7\n"
- "\tadd r1, sp\n"
- "\tmov r12, r1\n"
- "\tadds r0, r7\n"
- "\tlsls r0, 2\n"
- "\tadds r0, r7\n"
- "\tstr r0, [sp, 0xC]\n"
- "_0814074C:\n"
- "\tmov r7, r9\n"
- "\tmovs r0, 0x32\n"
- "\tldrsh r1, [r7, r0]\n"
- "\tlsls r0, r1, 1\n"
- "\tadds r0, r1\n"
- "\tadds r0, r4\n"
- "\tmov r7, sp\n"
- "\tadds r2, r7, r0\n"
- "\tlsls r0, r1, 2\n"
- "\tadds r0, r1\n"
- "\tlsls r0, 2\n"
- "\tadds r0, r1\n"
- "\tadds r0, r6, r0\n"
- "\tadd r0, r10\n"
- "\tldrb r0, [r0]\n"
- "\tstrb r0, [r2]\n"
- "\tmov r0, r9\n"
- "\tmovs r2, 0x34\n"
- "\tldrsh r1, [r0, r2]\n"
- "\tlsls r0, r1, 1\n"
- "\tadds r0, r1\n"
- "\tadds r0, r4\n"
- "\tadds r2, r7, r0\n"
- "\tlsls r0, r1, 2\n"
- "\tadds r0, r1\n"
- "\tlsls r0, 2\n"
- "\tadds r0, r1\n"
- "\tadds r0, r3, r0\n"
- "\tadd r0, r10\n"
- "\tldrb r0, [r0]\n"
- "\tstrb r0, [r2]\n"
- "\tldr r7, [sp, 0xC]\n"
- "\tadds r0, r5, r7\n"
- "\tadd r0, r10\n"
- "\tldrb r0, [r0]\n"
- "\tmov r1, r12\n"
- "\tstrb r0, [r1]\n"
- "\tadds r6, 0x1\n"
- "\tcmp r6, 0x14\n"
- "\tble _0814079E\n"
- "\tmovs r6, 0\n"
- "_0814079E:\n"
- "\tadds r3, 0x1\n"
- "\tcmp r3, 0x14\n"
- "\tble _081407A6\n"
- "\tmovs r3, 0\n"
- "_081407A6:\n"
- "\tadds r5, 0x1\n"
- "\tcmp r5, 0x14\n"
- "\tble _081407AE\n"
- "\tmovs r5, 0\n"
- "_081407AE:\n"
- "\tmovs r2, 0x1\n"
- "\tadd r12, r2\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x2\n"
- "\tble _0814074C\n"
- "\tmov r3, r8\n"
- "\tcmp r3, 0x1\n"
- "\tbeq _08140828\n"
- "\tcmp r3, 0x1\n"
- "\tbgt _081407D0\n"
- "\tcmp r3, 0\n"
- "\tbeq _081407D8\n"
- "\tb _081408A0\n"
- "\t.align 2, 0\n"
- "_081407C8: .4byte sSlotMachineState\n"
- "_081407CC: .4byte gUnknown_8464926\n"
- "_081407D0:\n"
- "\tmov r6, r8\n"
- "\tcmp r6, 0x2\n"
- "\tbeq _08140870\n"
- "\tb _081408A0\n"
- "_081407D8:\n"
- "\tmovs r4, 0\n"
- "_081407DA:\n"
- "\tmov r7, sp\n"
- "\tadds r0, r7, r4\n"
- "\tldrb r1, [r0]\n"
- "\tmovs r0, 0x1\n"
- "\tbl sub_81408F4\n"
- "\tcmp r0, 0\n"
- "\tbne _081408DC_return_false\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x2\n"
- "\tble _081407DA\n"
- "\tmovs r4, 0\n"
- "\tldr r2, _08140824 @ =gUnknown_84648AE\n"
- "\tmovs r3, 0\n"
- "\tadds r5, r2, 0x2\n"
- "_081407F8:\n"
- "\tldrb r0, [r2]\n"
- "\tmov r6, sp\n"
- "\tadds r1, r6, r0\n"
- "\tldrb r0, [r2, 0x1]\n"
- "\tadd r0, sp\n"
- "\tldrb r1, [r1]\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r1, r0\n"
- "\tbne _08140816\n"
- "\tadds r0, r3, r5\n"
- "\tldrb r0, [r0]\n"
- "\tadd r0, sp\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r1, r0\n"
- "\tbeq _081408DC_return_false\n"
- "_08140816:\n"
- "\tadds r2, 0x3\n"
- "\tadds r3, 0x3\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x4\n"
- "\tble _081407F8\n"
- "_08140820_return_true:\n"
- "\tmovs r0, 0x1\n"
- "\tb _081408DE\n"
- "\t.align 2, 0\n"
- "_08140824: .4byte gUnknown_84648AE\n"
- "_08140828:\n"
- "\tmovs r4, 0\n"
- "\tldr r5, _0814086C @ =gUnknown_84648AE\n"
- "_0814082C:\n"
- "\tldrb r0, [r5]\n"
- "\tmov r7, sp\n"
- "\tadds r2, r7, r0\n"
- "\tldrb r0, [r5, 0x1]\n"
- "\tadds r1, r7, r0\n"
- "\tldrb r0, [r2]\n"
- "\tldrb r1, [r1]\n"
- "\tcmp r0, r1\n"
- "\tbne _0814084A\n"
- "\tadds r1, r0, 0\n"
- "\tmov r0, r8\n"
- "\tbl sub_81408F4\n"
- "\tcmp r0, 0\n"
- "\tbne _081408DC_return_false\n"
- "_0814084A:\n"
- "\tadds r5, 0x3\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x4\n"
- "\tble _0814082C\n"
- "\tmovs r4, 0\n"
- "_08140854:\n"
- "\tmov r1, sp\n"
- "\tadds r0, r1, r4\n"
- "\tldrb r1, [r0]\n"
- "\tmov r0, r8\n"
- "\tbl sub_81408F4\n"
- "\tcmp r0, 0\n"
- "\tbne _08140820_return_true\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x2\n"
- "\tble _08140854\n"
- "\tb _081408DC_return_false\n"
- "\t.align 2, 0\n"
- "_0814086C: .4byte gUnknown_84648AE\n"
- "_08140870:\n"
- "\tmovs r4, 0\n"
- "\tldr r5, _0814089C @ =gUnknown_84648AE\n"
- "_08140874:\n"
- "\tldrb r0, [r5]\n"
- "\tmov r3, sp\n"
- "\tadds r2, r3, r0\n"
- "\tldrb r0, [r5, 0x1]\n"
- "\tadds r1, r3, r0\n"
- "\tldrb r0, [r2]\n"
- "\tldrb r1, [r1]\n"
- "\tcmp r0, r1\n"
- "\tbne _08140892\n"
- "\tadds r1, r0, 0\n"
- "\tmov r0, r8\n"
- "\tbl sub_81408F4\n"
- "\tcmp r0, 0\n"
- "\tbne _08140820_return_true\n"
- "_08140892:\n"
- "\tadds r5, 0x3\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x4\n"
- "\tble _08140874\n"
- "\tb _081408DC_return_false\n"
- "\t.align 2, 0\n"
- "_0814089C: .4byte gUnknown_84648AE\n"
- "_081408A0:\n"
- "\tmovs r4, 0\n"
- "\tldr r5, _081408F0 @ =gUnknown_84648AE\n"
- "\tadds r7, r5, 0\n"
- "\tmovs r6, 0\n"
- "_081408A8:\n"
- "\tldrb r0, [r5]\n"
- "\tmov r1, sp\n"
- "\tadds r2, r1, r0\n"
- "\tadds r0, r7, 0x1\n"
- "\tadds r0, r6, r0\n"
- "\tldrb r0, [r0]\n"
- "\tadd r0, sp\n"
- "\tldrb r1, [r2]\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r1, r0\n"
- "\tbne _081408D2\n"
- "\tldrb r0, [r5, 0x2]\n"
- "\tadd r0, sp\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r1, r0\n"
- "\tbne _081408D2\n"
- "\tmov r0, r8\n"
- "\tbl sub_81408F4\n"
- "\tcmp r0, 0\n"
- "\tbne _08140820_return_true\n"
- "_081408D2:\n"
- "\tadds r5, 0x3\n"
- "\tadds r6, 0x3\n"
- "\tadds r4, 0x1\n"
- "\tcmp r4, 0x4\n"
- "\tble _081408A8\n"
- "_081408DC_return_false:\n"
- "\tmovs r0, 0\n"
- "_081408DE:\n"
- "\tadd sp, 0x10\n"
- "\tpop {r3-r5}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tmov r10, r5\n"
- "\tpop {r4-r7}\n"
- "\tpop {r1}\n"
- "\tbx r1\n"
- "\t.align 2, 0\n"
- "_081408F0: .4byte gUnknown_84648AE");
-}
-#endif //NONMATCHING
static bool32 sub_81408F4(s32 a0, s32 a1)
{