diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-11-11 16:11:28 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-11 16:11:28 -0500 |
commit | 8d70c54cd37a6bf8aeed72c77dd70d2cb124cbf9 (patch) | |
tree | bc55693b64a92944beada2353ccf46ac2caa061c /src | |
parent | a0b2fa5d33c43bc4f42fc4f132f73e960d771d5b (diff) | |
parent | 678c024fabc1f26e6f2969c35aa20abeaee9a760 (diff) |
Merge pull request #152 from jiangzhengwenjz/nonmatching
real match sub_81406E8
Diffstat (limited to 'src')
-rw-r--r-- | src/slot_machine.c | 299 |
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) { |