.include "macros.inc" .section .data .global lbl_803E8C18 lbl_803E8C18: # ROM: 0x3E5C18 .4byte lbl_80248960 .4byte lbl_80248B54 .4byte lbl_802489EC .4byte lbl_802489FC .4byte lbl_80248A80 .4byte lbl_80248AB0 .4byte lbl_80248AF8 .4byte lbl_80248B54 .4byte lbl_80248B54 .4byte 0 .section .text, "ax" # 0x80003640 - 0x803CB1C0 .global PollResponse__11CGBASupportFv PollResponse__11CGBASupportFv: /* 802485D4 00245534 94 21 FF D0 */ stwu r1, -0x30(r1) /* 802485D8 00245538 7C 08 02 A6 */ mflr r0 /* 802485DC 0024553C 90 01 00 34 */ stw r0, 0x34(r1) /* 802485E0 00245540 38 81 00 08 */ addi r4, r1, 8 /* 802485E4 00245544 93 E1 00 2C */ stw r31, 0x2c(r1) /* 802485E8 00245548 7C 7F 1B 78 */ mr r31, r3 /* 802485EC 0024554C 93 C1 00 28 */ stw r30, 0x28(r1) /* 802485F0 00245550 93 A1 00 24 */ stw r29, 0x24(r1) /* 802485F4 00245554 93 81 00 20 */ stw r28, 0x20(r1) /* 802485F8 00245558 80 63 00 40 */ lwz r3, 0x40(r3) /* 802485FC 0024555C 48 18 12 4D */ bl GBAReset /* 80248600 00245560 2C 03 00 01 */ cmpwi r3, 1 /* 80248604 00245564 40 82 00 20 */ bne lbl_80248624 /* 80248608 00245568 80 7F 00 40 */ lwz r3, 0x40(r31) /* 8024860C 0024556C 38 81 00 08 */ addi r4, r1, 8 /* 80248610 00245570 48 18 12 39 */ bl GBAReset /* 80248614 00245574 2C 03 00 01 */ cmpwi r3, 1 /* 80248618 00245578 40 82 00 0C */ bne lbl_80248624 /* 8024861C 0024557C 38 60 00 00 */ li r3, 0 /* 80248620 00245580 48 00 02 D8 */ b lbl_802488F8 lbl_80248624: /* 80248624 00245584 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248628 00245588 38 81 00 08 */ addi r4, r1, 8 /* 8024862C 0024558C 48 18 11 29 */ bl GBAGetStatus /* 80248630 00245590 2C 03 00 01 */ cmpwi r3, 1 /* 80248634 00245594 40 82 00 0C */ bne lbl_80248640 /* 80248638 00245598 38 60 00 00 */ li r3, 0 /* 8024863C 0024559C 48 00 02 BC */ b lbl_802488F8 lbl_80248640: /* 80248640 002455A0 88 01 00 08 */ lbz r0, 8(r1) /* 80248644 002455A4 28 00 00 28 */ cmplwi r0, 0x28 /* 80248648 002455A8 41 82 00 0C */ beq lbl_80248654 /* 8024864C 002455AC 38 60 00 00 */ li r3, 0 /* 80248650 002455B0 48 00 02 A8 */ b lbl_802488F8 lbl_80248654: /* 80248654 002455B4 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248658 002455B8 38 81 00 14 */ addi r4, r1, 0x14 /* 8024865C 002455BC 38 A1 00 08 */ addi r5, r1, 8 /* 80248660 002455C0 48 18 23 8D */ bl GBARead /* 80248664 002455C4 2C 03 00 01 */ cmpwi r3, 1 /* 80248668 002455C8 40 82 00 0C */ bne lbl_80248674 /* 8024866C 002455CC 38 60 00 00 */ li r3, 0 /* 80248670 002455D0 48 00 02 88 */ b lbl_802488F8 lbl_80248674: /* 80248674 002455D4 80 61 00 14 */ lwz r3, 0x14(r1) /* 80248678 002455D8 3C 03 BE B3 */ addis r0, r3, 0xbeb3 /* 8024867C 002455DC 28 00 54 45 */ cmplwi r0, 0x5445 /* 80248680 002455E0 41 82 00 0C */ beq lbl_8024868C /* 80248684 002455E4 38 60 00 00 */ li r3, 0 /* 80248688 002455E8 48 00 02 70 */ b lbl_802488F8 lbl_8024868C: /* 8024868C 002455EC 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248690 002455F0 38 81 00 08 */ addi r4, r1, 8 /* 80248694 002455F4 48 18 10 C1 */ bl GBAGetStatus /* 80248698 002455F8 2C 03 00 01 */ cmpwi r3, 1 /* 8024869C 002455FC 40 82 00 0C */ bne lbl_802486A8 /* 802486A0 00245600 38 60 00 00 */ li r3, 0 /* 802486A4 00245604 48 00 02 54 */ b lbl_802488F8 lbl_802486A8: /* 802486A8 00245608 88 01 00 08 */ lbz r0, 8(r1) /* 802486AC 0024560C 28 00 00 20 */ cmplwi r0, 0x20 /* 802486B0 00245610 41 82 00 0C */ beq lbl_802486BC /* 802486B4 00245614 38 60 00 00 */ li r3, 0 /* 802486B8 00245618 48 00 02 40 */ b lbl_802488F8 lbl_802486BC: /* 802486BC 0024561C 80 7F 00 40 */ lwz r3, 0x40(r31) /* 802486C0 00245620 38 A1 00 08 */ addi r5, r1, 8 /* 802486C4 00245624 38 82 B8 78 */ addi r4, r2, lbl_805AD598@sda21 /* 802486C8 00245628 48 18 24 7D */ bl GBAWrite /* 802486CC 0024562C 2C 03 00 01 */ cmpwi r3, 1 /* 802486D0 00245630 40 82 00 0C */ bne lbl_802486DC /* 802486D4 00245634 38 60 00 00 */ li r3, 0 /* 802486D8 00245638 48 00 02 20 */ b lbl_802488F8 lbl_802486DC: /* 802486DC 0024563C 80 7F 00 40 */ lwz r3, 0x40(r31) /* 802486E0 00245640 38 81 00 08 */ addi r4, r1, 8 /* 802486E4 00245644 48 18 10 71 */ bl GBAGetStatus /* 802486E8 00245648 2C 03 00 01 */ cmpwi r3, 1 /* 802486EC 0024564C 40 82 00 0C */ bne lbl_802486F8 /* 802486F0 00245650 38 60 00 00 */ li r3, 0 /* 802486F4 00245654 48 00 02 04 */ b lbl_802488F8 lbl_802486F8: /* 802486F8 00245658 88 01 00 08 */ lbz r0, 8(r1) /* 802486FC 0024565C 54 00 06 B6 */ rlwinm r0, r0, 0, 0x1a, 0x1b /* 80248700 00245660 2C 00 00 30 */ cmpwi r0, 0x30 /* 80248704 00245664 41 82 00 0C */ beq lbl_80248710 /* 80248708 00245668 38 60 00 00 */ li r3, 0 /* 8024870C 0024566C 48 00 01 EC */ b lbl_802488F8 lbl_80248710: /* 80248710 00245670 48 13 CC B1 */ bl OSGetTick /* 80248714 00245674 3C 80 43 1C */ lis r4, 0x431BDE83@ha /* 80248718 00245678 7C 7C 1B 78 */ mr r28, r3 /* 8024871C 0024567C 3B A4 DE 83 */ addi r29, r4, 0x431BDE83@l /* 80248720 00245680 3F C0 80 00 */ lis r30, 0x8000 lbl_80248724: /* 80248724 00245684 48 13 CC 9D */ bl OSGetTick /* 80248728 00245688 80 1E 00 F8 */ lwz r0, 0xf8(r30) /* 8024872C 0024568C 7C 7C 18 50 */ subf r3, r28, r3 /* 80248730 00245690 54 63 18 38 */ slwi r3, r3, 3 /* 80248734 00245694 54 00 F0 BE */ srwi r0, r0, 2 /* 80248738 00245698 7C 1D 00 16 */ mulhwu r0, r29, r0 /* 8024873C 0024569C 54 00 8B FE */ srwi r0, r0, 0xf /* 80248740 002456A0 7C 03 03 96 */ divwu r0, r3, r0 /* 80248744 002456A4 28 00 01 F4 */ cmplwi r0, 0x1f4 /* 80248748 002456A8 41 81 01 AC */ bgt lbl_802488F4 /* 8024874C 002456AC 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248750 002456B0 38 81 00 08 */ addi r4, r1, 8 /* 80248754 002456B4 48 18 10 01 */ bl GBAGetStatus /* 80248758 002456B8 2C 03 00 01 */ cmpwi r3, 1 /* 8024875C 002456BC 41 82 FF C8 */ beq lbl_80248724 /* 80248760 002456C0 88 01 00 08 */ lbz r0, 8(r1) /* 80248764 002456C4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c /* 80248768 002456C8 41 82 FF BC */ beq lbl_80248724 /* 8024876C 002456CC 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248770 002456D0 38 81 00 08 */ addi r4, r1, 8 /* 80248774 002456D4 48 18 0F E1 */ bl GBAGetStatus /* 80248778 002456D8 2C 03 00 00 */ cmpwi r3, 0 /* 8024877C 002456DC 40 82 FF A8 */ bne lbl_80248724 /* 80248780 002456E0 88 01 00 08 */ lbz r0, 8(r1) /* 80248784 002456E4 28 00 00 38 */ cmplwi r0, 0x38 /* 80248788 002456E8 40 82 FF 9C */ bne lbl_80248724 /* 8024878C 002456EC 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248790 002456F0 38 81 00 10 */ addi r4, r1, 0x10 /* 80248794 002456F4 38 A1 00 08 */ addi r5, r1, 8 /* 80248798 002456F8 48 18 22 55 */ bl GBARead /* 8024879C 002456FC 2C 03 00 00 */ cmpwi r3, 0 /* 802487A0 00245700 41 82 00 0C */ beq lbl_802487AC /* 802487A4 00245704 38 60 00 00 */ li r3, 0 /* 802487A8 00245708 48 00 01 50 */ b lbl_802488F8 lbl_802487AC: /* 802487AC 0024570C 81 01 00 10 */ lwz r8, 0x10(r1) /* 802487B0 00245710 38 C1 00 0C */ addi r6, r1, 0xc /* 802487B4 00245714 38 E0 00 03 */ li r7, 3 /* 802487B8 00245718 38 A0 FF FF */ li r5, -1 /* 802487BC 0024571C 55 04 46 3E */ srwi r4, r8, 0x18 /* 802487C0 00245720 55 03 86 3E */ rlwinm r3, r8, 0x10, 0x18, 0x1f /* 802487C4 00245724 55 00 C6 3E */ rlwinm r0, r8, 0x18, 0x18, 0x1f /* 802487C8 00245728 98 81 00 0C */ stb r4, 0xc(r1) /* 802487CC 0024572C 98 61 00 0D */ stb r3, 0xd(r1) /* 802487D0 00245730 98 01 00 0E */ stb r0, 0xe(r1) /* 802487D4 00245734 99 01 00 0F */ stb r8, 0xf(r1) lbl_802487D8: /* 802487D8 00245738 88 06 00 00 */ lbz r0, 0(r6) /* 802487DC 0024573C 38 C6 00 01 */ addi r6, r6, 1 /* 802487E0 00245740 7C A5 02 78 */ xor r5, r5, r0 /* 802487E4 00245744 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 802487E8 00245748 41 82 00 10 */ beq lbl_802487F8 /* 802487EC 0024574C 54 A5 F8 7E */ srwi r5, r5, 1 /* 802487F0 00245750 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 802487F4 00245754 48 00 00 08 */ b lbl_802487FC lbl_802487F8: /* 802487F8 00245758 54 A5 F8 7E */ srwi r5, r5, 1 lbl_802487FC: /* 802487FC 0024575C 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248800 00245760 41 82 00 10 */ beq lbl_80248810 /* 80248804 00245764 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248808 00245768 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 8024880C 0024576C 48 00 00 08 */ b lbl_80248814 lbl_80248810: /* 80248810 00245770 54 A5 F8 7E */ srwi r5, r5, 1 lbl_80248814: /* 80248814 00245774 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248818 00245778 41 82 00 10 */ beq lbl_80248828 /* 8024881C 0024577C 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248820 00245780 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 80248824 00245784 48 00 00 08 */ b lbl_8024882C lbl_80248828: /* 80248828 00245788 54 A5 F8 7E */ srwi r5, r5, 1 lbl_8024882C: /* 8024882C 0024578C 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248830 00245790 41 82 00 10 */ beq lbl_80248840 /* 80248834 00245794 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248838 00245798 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 8024883C 0024579C 48 00 00 08 */ b lbl_80248844 lbl_80248840: /* 80248840 002457A0 54 A5 F8 7E */ srwi r5, r5, 1 lbl_80248844: /* 80248844 002457A4 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248848 002457A8 41 82 00 10 */ beq lbl_80248858 /* 8024884C 002457AC 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248850 002457B0 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 80248854 002457B4 48 00 00 08 */ b lbl_8024885C lbl_80248858: /* 80248858 002457B8 54 A5 F8 7E */ srwi r5, r5, 1 lbl_8024885C: /* 8024885C 002457BC 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248860 002457C0 41 82 00 10 */ beq lbl_80248870 /* 80248864 002457C4 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248868 002457C8 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 8024886C 002457CC 48 00 00 08 */ b lbl_80248874 lbl_80248870: /* 80248870 002457D0 54 A5 F8 7E */ srwi r5, r5, 1 lbl_80248874: /* 80248874 002457D4 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248878 002457D8 41 82 00 10 */ beq lbl_80248888 /* 8024887C 002457DC 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248880 002457E0 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 80248884 002457E4 48 00 00 08 */ b lbl_8024888C lbl_80248888: /* 80248888 002457E8 54 A5 F8 7E */ srwi r5, r5, 1 lbl_8024888C: /* 8024888C 002457EC 54 A0 07 FF */ clrlwi. r0, r5, 0x1f /* 80248890 002457F0 41 82 00 10 */ beq lbl_802488A0 /* 80248894 002457F4 54 A5 F8 7E */ srwi r5, r5, 1 /* 80248898 002457F8 68 A5 B0 10 */ xori r5, r5, 0xb010 /* 8024889C 002457FC 48 00 00 08 */ b lbl_802488A4 lbl_802488A0: /* 802488A0 00245800 54 A5 F8 7E */ srwi r5, r5, 1 lbl_802488A4: /* 802488A4 00245804 34 E7 FF FF */ addic. r7, r7, -1 /* 802488A8 00245808 40 82 FF 30 */ bne lbl_802487D8 /* 802488AC 0024580C 88 61 00 0F */ lbz r3, 0xf(r1) /* 802488B0 00245810 54 A0 06 3E */ clrlwi r0, r5, 0x18 /* 802488B4 00245814 7C 03 00 40 */ cmplw r3, r0 /* 802488B8 00245818 41 82 00 0C */ beq lbl_802488C4 /* 802488BC 0024581C 38 60 00 00 */ li r3, 0 /* 802488C0 00245820 48 00 00 38 */ b lbl_802488F8 lbl_802488C4: /* 802488C4 00245824 88 81 00 0E */ lbz r4, 0xe(r1) /* 802488C8 00245828 38 60 00 00 */ li r3, 0 /* 802488CC 0024582C 54 80 FF FE */ rlwinm r0, r4, 0x1f, 0x1f, 0x1f /* 802488D0 00245830 68 00 00 01 */ xori r0, r0, 1 /* 802488D4 00245834 98 1F 00 44 */ stb r0, 0x44(r31) /* 802488D8 00245838 88 1F 00 44 */ lbz r0, 0x44(r31) /* 802488DC 0024583C 28 00 00 00 */ cmplwi r0, 0 /* 802488E0 00245840 41 82 00 10 */ beq lbl_802488F0 /* 802488E4 00245844 54 80 07 FF */ clrlwi. r0, r4, 0x1f /* 802488E8 00245848 40 81 00 08 */ ble lbl_802488F0 /* 802488EC 0024584C 38 60 00 01 */ li r3, 1 lbl_802488F0: /* 802488F0 00245850 98 7F 00 45 */ stb r3, 0x45(r31) lbl_802488F4: /* 802488F4 00245854 38 60 00 01 */ li r3, 1 lbl_802488F8: /* 802488F8 00245858 80 01 00 34 */ lwz r0, 0x34(r1) /* 802488FC 0024585C 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80248900 00245860 83 C1 00 28 */ lwz r30, 0x28(r1) /* 80248904 00245864 83 A1 00 24 */ lwz r29, 0x24(r1) /* 80248908 00245868 83 81 00 20 */ lwz r28, 0x20(r1) /* 8024890C 0024586C 7C 08 03 A6 */ mtlr r0 /* 80248910 00245870 38 21 00 30 */ addi r1, r1, 0x30 /* 80248914 00245874 4E 80 00 20 */ blr .global Update__11CGBASupportFv Update__11CGBASupportFv: /* 80248918 00245878 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8024891C 0024587C 7C 08 02 A6 */ mflr r0 /* 80248920 00245880 90 01 00 34 */ stw r0, 0x34(r1) /* 80248924 00245884 DB E1 00 20 */ stfd f31, 0x20(r1) /* 80248928 00245888 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0 /* 8024892C 0024588C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80248930 00245890 93 C1 00 18 */ stw r30, 0x18(r1) /* 80248934 00245894 7C 7F 1B 78 */ mr r31, r3 /* 80248938 00245898 FF E0 08 90 */ fmr f31, f1 /* 8024893C 0024589C 80 A3 00 34 */ lwz r5, 0x34(r3) /* 80248940 002458A0 28 05 00 08 */ cmplwi r5, 8 /* 80248944 002458A4 41 81 02 10 */ bgt lbl_80248B54 /* 80248948 002458A8 3C 80 80 3F */ lis r4, lbl_803E8C18@ha /* 8024894C 002458AC 54 A0 10 3A */ slwi r0, r5, 2 /* 80248950 002458B0 38 84 8C 18 */ addi r4, r4, lbl_803E8C18@l /* 80248954 002458B4 7C 04 00 2E */ lwzx r0, r4, r0 /* 80248958 002458B8 7C 09 03 A6 */ mtctr r0 /* 8024895C 002458BC 4E 80 04 20 */ bctr .global lbl_80248960 lbl_80248960: /* 80248960 002458C0 2C 05 00 00 */ cmpwi r5, 0 /* 80248964 002458C4 40 82 01 F0 */ bne lbl_80248B54 /* 80248968 002458C8 80 7F 00 30 */ lwz r3, 0x30(r31) /* 8024896C 002458CC 81 83 00 00 */ lwz r12, 0(r3) /* 80248970 002458D0 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80248974 002458D4 7D 89 03 A6 */ mtctr r12 /* 80248978 002458D8 4E 80 04 21 */ bctrl /* 8024897C 002458DC 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80248980 002458E0 41 82 01 D4 */ beq lbl_80248B54 /* 80248984 002458E4 80 7F 00 30 */ lwz r3, 0x30(r31) /* 80248988 002458E8 28 03 00 00 */ cmplwi r3, 0 /* 8024898C 002458EC 41 82 00 18 */ beq lbl_802489A4 /* 80248990 002458F0 81 83 00 00 */ lwz r12, 0(r3) /* 80248994 002458F4 38 80 00 01 */ li r4, 1 /* 80248998 002458F8 81 8C 00 08 */ lwz r12, 8(r12) /* 8024899C 002458FC 7D 89 03 A6 */ mtctr r12 /* 802489A0 00245900 4E 80 04 21 */ bctrl lbl_802489A4: /* 802489A4 00245904 38 60 00 00 */ li r3, 0 /* 802489A8 00245908 38 00 00 01 */ li r0, 1 /* 802489AC 0024590C 90 7F 00 30 */ stw r3, 0x30(r31) /* 802489B0 00245910 90 1F 00 34 */ stw r0, 0x34(r31) /* 802489B4 00245914 83 FF 00 2C */ lwz r31, 0x2c(r31) /* 802489B8 00245918 48 13 CA 09 */ bl OSGetTick /* 802489BC 0024591C 98 7F 00 C8 */ stb r3, 0xc8(r31) /* 802489C0 00245920 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f /* 802489C4 00245924 54 65 86 3E */ rlwinm r5, r3, 0x10, 0x18, 0x1f /* 802489C8 00245928 54 64 46 3E */ srwi r4, r3, 0x18 /* 802489CC 0024592C 98 1F 00 C9 */ stb r0, 0xc9(r31) /* 802489D0 00245930 38 60 00 45 */ li r3, 0x45 /* 802489D4 00245934 38 00 00 C9 */ li r0, 0xc9 /* 802489D8 00245938 98 BF 00 CA */ stb r5, 0xca(r31) /* 802489DC 0024593C 98 9F 00 CB */ stb r4, 0xcb(r31) /* 802489E0 00245940 98 7F 00 AF */ stb r3, 0xaf(r31) /* 802489E4 00245944 98 1F 00 BD */ stb r0, 0xbd(r31) /* 802489E8 00245948 48 00 01 6C */ b lbl_80248B54 .global lbl_802489EC lbl_802489EC: /* 802489EC 0024594C C0 02 B8 7C */ lfs f0, lbl_805AD59C@sda21(r2) /* 802489F0 00245950 38 00 00 03 */ li r0, 3 /* 802489F4 00245954 D0 1F 00 38 */ stfs f0, 0x38(r31) /* 802489F8 00245958 90 1F 00 34 */ stw r0, 0x34(r31) .global lbl_802489FC lbl_802489FC: /* 802489FC 0024595C 3B C0 00 01 */ li r30, 1 lbl_80248A00: /* 80248A00 00245960 7F C3 F3 78 */ mr r3, r30 /* 80248A04 00245964 48 17 74 E5 */ bl SIProbe /* 80248A08 00245968 3C 03 FF FC */ addis r0, r3, 0xfffc /* 80248A0C 0024596C 28 00 00 00 */ cmplwi r0, 0 /* 80248A10 00245970 40 82 00 1C */ bne lbl_80248A2C /* 80248A14 00245974 93 DF 00 40 */ stw r30, 0x40(r31) /* 80248A18 00245978 38 00 00 04 */ li r0, 4 /* 80248A1C 0024597C C0 02 B8 7C */ lfs f0, lbl_805AD59C@sda21(r2) /* 80248A20 00245980 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248A24 00245984 D0 1F 00 38 */ stfs f0, 0x38(r31) /* 80248A28 00245988 48 00 01 2C */ b lbl_80248B54 lbl_80248A2C: /* 80248A2C 0024598C 3B DE 00 01 */ addi r30, r30, 1 /* 80248A30 00245990 2C 1E 00 04 */ cmpwi r30, 4 /* 80248A34 00245994 41 80 FF CC */ blt lbl_80248A00 /* 80248A38 00245998 C0 3F 00 38 */ lfs f1, 0x38(r31) /* 80248A3C 0024599C C0 0D 96 F8 */ lfs f0, lbl_805A82B8@sda21(r13) /* 80248A40 002459A0 EC 21 F8 28 */ fsubs f1, f1, f31 /* 80248A44 002459A4 FC 00 08 40 */ fcmpo cr0, f0, f1 /* 80248A48 002459A8 D0 21 00 0C */ stfs f1, 0xc(r1) /* 80248A4C 002459AC 40 80 00 0C */ bge lbl_80248A58 /* 80248A50 002459B0 38 61 00 0C */ addi r3, r1, 0xc /* 80248A54 002459B4 48 00 00 08 */ b lbl_80248A5C lbl_80248A58: /* 80248A58 002459B8 38 6D 96 F8 */ addi r3, r13, lbl_805A82B8@sda21 lbl_80248A5C: /* 80248A5C 002459BC C0 03 00 00 */ lfs f0, 0(r3) /* 80248A60 002459C0 C0 22 B8 80 */ lfs f1, lbl_805AD5A0@sda21(r2) /* 80248A64 002459C4 D0 1F 00 38 */ stfs f0, 0x38(r31) /* 80248A68 002459C8 C0 1F 00 38 */ lfs f0, 0x38(r31) /* 80248A6C 002459CC FC 01 00 00 */ fcmpu cr0, f1, f0 /* 80248A70 002459D0 40 82 00 E4 */ bne lbl_80248B54 /* 80248A74 002459D4 38 00 00 08 */ li r0, 8 /* 80248A78 002459D8 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248A7C 002459DC 48 00 00 D8 */ b lbl_80248B54 .global lbl_80248A80 lbl_80248A80: /* 80248A80 002459E0 38 00 00 05 */ li r0, 5 /* 80248A84 002459E4 3C 60 80 25 */ lis r3, nullsub_130@ha /* 80248A88 002459E8 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248A8C 002459EC 39 23 8D D8 */ addi r9, r3, nullsub_130@l /* 80248A90 002459F0 39 1F 00 3C */ addi r8, r31, 0x3c /* 80248A94 002459F4 38 A0 00 02 */ li r5, 2 /* 80248A98 002459F8 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248A9C 002459FC 80 DF 00 2C */ lwz r6, 0x2c(r31) /* 80248AA0 00245A00 80 FF 00 14 */ lwz r7, 0x14(r31) /* 80248AA4 00245A04 54 64 08 3C */ slwi r4, r3, 1 /* 80248AA8 00245A08 48 18 0F B5 */ bl GBAJoyBootAsync /* 80248AAC 00245A0C 48 00 00 A8 */ b lbl_80248B54 .global lbl_80248AB0 lbl_80248AB0: /* 80248AB0 00245A10 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248AB4 00245A14 38 9F 00 3C */ addi r4, r31, 0x3c /* 80248AB8 00245A18 48 18 0E 31 */ bl GBAGetProcessStatus /* 80248ABC 00245A1C 2C 03 00 02 */ cmpwi r3, 2 /* 80248AC0 00245A20 41 82 00 94 */ beq lbl_80248B54 /* 80248AC4 00245A24 80 7F 00 40 */ lwz r3, 0x40(r31) /* 80248AC8 00245A28 38 9F 00 3C */ addi r4, r31, 0x3c /* 80248ACC 00245A2C 48 18 0C 89 */ bl GBAGetStatus /* 80248AD0 00245A30 2C 03 00 01 */ cmpwi r3, 1 /* 80248AD4 00245A34 40 82 00 10 */ bne lbl_80248AE4 /* 80248AD8 00245A38 38 00 00 08 */ li r0, 8 /* 80248ADC 00245A3C 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248AE0 00245A40 48 00 00 74 */ b lbl_80248B54 lbl_80248AE4: /* 80248AE4 00245A44 C0 02 B8 7C */ lfs f0, lbl_805AD59C@sda21(r2) /* 80248AE8 00245A48 38 00 00 06 */ li r0, 6 /* 80248AEC 00245A4C D0 1F 00 38 */ stfs f0, 0x38(r31) /* 80248AF0 00245A50 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248AF4 00245A54 48 00 00 60 */ b lbl_80248B54 .global lbl_80248AF8 lbl_80248AF8: /* 80248AF8 00245A58 4B FF FA DD */ bl PollResponse__11CGBASupportFv /* 80248AFC 00245A5C 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80248B00 00245A60 41 82 00 10 */ beq lbl_80248B10 /* 80248B04 00245A64 38 00 00 07 */ li r0, 7 /* 80248B08 00245A68 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248B0C 00245A6C 48 00 00 48 */ b lbl_80248B54 lbl_80248B10: /* 80248B10 00245A70 C0 3F 00 38 */ lfs f1, 0x38(r31) /* 80248B14 00245A74 C0 0D 96 FC */ lfs f0, lbl_805A82BC@sda21(r13) /* 80248B18 00245A78 EC 21 F8 28 */ fsubs f1, f1, f31 /* 80248B1C 00245A7C FC 00 08 40 */ fcmpo cr0, f0, f1 /* 80248B20 00245A80 D0 21 00 08 */ stfs f1, 8(r1) /* 80248B24 00245A84 40 80 00 0C */ bge lbl_80248B30 /* 80248B28 00245A88 38 61 00 08 */ addi r3, r1, 8 /* 80248B2C 00245A8C 48 00 00 08 */ b lbl_80248B34 lbl_80248B30: /* 80248B30 00245A90 38 6D 96 FC */ addi r3, r13, lbl_805A82BC@sda21 lbl_80248B34: /* 80248B34 00245A94 C0 03 00 00 */ lfs f0, 0(r3) /* 80248B38 00245A98 C0 22 B8 80 */ lfs f1, lbl_805AD5A0@sda21(r2) /* 80248B3C 00245A9C D0 1F 00 38 */ stfs f0, 0x38(r31) /* 80248B40 00245AA0 C0 1F 00 38 */ lfs f0, 0x38(r31) /* 80248B44 00245AA4 FC 01 00 00 */ fcmpu cr0, f1, f0 /* 80248B48 00245AA8 40 82 00 0C */ bne lbl_80248B54 /* 80248B4C 00245AAC 38 00 00 08 */ li r0, 8 /* 80248B50 00245AB0 90 1F 00 34 */ stw r0, 0x34(r31) .global lbl_80248B54 lbl_80248B54: /* 80248B54 00245AB4 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0 /* 80248B58 00245AB8 80 01 00 34 */ lwz r0, 0x34(r1) /* 80248B5C 00245ABC CB E1 00 20 */ lfd f31, 0x20(r1) /* 80248B60 00245AC0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80248B64 00245AC4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80248B68 00245AC8 7C 08 03 A6 */ mtlr r0 /* 80248B6C 00245ACC 38 21 00 30 */ addi r1, r1, 0x30 /* 80248B70 00245AD0 4E 80 00 20 */ blr .global IsReady__11CGBASupportFv IsReady__11CGBASupportFv: /* 80248B74 00245AD4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80248B78 00245AD8 7C 08 02 A6 */ mflr r0 /* 80248B7C 00245ADC 90 01 00 14 */ stw r0, 0x14(r1) /* 80248B80 00245AE0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80248B84 00245AE4 7C 7F 1B 78 */ mr r31, r3 /* 80248B88 00245AE8 80 03 00 34 */ lwz r0, 0x34(r3) /* 80248B8C 00245AEC 2C 00 00 00 */ cmpwi r0, 0 /* 80248B90 00245AF0 41 82 00 0C */ beq lbl_80248B9C /* 80248B94 00245AF4 38 60 00 01 */ li r3, 1 /* 80248B98 00245AF8 48 00 00 90 */ b lbl_80248C28 lbl_80248B9C: /* 80248B9C 00245AFC 80 7F 00 30 */ lwz r3, 0x30(r31) /* 80248BA0 00245B00 81 83 00 00 */ lwz r12, 0(r3) /* 80248BA4 00245B04 81 8C 00 10 */ lwz r12, 0x10(r12) /* 80248BA8 00245B08 7D 89 03 A6 */ mtctr r12 /* 80248BAC 00245B0C 4E 80 04 21 */ bctrl /* 80248BB0 00245B10 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80248BB4 00245B14 41 82 00 70 */ beq lbl_80248C24 /* 80248BB8 00245B18 80 7F 00 30 */ lwz r3, 0x30(r31) /* 80248BBC 00245B1C 28 03 00 00 */ cmplwi r3, 0 /* 80248BC0 00245B20 41 82 00 18 */ beq lbl_80248BD8 /* 80248BC4 00245B24 81 83 00 00 */ lwz r12, 0(r3) /* 80248BC8 00245B28 38 80 00 01 */ li r4, 1 /* 80248BCC 00245B2C 81 8C 00 08 */ lwz r12, 8(r12) /* 80248BD0 00245B30 7D 89 03 A6 */ mtctr r12 /* 80248BD4 00245B34 4E 80 04 21 */ bctrl lbl_80248BD8: /* 80248BD8 00245B38 38 60 00 00 */ li r3, 0 /* 80248BDC 00245B3C 38 00 00 01 */ li r0, 1 /* 80248BE0 00245B40 90 7F 00 30 */ stw r3, 0x30(r31) /* 80248BE4 00245B44 90 1F 00 34 */ stw r0, 0x34(r31) /* 80248BE8 00245B48 83 FF 00 2C */ lwz r31, 0x2c(r31) /* 80248BEC 00245B4C 48 13 C7 D5 */ bl OSGetTick /* 80248BF0 00245B50 98 7F 00 C8 */ stb r3, 0xc8(r31) /* 80248BF4 00245B54 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f /* 80248BF8 00245B58 54 66 86 3E */ rlwinm r6, r3, 0x10, 0x18, 0x1f /* 80248BFC 00245B5C 54 65 46 3E */ srwi r5, r3, 0x18 /* 80248C00 00245B60 98 1F 00 C9 */ stb r0, 0xc9(r31) /* 80248C04 00245B64 38 80 00 45 */ li r4, 0x45 /* 80248C08 00245B68 38 00 00 C9 */ li r0, 0xc9 /* 80248C0C 00245B6C 38 60 00 01 */ li r3, 1 /* 80248C10 00245B70 98 DF 00 CA */ stb r6, 0xca(r31) /* 80248C14 00245B74 98 BF 00 CB */ stb r5, 0xcb(r31) /* 80248C18 00245B78 98 9F 00 AF */ stb r4, 0xaf(r31) /* 80248C1C 00245B7C 98 1F 00 BD */ stb r0, 0xbd(r31) /* 80248C20 00245B80 48 00 00 08 */ b lbl_80248C28 lbl_80248C24: /* 80248C24 00245B84 38 60 00 00 */ li r3, 0 lbl_80248C28: /* 80248C28 00245B88 80 01 00 14 */ lwz r0, 0x14(r1) /* 80248C2C 00245B8C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80248C30 00245B90 7C 08 03 A6 */ mtlr r0 /* 80248C34 00245B94 38 21 00 10 */ addi r1, r1, 0x10 /* 80248C38 00245B98 4E 80 00 20 */ blr .global StartLink__11CGBASupportFv StartLink__11CGBASupportFv: /* 80248C3C 00245B9C 38 80 00 02 */ li r4, 2 /* 80248C40 00245BA0 38 00 FF FF */ li r0, -1 /* 80248C44 00245BA4 90 83 00 34 */ stw r4, 0x34(r3) /* 80248C48 00245BA8 90 03 00 40 */ stw r0, 0x40(r3) /* 80248C4C 00245BAC 4E 80 00 20 */ blr .global InitializeSupport__11CGBASupportFv InitializeSupport__11CGBASupportFv: /* 80248C50 00245BB0 38 00 00 01 */ li r0, 1 /* 80248C54 00245BB4 C0 02 B8 80 */ lfs f0, lbl_805AD5A0@sda21(r2) /* 80248C58 00245BB8 90 03 00 34 */ stw r0, 0x34(r3) /* 80248C5C 00245BBC 38 80 00 00 */ li r4, 0 /* 80248C60 00245BC0 38 00 FF FF */ li r0, -1 /* 80248C64 00245BC4 D0 03 00 38 */ stfs f0, 0x38(r3) /* 80248C68 00245BC8 98 83 00 3C */ stb r4, 0x3c(r3) /* 80248C6C 00245BCC 90 03 00 40 */ stw r0, 0x40(r3) /* 80248C70 00245BD0 98 83 00 44 */ stb r4, 0x44(r3) /* 80248C74 00245BD4 98 83 00 45 */ stb r4, 0x45(r3) /* 80248C78 00245BD8 4E 80 00 20 */ blr .global __dt__11CGBASupportFv __dt__11CGBASupportFv: /* 80248C7C 00245BDC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80248C80 00245BE0 7C 08 02 A6 */ mflr r0 /* 80248C84 00245BE4 90 01 00 14 */ stw r0, 0x14(r1) /* 80248C88 00245BE8 93 E1 00 0C */ stw r31, 0xc(r1) /* 80248C8C 00245BEC 7C 9F 23 78 */ mr r31, r4 /* 80248C90 00245BF0 93 C1 00 08 */ stw r30, 8(r1) /* 80248C94 00245BF4 7C 7E 1B 79 */ or. r30, r3, r3 /* 80248C98 00245BF8 41 82 00 60 */ beq lbl_80248CF8 /* 80248C9C 00245BFC 38 60 00 00 */ li r3, 0 /* 80248CA0 00245C00 34 1E 00 30 */ addic. r0, r30, 0x30 /* 80248CA4 00245C04 90 6D A5 50 */ stw r3, lbl_805A9110@sda21(r13) /* 80248CA8 00245C08 41 82 00 24 */ beq lbl_80248CCC /* 80248CAC 00245C0C 80 7E 00 30 */ lwz r3, 0x30(r30) /* 80248CB0 00245C10 28 03 00 00 */ cmplwi r3, 0 /* 80248CB4 00245C14 41 82 00 18 */ beq lbl_80248CCC /* 80248CB8 00245C18 81 83 00 00 */ lwz r12, 0(r3) /* 80248CBC 00245C1C 38 80 00 01 */ li r4, 1 /* 80248CC0 00245C20 81 8C 00 08 */ lwz r12, 8(r12) /* 80248CC4 00245C24 7D 89 03 A6 */ mtctr r12 /* 80248CC8 00245C28 4E 80 04 21 */ bctrl lbl_80248CCC: /* 80248CCC 00245C2C 34 1E 00 2C */ addic. r0, r30, 0x2c /* 80248CD0 00245C30 41 82 00 0C */ beq lbl_80248CDC /* 80248CD4 00245C34 80 7E 00 2C */ lwz r3, 0x2c(r30) /* 80248CD8 00245C38 48 0C CC 59 */ bl Free__7CMemoryFPCv lbl_80248CDC: /* 80248CDC 00245C3C 7F C3 F3 78 */ mr r3, r30 /* 80248CE0 00245C40 38 80 FF FF */ li r4, -1 /* 80248CE4 00245C44 48 10 6F 2D */ bl __dt__8CDvdFileFv /* 80248CE8 00245C48 7F E0 07 35 */ extsh. r0, r31 /* 80248CEC 00245C4C 40 81 00 0C */ ble lbl_80248CF8 /* 80248CF0 00245C50 7F C3 F3 78 */ mr r3, r30 /* 80248CF4 00245C54 48 0C CC 3D */ bl Free__7CMemoryFPCv lbl_80248CF8: /* 80248CF8 00245C58 80 01 00 14 */ lwz r0, 0x14(r1) /* 80248CFC 00245C5C 7F C3 F3 78 */ mr r3, r30 /* 80248D00 00245C60 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80248D04 00245C64 83 C1 00 08 */ lwz r30, 8(r1) /* 80248D08 00245C68 7C 08 03 A6 */ mtlr r0 /* 80248D0C 00245C6C 38 21 00 10 */ addi r1, r1, 0x10 /* 80248D10 00245C70 4E 80 00 20 */ blr .global __ct__11CGBASupportFv __ct__11CGBASupportFv: /* 80248D14 00245C74 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80248D18 00245C78 7C 08 02 A6 */ mflr r0 /* 80248D1C 00245C7C 3C 80 80 3D */ lis r4, lbl_803D4768@ha /* 80248D20 00245C80 90 01 00 24 */ stw r0, 0x24(r1) /* 80248D24 00245C84 38 84 47 68 */ addi r4, r4, lbl_803D4768@l /* 80248D28 00245C88 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80248D2C 00245C8C 7C 7F 1B 78 */ mr r31, r3 /* 80248D30 00245C90 48 10 6F A1 */ bl __ct__8CDvdFileFPCc /* 80248D34 00245C94 80 DF 00 14 */ lwz r6, 0x14(r31) /* 80248D38 00245C98 3C A0 80 3D */ lis r5, lbl_803D4768@ha /* 80248D3C 00245C9C 38 A5 47 68 */ addi r5, r5, lbl_803D4768@l /* 80248D40 00245CA0 3C 80 80 3D */ lis r4, lbl_803D6AA8@ha /* 80248D44 00245CA4 38 06 00 1F */ addi r0, r6, 0x1f /* 80248D48 00245CA8 38 61 00 08 */ addi r3, r1, 8 /* 80248D4C 00245CAC 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a /* 80248D50 00245CB0 38 C4 6A A8 */ addi r6, r4, lbl_803D6AA8@l /* 80248D54 00245CB4 90 1F 00 28 */ stw r0, 0x28(r31) /* 80248D58 00245CB8 38 A5 00 0F */ addi r5, r5, 0xf /* 80248D5C 00245CBC 38 80 FF FF */ li r4, -1 /* 80248D60 00245CC0 48 08 D6 75 */ bl __ct__10CCallStackFUiPCcPCc /* 80248D64 00245CC4 7C 67 1B 78 */ mr r7, r3 /* 80248D68 00245CC8 80 7F 00 28 */ lwz r3, 0x28(r31) /* 80248D6C 00245CCC 38 80 00 02 */ li r4, 2 /* 80248D70 00245CD0 38 A0 00 01 */ li r5, 1 /* 80248D74 00245CD4 38 C0 00 00 */ li r6, 0 /* 80248D78 00245CD8 48 0C CC 1D */ bl Alloc__7CMemoryFUlQ210IAllocator5EHintQ210IAllocator6EScopeQ210IAllocator5ETypeRC10CCallStack /* 80248D7C 00245CDC 90 7F 00 2C */ stw r3, 0x2c(r31) /* 80248D80 00245CE0 7F E3 FB 78 */ mr r3, r31 /* 80248D84 00245CE4 80 9F 00 2C */ lwz r4, 0x2c(r31) /* 80248D88 00245CE8 80 BF 00 28 */ lwz r5, 0x28(r31) /* 80248D8C 00245CEC 48 10 6E 5D */ bl SyncRead__8CDvdFileFPvUi /* 80248D90 00245CF0 90 7F 00 30 */ stw r3, 0x30(r31) /* 80248D94 00245CF4 38 60 00 00 */ li r3, 0 /* 80248D98 00245CF8 C0 02 B8 80 */ lfs f0, lbl_805AD5A0@sda21(r2) /* 80248D9C 00245CFC 38 00 FF FF */ li r0, -1 /* 80248DA0 00245D00 90 7F 00 34 */ stw r3, 0x34(r31) /* 80248DA4 00245D04 D0 1F 00 38 */ stfs f0, 0x38(r31) /* 80248DA8 00245D08 98 7F 00 3C */ stb r3, 0x3c(r31) /* 80248DAC 00245D0C 90 1F 00 40 */ stw r0, 0x40(r31) /* 80248DB0 00245D10 98 7F 00 44 */ stb r3, 0x44(r31) /* 80248DB4 00245D14 98 7F 00 45 */ stb r3, 0x45(r31) /* 80248DB8 00245D18 48 18 08 95 */ bl GBAInit /* 80248DBC 00245D1C 93 ED A5 50 */ stw r31, lbl_805A9110@sda21(r13) /* 80248DC0 00245D20 7F E3 FB 78 */ mr r3, r31 /* 80248DC4 00245D24 80 01 00 24 */ lwz r0, 0x24(r1) /* 80248DC8 00245D28 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80248DCC 00245D2C 7C 08 03 A6 */ mtlr r0 /* 80248DD0 00245D30 38 21 00 20 */ addi r1, r1, 0x20 /* 80248DD4 00245D34 4E 80 00 20 */ blr .global nullsub_130 nullsub_130: /* 80248DD8 00245D38 4E 80 00 20 */ blr