Files
tp/include/JSystem/JUtility/JUTGamePad/asm/func_802E08E4.s
T

196 lines
10 KiB
ArmAsm

/* 802E08E4 002DD824 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802E08E8 002DD828 7C 08 02 A6 */ mflr r0
/* 802E08EC 002DD82C 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E08F0 002DD830 39 61 00 40 */ addi r11, r1, 0x40
/* 802E08F4 002DD834 48 08 18 CD */ bl func_803621C0
/* 802E08F8 002DD838 3C 60 80 43 */ lis r3, lbl_804343D8@ha
/* 802E08FC 002DD83C 3B E3 43 D8 */ addi r31, r3, lbl_804343D8@l
/* 802E0900 002DD840 38 7F 00 18 */ addi r3, r31, 0x18
/* 802E0904 002DD844 48 06 E5 9D */ bl PADRead
/* 802E0908 002DD848 90 6D 8F 60 */ stw r3, _sRumbleSupported-_SDA_BASE_(r13)
/* 802E090C 002DD84C 80 0D 83 5C */ lwz r0, lbl_804508DC-_SDA_BASE_(r13)
/* 802E0910 002DD850 2C 00 00 02 */ cmpwi r0, 2
/* 802E0914 002DD854 41 82 00 20 */ beq lbl_802E0934
/* 802E0918 002DD858 40 80 00 24 */ bge lbl_802E093C
/* 802E091C 002DD85C 2C 00 00 01 */ cmpwi r0, 1
/* 802E0920 002DD860 40 80 00 08 */ bge lbl_802E0928
/* 802E0924 002DD864 48 00 00 18 */ b lbl_802E093C
lbl_802E0928:
/* 802E0928 002DD868 38 7F 00 18 */ addi r3, r31, 0x18
/* 802E092C 002DD86C 48 06 D7 69 */ bl PADClamp
/* 802E0930 002DD870 48 00 00 0C */ b lbl_802E093C
lbl_802E0934:
/* 802E0934 002DD874 38 7F 00 18 */ addi r3, r31, 0x18
/* 802E0938 002DD878 48 06 D8 71 */ bl PADClampCircle
lbl_802E093C:
/* 802E093C 002DD87C 3B C0 00 00 */ li r30, 0
/* 802E0940 002DD880 3B A0 00 00 */ li r29, 0
/* 802E0944 002DD884 3B 80 00 00 */ li r28, 0
/* 802E0948 002DD888 3B 60 00 00 */ li r27, 0
/* 802E094C 002DD88C 3B 40 00 00 */ li r26, 0
/* 802E0950 002DD890 3F 20 80 00 */ lis r25, 0x8000
lbl_802E0954:
/* 802E0954 002DD894 7F 37 EC 30 */ srw r23, r25, r29
/* 802E0958 002DD898 3B 1F 00 18 */ addi r24, r31, 0x18
/* 802E095C 002DD89C 7F 18 D2 14 */ add r24, r24, r26
/* 802E0960 002DD8A0 88 78 00 0A */ lbz r3, 0xa(r24)
/* 802E0964 002DD8A4 7C 60 07 75 */ extsb. r0, r3
/* 802E0968 002DD8A8 40 82 00 6C */ bne lbl_802E09D4
/* 802E096C 002DD8AC 38 7F 01 08 */ addi r3, r31, 0x108
/* 802E0970 002DD8B0 7C 63 DA 14 */ add r3, r3, r27
/* 802E0974 002DD8B4 88 98 00 02 */ lbz r4, 2(r24)
/* 802E0978 002DD8B8 88 B8 00 03 */ lbz r5, 3(r24)
/* 802E097C 002DD8BC 80 CD 83 58 */ lwz r6, lbl_804508D8-_SDA_BASE_(r13)
/* 802E0980 002DD8C0 38 E0 00 00 */ li r7, 0
/* 802E0984 002DD8C4 3A FF 00 48 */ addi r23, r31, 0x48
/* 802E0988 002DD8C8 7E F7 E2 14 */ add r23, r23, r28
/* 802E098C 002DD8CC 81 17 00 00 */ lwz r8, 0(r23)
/* 802E0990 002DD8D0 48 00 08 A9 */ bl update__Q210JUTGamePad6CStickFScScUlUlUl
/* 802E0994 002DD8D4 54 76 C0 0E */ slwi r22, r3, 0x18
/* 802E0998 002DD8D8 38 7F 01 48 */ addi r3, r31, 0x148
/* 802E099C 002DD8DC 7C 63 DA 14 */ add r3, r3, r27
/* 802E09A0 002DD8E0 88 98 00 04 */ lbz r4, 4(r24)
/* 802E09A4 002DD8E4 88 B8 00 05 */ lbz r5, 5(r24)
/* 802E09A8 002DD8E8 80 CD 83 58 */ lwz r6, lbl_804508D8-_SDA_BASE_(r13)
/* 802E09AC 002DD8EC 38 E0 00 01 */ li r7, 1
/* 802E09B0 002DD8F0 81 17 00 00 */ lwz r8, 0(r23)
/* 802E09B4 002DD8F4 48 00 08 85 */ bl update__Q210JUTGamePad6CStickFScScUlUlUl
/* 802E09B8 002DD8F8 54 60 80 1E */ slwi r0, r3, 0x10
/* 802E09BC 002DD8FC 7E D6 03 78 */ or r22, r22, r0
/* 802E09C0 002DD900 7E E3 BB 78 */ mr r3, r23
/* 802E09C4 002DD904 7F 04 C3 78 */ mr r4, r24
/* 802E09C8 002DD908 7E C5 B3 78 */ mr r5, r22
/* 802E09CC 002DD90C 48 00 06 C1 */ bl update__Q210JUTGamePad7CButtonFPC9PADStatusUl
/* 802E09D0 002DD910 48 00 00 90 */ b lbl_802E0A60
lbl_802E09D4:
/* 802E09D4 002DD914 7C 60 07 74 */ extsb r0, r3
/* 802E09D8 002DD918 2C 00 FF FF */ cmpwi r0, -1
/* 802E09DC 002DD91C 40 82 00 6C */ bne lbl_802E0A48
/* 802E09E0 002DD920 38 7F 01 08 */ addi r3, r31, 0x108
/* 802E09E4 002DD924 7C 63 DA 14 */ add r3, r3, r27
/* 802E09E8 002DD928 38 80 00 00 */ li r4, 0
/* 802E09EC 002DD92C 38 A0 00 00 */ li r5, 0
/* 802E09F0 002DD930 80 CD 83 58 */ lwz r6, lbl_804508D8-_SDA_BASE_(r13)
/* 802E09F4 002DD934 38 E0 00 00 */ li r7, 0
/* 802E09F8 002DD938 39 00 00 00 */ li r8, 0
/* 802E09FC 002DD93C 48 00 08 3D */ bl update__Q210JUTGamePad6CStickFScScUlUlUl
/* 802E0A00 002DD940 38 7F 01 48 */ addi r3, r31, 0x148
/* 802E0A04 002DD944 7C 63 DA 14 */ add r3, r3, r27
/* 802E0A08 002DD948 38 80 00 00 */ li r4, 0
/* 802E0A0C 002DD94C 38 A0 00 00 */ li r5, 0
/* 802E0A10 002DD950 80 CD 83 58 */ lwz r6, lbl_804508D8-_SDA_BASE_(r13)
/* 802E0A14 002DD954 38 E0 00 01 */ li r7, 1
/* 802E0A18 002DD958 39 00 00 00 */ li r8, 0
/* 802E0A1C 002DD95C 48 00 08 1D */ bl update__Q210JUTGamePad6CStickFScScUlUlUl
/* 802E0A20 002DD960 38 7F 00 48 */ addi r3, r31, 0x48
/* 802E0A24 002DD964 7C 63 E2 14 */ add r3, r3, r28
/* 802E0A28 002DD968 38 80 00 00 */ li r4, 0
/* 802E0A2C 002DD96C 38 A0 00 00 */ li r5, 0
/* 802E0A30 002DD970 48 00 06 5D */ bl update__Q210JUTGamePad7CButtonFPC9PADStatusUl
/* 802E0A34 002DD974 80 0D 8F 58 */ lwz r0, lbl_804514D8-_SDA_BASE_(r13)
/* 802E0A38 002DD978 7C 00 B8 39 */ and. r0, r0, r23
/* 802E0A3C 002DD97C 40 82 00 24 */ bne lbl_802E0A60
/* 802E0A40 002DD980 7F DE BB 78 */ or r30, r30, r23
/* 802E0A44 002DD984 48 00 00 1C */ b lbl_802E0A60
lbl_802E0A48:
/* 802E0A48 002DD988 38 00 00 00 */ li r0, 0
/* 802E0A4C 002DD98C 38 7F 00 48 */ addi r3, r31, 0x48
/* 802E0A50 002DD990 7C 63 E2 14 */ add r3, r3, r28
/* 802E0A54 002DD994 90 03 00 04 */ stw r0, 4(r3)
/* 802E0A58 002DD998 90 03 00 08 */ stw r0, 8(r3)
/* 802E0A5C 002DD99C 90 03 00 18 */ stw r0, 0x18(r3)
lbl_802E0A60:
/* 802E0A60 002DD9A0 3B BD 00 01 */ addi r29, r29, 1
/* 802E0A64 002DD9A4 2C 1D 00 04 */ cmpwi r29, 4
/* 802E0A68 002DD9A8 3B 9C 00 30 */ addi r28, r28, 0x30
/* 802E0A6C 002DD9AC 3B 7B 00 10 */ addi r27, r27, 0x10
/* 802E0A70 002DD9B0 3B 5A 00 0C */ addi r26, r26, 0xc
/* 802E0A74 002DD9B4 41 80 FE E0 */ blt lbl_802E0954
/* 802E0A78 002DD9B8 83 3F 00 0C */ lwz r25, 0xc(r31)
/* 802E0A7C 002DD9BC 48 00 01 08 */ b lbl_802E0B84
lbl_802E0A80:
/* 802E0A80 002DD9C0 80 99 00 00 */ lwz r4, 0(r25)
/* 802E0A84 002DD9C4 80 64 00 94 */ lwz r3, 0x94(r4)
/* 802E0A88 002DD9C8 28 03 00 00 */ cmplwi r3, 0
/* 802E0A8C 002DD9CC 41 82 00 88 */ beq lbl_802E0B14
/* 802E0A90 002DD9D0 88 03 00 04 */ lbz r0, 4(r3)
/* 802E0A94 002DD9D4 28 00 00 00 */ cmplwi r0, 0
/* 802E0A98 002DD9D8 41 82 00 7C */ beq lbl_802E0B14
/* 802E0A9C 002DD9DC 38 81 00 08 */ addi r4, r1, 8
/* 802E0AA0 002DD9E0 81 83 00 00 */ lwz r12, 0(r3)
/* 802E0AA4 002DD9E4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802E0AA8 002DD9E8 7D 89 03 A6 */ mtctr r12
/* 802E0AAC 002DD9EC 4E 80 04 21 */ bctrl
/* 802E0AB0 002DD9F0 81 19 00 00 */ lwz r8, 0(r25)
/* 802E0AB4 002DD9F4 38 68 00 48 */ addi r3, r8, 0x48
/* 802E0AB8 002DD9F8 88 81 00 0A */ lbz r4, 0xa(r1)
/* 802E0ABC 002DD9FC 88 A1 00 0B */ lbz r5, 0xb(r1)
/* 802E0AC0 002DDA00 80 CD 83 58 */ lwz r6, lbl_804508D8-_SDA_BASE_(r13)
/* 802E0AC4 002DDA04 38 E0 00 00 */ li r7, 0
/* 802E0AC8 002DDA08 81 08 00 18 */ lwz r8, 0x18(r8)
/* 802E0ACC 002DDA0C 48 00 07 6D */ bl update__Q210JUTGamePad6CStickFScScUlUlUl
/* 802E0AD0 002DDA10 54 76 C0 0E */ slwi r22, r3, 0x18
/* 802E0AD4 002DDA14 81 19 00 00 */ lwz r8, 0(r25)
/* 802E0AD8 002DDA18 38 68 00 58 */ addi r3, r8, 0x58
/* 802E0ADC 002DDA1C 88 81 00 0C */ lbz r4, 0xc(r1)
/* 802E0AE0 002DDA20 88 A1 00 0D */ lbz r5, 0xd(r1)
/* 802E0AE4 002DDA24 80 CD 83 58 */ lwz r6, lbl_804508D8-_SDA_BASE_(r13)
/* 802E0AE8 002DDA28 38 E0 00 01 */ li r7, 1
/* 802E0AEC 002DDA2C 81 08 00 18 */ lwz r8, 0x18(r8)
/* 802E0AF0 002DDA30 48 00 07 49 */ bl update__Q210JUTGamePad6CStickFScScUlUlUl
/* 802E0AF4 002DDA34 54 60 80 1E */ slwi r0, r3, 0x10
/* 802E0AF8 002DDA38 7E D6 03 78 */ or r22, r22, r0
/* 802E0AFC 002DDA3C 80 79 00 00 */ lwz r3, 0(r25)
/* 802E0B00 002DDA40 38 63 00 18 */ addi r3, r3, 0x18
/* 802E0B04 002DDA44 38 81 00 08 */ addi r4, r1, 8
/* 802E0B08 002DDA48 7E C5 B3 78 */ mr r5, r22
/* 802E0B0C 002DDA4C 48 00 05 81 */ bl update__Q210JUTGamePad7CButtonFPC9PADStatusUl
/* 802E0B10 002DDA50 48 00 00 20 */ b lbl_802E0B30
lbl_802E0B14:
/* 802E0B14 002DDA54 A8 04 00 7C */ lha r0, 0x7c(r4)
/* 802E0B18 002DDA58 2C 00 FF FF */ cmpwi r0, -1
/* 802E0B1C 002DDA5C 40 82 00 0C */ bne lbl_802E0B28
/* 802E0B20 002DDA60 7C 83 23 78 */ mr r3, r4
/* 802E0B24 002DDA64 48 00 00 99 */ bl assign__10JUTGamePadFv
lbl_802E0B28:
/* 802E0B28 002DDA68 80 79 00 00 */ lwz r3, 0(r25)
/* 802E0B2C 002DDA6C 48 00 01 AD */ bl update__10JUTGamePadFv
lbl_802E0B30:
/* 802E0B30 002DDA70 80 99 00 00 */ lwz r4, 0(r25)
/* 802E0B34 002DDA74 80 64 00 90 */ lwz r3, 0x90(r4)
/* 802E0B38 002DDA78 28 03 00 00 */ cmplwi r3, 0
/* 802E0B3C 002DDA7C 41 82 00 44 */ beq lbl_802E0B80
/* 802E0B40 002DDA80 88 03 00 04 */ lbz r0, 4(r3)
/* 802E0B44 002DDA84 28 00 00 00 */ cmplwi r0, 0
/* 802E0B48 002DDA88 41 82 00 38 */ beq lbl_802E0B80
/* 802E0B4C 002DDA8C A8 04 00 7C */ lha r0, 0x7c(r4)
/* 802E0B50 002DDA90 2C 00 00 00 */ cmpwi r0, 0
/* 802E0B54 002DDA94 41 80 00 2C */ blt lbl_802E0B80
/* 802E0B58 002DDA98 1C 00 00 0C */ mulli r0, r0, 0xc
/* 802E0B5C 002DDA9C 38 9F 00 18 */ addi r4, r31, 0x18
/* 802E0B60 002DDAA0 7C 84 02 14 */ add r4, r4, r0
/* 802E0B64 002DDAA4 88 04 00 0A */ lbz r0, 0xa(r4)
/* 802E0B68 002DDAA8 7C 00 07 75 */ extsb. r0, r0
/* 802E0B6C 002DDAAC 40 82 00 14 */ bne lbl_802E0B80
/* 802E0B70 002DDAB0 81 83 00 00 */ lwz r12, 0(r3)
/* 802E0B74 002DDAB4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802E0B78 002DDAB8 7D 89 03 A6 */ mtctr r12
/* 802E0B7C 002DDABC 4E 80 04 21 */ bctrl
lbl_802E0B80:
/* 802E0B80 002DDAC0 83 39 00 0C */ lwz r25, 0xc(r25)
lbl_802E0B84:
/* 802E0B84 002DDAC4 28 19 00 00 */ cmplwi r25, 0
/* 802E0B88 002DDAC8 40 82 FE F8 */ bne lbl_802E0A80
/* 802E0B8C 002DDACC 28 1E 00 00 */ cmplwi r30, 0
/* 802E0B90 002DDAD0 41 82 00 0C */ beq lbl_802E0B9C
/* 802E0B94 002DDAD4 7F C3 F3 78 */ mr r3, r30
/* 802E0B98 002DDAD8 48 06 DF 95 */ bl PADReset
lbl_802E0B9C:
/* 802E0B9C 002DDADC 48 00 04 09 */ bl checkResetSwitch__10JUTGamePadFv
/* 802E0BA0 002DDAE0 80 6D 8F 60 */ lwz r3, _sRumbleSupported-_SDA_BASE_(r13)
/* 802E0BA4 002DDAE4 39 61 00 40 */ addi r11, r1, 0x40
/* 802E0BA8 002DDAE8 48 08 16 65 */ bl func_8036220C
/* 802E0BAC 002DDAEC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802E0BB0 002DDAF0 7C 08 03 A6 */ mtlr r0
/* 802E0BB4 002DDAF4 38 21 00 40 */ addi r1, r1, 0x40
/* 802E0BB8 002DDAF8 4E 80 00 20 */ blr