mirror of
https://github.com/zeldaret/tp
synced 2026-08-05 09:34:30 -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>
190 lines
9.6 KiB
ArmAsm
190 lines
9.6 KiB
ArmAsm
/* 802E0CD8 002DDC18 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 802E0CDC 002DDC1C 7C 08 02 A6 */ mflr r0
|
|
/* 802E0CE0 002DDC20 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 802E0CE4 002DDC24 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 802E0CE8 002DDC28 48 08 14 F1 */ bl _savegpr_28
|
|
/* 802E0CEC 002DDC2C 7C 7E 1B 78 */ mr r30, r3
|
|
/* 802E0CF0 002DDC30 3C 60 80 43 */ lis r3, lbl_804343D8@ha
|
|
/* 802E0CF4 002DDC34 38 63 43 D8 */ addi r3, r3, lbl_804343D8@l
|
|
/* 802E0CF8 002DDC38 A8 9E 00 7C */ lha r4, 0x7c(r30)
|
|
/* 802E0CFC 002DDC3C 2C 04 FF FF */ cmpwi r4, -1
|
|
/* 802E0D00 002DDC40 41 82 02 8C */ beq lbl_802E0F8C
|
|
/* 802E0D04 002DDC44 7C 80 07 35 */ extsh. r0, r4
|
|
/* 802E0D08 002DDC48 41 80 01 28 */ blt lbl_802E0E30
|
|
/* 802E0D0C 002DDC4C 2C 04 00 04 */ cmpwi r4, 4
|
|
/* 802E0D10 002DDC50 40 80 01 20 */ bge lbl_802E0E30
|
|
/* 802E0D14 002DDC54 1C 04 00 30 */ mulli r0, r4, 0x30
|
|
/* 802E0D18 002DDC58 38 83 00 48 */ addi r4, r3, 0x48
|
|
/* 802E0D1C 002DDC5C 7C 84 02 14 */ add r4, r4, r0
|
|
/* 802E0D20 002DDC60 80 04 00 00 */ lwz r0, 0(r4)
|
|
/* 802E0D24 002DDC64 90 1E 00 18 */ stw r0, 0x18(r30)
|
|
/* 802E0D28 002DDC68 80 04 00 04 */ lwz r0, 4(r4)
|
|
/* 802E0D2C 002DDC6C 90 1E 00 1C */ stw r0, 0x1c(r30)
|
|
/* 802E0D30 002DDC70 80 04 00 08 */ lwz r0, 8(r4)
|
|
/* 802E0D34 002DDC74 90 1E 00 20 */ stw r0, 0x20(r30)
|
|
/* 802E0D38 002DDC78 88 04 00 0C */ lbz r0, 0xc(r4)
|
|
/* 802E0D3C 002DDC7C 98 1E 00 24 */ stb r0, 0x24(r30)
|
|
/* 802E0D40 002DDC80 88 04 00 0D */ lbz r0, 0xd(r4)
|
|
/* 802E0D44 002DDC84 98 1E 00 25 */ stb r0, 0x25(r30)
|
|
/* 802E0D48 002DDC88 88 04 00 0E */ lbz r0, 0xe(r4)
|
|
/* 802E0D4C 002DDC8C 98 1E 00 26 */ stb r0, 0x26(r30)
|
|
/* 802E0D50 002DDC90 88 04 00 0F */ lbz r0, 0xf(r4)
|
|
/* 802E0D54 002DDC94 98 1E 00 27 */ stb r0, 0x27(r30)
|
|
/* 802E0D58 002DDC98 C0 04 00 10 */ lfs f0, 0x10(r4)
|
|
/* 802E0D5C 002DDC9C D0 1E 00 28 */ stfs f0, 0x28(r30)
|
|
/* 802E0D60 002DDCA0 C0 04 00 14 */ lfs f0, 0x14(r4)
|
|
/* 802E0D64 002DDCA4 D0 1E 00 2C */ stfs f0, 0x2c(r30)
|
|
/* 802E0D68 002DDCA8 80 04 00 18 */ lwz r0, 0x18(r4)
|
|
/* 802E0D6C 002DDCAC 90 1E 00 30 */ stw r0, 0x30(r30)
|
|
/* 802E0D70 002DDCB0 80 04 00 1C */ lwz r0, 0x1c(r4)
|
|
/* 802E0D74 002DDCB4 90 1E 00 34 */ stw r0, 0x34(r30)
|
|
/* 802E0D78 002DDCB8 80 04 00 20 */ lwz r0, 0x20(r4)
|
|
/* 802E0D7C 002DDCBC 90 1E 00 38 */ stw r0, 0x38(r30)
|
|
/* 802E0D80 002DDCC0 80 04 00 24 */ lwz r0, 0x24(r4)
|
|
/* 802E0D84 002DDCC4 90 1E 00 3C */ stw r0, 0x3c(r30)
|
|
/* 802E0D88 002DDCC8 80 04 00 28 */ lwz r0, 0x28(r4)
|
|
/* 802E0D8C 002DDCCC 90 1E 00 40 */ stw r0, 0x40(r30)
|
|
/* 802E0D90 002DDCD0 80 04 00 2C */ lwz r0, 0x2c(r4)
|
|
/* 802E0D94 002DDCD4 90 1E 00 44 */ stw r0, 0x44(r30)
|
|
/* 802E0D98 002DDCD8 A8 1E 00 7C */ lha r0, 0x7c(r30)
|
|
/* 802E0D9C 002DDCDC 54 00 20 36 */ slwi r0, r0, 4
|
|
/* 802E0DA0 002DDCE0 38 83 01 08 */ addi r4, r3, 0x108
|
|
/* 802E0DA4 002DDCE4 7C 84 02 14 */ add r4, r4, r0
|
|
/* 802E0DA8 002DDCE8 C0 04 00 00 */ lfs f0, 0(r4)
|
|
/* 802E0DAC 002DDCEC D0 1E 00 48 */ stfs f0, 0x48(r30)
|
|
/* 802E0DB0 002DDCF0 C0 04 00 04 */ lfs f0, 4(r4)
|
|
/* 802E0DB4 002DDCF4 D0 1E 00 4C */ stfs f0, 0x4c(r30)
|
|
/* 802E0DB8 002DDCF8 C0 04 00 08 */ lfs f0, 8(r4)
|
|
/* 802E0DBC 002DDCFC D0 1E 00 50 */ stfs f0, 0x50(r30)
|
|
/* 802E0DC0 002DDD00 A8 04 00 0C */ lha r0, 0xc(r4)
|
|
/* 802E0DC4 002DDD04 B0 1E 00 54 */ sth r0, 0x54(r30)
|
|
/* 802E0DC8 002DDD08 88 04 00 0E */ lbz r0, 0xe(r4)
|
|
/* 802E0DCC 002DDD0C 98 1E 00 56 */ stb r0, 0x56(r30)
|
|
/* 802E0DD0 002DDD10 88 04 00 0F */ lbz r0, 0xf(r4)
|
|
/* 802E0DD4 002DDD14 98 1E 00 57 */ stb r0, 0x57(r30)
|
|
/* 802E0DD8 002DDD18 A8 1E 00 7C */ lha r0, 0x7c(r30)
|
|
/* 802E0DDC 002DDD1C 54 00 20 36 */ slwi r0, r0, 4
|
|
/* 802E0DE0 002DDD20 38 83 01 48 */ addi r4, r3, 0x148
|
|
/* 802E0DE4 002DDD24 7C 84 02 14 */ add r4, r4, r0
|
|
/* 802E0DE8 002DDD28 C0 04 00 00 */ lfs f0, 0(r4)
|
|
/* 802E0DEC 002DDD2C D0 1E 00 58 */ stfs f0, 0x58(r30)
|
|
/* 802E0DF0 002DDD30 C0 04 00 04 */ lfs f0, 4(r4)
|
|
/* 802E0DF4 002DDD34 D0 1E 00 5C */ stfs f0, 0x5c(r30)
|
|
/* 802E0DF8 002DDD38 C0 04 00 08 */ lfs f0, 8(r4)
|
|
/* 802E0DFC 002DDD3C D0 1E 00 60 */ stfs f0, 0x60(r30)
|
|
/* 802E0E00 002DDD40 A8 04 00 0C */ lha r0, 0xc(r4)
|
|
/* 802E0E04 002DDD44 B0 1E 00 64 */ sth r0, 0x64(r30)
|
|
/* 802E0E08 002DDD48 88 04 00 0E */ lbz r0, 0xe(r4)
|
|
/* 802E0E0C 002DDD4C 98 1E 00 66 */ stb r0, 0x66(r30)
|
|
/* 802E0E10 002DDD50 88 04 00 0F */ lbz r0, 0xf(r4)
|
|
/* 802E0E14 002DDD54 98 1E 00 67 */ stb r0, 0x67(r30)
|
|
/* 802E0E18 002DDD58 38 63 00 18 */ addi r3, r3, 0x18
|
|
/* 802E0E1C 002DDD5C A8 1E 00 7C */ lha r0, 0x7c(r30)
|
|
/* 802E0E20 002DDD60 1C 00 00 0C */ mulli r0, r0, 0xc
|
|
/* 802E0E24 002DDD64 7C 63 02 14 */ add r3, r3, r0
|
|
/* 802E0E28 002DDD68 88 03 00 0A */ lbz r0, 0xa(r3)
|
|
/* 802E0E2C 002DDD6C 98 1E 00 7E */ stb r0, 0x7e(r30)
|
|
lbl_802E0E30:
|
|
/* 802E0E30 002DDD70 88 1E 00 A8 */ lbz r0, 0xa8(r30)
|
|
/* 802E0E34 002DDD74 28 00 00 00 */ cmplwi r0, 0
|
|
/* 802E0E38 002DDD78 41 82 00 1C */ beq lbl_802E0E54
|
|
/* 802E0E3C 002DDD7C 80 8D 83 68 */ lwz r4, lbl_804508E8-_SDA_BASE_(r13)
|
|
/* 802E0E40 002DDD80 80 7E 00 18 */ lwz r3, 0x18(r30)
|
|
/* 802E0E44 002DDD84 80 0D 83 6C */ lwz r0, lbl_804508EC-_SDA_BASE_(r13)
|
|
/* 802E0E48 002DDD88 7C 60 00 38 */ and r0, r3, r0
|
|
/* 802E0E4C 002DDD8C 7C 04 00 40 */ cmplw r4, r0
|
|
/* 802E0E50 002DDD90 41 82 00 10 */ beq lbl_802E0E60
|
|
lbl_802E0E54:
|
|
/* 802E0E54 002DDD94 38 00 00 00 */ li r0, 0
|
|
/* 802E0E58 002DDD98 98 1E 00 98 */ stb r0, 0x98(r30)
|
|
/* 802E0E5C 002DDD9C 48 00 00 50 */ b lbl_802E0EAC
|
|
lbl_802E0E60:
|
|
/* 802E0E60 002DDDA0 88 0D 8F 81 */ lbz r0, lbl_80451501-_SDA_BASE_(r13)
|
|
/* 802E0E64 002DDDA4 28 00 00 00 */ cmplwi r0, 0
|
|
/* 802E0E68 002DDDA8 40 82 00 44 */ bne lbl_802E0EAC
|
|
/* 802E0E6C 002DDDAC 88 1E 00 98 */ lbz r0, 0x98(r30)
|
|
/* 802E0E70 002DDDB0 28 00 00 01 */ cmplwi r0, 1
|
|
/* 802E0E74 002DDDB4 40 82 00 24 */ bne lbl_802E0E98
|
|
/* 802E0E78 002DDDB8 48 06 18 85 */ bl OSGetTime
|
|
/* 802E0E7C 002DDDBC 80 1E 00 A0 */ lwz r0, 0xa0(r30)
|
|
/* 802E0E80 002DDDC0 80 BE 00 A4 */ lwz r5, 0xa4(r30)
|
|
/* 802E0E84 002DDDC4 7C C5 20 10 */ subfc r6, r5, r4
|
|
/* 802E0E88 002DDDC8 7C A0 19 10 */ subfe r5, r0, r3
|
|
/* 802E0E8C 002DDDCC 7F C3 F3 78 */ mr r3, r30
|
|
/* 802E0E90 002DDDD0 4B FF FD DD */ bl checkResetCallback__10JUTGamePadFx
|
|
/* 802E0E94 002DDDD4 48 00 00 18 */ b lbl_802E0EAC
|
|
lbl_802E0E98:
|
|
/* 802E0E98 002DDDD8 38 00 00 01 */ li r0, 1
|
|
/* 802E0E9C 002DDDDC 98 1E 00 98 */ stb r0, 0x98(r30)
|
|
/* 802E0EA0 002DDDE0 48 06 18 5D */ bl OSGetTime
|
|
/* 802E0EA4 002DDDE4 90 9E 00 A4 */ stw r4, 0xa4(r30)
|
|
/* 802E0EA8 002DDDE8 90 7E 00 A0 */ stw r3, 0xa0(r30)
|
|
lbl_802E0EAC:
|
|
/* 802E0EAC 002DDDEC 3C 60 80 43 */ lis r3, lbl_8043456C@ha
|
|
/* 802E0EB0 002DDDF0 83 E3 45 6C */ lwz r31, lbl_8043456C@l(r3)
|
|
/* 802E0EB4 002DDDF4 48 00 00 B4 */ b lbl_802E0F68
|
|
lbl_802E0EB8:
|
|
/* 802E0EB8 002DDDF8 83 9F 00 00 */ lwz r28, 0(r31)
|
|
/* 802E0EBC 002DDDFC 88 1C 00 10 */ lbz r0, 0x10(r28)
|
|
/* 802E0EC0 002DDE00 28 00 00 00 */ cmplwi r0, 0
|
|
/* 802E0EC4 002DDE04 41 82 00 A0 */ beq lbl_802E0F64
|
|
/* 802E0EC8 002DDE08 AB BE 00 7C */ lha r29, 0x7c(r30)
|
|
/* 802E0ECC 002DDE0C 7F A0 07 35 */ extsh. r0, r29
|
|
/* 802E0ED0 002DDE10 41 80 00 94 */ blt lbl_802E0F64
|
|
/* 802E0ED4 002DDE14 2C 1D 00 04 */ cmpwi r29, 4
|
|
/* 802E0ED8 002DDE18 40 80 00 8C */ bge lbl_802E0F64
|
|
/* 802E0EDC 002DDE1C 80 7C 00 14 */ lwz r3, 0x14(r28)
|
|
/* 802E0EE0 002DDE20 80 9C 00 18 */ lwz r4, 0x18(r28)
|
|
/* 802E0EE4 002DDE24 80 1E 00 18 */ lwz r0, 0x18(r30)
|
|
/* 802E0EE8 002DDE28 7C 00 20 38 */ and r0, r0, r4
|
|
/* 802E0EEC 002DDE2C 7C 00 18 40 */ cmplw r0, r3
|
|
/* 802E0EF0 002DDE30 40 82 00 68 */ bne lbl_802E0F58
|
|
/* 802E0EF4 002DDE34 38 7D 00 20 */ addi r3, r29, 0x20
|
|
/* 802E0EF8 002DDE38 7C 1C 18 AE */ lbzx r0, r28, r3
|
|
/* 802E0EFC 002DDE3C 28 00 00 01 */ cmplwi r0, 1
|
|
/* 802E0F00 002DDE40 40 82 00 2C */ bne lbl_802E0F2C
|
|
/* 802E0F04 002DDE44 48 06 17 F9 */ bl OSGetTime
|
|
/* 802E0F08 002DDE48 57 A5 18 38 */ slwi r5, r29, 3
|
|
/* 802E0F0C 002DDE4C 38 05 00 28 */ addi r0, r5, 0x28
|
|
/* 802E0F10 002DDE50 7C BC 02 14 */ add r5, r28, r0
|
|
/* 802E0F14 002DDE54 80 A5 00 04 */ lwz r5, 4(r5)
|
|
/* 802E0F18 002DDE58 7C A5 20 10 */ subfc r5, r5, r4
|
|
/* 802E0F1C 002DDE5C 80 7F 00 00 */ lwz r3, 0(r31)
|
|
/* 802E0F20 002DDE60 A8 9E 00 7C */ lha r4, 0x7c(r30)
|
|
/* 802E0F24 002DDE64 48 00 0B D9 */ bl checkCallback__19JUTGamePadLongPressFlUl
|
|
/* 802E0F28 002DDE68 48 00 00 3C */ b lbl_802E0F64
|
|
lbl_802E0F2C:
|
|
/* 802E0F2C 002DDE6C 38 00 00 01 */ li r0, 1
|
|
/* 802E0F30 002DDE70 7C 1C 19 AE */ stbx r0, r28, r3
|
|
/* 802E0F34 002DDE74 83 BF 00 00 */ lwz r29, 0(r31)
|
|
/* 802E0F38 002DDE78 48 06 17 C5 */ bl OSGetTime
|
|
/* 802E0F3C 002DDE7C A8 1E 00 7C */ lha r0, 0x7c(r30)
|
|
/* 802E0F40 002DDE80 54 05 18 38 */ slwi r5, r0, 3
|
|
/* 802E0F44 002DDE84 38 05 00 28 */ addi r0, r5, 0x28
|
|
/* 802E0F48 002DDE88 7C BD 02 14 */ add r5, r29, r0
|
|
/* 802E0F4C 002DDE8C 90 85 00 04 */ stw r4, 4(r5)
|
|
/* 802E0F50 002DDE90 90 65 00 00 */ stw r3, 0(r5)
|
|
/* 802E0F54 002DDE94 48 00 00 10 */ b lbl_802E0F64
|
|
lbl_802E0F58:
|
|
/* 802E0F58 002DDE98 38 60 00 00 */ li r3, 0
|
|
/* 802E0F5C 002DDE9C 38 1D 00 20 */ addi r0, r29, 0x20
|
|
/* 802E0F60 002DDEA0 7C 7C 01 AE */ stbx r3, r28, r0
|
|
lbl_802E0F64:
|
|
/* 802E0F64 002DDEA4 83 FF 00 0C */ lwz r31, 0xc(r31)
|
|
lbl_802E0F68:
|
|
/* 802E0F68 002DDEA8 28 1F 00 00 */ cmplwi r31, 0
|
|
/* 802E0F6C 002DDEAC 40 82 FF 4C */ bne lbl_802E0EB8
|
|
/* 802E0F70 002DDEB0 A8 9E 00 7C */ lha r4, 0x7c(r30)
|
|
/* 802E0F74 002DDEB4 7C 80 07 35 */ extsh. r0, r4
|
|
/* 802E0F78 002DDEB8 41 80 00 14 */ blt lbl_802E0F8C
|
|
/* 802E0F7C 002DDEBC 2C 04 00 04 */ cmpwi r4, 4
|
|
/* 802E0F80 002DDEC0 40 80 00 0C */ bge lbl_802E0F8C
|
|
/* 802E0F84 002DDEC4 38 7E 00 68 */ addi r3, r30, 0x68
|
|
/* 802E0F88 002DDEC8 48 00 07 99 */ bl update__Q210JUTGamePad7CRumbleFs
|
|
lbl_802E0F8C:
|
|
/* 802E0F8C 002DDECC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 802E0F90 002DDED0 48 08 12 95 */ bl _restgpr_28
|
|
/* 802E0F94 002DDED4 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 802E0F98 002DDED8 7C 08 03 A6 */ mtlr r0
|
|
/* 802E0F9C 002DDEDC 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 802E0FA0 002DDEE0 4E 80 00 20 */ blr
|