2022-03-28 21:10:24 +00:00
|
|
|
.include "macros.inc"
|
|
|
|
|
2022-04-03 05:54:57 +00:00
|
|
|
.section .sbss, "wa"
|
|
|
|
|
|
|
|
.global __GBAReset
|
|
|
|
__GBAReset:
|
|
|
|
.skip 0x4
|
|
|
|
|
2022-04-02 22:25:50 +00:00
|
|
|
.section .data, "wa"
|
|
|
|
|
|
|
|
lbl_803F7160:
|
|
|
|
.4byte OnReset
|
|
|
|
.4byte 127
|
|
|
|
.4byte 0
|
|
|
|
.4byte 0
|
|
|
|
|
|
|
|
lbl_803F7170:
|
|
|
|
.byte 0x18
|
|
|
|
.byte 0xFC
|
|
|
|
.byte 0xC0
|
|
|
|
.byte 0x80
|
|
|
|
.byte 0x7f
|
|
|
|
.byte 0x40
|
|
|
|
.byte 0x3f
|
|
|
|
.byte 0x01
|
|
|
|
.byte 0x00
|
|
|
|
.ascii "// Coded by Kawasedo"
|
|
|
|
.byte 0x00
|
|
|
|
.byte 0x00
|
|
|
|
.byte 0x02
|
|
|
|
.byte 0x03
|
|
|
|
.byte 0x04
|
|
|
|
.byte 0x05
|
|
|
|
.byte 0x06
|
|
|
|
.byte 0x07
|
|
|
|
.byte 0x08
|
|
|
|
.byte 0xac
|
|
|
|
.byte 0xc4
|
|
|
|
.byte 0xf8
|
|
|
|
.byte 0x08
|
|
|
|
.byte 0x10
|
|
|
|
.byte 0xbf
|
|
|
|
.byte 0x18
|
|
|
|
.byte 0x00
|
|
|
|
.byte 0x00
|
|
|
|
.byte 0x00
|
|
|
|
|
|
|
|
|
2022-03-28 21:10:24 +00:00
|
|
|
.section .text, "ax" # 0x80003640 - 0x803CB1C0
|
|
|
|
|
|
|
|
.global ShortCommandProc
|
|
|
|
ShortCommandProc:
|
|
|
|
/* 803C95F8 003C6558 3C 80 80 57 */ lis r4, __GBA@ha
|
|
|
|
/* 803C95FC 003C655C 54 63 40 2E */ slwi r3, r3, 8
|
|
|
|
/* 803C9600 003C6560 38 04 A1 A0 */ addi r0, r4, __GBA@l
|
|
|
|
/* 803C9604 003C6564 7C 60 1A 14 */ add r3, r0, r3
|
|
|
|
/* 803C9608 003C6568 80 03 00 20 */ lwz r0, 0x20(r3)
|
|
|
|
/* 803C960C 003C656C 2C 00 00 00 */ cmpwi r0, 0
|
|
|
|
/* 803C9610 003C6570 4C 82 00 20 */ bnelr
|
|
|
|
/* 803C9614 003C6574 88 03 00 05 */ lbz r0, 5(r3)
|
|
|
|
/* 803C9618 003C6578 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C961C 003C657C 40 82 00 10 */ bne lbl_803C962C
|
|
|
|
/* 803C9620 003C6580 88 03 00 06 */ lbz r0, 6(r3)
|
|
|
|
/* 803C9624 003C6584 28 00 00 04 */ cmplwi r0, 4
|
|
|
|
/* 803C9628 003C6588 41 82 00 10 */ beq lbl_803C9638
|
|
|
|
lbl_803C962C:
|
|
|
|
/* 803C962C 003C658C 38 00 00 01 */ li r0, 1
|
|
|
|
/* 803C9630 003C6590 90 03 00 20 */ stw r0, 0x20(r3)
|
|
|
|
/* 803C9634 003C6594 4E 80 00 20 */ blr
|
|
|
|
lbl_803C9638:
|
|
|
|
/* 803C9638 003C6598 88 03 00 07 */ lbz r0, 7(r3)
|
|
|
|
/* 803C963C 003C659C 80 63 00 14 */ lwz r3, 0x14(r3)
|
|
|
|
/* 803C9640 003C65A0 70 00 00 3A */ andi. r0, r0, 0x3a
|
|
|
|
/* 803C9644 003C65A4 98 03 00 00 */ stb r0, 0(r3)
|
|
|
|
/* 803C9648 003C65A8 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAInit
|
|
|
|
GBAInit:
|
|
|
|
/* 803C964C 003C65AC 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9650 003C65B0 3C 60 80 00 */ lis r3, 0x800000F8@ha
|
|
|
|
/* 803C9654 003C65B4 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9658 003C65B8 3C 80 80 57 */ lis r4, __GBA@ha
|
|
|
|
/* 803C965C 003C65BC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
|
|
/* 803C9660 003C65C0 BF 61 00 0C */ stmw r27, 0xc(r1)
|
|
|
|
/* 803C9664 003C65C4 3B A4 A1 A0 */ addi r29, r4, __GBA@l
|
|
|
|
/* 803C9668 003C65C8 3B 60 00 00 */ li r27, 0
|
|
|
|
/* 803C966C 003C65CC 3B E0 00 00 */ li r31, 0
|
|
|
|
/* 803C9670 003C65D0 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
|
|
|
|
/* 803C9674 003C65D4 3C 60 43 1C */ lis r3, 0x431BDE83@ha
|
|
|
|
/* 803C9678 003C65D8 38 63 DE 83 */ addi r3, r3, 0x431BDE83@l
|
|
|
|
/* 803C967C 003C65DC 54 00 F0 BE */ srwi r0, r0, 2
|
|
|
|
/* 803C9680 003C65E0 7C 03 00 16 */ mulhwu r0, r3, r0
|
|
|
|
/* 803C9684 003C65E4 54 00 8B FE */ srwi r0, r0, 0xf
|
|
|
|
/* 803C9688 003C65E8 1C 00 00 3C */ mulli r0, r0, 0x3c
|
|
|
|
/* 803C968C 003C65EC 3C 60 80 57 */ lis r3, lbl_8056A0A0@ha
|
|
|
|
/* 803C9690 003C65F0 3B 83 A0 A0 */ addi r28, r3, lbl_8056A0A0@l
|
|
|
|
/* 803C9694 003C65F4 54 1E E8 FE */ srwi r30, r0, 3
|
|
|
|
lbl_803C9698:
|
|
|
|
/* 803C9698 003C65F8 93 DD 00 34 */ stw r30, 0x34(r29)
|
|
|
|
/* 803C969C 003C65FC 38 7D 00 24 */ addi r3, r29, 0x24
|
|
|
|
/* 803C96A0 003C6600 93 FD 00 30 */ stw r31, 0x30(r29)
|
|
|
|
/* 803C96A4 003C6604 4B FB AF 21 */ bl OSInitThreadQueue
|
|
|
|
/* 803C96A8 003C6608 3B 7B 00 01 */ addi r27, r27, 1
|
|
|
|
/* 803C96AC 003C660C 93 9D 00 F8 */ stw r28, 0xf8(r29)
|
|
|
|
/* 803C96B0 003C6610 2C 1B 00 04 */ cmpwi r27, 4
|
|
|
|
/* 803C96B4 003C6614 3B BD 01 00 */ addi r29, r29, 0x100
|
|
|
|
/* 803C96B8 003C6618 3B 9C 00 40 */ addi r28, r28, 0x40
|
|
|
|
/* 803C96BC 003C661C 41 80 FF DC */ blt lbl_803C9698
|
|
|
|
/* 803C96C0 003C6620 4B FB 49 A5 */ bl OSInitAlarm
|
|
|
|
/* 803C96C4 003C6624 4B FA 63 41 */ bl DSPInit
|
|
|
|
/* 803C96C8 003C6628 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C96CC 003C662C 3C 60 80 3F */ lis r3, lbl_803F7160@ha
|
|
|
|
/* 803C96D0 003C6630 90 0D B1 58 */ stw r0, __GBAReset@sda21(r13)
|
|
|
|
/* 803C96D4 003C6634 38 63 71 60 */ addi r3, r3, lbl_803F7160@l
|
|
|
|
/* 803C96D8 003C6638 4B FB 99 55 */ bl OSRegisterResetFunction
|
|
|
|
/* 803C96DC 003C663C BB 61 00 0C */ lmw r27, 0xc(r1)
|
|
|
|
/* 803C96E0 003C6640 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
|
|
/* 803C96E4 003C6644 38 21 00 20 */ addi r1, r1, 0x20
|
|
|
|
/* 803C96E8 003C6648 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C96EC 003C664C 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAGetStatusAsync
|
|
|
|
GBAGetStatusAsync:
|
|
|
|
/* 803C96F0 003C6650 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C96F4 003C6654 3C C0 80 57 */ lis r6, __GBA@ha
|
|
|
|
/* 803C96F8 003C6658 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C96FC 003C665C 54 67 40 2E */ slwi r7, r3, 8
|
|
|
|
/* 803C9700 003C6660 38 06 A1 A0 */ addi r0, r6, __GBA@l
|
|
|
|
/* 803C9704 003C6664 94 21 FF F8 */ stwu r1, -8(r1)
|
|
|
|
/* 803C9708 003C6668 7C E0 3A 14 */ add r7, r0, r7
|
|
|
|
/* 803C970C 003C666C 80 07 00 1C */ lwz r0, 0x1c(r7)
|
|
|
|
/* 803C9710 003C6670 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9714 003C6674 41 82 00 0C */ beq lbl_803C9720
|
|
|
|
/* 803C9718 003C6678 38 60 00 02 */ li r3, 2
|
|
|
|
/* 803C971C 003C667C 48 00 00 28 */ b lbl_803C9744
|
|
|
|
lbl_803C9720:
|
|
|
|
/* 803C9720 003C6680 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9724 003C6684 98 07 00 00 */ stb r0, 0(r7)
|
|
|
|
/* 803C9728 003C6688 3C C0 80 3D */ lis r6, ShortCommandProc@ha
|
|
|
|
/* 803C972C 003C668C 38 C6 95 F8 */ addi r6, r6, ShortCommandProc@l
|
|
|
|
/* 803C9730 003C6690 90 87 00 14 */ stw r4, 0x14(r7)
|
|
|
|
/* 803C9734 003C6694 38 80 00 01 */ li r4, 1
|
|
|
|
/* 803C9738 003C6698 90 A7 00 1C */ stw r5, 0x1c(r7)
|
|
|
|
/* 803C973C 003C669C 38 A0 00 03 */ li r5, 3
|
|
|
|
/* 803C9740 003C66A0 48 00 17 69 */ bl __GBATransfer
|
|
|
|
lbl_803C9744:
|
|
|
|
/* 803C9744 003C66A4 80 01 00 0C */ lwz r0, 0xc(r1)
|
|
|
|
/* 803C9748 003C66A8 38 21 00 08 */ addi r1, r1, 8
|
|
|
|
/* 803C974C 003C66AC 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9750 003C66B0 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAGetStatus
|
|
|
|
GBAGetStatus:
|
|
|
|
/* 803C9754 003C66B4 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9758 003C66B8 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C975C 003C66BC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
|
|
/* 803C9760 003C66C0 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
|
|
/* 803C9764 003C66C4 3B E3 00 00 */ addi r31, r3, 0
|
|
|
|
/* 803C9768 003C66C8 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C976C 003C66CC 57 E5 40 2E */ slwi r5, r31, 8
|
|
|
|
/* 803C9770 003C66D0 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9774 003C66D4 7C E0 2A 14 */ add r7, r0, r5
|
|
|
|
/* 803C9778 003C66D8 80 07 00 1C */ lwz r0, 0x1c(r7)
|
|
|
|
/* 803C977C 003C66DC 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9780 003C66E0 41 82 00 0C */ beq lbl_803C978C
|
|
|
|
/* 803C9784 003C66E4 38 60 00 02 */ li r3, 2
|
|
|
|
/* 803C9788 003C66E8 48 00 00 34 */ b lbl_803C97BC
|
|
|
|
lbl_803C978C:
|
|
|
|
/* 803C978C 003C66EC 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9790 003C66F0 98 07 00 00 */ stb r0, 0(r7)
|
|
|
|
/* 803C9794 003C66F4 3C A0 80 3D */ lis r5, __GBASyncCallback@ha
|
|
|
|
/* 803C9798 003C66F8 38 05 AC E4 */ addi r0, r5, __GBASyncCallback@l
|
|
|
|
/* 803C979C 003C66FC 90 87 00 14 */ stw r4, 0x14(r7)
|
|
|
|
/* 803C97A0 003C6700 3C 60 80 3D */ lis r3, ShortCommandProc@ha
|
|
|
|
/* 803C97A4 003C6704 38 C3 95 F8 */ addi r6, r3, ShortCommandProc@l
|
|
|
|
/* 803C97A8 003C6708 90 07 00 1C */ stw r0, 0x1c(r7)
|
|
|
|
/* 803C97AC 003C670C 38 7F 00 00 */ addi r3, r31, 0
|
|
|
|
/* 803C97B0 003C6710 38 80 00 01 */ li r4, 1
|
|
|
|
/* 803C97B4 003C6714 38 A0 00 03 */ li r5, 3
|
|
|
|
/* 803C97B8 003C6718 48 00 16 F1 */ bl __GBATransfer
|
|
|
|
lbl_803C97BC:
|
|
|
|
/* 803C97BC 003C671C 2C 03 00 00 */ cmpwi r3, 0
|
|
|
|
/* 803C97C0 003C6720 41 82 00 08 */ beq lbl_803C97C8
|
|
|
|
/* 803C97C4 003C6724 48 00 00 0C */ b lbl_803C97D0
|
|
|
|
lbl_803C97C8:
|
|
|
|
/* 803C97C8 003C6728 7F E3 FB 78 */ mr r3, r31
|
|
|
|
/* 803C97CC 003C672C 48 00 15 4D */ bl __GBASync
|
|
|
|
lbl_803C97D0:
|
|
|
|
/* 803C97D0 003C6730 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
|
|
/* 803C97D4 003C6734 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
|
|
/* 803C97D8 003C6738 38 21 00 20 */ addi r1, r1, 0x20
|
|
|
|
/* 803C97DC 003C673C 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C97E0 003C6740 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAResetAsync
|
|
|
|
GBAResetAsync:
|
|
|
|
/* 803C97E4 003C6744 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C97E8 003C6748 3C C0 80 57 */ lis r6, __GBA@ha
|
|
|
|
/* 803C97EC 003C674C 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C97F0 003C6750 54 67 40 2E */ slwi r7, r3, 8
|
|
|
|
/* 803C97F4 003C6754 38 06 A1 A0 */ addi r0, r6, __GBA@l
|
|
|
|
/* 803C97F8 003C6758 94 21 FF F8 */ stwu r1, -8(r1)
|
|
|
|
/* 803C97FC 003C675C 7C E0 3A 14 */ add r7, r0, r7
|
|
|
|
/* 803C9800 003C6760 80 07 00 1C */ lwz r0, 0x1c(r7)
|
|
|
|
/* 803C9804 003C6764 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9808 003C6768 41 82 00 0C */ beq lbl_803C9814
|
|
|
|
/* 803C980C 003C676C 38 60 00 02 */ li r3, 2
|
|
|
|
/* 803C9810 003C6770 48 00 00 28 */ b lbl_803C9838
|
|
|
|
lbl_803C9814:
|
|
|
|
/* 803C9814 003C6774 38 00 00 FF */ li r0, 0xff
|
|
|
|
/* 803C9818 003C6778 98 07 00 00 */ stb r0, 0(r7)
|
|
|
|
/* 803C981C 003C677C 3C C0 80 3D */ lis r6, ShortCommandProc@ha
|
|
|
|
/* 803C9820 003C6780 38 C6 95 F8 */ addi r6, r6, ShortCommandProc@l
|
|
|
|
/* 803C9824 003C6784 90 87 00 14 */ stw r4, 0x14(r7)
|
|
|
|
/* 803C9828 003C6788 38 80 00 01 */ li r4, 1
|
|
|
|
/* 803C982C 003C678C 90 A7 00 1C */ stw r5, 0x1c(r7)
|
|
|
|
/* 803C9830 003C6790 38 A0 00 03 */ li r5, 3
|
|
|
|
/* 803C9834 003C6794 48 00 16 75 */ bl __GBATransfer
|
|
|
|
lbl_803C9838:
|
|
|
|
/* 803C9838 003C6798 80 01 00 0C */ lwz r0, 0xc(r1)
|
|
|
|
/* 803C983C 003C679C 38 21 00 08 */ addi r1, r1, 8
|
|
|
|
/* 803C9840 003C67A0 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9844 003C67A4 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAReset
|
|
|
|
GBAReset:
|
|
|
|
/* 803C9848 003C67A8 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C984C 003C67AC 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9850 003C67B0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
|
|
/* 803C9854 003C67B4 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
|
|
/* 803C9858 003C67B8 3B E3 00 00 */ addi r31, r3, 0
|
|
|
|
/* 803C985C 003C67BC 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C9860 003C67C0 57 E5 40 2E */ slwi r5, r31, 8
|
|
|
|
/* 803C9864 003C67C4 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9868 003C67C8 7C E0 2A 14 */ add r7, r0, r5
|
|
|
|
/* 803C986C 003C67CC 80 07 00 1C */ lwz r0, 0x1c(r7)
|
|
|
|
/* 803C9870 003C67D0 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9874 003C67D4 41 82 00 0C */ beq lbl_803C9880
|
|
|
|
/* 803C9878 003C67D8 38 60 00 02 */ li r3, 2
|
|
|
|
/* 803C987C 003C67DC 48 00 00 34 */ b lbl_803C98B0
|
|
|
|
lbl_803C9880:
|
|
|
|
/* 803C9880 003C67E0 38 00 00 FF */ li r0, 0xff
|
|
|
|
/* 803C9884 003C67E4 98 07 00 00 */ stb r0, 0(r7)
|
|
|
|
/* 803C9888 003C67E8 3C A0 80 3D */ lis r5, __GBASyncCallback@ha
|
|
|
|
/* 803C988C 003C67EC 38 05 AC E4 */ addi r0, r5, __GBASyncCallback@l
|
|
|
|
/* 803C9890 003C67F0 90 87 00 14 */ stw r4, 0x14(r7)
|
|
|
|
/* 803C9894 003C67F4 3C 60 80 3D */ lis r3, ShortCommandProc@ha
|
|
|
|
/* 803C9898 003C67F8 38 C3 95 F8 */ addi r6, r3, ShortCommandProc@l
|
|
|
|
/* 803C989C 003C67FC 90 07 00 1C */ stw r0, 0x1c(r7)
|
|
|
|
/* 803C98A0 003C6800 38 7F 00 00 */ addi r3, r31, 0
|
|
|
|
/* 803C98A4 003C6804 38 80 00 01 */ li r4, 1
|
|
|
|
/* 803C98A8 003C6808 38 A0 00 03 */ li r5, 3
|
|
|
|
/* 803C98AC 003C680C 48 00 15 FD */ bl __GBATransfer
|
|
|
|
lbl_803C98B0:
|
|
|
|
/* 803C98B0 003C6810 2C 03 00 00 */ cmpwi r3, 0
|
|
|
|
/* 803C98B4 003C6814 41 82 00 08 */ beq lbl_803C98BC
|
|
|
|
/* 803C98B8 003C6818 48 00 00 0C */ b lbl_803C98C4
|
|
|
|
lbl_803C98BC:
|
|
|
|
/* 803C98BC 003C681C 7F E3 FB 78 */ mr r3, r31
|
|
|
|
/* 803C98C0 003C6820 48 00 14 59 */ bl __GBASync
|
|
|
|
lbl_803C98C4:
|
|
|
|
/* 803C98C4 003C6824 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
|
|
/* 803C98C8 003C6828 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
|
|
/* 803C98CC 003C682C 38 21 00 20 */ addi r1, r1, 0x20
|
|
|
|
/* 803C98D0 003C6830 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C98D4 003C6834 4E 80 00 20 */ blr
|
|
|
|
|
2022-04-02 22:25:50 +00:00
|
|
|
OnReset:
|
2022-03-28 21:10:24 +00:00
|
|
|
/* 803C98D8 003C6838 38 00 00 01 */ li r0, 1
|
|
|
|
/* 803C98DC 003C683C 90 0D B1 58 */ stw r0, __GBAReset@sda21(r13)
|
|
|
|
/* 803C98E0 003C6840 38 60 00 01 */ li r3, 1
|
|
|
|
/* 803C98E4 003C6844 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAGetProcessStatus
|
|
|
|
GBAGetProcessStatus:
|
|
|
|
/* 803C98E8 003C6848 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C98EC 003C684C 3C A0 80 57 */ lis r5, __GBA@ha
|
|
|
|
/* 803C98F0 003C6850 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C98F4 003C6854 54 63 40 2E */ slwi r3, r3, 8
|
|
|
|
/* 803C98F8 003C6858 38 05 A1 A0 */ addi r0, r5, __GBA@l
|
|
|
|
/* 803C98FC 003C685C 94 21 FF C8 */ stwu r1, -0x38(r1)
|
|
|
|
/* 803C9900 003C6860 BE E1 00 14 */ stmw r23, 0x14(r1)
|
|
|
|
/* 803C9904 003C6864 7E E0 1A 14 */ add r23, r0, r3
|
|
|
|
/* 803C9908 003C6868 3B 04 00 00 */ addi r24, r4, 0
|
|
|
|
/* 803C990C 003C686C 3B F7 00 40 */ addi r31, r23, 0x40
|
|
|
|
/* 803C9910 003C6870 4B FB 7D 51 */ bl OSDisableInterrupts
|
|
|
|
/* 803C9914 003C6874 80 1F 00 14 */ lwz r0, 0x14(r31)
|
|
|
|
/* 803C9918 003C6878 3B A3 00 00 */ addi r29, r3, 0
|
|
|
|
/* 803C991C 003C687C 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9920 003C6880 41 82 01 04 */ beq lbl_803C9A24
|
|
|
|
/* 803C9924 003C6884 80 7F 00 34 */ lwz r3, 0x34(r31)
|
|
|
|
/* 803C9928 003C6888 3B C0 00 00 */ li r30, 0
|
|
|
|
/* 803C992C 003C688C 80 1F 00 28 */ lwz r0, 0x28(r31)
|
|
|
|
/* 803C9930 003C6890 3B 80 00 02 */ li r28, 2
|
|
|
|
/* 803C9934 003C6894 1C A3 00 64 */ mulli r5, r3, 0x64
|
|
|
|
/* 803C9938 003C6898 80 9F 00 64 */ lwz r4, 0x64(r31)
|
|
|
|
/* 803C993C 003C689C 80 7F 00 2C */ lwz r3, 0x2c(r31)
|
|
|
|
/* 803C9940 003C68A0 7C 85 23 D6 */ divw r4, r5, r4
|
|
|
|
/* 803C9944 003C68A4 7C 63 F2 78 */ xor r3, r3, r30
|
|
|
|
/* 803C9948 003C68A8 7C 00 F2 78 */ xor r0, r0, r30
|
|
|
|
/* 803C994C 003C68AC 7C 60 03 79 */ or. r0, r3, r0
|
|
|
|
/* 803C9950 003C68B0 54 9B 06 3E */ clrlwi r27, r4, 0x18
|
|
|
|
/* 803C9954 003C68B4 41 82 00 C0 */ beq lbl_803C9A14
|
|
|
|
/* 803C9958 003C68B8 4B FB BA 51 */ bl OSGetTime
|
|
|
|
/* 803C995C 003C68BC 3E E0 80 00 */ lis r23, 0x800000F8@ha
|
|
|
|
/* 803C9960 003C68C0 80 DF 00 2C */ lwz r6, 0x2c(r31)
|
|
|
|
/* 803C9964 003C68C4 80 17 00 F8 */ lwz r0, 0x800000F8@l(r23)
|
|
|
|
/* 803C9968 003C68C8 3C A0 10 62 */ lis r5, 0x10624DD3@ha
|
|
|
|
/* 803C996C 003C68CC 7F 26 20 10 */ subfc r25, r6, r4
|
|
|
|
/* 803C9970 003C68D0 80 9F 00 28 */ lwz r4, 0x28(r31)
|
|
|
|
/* 803C9974 003C68D4 3B E5 4D D3 */ addi r31, r5, 0x10624DD3@l
|
|
|
|
/* 803C9978 003C68D8 54 00 F0 BE */ srwi r0, r0, 2
|
|
|
|
/* 803C997C 003C68DC 7C 1F 00 16 */ mulhwu r0, r31, r0
|
|
|
|
/* 803C9980 003C68E0 7F 44 19 10 */ subfe r26, r4, r3
|
|
|
|
/* 803C9984 003C68E4 54 06 D1 BE */ srwi r6, r0, 6
|
|
|
|
/* 803C9988 003C68E8 38 7A 00 00 */ addi r3, r26, 0
|
|
|
|
/* 803C998C 003C68EC 38 99 00 00 */ addi r4, r25, 0
|
|
|
|
/* 803C9990 003C68F0 38 A0 00 00 */ li r5, 0
|
|
|
|
/* 803C9994 003C68F4 4B FC 02 39 */ bl __div2i
|
|
|
|
/* 803C9998 003C68F8 38 E0 15 7C */ li r7, 0x157c
|
|
|
|
/* 803C999C 003C68FC 6C 65 80 00 */ xoris r5, r3, 0x8000
|
|
|
|
/* 803C99A0 003C6900 6F C3 80 00 */ xoris r3, r30, 0x8000
|
|
|
|
/* 803C99A4 003C6904 7C 07 20 10 */ subfc r0, r7, r4
|
|
|
|
/* 803C99A8 003C6908 7C 63 29 10 */ subfe r3, r3, r5
|
|
|
|
/* 803C99AC 003C690C 7C 65 29 10 */ subfe r3, r5, r5
|
|
|
|
/* 803C99B0 003C6910 7C 63 00 D1 */ neg. r3, r3
|
|
|
|
/* 803C99B4 003C6914 41 82 00 50 */ beq lbl_803C9A04
|
|
|
|
/* 803C99B8 003C6918 80 77 00 F8 */ lwz r3, 0xf8(r23)
|
|
|
|
/* 803C99BC 003C691C 7C BE 39 D6 */ mullw r5, r30, r7
|
|
|
|
/* 803C99C0 003C6920 54 63 F0 BE */ srwi r3, r3, 2
|
|
|
|
/* 803C99C4 003C6924 7C 7F 18 16 */ mulhwu r3, r31, r3
|
|
|
|
/* 803C99C8 003C6928 54 66 D1 BE */ srwi r6, r3, 6
|
|
|
|
/* 803C99CC 003C692C 7C 66 38 16 */ mulhwu r3, r6, r7
|
|
|
|
/* 803C99D0 003C6930 7C A5 1A 14 */ add r5, r5, r3
|
|
|
|
/* 803C99D4 003C6934 7C 66 F1 D6 */ mullw r3, r6, r30
|
|
|
|
/* 803C99D8 003C6938 7F 60 FE 70 */ srawi r0, r27, 0x1f
|
|
|
|
/* 803C99DC 003C693C 7C A5 1A 14 */ add r5, r5, r3
|
|
|
|
/* 803C99E0 003C6940 7C 60 C9 D6 */ mullw r3, r0, r25
|
|
|
|
/* 803C99E4 003C6944 7C 1B C8 16 */ mulhwu r0, r27, r25
|
|
|
|
/* 803C99E8 003C6948 7C 63 02 14 */ add r3, r3, r0
|
|
|
|
/* 803C99EC 003C694C 7C 1B D1 D6 */ mullw r0, r27, r26
|
|
|
|
/* 803C99F0 003C6950 7C 9B C9 D6 */ mullw r4, r27, r25
|
|
|
|
/* 803C99F4 003C6954 7C C6 39 D6 */ mullw r6, r6, r7
|
|
|
|
/* 803C99F8 003C6958 7C 63 02 14 */ add r3, r3, r0
|
|
|
|
/* 803C99FC 003C695C 4B FC 01 D1 */ bl __div2i
|
|
|
|
/* 803C9A00 003C6960 7C 9B 23 78 */ mr r27, r4
|
|
|
|
lbl_803C9A04:
|
|
|
|
/* 803C9A04 003C6964 57 60 06 3E */ clrlwi r0, r27, 0x18
|
|
|
|
/* 803C9A08 003C6968 28 00 00 64 */ cmplwi r0, 0x64
|
|
|
|
/* 803C9A0C 003C696C 41 80 00 08 */ blt lbl_803C9A14
|
|
|
|
/* 803C9A10 003C6970 3B 60 00 64 */ li r27, 0x64
|
|
|
|
lbl_803C9A14:
|
|
|
|
/* 803C9A14 003C6974 28 18 00 00 */ cmplwi r24, 0
|
|
|
|
/* 803C9A18 003C6978 41 82 00 24 */ beq lbl_803C9A3C
|
|
|
|
/* 803C9A1C 003C697C 9B 78 00 00 */ stb r27, 0(r24)
|
|
|
|
/* 803C9A20 003C6980 48 00 00 1C */ b lbl_803C9A3C
|
|
|
|
lbl_803C9A24:
|
|
|
|
/* 803C9A24 003C6984 80 17 00 1C */ lwz r0, 0x1c(r23)
|
|
|
|
/* 803C9A28 003C6988 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9A2C 003C698C 41 82 00 0C */ beq lbl_803C9A38
|
|
|
|
/* 803C9A30 003C6990 3B 80 00 02 */ li r28, 2
|
|
|
|
/* 803C9A34 003C6994 48 00 00 08 */ b lbl_803C9A3C
|
|
|
|
lbl_803C9A38:
|
|
|
|
/* 803C9A38 003C6998 3B 80 00 00 */ li r28, 0
|
|
|
|
lbl_803C9A3C:
|
|
|
|
/* 803C9A3C 003C699C 7F A3 EB 78 */ mr r3, r29
|
|
|
|
/* 803C9A40 003C69A0 4B FB 7C 49 */ bl OSRestoreInterrupts
|
|
|
|
/* 803C9A44 003C69A4 7F 83 E3 78 */ mr r3, r28
|
|
|
|
/* 803C9A48 003C69A8 BA E1 00 14 */ lmw r23, 0x14(r1)
|
|
|
|
/* 803C9A4C 003C69AC 80 01 00 3C */ lwz r0, 0x3c(r1)
|
|
|
|
/* 803C9A50 003C69B0 38 21 00 38 */ addi r1, r1, 0x38
|
|
|
|
/* 803C9A54 003C69B4 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9A58 003C69B8 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global GBAJoyBootAsync
|
|
|
|
GBAJoyBootAsync:
|
|
|
|
/* 803C9A5C 003C69BC 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9A60 003C69C0 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9A64 003C69C4 54 60 00 3B */ rlwinm. r0, r3, 0, 0, 0x1d
|
|
|
|
/* 803C9A68 003C69C8 94 21 FF B8 */ stwu r1, -0x48(r1)
|
|
|
|
/* 803C9A6C 003C69CC BF 01 00 28 */ stmw r24, 0x28(r1)
|
|
|
|
/* 803C9A70 003C69D0 3B 03 00 00 */ addi r24, r3, 0
|
|
|
|
/* 803C9A74 003C69D4 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C9A78 003C69D8 57 0A 40 2E */ slwi r10, r24, 8
|
|
|
|
/* 803C9A7C 003C69DC 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9A80 003C69E0 7C 60 52 14 */ add r3, r0, r10
|
|
|
|
/* 803C9A84 003C69E4 3B 24 00 00 */ addi r25, r4, 0
|
|
|
|
/* 803C9A88 003C69E8 3B 45 00 00 */ addi r26, r5, 0
|
|
|
|
/* 803C9A8C 003C69EC 3B 66 00 00 */ addi r27, r6, 0
|
|
|
|
/* 803C9A90 003C69F0 3B 87 00 00 */ addi r28, r7, 0
|
|
|
|
/* 803C9A94 003C69F4 3B A8 00 00 */ addi r29, r8, 0
|
|
|
|
/* 803C9A98 003C69F8 3B C9 00 00 */ addi r30, r9, 0
|
|
|
|
/* 803C9A9C 003C69FC 3B E3 00 40 */ addi r31, r3, 0x40
|
|
|
|
/* 803C9AA0 003C6A00 41 82 00 0C */ beq lbl_803C9AAC
|
|
|
|
/* 803C9AA4 003C6A04 38 60 00 04 */ li r3, 4
|
|
|
|
/* 803C9AA8 003C6A08 48 00 00 DC */ b lbl_803C9B84
|
|
|
|
lbl_803C9AAC:
|
|
|
|
/* 803C9AAC 003C6A0C 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803C9AB0 003C6A10 41 82 00 10 */ beq lbl_803C9AC0
|
|
|
|
/* 803C9AB4 003C6A14 3C 00 00 04 */ lis r0, 4
|
|
|
|
/* 803C9AB8 003C6A18 7C 00 E0 00 */ cmpw r0, r28
|
|
|
|
/* 803C9ABC 003C6A1C 40 80 00 0C */ bge lbl_803C9AC8
|
|
|
|
lbl_803C9AC0:
|
|
|
|
/* 803C9AC0 003C6A20 38 60 00 04 */ li r3, 4
|
|
|
|
/* 803C9AC4 003C6A24 48 00 00 C0 */ b lbl_803C9B84
|
|
|
|
lbl_803C9AC8:
|
|
|
|
/* 803C9AC8 003C6A28 2C 1A FF FC */ cmpwi r26, -4
|
|
|
|
/* 803C9ACC 003C6A2C 41 80 00 0C */ blt lbl_803C9AD8
|
|
|
|
/* 803C9AD0 003C6A30 2C 1A 00 04 */ cmpwi r26, 4
|
|
|
|
/* 803C9AD4 003C6A34 40 81 00 0C */ ble lbl_803C9AE0
|
|
|
|
lbl_803C9AD8:
|
|
|
|
/* 803C9AD8 003C6A38 38 60 00 04 */ li r3, 4
|
|
|
|
/* 803C9ADC 003C6A3C 48 00 00 A8 */ b lbl_803C9B84
|
|
|
|
lbl_803C9AE0:
|
|
|
|
/* 803C9AE0 003C6A40 2C 19 00 00 */ cmpwi r25, 0
|
|
|
|
/* 803C9AE4 003C6A44 41 80 00 0C */ blt lbl_803C9AF0
|
|
|
|
/* 803C9AE8 003C6A48 2C 19 00 06 */ cmpwi r25, 6
|
|
|
|
/* 803C9AEC 003C6A4C 40 81 00 0C */ ble lbl_803C9AF8
|
|
|
|
lbl_803C9AF0:
|
|
|
|
/* 803C9AF0 003C6A50 38 60 00 04 */ li r3, 4
|
|
|
|
/* 803C9AF4 003C6A54 48 00 00 90 */ b lbl_803C9B84
|
|
|
|
lbl_803C9AF8:
|
|
|
|
/* 803C9AF8 003C6A58 88 7B 00 AC */ lbz r3, 0xac(r27)
|
|
|
|
/* 803C9AFC 003C6A5C 88 1B 00 AD */ lbz r0, 0xad(r27)
|
|
|
|
/* 803C9B00 003C6A60 88 9B 00 AE */ lbz r4, 0xae(r27)
|
|
|
|
/* 803C9B04 003C6A64 7C 03 01 D6 */ mullw r0, r3, r0
|
|
|
|
/* 803C9B08 003C6A68 88 7B 00 AF */ lbz r3, 0xaf(r27)
|
|
|
|
/* 803C9B0C 003C6A6C 7C 04 01 D6 */ mullw r0, r4, r0
|
|
|
|
/* 803C9B10 003C6A70 7C 03 01 D7 */ mullw. r0, r3, r0
|
|
|
|
/* 803C9B14 003C6A74 40 82 00 0C */ bne lbl_803C9B20
|
|
|
|
/* 803C9B18 003C6A78 38 60 00 04 */ li r3, 4
|
|
|
|
/* 803C9B1C 003C6A7C 48 00 00 68 */ b lbl_803C9B84
|
|
|
|
lbl_803C9B20:
|
|
|
|
/* 803C9B20 003C6A80 38 78 00 00 */ addi r3, r24, 0
|
|
|
|
/* 803C9B24 003C6A84 38 81 00 24 */ addi r4, r1, 0x24
|
|
|
|
/* 803C9B28 003C6A88 4B FF FD C1 */ bl GBAGetProcessStatus
|
|
|
|
/* 803C9B2C 003C6A8C 2C 03 00 00 */ cmpwi r3, 0
|
|
|
|
/* 803C9B30 003C6A90 41 82 00 08 */ beq lbl_803C9B38
|
|
|
|
/* 803C9B34 003C6A94 48 00 00 50 */ b lbl_803C9B84
|
|
|
|
lbl_803C9B38:
|
|
|
|
/* 803C9B38 003C6A98 93 3F 00 00 */ stw r25, 0(r31)
|
|
|
|
/* 803C9B3C 003C6A9C 3C 80 80 3F */ lis r4, lbl_803F7170@ha
|
|
|
|
/* 803C9B40 003C6AA0 3C 60 80 3D */ lis r3, _F23@ha
|
|
|
|
/* 803C9B44 003C6AA4 93 5F 00 04 */ stw r26, 4(r31)
|
|
|
|
/* 803C9B48 003C6AA8 38 A3 9B 98 */ addi r5, r3, _F23@l
|
|
|
|
/* 803C9B4C 003C6AAC 38 84 71 70 */ addi r4, r4, lbl_803F7170@l
|
|
|
|
/* 803C9B50 003C6AB0 93 7F 00 08 */ stw r27, 8(r31)
|
|
|
|
/* 803C9B54 003C6AB4 7F 03 C3 78 */ mr r3, r24
|
|
|
|
/* 803C9B58 003C6AB8 93 9F 00 0C */ stw r28, 0xc(r31)
|
|
|
|
/* 803C9B5C 003C6ABC 93 BF 00 10 */ stw r29, 0x10(r31)
|
|
|
|
/* 803C9B60 003C6AC0 93 DF 00 14 */ stw r30, 0x14(r31)
|
|
|
|
/* 803C9B64 003C6AC4 88 04 00 08 */ lbz r0, 8(r4)
|
|
|
|
/* 803C9B68 003C6AC8 90 1F 00 34 */ stw r0, 0x34(r31)
|
|
|
|
/* 803C9B6C 003C6ACC 80 9F 00 10 */ lwz r4, 0x10(r31)
|
|
|
|
/* 803C9B70 003C6AD0 4B FF FB 81 */ bl GBAGetStatusAsync
|
|
|
|
/* 803C9B74 003C6AD4 2C 03 00 00 */ cmpwi r3, 0
|
|
|
|
/* 803C9B78 003C6AD8 41 82 00 0C */ beq lbl_803C9B84
|
|
|
|
/* 803C9B7C 003C6ADC 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9B80 003C6AE0 90 1F 00 14 */ stw r0, 0x14(r31)
|
|
|
|
lbl_803C9B84:
|
|
|
|
/* 803C9B84 003C6AE4 BB 01 00 28 */ lmw r24, 0x28(r1)
|
|
|
|
/* 803C9B88 003C6AE8 80 01 00 4C */ lwz r0, 0x4c(r1)
|
|
|
|
/* 803C9B8C 003C6AEC 38 21 00 48 */ addi r1, r1, 0x48
|
|
|
|
/* 803C9B90 003C6AF0 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9B94 003C6AF4 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F23
|
|
|
|
_F23:
|
|
|
|
/* 803C9B98 003C6AF8 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9B9C 003C6AFC 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9BA0 003C6B00 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803C9BA4 003C6B04 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803C9BA8 003C6B08 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803C9BAC 003C6B0C 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803C9BB0 003C6B10 7C 9D 23 79 */ or. r29, r4, r4
|
|
|
|
/* 803C9BB4 003C6B14 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803C9BB8 003C6B18 3B 83 00 00 */ addi r28, r3, 0
|
|
|
|
/* 803C9BBC 003C6B1C 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C9BC0 003C6B20 57 84 40 2E */ slwi r4, r28, 8
|
|
|
|
/* 803C9BC4 003C6B24 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9BC8 003C6B28 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803C9BCC 003C6B2C 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803C9BD0 003C6B30 40 82 00 20 */ bne lbl_803C9BF0
|
|
|
|
/* 803C9BD4 003C6B34 3C 60 80 3D */ lis r3, _F25@ha
|
|
|
|
/* 803C9BD8 003C6B38 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803C9BDC 003C6B3C 38 A3 9C 40 */ addi r5, r3, _F25@l
|
|
|
|
/* 803C9BE0 003C6B40 38 7C 00 00 */ addi r3, r28, 0
|
|
|
|
/* 803C9BE4 003C6B44 4B FF FC 01 */ bl GBAResetAsync
|
|
|
|
/* 803C9BE8 003C6B48 7C 7D 1B 79 */ or. r29, r3, r3
|
|
|
|
/* 803C9BEC 003C6B4C 41 82 00 30 */ beq lbl_803C9C1C
|
|
|
|
lbl_803C9BF0:
|
|
|
|
/* 803C9BF0 003C6B50 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9BF4 003C6B54 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803C9BF8 003C6B58 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803C9BFC 003C6B5C 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803C9C00 003C6B60 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803C9C04 003C6B64 41 82 00 18 */ beq lbl_803C9C1C
|
|
|
|
/* 803C9C08 003C6B68 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803C9C0C 003C6B6C 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803C9C10 003C6B70 38 7C 00 00 */ addi r3, r28, 0
|
|
|
|
/* 803C9C14 003C6B74 38 9D 00 00 */ addi r4, r29, 0
|
|
|
|
/* 803C9C18 003C6B78 4E 80 00 21 */ blrl
|
|
|
|
lbl_803C9C1C:
|
|
|
|
/* 803C9C1C 003C6B7C 93 BF 00 20 */ stw r29, 0x20(r31)
|
|
|
|
/* 803C9C20 003C6B80 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803C9C24 003C6B84 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803C9C28 003C6B88 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803C9C2C 003C6B8C 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803C9C30 003C6B90 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803C9C34 003C6B94 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803C9C38 003C6B98 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9C3C 003C6B9C 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F25
|
|
|
|
_F25:
|
|
|
|
/* 803C9C40 003C6BA0 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9C44 003C6BA4 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9C48 003C6BA8 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803C9C4C 003C6BAC 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803C9C50 003C6BB0 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803C9C54 003C6BB4 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803C9C58 003C6BB8 7C 9D 23 79 */ or. r29, r4, r4
|
|
|
|
/* 803C9C5C 003C6BBC 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803C9C60 003C6BC0 3B 83 00 00 */ addi r28, r3, 0
|
|
|
|
/* 803C9C64 003C6BC4 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C9C68 003C6BC8 57 84 40 2E */ slwi r4, r28, 8
|
|
|
|
/* 803C9C6C 003C6BCC 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9C70 003C6BD0 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803C9C74 003C6BD4 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803C9C78 003C6BD8 40 82 00 24 */ bne lbl_803C9C9C
|
|
|
|
/* 803C9C7C 003C6BDC 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803C9C80 003C6BE0 3C 60 80 3F */ lis r3, lbl_803F7170@ha
|
|
|
|
/* 803C9C84 003C6BE4 38 63 71 70 */ addi r3, r3, lbl_803F7170@l
|
|
|
|
/* 803C9C88 003C6BE8 88 84 00 00 */ lbz r4, 0(r4)
|
|
|
|
/* 803C9C8C 003C6BEC 88 03 00 25 */ lbz r0, 0x25(r3)
|
|
|
|
/* 803C9C90 003C6BF0 7C 04 00 40 */ cmplw r4, r0
|
|
|
|
/* 803C9C94 003C6BF4 41 82 00 08 */ beq lbl_803C9C9C
|
|
|
|
/* 803C9C98 003C6BF8 3B A0 00 03 */ li r29, 3
|
|
|
|
lbl_803C9C9C:
|
|
|
|
/* 803C9C9C 003C6BFC 2C 1D 00 00 */ cmpwi r29, 0
|
|
|
|
/* 803C9CA0 003C6C00 40 82 00 20 */ bne lbl_803C9CC0
|
|
|
|
/* 803C9CA4 003C6C04 3C 60 80 3D */ lis r3, _F27@ha
|
|
|
|
/* 803C9CA8 003C6C08 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803C9CAC 003C6C0C 38 A3 9D 10 */ addi r5, r3, _F27@l
|
|
|
|
/* 803C9CB0 003C6C10 38 7C 00 00 */ addi r3, r28, 0
|
|
|
|
/* 803C9CB4 003C6C14 4B FF FA 3D */ bl GBAGetStatusAsync
|
|
|
|
/* 803C9CB8 003C6C18 7C 7D 1B 79 */ or. r29, r3, r3
|
|
|
|
/* 803C9CBC 003C6C1C 41 82 00 30 */ beq lbl_803C9CEC
|
|
|
|
lbl_803C9CC0:
|
|
|
|
/* 803C9CC0 003C6C20 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9CC4 003C6C24 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803C9CC8 003C6C28 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803C9CCC 003C6C2C 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803C9CD0 003C6C30 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803C9CD4 003C6C34 41 82 00 18 */ beq lbl_803C9CEC
|
|
|
|
/* 803C9CD8 003C6C38 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803C9CDC 003C6C3C 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803C9CE0 003C6C40 38 7C 00 00 */ addi r3, r28, 0
|
|
|
|
/* 803C9CE4 003C6C44 38 9D 00 00 */ addi r4, r29, 0
|
|
|
|
/* 803C9CE8 003C6C48 4E 80 00 21 */ blrl
|
|
|
|
lbl_803C9CEC:
|
|
|
|
/* 803C9CEC 003C6C4C 93 BF 00 20 */ stw r29, 0x20(r31)
|
|
|
|
/* 803C9CF0 003C6C50 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803C9CF4 003C6C54 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803C9CF8 003C6C58 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803C9CFC 003C6C5C 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803C9D00 003C6C60 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803C9D04 003C6C64 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803C9D08 003C6C68 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9D0C 003C6C6C 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F27
|
|
|
|
_F27:
|
|
|
|
/* 803C9D10 003C6C70 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9D14 003C6C74 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9D18 003C6C78 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803C9D1C 003C6C7C 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803C9D20 003C6C80 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803C9D24 003C6C84 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803C9D28 003C6C88 7C 9D 23 79 */ or. r29, r4, r4
|
|
|
|
/* 803C9D2C 003C6C8C 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803C9D30 003C6C90 3B 83 00 00 */ addi r28, r3, 0
|
|
|
|
/* 803C9D34 003C6C94 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C9D38 003C6C98 57 84 40 2E */ slwi r4, r28, 8
|
|
|
|
/* 803C9D3C 003C6C9C 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9D40 003C6CA0 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803C9D44 003C6CA4 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803C9D48 003C6CA8 40 82 00 20 */ bne lbl_803C9D68
|
|
|
|
/* 803C9D4C 003C6CAC 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803C9D50 003C6CB0 3C 60 80 3F */ lis r3, lbl_803F7170@ha
|
|
|
|
/* 803C9D54 003C6CB4 88 03 71 70 */ lbz r0, lbl_803F7170@l(r3)
|
|
|
|
/* 803C9D58 003C6CB8 88 84 00 00 */ lbz r4, 0(r4)
|
|
|
|
/* 803C9D5C 003C6CBC 7C 04 00 40 */ cmplw r4, r0
|
|
|
|
/* 803C9D60 003C6CC0 41 82 00 08 */ beq lbl_803C9D68
|
|
|
|
/* 803C9D64 003C6CC4 3B A0 00 03 */ li r29, 3
|
|
|
|
lbl_803C9D68:
|
|
|
|
/* 803C9D68 003C6CC8 2C 1D 00 00 */ cmpwi r29, 0
|
|
|
|
/* 803C9D6C 003C6CCC 40 82 00 24 */ bne lbl_803C9D90
|
|
|
|
/* 803C9D70 003C6CD0 3C 60 80 3D */ lis r3, _F29@ha
|
|
|
|
/* 803C9D74 003C6CD4 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
|
|
/* 803C9D78 003C6CD8 38 C3 9D E0 */ addi r6, r3, _F29@l
|
|
|
|
/* 803C9D7C 003C6CDC 38 7C 00 00 */ addi r3, r28, 0
|
|
|
|
/* 803C9D80 003C6CE0 38 9E 00 18 */ addi r4, r30, 0x18
|
|
|
|
/* 803C9D84 003C6CE4 48 00 0B FD */ bl GBAReadAsync
|
|
|
|
/* 803C9D88 003C6CE8 7C 7D 1B 79 */ or. r29, r3, r3
|
|
|
|
/* 803C9D8C 003C6CEC 41 82 00 30 */ beq lbl_803C9DBC
|
|
|
|
lbl_803C9D90:
|
|
|
|
/* 803C9D90 003C6CF0 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9D94 003C6CF4 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803C9D98 003C6CF8 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803C9D9C 003C6CFC 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803C9DA0 003C6D00 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803C9DA4 003C6D04 41 82 00 18 */ beq lbl_803C9DBC
|
|
|
|
/* 803C9DA8 003C6D08 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803C9DAC 003C6D0C 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803C9DB0 003C6D10 38 7C 00 00 */ addi r3, r28, 0
|
|
|
|
/* 803C9DB4 003C6D14 38 9D 00 00 */ addi r4, r29, 0
|
|
|
|
/* 803C9DB8 003C6D18 4E 80 00 21 */ blrl
|
|
|
|
lbl_803C9DBC:
|
|
|
|
/* 803C9DBC 003C6D1C 93 BF 00 20 */ stw r29, 0x20(r31)
|
|
|
|
/* 803C9DC0 003C6D20 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803C9DC4 003C6D24 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803C9DC8 003C6D28 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803C9DCC 003C6D2C 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803C9DD0 003C6D30 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803C9DD4 003C6D34 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803C9DD8 003C6D38 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9DDC 003C6D3C 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F29
|
|
|
|
_F29:
|
|
|
|
/* 803C9DE0 003C6D40 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9DE4 003C6D44 54 65 40 2E */ slwi r5, r3, 8
|
|
|
|
/* 803C9DE8 003C6D48 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9DEC 003C6D4C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
|
|
/* 803C9DF0 003C6D50 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
|
|
/* 803C9DF4 003C6D54 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
|
|
/* 803C9DF8 003C6D58 7C 9E 23 79 */ or. r30, r4, r4
|
|
|
|
/* 803C9DFC 003C6D5C 3C 80 80 57 */ lis r4, __GBA@ha
|
|
|
|
/* 803C9E00 003C6D60 38 04 A1 A0 */ addi r0, r4, __GBA@l
|
|
|
|
/* 803C9E04 003C6D64 7F E0 2A 14 */ add r31, r0, r5
|
|
|
|
/* 803C9E08 003C6D68 38 9F 00 40 */ addi r4, r31, 0x40
|
|
|
|
/* 803C9E0C 003C6D6C 40 82 00 10 */ bne lbl_803C9E1C
|
|
|
|
/* 803C9E10 003C6D70 38 84 00 18 */ addi r4, r4, 0x18
|
|
|
|
/* 803C9E14 003C6D74 48 00 12 B1 */ bl __GBAX02
|
|
|
|
/* 803C9E18 003C6D78 48 00 00 2C */ b lbl_803C9E44
|
|
|
|
lbl_803C9E1C:
|
|
|
|
/* 803C9E1C 003C6D7C 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9E20 003C6D80 90 04 00 2C */ stw r0, 0x2c(r4)
|
|
|
|
/* 803C9E24 003C6D84 90 04 00 28 */ stw r0, 0x28(r4)
|
|
|
|
/* 803C9E28 003C6D88 81 84 00 14 */ lwz r12, 0x14(r4)
|
|
|
|
/* 803C9E2C 003C6D8C 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803C9E30 003C6D90 41 82 00 14 */ beq lbl_803C9E44
|
|
|
|
/* 803C9E34 003C6D94 90 04 00 14 */ stw r0, 0x14(r4)
|
|
|
|
/* 803C9E38 003C6D98 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803C9E3C 003C6D9C 38 9E 00 00 */ addi r4, r30, 0
|
|
|
|
/* 803C9E40 003C6DA0 4E 80 00 21 */ blrl
|
|
|
|
lbl_803C9E44:
|
|
|
|
/* 803C9E44 003C6DA4 93 DF 00 20 */ stw r30, 0x20(r31)
|
|
|
|
/* 803C9E48 003C6DA8 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
|
|
/* 803C9E4C 003C6DAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
|
|
/* 803C9E50 003C6DB0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
|
|
/* 803C9E54 003C6DB4 38 21 00 20 */ addi r1, r1, 0x20
|
|
|
|
/* 803C9E58 003C6DB8 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803C9E5C 003C6DBC 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global __GBAX01
|
|
|
|
__GBAX01:
|
|
|
|
/* 803C9E60 003C6DC0 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803C9E64 003C6DC4 3C A0 80 3F */ lis r5, lbl_803F7170@ha
|
|
|
|
/* 803C9E68 003C6DC8 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803C9E6C 003C6DCC 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803C9E70 003C6DD0 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803C9E74 003C6DD4 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803C9E78 003C6DD8 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803C9E7C 003C6DDC 3B A3 00 00 */ addi r29, r3, 0
|
|
|
|
/* 803C9E80 003C6DE0 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803C9E84 003C6DE4 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803C9E88 003C6DE8 7C 9C 23 79 */ or. r28, r4, r4
|
|
|
|
/* 803C9E8C 003C6DEC 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803C9E90 003C6DF0 57 A4 40 2E */ slwi r4, r29, 8
|
|
|
|
/* 803C9E94 003C6DF4 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803C9E98 003C6DF8 38 65 71 70 */ addi r3, r5, lbl_803F7170@l
|
|
|
|
/* 803C9E9C 003C6DFC 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803C9EA0 003C6E00 40 82 01 44 */ bne lbl_803C9FE4
|
|
|
|
/* 803C9EA4 003C6E04 80 9F 00 F8 */ lwz r4, 0xf8(r31)
|
|
|
|
/* 803C9EA8 003C6E08 80 04 00 20 */ lwz r0, 0x20(r4)
|
|
|
|
/* 803C9EAC 003C6E0C 90 1E 00 58 */ stw r0, 0x58(r30)
|
|
|
|
/* 803C9EB0 003C6E10 80 9F 00 F8 */ lwz r4, 0xf8(r31)
|
|
|
|
/* 803C9EB4 003C6E14 80 04 00 24 */ lwz r0, 0x24(r4)
|
|
|
|
/* 803C9EB8 003C6E18 90 1E 00 5C */ stw r0, 0x5c(r30)
|
|
|
|
/* 803C9EBC 003C6E1C 88 1E 00 1B */ lbz r0, 0x1b(r30)
|
|
|
|
/* 803C9EC0 003C6E20 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9EC4 003C6E24 41 82 00 44 */ beq lbl_803C9F08
|
|
|
|
/* 803C9EC8 003C6E28 88 1E 00 1A */ lbz r0, 0x1a(r30)
|
|
|
|
/* 803C9ECC 003C6E2C 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9ED0 003C6E30 41 82 00 38 */ beq lbl_803C9F08
|
|
|
|
/* 803C9ED4 003C6E34 88 03 00 05 */ lbz r0, 5(r3)
|
|
|
|
/* 803C9ED8 003C6E38 80 9E 00 58 */ lwz r4, 0x58(r30)
|
|
|
|
/* 803C9EDC 003C6E3C 54 00 48 2C */ slwi r0, r0, 9
|
|
|
|
/* 803C9EE0 003C6E40 7C 80 00 39 */ and. r0, r4, r0
|
|
|
|
/* 803C9EE4 003C6E44 41 82 00 24 */ beq lbl_803C9F08
|
|
|
|
/* 803C9EE8 003C6E48 88 1E 00 19 */ lbz r0, 0x19(r30)
|
|
|
|
/* 803C9EEC 003C6E4C 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9EF0 003C6E50 41 82 00 18 */ beq lbl_803C9F08
|
|
|
|
/* 803C9EF4 003C6E54 54 80 8B FF */ rlwinm. r0, r4, 0x11, 0xf, 0x1f
|
|
|
|
/* 803C9EF8 003C6E58 41 82 00 10 */ beq lbl_803C9F08
|
|
|
|
/* 803C9EFC 003C6E5C 88 1E 00 18 */ lbz r0, 0x18(r30)
|
|
|
|
/* 803C9F00 003C6E60 28 00 00 00 */ cmplwi r0, 0
|
|
|
|
/* 803C9F04 003C6E64 40 82 00 0C */ bne lbl_803C9F10
|
|
|
|
lbl_803C9F08:
|
|
|
|
/* 803C9F08 003C6E68 3B 80 00 03 */ li r28, 3
|
|
|
|
/* 803C9F0C 003C6E6C 48 00 00 D8 */ b lbl_803C9FE4
|
|
|
|
lbl_803C9F10:
|
|
|
|
/* 803C9F10 003C6E70 88 A3 00 24 */ lbz r5, 0x24(r3)
|
|
|
|
/* 803C9F14 003C6E74 80 9E 00 0C */ lwz r4, 0xc(r30)
|
|
|
|
/* 803C9F18 003C6E78 88 03 00 24 */ lbz r0, 0x24(r3)
|
|
|
|
/* 803C9F1C 003C6E7C 7C A5 28 F8 */ nor r5, r5, r5
|
|
|
|
/* 803C9F20 003C6E80 7C 04 02 14 */ add r0, r4, r0
|
|
|
|
/* 803C9F24 003C6E84 7C A0 00 38 */ and r0, r5, r0
|
|
|
|
/* 803C9F28 003C6E88 90 1E 00 20 */ stw r0, 0x20(r30)
|
|
|
|
/* 803C9F2C 003C6E8C 88 A3 00 14 */ lbz r5, 0x14(r3)
|
|
|
|
/* 803C9F30 003C6E90 88 83 00 21 */ lbz r4, 0x21(r3)
|
|
|
|
/* 803C9F34 003C6E94 80 1E 00 20 */ lwz r0, 0x20(r30)
|
|
|
|
/* 803C9F38 003C6E98 7C A4 20 30 */ slw r4, r5, r4
|
|
|
|
/* 803C9F3C 003C6E9C 7C 00 20 00 */ cmpw r0, r4
|
|
|
|
/* 803C9F40 003C6EA0 40 80 00 08 */ bge lbl_803C9F48
|
|
|
|
/* 803C9F44 003C6EA4 90 9E 00 20 */ stw r4, 0x20(r30)
|
|
|
|
lbl_803C9F48:
|
|
|
|
/* 803C9F48 003C6EA8 80 1E 00 20 */ lwz r0, 0x20(r30)
|
|
|
|
/* 803C9F4C 003C6EAC 90 1E 00 64 */ stw r0, 0x64(r30)
|
|
|
|
/* 803C9F50 003C6EB0 80 1E 00 20 */ lwz r0, 0x20(r30)
|
|
|
|
/* 803C9F54 003C6EB4 7C 04 00 50 */ subf r0, r4, r0
|
|
|
|
/* 803C9F58 003C6EB8 90 1E 00 20 */ stw r0, 0x20(r30)
|
|
|
|
/* 803C9F5C 003C6EBC 80 9E 00 20 */ lwz r4, 0x20(r30)
|
|
|
|
/* 803C9F60 003C6EC0 88 03 00 20 */ lbz r0, 0x20(r3)
|
|
|
|
/* 803C9F64 003C6EC4 7C 80 06 30 */ sraw r0, r4, r0
|
|
|
|
/* 803C9F68 003C6EC8 90 1E 00 20 */ stw r0, 0x20(r30)
|
|
|
|
/* 803C9F6C 003C6ECC 80 1E 00 5C */ lwz r0, 0x5c(r30)
|
|
|
|
/* 803C9F70 003C6ED0 98 1E 00 1C */ stb r0, 0x1c(r30)
|
|
|
|
/* 803C9F74 003C6ED4 80 1E 00 5C */ lwz r0, 0x5c(r30)
|
|
|
|
/* 803C9F78 003C6ED8 7C 00 46 70 */ srawi r0, r0, 8
|
|
|
|
/* 803C9F7C 003C6EDC 98 1E 00 1D */ stb r0, 0x1d(r30)
|
|
|
|
/* 803C9F80 003C6EE0 80 1E 00 5C */ lwz r0, 0x5c(r30)
|
|
|
|
/* 803C9F84 003C6EE4 7C 00 C6 70 */ srawi r0, r0, 0x18
|
|
|
|
/* 803C9F88 003C6EE8 98 1E 00 1F */ stb r0, 0x1f(r30)
|
|
|
|
/* 803C9F8C 003C6EEC 80 1E 00 5C */ lwz r0, 0x5c(r30)
|
|
|
|
/* 803C9F90 003C6EF0 7C 00 86 70 */ srawi r0, r0, 0x10
|
|
|
|
/* 803C9F94 003C6EF4 98 1E 00 1E */ stb r0, 0x1e(r30)
|
|
|
|
/* 803C9F98 003C6EF8 88 83 00 26 */ lbz r4, 0x26(r3)
|
|
|
|
/* 803C9F9C 003C6EFC 88 03 00 22 */ lbz r0, 0x22(r3)
|
|
|
|
/* 803C9FA0 003C6F00 38 84 00 01 */ addi r4, r4, 1
|
|
|
|
/* 803C9FA4 003C6F04 7C 80 00 30 */ slw r0, r4, r0
|
|
|
|
/* 803C9FA8 003C6F08 90 1E 00 38 */ stw r0, 0x38(r30)
|
|
|
|
/* 803C9FAC 003C6F0C 88 03 00 08 */ lbz r0, 8(r3)
|
|
|
|
/* 803C9FB0 003C6F10 90 1E 00 34 */ stw r0, 0x34(r30)
|
|
|
|
/* 803C9FB4 003C6F14 4B FB B3 F5 */ bl OSGetTime
|
|
|
|
/* 803C9FB8 003C6F18 90 9E 00 2C */ stw r4, 0x2c(r30)
|
|
|
|
/* 803C9FBC 003C6F1C 3C 80 80 3D */ lis r4, _F31@ha
|
|
|
|
/* 803C9FC0 003C6F20 38 C4 A0 3C */ addi r6, r4, _F31@l
|
|
|
|
/* 803C9FC4 003C6F24 90 7E 00 28 */ stw r3, 0x28(r30)
|
|
|
|
/* 803C9FC8 003C6F28 38 00 00 01 */ li r0, 1
|
|
|
|
/* 803C9FCC 003C6F2C 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803C9FD0 003C6F30 90 1E 00 30 */ stw r0, 0x30(r30)
|
|
|
|
/* 803C9FD4 003C6F34 38 9E 00 1C */ addi r4, r30, 0x1c
|
|
|
|
/* 803C9FD8 003C6F38 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
|
|
/* 803C9FDC 003C6F3C 48 00 0A D5 */ bl GBAWriteAsync
|
|
|
|
/* 803C9FE0 003C6F40 7C 7C 1B 78 */ mr r28, r3
|
|
|
|
lbl_803C9FE4:
|
|
|
|
/* 803C9FE4 003C6F44 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803C9FE8 003C6F48 41 82 00 30 */ beq lbl_803CA018
|
|
|
|
/* 803C9FEC 003C6F4C 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803C9FF0 003C6F50 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803C9FF4 003C6F54 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803C9FF8 003C6F58 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803C9FFC 003C6F5C 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803CA000 003C6F60 41 82 00 18 */ beq lbl_803CA018
|
|
|
|
/* 803CA004 003C6F64 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803CA008 003C6F68 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803CA00C 003C6F6C 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA010 003C6F70 38 9C 00 00 */ addi r4, r28, 0
|
|
|
|
/* 803CA014 003C6F74 4E 80 00 21 */ blrl
|
|
|
|
lbl_803CA018:
|
|
|
|
/* 803CA018 003C6F78 93 9F 00 20 */ stw r28, 0x20(r31)
|
|
|
|
/* 803CA01C 003C6F7C 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803CA020 003C6F80 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803CA024 003C6F84 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803CA028 003C6F88 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803CA02C 003C6F8C 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803CA030 003C6F90 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803CA034 003C6F94 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803CA038 003C6F98 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F31
|
|
|
|
_F31:
|
|
|
|
/* 803CA03C 003C6F9C 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803CA040 003C6FA0 3C A0 80 3F */ lis r5, lbl_803F7170@ha
|
|
|
|
/* 803CA044 003C6FA4 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803CA048 003C6FA8 94 21 FF C8 */ stwu r1, -0x38(r1)
|
|
|
|
/* 803CA04C 003C6FAC 93 E1 00 34 */ stw r31, 0x34(r1)
|
|
|
|
/* 803CA050 003C6FB0 93 C1 00 30 */ stw r30, 0x30(r1)
|
|
|
|
/* 803CA054 003C6FB4 93 A1 00 2C */ stw r29, 0x2c(r1)
|
|
|
|
/* 803CA058 003C6FB8 3B A3 00 00 */ addi r29, r3, 0
|
|
|
|
/* 803CA05C 003C6FBC 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803CA060 003C6FC0 93 81 00 28 */ stw r28, 0x28(r1)
|
|
|
|
/* 803CA064 003C6FC4 7C 9C 23 79 */ or. r28, r4, r4
|
|
|
|
/* 803CA068 003C6FC8 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803CA06C 003C6FCC 57 A4 40 2E */ slwi r4, r29, 8
|
|
|
|
/* 803CA070 003C6FD0 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803CA074 003C6FD4 38 65 71 70 */ addi r3, r5, lbl_803F7170@l
|
|
|
|
/* 803CA078 003C6FD8 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803CA07C 003C6FDC 40 82 04 00 */ bne lbl_803CA47C
|
|
|
|
/* 803CA080 003C6FE0 80 1E 00 30 */ lwz r0, 0x30(r30)
|
|
|
|
/* 803CA084 003C6FE4 2C 00 00 00 */ cmpwi r0, 0
|
|
|
|
/* 803CA088 003C6FE8 41 82 00 10 */ beq lbl_803CA098
|
|
|
|
/* 803CA08C 003C6FEC 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA090 003C6FF0 90 1E 00 30 */ stw r0, 0x30(r30)
|
|
|
|
/* 803CA094 003C6FF4 48 00 00 60 */ b lbl_803CA0F4
|
|
|
|
lbl_803CA098:
|
|
|
|
/* 803CA098 003C6FF8 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803CA09C 003C6FFC 88 03 00 14 */ lbz r0, 0x14(r3)
|
|
|
|
/* 803CA0A0 003C7000 88 A4 00 00 */ lbz r5, 0(r4)
|
|
|
|
/* 803CA0A4 003C7004 7C A0 00 39 */ and. r0, r5, r0
|
|
|
|
/* 803CA0A8 003C7008 41 82 00 30 */ beq lbl_803CA0D8
|
|
|
|
/* 803CA0AC 003C700C 88 83 00 2A */ lbz r4, 0x2a(r3)
|
|
|
|
/* 803CA0B0 003C7010 88 03 00 21 */ lbz r0, 0x21(r3)
|
|
|
|
/* 803CA0B4 003C7014 7C A6 20 38 */ and r6, r5, r4
|
|
|
|
/* 803CA0B8 003C7018 80 BE 00 34 */ lwz r5, 0x34(r30)
|
|
|
|
/* 803CA0BC 003C701C 88 83 00 21 */ lbz r4, 0x21(r3)
|
|
|
|
/* 803CA0C0 003C7020 7C C6 06 30 */ sraw r6, r6, r0
|
|
|
|
/* 803CA0C4 003C7024 88 03 00 1F */ lbz r0, 0x1f(r3)
|
|
|
|
/* 803CA0C8 003C7028 7C A4 20 38 */ and r4, r5, r4
|
|
|
|
/* 803CA0CC 003C702C 7C 80 06 30 */ sraw r0, r4, r0
|
|
|
|
/* 803CA0D0 003C7030 7C 06 00 00 */ cmpw r6, r0
|
|
|
|
/* 803CA0D4 003C7034 41 82 00 0C */ beq lbl_803CA0E0
|
|
|
|
lbl_803CA0D8:
|
|
|
|
/* 803CA0D8 003C7038 3B 80 00 03 */ li r28, 3
|
|
|
|
/* 803CA0DC 003C703C 48 00 03 A0 */ b lbl_803CA47C
|
|
|
|
lbl_803CA0E0:
|
|
|
|
/* 803CA0E0 003C7040 88 83 00 17 */ lbz r4, 0x17(r3)
|
|
|
|
/* 803CA0E4 003C7044 88 03 00 19 */ lbz r0, 0x19(r3)
|
|
|
|
/* 803CA0E8 003C7048 7C 04 00 50 */ subf r0, r4, r0
|
|
|
|
/* 803CA0EC 003C704C 7C 00 28 50 */ subf r0, r0, r5
|
|
|
|
/* 803CA0F0 003C7050 90 1E 00 34 */ stw r0, 0x34(r30)
|
|
|
|
lbl_803CA0F4:
|
|
|
|
/* 803CA0F4 003C7054 80 BE 00 34 */ lwz r5, 0x34(r30)
|
|
|
|
/* 803CA0F8 003C7058 80 1E 00 64 */ lwz r0, 0x64(r30)
|
|
|
|
/* 803CA0FC 003C705C 7C 05 00 00 */ cmpw r5, r0
|
|
|
|
/* 803CA100 003C7060 41 81 03 58 */ bgt lbl_803CA458
|
|
|
|
/* 803CA104 003C7064 40 80 01 68 */ bge lbl_803CA26C
|
|
|
|
/* 803CA108 003C7068 38 83 00 1D */ addi r4, r3, 0x1d
|
|
|
|
/* 803CA10C 003C706C 88 03 00 1D */ lbz r0, 0x1d(r3)
|
|
|
|
/* 803CA110 003C7070 88 84 00 00 */ lbz r4, 0(r4)
|
|
|
|
/* 803CA114 003C7074 90 9E 00 20 */ stw r4, 0x20(r30)
|
|
|
|
/* 803CA118 003C7078 48 00 00 48 */ b lbl_803CA160
|
|
|
|
lbl_803CA11C:
|
|
|
|
/* 803CA11C 003C707C 80 9E 00 0C */ lwz r4, 0xc(r30)
|
|
|
|
/* 803CA120 003C7080 2C 04 00 00 */ cmpwi r4, 0
|
|
|
|
/* 803CA124 003C7084 41 82 00 30 */ beq lbl_803CA154
|
|
|
|
/* 803CA128 003C7088 80 DE 00 08 */ lwz r6, 8(r30)
|
|
|
|
/* 803CA12C 003C708C 38 86 00 01 */ addi r4, r6, 1
|
|
|
|
/* 803CA130 003C7090 90 9E 00 08 */ stw r4, 8(r30)
|
|
|
|
/* 803CA134 003C7094 88 A3 00 25 */ lbz r5, 0x25(r3)
|
|
|
|
/* 803CA138 003C7098 80 9E 00 0C */ lwz r4, 0xc(r30)
|
|
|
|
/* 803CA13C 003C709C 7C A7 29 D6 */ mullw r5, r7, r5
|
|
|
|
/* 803CA140 003C70A0 88 C6 00 00 */ lbz r6, 0(r6)
|
|
|
|
/* 803CA144 003C70A4 38 84 FF FF */ addi r4, r4, -1
|
|
|
|
/* 803CA148 003C70A8 7C C5 28 30 */ slw r5, r6, r5
|
|
|
|
/* 803CA14C 003C70AC 90 9E 00 0C */ stw r4, 0xc(r30)
|
|
|
|
/* 803CA150 003C70B0 7C 00 2B 78 */ or r0, r0, r5
|
|
|
|
lbl_803CA154:
|
|
|
|
/* 803CA154 003C70B4 80 9E 00 20 */ lwz r4, 0x20(r30)
|
|
|
|
/* 803CA158 003C70B8 38 84 00 01 */ addi r4, r4, 1
|
|
|
|
/* 803CA15C 003C70BC 90 9E 00 20 */ stw r4, 0x20(r30)
|
|
|
|
lbl_803CA160:
|
|
|
|
/* 803CA160 003C70C0 80 FE 00 20 */ lwz r7, 0x20(r30)
|
|
|
|
/* 803CA164 003C70C4 88 83 00 21 */ lbz r4, 0x21(r3)
|
|
|
|
/* 803CA168 003C70C8 7C 07 20 00 */ cmpw r7, r4
|
|
|
|
/* 803CA16C 003C70CC 41 80 FF B0 */ blt lbl_803CA11C
|
|
|
|
/* 803CA170 003C70D0 38 C3 00 26 */ addi r6, r3, 0x26
|
|
|
|
/* 803CA174 003C70D4 80 BE 00 34 */ lwz r5, 0x34(r30)
|
|
|
|
/* 803CA178 003C70D8 88 83 00 26 */ lbz r4, 0x26(r3)
|
|
|
|
/* 803CA17C 003C70DC 7C 05 20 00 */ cmpw r5, r4
|
|
|
|
/* 803CA180 003C70E0 40 82 00 0C */ bne lbl_803CA18C
|
|
|
|
/* 803CA184 003C70E4 90 1E 00 60 */ stw r0, 0x60(r30)
|
|
|
|
/* 803CA188 003C70E8 48 00 00 18 */ b lbl_803CA1A0
|
|
|
|
lbl_803CA18C:
|
|
|
|
/* 803CA18C 003C70EC 88 83 00 27 */ lbz r4, 0x27(r3)
|
|
|
|
/* 803CA190 003C70F0 7C 05 20 00 */ cmpw r5, r4
|
|
|
|
/* 803CA194 003C70F4 40 82 00 0C */ bne lbl_803CA1A0
|
|
|
|
/* 803CA198 003C70F8 88 03 00 25 */ lbz r0, 0x25(r3)
|
|
|
|
/* 803CA19C 003C70FC 7F A0 00 30 */ slw r0, r29, r0
|
|
|
|
lbl_803CA1A0:
|
|
|
|
/* 803CA1A0 003C7100 80 BE 00 34 */ lwz r5, 0x34(r30)
|
|
|
|
/* 803CA1A4 003C7104 88 83 00 02 */ lbz r4, 2(r3)
|
|
|
|
/* 803CA1A8 003C7108 7C 05 20 00 */ cmpw r5, r4
|
|
|
|
/* 803CA1AC 003C710C 41 80 00 78 */ blt lbl_803CA224
|
|
|
|
/* 803CA1B0 003C7110 38 83 00 2B */ addi r4, r3, 0x2b
|
|
|
|
/* 803CA1B4 003C7114 88 C6 00 00 */ lbz r6, 0(r6)
|
|
|
|
/* 803CA1B8 003C7118 88 A3 00 2B */ lbz r5, 0x2b(r3)
|
|
|
|
/* 803CA1BC 003C711C 7C 09 03 78 */ mr r9, r0
|
|
|
|
/* 803CA1C0 003C7120 88 84 00 00 */ lbz r4, 0(r4)
|
|
|
|
/* 803CA1C4 003C7124 54 C7 40 2E */ slwi r7, r6, 8
|
|
|
|
/* 803CA1C8 003C7128 54 A5 20 36 */ slwi r5, r5, 4
|
|
|
|
/* 803CA1CC 003C712C 88 C3 00 28 */ lbz r6, 0x28(r3)
|
|
|
|
/* 803CA1D0 003C7130 7C 85 20 50 */ subf r4, r5, r4
|
|
|
|
/* 803CA1D4 003C7134 88 A3 00 23 */ lbz r5, 0x23(r3)
|
|
|
|
/* 803CA1D8 003C7138 7C 86 22 14 */ add r4, r6, r4
|
|
|
|
/* 803CA1DC 003C713C 81 1E 00 38 */ lwz r8, 0x38(r30)
|
|
|
|
/* 803CA1E0 003C7140 7C 85 20 50 */ subf r4, r5, r4
|
|
|
|
/* 803CA1E4 003C7144 88 C3 00 14 */ lbz r6, 0x14(r3)
|
|
|
|
/* 803CA1E8 003C7148 7C A7 22 14 */ add r5, r7, r4
|
|
|
|
/* 803CA1EC 003C714C 48 00 00 28 */ b lbl_803CA214
|
|
|
|
lbl_803CA1F0:
|
|
|
|
/* 803CA1F0 003C7150 7D 24 42 78 */ xor r4, r9, r8
|
|
|
|
/* 803CA1F4 003C7154 54 84 07 FF */ clrlwi. r4, r4, 0x1f
|
|
|
|
/* 803CA1F8 003C7158 41 82 00 10 */ beq lbl_803CA208
|
|
|
|
/* 803CA1FC 003C715C 55 08 F8 7E */ srwi r8, r8, 1
|
|
|
|
/* 803CA200 003C7160 7D 08 2A 78 */ xor r8, r8, r5
|
|
|
|
/* 803CA204 003C7164 48 00 00 08 */ b lbl_803CA20C
|
|
|
|
lbl_803CA208:
|
|
|
|
/* 803CA208 003C7168 55 08 F8 7E */ srwi r8, r8, 1
|
|
|
|
lbl_803CA20C:
|
|
|
|
/* 803CA20C 003C716C 55 29 F8 7E */ srwi r9, r9, 1
|
|
|
|
/* 803CA210 003C7170 38 C6 FF FF */ addi r6, r6, -1
|
|
|
|
lbl_803CA214:
|
|
|
|
/* 803CA214 003C7174 88 83 00 1E */ lbz r4, 0x1e(r3)
|
|
|
|
/* 803CA218 003C7178 7C 06 20 00 */ cmpw r6, r4
|
|
|
|
/* 803CA21C 003C717C 41 81 FF D4 */ bgt lbl_803CA1F0
|
|
|
|
/* 803CA220 003C7180 91 1E 00 38 */ stw r8, 0x38(r30)
|
|
|
|
lbl_803CA224:
|
|
|
|
/* 803CA224 003C7184 88 83 00 28 */ lbz r4, 0x28(r3)
|
|
|
|
/* 803CA228 003C7188 80 BE 00 34 */ lwz r5, 0x34(r30)
|
|
|
|
/* 803CA22C 003C718C 38 84 01 00 */ addi r4, r4, 0x100
|
|
|
|
/* 803CA230 003C7190 7C 05 20 00 */ cmpw r5, r4
|
|
|
|
/* 803CA234 003C7194 40 82 00 0C */ bne lbl_803CA240
|
|
|
|
/* 803CA238 003C7198 90 1E 00 3C */ stw r0, 0x3c(r30)
|
|
|
|
/* 803CA23C 003C719C 48 00 00 3C */ b lbl_803CA278
|
|
|
|
lbl_803CA240:
|
|
|
|
/* 803CA240 003C71A0 88 83 00 01 */ lbz r4, 1(r3)
|
|
|
|
/* 803CA244 003C71A4 38 84 01 00 */ addi r4, r4, 0x100
|
|
|
|
/* 803CA248 003C71A8 7C 05 20 00 */ cmpw r5, r4
|
|
|
|
/* 803CA24C 003C71AC 40 82 00 2C */ bne lbl_803CA278
|
|
|
|
/* 803CA250 003C71B0 88 83 00 07 */ lbz r4, 7(r3)
|
|
|
|
/* 803CA254 003C71B4 90 9E 00 20 */ stw r4, 0x20(r30)
|
|
|
|
/* 803CA258 003C71B8 80 9E 00 20 */ lwz r4, 0x20(r30)
|
|
|
|
/* 803CA25C 003C71BC 54 84 10 3A */ slwi r4, r4, 2
|
|
|
|
/* 803CA260 003C71C0 7C 9E 22 14 */ add r4, r30, r4
|
|
|
|
/* 803CA264 003C71C4 90 04 00 3C */ stw r0, 0x3c(r4)
|
|
|
|
/* 803CA268 003C71C8 48 00 00 10 */ b lbl_803CA278
|
|
|
|
lbl_803CA26C:
|
|
|
|
/* 803CA26C 003C71CC 80 9E 00 38 */ lwz r4, 0x38(r30)
|
|
|
|
/* 803CA270 003C71D0 54 A0 80 1E */ slwi r0, r5, 0x10
|
|
|
|
/* 803CA274 003C71D4 7C 80 03 78 */ or r0, r4, r0
|
|
|
|
lbl_803CA278:
|
|
|
|
/* 803CA278 003C71D8 80 BE 00 34 */ lwz r5, 0x34(r30)
|
|
|
|
/* 803CA27C 003C71DC 88 83 00 2B */ lbz r4, 0x2b(r3)
|
|
|
|
/* 803CA280 003C71E0 7C 05 20 00 */ cmpw r5, r4
|
|
|
|
/* 803CA284 003C71E4 40 81 00 98 */ ble lbl_803CA31C
|
|
|
|
/* 803CA288 003C71E8 88 A3 00 25 */ lbz r5, 0x25(r3)
|
|
|
|
/* 803CA28C 003C71EC 38 83 00 0B */ addi r4, r3, 0xb
|
|
|
|
/* 803CA290 003C71F0 88 C3 00 18 */ lbz r6, 0x18(r3)
|
|
|
|
/* 803CA294 003C71F4 89 03 00 15 */ lbz r8, 0x15(r3)
|
|
|
|
/* 803CA298 003C71F8 7C C7 28 30 */ slw r7, r6, r5
|
|
|
|
/* 803CA29C 003C71FC 88 C3 00 18 */ lbz r6, 0x18(r3)
|
|
|
|
/* 803CA2A0 003C7200 88 A3 00 2C */ lbz r5, 0x2c(r3)
|
|
|
|
/* 803CA2A4 003C7204 7D 07 3B 78 */ or r7, r8, r7
|
|
|
|
/* 803CA2A8 003C7208 89 23 00 17 */ lbz r9, 0x17(r3)
|
|
|
|
/* 803CA2AC 003C720C 7C C5 28 30 */ slw r5, r6, r5
|
|
|
|
/* 803CA2B0 003C7210 89 03 00 2A */ lbz r8, 0x2a(r3)
|
|
|
|
/* 803CA2B4 003C7214 7C E5 2B 78 */ or r5, r7, r5
|
|
|
|
/* 803CA2B8 003C7218 81 5E 00 58 */ lwz r10, 0x58(r30)
|
|
|
|
/* 803CA2BC 003C721C 7D 26 40 30 */ slw r6, r9, r8
|
|
|
|
/* 803CA2C0 003C7220 88 E3 00 1A */ lbz r7, 0x1a(r3)
|
|
|
|
/* 803CA2C4 003C7224 7C C5 2B 78 */ or r5, r6, r5
|
|
|
|
/* 803CA2C8 003C7228 88 C3 00 1B */ lbz r6, 0x1b(r3)
|
|
|
|
/* 803CA2CC 003C722C 7C AA 29 D6 */ mullw r5, r10, r5
|
|
|
|
/* 803CA2D0 003C7230 7C C7 30 50 */ subf r6, r7, r6
|
|
|
|
/* 803CA2D4 003C7234 7C A6 28 50 */ subf r5, r6, r5
|
|
|
|
/* 803CA2D8 003C7238 90 BE 00 58 */ stw r5, 0x58(r30)
|
|
|
|
/* 803CA2DC 003C723C 88 E3 00 0B */ lbz r7, 0xb(r3)
|
|
|
|
/* 803CA2E0 003C7240 81 3E 00 58 */ lwz r9, 0x58(r30)
|
|
|
|
/* 803CA2E4 003C7244 81 1E 00 34 */ lwz r8, 0x34(r30)
|
|
|
|
/* 803CA2E8 003C7248 54 E7 A0 16 */ slwi r7, r7, 0x14
|
|
|
|
/* 803CA2EC 003C724C 88 A3 00 0B */ lbz r5, 0xb(r3)
|
|
|
|
/* 803CA2F0 003C7250 7C 00 4A 78 */ xor r0, r0, r9
|
|
|
|
/* 803CA2F4 003C7254 7D 08 3A 14 */ add r8, r8, r7
|
|
|
|
/* 803CA2F8 003C7258 88 84 00 00 */ lbz r4, 0(r4)
|
|
|
|
/* 803CA2FC 003C725C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
|
|
|
|
/* 803CA300 003C7260 88 C3 00 13 */ lbz r6, 0x13(r3)
|
|
|
|
/* 803CA304 003C7264 7C A8 00 D0 */ neg r5, r8
|
|
|
|
/* 803CA308 003C7268 88 E3 00 12 */ lbz r7, 0x12(r3)
|
|
|
|
/* 803CA30C 003C726C 50 C4 82 1E */ rlwimi r4, r6, 0x10, 8, 0xf
|
|
|
|
/* 803CA310 003C7270 7C 00 2A 78 */ xor r0, r0, r5
|
|
|
|
/* 803CA314 003C7274 50 E4 44 2E */ rlwimi r4, r7, 8, 0x10, 0x17
|
|
|
|
/* 803CA318 003C7278 7C 00 22 78 */ xor r0, r0, r4
|
|
|
|
lbl_803CA31C:
|
|
|
|
/* 803CA31C 003C727C 88 83 00 00 */ lbz r4, 0(r3)
|
|
|
|
/* 803CA320 003C7280 7C 04 24 30 */ srw r4, r0, r4
|
|
|
|
/* 803CA324 003C7284 98 9E 00 1F */ stb r4, 0x1f(r30)
|
|
|
|
/* 803CA328 003C7288 88 83 00 1E */ lbz r4, 0x1e(r3)
|
|
|
|
/* 803CA32C 003C728C 7C 04 24 30 */ srw r4, r0, r4
|
|
|
|
/* 803CA330 003C7290 98 9E 00 1C */ stb r4, 0x1c(r30)
|
|
|
|
/* 803CA334 003C7294 88 83 00 29 */ lbz r4, 0x29(r3)
|
|
|
|
/* 803CA338 003C7298 7C 04 24 30 */ srw r4, r0, r4
|
|
|
|
/* 803CA33C 003C729C 98 9E 00 1D */ stb r4, 0x1d(r30)
|
|
|
|
/* 803CA340 003C72A0 88 83 00 2A */ lbz r4, 0x2a(r3)
|
|
|
|
/* 803CA344 003C72A4 7C 04 24 30 */ srw r4, r0, r4
|
|
|
|
/* 803CA348 003C72A8 98 9E 00 1E */ stb r4, 0x1e(r30)
|
|
|
|
/* 803CA34C 003C72AC 88 A3 00 01 */ lbz r5, 1(r3)
|
|
|
|
/* 803CA350 003C72B0 88 83 00 01 */ lbz r4, 1(r3)
|
|
|
|
/* 803CA354 003C72B4 80 DE 00 34 */ lwz r6, 0x34(r30)
|
|
|
|
/* 803CA358 003C72B8 7C 85 22 14 */ add r4, r5, r4
|
|
|
|
/* 803CA35C 003C72BC 7C 06 20 00 */ cmpw r6, r4
|
|
|
|
/* 803CA360 003C72C0 40 82 00 08 */ bne lbl_803CA368
|
|
|
|
/* 803CA364 003C72C4 90 1E 00 44 */ stw r0, 0x44(r30)
|
|
|
|
lbl_803CA368:
|
|
|
|
/* 803CA368 003C72C8 80 9E 00 20 */ lwz r4, 0x20(r30)
|
|
|
|
/* 803CA36C 003C72CC 88 63 00 21 */ lbz r3, 0x21(r3)
|
|
|
|
/* 803CA370 003C72D0 7C 04 18 00 */ cmpw r4, r3
|
|
|
|
/* 803CA374 003C72D4 40 80 00 C4 */ bge lbl_803CA438
|
|
|
|
/* 803CA378 003C72D8 20 64 00 01 */ subfic r3, r4, 1
|
|
|
|
/* 803CA37C 003C72DC 20 63 00 03 */ subfic r3, r3, 3
|
|
|
|
/* 803CA380 003C72E0 54 63 10 3A */ slwi r3, r3, 2
|
|
|
|
/* 803CA384 003C72E4 7C 7E 1A 14 */ add r3, r30, r3
|
|
|
|
/* 803CA388 003C72E8 90 03 00 3C */ stw r0, 0x3c(r3)
|
|
|
|
/* 803CA38C 003C72EC 80 BE 00 20 */ lwz r5, 0x20(r30)
|
|
|
|
/* 803CA390 003C72F0 20 05 00 01 */ subfic r0, r5, 1
|
|
|
|
/* 803CA394 003C72F4 20 60 00 02 */ subfic r3, r0, 2
|
|
|
|
/* 803CA398 003C72F8 20 05 00 04 */ subfic r0, r5, 4
|
|
|
|
/* 803CA39C 003C72FC 54 63 10 3A */ slwi r3, r3, 2
|
|
|
|
/* 803CA3A0 003C7300 54 00 10 3A */ slwi r0, r0, 2
|
|
|
|
/* 803CA3A4 003C7304 7C 9E 1A 14 */ add r4, r30, r3
|
|
|
|
/* 803CA3A8 003C7308 7C 7E 02 14 */ add r3, r30, r0
|
|
|
|
/* 803CA3AC 003C730C 80 84 00 3C */ lwz r4, 0x3c(r4)
|
|
|
|
/* 803CA3B0 003C7310 80 63 00 3C */ lwz r3, 0x3c(r3)
|
|
|
|
/* 803CA3B4 003C7314 20 05 00 05 */ subfic r0, r5, 5
|
|
|
|
/* 803CA3B8 003C7318 54 00 10 3A */ slwi r0, r0, 2
|
|
|
|
/* 803CA3BC 003C731C 7C 84 19 D6 */ mullw r4, r4, r3
|
|
|
|
/* 803CA3C0 003C7320 7C 7E 02 14 */ add r3, r30, r0
|
|
|
|
/* 803CA3C4 003C7324 90 83 00 3C */ stw r4, 0x3c(r3)
|
|
|
|
/* 803CA3C8 003C7328 80 1E 00 20 */ lwz r0, 0x20(r30)
|
|
|
|
/* 803CA3CC 003C732C 20 A0 00 01 */ subfic r5, r0, 1
|
|
|
|
/* 803CA3D0 003C7330 54 A3 10 3A */ slwi r3, r5, 2
|
|
|
|
/* 803CA3D4 003C7334 54 00 10 3A */ slwi r0, r0, 2
|
|
|
|
/* 803CA3D8 003C7338 7C 9E 1A 14 */ add r4, r30, r3
|
|
|
|
/* 803CA3DC 003C733C 7C 7E 02 14 */ add r3, r30, r0
|
|
|
|
/* 803CA3E0 003C7340 80 84 00 3C */ lwz r4, 0x3c(r4)
|
|
|
|
/* 803CA3E4 003C7344 80 63 00 3C */ lwz r3, 0x3c(r3)
|
|
|
|
/* 803CA3E8 003C7348 20 05 00 05 */ subfic r0, r5, 5
|
|
|
|
/* 803CA3EC 003C734C 54 00 10 3A */ slwi r0, r0, 2
|
|
|
|
/* 803CA3F0 003C7350 7C 84 19 D6 */ mullw r4, r4, r3
|
|
|
|
/* 803CA3F4 003C7354 7C 7E 02 14 */ add r3, r30, r0
|
|
|
|
/* 803CA3F8 003C7358 90 83 00 3C */ stw r4, 0x3c(r3)
|
|
|
|
/* 803CA3FC 003C735C 80 BE 00 20 */ lwz r5, 0x20(r30)
|
|
|
|
/* 803CA400 003C7360 20 65 00 01 */ subfic r3, r5, 1
|
|
|
|
/* 803CA404 003C7364 20 05 00 04 */ subfic r0, r5, 4
|
|
|
|
/* 803CA408 003C7368 7C 63 00 D0 */ neg r3, r3
|
|
|
|
/* 803CA40C 003C736C 54 63 10 3A */ slwi r3, r3, 2
|
|
|
|
/* 803CA410 003C7370 54 00 10 3A */ slwi r0, r0, 2
|
|
|
|
/* 803CA414 003C7374 7C 9E 1A 14 */ add r4, r30, r3
|
|
|
|
/* 803CA418 003C7378 7C 7E 02 14 */ add r3, r30, r0
|
|
|
|
/* 803CA41C 003C737C 80 84 00 3C */ lwz r4, 0x3c(r4)
|
|
|
|
/* 803CA420 003C7380 80 63 00 3C */ lwz r3, 0x3c(r3)
|
|
|
|
/* 803CA424 003C7384 20 05 00 07 */ subfic r0, r5, 7
|
|
|
|
/* 803CA428 003C7388 54 00 10 3A */ slwi r0, r0, 2
|
|
|
|
/* 803CA42C 003C738C 7C 84 19 D6 */ mullw r4, r4, r3
|
|
|
|
/* 803CA430 003C7390 7C 7E 02 14 */ add r3, r30, r0
|
|
|
|
/* 803CA434 003C7394 90 83 00 3C */ stw r4, 0x3c(r3)
|
|
|
|
lbl_803CA438:
|
|
|
|
/* 803CA438 003C7398 3C 60 80 3D */ lis r3, _F31@ha
|
|
|
|
/* 803CA43C 003C739C 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
|
|
/* 803CA440 003C73A0 38 C3 A0 3C */ addi r6, r3, _F31@l
|
|
|
|
/* 803CA444 003C73A4 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA448 003C73A8 38 9E 00 1C */ addi r4, r30, 0x1c
|
|
|
|
/* 803CA44C 003C73AC 48 00 06 65 */ bl GBAWriteAsync
|
|
|
|
/* 803CA450 003C73B0 7C 7C 1B 78 */ mr r28, r3
|
|
|
|
/* 803CA454 003C73B4 48 00 00 28 */ b lbl_803CA47C
|
|
|
|
lbl_803CA458:
|
|
|
|
/* 803CA458 003C73B8 4B FB AF 69 */ bl OSGetTick
|
|
|
|
/* 803CA45C 003C73BC 90 7E 00 24 */ stw r3, 0x24(r30)
|
|
|
|
/* 803CA460 003C73C0 3C 60 80 3D */ lis r3, _F33@ha
|
|
|
|
/* 803CA464 003C73C4 38 C3 A4 D4 */ addi r6, r3, _F33@l
|
|
|
|
/* 803CA468 003C73C8 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
|
|
/* 803CA46C 003C73CC 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA470 003C73D0 38 9E 00 18 */ addi r4, r30, 0x18
|
|
|
|
/* 803CA474 003C73D4 48 00 05 0D */ bl GBAReadAsync
|
|
|
|
/* 803CA478 003C73D8 7C 7C 1B 78 */ mr r28, r3
|
|
|
|
lbl_803CA47C:
|
|
|
|
/* 803CA47C 003C73DC 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803CA480 003C73E0 41 82 00 30 */ beq lbl_803CA4B0
|
|
|
|
/* 803CA484 003C73E4 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA488 003C73E8 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803CA48C 003C73EC 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803CA490 003C73F0 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803CA494 003C73F4 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803CA498 003C73F8 41 82 00 18 */ beq lbl_803CA4B0
|
|
|
|
/* 803CA49C 003C73FC 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803CA4A0 003C7400 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803CA4A4 003C7404 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA4A8 003C7408 38 9C 00 00 */ addi r4, r28, 0
|
|
|
|
/* 803CA4AC 003C740C 4E 80 00 21 */ blrl
|
|
|
|
lbl_803CA4B0:
|
|
|
|
/* 803CA4B0 003C7410 93 9F 00 20 */ stw r28, 0x20(r31)
|
|
|
|
/* 803CA4B4 003C7414 80 01 00 3C */ lwz r0, 0x3c(r1)
|
|
|
|
/* 803CA4B8 003C7418 83 E1 00 34 */ lwz r31, 0x34(r1)
|
|
|
|
/* 803CA4BC 003C741C 83 C1 00 30 */ lwz r30, 0x30(r1)
|
|
|
|
/* 803CA4C0 003C7420 83 A1 00 2C */ lwz r29, 0x2c(r1)
|
|
|
|
/* 803CA4C4 003C7424 83 81 00 28 */ lwz r28, 0x28(r1)
|
|
|
|
/* 803CA4C8 003C7428 38 21 00 38 */ addi r1, r1, 0x38
|
|
|
|
/* 803CA4CC 003C742C 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803CA4D0 003C7430 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F33
|
|
|
|
_F33:
|
|
|
|
/* 803CA4D4 003C7434 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803CA4D8 003C7438 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803CA4DC 003C743C 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803CA4E0 003C7440 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803CA4E4 003C7444 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803CA4E8 003C7448 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803CA4EC 003C744C 3B A3 00 00 */ addi r29, r3, 0
|
|
|
|
/* 803CA4F0 003C7450 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803CA4F4 003C7454 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803CA4F8 003C7458 7C 9C 23 79 */ or. r28, r4, r4
|
|
|
|
/* 803CA4FC 003C745C 57 A4 40 2E */ slwi r4, r29, 8
|
|
|
|
/* 803CA500 003C7460 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803CA504 003C7464 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803CA508 003C7468 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803CA50C 003C746C 40 82 00 E4 */ bne lbl_803CA5F0
|
|
|
|
/* 803CA510 003C7470 38 00 00 21 */ li r0, 0x21
|
|
|
|
/* 803CA514 003C7474 3C 60 80 3F */ lis r3, lbl_803F7170@ha
|
|
|
|
/* 803CA518 003C7478 90 1E 00 20 */ stw r0, 0x20(r30)
|
|
|
|
/* 803CA51C 003C747C 38 03 71 70 */ addi r0, r3, lbl_803F7170@l
|
|
|
|
/* 803CA520 003C7480 48 00 00 94 */ b lbl_803CA5B4
|
|
|
|
lbl_803CA524:
|
|
|
|
/* 803CA524 003C7484 7C E0 1A 14 */ add r7, r0, r3
|
|
|
|
/* 803CA528 003C7488 88 DE 00 1B */ lbz r6, 0x1b(r30)
|
|
|
|
/* 803CA52C 003C748C 88 87 00 00 */ lbz r4, 0(r7)
|
|
|
|
/* 803CA530 003C7490 88 67 00 00 */ lbz r3, 0(r7)
|
|
|
|
/* 803CA534 003C7494 88 A7 00 00 */ lbz r5, 0(r7)
|
|
|
|
/* 803CA538 003C7498 54 84 10 3A */ slwi r4, r4, 2
|
|
|
|
/* 803CA53C 003C749C 89 07 00 00 */ lbz r8, 0(r7)
|
|
|
|
/* 803CA540 003C74A0 54 63 10 3A */ slwi r3, r3, 2
|
|
|
|
/* 803CA544 003C74A4 54 A7 10 3A */ slwi r7, r5, 2
|
|
|
|
/* 803CA548 003C74A8 38 A4 00 3C */ addi r5, r4, 0x3c
|
|
|
|
/* 803CA54C 003C74AC 88 9E 00 1A */ lbz r4, 0x1a(r30)
|
|
|
|
/* 803CA550 003C74B0 38 63 00 3C */ addi r3, r3, 0x3c
|
|
|
|
/* 803CA554 003C74B4 7C BE 28 2E */ lwzx r5, r30, r5
|
|
|
|
/* 803CA558 003C74B8 38 E7 00 3C */ addi r7, r7, 0x3c
|
|
|
|
/* 803CA55C 003C74BC 7C 7E 18 2E */ lwzx r3, r30, r3
|
|
|
|
/* 803CA560 003C74C0 55 08 10 3A */ slwi r8, r8, 2
|
|
|
|
/* 803CA564 003C74C4 7C FE 38 2E */ lwzx r7, r30, r7
|
|
|
|
/* 803CA568 003C74C8 39 28 00 3C */ addi r9, r8, 0x3c
|
|
|
|
/* 803CA56C 003C74CC 89 1E 00 19 */ lbz r8, 0x19(r30)
|
|
|
|
/* 803CA570 003C74D0 54 A5 46 3E */ srwi r5, r5, 0x18
|
|
|
|
/* 803CA574 003C74D4 89 5E 00 18 */ lbz r10, 0x18(r30)
|
|
|
|
/* 803CA578 003C74D8 54 63 84 3E */ srwi r3, r3, 0x10
|
|
|
|
/* 803CA57C 003C74DC 7D 3E 48 2E */ lwzx r9, r30, r9
|
|
|
|
/* 803CA580 003C74E0 54 E7 C2 3E */ srwi r7, r7, 8
|
|
|
|
/* 803CA584 003C74E4 7C 83 1A 78 */ xor r3, r4, r3
|
|
|
|
/* 803CA588 003C74E8 7C C5 2A 78 */ xor r5, r6, r5
|
|
|
|
/* 803CA58C 003C74EC 7C A3 1B 78 */ or r3, r5, r3
|
|
|
|
/* 803CA590 003C74F0 7D 04 3A 78 */ xor r4, r8, r7
|
|
|
|
/* 803CA594 003C74F4 7D 45 4A 78 */ xor r5, r10, r9
|
|
|
|
/* 803CA598 003C74F8 7C 83 1B 78 */ or r3, r4, r3
|
|
|
|
/* 803CA59C 003C74FC 7C A3 1B 78 */ or r3, r5, r3
|
|
|
|
/* 803CA5A0 003C7500 54 7C C0 0F */ rlwinm. r28, r3, 0x18, 0, 7
|
|
|
|
/* 803CA5A4 003C7504 41 82 00 1C */ beq lbl_803CA5C0
|
|
|
|
/* 803CA5A8 003C7508 80 7E 00 20 */ lwz r3, 0x20(r30)
|
|
|
|
/* 803CA5AC 003C750C 38 63 00 01 */ addi r3, r3, 1
|
|
|
|
/* 803CA5B0 003C7510 90 7E 00 20 */ stw r3, 0x20(r30)
|
|
|
|
lbl_803CA5B4:
|
|
|
|
/* 803CA5B4 003C7514 80 7E 00 20 */ lwz r3, 0x20(r30)
|
|
|
|
/* 803CA5B8 003C7518 2C 03 00 24 */ cmpwi r3, 0x24
|
|
|
|
/* 803CA5BC 003C751C 41 80 FF 68 */ blt lbl_803CA524
|
|
|
|
lbl_803CA5C0:
|
|
|
|
/* 803CA5C0 003C7520 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803CA5C4 003C7524 41 82 00 0C */ beq lbl_803CA5D0
|
|
|
|
/* 803CA5C8 003C7528 3B 80 00 03 */ li r28, 3
|
|
|
|
/* 803CA5CC 003C752C 48 00 00 24 */ b lbl_803CA5F0
|
|
|
|
lbl_803CA5D0:
|
|
|
|
/* 803CA5D0 003C7530 4B FB AD F1 */ bl OSGetTick
|
|
|
|
/* 803CA5D4 003C7534 90 7E 00 24 */ stw r3, 0x24(r30)
|
|
|
|
/* 803CA5D8 003C7538 3C 60 80 3D */ lis r3, _F35@ha
|
|
|
|
/* 803CA5DC 003C753C 38 A3 A6 48 */ addi r5, r3, _F35@l
|
|
|
|
/* 803CA5E0 003C7540 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803CA5E4 003C7544 7F A3 EB 78 */ mr r3, r29
|
|
|
|
/* 803CA5E8 003C7548 4B FF F1 09 */ bl GBAGetStatusAsync
|
|
|
|
/* 803CA5EC 003C754C 7C 7C 1B 78 */ mr r28, r3
|
|
|
|
lbl_803CA5F0:
|
|
|
|
/* 803CA5F0 003C7550 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803CA5F4 003C7554 41 82 00 30 */ beq lbl_803CA624
|
|
|
|
/* 803CA5F8 003C7558 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA5FC 003C755C 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803CA600 003C7560 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803CA604 003C7564 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803CA608 003C7568 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803CA60C 003C756C 41 82 00 18 */ beq lbl_803CA624
|
|
|
|
/* 803CA610 003C7570 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803CA614 003C7574 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803CA618 003C7578 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA61C 003C757C 38 9C 00 00 */ addi r4, r28, 0
|
|
|
|
/* 803CA620 003C7580 4E 80 00 21 */ blrl
|
|
|
|
lbl_803CA624:
|
|
|
|
/* 803CA624 003C7584 93 9F 00 20 */ stw r28, 0x20(r31)
|
|
|
|
/* 803CA628 003C7588 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803CA62C 003C758C 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803CA630 003C7590 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803CA634 003C7594 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803CA638 003C7598 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803CA63C 003C759C 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803CA640 003C75A0 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803CA644 003C75A4 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F35
|
|
|
|
_F35:
|
|
|
|
/* 803CA648 003C75A8 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803CA64C 003C75AC 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803CA650 003C75B0 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803CA654 003C75B4 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803CA658 003C75B8 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803CA65C 003C75BC 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803CA660 003C75C0 3B A3 00 00 */ addi r29, r3, 0
|
|
|
|
/* 803CA664 003C75C4 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803CA668 003C75C8 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803CA66C 003C75CC 7C 9C 23 79 */ or. r28, r4, r4
|
|
|
|
/* 803CA670 003C75D0 57 A4 40 2E */ slwi r4, r29, 8
|
|
|
|
/* 803CA674 003C75D4 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803CA678 003C75D8 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803CA67C 003C75DC 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803CA680 003C75E0 40 82 00 CC */ bne lbl_803CA74C
|
|
|
|
/* 803CA684 003C75E4 4B FB AD 3D */ bl OSGetTick
|
|
|
|
/* 803CA688 003C75E8 3F 80 80 00 */ lis r28, 0x800000F8@ha
|
|
|
|
/* 803CA68C 003C75EC 80 9E 00 24 */ lwz r4, 0x24(r30)
|
|
|
|
/* 803CA690 003C75F0 80 1C 00 F8 */ lwz r0, 0x800000F8@l(r28)
|
|
|
|
/* 803CA694 003C75F4 7C 64 18 50 */ subf r3, r4, r3
|
|
|
|
/* 803CA698 003C75F8 54 05 F0 BE */ srwi r5, r0, 2
|
|
|
|
/* 803CA69C 003C75FC 1C 05 00 0A */ mulli r0, r5, 0xa
|
|
|
|
/* 803CA6A0 003C7600 7C 00 18 40 */ cmplw r0, r3
|
|
|
|
/* 803CA6A4 003C7604 41 81 00 0C */ bgt lbl_803CA6B0
|
|
|
|
/* 803CA6A8 003C7608 3B 80 00 03 */ li r28, 3
|
|
|
|
/* 803CA6AC 003C760C 48 00 00 A0 */ b lbl_803CA74C
|
|
|
|
lbl_803CA6B0:
|
|
|
|
/* 803CA6B0 003C7610 80 9E 00 10 */ lwz r4, 0x10(r30)
|
|
|
|
/* 803CA6B4 003C7614 88 64 00 00 */ lbz r3, 0(r4)
|
|
|
|
/* 803CA6B8 003C7618 70 60 00 32 */ andi. r0, r3, 0x32
|
|
|
|
/* 803CA6BC 003C761C 41 82 00 0C */ beq lbl_803CA6C8
|
|
|
|
/* 803CA6C0 003C7620 3B 80 00 03 */ li r28, 3
|
|
|
|
/* 803CA6C4 003C7624 48 00 00 88 */ b lbl_803CA74C
|
|
|
|
lbl_803CA6C8:
|
|
|
|
/* 803CA6C8 003C7628 28 03 00 08 */ cmplwi r3, 8
|
|
|
|
/* 803CA6CC 003C762C 41 82 00 1C */ beq lbl_803CA6E8
|
|
|
|
/* 803CA6D0 003C7630 3C 60 80 3D */ lis r3, _F35@ha
|
|
|
|
/* 803CA6D4 003C7634 38 A3 A6 48 */ addi r5, r3, _F35@l
|
|
|
|
/* 803CA6D8 003C7638 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA6DC 003C763C 4B FF F0 15 */ bl GBAGetStatusAsync
|
|
|
|
/* 803CA6E0 003C7640 7C 7C 1B 78 */ mr r28, r3
|
|
|
|
/* 803CA6E4 003C7644 48 00 00 68 */ b lbl_803CA74C
|
|
|
|
lbl_803CA6E8:
|
|
|
|
/* 803CA6E8 003C7648 3C 60 10 62 */ lis r3, 0x10624DD3@ha
|
|
|
|
/* 803CA6EC 003C764C 38 03 4D D3 */ addi r0, r3, 0x10624DD3@l
|
|
|
|
/* 803CA6F0 003C7650 7C 00 28 16 */ mulhwu r0, r0, r5
|
|
|
|
/* 803CA6F4 003C7654 54 06 E8 F8 */ rlwinm r6, r0, 0x1d, 3, 0x1c
|
|
|
|
/* 803CA6F8 003C7658 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA6FC 003C765C 38 A0 00 00 */ li r5, 0
|
|
|
|
/* 803CA700 003C7660 48 00 08 1D */ bl __GBASetDelay
|
|
|
|
/* 803CA704 003C7664 3C 60 80 3D */ lis r3, _F37@ha
|
|
|
|
/* 803CA708 003C7668 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
|
|
/* 803CA70C 003C766C 38 C3 A7 A4 */ addi r6, r3, _F37@l
|
|
|
|
/* 803CA710 003C7670 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA714 003C7674 38 9E 00 18 */ addi r4, r30, 0x18
|
|
|
|
/* 803CA718 003C7678 48 00 02 69 */ bl GBAReadAsync
|
|
|
|
/* 803CA71C 003C767C 80 1C 00 F8 */ lwz r0, 0xf8(r28)
|
|
|
|
/* 803CA720 003C7680 3C 80 43 1C */ lis r4, 0x431BDE83@ha
|
|
|
|
/* 803CA724 003C7684 3B 83 00 00 */ addi r28, r3, 0
|
|
|
|
/* 803CA728 003C7688 54 00 F0 BE */ srwi r0, r0, 2
|
|
|
|
/* 803CA72C 003C768C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l
|
|
|
|
/* 803CA730 003C7690 7C 04 00 16 */ mulhwu r0, r4, r0
|
|
|
|
/* 803CA734 003C7694 54 00 8B FE */ srwi r0, r0, 0xf
|
|
|
|
/* 803CA738 003C7698 1C 00 00 3C */ mulli r0, r0, 0x3c
|
|
|
|
/* 803CA73C 003C769C 54 06 E8 FE */ srwi r6, r0, 3
|
|
|
|
/* 803CA740 003C76A0 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA744 003C76A4 38 A0 00 00 */ li r5, 0
|
|
|
|
/* 803CA748 003C76A8 48 00 07 D5 */ bl __GBASetDelay
|
|
|
|
lbl_803CA74C:
|
|
|
|
/* 803CA74C 003C76AC 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803CA750 003C76B0 41 82 00 30 */ beq lbl_803CA780
|
|
|
|
/* 803CA754 003C76B4 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA758 003C76B8 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803CA75C 003C76BC 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803CA760 003C76C0 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803CA764 003C76C4 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803CA768 003C76C8 41 82 00 18 */ beq lbl_803CA780
|
|
|
|
/* 803CA76C 003C76CC 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803CA770 003C76D0 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803CA774 003C76D4 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA778 003C76D8 38 9C 00 00 */ addi r4, r28, 0
|
|
|
|
/* 803CA77C 003C76DC 4E 80 00 21 */ blrl
|
|
|
|
lbl_803CA780:
|
|
|
|
/* 803CA780 003C76E0 93 9F 00 20 */ stw r28, 0x20(r31)
|
|
|
|
/* 803CA784 003C76E4 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803CA788 003C76E8 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803CA78C 003C76EC 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803CA790 003C76F0 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803CA794 003C76F4 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803CA798 003C76F8 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803CA79C 003C76FC 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803CA7A0 003C7700 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F37
|
|
|
|
_F37:
|
|
|
|
/* 803CA7A4 003C7704 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803CA7A8 003C7708 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803CA7AC 003C770C 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
|
|
/* 803CA7B0 003C7710 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
|
|
/* 803CA7B4 003C7714 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
|
|
/* 803CA7B8 003C7718 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
|
|
/* 803CA7BC 003C771C 3B A3 00 00 */ addi r29, r3, 0
|
|
|
|
/* 803CA7C0 003C7720 3C 60 80 57 */ lis r3, __GBA@ha
|
|
|
|
/* 803CA7C4 003C7724 93 81 00 18 */ stw r28, 0x18(r1)
|
|
|
|
/* 803CA7C8 003C7728 7C 9C 23 79 */ or. r28, r4, r4
|
|
|
|
/* 803CA7CC 003C772C 57 A4 40 2E */ slwi r4, r29, 8
|
|
|
|
/* 803CA7D0 003C7730 38 03 A1 A0 */ addi r0, r3, __GBA@l
|
|
|
|
/* 803CA7D4 003C7734 7F E0 22 14 */ add r31, r0, r4
|
|
|
|
/* 803CA7D8 003C7738 3B DF 00 40 */ addi r30, r31, 0x40
|
|
|
|
/* 803CA7DC 003C773C 40 82 00 6C */ bne lbl_803CA848
|
|
|
|
/* 803CA7E0 003C7740 81 3E 00 60 */ lwz r9, 0x60(r30)
|
|
|
|
/* 803CA7E4 003C7744 88 BE 00 1B */ lbz r5, 0x1b(r30)
|
|
|
|
/* 803CA7E8 003C7748 55 24 46 3E */ srwi r4, r9, 0x18
|
|
|
|
/* 803CA7EC 003C774C 88 7E 00 1A */ lbz r3, 0x1a(r30)
|
|
|
|
/* 803CA7F0 003C7750 55 20 84 3E */ srwi r0, r9, 0x10
|
|
|
|
/* 803CA7F4 003C7754 88 FE 00 19 */ lbz r7, 0x19(r30)
|
|
|
|
/* 803CA7F8 003C7758 89 1E 00 18 */ lbz r8, 0x18(r30)
|
|
|
|
/* 803CA7FC 003C775C 55 26 C2 3E */ srwi r6, r9, 8
|
|
|
|
/* 803CA800 003C7760 7C 60 02 78 */ xor r0, r3, r0
|
|
|
|
/* 803CA804 003C7764 7C A4 22 78 */ xor r4, r5, r4
|
|
|
|
/* 803CA808 003C7768 7C 80 03 78 */ or r0, r4, r0
|
|
|
|
/* 803CA80C 003C776C 7C E3 32 78 */ xor r3, r7, r6
|
|
|
|
/* 803CA810 003C7770 7D 04 4A 78 */ xor r4, r8, r9
|
|
|
|
/* 803CA814 003C7774 7C 60 03 78 */ or r0, r3, r0
|
|
|
|
/* 803CA818 003C7778 7C 80 03 78 */ or r0, r4, r0
|
|
|
|
/* 803CA81C 003C777C 54 00 C0 0F */ rlwinm. r0, r0, 0x18, 0, 7
|
|
|
|
/* 803CA820 003C7780 41 82 00 0C */ beq lbl_803CA82C
|
|
|
|
/* 803CA824 003C7784 3B 80 00 03 */ li r28, 3
|
|
|
|
/* 803CA828 003C7788 48 00 00 20 */ b lbl_803CA848
|
|
|
|
lbl_803CA82C:
|
|
|
|
/* 803CA82C 003C778C 3C 60 80 3D */ lis r3, _F39@ha
|
|
|
|
/* 803CA830 003C7790 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
|
|
/* 803CA834 003C7794 38 C3 A8 A0 */ addi r6, r3, _F39@l
|
|
|
|
/* 803CA838 003C7798 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA83C 003C779C 38 9E 00 18 */ addi r4, r30, 0x18
|
|
|
|
/* 803CA840 003C77A0 48 00 02 71 */ bl GBAWriteAsync
|
|
|
|
/* 803CA844 003C77A4 7C 7C 1B 78 */ mr r28, r3
|
|
|
|
lbl_803CA848:
|
|
|
|
/* 803CA848 003C77A8 2C 1C 00 00 */ cmpwi r28, 0
|
|
|
|
/* 803CA84C 003C77AC 41 82 00 30 */ beq lbl_803CA87C
|
|
|
|
/* 803CA850 003C77B0 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA854 003C77B4 90 1E 00 2C */ stw r0, 0x2c(r30)
|
|
|
|
/* 803CA858 003C77B8 90 1E 00 28 */ stw r0, 0x28(r30)
|
|
|
|
/* 803CA85C 003C77BC 81 9E 00 14 */ lwz r12, 0x14(r30)
|
|
|
|
/* 803CA860 003C77C0 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803CA864 003C77C4 41 82 00 18 */ beq lbl_803CA87C
|
|
|
|
/* 803CA868 003C77C8 90 1E 00 14 */ stw r0, 0x14(r30)
|
|
|
|
/* 803CA86C 003C77CC 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803CA870 003C77D0 38 7D 00 00 */ addi r3, r29, 0
|
|
|
|
/* 803CA874 003C77D4 38 9C 00 00 */ addi r4, r28, 0
|
|
|
|
/* 803CA878 003C77D8 4E 80 00 21 */ blrl
|
|
|
|
lbl_803CA87C:
|
|
|
|
/* 803CA87C 003C77DC 93 9F 00 20 */ stw r28, 0x20(r31)
|
|
|
|
/* 803CA880 003C77E0 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
|
|
/* 803CA884 003C77E4 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
|
|
/* 803CA888 003C77E8 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
|
|
/* 803CA88C 003C77EC 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
|
|
/* 803CA890 003C77F0 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
|
|
/* 803CA894 003C77F4 38 21 00 28 */ addi r1, r1, 0x28
|
|
|
|
/* 803CA898 003C77F8 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803CA89C 003C77FC 4E 80 00 20 */ blr
|
|
|
|
|
|
|
|
.global _F39
|
|
|
|
_F39:
|
|
|
|
/* 803CA8A0 003C7800 7C 08 02 A6 */ mflr r0
|
|
|
|
/* 803CA8A4 003C7804 54 65 40 2E */ slwi r5, r3, 8
|
|
|
|
/* 803CA8A8 003C7808 90 01 00 04 */ stw r0, 4(r1)
|
|
|
|
/* 803CA8AC 003C780C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
|
|
/* 803CA8B0 003C7810 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
|
|
/* 803CA8B4 003C7814 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
|
|
/* 803CA8B8 003C7818 7C 9E 23 79 */ or. r30, r4, r4
|
|
|
|
/* 803CA8BC 003C781C 3C 80 80 57 */ lis r4, __GBA@ha
|
|
|
|
/* 803CA8C0 003C7820 38 04 A1 A0 */ addi r0, r4, __GBA@l
|
|
|
|
/* 803CA8C4 003C7824 7F E0 2A 14 */ add r31, r0, r5
|
|
|
|
/* 803CA8C8 003C7828 38 BF 00 40 */ addi r5, r31, 0x40
|
|
|
|
/* 803CA8CC 003C782C 40 82 00 10 */ bne lbl_803CA8DC
|
|
|
|
/* 803CA8D0 003C7830 80 85 00 10 */ lwz r4, 0x10(r5)
|
|
|
|
/* 803CA8D4 003C7834 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA8D8 003C7838 98 04 00 00 */ stb r0, 0(r4)
|
|
|
|
lbl_803CA8DC:
|
|
|
|
/* 803CA8DC 003C783C 38 00 00 00 */ li r0, 0
|
|
|
|
/* 803CA8E0 003C7840 90 05 00 2C */ stw r0, 0x2c(r5)
|
|
|
|
/* 803CA8E4 003C7844 90 05 00 28 */ stw r0, 0x28(r5)
|
|
|
|
/* 803CA8E8 003C7848 81 85 00 14 */ lwz r12, 0x14(r5)
|
|
|
|
/* 803CA8EC 003C784C 28 0C 00 00 */ cmplwi r12, 0
|
|
|
|
/* 803CA8F0 003C7850 41 82 00 14 */ beq lbl_803CA904
|
|
|
|
/* 803CA8F4 003C7854 90 05 00 14 */ stw r0, 0x14(r5)
|
|
|
|
/* 803CA8F8 003C7858 7D 88 03 A6 */ mtlr r12
|
|
|
|
/* 803CA8FC 003C785C 38 9E 00 00 */ addi r4, r30, 0
|
|
|
|
/* 803CA900 003C7860 4E 80 00 21 */ blrl
|
|
|
|
lbl_803CA904:
|
|
|
|
/* 803CA904 003C7864 93 DF 00 20 */ stw r30, 0x20(r31)
|
|
|
|
/* 803CA908 003C7868 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
|
|
/* 803CA90C 003C786C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
|
|
/* 803CA910 003C7870 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
|
|
/* 803CA914 003C7874 38 21 00 20 */ addi r1, r1, 0x20
|
|
|
|
/* 803CA918 003C7878 7C 08 03 A6 */ mtlr r0
|
|
|
|
/* 803CA91C 003C787C 4E 80 00 20 */ blr
|