mirror of
https://github.com/zeldaret/tp
synced 2026-08-05 01:30:02 -04:00
992cf48c7f
* JUTGamePad.o: elaborate classes, split * JUTGamePad::CButton: decompile functions: - clear() - clear(JUTGamePad*) - setRepeat() * elaborate PAD* types in new header * decompile getNumBit() * elaborate JUTGamePad fields * move retyped externs from variables.h to JUTGamePad.h * elaborate JUTGamePadLongPress * JUTGamePad: decompile functions - initList() - init() - clear() - assign() - checkResetCallback() - checkResetSwitch() - clearForReset() - recalibrate() JUTGamePad: decompile * JUTGamePad::CStick::clear(): decompile * JUTGamePad::CRumble: decompile functions - startMotor() - stopMotor() - triggerPatternedRumble() - startPatternedRumble() - stopPatternedRumbleAtThePeriod() - setEnabled() * JUTGamePadLongPress::checkCallback(): decompile * nonmatching: JUTGamePad::CRumble::update() and JUTGamePad::getGamePad * JSUList<T>: allow access to JSUPtrList functions * functions.h: clear out some func decls that are no longer used * add notes in JUTGamePad.cpp * clang-format + add back extern funcs * fix some more extern labels Co-authored-by: Pheenoh <pheenoh@gmail.com>
105 lines
5.3 KiB
ArmAsm
105 lines
5.3 KiB
ArmAsm
/* 802E1720 002DE660 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 802E1724 002DE664 7C 08 02 A6 */ mflr r0
|
|
/* 802E1728 002DE668 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 802E172C 002DE66C 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 802E1730 002DE670 48 08 0A AD */ bl _savegpr_29
|
|
/* 802E1734 002DE674 7C 7E 1B 78 */ mr r30, r3
|
|
/* 802E1738 002DE678 7C 9D 23 78 */ mr r29, r4
|
|
/* 802E173C 002DE67C 80 8D 8F 68 */ lwz r4, lbl_804514E8-_SDA_BASE_(r13)
|
|
/* 802E1740 002DE680 7F BF 07 34 */ extsh r31, r29
|
|
/* 802E1744 002DE684 57 E0 10 3A */ slwi r0, r31, 2
|
|
/* 802E1748 002DE688 3C 60 80 3D */ lis r3, lbl_803CC5F0@ha
|
|
/* 802E174C 002DE68C 38 63 C5 F0 */ addi r3, r3, lbl_803CC5F0@l
|
|
/* 802E1750 002DE690 7C 03 00 2E */ lwzx r0, r3, r0
|
|
/* 802E1754 002DE694 7C 83 00 38 */ and r3, r4, r0
|
|
/* 802E1758 002DE698 30 03 FF FF */ addic r0, r3, -1
|
|
/* 802E175C 002DE69C 7C 00 19 10 */ subfe r0, r0, r3
|
|
/* 802E1760 002DE6A0 54 00 06 3F */ clrlwi. r0, r0, 0x18
|
|
/* 802E1764 002DE6A4 40 82 00 1C */ bne lbl_802E1780
|
|
/* 802E1768 002DE6A8 38 00 00 00 */ li r0, 0
|
|
/* 802E176C 002DE6AC 90 1E 00 00 */ stw r0, 0(r30)
|
|
/* 802E1770 002DE6B0 90 1E 00 04 */ stw r0, 4(r30)
|
|
/* 802E1774 002DE6B4 90 1E 00 08 */ stw r0, 8(r30)
|
|
/* 802E1778 002DE6B8 90 1E 00 0C */ stw r0, 0xc(r30)
|
|
/* 802E177C 002DE6BC 90 1E 00 10 */ stw r0, 0x10(r30)
|
|
lbl_802E1780:
|
|
/* 802E1780 002DE6C0 80 1E 00 04 */ lwz r0, 4(r30)
|
|
/* 802E1784 002DE6C4 28 00 00 00 */ cmplwi r0, 0
|
|
/* 802E1788 002DE6C8 41 82 01 04 */ beq lbl_802E188C
|
|
/* 802E178C 002DE6CC 80 BE 00 00 */ lwz r5, 0(r30)
|
|
/* 802E1790 002DE6D0 7C 05 00 40 */ cmplw r5, r0
|
|
/* 802E1794 002DE6D4 41 80 00 1C */ blt lbl_802E17B0
|
|
/* 802E1798 002DE6D8 7F E3 FB 78 */ mr r3, r31
|
|
/* 802E179C 002DE6DC 38 80 00 01 */ li r4, 1
|
|
/* 802E17A0 002DE6E0 4B FF FE ED */ bl stopMotor__Q210JUTGamePad7CRumbleFib
|
|
/* 802E17A4 002DE6E4 38 00 00 00 */ li r0, 0
|
|
/* 802E17A8 002DE6E8 90 1E 00 04 */ stw r0, 4(r30)
|
|
/* 802E17AC 002DE6EC 48 00 00 D4 */ b lbl_802E1880
|
|
lbl_802E17B0:
|
|
/* 802E17B0 002DE6F0 80 9E 00 0C */ lwz r4, 0xc(r30)
|
|
/* 802E17B4 002DE6F4 28 04 00 00 */ cmplwi r4, 0
|
|
/* 802E17B8 002DE6F8 40 82 00 24 */ bne lbl_802E17DC
|
|
/* 802E17BC 002DE6FC 7F A0 07 34 */ extsh r0, r29
|
|
/* 802E17C0 002DE700 38 6D 8F 64 */ addi r3, r13, 0x804514E4-0x80458580/*lbl_804514E4-_SDA_BASE_*/
|
|
/* 802E17C4 002DE704 7C 03 00 AE */ lbzx r0, r3, r0
|
|
/* 802E17C8 002DE708 28 00 00 00 */ cmplwi r0, 0
|
|
/* 802E17CC 002DE70C 40 82 00 C0 */ bne lbl_802E188C
|
|
/* 802E17D0 002DE710 7F E3 FB 78 */ mr r3, r31
|
|
/* 802E17D4 002DE714 4B FF FE 61 */ bl startMotor__Q210JUTGamePad7CRumbleFi
|
|
/* 802E17D8 002DE718 48 00 00 B4 */ b lbl_802E188C
|
|
lbl_802E17DC:
|
|
/* 802E17DC 002DE71C 80 7E 00 08 */ lwz r3, 8(r30)
|
|
/* 802E17E0 002DE720 7C 05 23 96 */ divwu r0, r5, r4
|
|
/* 802E17E4 002DE724 7C 00 21 D6 */ mullw r0, r0, r4
|
|
/* 802E17E8 002DE728 7C 80 28 50 */ subf r4, r0, r5
|
|
/* 802E17EC 002DE72C 4B FF FF 0D */ bl getNumBit
|
|
/* 802E17F0 002DE730 7F A0 07 34 */ extsh r0, r29
|
|
/* 802E17F4 002DE734 38 8D 8F 64 */ addi r4, r13, 0x804514E4-0x80458580/*lbl_804514E4-_SDA_BASE_*/
|
|
/* 802E17F8 002DE738 7C 84 00 AE */ lbzx r4, r4, r0
|
|
/* 802E17FC 002DE73C 30 04 FF FF */ addic r0, r4, -1
|
|
/* 802E1800 002DE740 7C 00 21 10 */ subfe r0, r0, r4
|
|
/* 802E1804 002DE744 54 1D 06 3E */ clrlwi r29, r0, 0x18
|
|
/* 802E1808 002DE748 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
|
/* 802E180C 002DE74C 41 82 00 18 */ beq lbl_802E1824
|
|
/* 802E1810 002DE750 28 1D 00 00 */ cmplwi r29, 0
|
|
/* 802E1814 002DE754 40 82 00 10 */ bne lbl_802E1824
|
|
/* 802E1818 002DE758 7F E3 FB 78 */ mr r3, r31
|
|
/* 802E181C 002DE75C 4B FF FE 19 */ bl startMotor__Q210JUTGamePad7CRumbleFi
|
|
/* 802E1820 002DE760 48 00 00 60 */ b lbl_802E1880
|
|
lbl_802E1824:
|
|
/* 802E1824 002DE764 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
|
/* 802E1828 002DE768 40 82 00 58 */ bne lbl_802E1880
|
|
/* 802E182C 002DE76C 38 80 00 00 */ li r4, 0
|
|
/* 802E1830 002DE770 80 7E 00 10 */ lwz r3, 0x10(r30)
|
|
/* 802E1834 002DE774 28 03 00 00 */ cmplwi r3, 0
|
|
/* 802E1838 002DE778 41 82 00 20 */ beq lbl_802E1858
|
|
/* 802E183C 002DE77C 80 BE 00 00 */ lwz r5, 0(r30)
|
|
/* 802E1840 002DE780 80 9E 00 0C */ lwz r4, 0xc(r30)
|
|
/* 802E1844 002DE784 7C 05 23 96 */ divwu r0, r5, r4
|
|
/* 802E1848 002DE788 7C 00 21 D6 */ mullw r0, r0, r4
|
|
/* 802E184C 002DE78C 7C 80 28 50 */ subf r4, r0, r5
|
|
/* 802E1850 002DE790 4B FF FE A9 */ bl getNumBit
|
|
/* 802E1854 002DE794 7C 64 1B 78 */ mr r4, r3
|
|
lbl_802E1858:
|
|
/* 802E1858 002DE798 28 1D 00 00 */ cmplwi r29, 0
|
|
/* 802E185C 002DE79C 41 82 00 10 */ beq lbl_802E186C
|
|
/* 802E1860 002DE7A0 7F E3 FB 78 */ mr r3, r31
|
|
/* 802E1864 002DE7A4 4B FF FE 29 */ bl stopMotor__Q210JUTGamePad7CRumbleFib
|
|
/* 802E1868 002DE7A8 48 00 00 18 */ b lbl_802E1880
|
|
lbl_802E186C:
|
|
/* 802E186C 002DE7AC 54 80 06 3F */ clrlwi. r0, r4, 0x18
|
|
/* 802E1870 002DE7B0 41 82 00 10 */ beq lbl_802E1880
|
|
/* 802E1874 002DE7B4 7F E3 FB 78 */ mr r3, r31
|
|
/* 802E1878 002DE7B8 38 80 00 01 */ li r4, 1
|
|
/* 802E187C 002DE7BC 4B FF FE 11 */ bl stopMotor__Q210JUTGamePad7CRumbleFib
|
|
lbl_802E1880:
|
|
/* 802E1880 002DE7C0 80 7E 00 00 */ lwz r3, 0(r30)
|
|
/* 802E1884 002DE7C4 38 03 00 01 */ addi r0, r3, 1
|
|
/* 802E1888 002DE7C8 90 1E 00 00 */ stw r0, 0(r30)
|
|
lbl_802E188C:
|
|
/* 802E188C 002DE7CC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 802E1890 002DE7D0 48 08 09 99 */ bl _restgpr_29
|
|
/* 802E1894 002DE7D4 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 802E1898 002DE7D8 7C 08 03 A6 */ mtlr r0
|
|
/* 802E189C 002DE7DC 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 802E18A0 002DE7E0 4E 80 00 20 */ blr
|