.include "macros.inc" .section .text, "ax" # 0x80005600 - 0x8036FBA0 .global __VIRetraceHandler __VIRetraceHandler: /* 80099638 00096578 7C 08 02 A6 */ mflr r0 /* 8009963C 0009657C 3C 60 CC 00 */ lis r3, 0xCC002000@ha /* 80099640 00096580 90 01 00 04 */ stw r0, 4(r1) /* 80099644 00096584 38 A3 20 00 */ addi r5, r3, 0xCC002000@l /* 80099648 00096588 3C 60 80 3F */ lis r3, regs@ha /* 8009964C 0009658C 94 21 FD 08 */ stwu r1, -0x2f8(r1) /* 80099650 00096590 38 E0 00 00 */ li r7, 0 /* 80099654 00096594 BF 61 02 E4 */ stmw r27, 0x2e4(r1) /* 80099658 00096598 3B C4 00 00 */ addi r30, r4, 0 /* 8009965C 0009659C 3B E3 BD C8 */ addi r31, r3, regs@l /* 80099660 000965A0 A4 C5 00 30 */ lhzu r6, 0x30(r5) /* 80099664 000965A4 54 C0 04 21 */ rlwinm. r0, r6, 0, 0x10, 0x10 /* 80099668 000965A8 41 82 00 10 */ beq lbl_80099678 /* 8009966C 000965AC 54 C0 04 5E */ rlwinm r0, r6, 0, 0x11, 0xf /* 80099670 000965B0 B0 05 00 00 */ sth r0, 0(r5) /* 80099674 000965B4 60 E7 00 01 */ ori r7, r7, 1 lbl_80099678: /* 80099678 000965B8 3C 60 CC 00 */ lis r3, 0xCC002034@ha /* 8009967C 000965BC A4 83 20 34 */ lhzu r4, 0xCC002034@l(r3) /* 80099680 000965C0 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10 /* 80099684 000965C4 41 82 00 10 */ beq lbl_80099694 /* 80099688 000965C8 54 80 04 5E */ rlwinm r0, r4, 0, 0x11, 0xf /* 8009968C 000965CC B0 03 00 00 */ sth r0, 0(r3) /* 80099690 000965D0 60 E7 00 02 */ ori r7, r7, 2 lbl_80099694: /* 80099694 000965D4 3C 60 CC 00 */ lis r3, 0xCC002038@ha /* 80099698 000965D8 A4 83 20 38 */ lhzu r4, 0xCC002038@l(r3) /* 8009969C 000965DC 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10 /* 800996A0 000965E0 41 82 00 10 */ beq lbl_800996B0 /* 800996A4 000965E4 54 80 04 5E */ rlwinm r0, r4, 0, 0x11, 0xf /* 800996A8 000965E8 B0 03 00 00 */ sth r0, 0(r3) /* 800996AC 000965EC 60 E7 00 04 */ ori r7, r7, 4 lbl_800996B0: /* 800996B0 000965F0 3C 60 CC 00 */ lis r3, 0xCC00203C@ha /* 800996B4 000965F4 A4 83 20 3C */ lhzu r4, 0xCC00203C@l(r3) /* 800996B8 000965F8 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10 /* 800996BC 000965FC 41 82 00 10 */ beq lbl_800996CC /* 800996C0 00096600 54 80 04 5E */ rlwinm r0, r4, 0, 0x11, 0xf /* 800996C4 00096604 B0 03 00 00 */ sth r0, 0(r3) /* 800996C8 00096608 60 E7 00 08 */ ori r7, r7, 8 lbl_800996CC: /* 800996CC 0009660C 54 E0 07 7B */ rlwinm. r0, r7, 0, 0x1d, 0x1d /* 800996D0 00096610 40 82 00 0C */ bne lbl_800996DC /* 800996D4 00096614 54 E0 07 39 */ rlwinm. r0, r7, 0, 0x1c, 0x1c /* 800996D8 00096618 41 82 00 10 */ beq lbl_800996E8 lbl_800996DC: /* 800996DC 0009661C 7F C3 F3 78 */ mr r3, r30 /* 800996E0 00096620 4B FF 51 3D */ bl OSSetCurrentContext /* 800996E4 00096624 48 00 01 68 */ b lbl_8009984C lbl_800996E8: /* 800996E8 00096628 80 8D 94 40 */ lwz r4, retraceCount@sda21(r13) /* 800996EC 0009662C 38 61 00 18 */ addi r3, r1, 0x18 /* 800996F0 00096630 38 04 00 01 */ addi r0, r4, 1 /* 800996F4 00096634 90 0D 94 40 */ stw r0, retraceCount@sda21(r13) /* 800996F8 00096638 4B FF 52 ED */ bl OSClearContext /* 800996FC 0009663C 38 61 00 18 */ addi r3, r1, 0x18 /* 80099700 00096640 4B FF 51 1D */ bl OSSetCurrentContext /* 80099704 00096644 81 8D 94 50 */ lwz r12, PreCB@sda21(r13) /* 80099708 00096648 28 0C 00 00 */ cmplwi r12, 0 /* 8009970C 0009664C 41 82 00 10 */ beq lbl_8009971C /* 80099710 00096650 80 6D 94 40 */ lwz r3, retraceCount@sda21(r13) /* 80099714 00096654 7D 88 03 A6 */ mtlr r12 /* 80099718 00096658 4E 80 00 21 */ blrl lbl_8009971C: /* 8009971C 0009665C 80 0D 94 44 */ lwz r0, flushFlag@sda21(r13) /* 80099720 00096660 28 00 00 00 */ cmplwi r0, 0 /* 80099724 00096664 41 82 00 EC */ beq lbl_80099810 /* 80099728 00096668 80 0D 94 70 */ lwz r0, shdwChangeMode@sda21(r13) /* 8009972C 0009666C 28 00 00 01 */ cmplwi r0, 1 /* 80099730 00096670 40 82 00 10 */ bne lbl_80099740 /* 80099734 00096674 48 00 16 E1 */ bl getCurrentFieldEvenOdd /* 80099738 00096678 28 03 00 00 */ cmplwi r3, 0 /* 8009973C 0009667C 41 82 00 BC */ beq lbl_800997F8 lbl_80099740: /* 80099740 00096680 3C 60 CC 00 */ lis r3, 0xCC002000@ha /* 80099744 00096684 3B A3 20 00 */ addi r29, r3, 0xCC002000@l /* 80099748 00096688 48 00 00 78 */ b lbl_800997C0 lbl_8009974C: /* 8009974C 0009668C 80 6D 94 78 */ lwz r3, shdwChanged@sda21(r13) /* 80099750 00096690 38 A0 00 20 */ li r5, 0x20 /* 80099754 00096694 83 6D 94 7C */ lwz r27, lbl_80409F3C@sda21(r13) /* 80099758 00096698 38 9B 00 00 */ addi r4, r27, 0 /* 8009975C 0009669C 4B FE 98 F5 */ bl __shr2u /* 80099760 000966A0 7C 84 00 34 */ cntlzw r4, r4 /* 80099764 000966A4 2C 04 00 20 */ cmpwi r4, 0x20 /* 80099768 000966A8 38 00 FF FF */ li r0, -1 /* 8009976C 000966AC 7F 60 00 38 */ and r0, r27, r0 /* 80099770 000966B0 40 80 00 08 */ bge lbl_80099778 /* 80099774 000966B4 48 00 00 0C */ b lbl_80099780 lbl_80099778: /* 80099778 000966B8 7C 03 00 34 */ cntlzw r3, r0 /* 8009977C 000966BC 38 83 00 20 */ addi r4, r3, 0x20 lbl_80099780: /* 80099780 000966C0 54 86 08 3C */ slwi r6, r4, 1 /* 80099784 000966C4 7C 7F 32 14 */ add r3, r31, r6 /* 80099788 000966C8 A0 03 00 78 */ lhz r0, 0x78(r3) /* 8009978C 000966CC 20 A4 00 3F */ subfic r5, r4, 0x3f /* 80099790 000966D0 38 60 00 00 */ li r3, 0 /* 80099794 000966D4 7C 1D 33 2E */ sthx r0, r29, r6 /* 80099798 000966D8 38 80 00 01 */ li r4, 1 /* 8009979C 000966DC 4B FE 98 91 */ bl __shl2i /* 800997A0 000966E0 80 0D 94 78 */ lwz r0, shdwChanged@sda21(r13) /* 800997A4 000966E4 7C 65 18 F8 */ nor r5, r3, r3 /* 800997A8 000966E8 7C 84 20 F8 */ nor r4, r4, r4 /* 800997AC 000966EC 80 6D 94 7C */ lwz r3, lbl_80409F3C@sda21(r13) /* 800997B0 000966F0 7C 00 28 38 */ and r0, r0, r5 /* 800997B4 000966F4 7C 63 20 38 */ and r3, r3, r4 /* 800997B8 000966F8 90 6D 94 7C */ stw r3, lbl_80409F3C@sda21(r13) /* 800997BC 000966FC 90 0D 94 78 */ stw r0, shdwChanged@sda21(r13) lbl_800997C0: /* 800997C0 00096700 80 0D 94 78 */ lwz r0, shdwChanged@sda21(r13) /* 800997C4 00096704 38 80 00 00 */ li r4, 0 /* 800997C8 00096708 80 6D 94 7C */ lwz r3, lbl_80409F3C@sda21(r13) /* 800997CC 0009670C 7C 00 22 78 */ xor r0, r0, r4 /* 800997D0 00096710 7C 63 22 78 */ xor r3, r3, r4 /* 800997D4 00096714 7C 60 03 79 */ or. r0, r3, r0 /* 800997D8 00096718 40 82 FF 74 */ bne lbl_8009974C /* 800997DC 0009671C 90 8D 94 70 */ stw r4, shdwChangeMode@sda21(r13) /* 800997E0 00096720 38 60 00 01 */ li r3, 1 /* 800997E4 00096724 80 1F 01 44 */ lwz r0, 0x144(r31) /* 800997E8 00096728 90 0D 94 80 */ stw r0, CurrTiming@sda21(r13) /* 800997EC 0009672C 80 1F 01 18 */ lwz r0, 0x118(r31) /* 800997F0 00096730 90 0D 94 84 */ stw r0, CurrTvMode@sda21(r13) /* 800997F4 00096734 48 00 00 08 */ b lbl_800997FC lbl_800997F8: /* 800997F8 00096738 38 60 00 00 */ li r3, 0 lbl_800997FC: /* 800997FC 0009673C 2C 03 00 00 */ cmpwi r3, 0 /* 80099800 00096740 41 82 00 10 */ beq lbl_80099810 /* 80099804 00096744 38 00 00 00 */ li r0, 0 /* 80099808 00096748 90 0D 94 44 */ stw r0, flushFlag@sda21(r13) /* 8009980C 0009674C 48 01 AB F1 */ bl SIRefreshSamplingRate lbl_80099810: /* 80099810 00096750 80 0D 94 54 */ lwz r0, PostCB@sda21(r13) /* 80099814 00096754 28 00 00 00 */ cmplwi r0, 0 /* 80099818 00096758 41 82 00 1C */ beq lbl_80099834 /* 8009981C 0009675C 38 61 00 18 */ addi r3, r1, 0x18 /* 80099820 00096760 4B FF 51 C5 */ bl OSClearContext /* 80099824 00096764 81 8D 94 54 */ lwz r12, PostCB@sda21(r13) /* 80099828 00096768 80 6D 94 40 */ lwz r3, retraceCount@sda21(r13) /* 8009982C 0009676C 7D 88 03 A6 */ mtlr r12 /* 80099830 00096770 4E 80 00 21 */ blrl lbl_80099834: /* 80099834 00096774 38 6D 94 48 */ addi r3, r13, retraceQueue@sda21 /* 80099838 00096778 4B FF A4 B5 */ bl OSWakeupThread /* 8009983C 0009677C 38 61 00 18 */ addi r3, r1, 0x18 /* 80099840 00096780 4B FF 51 A5 */ bl OSClearContext /* 80099844 00096784 7F C3 F3 78 */ mr r3, r30 /* 80099848 00096788 4B FF 4F D5 */ bl OSSetCurrentContext lbl_8009984C: /* 8009984C 0009678C BB 61 02 E4 */ lmw r27, 0x2e4(r1) /* 80099850 00096790 80 01 02 FC */ lwz r0, 0x2fc(r1) /* 80099854 00096794 38 21 02 F8 */ addi r1, r1, 0x2f8 /* 80099858 00096798 7C 08 03 A6 */ mtlr r0 /* 8009985C 0009679C 4E 80 00 20 */ blr .global VISetPostRetraceCallback VISetPostRetraceCallback: /* 80099860 000967A0 7C 08 02 A6 */ mflr r0 /* 80099864 000967A4 90 01 00 04 */ stw r0, 4(r1) /* 80099868 000967A8 94 21 FF E8 */ stwu r1, -0x18(r1) /* 8009986C 000967AC 93 E1 00 14 */ stw r31, 0x14(r1) /* 80099870 000967B0 93 C1 00 10 */ stw r30, 0x10(r1) /* 80099874 000967B4 7C 7E 1B 78 */ mr r30, r3 /* 80099878 000967B8 83 ED 94 54 */ lwz r31, PostCB@sda21(r13) /* 8009987C 000967BC 4B FF 69 51 */ bl OSDisableInterrupts /* 80099880 000967C0 93 CD 94 54 */ stw r30, PostCB@sda21(r13) /* 80099884 000967C4 4B FF 69 71 */ bl OSRestoreInterrupts /* 80099888 000967C8 7F E3 FB 78 */ mr r3, r31 /* 8009988C 000967CC 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80099890 000967D0 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80099894 000967D4 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80099898 000967D8 38 21 00 18 */ addi r1, r1, 0x18 /* 8009989C 000967DC 7C 08 03 A6 */ mtlr r0 /* 800998A0 000967E0 4E 80 00 20 */ blr .global getTiming getTiming: /* 800998A4 000967E4 28 03 00 15 */ cmplwi r3, 0x15 /* 800998A8 000967E8 3C 80 80 3B */ lis r4, timing@ha /* 800998AC 000967EC 38 A4 0F 30 */ addi r5, r4, timing@l /* 800998B0 000967F0 41 81 00 7C */ bgt lbl_8009992C /* 800998B4 000967F4 3C 80 80 3B */ lis r4, "@92"@ha /* 800998B8 000967F8 38 84 10 94 */ addi r4, r4, "@92"@l /* 800998BC 000967FC 54 60 10 3A */ slwi r0, r3, 2 /* 800998C0 00096800 7C 04 00 2E */ lwzx r0, r4, r0 /* 800998C4 00096804 7C 09 03 A6 */ mtctr r0 /* 800998C8 00096808 4E 80 04 20 */ bctr lbl_800998CC: /* 800998CC 0009680C 7C A3 2B 78 */ mr r3, r5 /* 800998D0 00096810 4E 80 00 20 */ blr lbl_800998D4: /* 800998D4 00096814 38 65 00 26 */ addi r3, r5, 0x26 /* 800998D8 00096818 4E 80 00 20 */ blr lbl_800998DC: /* 800998DC 0009681C 38 65 00 4C */ addi r3, r5, 0x4c /* 800998E0 00096820 4E 80 00 20 */ blr lbl_800998E4: /* 800998E4 00096824 38 65 00 72 */ addi r3, r5, 0x72 /* 800998E8 00096828 4E 80 00 20 */ blr lbl_800998EC: /* 800998EC 0009682C 7C A3 2B 78 */ mr r3, r5 /* 800998F0 00096830 4E 80 00 20 */ blr lbl_800998F4: /* 800998F4 00096834 38 65 00 26 */ addi r3, r5, 0x26 /* 800998F8 00096838 4E 80 00 20 */ blr lbl_800998FC: /* 800998FC 0009683C 38 65 00 98 */ addi r3, r5, 0x98 /* 80099900 00096840 4E 80 00 20 */ blr lbl_80099904: /* 80099904 00096844 38 65 00 BE */ addi r3, r5, 0xbe /* 80099908 00096848 4E 80 00 20 */ blr lbl_8009990C: /* 8009990C 0009684C 38 65 00 E4 */ addi r3, r5, 0xe4 /* 80099910 00096850 4E 80 00 20 */ blr lbl_80099914: /* 80099914 00096854 38 65 01 0A */ addi r3, r5, 0x10a /* 80099918 00096858 4E 80 00 20 */ blr lbl_8009991C: /* 8009991C 0009685C 38 65 00 4C */ addi r3, r5, 0x4c /* 80099920 00096860 4E 80 00 20 */ blr lbl_80099924: /* 80099924 00096864 38 65 00 72 */ addi r3, r5, 0x72 /* 80099928 00096868 4E 80 00 20 */ blr lbl_8009992C: /* 8009992C 0009686C 38 60 00 00 */ li r3, 0 /* 80099930 00096870 4E 80 00 20 */ blr .global __VIInit __VIInit: /* 80099934 00096874 7C 08 02 A6 */ mflr r0 /* 80099938 00096878 90 01 00 04 */ stw r0, 4(r1) /* 8009993C 0009687C 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80099940 00096880 93 E1 00 2C */ stw r31, 0x2c(r1) /* 80099944 00096884 54 7F F0 BE */ srwi r31, r3, 2 /* 80099948 00096888 93 C1 00 28 */ stw r30, 0x28(r1) /* 8009994C 0009688C 93 A1 00 24 */ stw r29, 0x24(r1) /* 80099950 00096890 3B A3 00 00 */ addi r29, r3, 0 /* 80099954 00096894 3C 60 80 00 */ lis r3, 0x800000CC@ha /* 80099958 00096898 93 E3 00 CC */ stw r31, 0x800000CC@l(r3) /* 8009995C 0009689C 38 7D 00 00 */ addi r3, r29, 0 /* 80099960 000968A0 57 BE 07 BC */ rlwinm r30, r29, 0, 0x1e, 0x1e /* 80099964 000968A4 4B FF FF 41 */ bl getTiming /* 80099968 000968A8 3C 80 CC 00 */ lis r4, 0xCC002000@ha /* 8009996C 000968AC 38 00 00 02 */ li r0, 2 /* 80099970 000968B0 38 A4 20 00 */ addi r5, r4, 0xCC002000@l /* 80099974 000968B4 B4 05 00 02 */ sthu r0, 2(r5) /* 80099978 000968B8 38 00 00 00 */ li r0, 0 /* 8009997C 000968BC 90 01 00 1C */ stw r0, 0x1c(r1) /* 80099980 000968C0 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80099984 000968C4 28 00 03 E8 */ cmplwi r0, 0x3e8 /* 80099988 000968C8 40 80 00 20 */ bge lbl_800999A8 /* 8009998C 000968CC 48 00 00 10 */ b lbl_8009999C lbl_80099990: /* 80099990 000968D0 80 81 00 1C */ lwz r4, 0x1c(r1) /* 80099994 000968D4 38 04 00 08 */ addi r0, r4, 8 /* 80099998 000968D8 90 01 00 1C */ stw r0, 0x1c(r1) lbl_8009999C: /* 8009999C 000968DC 80 01 00 1C */ lwz r0, 0x1c(r1) /* 800999A0 000968E0 28 00 03 E8 */ cmplwi r0, 0x3e8 /* 800999A4 000968E4 41 80 FF EC */ blt lbl_80099990 lbl_800999A8: /* 800999A8 000968E8 38 00 00 00 */ li r0, 0 /* 800999AC 000968EC B0 05 00 00 */ sth r0, 0(r5) /* 800999B0 000968F0 3D 80 CC 00 */ lis r12, 0xCC002006@ha /* 800999B4 000968F4 39 00 28 28 */ li r8, 0x2828 /* 800999B8 000968F8 A0 C3 00 1A */ lhz r6, 0x1a(r3) /* 800999BC 000968FC 38 E0 00 01 */ li r7, 1 /* 800999C0 00096900 2C 1D 00 02 */ cmpwi r29, 2 /* 800999C4 00096904 B0 CC 20 06 */ sth r6, 0xCC002006@l(r12) /* 800999C8 00096908 38 C0 10 01 */ li r6, 0x1001 /* 800999CC 0009690C 38 8C 20 00 */ addi r4, r12, 0x2000 /* 800999D0 00096910 89 23 00 1D */ lbz r9, 0x1d(r3) /* 800999D4 00096914 89 43 00 1E */ lbz r10, 0x1e(r3) /* 800999D8 00096918 51 2A 44 2E */ rlwimi r10, r9, 8, 0x10, 0x17 /* 800999DC 0009691C B1 4C 20 04 */ sth r10, 0x2004(r12) /* 800999E0 00096920 89 23 00 1F */ lbz r9, 0x1f(r3) /* 800999E4 00096924 89 43 00 1C */ lbz r10, 0x1c(r3) /* 800999E8 00096928 55 29 38 30 */ slwi r9, r9, 7 /* 800999EC 0009692C 7D 49 4B 78 */ or r9, r10, r9 /* 800999F0 00096930 B1 2C 20 0A */ sth r9, 0x200a(r12) /* 800999F4 00096934 A1 23 00 20 */ lhz r9, 0x20(r3) /* 800999F8 00096938 55 29 0C 3C */ rlwinm r9, r9, 1, 0x10, 0x1e /* 800999FC 0009693C B1 2C 20 08 */ sth r9, 0x2008(r12) /* 80099A00 00096940 A1 23 00 02 */ lhz r9, 2(r3) /* 80099A04 00096944 89 63 00 00 */ lbz r11, 0(r3) /* 80099A08 00096948 55 29 08 3C */ slwi r9, r9, 1 /* 80099A0C 0009694C A1 43 00 04 */ lhz r10, 4(r3) /* 80099A10 00096950 39 29 FF FE */ addi r9, r9, -2 /* 80099A14 00096954 B1 6C 20 00 */ sth r11, 0x2000(r12) /* 80099A18 00096958 7D 2A 4A 14 */ add r9, r10, r9 /* 80099A1C 0009695C B1 2C 20 0E */ sth r9, 0x200e(r12) /* 80099A20 00096960 A1 23 00 08 */ lhz r9, 8(r3) /* 80099A24 00096964 39 29 00 02 */ addi r9, r9, 2 /* 80099A28 00096968 B1 2C 20 0C */ sth r9, 0x200c(r12) /* 80099A2C 0009696C A1 23 00 02 */ lhz r9, 2(r3) /* 80099A30 00096970 A1 43 00 06 */ lhz r10, 6(r3) /* 80099A34 00096974 55 29 08 3C */ slwi r9, r9, 1 /* 80099A38 00096978 39 29 FF FE */ addi r9, r9, -2 /* 80099A3C 0009697C 7D 2A 4A 14 */ add r9, r10, r9 /* 80099A40 00096980 B1 2C 20 12 */ sth r9, 0x2012(r12) /* 80099A44 00096984 A1 23 00 0A */ lhz r9, 0xa(r3) /* 80099A48 00096988 39 29 00 02 */ addi r9, r9, 2 /* 80099A4C 0009698C B1 2C 20 10 */ sth r9, 0x2010(r12) /* 80099A50 00096990 A1 23 00 10 */ lhz r9, 0x10(r3) /* 80099A54 00096994 89 43 00 0C */ lbz r10, 0xc(r3) /* 80099A58 00096998 55 29 28 34 */ slwi r9, r9, 5 /* 80099A5C 0009699C 7D 49 4B 78 */ or r9, r10, r9 /* 80099A60 000969A0 B1 2C 20 16 */ sth r9, 0x2016(r12) /* 80099A64 000969A4 A1 23 00 14 */ lhz r9, 0x14(r3) /* 80099A68 000969A8 89 43 00 0E */ lbz r10, 0xe(r3) /* 80099A6C 000969AC 55 29 28 34 */ slwi r9, r9, 5 /* 80099A70 000969B0 7D 49 4B 78 */ or r9, r10, r9 /* 80099A74 000969B4 B1 2C 20 14 */ sth r9, 0x2014(r12) /* 80099A78 000969B8 A1 23 00 12 */ lhz r9, 0x12(r3) /* 80099A7C 000969BC 89 43 00 0D */ lbz r10, 0xd(r3) /* 80099A80 000969C0 55 29 28 34 */ slwi r9, r9, 5 /* 80099A84 000969C4 7D 49 4B 78 */ or r9, r10, r9 /* 80099A88 000969C8 B1 2C 20 1A */ sth r9, 0x201a(r12) /* 80099A8C 000969CC A1 23 00 16 */ lhz r9, 0x16(r3) /* 80099A90 000969D0 89 43 00 0F */ lbz r10, 0xf(r3) /* 80099A94 000969D4 55 29 28 34 */ slwi r9, r9, 5 /* 80099A98 000969D8 7D 49 4B 78 */ or r9, r10, r9 /* 80099A9C 000969DC B1 2C 20 18 */ sth r9, 0x2018(r12) /* 80099AA0 000969E0 B1 0C 20 48 */ sth r8, 0x2048(r12) /* 80099AA4 000969E4 B0 EC 20 36 */ sth r7, 0x2036(r12) /* 80099AA8 000969E8 B0 CC 20 34 */ sth r6, 0x2034(r12) /* 80099AAC 000969EC A0 C3 00 18 */ lhz r6, 0x18(r3) /* 80099AB0 000969F0 A0 63 00 1A */ lhz r3, 0x1a(r3) /* 80099AB4 000969F4 7C C6 0E 70 */ srawi r6, r6, 1 /* 80099AB8 000969F8 38 63 00 01 */ addi r3, r3, 1 /* 80099ABC 000969FC 7C C6 01 94 */ addze r6, r6 /* 80099AC0 00096A00 B0 6C 20 32 */ sth r3, 0x2032(r12) /* 80099AC4 00096A04 38 C6 00 01 */ addi r6, r6, 1 /* 80099AC8 00096A08 60 C3 10 00 */ ori r3, r6, 0x1000 /* 80099ACC 00096A0C B0 6C 20 30 */ sth r3, 0x2030(r12) /* 80099AD0 00096A10 41 82 00 28 */ beq lbl_80099AF8 /* 80099AD4 00096A14 2C 1D 00 03 */ cmpwi r29, 3 /* 80099AD8 00096A18 41 82 00 20 */ beq lbl_80099AF8 /* 80099ADC 00096A1C 57 C3 10 3A */ slwi r3, r30, 2 /* 80099AE0 00096A20 60 66 00 01 */ ori r6, r3, 1 /* 80099AE4 00096A24 57 E3 40 2E */ slwi r3, r31, 8 /* 80099AE8 00096A28 7C C3 1B 78 */ or r3, r6, r3 /* 80099AEC 00096A2C B0 65 00 00 */ sth r3, 0(r5) /* 80099AF0 00096A30 B0 04 00 6C */ sth r0, 0x6c(r4) /* 80099AF4 00096A34 48 00 00 1C */ b lbl_80099B10 lbl_80099AF8: /* 80099AF8 00096A38 57 E0 40 2E */ slwi r0, r31, 8 /* 80099AFC 00096A3C 60 00 00 05 */ ori r0, r0, 5 /* 80099B00 00096A40 B0 05 00 00 */ sth r0, 0(r5) /* 80099B04 00096A44 3C 60 CC 00 */ lis r3, 0xCC00206C@ha /* 80099B08 00096A48 38 00 00 01 */ li r0, 1 /* 80099B0C 00096A4C B0 03 20 6C */ sth r0, 0xCC00206C@l(r3) lbl_80099B10: /* 80099B10 00096A50 80 01 00 34 */ lwz r0, 0x34(r1) /* 80099B14 00096A54 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80099B18 00096A58 83 C1 00 28 */ lwz r30, 0x28(r1) /* 80099B1C 00096A5C 83 A1 00 24 */ lwz r29, 0x24(r1) /* 80099B20 00096A60 38 21 00 30 */ addi r1, r1, 0x30 /* 80099B24 00096A64 7C 08 03 A6 */ mtlr r0 /* 80099B28 00096A68 4E 80 00 20 */ blr .global VIInit VIInit: /* 80099B2C 00096A6C 7C 08 02 A6 */ mflr r0 /* 80099B30 00096A70 3C 60 CC 00 */ lis r3, 0xCC002000@ha /* 80099B34 00096A74 90 01 00 04 */ stw r0, 4(r1) /* 80099B38 00096A78 38 00 00 01 */ li r0, 1 /* 80099B3C 00096A7C 3C 80 80 3B */ lis r4, timing@ha /* 80099B40 00096A80 94 21 FF E8 */ stwu r1, -0x18(r1) /* 80099B44 00096A84 93 E1 00 14 */ stw r31, 0x14(r1) /* 80099B48 00096A88 93 C1 00 10 */ stw r30, 0x10(r1) /* 80099B4C 00096A8C 3B C4 0F 30 */ addi r30, r4, timing@l /* 80099B50 00096A90 93 A1 00 0C */ stw r29, 0xc(r1) /* 80099B54 00096A94 93 81 00 08 */ stw r28, 8(r1) /* 80099B58 00096A98 3B 83 20 00 */ addi r28, r3, 0xCC002000@l /* 80099B5C 00096A9C 3C 60 80 3F */ lis r3, regs@ha /* 80099B60 00096AA0 90 0D 94 58 */ stw r0, encoderType@sda21(r13) /* 80099B64 00096AA4 3B E3 BD C8 */ addi r31, r3, regs@l /* 80099B68 00096AA8 A4 1C 00 02 */ lhzu r0, 2(r28) /* 80099B6C 00096AAC 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80099B70 00096AB0 40 82 00 0C */ bne lbl_80099B7C /* 80099B74 00096AB4 38 60 00 00 */ li r3, 0 /* 80099B78 00096AB8 4B FF FD BD */ bl __VIInit lbl_80099B7C: /* 80099B7C 00096ABC 3B A0 00 00 */ li r29, 0 /* 80099B80 00096AC0 93 AD 94 40 */ stw r29, retraceCount@sda21(r13) /* 80099B84 00096AC4 3C 60 CC 00 */ lis r3, 0xCC002000@ha /* 80099B88 00096AC8 38 63 20 00 */ addi r3, r3, 0xCC002000@l /* 80099B8C 00096ACC 93 AD 94 6C */ stw r29, lbl_80409F2C@sda21(r13) /* 80099B90 00096AD0 38 00 02 80 */ li r0, 0x280 /* 80099B94 00096AD4 93 AD 94 68 */ stw r29, changed@sda21(r13) /* 80099B98 00096AD8 93 AD 94 7C */ stw r29, lbl_80409F3C@sda21(r13) /* 80099B9C 00096ADC 93 AD 94 78 */ stw r29, shdwChanged@sda21(r13) /* 80099BA0 00096AE0 93 AD 94 60 */ stw r29, changeMode@sda21(r13) /* 80099BA4 00096AE4 93 AD 94 70 */ stw r29, shdwChangeMode@sda21(r13) /* 80099BA8 00096AE8 93 AD 94 44 */ stw r29, flushFlag@sda21(r13) /* 80099BAC 00096AEC A0 BE 01 32 */ lhz r5, 0x132(r30) /* 80099BB0 00096AF0 A0 DE 01 30 */ lhz r6, 0x130(r30) /* 80099BB4 00096AF4 54 A5 54 2A */ rlwinm r5, r5, 0xa, 0x10, 0x15 /* 80099BB8 00096AF8 7C C5 2B 78 */ or r5, r6, r5 /* 80099BBC 00096AFC B0 A3 00 4E */ sth r5, 0x4e(r3) /* 80099BC0 00096B00 A0 DE 01 32 */ lhz r6, 0x132(r30) /* 80099BC4 00096B04 A0 BE 01 34 */ lhz r5, 0x134(r30) /* 80099BC8 00096B08 7C C6 36 70 */ srawi r6, r6, 6 /* 80099BCC 00096B0C 54 A5 20 36 */ slwi r5, r5, 4 /* 80099BD0 00096B10 7C C5 2B 78 */ or r5, r6, r5 /* 80099BD4 00096B14 B0 A3 00 4C */ sth r5, 0x4c(r3) /* 80099BD8 00096B18 A0 BE 01 38 */ lhz r5, 0x138(r30) /* 80099BDC 00096B1C A0 DE 01 36 */ lhz r6, 0x136(r30) /* 80099BE0 00096B20 54 A5 54 2A */ rlwinm r5, r5, 0xa, 0x10, 0x15 /* 80099BE4 00096B24 7C C5 2B 78 */ or r5, r6, r5 /* 80099BE8 00096B28 B0 A3 00 52 */ sth r5, 0x52(r3) /* 80099BEC 00096B2C A0 DE 01 38 */ lhz r6, 0x138(r30) /* 80099BF0 00096B30 A0 BE 01 3A */ lhz r5, 0x13a(r30) /* 80099BF4 00096B34 7C C6 36 70 */ srawi r6, r6, 6 /* 80099BF8 00096B38 54 A5 20 36 */ slwi r5, r5, 4 /* 80099BFC 00096B3C 7C C5 2B 78 */ or r5, r6, r5 /* 80099C00 00096B40 B0 A3 00 50 */ sth r5, 0x50(r3) /* 80099C04 00096B44 A0 BE 01 3E */ lhz r5, 0x13e(r30) /* 80099C08 00096B48 A0 DE 01 3C */ lhz r6, 0x13c(r30) /* 80099C0C 00096B4C 54 A5 54 2A */ rlwinm r5, r5, 0xa, 0x10, 0x15 /* 80099C10 00096B50 7C C5 2B 78 */ or r5, r6, r5 /* 80099C14 00096B54 B0 A3 00 56 */ sth r5, 0x56(r3) /* 80099C18 00096B58 A0 BE 01 3E */ lhz r5, 0x13e(r30) /* 80099C1C 00096B5C A0 9E 01 40 */ lhz r4, 0x140(r30) /* 80099C20 00096B60 7C A5 36 70 */ srawi r5, r5, 6 /* 80099C24 00096B64 54 84 20 36 */ slwi r4, r4, 4 /* 80099C28 00096B68 7C A4 23 78 */ or r4, r5, r4 /* 80099C2C 00096B6C B0 83 00 54 */ sth r4, 0x54(r3) /* 80099C30 00096B70 A0 9E 01 44 */ lhz r4, 0x144(r30) /* 80099C34 00096B74 A0 BE 01 42 */ lhz r5, 0x142(r30) /* 80099C38 00096B78 54 84 40 2E */ slwi r4, r4, 8 /* 80099C3C 00096B7C 7C A4 23 78 */ or r4, r5, r4 /* 80099C40 00096B80 B0 83 00 5A */ sth r4, 0x5a(r3) /* 80099C44 00096B84 A0 9E 01 48 */ lhz r4, 0x148(r30) /* 80099C48 00096B88 A0 BE 01 46 */ lhz r5, 0x146(r30) /* 80099C4C 00096B8C 54 84 40 2E */ slwi r4, r4, 8 /* 80099C50 00096B90 7C A4 23 78 */ or r4, r5, r4 /* 80099C54 00096B94 B0 83 00 58 */ sth r4, 0x58(r3) /* 80099C58 00096B98 A0 9E 01 4C */ lhz r4, 0x14c(r30) /* 80099C5C 00096B9C A0 BE 01 4A */ lhz r5, 0x14a(r30) /* 80099C60 00096BA0 54 84 40 2E */ slwi r4, r4, 8 /* 80099C64 00096BA4 7C A4 23 78 */ or r4, r5, r4 /* 80099C68 00096BA8 B0 83 00 5E */ sth r4, 0x5e(r3) /* 80099C6C 00096BAC A0 9E 01 50 */ lhz r4, 0x150(r30) /* 80099C70 00096BB0 A0 BE 01 4E */ lhz r5, 0x14e(r30) /* 80099C74 00096BB4 54 84 40 2E */ slwi r4, r4, 8 /* 80099C78 00096BB8 7C A4 23 78 */ or r4, r5, r4 /* 80099C7C 00096BBC B0 83 00 5C */ sth r4, 0x5c(r3) /* 80099C80 00096BC0 A0 9E 01 54 */ lhz r4, 0x154(r30) /* 80099C84 00096BC4 A0 BE 01 52 */ lhz r5, 0x152(r30) /* 80099C88 00096BC8 54 84 40 2E */ slwi r4, r4, 8 /* 80099C8C 00096BCC 7C A4 23 78 */ or r4, r5, r4 /* 80099C90 00096BD0 B0 83 00 62 */ sth r4, 0x62(r3) /* 80099C94 00096BD4 A0 9E 01 58 */ lhz r4, 0x158(r30) /* 80099C98 00096BD8 A0 BE 01 56 */ lhz r5, 0x156(r30) /* 80099C9C 00096BDC 54 84 40 2E */ slwi r4, r4, 8 /* 80099CA0 00096BE0 7C A4 23 78 */ or r4, r5, r4 /* 80099CA4 00096BE4 B0 83 00 60 */ sth r4, 0x60(r3) /* 80099CA8 00096BE8 A0 9E 01 5C */ lhz r4, 0x15c(r30) /* 80099CAC 00096BEC A0 BE 01 5A */ lhz r5, 0x15a(r30) /* 80099CB0 00096BF0 54 84 40 2E */ slwi r4, r4, 8 /* 80099CB4 00096BF4 7C A4 23 78 */ or r4, r5, r4 /* 80099CB8 00096BF8 B0 83 00 66 */ sth r4, 0x66(r3) /* 80099CBC 00096BFC A0 9E 01 60 */ lhz r4, 0x160(r30) /* 80099CC0 00096C00 A0 BE 01 5E */ lhz r5, 0x15e(r30) /* 80099CC4 00096C04 54 84 40 2E */ slwi r4, r4, 8 /* 80099CC8 00096C08 7C A4 23 78 */ or r4, r5, r4 /* 80099CCC 00096C0C B0 83 00 64 */ sth r4, 0x64(r3) /* 80099CD0 00096C10 B0 03 00 70 */ sth r0, 0x70(r3) /* 80099CD4 00096C14 4B FF 83 89 */ bl __OSLockSram /* 80099CD8 00096C18 88 03 00 10 */ lbz r0, 0x10(r3) /* 80099CDC 00096C1C 38 60 00 00 */ li r3, 0 /* 80099CE0 00096C20 7C 00 07 74 */ extsb r0, r0 /* 80099CE4 00096C24 B3 AD 94 5E */ sth r29, displayOffsetV@sda21(r13) /* 80099CE8 00096C28 B0 0D 94 5C */ sth r0, displayOffsetH@sda21(r13) /* 80099CEC 00096C2C 4B FF 87 31 */ bl __OSUnlockSram /* 80099CF0 00096C30 A3 DC 00 00 */ lhz r30, 0(r28) /* 80099CF4 00096C34 38 7F 01 14 */ addi r3, r31, 0x114 /* 80099CF8 00096C38 3B 9F 01 18 */ addi r28, r31, 0x118 /* 80099CFC 00096C3C 57 C0 F7 FE */ rlwinm r0, r30, 0x1e, 0x1f, 0x1f /* 80099D00 00096C40 90 1F 01 14 */ stw r0, 0x114(r31) /* 80099D04 00096C44 57 C0 C7 BE */ rlwinm r0, r30, 0x18, 0x1e, 0x1f /* 80099D08 00096C48 90 1F 01 18 */ stw r0, 0x118(r31) /* 80099D0C 00096C4C 80 1F 01 18 */ lwz r0, 0x118(r31) /* 80099D10 00096C50 28 00 00 03 */ cmplwi r0, 3 /* 80099D14 00096C54 40 82 00 08 */ bne lbl_80099D1C /* 80099D18 00096C58 48 00 00 08 */ b lbl_80099D20 lbl_80099D1C: /* 80099D1C 00096C5C 7C 1D 03 78 */ mr r29, r0 lbl_80099D20: /* 80099D20 00096C60 80 03 00 00 */ lwz r0, 0(r3) /* 80099D24 00096C64 57 A3 10 3A */ slwi r3, r29, 2 /* 80099D28 00096C68 7C 63 02 14 */ add r3, r3, r0 /* 80099D2C 00096C6C 4B FF FB 79 */ bl getTiming /* 80099D30 00096C70 90 7F 01 44 */ stw r3, 0x144(r31) /* 80099D34 00096C74 38 9F 01 44 */ addi r4, r31, 0x144 /* 80099D38 00096C78 38 00 02 80 */ li r0, 0x280 /* 80099D3C 00096C7C B3 DF 00 02 */ sth r30, 2(r31) /* 80099D40 00096C80 39 00 00 00 */ li r8, 0 /* 80099D44 00096C84 38 DF 00 F6 */ addi r6, r31, 0xf6 /* 80099D48 00096C88 80 84 00 00 */ lwz r4, 0(r4) /* 80099D4C 00096C8C 38 7F 00 F2 */ addi r3, r31, 0xf2 /* 80099D50 00096C90 90 8D 94 80 */ stw r4, CurrTiming@sda21(r13) /* 80099D54 00096C94 80 9C 00 00 */ lwz r4, 0(r28) /* 80099D58 00096C98 90 8D 94 84 */ stw r4, CurrTvMode@sda21(r13) /* 80099D5C 00096C9C B0 1F 00 F4 */ sth r0, 0xf4(r31) /* 80099D60 00096CA0 80 8D 94 80 */ lwz r4, CurrTiming@sda21(r13) /* 80099D64 00096CA4 A4 04 00 02 */ lhzu r0, 2(r4) /* 80099D68 00096CA8 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e /* 80099D6C 00096CAC B0 1F 00 F6 */ sth r0, 0xf6(r31) /* 80099D70 00096CB0 A0 1F 00 F4 */ lhz r0, 0xf4(r31) /* 80099D74 00096CB4 20 00 02 D0 */ subfic r0, r0, 0x2d0 /* 80099D78 00096CB8 7C 00 0E 70 */ srawi r0, r0, 1 /* 80099D7C 00096CBC 7C 00 01 94 */ addze r0, r0 /* 80099D80 00096CC0 B0 1F 00 F0 */ sth r0, 0xf0(r31) /* 80099D84 00096CC4 B1 1F 00 F2 */ sth r8, 0xf2(r31) /* 80099D88 00096CC8 A0 1F 00 F4 */ lhz r0, 0xf4(r31) /* 80099D8C 00096CCC A8 FF 00 F0 */ lha r7, 0xf0(r31) /* 80099D90 00096CD0 A8 AD 94 5C */ lha r5, displayOffsetH@sda21(r13) /* 80099D94 00096CD4 20 00 02 D0 */ subfic r0, r0, 0x2d0 /* 80099D98 00096CD8 A1 24 00 00 */ lhz r9, 0(r4) /* 80099D9C 00096CDC 7C A7 2A 14 */ add r5, r7, r5 /* 80099DA0 00096CE0 7C 05 00 00 */ cmpw r5, r0 /* 80099DA4 00096CE4 40 81 00 08 */ ble lbl_80099DAC /* 80099DA8 00096CE8 48 00 00 18 */ b lbl_80099DC0 lbl_80099DAC: /* 80099DAC 00096CEC 2C 05 00 00 */ cmpwi r5, 0 /* 80099DB0 00096CF0 40 80 00 08 */ bge lbl_80099DB8 /* 80099DB4 00096CF4 48 00 00 08 */ b lbl_80099DBC lbl_80099DB8: /* 80099DB8 00096CF8 7C A8 2B 78 */ mr r8, r5 lbl_80099DBC: /* 80099DBC 00096CFC 7D 00 43 78 */ mr r0, r8 lbl_80099DC0: /* 80099DC0 00096D00 B0 1F 00 F8 */ sth r0, 0xf8(r31) /* 80099DC4 00096D04 39 1F 01 10 */ addi r8, r31, 0x110 /* 80099DC8 00096D08 80 1F 01 10 */ lwz r0, 0x110(r31) /* 80099DCC 00096D0C 2C 00 00 00 */ cmpwi r0, 0 /* 80099DD0 00096D10 40 82 00 0C */ bne lbl_80099DDC /* 80099DD4 00096D14 39 60 00 02 */ li r11, 2 /* 80099DD8 00096D18 48 00 00 08 */ b lbl_80099DE0 lbl_80099DDC: /* 80099DDC 00096D1C 39 60 00 01 */ li r11, 1 lbl_80099DE0: /* 80099DE0 00096D20 A0 03 00 00 */ lhz r0, 0(r3) /* 80099DE4 00096D24 A8 AD 94 5E */ lha r5, displayOffsetV@sda21(r13) /* 80099DE8 00096D28 7C 07 07 34 */ extsh r7, r0 /* 80099DEC 00096D2C 54 00 07 FE */ clrlwi r0, r0, 0x1f /* 80099DF0 00096D30 7C E7 2A 14 */ add r7, r7, r5 /* 80099DF4 00096D34 7C 07 00 00 */ cmpw r7, r0 /* 80099DF8 00096D38 40 81 00 08 */ ble lbl_80099E00 /* 80099DFC 00096D3C 48 00 00 08 */ b lbl_80099E04 lbl_80099E00: /* 80099E00 00096D40 7C 07 03 78 */ mr r7, r0 lbl_80099E04: /* 80099E04 00096D44 B0 FF 00 FA */ sth r7, 0xfa(r31) /* 80099E08 00096D48 7D 27 07 34 */ extsh r7, r9 /* 80099E0C 00096D4C 54 E7 08 3C */ slwi r7, r7, 1 /* 80099E10 00096D50 A3 86 00 00 */ lhz r28, 0(r6) /* 80099E14 00096D54 7D 80 38 50 */ subf r12, r0, r7 /* 80099E18 00096D58 A9 43 00 00 */ lha r10, 0(r3) /* 80099E1C 00096D5C 7F 87 07 34 */ extsh r7, r28 /* 80099E20 00096D60 7D 27 2A 14 */ add r9, r7, r5 /* 80099E24 00096D64 7D 2A 4A 14 */ add r9, r10, r9 /* 80099E28 00096D68 7C EC 48 51 */ subf. r7, r12, r9 /* 80099E2C 00096D6C 40 81 00 0C */ ble lbl_80099E38 /* 80099E30 00096D70 7D 2C 48 50 */ subf r9, r12, r9 /* 80099E34 00096D74 48 00 00 08 */ b lbl_80099E3C lbl_80099E38: /* 80099E38 00096D78 39 20 00 00 */ li r9, 0 lbl_80099E3C: /* 80099E3C 00096D7C 7D 4A 2A 14 */ add r10, r10, r5 /* 80099E40 00096D80 7C E0 50 51 */ subf. r7, r0, r10 /* 80099E44 00096D84 40 80 00 0C */ bge lbl_80099E50 /* 80099E48 00096D88 7C E0 50 50 */ subf r7, r0, r10 /* 80099E4C 00096D8C 48 00 00 08 */ b lbl_80099E54 lbl_80099E50: /* 80099E50 00096D90 38 E0 00 00 */ li r7, 0 lbl_80099E54: /* 80099E54 00096D94 7C FC 3A 14 */ add r7, r28, r7 /* 80099E58 00096D98 7C E9 38 50 */ subf r7, r9, r7 /* 80099E5C 00096D9C B0 FF 00 FC */ sth r7, 0xfc(r31) /* 80099E60 00096DA0 A8 E3 00 00 */ lha r7, 0(r3) /* 80099E64 00096DA4 7D 27 2A 14 */ add r9, r7, r5 /* 80099E68 00096DA8 7C E0 48 51 */ subf. r7, r0, r9 /* 80099E6C 00096DAC 40 80 00 0C */ bge lbl_80099E78 /* 80099E70 00096DB0 7C E0 48 50 */ subf r7, r0, r9 /* 80099E74 00096DB4 48 00 00 08 */ b lbl_80099E7C lbl_80099E78: /* 80099E78 00096DB8 38 E0 00 00 */ li r7, 0 lbl_80099E7C: /* 80099E7C 00096DBC 7D 47 5B D6 */ divw r10, r7, r11 /* 80099E80 00096DC0 38 FF 01 08 */ addi r7, r31, 0x108 /* 80099E84 00096DC4 A1 3F 01 08 */ lhz r9, 0x108(r31) /* 80099E88 00096DC8 7D 2A 48 50 */ subf r9, r10, r9 /* 80099E8C 00096DCC B1 3F 00 FE */ sth r9, 0xfe(r31) /* 80099E90 00096DD0 A8 C6 00 00 */ lha r6, 0(r6) /* 80099E94 00096DD4 A9 23 00 00 */ lha r9, 0(r3) /* 80099E98 00096DD8 7C C6 2A 14 */ add r6, r6, r5 /* 80099E9C 00096DDC 7C C9 32 14 */ add r6, r9, r6 /* 80099EA0 00096DE0 7C 6C 30 51 */ subf. r3, r12, r6 /* 80099EA4 00096DE4 40 81 00 0C */ ble lbl_80099EB0 /* 80099EA8 00096DE8 7C CC 30 50 */ subf r6, r12, r6 /* 80099EAC 00096DEC 48 00 00 08 */ b lbl_80099EB4 lbl_80099EB0: /* 80099EB0 00096DF0 38 C0 00 00 */ li r6, 0 lbl_80099EB4: /* 80099EB4 00096DF4 7C A9 2A 14 */ add r5, r9, r5 /* 80099EB8 00096DF8 7C 60 28 51 */ subf. r3, r0, r5 /* 80099EBC 00096DFC 40 80 00 0C */ bge lbl_80099EC8 /* 80099EC0 00096E00 7C 00 28 50 */ subf r0, r0, r5 /* 80099EC4 00096E04 48 00 00 08 */ b lbl_80099ECC lbl_80099EC8: /* 80099EC8 00096E08 38 00 00 00 */ li r0, 0 lbl_80099ECC: /* 80099ECC 00096E0C 7C 00 5B D6 */ divw r0, r0, r11 /* 80099ED0 00096E10 A0 7F 01 0C */ lhz r3, 0x10c(r31) /* 80099ED4 00096E14 7C 03 02 14 */ add r0, r3, r0 /* 80099ED8 00096E18 7C A6 5B D6 */ divw r5, r6, r11 /* 80099EDC 00096E1C 7C 05 00 50 */ subf r0, r5, r0 /* 80099EE0 00096E20 B0 1F 01 00 */ sth r0, 0x100(r31) /* 80099EE4 00096E24 39 20 02 80 */ li r9, 0x280 /* 80099EE8 00096E28 3B 80 00 00 */ li r28, 0 /* 80099EEC 00096E2C B1 3F 01 02 */ sth r9, 0x102(r31) /* 80099EF0 00096E30 38 A0 00 28 */ li r5, 0x28 /* 80099EF4 00096E34 38 00 00 01 */ li r0, 1 /* 80099EF8 00096E38 A0 C4 00 00 */ lhz r6, 0(r4) /* 80099EFC 00096E3C 38 6D 94 48 */ addi r3, r13, retraceQueue@sda21 /* 80099F00 00096E40 54 C6 0C 3C */ rlwinm r6, r6, 1, 0x10, 0x1e /* 80099F04 00096E44 B0 DF 01 04 */ sth r6, 0x104(r31) /* 80099F08 00096E48 B3 9F 01 06 */ sth r28, 0x106(r31) /* 80099F0C 00096E4C B3 87 00 00 */ sth r28, 0(r7) /* 80099F10 00096E50 B1 3F 01 0A */ sth r9, 0x10a(r31) /* 80099F14 00096E54 A0 84 00 00 */ lhz r4, 0(r4) /* 80099F18 00096E58 54 84 0C 3C */ rlwinm r4, r4, 1, 0x10, 0x1e /* 80099F1C 00096E5C B0 9F 01 0C */ sth r4, 0x10c(r31) /* 80099F20 00096E60 93 88 00 00 */ stw r28, 0(r8) /* 80099F24 00096E64 98 BF 01 1C */ stb r5, 0x11c(r31) /* 80099F28 00096E68 98 BF 01 1D */ stb r5, 0x11d(r31) /* 80099F2C 00096E6C 98 BF 01 1E */ stb r5, 0x11e(r31) /* 80099F30 00096E70 9B 9F 01 2C */ stb r28, 0x12c(r31) /* 80099F34 00096E74 90 1F 01 30 */ stw r0, 0x130(r31) /* 80099F38 00096E78 93 9F 01 34 */ stw r28, 0x134(r31) /* 80099F3C 00096E7C 4B FF 8D 3D */ bl OSInitThreadQueue /* 80099F40 00096E80 3C 60 CC 00 */ lis r3, 0xCC002030@ha /* 80099F44 00096E84 A0 03 20 30 */ lhz r0, 0xCC002030@l(r3) /* 80099F48 00096E88 38 83 20 00 */ addi r4, r3, 0x2000 /* 80099F4C 00096E8C 38 A3 20 00 */ addi r5, r3, 0x2000 /* 80099F50 00096E90 54 00 04 7E */ clrlwi r0, r0, 0x11 /* 80099F54 00096E94 B0 04 00 30 */ sth r0, 0x30(r4) /* 80099F58 00096E98 3C 60 80 0A */ lis r3, __VIRetraceHandler@ha /* 80099F5C 00096E9C 38 83 96 38 */ addi r4, r3, __VIRetraceHandler@l /* 80099F60 00096EA0 A0 05 00 34 */ lhz r0, 0x34(r5) /* 80099F64 00096EA4 38 60 00 18 */ li r3, 0x18 /* 80099F68 00096EA8 54 00 04 7E */ clrlwi r0, r0, 0x11 /* 80099F6C 00096EAC B0 05 00 34 */ sth r0, 0x34(r5) /* 80099F70 00096EB0 93 8D 94 50 */ stw r28, PreCB@sda21(r13) /* 80099F74 00096EB4 93 8D 94 54 */ stw r28, PostCB@sda21(r13) /* 80099F78 00096EB8 4B FF 62 A1 */ bl __OSSetInterruptHandler /* 80099F7C 00096EBC 38 60 00 80 */ li r3, 0x80 /* 80099F80 00096EC0 4B FF 66 9D */ bl __OSUnmaskInterrupts /* 80099F84 00096EC4 80 01 00 1C */ lwz r0, 0x1c(r1) /* 80099F88 00096EC8 83 E1 00 14 */ lwz r31, 0x14(r1) /* 80099F8C 00096ECC 83 C1 00 10 */ lwz r30, 0x10(r1) /* 80099F90 00096ED0 83 A1 00 0C */ lwz r29, 0xc(r1) /* 80099F94 00096ED4 83 81 00 08 */ lwz r28, 8(r1) /* 80099F98 00096ED8 38 21 00 18 */ addi r1, r1, 0x18 /* 80099F9C 00096EDC 7C 08 03 A6 */ mtlr r0 /* 80099FA0 00096EE0 4E 80 00 20 */ blr .global VIWaitForRetrace VIWaitForRetrace: /* 80099FA4 00096EE4 7C 08 02 A6 */ mflr r0 /* 80099FA8 00096EE8 90 01 00 04 */ stw r0, 4(r1) /* 80099FAC 00096EEC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80099FB0 00096EF0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80099FB4 00096EF4 93 C1 00 08 */ stw r30, 8(r1) /* 80099FB8 00096EF8 4B FF 62 15 */ bl OSDisableInterrupts /* 80099FBC 00096EFC 83 CD 94 40 */ lwz r30, retraceCount@sda21(r13) /* 80099FC0 00096F00 7C 7F 1B 78 */ mr r31, r3 lbl_80099FC4: /* 80099FC4 00096F04 38 6D 94 48 */ addi r3, r13, retraceQueue@sda21 /* 80099FC8 00096F08 4B FF 9C 39 */ bl OSSleepThread /* 80099FCC 00096F0C 80 0D 94 40 */ lwz r0, retraceCount@sda21(r13) /* 80099FD0 00096F10 7C 1E 00 40 */ cmplw r30, r0 /* 80099FD4 00096F14 41 82 FF F0 */ beq lbl_80099FC4 /* 80099FD8 00096F18 7F E3 FB 78 */ mr r3, r31 /* 80099FDC 00096F1C 4B FF 62 19 */ bl OSRestoreInterrupts /* 80099FE0 00096F20 80 01 00 14 */ lwz r0, 0x14(r1) /* 80099FE4 00096F24 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80099FE8 00096F28 83 C1 00 08 */ lwz r30, 8(r1) /* 80099FEC 00096F2C 38 21 00 10 */ addi r1, r1, 0x10 /* 80099FF0 00096F30 7C 08 03 A6 */ mtlr r0 /* 80099FF4 00096F34 4E 80 00 20 */ blr .global setFbbRegs setFbbRegs: /* 80099FF8 00096F38 94 21 FF B8 */ stwu r1, -0x48(r1) /* 80099FFC 00096F3C 3D 20 80 3F */ lis r9, regs@ha /* 8009A000 00096F40 39 29 BD C8 */ addi r9, r9, regs@l /* 8009A004 00096F44 93 E1 00 44 */ stw r31, 0x44(r1) /* 8009A008 00096F48 89 03 00 2C */ lbz r8, 0x2c(r3) /* 8009A00C 00096F4C A0 03 00 0E */ lhz r0, 0xe(r3) /* 8009A010 00096F50 55 1F 28 34 */ slwi r31, r8, 5 /* 8009A014 00096F54 A1 03 00 16 */ lhz r8, 0x16(r3) /* 8009A018 00096F58 7C 1F 01 D6 */ mullw r0, r31, r0 /* 8009A01C 00096F5C 81 63 00 20 */ lwz r11, 0x20(r3) /* 8009A020 00096F60 81 43 00 30 */ lwz r10, 0x30(r3) /* 8009A024 00096F64 A1 83 00 0A */ lhz r12, 0xa(r3) /* 8009A028 00096F68 55 08 08 34 */ rlwinm r8, r8, 1, 0, 0x1a /* 8009A02C 00096F6C 7C 08 02 14 */ add r0, r8, r0 /* 8009A030 00096F70 7C 0A 02 14 */ add r0, r10, r0 /* 8009A034 00096F74 2C 0B 00 00 */ cmpwi r11, 0 /* 8009A038 00096F78 90 04 00 00 */ stw r0, 0(r4) /* 8009A03C 00096F7C 40 82 00 0C */ bne lbl_8009A048 /* 8009A040 00096F80 81 04 00 00 */ lwz r8, 0(r4) /* 8009A044 00096F84 48 00 00 0C */ b lbl_8009A050 lbl_8009A048: /* 8009A048 00096F88 80 04 00 00 */ lwz r0, 0(r4) /* 8009A04C 00096F8C 7D 00 FA 14 */ add r8, r0, r31 lbl_8009A050: /* 8009A050 00096F90 7D 80 0E 70 */ srawi r0, r12, 1 /* 8009A054 00096F94 91 05 00 00 */ stw r8, 0(r5) /* 8009A058 00096F98 7C 00 01 94 */ addze r0, r0 /* 8009A05C 00096F9C 54 00 08 3C */ slwi r0, r0, 1 /* 8009A060 00096FA0 7C 00 60 10 */ subfc r0, r0, r12 /* 8009A064 00096FA4 2C 00 00 01 */ cmpwi r0, 1 /* 8009A068 00096FA8 40 82 00 14 */ bne lbl_8009A07C /* 8009A06C 00096FAC 81 04 00 00 */ lwz r8, 0(r4) /* 8009A070 00096FB0 80 05 00 00 */ lwz r0, 0(r5) /* 8009A074 00096FB4 90 04 00 00 */ stw r0, 0(r4) /* 8009A078 00096FB8 91 05 00 00 */ stw r8, 0(r5) lbl_8009A07C: /* 8009A07C 00096FBC 80 04 00 00 */ lwz r0, 0(r4) /* 8009A080 00096FC0 54 00 00 BE */ clrlwi r0, r0, 2 /* 8009A084 00096FC4 90 04 00 00 */ stw r0, 0(r4) /* 8009A088 00096FC8 80 05 00 00 */ lwz r0, 0(r5) /* 8009A08C 00096FCC 54 00 00 BE */ clrlwi r0, r0, 2 /* 8009A090 00096FD0 90 05 00 00 */ stw r0, 0(r5) /* 8009A094 00096FD4 80 03 00 44 */ lwz r0, 0x44(r3) /* 8009A098 00096FD8 2C 00 00 00 */ cmpwi r0, 0 /* 8009A09C 00096FDC 41 82 00 90 */ beq lbl_8009A12C /* 8009A0A0 00096FE0 89 03 00 2C */ lbz r8, 0x2c(r3) /* 8009A0A4 00096FE4 A0 03 00 0E */ lhz r0, 0xe(r3) /* 8009A0A8 00096FE8 55 1F 28 34 */ slwi r31, r8, 5 /* 8009A0AC 00096FEC A1 03 00 16 */ lhz r8, 0x16(r3) /* 8009A0B0 00096FF0 7C 1F 01 D6 */ mullw r0, r31, r0 /* 8009A0B4 00096FF4 81 63 00 20 */ lwz r11, 0x20(r3) /* 8009A0B8 00096FF8 81 43 00 48 */ lwz r10, 0x48(r3) /* 8009A0BC 00096FFC A1 83 00 0A */ lhz r12, 0xa(r3) /* 8009A0C0 00097000 55 08 08 34 */ rlwinm r8, r8, 1, 0, 0x1a /* 8009A0C4 00097004 7C 08 02 14 */ add r0, r8, r0 /* 8009A0C8 00097008 7C 0A 02 14 */ add r0, r10, r0 /* 8009A0CC 0009700C 2C 0B 00 00 */ cmpwi r11, 0 /* 8009A0D0 00097010 90 06 00 00 */ stw r0, 0(r6) /* 8009A0D4 00097014 40 82 00 0C */ bne lbl_8009A0E0 /* 8009A0D8 00097018 81 06 00 00 */ lwz r8, 0(r6) /* 8009A0DC 0009701C 48 00 00 0C */ b lbl_8009A0E8 lbl_8009A0E0: /* 8009A0E0 00097020 80 06 00 00 */ lwz r0, 0(r6) /* 8009A0E4 00097024 7D 00 FA 14 */ add r8, r0, r31 lbl_8009A0E8: /* 8009A0E8 00097028 7D 80 0E 70 */ srawi r0, r12, 1 /* 8009A0EC 0009702C 91 07 00 00 */ stw r8, 0(r7) /* 8009A0F0 00097030 7C 00 01 94 */ addze r0, r0 /* 8009A0F4 00097034 54 00 08 3C */ slwi r0, r0, 1 /* 8009A0F8 00097038 7C 00 60 10 */ subfc r0, r0, r12 /* 8009A0FC 0009703C 2C 00 00 01 */ cmpwi r0, 1 /* 8009A100 00097040 40 82 00 14 */ bne lbl_8009A114 /* 8009A104 00097044 81 06 00 00 */ lwz r8, 0(r6) /* 8009A108 00097048 80 07 00 00 */ lwz r0, 0(r7) /* 8009A10C 0009704C 90 06 00 00 */ stw r0, 0(r6) /* 8009A110 00097050 91 07 00 00 */ stw r8, 0(r7) lbl_8009A114: /* 8009A114 00097054 80 06 00 00 */ lwz r0, 0(r6) /* 8009A118 00097058 54 00 00 BE */ clrlwi r0, r0, 2 /* 8009A11C 0009705C 90 06 00 00 */ stw r0, 0(r6) /* 8009A120 00097060 80 07 00 00 */ lwz r0, 0(r7) /* 8009A124 00097064 54 00 00 BE */ clrlwi r0, r0, 2 /* 8009A128 00097068 90 07 00 00 */ stw r0, 0(r7) lbl_8009A12C: /* 8009A12C 0009706C 80 04 00 00 */ lwz r0, 0(r4) /* 8009A130 00097070 3D 00 01 00 */ lis r8, 0x100 /* 8009A134 00097074 7C 00 40 40 */ cmplw r0, r8 /* 8009A138 00097078 40 80 00 30 */ bge lbl_8009A168 /* 8009A13C 0009707C 80 05 00 00 */ lwz r0, 0(r5) /* 8009A140 00097080 7C 00 40 40 */ cmplw r0, r8 /* 8009A144 00097084 40 80 00 24 */ bge lbl_8009A168 /* 8009A148 00097088 80 06 00 00 */ lwz r0, 0(r6) /* 8009A14C 0009708C 7C 00 40 40 */ cmplw r0, r8 /* 8009A150 00097090 40 80 00 18 */ bge lbl_8009A168 /* 8009A154 00097094 80 07 00 00 */ lwz r0, 0(r7) /* 8009A158 00097098 7C 00 40 40 */ cmplw r0, r8 /* 8009A15C 0009709C 40 80 00 0C */ bge lbl_8009A168 /* 8009A160 000970A0 39 40 00 00 */ li r10, 0 /* 8009A164 000970A4 48 00 00 08 */ b lbl_8009A16C lbl_8009A168: /* 8009A168 000970A8 39 40 00 01 */ li r10, 1 lbl_8009A16C: /* 8009A16C 000970AC 28 0A 00 00 */ cmplwi r10, 0 /* 8009A170 000970B0 41 82 00 34 */ beq lbl_8009A1A4 /* 8009A174 000970B4 80 04 00 00 */ lwz r0, 0(r4) /* 8009A178 000970B8 54 00 D9 7E */ srwi r0, r0, 5 /* 8009A17C 000970BC 90 04 00 00 */ stw r0, 0(r4) /* 8009A180 000970C0 80 05 00 00 */ lwz r0, 0(r5) /* 8009A184 000970C4 54 00 D9 7E */ srwi r0, r0, 5 /* 8009A188 000970C8 90 05 00 00 */ stw r0, 0(r5) /* 8009A18C 000970CC 80 06 00 00 */ lwz r0, 0(r6) /* 8009A190 000970D0 54 00 D9 7E */ srwi r0, r0, 5 /* 8009A194 000970D4 90 06 00 00 */ stw r0, 0(r6) /* 8009A198 000970D8 80 07 00 00 */ lwz r0, 0(r7) /* 8009A19C 000970DC 54 00 D9 7E */ srwi r0, r0, 5 /* 8009A1A0 000970E0 90 07 00 00 */ stw r0, 0(r7) lbl_8009A1A4: /* 8009A1A4 000970E4 80 04 00 00 */ lwz r0, 0(r4) /* 8009A1A8 000970E8 55 4B 60 26 */ slwi r11, r10, 0xc /* 8009A1AC 000970EC 3D 00 00 01 */ lis r8, 1 /* 8009A1B0 000970F0 B0 09 00 1E */ sth r0, 0x1e(r9) /* 8009A1B4 000970F4 3C 00 00 02 */ lis r0, 2 /* 8009A1B8 000970F8 81 4D 94 68 */ lwz r10, changed@sda21(r13) /* 8009A1BC 000970FC 81 8D 94 6C */ lwz r12, lbl_80409F2C@sda21(r13) /* 8009A1C0 00097100 7D 4A 43 78 */ or r10, r10, r8 /* 8009A1C4 00097104 91 8D 94 6C */ stw r12, lbl_80409F2C@sda21(r13) /* 8009A1C8 00097108 91 4D 94 68 */ stw r10, changed@sda21(r13) /* 8009A1CC 0009710C 81 44 00 00 */ lwz r10, 0(r4) /* 8009A1D0 00097110 88 83 00 3C */ lbz r4, 0x3c(r3) /* 8009A1D4 00097114 55 4A 84 3E */ srwi r10, r10, 0x10 /* 8009A1D8 00097118 54 84 40 2E */ slwi r4, r4, 8 /* 8009A1DC 0009711C 7D 44 23 78 */ or r4, r10, r4 /* 8009A1E0 00097120 7D 64 23 78 */ or r4, r11, r4 /* 8009A1E4 00097124 B0 89 00 1C */ sth r4, 0x1c(r9) /* 8009A1E8 00097128 80 8D 94 68 */ lwz r4, changed@sda21(r13) /* 8009A1EC 0009712C 81 4D 94 6C */ lwz r10, lbl_80409F2C@sda21(r13) /* 8009A1F0 00097130 7C 80 03 78 */ or r0, r4, r0 /* 8009A1F4 00097134 91 4D 94 6C */ stw r10, lbl_80409F2C@sda21(r13) /* 8009A1F8 00097138 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A1FC 0009713C 80 05 00 00 */ lwz r0, 0(r5) /* 8009A200 00097140 B0 09 00 26 */ sth r0, 0x26(r9) /* 8009A204 00097144 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A208 00097148 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009A20C 0009714C 60 00 10 00 */ ori r0, r0, 0x1000 /* 8009A210 00097150 90 8D 94 6C */ stw r4, lbl_80409F2C@sda21(r13) /* 8009A214 00097154 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A218 00097158 80 05 00 00 */ lwz r0, 0(r5) /* 8009A21C 0009715C 54 00 84 3E */ srwi r0, r0, 0x10 /* 8009A220 00097160 B0 09 00 24 */ sth r0, 0x24(r9) /* 8009A224 00097164 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A228 00097168 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009A22C 0009716C 60 00 20 00 */ ori r0, r0, 0x2000 /* 8009A230 00097170 90 8D 94 6C */ stw r4, lbl_80409F2C@sda21(r13) /* 8009A234 00097174 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A238 00097178 80 03 00 44 */ lwz r0, 0x44(r3) /* 8009A23C 0009717C 2C 00 00 00 */ cmpwi r0, 0 /* 8009A240 00097180 41 82 00 80 */ beq lbl_8009A2C0 /* 8009A244 00097184 80 66 00 00 */ lwz r3, 0(r6) /* 8009A248 00097188 38 08 80 00 */ addi r0, r8, -32768 /* 8009A24C 0009718C B0 69 00 22 */ sth r3, 0x22(r9) /* 8009A250 00097190 80 6D 94 68 */ lwz r3, changed@sda21(r13) /* 8009A254 00097194 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009A258 00097198 60 63 40 00 */ ori r3, r3, 0x4000 /* 8009A25C 0009719C 90 8D 94 6C */ stw r4, lbl_80409F2C@sda21(r13) /* 8009A260 000971A0 90 6D 94 68 */ stw r3, changed@sda21(r13) /* 8009A264 000971A4 80 66 00 00 */ lwz r3, 0(r6) /* 8009A268 000971A8 54 63 84 3E */ srwi r3, r3, 0x10 /* 8009A26C 000971AC B0 69 00 20 */ sth r3, 0x20(r9) /* 8009A270 000971B0 80 6D 94 68 */ lwz r3, changed@sda21(r13) /* 8009A274 000971B4 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009A278 000971B8 7C 60 03 78 */ or r0, r3, r0 /* 8009A27C 000971BC 90 8D 94 6C */ stw r4, lbl_80409F2C@sda21(r13) /* 8009A280 000971C0 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A284 000971C4 80 07 00 00 */ lwz r0, 0(r7) /* 8009A288 000971C8 B0 09 00 2A */ sth r0, 0x2a(r9) /* 8009A28C 000971CC 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A290 000971D0 80 6D 94 6C */ lwz r3, lbl_80409F2C@sda21(r13) /* 8009A294 000971D4 60 00 04 00 */ ori r0, r0, 0x400 /* 8009A298 000971D8 90 6D 94 6C */ stw r3, lbl_80409F2C@sda21(r13) /* 8009A29C 000971DC 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A2A0 000971E0 80 07 00 00 */ lwz r0, 0(r7) /* 8009A2A4 000971E4 54 00 84 3E */ srwi r0, r0, 0x10 /* 8009A2A8 000971E8 B0 09 00 28 */ sth r0, 0x28(r9) /* 8009A2AC 000971EC 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A2B0 000971F0 80 6D 94 6C */ lwz r3, lbl_80409F2C@sda21(r13) /* 8009A2B4 000971F4 60 00 08 00 */ ori r0, r0, 0x800 /* 8009A2B8 000971F8 90 6D 94 6C */ stw r3, lbl_80409F2C@sda21(r13) /* 8009A2BC 000971FC 90 0D 94 68 */ stw r0, changed@sda21(r13) lbl_8009A2C0: /* 8009A2C0 00097200 83 E1 00 44 */ lwz r31, 0x44(r1) /* 8009A2C4 00097204 38 21 00 48 */ addi r1, r1, 0x48 /* 8009A2C8 00097208 4E 80 00 20 */ blr .global setVerticalRegs setVerticalRegs: /* 8009A2CC 0009720C 94 21 FF D8 */ stwu r1, -0x28(r1) /* 8009A2D0 00097210 54 A0 06 3E */ clrlwi r0, r5, 0x18 /* 8009A2D4 00097214 3D 60 80 3F */ lis r11, regs@ha /* 8009A2D8 00097218 93 E1 00 24 */ stw r31, 0x24(r1) /* 8009A2DC 0009721C 28 00 00 0A */ cmplwi r0, 0xa /* 8009A2E0 00097220 83 E1 00 30 */ lwz r31, 0x30(r1) /* 8009A2E4 00097224 39 6B BD C8 */ addi r11, r11, regs@l /* 8009A2E8 00097228 93 C1 00 20 */ stw r30, 0x20(r1) /* 8009A2EC 0009722C 93 A1 00 1C */ stw r29, 0x1c(r1) /* 8009A2F0 00097230 41 80 00 10 */ blt lbl_8009A300 /* 8009A2F4 00097234 39 80 00 01 */ li r12, 1 /* 8009A2F8 00097238 3B A0 00 02 */ li r29, 2 /* 8009A2FC 0009723C 48 00 00 0C */ b lbl_8009A308 lbl_8009A300: /* 8009A300 00097240 39 80 00 02 */ li r12, 2 /* 8009A304 00097244 3B A0 00 01 */ li r29, 1 lbl_8009A308: /* 8009A308 00097248 54 7E 04 3E */ clrlwi r30, r3, 0x10 /* 8009A30C 0009724C 7F C0 0E 70 */ srawi r0, r30, 1 /* 8009A310 00097250 7C 00 01 94 */ addze r0, r0 /* 8009A314 00097254 54 00 08 3C */ slwi r0, r0, 1 /* 8009A318 00097258 7C 00 F0 11 */ subfc. r0, r0, r30 /* 8009A31C 0009725C 40 82 00 3C */ bne lbl_8009A358 /* 8009A320 00097260 55 83 04 3E */ clrlwi r3, r12, 0x10 /* 8009A324 00097264 54 C0 04 3E */ clrlwi r0, r6, 0x10 /* 8009A328 00097268 7C 03 01 D6 */ mullw r0, r3, r0 /* 8009A32C 0009726C 54 83 04 3E */ clrlwi r3, r4, 0x10 /* 8009A330 00097270 7C 03 00 50 */ subf r0, r3, r0 /* 8009A334 00097274 57 A3 04 3E */ clrlwi r3, r29, 0x10 /* 8009A338 00097278 7F A3 F1 D6 */ mullw r29, r3, r30 /* 8009A33C 0009727C 7C 1E 00 50 */ subf r0, r30, r0 /* 8009A340 00097280 7F C3 01 D6 */ mullw r30, r3, r0 /* 8009A344 00097284 7C 07 EA 14 */ add r0, r7, r29 /* 8009A348 00097288 7C C9 F2 14 */ add r6, r9, r30 /* 8009A34C 0009728C 7C 68 EA 14 */ add r3, r8, r29 /* 8009A350 00097290 7C EA F2 14 */ add r7, r10, r30 /* 8009A354 00097294 48 00 00 38 */ b lbl_8009A38C lbl_8009A358: /* 8009A358 00097298 55 83 04 3E */ clrlwi r3, r12, 0x10 /* 8009A35C 0009729C 54 C0 04 3E */ clrlwi r0, r6, 0x10 /* 8009A360 000972A0 7C 03 01 D6 */ mullw r0, r3, r0 /* 8009A364 000972A4 54 83 04 3E */ clrlwi r3, r4, 0x10 /* 8009A368 000972A8 7C 03 00 50 */ subf r0, r3, r0 /* 8009A36C 000972AC 57 A3 04 3E */ clrlwi r3, r29, 0x10 /* 8009A370 000972B0 7F A3 F1 D6 */ mullw r29, r3, r30 /* 8009A374 000972B4 7C 1E 00 50 */ subf r0, r30, r0 /* 8009A378 000972B8 7F C3 01 D6 */ mullw r30, r3, r0 /* 8009A37C 000972BC 7C 08 EA 14 */ add r0, r8, r29 /* 8009A380 000972C0 7C CA F2 14 */ add r6, r10, r30 /* 8009A384 000972C4 7C 67 EA 14 */ add r3, r7, r29 /* 8009A388 000972C8 7C E9 F2 14 */ add r7, r9, r30 lbl_8009A38C: /* 8009A38C 000972CC 54 88 04 3E */ clrlwi r8, r4, 0x10 /* 8009A390 000972D0 55 84 04 3E */ clrlwi r4, r12, 0x10 /* 8009A394 000972D4 7C 88 23 D6 */ divw r4, r8, r4 /* 8009A398 000972D8 2C 1F 00 00 */ cmpwi r31, 0 /* 8009A39C 000972DC 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 8009A3A0 000972E0 41 82 00 20 */ beq lbl_8009A3C0 /* 8009A3A4 000972E4 54 84 08 3C */ slwi r4, r4, 1 /* 8009A3A8 000972E8 38 84 FF FE */ addi r4, r4, -2 /* 8009A3AC 000972EC 7C 00 22 14 */ add r0, r0, r4 /* 8009A3B0 000972F0 7C 63 22 14 */ add r3, r3, r4 /* 8009A3B4 000972F4 38 80 00 00 */ li r4, 0 /* 8009A3B8 000972F8 38 C6 00 02 */ addi r6, r6, 2 /* 8009A3BC 000972FC 38 E7 00 02 */ addi r7, r7, 2 lbl_8009A3C0: /* 8009A3C0 00097300 54 A5 06 3E */ clrlwi r5, r5, 0x18 /* 8009A3C4 00097304 54 84 23 36 */ rlwinm r4, r4, 4, 0xc, 0x1b /* 8009A3C8 00097308 7C A4 23 78 */ or r4, r5, r4 /* 8009A3CC 0009730C B0 8B 00 00 */ sth r4, 0(r11) /* 8009A3D0 00097310 3C 80 80 00 */ lis r4, 0x8000 /* 8009A3D4 00097314 3D 20 01 00 */ lis r9, 0x100 /* 8009A3D8 00097318 80 AD 94 68 */ lwz r5, changed@sda21(r13) /* 8009A3DC 0009731C 3D 00 02 00 */ lis r8, 0x200 /* 8009A3E0 00097320 81 4D 94 6C */ lwz r10, lbl_80409F2C@sda21(r13) /* 8009A3E4 00097324 7C A4 23 78 */ or r4, r5, r4 /* 8009A3E8 00097328 3C A0 00 40 */ lis r5, 0x40 /* 8009A3EC 0009732C 91 4D 94 6C */ stw r10, lbl_80409F2C@sda21(r13) /* 8009A3F0 00097330 90 8D 94 68 */ stw r4, changed@sda21(r13) /* 8009A3F4 00097334 3C 80 00 80 */ lis r4, 0x80 /* 8009A3F8 00097338 B0 0B 00 0E */ sth r0, 0xe(r11) /* 8009A3FC 0009733C 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A400 00097340 81 4D 94 6C */ lwz r10, lbl_80409F2C@sda21(r13) /* 8009A404 00097344 7C 00 4B 78 */ or r0, r0, r9 /* 8009A408 00097348 91 4D 94 6C */ stw r10, lbl_80409F2C@sda21(r13) /* 8009A40C 0009734C 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A410 00097350 B0 CB 00 0C */ sth r6, 0xc(r11) /* 8009A414 00097354 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A418 00097358 80 CD 94 6C */ lwz r6, lbl_80409F2C@sda21(r13) /* 8009A41C 0009735C 7C 00 43 78 */ or r0, r0, r8 /* 8009A420 00097360 90 CD 94 6C */ stw r6, lbl_80409F2C@sda21(r13) /* 8009A424 00097364 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A428 00097368 B0 6B 00 12 */ sth r3, 0x12(r11) /* 8009A42C 0009736C 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A430 00097370 80 6D 94 6C */ lwz r3, lbl_80409F2C@sda21(r13) /* 8009A434 00097374 7C 00 2B 78 */ or r0, r0, r5 /* 8009A438 00097378 90 6D 94 6C */ stw r3, lbl_80409F2C@sda21(r13) /* 8009A43C 0009737C 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A440 00097380 B0 EB 00 10 */ sth r7, 0x10(r11) /* 8009A444 00097384 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A448 00097388 80 6D 94 6C */ lwz r3, lbl_80409F2C@sda21(r13) /* 8009A44C 0009738C 7C 00 23 78 */ or r0, r0, r4 /* 8009A450 00097390 90 6D 94 6C */ stw r3, lbl_80409F2C@sda21(r13) /* 8009A454 00097394 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A458 00097398 83 E1 00 24 */ lwz r31, 0x24(r1) /* 8009A45C 0009739C 83 C1 00 20 */ lwz r30, 0x20(r1) /* 8009A460 000973A0 83 A1 00 1C */ lwz r29, 0x1c(r1) /* 8009A464 000973A4 38 21 00 28 */ addi r1, r1, 0x28 /* 8009A468 000973A8 4E 80 00 20 */ blr .global VIConfigure VIConfigure: /* 8009A46C 000973AC 7C 08 02 A6 */ mflr r0 /* 8009A470 000973B0 3C A0 80 3B */ lis r5, timing@ha /* 8009A474 000973B4 90 01 00 04 */ stw r0, 4(r1) /* 8009A478 000973B8 3C 80 80 3F */ lis r4, regs@ha /* 8009A47C 000973BC 94 21 FF 88 */ stwu r1, -0x78(r1) /* 8009A480 000973C0 BD C1 00 30 */ stmw r14, 0x30(r1) /* 8009A484 000973C4 3B E3 00 00 */ addi r31, r3, 0 /* 8009A488 000973C8 39 E5 0F 30 */ addi r15, r5, timing@l /* 8009A48C 000973CC 3B A4 BD C8 */ addi r29, r4, regs@l /* 8009A490 000973D0 4B FF 5D 3D */ bl OSDisableInterrupts /* 8009A494 000973D4 80 9F 00 00 */ lwz r4, 0(r31) /* 8009A498 000973D8 3B 9D 01 14 */ addi r28, r29, 0x114 /* 8009A49C 000973DC 80 1D 01 14 */ lwz r0, 0x114(r29) /* 8009A4A0 000973E0 39 C3 00 00 */ addi r14, r3, 0 /* 8009A4A4 000973E4 54 84 07 BE */ clrlwi r4, r4, 0x1e /* 8009A4A8 000973E8 7C 00 20 40 */ cmplw r0, r4 /* 8009A4AC 000973EC 41 82 00 10 */ beq lbl_8009A4BC /* 8009A4B0 000973F0 38 00 00 01 */ li r0, 1 /* 8009A4B4 000973F4 90 0D 94 60 */ stw r0, changeMode@sda21(r13) /* 8009A4B8 000973F8 90 9C 00 00 */ stw r4, 0(r28) lbl_8009A4BC: /* 8009A4BC 000973FC 80 1F 00 00 */ lwz r0, 0(r31) /* 8009A4C0 00097400 3C 60 80 00 */ lis r3, 0x800000CC@ha /* 8009A4C4 00097404 82 23 00 CC */ lwz r17, 0x800000CC@l(r3) /* 8009A4C8 00097408 54 10 F0 BE */ srwi r16, r0, 2 /* 8009A4CC 0009740C 28 10 00 04 */ cmplwi r16, 4 /* 8009A4D0 00097410 40 82 00 6C */ bne lbl_8009A53C /* 8009A4D4 00097414 80 0D 94 8C */ lwz r0, message$332@sda21(r13) /* 8009A4D8 00097418 28 00 00 00 */ cmplwi r0, 0 /* 8009A4DC 0009741C 40 82 00 60 */ bne lbl_8009A53C /* 8009A4E0 00097420 38 00 00 01 */ li r0, 1 /* 8009A4E4 00097424 4C C6 31 82 */ crclr 6 /* 8009A4E8 00097428 90 0D 94 8C */ stw r0, message$332@sda21(r13) /* 8009A4EC 0009742C 38 6F 01 BC */ addi r3, r15, 0x1bc /* 8009A4F0 00097430 4B FF 4A 75 */ bl OSReport /* 8009A4F4 00097434 38 6F 01 E8 */ addi r3, r15, 0x1e8 /* 8009A4F8 00097438 4C C6 31 82 */ crclr 6 /* 8009A4FC 0009743C 4B FF 4A 69 */ bl OSReport /* 8009A500 00097440 38 6F 02 14 */ addi r3, r15, 0x214 /* 8009A504 00097444 4C C6 31 82 */ crclr 6 /* 8009A508 00097448 4B FF 4A 5D */ bl OSReport /* 8009A50C 0009744C 38 6F 02 40 */ addi r3, r15, 0x240 /* 8009A510 00097450 4C C6 31 82 */ crclr 6 /* 8009A514 00097454 4B FF 4A 51 */ bl OSReport /* 8009A518 00097458 38 6F 02 6C */ addi r3, r15, 0x26c /* 8009A51C 0009745C 4C C6 31 82 */ crclr 6 /* 8009A520 00097460 4B FF 4A 45 */ bl OSReport /* 8009A524 00097464 38 6F 02 98 */ addi r3, r15, 0x298 /* 8009A528 00097468 4C C6 31 82 */ crclr 6 /* 8009A52C 0009746C 4B FF 4A 39 */ bl OSReport /* 8009A530 00097470 38 6F 01 BC */ addi r3, r15, 0x1bc /* 8009A534 00097474 4C C6 31 82 */ crclr 6 /* 8009A538 00097478 4B FF 4A 2D */ bl OSReport lbl_8009A53C: /* 8009A53C 0009747C 28 10 00 00 */ cmplwi r16, 0 /* 8009A540 00097480 41 82 00 0C */ beq lbl_8009A54C /* 8009A544 00097484 28 10 00 02 */ cmplwi r16, 2 /* 8009A548 00097488 40 82 00 0C */ bne lbl_8009A554 lbl_8009A54C: /* 8009A54C 0009748C 92 3D 01 18 */ stw r17, 0x118(r29) /* 8009A550 00097490 48 00 00 08 */ b lbl_8009A558 lbl_8009A554: /* 8009A554 00097494 92 1D 01 18 */ stw r16, 0x118(r29) lbl_8009A558: /* 8009A558 00097498 A0 1F 00 0A */ lhz r0, 0xa(r31) /* 8009A55C 0009749C B0 1D 00 F0 */ sth r0, 0xf0(r29) /* 8009A560 000974A0 80 1C 00 00 */ lwz r0, 0(r28) /* 8009A564 000974A4 28 00 00 01 */ cmplwi r0, 1 /* 8009A568 000974A8 40 82 00 10 */ bne lbl_8009A578 /* 8009A56C 000974AC A0 1F 00 0C */ lhz r0, 0xc(r31) /* 8009A570 000974B0 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e /* 8009A574 000974B4 48 00 00 08 */ b lbl_8009A57C lbl_8009A578: /* 8009A578 000974B8 A0 1F 00 0C */ lhz r0, 0xc(r31) lbl_8009A57C: /* 8009A57C 000974BC B0 1D 00 F2 */ sth r0, 0xf2(r29) /* 8009A580 000974C0 3A FD 00 F2 */ addi r23, r29, 0xf2 /* 8009A584 000974C4 3B 1D 00 F4 */ addi r24, r29, 0xf4 /* 8009A588 000974C8 A0 1F 00 0E */ lhz r0, 0xe(r31) /* 8009A58C 000974CC 3B 7D 01 02 */ addi r27, r29, 0x102 /* 8009A590 000974D0 3B 3D 01 10 */ addi r25, r29, 0x110 /* 8009A594 000974D4 B0 1D 00 F4 */ sth r0, 0xf4(r29) /* 8009A598 000974D8 38 00 00 00 */ li r0, 0 /* 8009A59C 000974DC 3A 1D 01 0A */ addi r16, r29, 0x10a /* 8009A5A0 000974E0 A0 7F 00 04 */ lhz r3, 4(r31) /* 8009A5A4 000974E4 3B 5D 01 0C */ addi r26, r29, 0x10c /* 8009A5A8 000974E8 39 FD 01 06 */ addi r15, r29, 0x106 /* 8009A5AC 000974EC B0 7D 01 02 */ sth r3, 0x102(r29) /* 8009A5B0 000974F0 3A 3D 01 08 */ addi r17, r29, 0x108 /* 8009A5B4 000974F4 A0 7F 00 08 */ lhz r3, 8(r31) /* 8009A5B8 000974F8 B0 7D 01 04 */ sth r3, 0x104(r29) /* 8009A5BC 000974FC 80 7F 00 14 */ lwz r3, 0x14(r31) /* 8009A5C0 00097500 90 7D 01 10 */ stw r3, 0x110(r29) /* 8009A5C4 00097504 A0 7D 01 02 */ lhz r3, 0x102(r29) /* 8009A5C8 00097508 B0 7D 01 0A */ sth r3, 0x10a(r29) /* 8009A5CC 0009750C A0 7D 01 04 */ lhz r3, 0x104(r29) /* 8009A5D0 00097510 B0 7D 01 0C */ sth r3, 0x10c(r29) /* 8009A5D4 00097514 B0 1D 01 06 */ sth r0, 0x106(r29) /* 8009A5D8 00097518 B0 1D 01 08 */ sth r0, 0x108(r29) /* 8009A5DC 0009751C 80 1C 00 00 */ lwz r0, 0(r28) /* 8009A5E0 00097520 28 00 00 02 */ cmplwi r0, 2 /* 8009A5E4 00097524 40 82 00 0C */ bne lbl_8009A5F0 /* 8009A5E8 00097528 A0 1A 00 00 */ lhz r0, 0(r26) /* 8009A5EC 0009752C 48 00 00 30 */ b lbl_8009A61C lbl_8009A5F0: /* 8009A5F0 00097530 28 00 00 03 */ cmplwi r0, 3 /* 8009A5F4 00097534 40 82 00 0C */ bne lbl_8009A600 /* 8009A5F8 00097538 A0 1A 00 00 */ lhz r0, 0(r26) /* 8009A5FC 0009753C 48 00 00 20 */ b lbl_8009A61C lbl_8009A600: /* 8009A600 00097540 80 19 00 00 */ lwz r0, 0(r25) /* 8009A604 00097544 2C 00 00 00 */ cmpwi r0, 0 /* 8009A608 00097548 40 82 00 10 */ bne lbl_8009A618 /* 8009A60C 0009754C A0 1A 00 00 */ lhz r0, 0(r26) /* 8009A610 00097550 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e /* 8009A614 00097554 48 00 00 08 */ b lbl_8009A61C lbl_8009A618: /* 8009A618 00097558 A0 1A 00 00 */ lhz r0, 0(r26) lbl_8009A61C: /* 8009A61C 0009755C 3A DD 00 F6 */ addi r22, r29, 0xf6 /* 8009A620 00097560 B0 1D 00 F6 */ sth r0, 0xf6(r29) /* 8009A624 00097564 80 1C 00 00 */ lwz r0, 0(r28) /* 8009A628 00097568 28 00 00 03 */ cmplwi r0, 3 /* 8009A62C 0009756C 40 82 00 0C */ bne lbl_8009A638 /* 8009A630 00097570 38 00 00 01 */ li r0, 1 /* 8009A634 00097574 48 00 00 08 */ b lbl_8009A63C lbl_8009A638: /* 8009A638 00097578 38 00 00 00 */ li r0, 0 lbl_8009A63C: /* 8009A63C 0009757C 3A 5D 01 34 */ addi r18, r29, 0x134 /* 8009A640 00097580 90 1D 01 34 */ stw r0, 0x134(r29) /* 8009A644 00097584 3A BD 01 18 */ addi r21, r29, 0x118 /* 8009A648 00097588 80 7D 01 18 */ lwz r3, 0x118(r29) /* 8009A64C 0009758C 80 1C 00 00 */ lwz r0, 0(r28) /* 8009A650 00097590 54 63 10 3A */ slwi r3, r3, 2 /* 8009A654 00097594 7C 63 02 14 */ add r3, r3, r0 /* 8009A658 00097598 4B FF F2 4D */ bl getTiming /* 8009A65C 0009759C 7C 7E 1B 78 */ mr r30, r3 /* 8009A660 000975A0 93 DD 01 44 */ stw r30, 0x144(r29) /* 8009A664 000975A4 A0 18 00 00 */ lhz r0, 0(r24) /* 8009A668 000975A8 A8 9D 00 F0 */ lha r4, 0xf0(r29) /* 8009A66C 000975AC A8 6D 94 5C */ lha r3, displayOffsetH@sda21(r13) /* 8009A670 000975B0 20 A0 02 D0 */ subfic r5, r0, 0x2d0 /* 8009A674 000975B4 A0 1E 00 02 */ lhz r0, 2(r30) /* 8009A678 000975B8 7C 64 1A 14 */ add r3, r4, r3 /* 8009A67C 000975BC 7C 03 28 00 */ cmpw r3, r5 /* 8009A680 000975C0 40 81 00 08 */ ble lbl_8009A688 /* 8009A684 000975C4 48 00 00 14 */ b lbl_8009A698 lbl_8009A688: /* 8009A688 000975C8 2C 03 00 00 */ cmpwi r3, 0 /* 8009A68C 000975CC 40 80 00 08 */ bge lbl_8009A694 /* 8009A690 000975D0 38 60 00 00 */ li r3, 0 lbl_8009A694: /* 8009A694 000975D4 7C 65 1B 78 */ mr r5, r3 lbl_8009A698: /* 8009A698 000975D8 B0 BD 00 F8 */ sth r5, 0xf8(r29) /* 8009A69C 000975DC 38 7D 00 F8 */ addi r3, r29, 0xf8 /* 8009A6A0 000975E0 80 99 00 00 */ lwz r4, 0(r25) /* 8009A6A4 000975E4 2C 04 00 00 */ cmpwi r4, 0 /* 8009A6A8 000975E8 40 82 00 0C */ bne lbl_8009A6B4 /* 8009A6AC 000975EC 38 80 00 02 */ li r4, 2 /* 8009A6B0 000975F0 48 00 00 08 */ b lbl_8009A6B8 lbl_8009A6B4: /* 8009A6B4 000975F4 38 80 00 01 */ li r4, 1 lbl_8009A6B8: /* 8009A6B8 000975F8 A0 B7 00 00 */ lhz r5, 0(r23) /* 8009A6BC 000975FC A8 CD 94 5E */ lha r6, displayOffsetV@sda21(r13) /* 8009A6C0 00097600 7C A7 07 34 */ extsh r7, r5 /* 8009A6C4 00097604 54 A5 07 FE */ clrlwi r5, r5, 0x1f /* 8009A6C8 00097608 7C E7 32 14 */ add r7, r7, r6 /* 8009A6CC 0009760C 7C 07 28 00 */ cmpw r7, r5 /* 8009A6D0 00097610 40 81 00 08 */ ble lbl_8009A6D8 /* 8009A6D4 00097614 48 00 00 08 */ b lbl_8009A6DC lbl_8009A6D8: /* 8009A6D8 00097618 7C A7 2B 78 */ mr r7, r5 lbl_8009A6DC: /* 8009A6DC 0009761C B0 FD 00 FA */ sth r7, 0xfa(r29) /* 8009A6E0 00097620 7C 00 07 34 */ extsh r0, r0 /* 8009A6E4 00097624 54 00 08 3C */ slwi r0, r0, 1 /* 8009A6E8 00097628 A1 16 00 00 */ lhz r8, 0(r22) /* 8009A6EC 0009762C 7C 05 00 50 */ subf r0, r5, r0 /* 8009A6F0 00097630 A8 F7 00 00 */ lha r7, 0(r23) /* 8009A6F4 00097634 3A 7D 00 FA */ addi r19, r29, 0xfa /* 8009A6F8 00097638 7D 09 07 34 */ extsh r9, r8 /* 8009A6FC 0009763C 7D 49 32 14 */ add r10, r9, r6 /* 8009A700 00097640 7D 47 52 14 */ add r10, r7, r10 /* 8009A704 00097644 7D 20 50 51 */ subf. r9, r0, r10 /* 8009A708 00097648 40 81 00 0C */ ble lbl_8009A714 /* 8009A70C 0009764C 7D 20 50 50 */ subf r9, r0, r10 /* 8009A710 00097650 48 00 00 08 */ b lbl_8009A718 lbl_8009A714: /* 8009A714 00097654 39 20 00 00 */ li r9, 0 lbl_8009A718: /* 8009A718 00097658 7D 47 32 14 */ add r10, r7, r6 /* 8009A71C 0009765C 7C E5 50 51 */ subf. r7, r5, r10 /* 8009A720 00097660 40 80 00 0C */ bge lbl_8009A72C /* 8009A724 00097664 7C E5 50 50 */ subf r7, r5, r10 /* 8009A728 00097668 48 00 00 08 */ b lbl_8009A730 lbl_8009A72C: /* 8009A72C 0009766C 38 E0 00 00 */ li r7, 0 lbl_8009A730: /* 8009A730 00097670 7C E8 3A 14 */ add r7, r8, r7 /* 8009A734 00097674 7C E9 38 50 */ subf r7, r9, r7 /* 8009A738 00097678 3A 9D 00 FC */ addi r20, r29, 0xfc /* 8009A73C 0009767C B0 FD 00 FC */ sth r7, 0xfc(r29) /* 8009A740 00097680 A8 F7 00 00 */ lha r7, 0(r23) /* 8009A744 00097684 7D 07 32 14 */ add r8, r7, r6 /* 8009A748 00097688 7C E5 40 51 */ subf. r7, r5, r8 /* 8009A74C 0009768C 40 80 00 0C */ bge lbl_8009A758 /* 8009A750 00097690 7C E5 40 50 */ subf r7, r5, r8 /* 8009A754 00097694 48 00 00 08 */ b lbl_8009A75C lbl_8009A758: /* 8009A758 00097698 38 E0 00 00 */ li r7, 0 lbl_8009A75C: /* 8009A75C 0009769C 7D 07 23 D6 */ divw r8, r7, r4 /* 8009A760 000976A0 A0 F1 00 00 */ lhz r7, 0(r17) /* 8009A764 000976A4 7C E8 38 50 */ subf r7, r8, r7 /* 8009A768 000976A8 B0 FD 00 FE */ sth r7, 0xfe(r29) /* 8009A76C 000976AC A8 F6 00 00 */ lha r7, 0(r22) /* 8009A770 000976B0 A9 37 00 00 */ lha r9, 0(r23) /* 8009A774 000976B4 7D 07 32 14 */ add r8, r7, r6 /* 8009A778 000976B8 7D 09 42 14 */ add r8, r9, r8 /* 8009A77C 000976BC 7C E0 40 51 */ subf. r7, r0, r8 /* 8009A780 000976C0 40 81 00 0C */ ble lbl_8009A78C /* 8009A784 000976C4 7C E0 40 50 */ subf r7, r0, r8 /* 8009A788 000976C8 48 00 00 08 */ b lbl_8009A790 lbl_8009A78C: /* 8009A78C 000976CC 38 E0 00 00 */ li r7, 0 lbl_8009A790: /* 8009A790 000976D0 7C C9 32 14 */ add r6, r9, r6 /* 8009A794 000976D4 7C 05 30 51 */ subf. r0, r5, r6 /* 8009A798 000976D8 40 80 00 0C */ bge lbl_8009A7A4 /* 8009A79C 000976DC 7C 05 30 50 */ subf r0, r5, r6 /* 8009A7A0 000976E0 48 00 00 08 */ b lbl_8009A7A8 lbl_8009A7A4: /* 8009A7A4 000976E4 38 00 00 00 */ li r0, 0 lbl_8009A7A8: /* 8009A7A8 000976E8 7C 00 23 D6 */ divw r0, r0, r4 /* 8009A7AC 000976EC A0 BA 00 00 */ lhz r5, 0(r26) /* 8009A7B0 000976F0 7C 87 23 D6 */ divw r4, r7, r4 /* 8009A7B4 000976F4 7C 05 02 14 */ add r0, r5, r0 /* 8009A7B8 000976F8 7C 04 00 50 */ subf r0, r4, r0 /* 8009A7BC 000976FC B0 1D 01 00 */ sth r0, 0x100(r29) /* 8009A7C0 00097700 80 0D 94 58 */ lwz r0, encoderType@sda21(r13) /* 8009A7C4 00097704 28 00 00 00 */ cmplwi r0, 0 /* 8009A7C8 00097708 40 82 00 0C */ bne lbl_8009A7D4 /* 8009A7CC 0009770C 38 00 00 03 */ li r0, 3 /* 8009A7D0 00097710 90 15 00 00 */ stw r0, 0(r21) lbl_8009A7D4: /* 8009A7D4 00097714 A0 BE 00 18 */ lhz r5, 0x18(r30) /* 8009A7D8 00097718 7C A4 0E 70 */ srawi r4, r5, 1 /* 8009A7DC 0009771C 7C 84 01 94 */ addze r4, r4 /* 8009A7E0 00097720 7C A0 0E 70 */ srawi r0, r5, 1 /* 8009A7E4 00097724 7C 00 01 94 */ addze r0, r0 /* 8009A7E8 00097728 54 00 08 3C */ slwi r0, r0, 1 /* 8009A7EC 0009772C 7C 00 28 10 */ subfc r0, r0, r5 /* 8009A7F0 00097730 54 00 04 3F */ clrlwi. r0, r0, 0x10 /* 8009A7F4 00097734 54 84 04 3E */ clrlwi r4, r4, 0x10 /* 8009A7F8 00097738 41 82 00 0C */ beq lbl_8009A804 /* 8009A7FC 0009773C A0 BE 00 1A */ lhz r5, 0x1a(r30) /* 8009A800 00097740 48 00 00 08 */ b lbl_8009A808 lbl_8009A804: /* 8009A804 00097744 38 A0 00 00 */ li r5, 0 lbl_8009A808: /* 8009A808 00097748 38 05 00 01 */ addi r0, r5, 1 /* 8009A80C 0009774C B0 1D 00 32 */ sth r0, 0x32(r29) /* 8009A810 00097750 38 04 00 01 */ addi r0, r4, 1 /* 8009A814 00097754 60 00 10 00 */ ori r0, r0, 0x1000 /* 8009A818 00097758 80 AD 94 68 */ lwz r5, changed@sda21(r13) /* 8009A81C 0009775C 38 9D 00 02 */ addi r4, r29, 2 /* 8009A820 00097760 80 CD 94 6C */ lwz r6, lbl_80409F2C@sda21(r13) /* 8009A824 00097764 60 A5 00 40 */ ori r5, r5, 0x40 /* 8009A828 00097768 90 CD 94 6C */ stw r6, lbl_80409F2C@sda21(r13) /* 8009A82C 0009776C 90 AD 94 68 */ stw r5, changed@sda21(r13) /* 8009A830 00097770 B0 1D 00 30 */ sth r0, 0x30(r29) /* 8009A834 00097774 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009A838 00097778 80 AD 94 6C */ lwz r5, lbl_80409F2C@sda21(r13) /* 8009A83C 0009777C 60 00 00 80 */ ori r0, r0, 0x80 /* 8009A840 00097780 90 AD 94 6C */ stw r5, lbl_80409F2C@sda21(r13) /* 8009A844 00097784 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A848 00097788 80 1C 00 00 */ lwz r0, 0(r28) /* 8009A84C 0009778C A0 BD 00 02 */ lhz r5, 2(r29) /* 8009A850 00097790 28 00 00 02 */ cmplwi r0, 2 /* 8009A854 00097794 41 82 00 0C */ beq lbl_8009A860 /* 8009A858 00097798 28 00 00 03 */ cmplwi r0, 3 /* 8009A85C 0009779C 40 82 00 10 */ bne lbl_8009A86C lbl_8009A860: /* 8009A860 000977A0 54 A0 07 B8 */ rlwinm r0, r5, 0, 0x1e, 0x1c /* 8009A864 000977A4 60 05 00 04 */ ori r5, r0, 4 /* 8009A868 000977A8 48 00 00 0C */ b lbl_8009A874 lbl_8009A86C: /* 8009A86C 000977AC 54 A5 07 B8 */ rlwinm r5, r5, 0, 0x1e, 0x1c /* 8009A870 000977B0 50 05 17 7A */ rlwimi r5, r0, 2, 0x1d, 0x1d lbl_8009A874: /* 8009A874 000977B4 80 D5 00 00 */ lwz r6, 0(r21) /* 8009A878 000977B8 54 A5 07 76 */ rlwinm r5, r5, 0, 0x1d, 0x1b /* 8009A87C 000977BC 80 F2 00 00 */ lwz r7, 0(r18) /* 8009A880 000977C0 28 06 00 04 */ cmplwi r6, 4 /* 8009A884 000977C4 54 E0 18 38 */ slwi r0, r7, 3 /* 8009A888 000977C8 7C A0 03 78 */ or r0, r5, r0 /* 8009A88C 000977CC 41 82 00 0C */ beq lbl_8009A898 /* 8009A890 000977D0 28 06 00 05 */ cmplwi r6, 5 /* 8009A894 000977D4 40 82 00 0C */ bne lbl_8009A8A0 lbl_8009A898: /* 8009A898 000977D8 54 00 06 2A */ rlwinm r0, r0, 0, 0x18, 0x15 /* 8009A89C 000977DC 48 00 00 10 */ b lbl_8009A8AC lbl_8009A8A0: /* 8009A8A0 000977E0 54 05 06 2A */ rlwinm r5, r0, 0, 0x18, 0x15 /* 8009A8A4 000977E4 54 C0 40 2E */ slwi r0, r6, 8 /* 8009A8A8 000977E8 7C A0 03 78 */ or r0, r5, r0 lbl_8009A8AC: /* 8009A8AC 000977EC B0 04 00 00 */ sth r0, 0(r4) /* 8009A8B0 000977F0 3C 00 40 00 */ lis r0, 0x4000 /* 8009A8B4 000977F4 38 DD 00 6C */ addi r6, r29, 0x6c /* 8009A8B8 000977F8 80 8D 94 68 */ lwz r4, changed@sda21(r13) /* 8009A8BC 000977FC 80 AD 94 6C */ lwz r5, lbl_80409F2C@sda21(r13) /* 8009A8C0 00097800 7C 80 03 78 */ or r0, r4, r0 /* 8009A8C4 00097804 90 AD 94 6C */ stw r5, lbl_80409F2C@sda21(r13) /* 8009A8C8 00097808 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009A8CC 0009780C 80 1F 00 00 */ lwz r0, 0(r31) /* 8009A8D0 00097810 A0 9D 00 6C */ lhz r4, 0x6c(r29) /* 8009A8D4 00097814 2C 00 00 02 */ cmpwi r0, 2 /* 8009A8D8 00097818 41 82 00 0C */ beq lbl_8009A8E4 /* 8009A8DC 0009781C 2C 00 00 03 */ cmpwi r0, 3 /* 8009A8E0 00097820 40 82 00 10 */ bne lbl_8009A8F0 lbl_8009A8E4: /* 8009A8E4 00097824 54 80 00 3C */ rlwinm r0, r4, 0, 0, 0x1e /* 8009A8E8 00097828 60 00 00 01 */ ori r0, r0, 1 /* 8009A8EC 0009782C 48 00 00 08 */ b lbl_8009A8F4 lbl_8009A8F0: /* 8009A8F0 00097830 54 80 00 3C */ rlwinm r0, r4, 0, 0, 0x1e lbl_8009A8F4: /* 8009A8F4 00097834 B0 06 00 00 */ sth r0, 0(r6) /* 8009A8F8 00097838 2C 07 00 00 */ cmpwi r7, 0 /* 8009A8FC 0009783C 80 8D 94 68 */ lwz r4, changed@sda21(r13) /* 8009A900 00097840 80 0D 94 6C */ lwz r0, lbl_80409F2C@sda21(r13) /* 8009A904 00097844 60 00 02 00 */ ori r0, r0, 0x200 /* 8009A908 00097848 90 0D 94 6C */ stw r0, lbl_80409F2C@sda21(r13) /* 8009A90C 0009784C 90 8D 94 68 */ stw r4, changed@sda21(r13) /* 8009A910 00097850 A0 98 00 00 */ lhz r4, 0(r24) /* 8009A914 00097854 A0 B0 00 00 */ lhz r5, 0(r16) /* 8009A918 00097858 41 82 00 0C */ beq lbl_8009A924 /* 8009A91C 0009785C 54 A0 08 3C */ slwi r0, r5, 1 /* 8009A920 00097860 48 00 00 08 */ b lbl_8009A928 lbl_8009A924: /* 8009A924 00097864 7C A0 2B 78 */ mr r0, r5 lbl_8009A928: /* 8009A928 00097868 54 08 04 3E */ clrlwi r8, r0, 0x10 /* 8009A92C 0009786C 7C 08 20 40 */ cmplw r8, r4 /* 8009A930 00097870 40 80 00 50 */ bge lbl_8009A980 /* 8009A934 00097874 55 06 40 2E */ slwi r6, r8, 8 /* 8009A938 00097878 38 06 FF FF */ addi r0, r6, -1 /* 8009A93C 0009787C 7C 04 02 14 */ add r0, r4, r0 /* 8009A940 00097880 7C 00 23 96 */ divwu r0, r0, r4 /* 8009A944 00097884 60 00 10 00 */ ori r0, r0, 0x1000 /* 8009A948 00097888 B0 1D 00 4A */ sth r0, 0x4a(r29) /* 8009A94C 0009788C 3C 00 04 00 */ lis r0, 0x400 /* 8009A950 00097890 80 CD 94 68 */ lwz r6, changed@sda21(r13) /* 8009A954 00097894 80 ED 94 6C */ lwz r7, lbl_80409F2C@sda21(r13) /* 8009A958 00097898 7C E0 03 78 */ or r0, r7, r0 /* 8009A95C 0009789C 90 0D 94 6C */ stw r0, lbl_80409F2C@sda21(r13) /* 8009A960 000978A0 90 CD 94 68 */ stw r6, changed@sda21(r13) /* 8009A964 000978A4 B1 1D 00 70 */ sth r8, 0x70(r29) /* 8009A968 000978A8 80 CD 94 68 */ lwz r6, changed@sda21(r13) /* 8009A96C 000978AC 80 0D 94 6C */ lwz r0, lbl_80409F2C@sda21(r13) /* 8009A970 000978B0 60 00 00 80 */ ori r0, r0, 0x80 /* 8009A974 000978B4 90 0D 94 6C */ stw r0, lbl_80409F2C@sda21(r13) /* 8009A978 000978B8 90 CD 94 68 */ stw r6, changed@sda21(r13) /* 8009A97C 000978BC 48 00 00 24 */ b lbl_8009A9A0 lbl_8009A980: /* 8009A980 000978C0 38 00 01 00 */ li r0, 0x100 /* 8009A984 000978C4 B0 1D 00 4A */ sth r0, 0x4a(r29) /* 8009A988 000978C8 3C 00 04 00 */ lis r0, 0x400 /* 8009A98C 000978CC 80 CD 94 68 */ lwz r6, changed@sda21(r13) /* 8009A990 000978D0 80 ED 94 6C */ lwz r7, lbl_80409F2C@sda21(r13) /* 8009A994 000978D4 7C E0 03 78 */ or r0, r7, r0 /* 8009A998 000978D8 90 0D 94 6C */ stw r0, lbl_80409F2C@sda21(r13) /* 8009A99C 000978DC 90 CD 94 68 */ stw r6, changed@sda21(r13) lbl_8009A9A0: /* 8009A9A0 000978E0 A0 03 00 00 */ lhz r0, 0(r3) /* 8009A9A4 000978E4 21 84 02 D0 */ subfic r12, r4, 0x2d0 /* 8009A9A8 000978E8 A0 DE 00 1A */ lhz r6, 0x1a(r30) /* 8009A9AC 000978EC 3C 60 10 00 */ lis r3, 0x1000 /* 8009A9B0 000978F0 3D 00 20 00 */ lis r8, 0x2000 /* 8009A9B4 000978F4 B0 DD 00 06 */ sth r6, 6(r29) /* 8009A9B8 000978F8 3D 20 04 00 */ lis r9, 0x400 /* 8009A9BC 000978FC 3C E0 08 00 */ lis r7, 0x800 /* 8009A9C0 00097900 81 4D 94 68 */ lwz r10, changed@sda21(r13) /* 8009A9C4 00097904 3C C0 00 10 */ lis r6, 0x10 /* 8009A9C8 00097908 3C 80 00 20 */ lis r4, 0x20 /* 8009A9CC 0009790C 81 6D 94 6C */ lwz r11, lbl_80409F2C@sda21(r13) /* 8009A9D0 00097910 7D 4A 1B 78 */ or r10, r10, r3 /* 8009A9D4 00097914 3C 60 00 04 */ lis r3, 4 /* 8009A9D8 00097918 91 6D 94 6C */ stw r11, lbl_80409F2C@sda21(r13) /* 8009A9DC 0009791C 91 4D 94 68 */ stw r10, changed@sda21(r13) /* 8009A9E0 00097920 89 5E 00 1D */ lbz r10, 0x1d(r30) /* 8009A9E4 00097924 89 7E 00 1E */ lbz r11, 0x1e(r30) /* 8009A9E8 00097928 51 4B 44 2E */ rlwimi r11, r10, 8, 0x10, 0x17 /* 8009A9EC 0009792C B1 7D 00 04 */ sth r11, 4(r29) /* 8009A9F0 00097930 81 4D 94 68 */ lwz r10, changed@sda21(r13) /* 8009A9F4 00097934 81 6D 94 6C */ lwz r11, lbl_80409F2C@sda21(r13) /* 8009A9F8 00097938 7D 48 43 78 */ or r8, r10, r8 /* 8009A9FC 0009793C 91 6D 94 6C */ stw r11, lbl_80409F2C@sda21(r13) /* 8009AA00 00097940 91 0D 94 68 */ stw r8, changed@sda21(r13) /* 8009AA04 00097944 89 1E 00 1F */ lbz r8, 0x1f(r30) /* 8009AA08 00097948 89 5E 00 1C */ lbz r10, 0x1c(r30) /* 8009AA0C 0009794C 7E 08 02 14 */ add r16, r8, r0 /* 8009AA10 00097950 A1 7E 00 20 */ lhz r11, 0x20(r30) /* 8009AA14 00097954 3A 10 FF D8 */ addi r16, r16, -40 /* 8009AA18 00097958 56 08 3C 30 */ rlwinm r8, r16, 7, 0x10, 0x18 /* 8009AA1C 0009795C 7D 48 43 78 */ or r8, r10, r8 /* 8009AA20 00097960 B1 1D 00 0A */ sth r8, 0xa(r29) /* 8009AA24 00097964 7D 0B 02 14 */ add r8, r11, r0 /* 8009AA28 00097968 38 08 00 28 */ addi r0, r8, 0x28 /* 8009AA2C 0009796C 81 4D 94 68 */ lwz r10, changed@sda21(r13) /* 8009AA30 00097970 7C 0C 00 50 */ subf r0, r12, r0 /* 8009AA34 00097974 56 08 BA 7E */ srwi r8, r16, 9 /* 8009AA38 00097978 81 6D 94 6C */ lwz r11, lbl_80409F2C@sda21(r13) /* 8009AA3C 0009797C 54 00 08 3C */ slwi r0, r0, 1 /* 8009AA40 00097980 7D 49 4B 78 */ or r9, r10, r9 /* 8009AA44 00097984 91 6D 94 6C */ stw r11, lbl_80409F2C@sda21(r13) /* 8009AA48 00097988 7D 00 03 78 */ or r0, r8, r0 /* 8009AA4C 0009798C 91 2D 94 68 */ stw r9, changed@sda21(r13) /* 8009AA50 00097990 B0 1D 00 08 */ sth r0, 8(r29) /* 8009AA54 00097994 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009AA58 00097998 81 0D 94 6C */ lwz r8, lbl_80409F2C@sda21(r13) /* 8009AA5C 0009799C 7C 00 3B 78 */ or r0, r0, r7 /* 8009AA60 000979A0 91 0D 94 6C */ stw r8, lbl_80409F2C@sda21(r13) /* 8009AA64 000979A4 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009AA68 000979A8 A0 1E 00 10 */ lhz r0, 0x10(r30) /* 8009AA6C 000979AC 88 FE 00 0C */ lbz r7, 0xc(r30) /* 8009AA70 000979B0 54 00 28 34 */ slwi r0, r0, 5 /* 8009AA74 000979B4 7C E0 03 78 */ or r0, r7, r0 /* 8009AA78 000979B8 B0 1D 00 16 */ sth r0, 0x16(r29) /* 8009AA7C 000979BC 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009AA80 000979C0 80 ED 94 6C */ lwz r7, lbl_80409F2C@sda21(r13) /* 8009AA84 000979C4 7C 00 33 78 */ or r0, r0, r6 /* 8009AA88 000979C8 90 ED 94 6C */ stw r7, lbl_80409F2C@sda21(r13) /* 8009AA8C 000979CC 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009AA90 000979D0 A0 1E 00 14 */ lhz r0, 0x14(r30) /* 8009AA94 000979D4 88 DE 00 0E */ lbz r6, 0xe(r30) /* 8009AA98 000979D8 54 00 28 34 */ slwi r0, r0, 5 /* 8009AA9C 000979DC 7C C0 03 78 */ or r0, r6, r0 /* 8009AAA0 000979E0 B0 1D 00 14 */ sth r0, 0x14(r29) /* 8009AAA4 000979E4 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009AAA8 000979E8 80 CD 94 6C */ lwz r6, lbl_80409F2C@sda21(r13) /* 8009AAAC 000979EC 7C 00 23 78 */ or r0, r0, r4 /* 8009AAB0 000979F0 90 CD 94 6C */ stw r6, lbl_80409F2C@sda21(r13) /* 8009AAB4 000979F4 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009AAB8 000979F8 A0 1E 00 12 */ lhz r0, 0x12(r30) /* 8009AABC 000979FC 88 9E 00 0D */ lbz r4, 0xd(r30) /* 8009AAC0 00097A00 54 00 28 34 */ slwi r0, r0, 5 /* 8009AAC4 00097A04 7C 80 03 78 */ or r0, r4, r0 /* 8009AAC8 00097A08 B0 1D 00 1A */ sth r0, 0x1a(r29) /* 8009AACC 00097A0C 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009AAD0 00097A10 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009AAD4 00097A14 7C 00 1B 78 */ or r0, r0, r3 /* 8009AAD8 00097A18 90 8D 94 6C */ stw r4, lbl_80409F2C@sda21(r13) /* 8009AADC 00097A1C 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009AAE0 00097A20 A0 1E 00 16 */ lhz r0, 0x16(r30) /* 8009AAE4 00097A24 88 7E 00 0F */ lbz r3, 0xf(r30) /* 8009AAE8 00097A28 54 00 28 34 */ slwi r0, r0, 5 /* 8009AAEC 00097A2C 7C 60 03 78 */ or r0, r3, r0 /* 8009AAF0 00097A30 B0 1D 00 18 */ sth r0, 0x18(r29) /* 8009AAF4 00097A34 80 6D 94 68 */ lwz r3, changed@sda21(r13) /* 8009AAF8 00097A38 3C 00 00 08 */ lis r0, 8 /* 8009AAFC 00097A3C 38 DD 01 1C */ addi r6, r29, 0x11c /* 8009AB00 00097A40 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009AB04 00097A44 7C 60 03 78 */ or r0, r3, r0 /* 8009AB08 00097A48 90 8D 94 6C */ stw r4, lbl_80409F2C@sda21(r13) /* 8009AB0C 00097A4C 90 0D 94 68 */ stw r0, changed@sda21(r13) /* 8009AB10 00097A50 A0 7B 00 00 */ lhz r3, 0(r27) /* 8009AB14 00097A54 80 99 00 00 */ lwz r4, 0(r25) /* 8009AB18 00097A58 38 03 00 0F */ addi r0, r3, 0xf /* 8009AB1C 00097A5C A0 6F 00 00 */ lhz r3, 0(r15) /* 8009AB20 00097A60 7C 00 26 70 */ srawi r0, r0, 4 /* 8009AB24 00097A64 7C 00 01 94 */ addze r0, r0 /* 8009AB28 00097A68 2C 04 00 00 */ cmpwi r4, 0 /* 8009AB2C 00097A6C 98 1D 01 1C */ stb r0, 0x11c(r29) /* 8009AB30 00097A70 40 82 00 0C */ bne lbl_8009AB3C /* 8009AB34 00097A74 88 86 00 00 */ lbz r4, 0(r6) /* 8009AB38 00097A78 48 00 00 0C */ b lbl_8009AB44 lbl_8009AB3C: /* 8009AB3C 00097A7C 88 06 00 00 */ lbz r0, 0(r6) /* 8009AB40 00097A80 54 04 0E 3C */ rlwinm r4, r0, 1, 0x18, 0x1e lbl_8009AB44: /* 8009AB44 00097A84 7C 60 26 70 */ srawi r0, r3, 4 /* 8009AB48 00097A88 98 9D 01 1D */ stb r4, 0x11d(r29) /* 8009AB4C 00097A8C 7C 00 01 94 */ addze r0, r0 /* 8009AB50 00097A90 54 00 20 36 */ slwi r0, r0, 4 /* 8009AB54 00097A94 7C 00 18 10 */ subfc r0, r0, r3 /* 8009AB58 00097A98 98 1D 01 2C */ stb r0, 0x12c(r29) /* 8009AB5C 00097A9C 38 05 00 0F */ addi r0, r5, 0xf /* 8009AB60 00097AA0 3C 60 08 00 */ lis r3, 0x800 /* 8009AB64 00097AA4 88 9D 01 2C */ lbz r4, 0x12c(r29) /* 8009AB68 00097AA8 7C 04 02 14 */ add r0, r4, r0 /* 8009AB6C 00097AAC 7C 00 26 70 */ srawi r0, r0, 4 /* 8009AB70 00097AB0 7C 00 01 94 */ addze r0, r0 /* 8009AB74 00097AB4 98 1D 01 1E */ stb r0, 0x11e(r29) /* 8009AB78 00097AB8 88 1D 01 1E */ lbz r0, 0x11e(r29) /* 8009AB7C 00097ABC 88 9D 01 1D */ lbz r4, 0x11d(r29) /* 8009AB80 00097AC0 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 /* 8009AB84 00097AC4 B0 9D 00 48 */ sth r4, 0x48(r29) /* 8009AB88 00097AC8 80 8D 94 68 */ lwz r4, changed@sda21(r13) /* 8009AB8C 00097ACC 80 0D 94 88 */ lwz r0, FBSet@sda21(r13) /* 8009AB90 00097AD0 80 AD 94 6C */ lwz r5, lbl_80409F2C@sda21(r13) /* 8009AB94 00097AD4 28 00 00 00 */ cmplwi r0, 0 /* 8009AB98 00097AD8 7C A0 1B 78 */ or r0, r5, r3 /* 8009AB9C 00097ADC 90 0D 94 6C */ stw r0, lbl_80409F2C@sda21(r13) /* 8009ABA0 00097AE0 90 8D 94 68 */ stw r4, changed@sda21(r13) /* 8009ABA4 00097AE4 41 82 00 1C */ beq lbl_8009ABC0 /* 8009ABA8 00097AE8 38 7D 00 F0 */ addi r3, r29, 0xf0 /* 8009ABAC 00097AEC 38 9D 01 24 */ addi r4, r29, 0x124 /* 8009ABB0 00097AF0 38 BD 01 28 */ addi r5, r29, 0x128 /* 8009ABB4 00097AF4 38 DD 01 3C */ addi r6, r29, 0x13c /* 8009ABB8 00097AF8 38 FD 01 40 */ addi r7, r29, 0x140 /* 8009ABBC 00097AFC 4B FF F4 3D */ bl setFbbRegs lbl_8009ABC0: /* 8009ABC0 00097B00 80 1D 01 30 */ lwz r0, 0x130(r29) /* 8009ABC4 00097B04 90 01 00 08 */ stw r0, 8(r1) /* 8009ABC8 00097B08 A0 73 00 00 */ lhz r3, 0(r19) /* 8009ABCC 00097B0C A0 94 00 00 */ lhz r4, 0(r20) /* 8009ABD0 00097B10 88 BE 00 00 */ lbz r5, 0(r30) /* 8009ABD4 00097B14 A0 DE 00 02 */ lhz r6, 2(r30) /* 8009ABD8 00097B18 A0 FE 00 04 */ lhz r7, 4(r30) /* 8009ABDC 00097B1C A1 1E 00 06 */ lhz r8, 6(r30) /* 8009ABE0 00097B20 A1 3E 00 08 */ lhz r9, 8(r30) /* 8009ABE4 00097B24 A1 5E 00 0A */ lhz r10, 0xa(r30) /* 8009ABE8 00097B28 4B FF F6 E5 */ bl setVerticalRegs /* 8009ABEC 00097B2C 7D C3 73 78 */ mr r3, r14 /* 8009ABF0 00097B30 4B FF 56 05 */ bl OSRestoreInterrupts /* 8009ABF4 00097B34 B9 C1 00 30 */ lmw r14, 0x30(r1) /* 8009ABF8 00097B38 80 01 00 7C */ lwz r0, 0x7c(r1) /* 8009ABFC 00097B3C 38 21 00 78 */ addi r1, r1, 0x78 /* 8009AC00 00097B40 7C 08 03 A6 */ mtlr r0 /* 8009AC04 00097B44 4E 80 00 20 */ blr .global VIFlush VIFlush: /* 8009AC08 00097B48 7C 08 02 A6 */ mflr r0 /* 8009AC0C 00097B4C 90 01 00 04 */ stw r0, 4(r1) /* 8009AC10 00097B50 94 21 FF D8 */ stwu r1, -0x28(r1) /* 8009AC14 00097B54 BF 61 00 14 */ stmw r27, 0x14(r1) /* 8009AC18 00097B58 4B FF 55 B5 */ bl OSDisableInterrupts /* 8009AC1C 00097B5C 80 ED 94 70 */ lwz r7, shdwChangeMode@sda21(r13) /* 8009AC20 00097B60 3C 80 80 3F */ lis r4, shdwRegs@ha /* 8009AC24 00097B64 3C A0 80 3F */ lis r5, regs@ha /* 8009AC28 00097B68 80 CD 94 60 */ lwz r6, changeMode@sda21(r13) /* 8009AC2C 00097B6C 38 00 00 00 */ li r0, 0 /* 8009AC30 00097B70 3B A4 BE 40 */ addi r29, r4, shdwRegs@l /* 8009AC34 00097B74 7C E6 33 78 */ or r6, r7, r6 /* 8009AC38 00097B78 90 CD 94 70 */ stw r6, shdwChangeMode@sda21(r13) /* 8009AC3C 00097B7C 3B E5 BD C8 */ addi r31, r5, regs@l /* 8009AC40 00097B80 3B C3 00 00 */ addi r30, r3, 0 /* 8009AC44 00097B84 90 0D 94 60 */ stw r0, changeMode@sda21(r13) /* 8009AC48 00097B88 80 8D 94 78 */ lwz r4, shdwChanged@sda21(r13) /* 8009AC4C 00097B8C 80 AD 94 7C */ lwz r5, lbl_80409F3C@sda21(r13) /* 8009AC50 00097B90 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009AC54 00097B94 80 6D 94 6C */ lwz r3, lbl_80409F2C@sda21(r13) /* 8009AC58 00097B98 7C 80 03 78 */ or r0, r4, r0 /* 8009AC5C 00097B9C 7C A3 1B 78 */ or r3, r5, r3 /* 8009AC60 00097BA0 90 6D 94 7C */ stw r3, lbl_80409F3C@sda21(r13) /* 8009AC64 00097BA4 90 0D 94 78 */ stw r0, shdwChanged@sda21(r13) /* 8009AC68 00097BA8 48 00 00 7C */ b lbl_8009ACE4 lbl_8009AC6C: /* 8009AC6C 00097BAC 80 6D 94 68 */ lwz r3, changed@sda21(r13) /* 8009AC70 00097BB0 38 A0 00 20 */ li r5, 0x20 /* 8009AC74 00097BB4 83 6D 94 6C */ lwz r27, lbl_80409F2C@sda21(r13) /* 8009AC78 00097BB8 38 9B 00 00 */ addi r4, r27, 0 /* 8009AC7C 00097BBC 4B FE 83 D5 */ bl __shr2u /* 8009AC80 00097BC0 7C 84 00 34 */ cntlzw r4, r4 /* 8009AC84 00097BC4 2C 04 00 20 */ cmpwi r4, 0x20 /* 8009AC88 00097BC8 38 00 FF FF */ li r0, -1 /* 8009AC8C 00097BCC 7F 60 00 38 */ and r0, r27, r0 /* 8009AC90 00097BD0 40 80 00 08 */ bge lbl_8009AC98 /* 8009AC94 00097BD4 48 00 00 0C */ b lbl_8009ACA0 lbl_8009AC98: /* 8009AC98 00097BD8 7C 03 00 34 */ cntlzw r3, r0 /* 8009AC9C 00097BDC 38 83 00 20 */ addi r4, r3, 0x20 lbl_8009ACA0: /* 8009ACA0 00097BE0 54 85 08 3C */ slwi r5, r4, 1 /* 8009ACA4 00097BE4 7C 7F 2A 14 */ add r3, r31, r5 /* 8009ACA8 00097BE8 A0 03 00 00 */ lhz r0, 0(r3) /* 8009ACAC 00097BEC 7C 7D 2A 14 */ add r3, r29, r5 /* 8009ACB0 00097BF0 20 A4 00 3F */ subfic r5, r4, 0x3f /* 8009ACB4 00097BF4 B0 03 00 00 */ sth r0, 0(r3) /* 8009ACB8 00097BF8 38 60 00 00 */ li r3, 0 /* 8009ACBC 00097BFC 38 80 00 01 */ li r4, 1 /* 8009ACC0 00097C00 4B FE 83 6D */ bl __shl2i /* 8009ACC4 00097C04 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009ACC8 00097C08 7C 65 18 F8 */ nor r5, r3, r3 /* 8009ACCC 00097C0C 7C 84 20 F8 */ nor r4, r4, r4 /* 8009ACD0 00097C10 80 6D 94 6C */ lwz r3, lbl_80409F2C@sda21(r13) /* 8009ACD4 00097C14 7C 00 28 38 */ and r0, r0, r5 /* 8009ACD8 00097C18 7C 63 20 38 */ and r3, r3, r4 /* 8009ACDC 00097C1C 90 6D 94 6C */ stw r3, lbl_80409F2C@sda21(r13) /* 8009ACE0 00097C20 90 0D 94 68 */ stw r0, changed@sda21(r13) lbl_8009ACE4: /* 8009ACE4 00097C24 80 0D 94 68 */ lwz r0, changed@sda21(r13) /* 8009ACE8 00097C28 38 60 00 00 */ li r3, 0 /* 8009ACEC 00097C2C 80 8D 94 6C */ lwz r4, lbl_80409F2C@sda21(r13) /* 8009ACF0 00097C30 7C 00 1A 78 */ xor r0, r0, r3 /* 8009ACF4 00097C34 7C 83 1A 78 */ xor r3, r4, r3 /* 8009ACF8 00097C38 7C 60 03 79 */ or. r0, r3, r0 /* 8009ACFC 00097C3C 40 82 FF 70 */ bne lbl_8009AC6C /* 8009AD00 00097C40 38 00 00 01 */ li r0, 1 /* 8009AD04 00097C44 90 0D 94 44 */ stw r0, flushFlag@sda21(r13) /* 8009AD08 00097C48 7F C3 F3 78 */ mr r3, r30 /* 8009AD0C 00097C4C 4B FF 54 E9 */ bl OSRestoreInterrupts /* 8009AD10 00097C50 BB 61 00 14 */ lmw r27, 0x14(r1) /* 8009AD14 00097C54 80 01 00 2C */ lwz r0, 0x2c(r1) /* 8009AD18 00097C58 38 21 00 28 */ addi r1, r1, 0x28 /* 8009AD1C 00097C5C 7C 08 03 A6 */ mtlr r0 /* 8009AD20 00097C60 4E 80 00 20 */ blr .global VISetNextFrameBuffer VISetNextFrameBuffer: /* 8009AD24 00097C64 7C 08 02 A6 */ mflr r0 /* 8009AD28 00097C68 3C 80 80 3F */ lis r4, regs@ha /* 8009AD2C 00097C6C 90 01 00 04 */ stw r0, 4(r1) /* 8009AD30 00097C70 94 21 FF E8 */ stwu r1, -0x18(r1) /* 8009AD34 00097C74 93 E1 00 14 */ stw r31, 0x14(r1) /* 8009AD38 00097C78 3B E4 BD C8 */ addi r31, r4, regs@l /* 8009AD3C 00097C7C 93 C1 00 10 */ stw r30, 0x10(r1) /* 8009AD40 00097C80 3B C3 00 00 */ addi r30, r3, 0 /* 8009AD44 00097C84 4B FF 54 89 */ bl OSDisableInterrupts /* 8009AD48 00097C88 93 DF 01 20 */ stw r30, 0x120(r31) /* 8009AD4C 00097C8C 38 00 00 01 */ li r0, 1 /* 8009AD50 00097C90 3B C3 00 00 */ addi r30, r3, 0 /* 8009AD54 00097C94 90 0D 94 88 */ stw r0, FBSet@sda21(r13) /* 8009AD58 00097C98 38 7F 00 F0 */ addi r3, r31, 0xf0 /* 8009AD5C 00097C9C 38 9F 01 24 */ addi r4, r31, 0x124 /* 8009AD60 00097CA0 38 BF 01 28 */ addi r5, r31, 0x128 /* 8009AD64 00097CA4 38 DF 01 3C */ addi r6, r31, 0x13c /* 8009AD68 00097CA8 38 FF 01 40 */ addi r7, r31, 0x140 /* 8009AD6C 00097CAC 4B FF F2 8D */ bl setFbbRegs /* 8009AD70 00097CB0 7F C3 F3 78 */ mr r3, r30 /* 8009AD74 00097CB4 4B FF 54 81 */ bl OSRestoreInterrupts /* 8009AD78 00097CB8 80 01 00 1C */ lwz r0, 0x1c(r1) /* 8009AD7C 00097CBC 83 E1 00 14 */ lwz r31, 0x14(r1) /* 8009AD80 00097CC0 83 C1 00 10 */ lwz r30, 0x10(r1) /* 8009AD84 00097CC4 38 21 00 18 */ addi r1, r1, 0x18 /* 8009AD88 00097CC8 7C 08 03 A6 */ mtlr r0 /* 8009AD8C 00097CCC 4E 80 00 20 */ blr .global VISetBlack VISetBlack: /* 8009AD90 00097CD0 7C 08 02 A6 */ mflr r0 /* 8009AD94 00097CD4 3C 80 80 3F */ lis r4, regs@ha /* 8009AD98 00097CD8 90 01 00 04 */ stw r0, 4(r1) /* 8009AD9C 00097CDC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8009ADA0 00097CE0 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8009ADA4 00097CE4 3B E4 BD C8 */ addi r31, r4, regs@l /* 8009ADA8 00097CE8 93 C1 00 18 */ stw r30, 0x18(r1) /* 8009ADAC 00097CEC 3B C3 00 00 */ addi r30, r3, 0 /* 8009ADB0 00097CF0 4B FF 54 1D */ bl OSDisableInterrupts /* 8009ADB4 00097CF4 93 DF 01 30 */ stw r30, 0x130(r31) /* 8009ADB8 00097CF8 7C 7E 1B 78 */ mr r30, r3 /* 8009ADBC 00097CFC 81 5F 01 44 */ lwz r10, 0x144(r31) /* 8009ADC0 00097D00 80 1F 01 30 */ lwz r0, 0x130(r31) /* 8009ADC4 00097D04 90 01 00 08 */ stw r0, 8(r1) /* 8009ADC8 00097D08 A0 7F 00 FA */ lhz r3, 0xfa(r31) /* 8009ADCC 00097D0C A0 9F 00 F6 */ lhz r4, 0xf6(r31) /* 8009ADD0 00097D10 88 AA 00 00 */ lbz r5, 0(r10) /* 8009ADD4 00097D14 A0 CA 00 02 */ lhz r6, 2(r10) /* 8009ADD8 00097D18 A0 EA 00 04 */ lhz r7, 4(r10) /* 8009ADDC 00097D1C A1 0A 00 06 */ lhz r8, 6(r10) /* 8009ADE0 00097D20 A1 2A 00 08 */ lhz r9, 8(r10) /* 8009ADE4 00097D24 A1 4A 00 0A */ lhz r10, 0xa(r10) /* 8009ADE8 00097D28 4B FF F4 E5 */ bl setVerticalRegs /* 8009ADEC 00097D2C 7F C3 F3 78 */ mr r3, r30 /* 8009ADF0 00097D30 4B FF 54 05 */ bl OSRestoreInterrupts /* 8009ADF4 00097D34 80 01 00 24 */ lwz r0, 0x24(r1) /* 8009ADF8 00097D38 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8009ADFC 00097D3C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8009AE00 00097D40 38 21 00 20 */ addi r1, r1, 0x20 /* 8009AE04 00097D44 7C 08 03 A6 */ mtlr r0 /* 8009AE08 00097D48 4E 80 00 20 */ blr .global VIGetRetraceCount VIGetRetraceCount: /* 8009AE0C 00097D4C 80 6D 94 40 */ lwz r3, retraceCount@sda21(r13) /* 8009AE10 00097D50 4E 80 00 20 */ blr .global getCurrentFieldEvenOdd getCurrentFieldEvenOdd: /* 8009AE14 00097D54 3C 60 CC 00 */ lis r3, 0xCC002000@ha /* 8009AE18 00097D58 38 E3 20 00 */ addi r7, r3, 0xCC002000@l /* 8009AE1C 00097D5C A4 07 00 2C */ lhzu r0, 0x2c(r7) /* 8009AE20 00097D60 38 83 20 00 */ addi r4, r3, 0x2000 /* 8009AE24 00097D64 54 05 05 7E */ clrlwi r5, r0, 0x15 lbl_8009AE28: /* 8009AE28 00097D68 A0 07 00 00 */ lhz r0, 0(r7) /* 8009AE2C 00097D6C 7C A6 2B 78 */ mr r6, r5 /* 8009AE30 00097D70 A0 64 00 2E */ lhz r3, 0x2e(r4) /* 8009AE34 00097D74 54 05 05 7E */ clrlwi r5, r0, 0x15 /* 8009AE38 00097D78 7C 06 28 40 */ cmplw r6, r5 /* 8009AE3C 00097D7C 54 63 05 7E */ clrlwi r3, r3, 0x15 /* 8009AE40 00097D80 40 82 FF E8 */ bne lbl_8009AE28 /* 8009AE44 00097D84 80 CD 94 80 */ lwz r6, CurrTiming@sda21(r13) /* 8009AE48 00097D88 38 05 FF FF */ addi r0, r5, -1 /* 8009AE4C 00097D8C 38 83 FF FF */ addi r4, r3, -1 /* 8009AE50 00097D90 A0 66 00 1A */ lhz r3, 0x1a(r6) /* 8009AE54 00097D94 54 05 08 3C */ slwi r5, r0, 1 /* 8009AE58 00097D98 A0 06 00 18 */ lhz r0, 0x18(r6) /* 8009AE5C 00097D9C 7C 64 1B 96 */ divwu r3, r4, r3 /* 8009AE60 00097DA0 7C 65 1A 14 */ add r3, r5, r3 /* 8009AE64 00097DA4 7C 03 00 40 */ cmplw r3, r0 /* 8009AE68 00097DA8 40 80 00 0C */ bge lbl_8009AE74 /* 8009AE6C 00097DAC 38 60 00 01 */ li r3, 1 /* 8009AE70 00097DB0 4E 80 00 20 */ blr lbl_8009AE74: /* 8009AE74 00097DB4 38 60 00 00 */ li r3, 0 /* 8009AE78 00097DB8 4E 80 00 20 */ blr .global VIGetNextField VIGetNextField: /* 8009AE7C 00097DBC 7C 08 02 A6 */ mflr r0 /* 8009AE80 00097DC0 90 01 00 04 */ stw r0, 4(r1) /* 8009AE84 00097DC4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8009AE88 00097DC8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8009AE8C 00097DCC 4B FF 53 41 */ bl OSDisableInterrupts /* 8009AE90 00097DD0 3C 80 CC 00 */ lis r4, 0xCC002000@ha /* 8009AE94 00097DD4 39 04 20 00 */ addi r8, r4, 0xCC002000@l /* 8009AE98 00097DD8 A4 08 00 2C */ lhzu r0, 0x2c(r8) /* 8009AE9C 00097DDC 38 A4 20 00 */ addi r5, r4, 0x2000 /* 8009AEA0 00097DE0 54 06 05 7E */ clrlwi r6, r0, 0x15 lbl_8009AEA4: /* 8009AEA4 00097DE4 A0 08 00 00 */ lhz r0, 0(r8) /* 8009AEA8 00097DE8 7C C7 33 78 */ mr r7, r6 /* 8009AEAC 00097DEC A0 85 00 2E */ lhz r4, 0x2e(r5) /* 8009AEB0 00097DF0 54 06 05 7E */ clrlwi r6, r0, 0x15 /* 8009AEB4 00097DF4 7C 07 30 40 */ cmplw r7, r6 /* 8009AEB8 00097DF8 54 84 05 7E */ clrlwi r4, r4, 0x15 /* 8009AEBC 00097DFC 40 82 FF E8 */ bne lbl_8009AEA4 /* 8009AEC0 00097E00 80 ED 94 80 */ lwz r7, CurrTiming@sda21(r13) /* 8009AEC4 00097E04 38 06 FF FF */ addi r0, r6, -1 /* 8009AEC8 00097E08 38 A4 FF FF */ addi r5, r4, -1 /* 8009AECC 00097E0C A0 87 00 1A */ lhz r4, 0x1a(r7) /* 8009AED0 00097E10 54 06 08 3C */ slwi r6, r0, 1 /* 8009AED4 00097E14 A0 07 00 18 */ lhz r0, 0x18(r7) /* 8009AED8 00097E18 7C 85 23 96 */ divwu r4, r5, r4 /* 8009AEDC 00097E1C 7C 86 22 14 */ add r4, r6, r4 /* 8009AEE0 00097E20 7C 04 00 40 */ cmplw r4, r0 /* 8009AEE4 00097E24 40 80 00 0C */ bge lbl_8009AEF0 /* 8009AEE8 00097E28 3B E0 00 01 */ li r31, 1 /* 8009AEEC 00097E2C 48 00 00 08 */ b lbl_8009AEF4 lbl_8009AEF0: /* 8009AEF0 00097E30 3B E0 00 00 */ li r31, 0 lbl_8009AEF4: /* 8009AEF4 00097E34 4B FF 53 01 */ bl OSRestoreInterrupts /* 8009AEF8 00097E38 3C 60 80 3F */ lis r3, HorVer@ha /* 8009AEFC 00097E3C 38 63 BE B8 */ addi r3, r3, HorVer@l /* 8009AF00 00097E40 A0 03 00 0A */ lhz r0, 0xa(r3) /* 8009AF04 00097E44 6B E3 00 01 */ xori r3, r31, 1 /* 8009AF08 00097E48 54 00 07 FE */ clrlwi r0, r0, 0x1f /* 8009AF0C 00097E4C 7C 63 02 78 */ xor r3, r3, r0 /* 8009AF10 00097E50 80 01 00 24 */ lwz r0, 0x24(r1) /* 8009AF14 00097E54 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8009AF18 00097E58 38 21 00 20 */ addi r1, r1, 0x20 /* 8009AF1C 00097E5C 7C 08 03 A6 */ mtlr r0 /* 8009AF20 00097E60 4E 80 00 20 */ blr .global VIGetCurrentLine VIGetCurrentLine: /* 8009AF24 00097E64 7C 08 02 A6 */ mflr r0 /* 8009AF28 00097E68 90 01 00 04 */ stw r0, 4(r1) /* 8009AF2C 00097E6C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8009AF30 00097E70 93 E1 00 0C */ stw r31, 0xc(r1) /* 8009AF34 00097E74 93 C1 00 08 */ stw r30, 8(r1) /* 8009AF38 00097E78 83 ED 94 80 */ lwz r31, CurrTiming@sda21(r13) /* 8009AF3C 00097E7C 4B FF 52 91 */ bl OSDisableInterrupts /* 8009AF40 00097E80 3C 80 CC 00 */ lis r4, 0xCC002000@ha /* 8009AF44 00097E84 39 04 20 00 */ addi r8, r4, 0xCC002000@l /* 8009AF48 00097E88 A4 08 00 2C */ lhzu r0, 0x2c(r8) /* 8009AF4C 00097E8C 38 A4 20 00 */ addi r5, r4, 0x2000 /* 8009AF50 00097E90 54 06 05 7E */ clrlwi r6, r0, 0x15 lbl_8009AF54: /* 8009AF54 00097E94 A0 08 00 00 */ lhz r0, 0(r8) /* 8009AF58 00097E98 7C C7 33 78 */ mr r7, r6 /* 8009AF5C 00097E9C A0 85 00 2E */ lhz r4, 0x2e(r5) /* 8009AF60 00097EA0 54 06 05 7E */ clrlwi r6, r0, 0x15 /* 8009AF64 00097EA4 7C 07 30 40 */ cmplw r7, r6 /* 8009AF68 00097EA8 54 87 05 7E */ clrlwi r7, r4, 0x15 /* 8009AF6C 00097EAC 40 82 FF E8 */ bne lbl_8009AF54 /* 8009AF70 00097EB0 80 8D 94 80 */ lwz r4, CurrTiming@sda21(r13) /* 8009AF74 00097EB4 38 A7 FF FF */ addi r5, r7, -1 /* 8009AF78 00097EB8 38 C6 FF FF */ addi r6, r6, -1 /* 8009AF7C 00097EBC A0 04 00 1A */ lhz r0, 0x1a(r4) /* 8009AF80 00097EC0 54 C4 08 3C */ slwi r4, r6, 1 /* 8009AF84 00097EC4 7C 05 03 96 */ divwu r0, r5, r0 /* 8009AF88 00097EC8 7F C4 02 14 */ add r30, r4, r0 /* 8009AF8C 00097ECC 4B FF 52 69 */ bl OSRestoreInterrupts /* 8009AF90 00097ED0 A0 1F 00 18 */ lhz r0, 0x18(r31) /* 8009AF94 00097ED4 7C 1E 00 40 */ cmplw r30, r0 /* 8009AF98 00097ED8 41 80 00 08 */ blt lbl_8009AFA0 /* 8009AF9C 00097EDC 7F C0 F0 50 */ subf r30, r0, r30 lbl_8009AFA0: /* 8009AFA0 00097EE0 57 C3 F8 7E */ srwi r3, r30, 1 /* 8009AFA4 00097EE4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009AFA8 00097EE8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8009AFAC 00097EEC 83 C1 00 08 */ lwz r30, 8(r1) /* 8009AFB0 00097EF0 38 21 00 10 */ addi r1, r1, 0x10 /* 8009AFB4 00097EF4 7C 08 03 A6 */ mtlr r0 /* 8009AFB8 00097EF8 4E 80 00 20 */ blr .global VIGetTvFormat VIGetTvFormat: /* 8009AFBC 00097EFC 7C 08 02 A6 */ mflr r0 /* 8009AFC0 00097F00 90 01 00 04 */ stw r0, 4(r1) /* 8009AFC4 00097F04 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8009AFC8 00097F08 93 E1 00 0C */ stw r31, 0xc(r1) /* 8009AFCC 00097F0C 4B FF 52 01 */ bl OSDisableInterrupts /* 8009AFD0 00097F10 80 0D 94 84 */ lwz r0, CurrTvMode@sda21(r13) /* 8009AFD4 00097F14 2C 00 00 03 */ cmpwi r0, 3 /* 8009AFD8 00097F18 41 82 00 30 */ beq lbl_8009B008 /* 8009AFDC 00097F1C 40 80 00 1C */ bge lbl_8009AFF8 /* 8009AFE0 00097F20 2C 00 00 01 */ cmpwi r0, 1 /* 8009AFE4 00097F24 41 82 00 2C */ beq lbl_8009B010 /* 8009AFE8 00097F28 40 80 00 30 */ bge lbl_8009B018 /* 8009AFEC 00097F2C 2C 00 00 00 */ cmpwi r0, 0 /* 8009AFF0 00097F30 40 80 00 18 */ bge lbl_8009B008 /* 8009AFF4 00097F34 48 00 00 28 */ b lbl_8009B01C lbl_8009AFF8: /* 8009AFF8 00097F38 2C 00 00 05 */ cmpwi r0, 5 /* 8009AFFC 00097F3C 41 82 00 1C */ beq lbl_8009B018 /* 8009B000 00097F40 40 80 00 1C */ bge lbl_8009B01C /* 8009B004 00097F44 48 00 00 0C */ b lbl_8009B010 lbl_8009B008: /* 8009B008 00097F48 3B E0 00 00 */ li r31, 0 /* 8009B00C 00097F4C 48 00 00 10 */ b lbl_8009B01C lbl_8009B010: /* 8009B010 00097F50 3B E0 00 01 */ li r31, 1 /* 8009B014 00097F54 48 00 00 08 */ b lbl_8009B01C lbl_8009B018: /* 8009B018 00097F58 7C 1F 03 78 */ mr r31, r0 lbl_8009B01C: /* 8009B01C 00097F5C 4B FF 51 D9 */ bl OSRestoreInterrupts /* 8009B020 00097F60 7F E3 FB 78 */ mr r3, r31 /* 8009B024 00097F64 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009B028 00097F68 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8009B02C 00097F6C 38 21 00 10 */ addi r1, r1, 0x10 /* 8009B030 00097F70 7C 08 03 A6 */ mtlr r0 /* 8009B034 00097F74 4E 80 00 20 */ blr .global VIGetDTVStatus VIGetDTVStatus: /* 8009B038 00097F78 7C 08 02 A6 */ mflr r0 /* 8009B03C 00097F7C 90 01 00 04 */ stw r0, 4(r1) /* 8009B040 00097F80 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8009B044 00097F84 93 E1 00 0C */ stw r31, 0xc(r1) /* 8009B048 00097F88 4B FF 51 85 */ bl OSDisableInterrupts /* 8009B04C 00097F8C 3C 80 CC 00 */ lis r4, 0xCC00206E@ha /* 8009B050 00097F90 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4) /* 8009B054 00097F94 54 1F 07 BE */ clrlwi r31, r0, 0x1e /* 8009B058 00097F98 4B FF 51 9D */ bl OSRestoreInterrupts /* 8009B05C 00097F9C 57 E3 07 FE */ clrlwi r3, r31, 0x1f /* 8009B060 00097FA0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8009B064 00097FA4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8009B068 00097FA8 38 21 00 10 */ addi r1, r1, 0x10 /* 8009B06C 00097FAC 7C 08 03 A6 */ mtlr r0 /* 8009B070 00097FB0 4E 80 00 20 */ blr .section .data, "wa" # 0x803A8380 - 0x803E6000 timing: .4byte 0x060000F0 .4byte 0x00180019 .4byte 0x00030002 .4byte 0x0C0D0C0D .4byte 0x02080207 .4byte 0x02080207 .4byte 0x020D01AD .4byte 0x404769A2 .4byte 0x01757A00 .4byte 0x019C0600 .4byte 0x00F00018 .4byte 0x00180004 .4byte 0x00040C0C .4byte 0x0C0C0208 .4byte 0x02080208 .4byte 0x0208020E .4byte 0x01AD4047 .4byte 0x69A20175 .4byte 0x7A00019C .4byte 0x0500011F .4byte 0x00230024 .4byte 0x00010000 .4byte 0x0D0C0B0A .4byte 0x026B026A .4byte 0x0269026C .4byte 0x027101B0 .4byte 0x404B6AAC .4byte 0x017C8500 .4byte 0x01A40500 .4byte 0x011F0021 .4byte 0x00210002 .4byte 0x00020D0B .4byte 0x0D0B026B .4byte 0x026D026B .4byte 0x026D0270 .4byte 0x01B0404B .4byte 0x6AAC017C .4byte 0x850001A4 .4byte 0x060000F0 .4byte 0x00180019 .4byte 0x00030002 .4byte 0x100F0E0D .4byte 0x02060205 .4byte 0x02040207 .4byte 0x020D01AD .4byte 0x404E70A2 .4byte 0x01757A00 .4byte 0x019C0600 .4byte 0x00F00018 .4byte 0x00180004 .4byte 0x0004100E .4byte 0x100E0206 .4byte 0x02080206 .4byte 0x0208020E .4byte 0x01AD404E .4byte 0x70A20175 .4byte 0x7A00019C .4byte 0x0C0001E0 .4byte 0x00300030 .4byte 0x00060006 .4byte 0x18181818 .4byte 0x040E040E .4byte 0x040E040E .4byte 0x041A01AD .4byte 0x404769A2 .4byte 0x01757A00 .4byte 0x019C0C00 .4byte 0x01E0002C .4byte 0x002C000A .4byte 0x000A1818 .4byte 0x1818040E .4byte 0x040E040E .4byte 0x040E041A .4byte 0x01AD4047 .4byte 0x69A8017B .4byte 0x7A00019C taps: .4byte 0x01F001DC .4byte 0x01AE0174 .4byte 0x012900DB .4byte 0x008E0046 .4byte 0x000C00E2 .4byte 0x00CB00C0 .4byte 0x00C400CF .4byte 0x00DE00EC .4byte 0x00FC0008 .4byte 0x000F0013 .4byte 0x0013000F .4byte 0x000C0008 .4byte 0x00010000 "@92": .4byte lbl_800998CC .4byte lbl_800998D4 .4byte lbl_8009990C .4byte lbl_80099914 .4byte lbl_800998DC .4byte lbl_800998E4 .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_800998FC .4byte lbl_80099904 .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_8009991C .4byte lbl_80099924 .4byte lbl_8009992C .4byte lbl_8009992C .4byte lbl_800998EC .4byte lbl_800998F4 "@336": .asciz "***************************************\n" .balign 4 "@337": .asciz " ! ! ! C A U T I O N ! ! ! \n" .balign 4 "@338": .asciz "This TV format \"DEBUG_PAL\" is only for \n" .balign 4 "@339": .asciz "temporary solution until PAL DAC board \n" .balign 4 "@340": .asciz "is available. Please do NOT use this \n" .balign 4 "@341": .asciz "mode in real games!!! \n" .balign 4 .4byte 0 .section .bss, "wa" # 0x803E6000 - 0x80408AC0 regs: .skip 0x78 shdwRegs: .skip 0x78 HorVer: .skip 0x58 .section .sbss, "wa" # 0x804097C0 - 0x8040B45C retraceCount: .skip 0x4 flushFlag: .skip 0x4 retraceQueue: .skip 0x8 PreCB: .skip 0x4 PostCB: .skip 0x4 encoderType: .skip 0x4 displayOffsetH: .skip 0x2 displayOffsetV: .skip 0x2 changeMode: .skip 0x8 changed: .skip 0x4 lbl_80409F2C: .skip 0x4 shdwChangeMode: .skip 0x8 shdwChanged: .skip 0x4 lbl_80409F3C: .skip 0x4 CurrTiming: .skip 0x4 CurrTvMode: .skip 0x4 FBSet: .skip 0x4 message$332: .skip 0x4