.include "macros.inc" .section .text, "ax" # 0x80005600 - 0x8036FBA0 .global GXSetFog GXSetFog: /* 800AC440 000A9380 7C 08 02 A6 */ mflr r0 /* 800AC444 000A9384 FC 04 18 00 */ fcmpu cr0, f4, f3 /* 800AC448 000A9388 90 01 00 04 */ stw r0, 4(r1) /* 800AC44C 000A938C 94 21 FF B8 */ stwu r1, -0x48(r1) /* 800AC450 000A9390 93 E1 00 44 */ stw r31, 0x44(r1) /* 800AC454 000A9394 3B E3 00 00 */ addi r31, r3, 0 /* 800AC458 000A9398 93 C1 00 40 */ stw r30, 0x40(r1) /* 800AC45C 000A939C 93 A1 00 3C */ stw r29, 0x3c(r1) /* 800AC460 000A93A0 3B A4 00 00 */ addi r29, r4, 0 /* 800AC464 000A93A4 41 82 00 0C */ beq lbl_800AC470 /* 800AC468 000A93A8 FC 02 08 00 */ fcmpu cr0, f2, f1 /* 800AC46C 000A93AC 40 82 00 14 */ bne lbl_800AC480 lbl_800AC470: /* 800AC470 000A93B0 C0 62 8B 58 */ lfs f3, "@125"@sda21(r2) /* 800AC474 000A93B4 C0 82 8B 5C */ lfs f4, "@126"@sda21(r2) /* 800AC478 000A93B8 FC A0 18 90 */ fmr f5, f3 /* 800AC47C 000A93BC 48 00 00 20 */ b lbl_800AC49C lbl_800AC480: /* 800AC480 000A93C0 EC 04 18 28 */ fsubs f0, f4, f3 /* 800AC484 000A93C4 EC A2 08 28 */ fsubs f5, f2, f1 /* 800AC488 000A93C8 EC 44 00 F2 */ fmuls f2, f4, f3 /* 800AC48C 000A93CC EC 84 00 24 */ fdivs f4, f4, f0 /* 800AC490 000A93D0 EC 00 01 72 */ fmuls f0, f0, f5 /* 800AC494 000A93D4 EC A1 28 24 */ fdivs f5, f1, f5 /* 800AC498 000A93D8 EC 62 00 24 */ fdivs f3, f2, f0 lbl_800AC49C: /* 800AC49C 000A93DC C0 22 8B 5C */ lfs f1, "@126"@sda21(r2) /* 800AC4A0 000A93E0 38 60 00 00 */ li r3, 0 /* 800AC4A4 000A93E4 C8 02 8B 60 */ lfd f0, "@127"@sda21(r2) /* 800AC4A8 000A93E8 48 00 00 0C */ b lbl_800AC4B4 lbl_800AC4AC: /* 800AC4AC 000A93EC EC 84 00 72 */ fmuls f4, f4, f1 /* 800AC4B0 000A93F0 38 63 00 01 */ addi r3, r3, 1 lbl_800AC4B4: /* 800AC4B4 000A93F4 FC 04 00 40 */ fcmpo cr0, f4, f0 /* 800AC4B8 000A93F8 41 81 FF F4 */ bgt lbl_800AC4AC /* 800AC4BC 000A93FC C8 02 8B 70 */ lfd f0, "@129"@sda21(r2) /* 800AC4C0 000A9400 C0 42 8B 68 */ lfs f2, "@128"@sda21(r2) /* 800AC4C4 000A9404 C0 22 8B 58 */ lfs f1, "@125"@sda21(r2) /* 800AC4C8 000A9408 48 00 00 0C */ b lbl_800AC4D4 lbl_800AC4CC: /* 800AC4CC 000A940C EC 84 00 B2 */ fmuls f4, f4, f2 /* 800AC4D0 000A9410 38 63 FF FF */ addi r3, r3, -1 lbl_800AC4D4: /* 800AC4D4 000A9414 FC 04 08 40 */ fcmpo cr0, f4, f1 /* 800AC4D8 000A9418 40 81 00 0C */ ble lbl_800AC4E4 /* 800AC4DC 000A941C FC 04 00 40 */ fcmpo cr0, f4, f0 /* 800AC4E0 000A9420 41 80 FF EC */ blt lbl_800AC4CC lbl_800AC4E4: /* 800AC4E4 000A9424 3B C3 00 01 */ addi r30, r3, 1 /* 800AC4E8 000A9428 C0 02 8B 78 */ lfs f0, "@130"@sda21(r2) /* 800AC4EC 000A942C 38 00 00 01 */ li r0, 1 /* 800AC4F0 000A9430 C8 42 8B 80 */ lfd f2, "@132"@sda21(r2) /* 800AC4F4 000A9434 7C 00 F0 30 */ slw r0, r0, r30 /* 800AC4F8 000A9438 EC 20 01 32 */ fmuls f1, f0, f4 /* 800AC4FC 000A943C 6C 03 80 00 */ xoris r3, r0, 0x8000 /* 800AC500 000A9440 D0 A1 00 28 */ stfs f5, 0x28(r1) /* 800AC504 000A9444 3C 00 43 30 */ lis r0, 0x4330 /* 800AC508 000A9448 90 61 00 34 */ stw r3, 0x34(r1) /* 800AC50C 000A944C 90 01 00 30 */ stw r0, 0x30(r1) /* 800AC510 000A9450 C8 01 00 30 */ lfd f0, 0x30(r1) /* 800AC514 000A9454 EC 00 10 28 */ fsubs f0, f0, f2 /* 800AC518 000A9458 EC 03 00 24 */ fdivs f0, f3, f0 /* 800AC51C 000A945C D0 01 00 2C */ stfs f0, 0x2c(r1) /* 800AC520 000A9460 4B FD 66 9D */ bl __cvt_fp2unsigned /* 800AC524 000A9464 80 01 00 2C */ lwz r0, 0x2c(r1) /* 800AC528 000A9468 54 69 02 3E */ clrlwi r9, r3, 8 /* 800AC52C 000A946C 88 DD 00 01 */ lbz r6, 1(r29) /* 800AC530 000A9470 57 C8 02 3E */ clrlwi r8, r30, 8 /* 800AC534 000A9474 54 04 A3 68 */ rlwinm r4, r0, 0x14, 0xd, 0x14 /* 800AC538 000A9478 50 04 A5 7E */ rlwimi r4, r0, 0x14, 0x15, 0x1f /* 800AC53C 000A947C 89 7D 00 02 */ lbz r11, 2(r29) /* 800AC540 000A9480 54 00 A3 18 */ rlwinm r0, r0, 0x14, 0xc, 0xc /* 800AC544 000A9484 88 BD 00 00 */ lbz r5, 0(r29) /* 800AC548 000A9488 50 80 03 7E */ rlwimi r0, r4, 0, 0xd, 0x1f /* 800AC54C 000A948C 81 81 00 28 */ lwz r12, 0x28(r1) /* 800AC550 000A9490 54 07 02 3E */ clrlwi r7, r0, 8 /* 800AC554 000A9494 80 6D 82 C8 */ lwz r3, gx@sda21(r13) /* 800AC558 000A9498 64 EA EE 00 */ oris r10, r7, 0xee00 /* 800AC55C 000A949C 38 00 00 61 */ li r0, 0x61 /* 800AC560 000A94A0 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 800AC564 000A94A4 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 800AC568 000A94A8 65 27 EF 00 */ oris r7, r9, 0xef00 /* 800AC56C 000A94AC 54 C6 40 2E */ slwi r6, r6, 8 /* 800AC570 000A94B0 91 44 80 00 */ stw r10, -0x8000(r4) /* 800AC574 000A94B4 55 8A A3 68 */ rlwinm r10, r12, 0x14, 0xd, 0x14 /* 800AC578 000A94B8 51 8A A5 7E */ rlwimi r10, r12, 0x14, 0x15, 0x1f /* 800AC57C 000A94BC 98 04 80 00 */ stb r0, -0x8000(r4) /* 800AC580 000A94C0 55 89 A3 18 */ rlwinm r9, r12, 0x14, 0xc, 0xc /* 800AC584 000A94C4 51 49 03 7E */ rlwimi r9, r10, 0, 0xd, 0x1f /* 800AC588 000A94C8 90 E4 80 00 */ stw r7, -0x8000(r4) /* 800AC58C 000A94CC 65 07 F0 00 */ oris r7, r8, 0xf000 /* 800AC590 000A94D0 51 66 06 3E */ rlwimi r6, r11, 0, 0x18, 0x1f /* 800AC594 000A94D4 98 04 80 00 */ stb r0, -0x8000(r4) /* 800AC598 000A94D8 90 E4 80 00 */ stw r7, -0x8000(r4) /* 800AC59C 000A94DC 57 E7 A8 14 */ slwi r7, r31, 0x15 /* 800AC5A0 000A94E0 51 27 03 3E */ rlwimi r7, r9, 0, 0xc, 0x1f /* 800AC5A4 000A94E4 54 E7 02 3E */ clrlwi r7, r7, 8 /* 800AC5A8 000A94E8 98 04 80 00 */ stb r0, -0x8000(r4) /* 800AC5AC 000A94EC 64 E7 F1 00 */ oris r7, r7, 0xf100 /* 800AC5B0 000A94F0 90 E4 80 00 */ stw r7, -0x8000(r4) /* 800AC5B4 000A94F4 98 04 80 00 */ stb r0, -0x8000(r4) /* 800AC5B8 000A94F8 54 A0 80 1E */ slwi r0, r5, 0x10 /* 800AC5BC 000A94FC 50 C0 04 3E */ rlwimi r0, r6, 0, 0x10, 0x1f /* 800AC5C0 000A9500 54 00 02 3E */ clrlwi r0, r0, 8 /* 800AC5C4 000A9504 64 00 F2 00 */ oris r0, r0, 0xf200 /* 800AC5C8 000A9508 90 04 80 00 */ stw r0, -0x8000(r4) /* 800AC5CC 000A950C 38 00 00 00 */ li r0, 0 /* 800AC5D0 000A9510 B0 03 00 02 */ sth r0, 2(r3) /* 800AC5D4 000A9514 80 01 00 4C */ lwz r0, 0x4c(r1) /* 800AC5D8 000A9518 83 E1 00 44 */ lwz r31, 0x44(r1) /* 800AC5DC 000A951C 83 C1 00 40 */ lwz r30, 0x40(r1) /* 800AC5E0 000A9520 83 A1 00 3C */ lwz r29, 0x3c(r1) /* 800AC5E4 000A9524 38 21 00 48 */ addi r1, r1, 0x48 /* 800AC5E8 000A9528 7C 08 03 A6 */ mtlr r0 /* 800AC5EC 000A952C 4E 80 00 20 */ blr .global GXSetFogRangeAdj GXSetFogRangeAdj: /* 800AC5F0 000A9530 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 800AC5F4 000A9534 41 82 00 C0 */ beq lbl_800AC6B4 /* 800AC5F8 000A9538 A1 05 00 02 */ lhz r8, 2(r5) /* 800AC5FC 000A953C 38 00 00 61 */ li r0, 0x61 /* 800AC600 000A9540 A1 45 00 00 */ lhz r10, 0(r5) /* 800AC604 000A9544 3C C0 CC 01 */ lis r6, 0xCC008000@ha /* 800AC608 000A9548 55 08 60 26 */ slwi r8, r8, 0xc /* 800AC60C 000A954C 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f /* 800AC610 000A9550 98 06 80 00 */ stb r0, 0xCC008000@l(r6) /* 800AC614 000A9554 38 E0 00 E9 */ li r7, 0xe9 /* 800AC618 000A9558 55 09 02 3E */ clrlwi r9, r8, 8 /* 800AC61C 000A955C 50 E9 C0 0E */ rlwimi r9, r7, 0x18, 0, 7 /* 800AC620 000A9560 91 26 80 00 */ stw r9, -0x8000(r6) /* 800AC624 000A9564 38 E0 00 EA */ li r7, 0xea /* 800AC628 000A9568 54 E9 C0 0E */ slwi r9, r7, 0x18 /* 800AC62C 000A956C A5 45 00 04 */ lhzu r10, 4(r5) /* 800AC630 000A9570 38 E0 00 EB */ li r7, 0xeb /* 800AC634 000A9574 A1 05 00 02 */ lhz r8, 2(r5) /* 800AC638 000A9578 55 08 60 26 */ slwi r8, r8, 0xc /* 800AC63C 000A957C 98 06 80 00 */ stb r0, -0x8000(r6) /* 800AC640 000A9580 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f /* 800AC644 000A9584 51 09 02 3E */ rlwimi r9, r8, 0, 8, 0x1f /* 800AC648 000A9588 91 26 80 00 */ stw r9, -0x8000(r6) /* 800AC64C 000A958C 54 E9 C0 0E */ slwi r9, r7, 0x18 /* 800AC650 000A9590 38 E0 00 EC */ li r7, 0xec /* 800AC654 000A9594 A1 05 00 06 */ lhz r8, 6(r5) /* 800AC658 000A9598 A1 45 00 04 */ lhz r10, 4(r5) /* 800AC65C 000A959C 55 08 60 26 */ slwi r8, r8, 0xc /* 800AC660 000A95A0 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f /* 800AC664 000A95A4 98 06 80 00 */ stb r0, -0x8000(r6) /* 800AC668 000A95A8 51 09 02 3E */ rlwimi r9, r8, 0, 8, 0x1f /* 800AC66C 000A95AC 91 26 80 00 */ stw r9, -0x8000(r6) /* 800AC670 000A95B0 54 E9 C0 0E */ slwi r9, r7, 0x18 /* 800AC674 000A95B4 38 E0 00 ED */ li r7, 0xed /* 800AC678 000A95B8 A1 05 00 0A */ lhz r8, 0xa(r5) /* 800AC67C 000A95BC A1 45 00 08 */ lhz r10, 8(r5) /* 800AC680 000A95C0 55 08 60 26 */ slwi r8, r8, 0xc /* 800AC684 000A95C4 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f /* 800AC688 000A95C8 98 06 80 00 */ stb r0, -0x8000(r6) /* 800AC68C 000A95CC 51 09 02 3E */ rlwimi r9, r8, 0, 8, 0x1f /* 800AC690 000A95D0 91 26 80 00 */ stw r9, -0x8000(r6) /* 800AC694 000A95D4 A1 05 00 0E */ lhz r8, 0xe(r5) /* 800AC698 000A95D8 A1 45 00 0C */ lhz r10, 0xc(r5) /* 800AC69C 000A95DC 55 08 60 26 */ slwi r8, r8, 0xc /* 800AC6A0 000A95E0 51 48 05 3E */ rlwimi r8, r10, 0, 0x14, 0x1f /* 800AC6A4 000A95E4 98 06 80 00 */ stb r0, -0x8000(r6) /* 800AC6A8 000A95E8 55 09 02 3E */ clrlwi r9, r8, 8 /* 800AC6AC 000A95EC 50 E9 C0 0E */ rlwimi r9, r7, 0x18, 0, 7 /* 800AC6B0 000A95F0 91 26 80 00 */ stw r9, -0x8000(r6) lbl_800AC6B4: /* 800AC6B4 000A95F4 54 85 04 3E */ clrlwi r5, r4, 0x10 /* 800AC6B8 000A95F8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC6BC 000A95FC 38 05 01 56 */ addi r0, r5, 0x156 /* 800AC6C0 000A9600 54 05 05 A8 */ rlwinm r5, r0, 0, 0x16, 0x14 /* 800AC6C4 000A9604 54 60 53 AA */ rlwinm r0, r3, 0xa, 0xe, 0x15 /* 800AC6C8 000A9608 7C A0 03 78 */ or r0, r5, r0 /* 800AC6CC 000A960C 54 05 02 3E */ clrlwi r5, r0, 8 /* 800AC6D0 000A9610 38 00 00 61 */ li r0, 0x61 /* 800AC6D4 000A9614 3C 60 CC 01 */ lis r3, 0xCC008000@ha /* 800AC6D8 000A9618 98 03 80 00 */ stb r0, 0xCC008000@l(r3) /* 800AC6DC 000A961C 64 A5 E8 00 */ oris r5, r5, 0xe800 /* 800AC6E0 000A9620 38 00 00 00 */ li r0, 0 /* 800AC6E4 000A9624 90 A3 80 00 */ stw r5, -0x8000(r3) /* 800AC6E8 000A9628 B0 04 00 02 */ sth r0, 2(r4) /* 800AC6EC 000A962C 4E 80 00 20 */ blr .global GXSetBlendMode GXSetBlendMode: /* 800AC6F0 000A9630 2C 03 00 01 */ cmpwi r3, 1 /* 800AC6F4 000A9634 39 20 00 01 */ li r9, 1 /* 800AC6F8 000A9638 41 82 00 10 */ beq lbl_800AC708 /* 800AC6FC 000A963C 2C 03 00 03 */ cmpwi r3, 3 /* 800AC700 000A9640 41 82 00 08 */ beq lbl_800AC708 /* 800AC704 000A9644 39 20 00 00 */ li r9, 0 lbl_800AC708: /* 800AC708 000A9648 81 0D 82 C8 */ lwz r8, gx@sda21(r13) /* 800AC70C 000A964C 20 03 00 03 */ subfic r0, r3, 3 /* 800AC710 000A9650 7C 07 00 34 */ cntlzw r7, r0 /* 800AC714 000A9654 39 48 01 D0 */ addi r10, r8, 0x1d0 /* 800AC718 000A9658 81 08 01 D0 */ lwz r8, 0x1d0(r8) /* 800AC71C 000A965C 20 03 00 02 */ subfic r0, r3, 2 /* 800AC720 000A9660 55 03 00 3C */ rlwinm r3, r8, 0, 0, 0x1e /* 800AC724 000A9664 7C 63 4B 78 */ or r3, r3, r9 /* 800AC728 000A9668 90 6A 00 00 */ stw r3, 0(r10) /* 800AC72C 000A966C 7C 00 00 34 */ cntlzw r0, r0 /* 800AC730 000A9670 54 E3 30 28 */ rlwinm r3, r7, 6, 0, 0x14 /* 800AC734 000A9674 81 2D 82 C8 */ lwz r9, gx@sda21(r13) /* 800AC738 000A9678 54 08 E1 3C */ rlwinm r8, r0, 0x1c, 4, 0x1e /* 800AC73C 000A967C 84 09 01 D0 */ lwzu r0, 0x1d0(r9) /* 800AC740 000A9680 54 C7 60 26 */ slwi r7, r6, 0xc /* 800AC744 000A9684 54 86 40 2E */ slwi r6, r4, 8 /* 800AC748 000A9688 54 00 05 66 */ rlwinm r0, r0, 0, 0x15, 0x13 /* 800AC74C 000A968C 7C 00 1B 78 */ or r0, r0, r3 /* 800AC750 000A9690 90 09 00 00 */ stw r0, 0(r9) /* 800AC754 000A9694 54 A4 28 34 */ slwi r4, r5, 5 /* 800AC758 000A9698 38 60 00 61 */ li r3, 0x61 /* 800AC75C 000A969C 81 2D 82 C8 */ lwz r9, gx@sda21(r13) /* 800AC760 000A96A0 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800AC764 000A96A4 38 00 00 00 */ li r0, 0 /* 800AC768 000A96A8 39 49 01 D0 */ addi r10, r9, 0x1d0 /* 800AC76C 000A96AC 81 29 01 D0 */ lwz r9, 0x1d0(r9) /* 800AC770 000A96B0 55 29 07 FA */ rlwinm r9, r9, 0, 0x1f, 0x1d /* 800AC774 000A96B4 7D 28 43 78 */ or r8, r9, r8 /* 800AC778 000A96B8 91 0A 00 00 */ stw r8, 0(r10) /* 800AC77C 000A96BC 81 0D 82 C8 */ lwz r8, gx@sda21(r13) /* 800AC780 000A96C0 39 28 01 D0 */ addi r9, r8, 0x1d0 /* 800AC784 000A96C4 81 08 01 D0 */ lwz r8, 0x1d0(r8) /* 800AC788 000A96C8 55 08 05 1E */ rlwinm r8, r8, 0, 0x14, 0xf /* 800AC78C 000A96CC 7D 07 3B 78 */ or r7, r8, r7 /* 800AC790 000A96D0 90 E9 00 00 */ stw r7, 0(r9) /* 800AC794 000A96D4 80 ED 82 C8 */ lwz r7, gx@sda21(r13) /* 800AC798 000A96D8 39 07 01 D0 */ addi r8, r7, 0x1d0 /* 800AC79C 000A96DC 80 E7 01 D0 */ lwz r7, 0x1d0(r7) /* 800AC7A0 000A96E0 54 E7 06 28 */ rlwinm r7, r7, 0, 0x18, 0x14 /* 800AC7A4 000A96E4 7C E6 33 78 */ or r6, r7, r6 /* 800AC7A8 000A96E8 90 C8 00 00 */ stw r6, 0(r8) /* 800AC7AC 000A96EC 80 CD 82 C8 */ lwz r6, gx@sda21(r13) /* 800AC7B0 000A96F0 38 E6 01 D0 */ addi r7, r6, 0x1d0 /* 800AC7B4 000A96F4 80 C6 01 D0 */ lwz r6, 0x1d0(r6) /* 800AC7B8 000A96F8 54 C6 06 EE */ rlwinm r6, r6, 0, 0x1b, 0x17 /* 800AC7BC 000A96FC 7C C4 23 78 */ or r4, r6, r4 /* 800AC7C0 000A9700 90 87 00 00 */ stw r4, 0(r7) /* 800AC7C4 000A9704 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC7C8 000A9708 38 C4 01 D0 */ addi r6, r4, 0x1d0 /* 800AC7CC 000A970C 80 84 01 D0 */ lwz r4, 0x1d0(r4) /* 800AC7D0 000A9710 54 84 02 3E */ clrlwi r4, r4, 8 /* 800AC7D4 000A9714 64 84 41 00 */ oris r4, r4, 0x4100 /* 800AC7D8 000A9718 90 86 00 00 */ stw r4, 0(r6) /* 800AC7DC 000A971C 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800AC7E0 000A9720 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC7E4 000A9724 80 64 01 D0 */ lwz r3, 0x1d0(r4) /* 800AC7E8 000A9728 90 65 80 00 */ stw r3, -0x8000(r5) /* 800AC7EC 000A972C B0 04 00 02 */ sth r0, 2(r4) /* 800AC7F0 000A9730 4E 80 00 20 */ blr .global GXSetColorUpdate GXSetColorUpdate: /* 800AC7F4 000A9734 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC7F8 000A9738 54 60 1D 78 */ rlwinm r0, r3, 3, 0x15, 0x1c /* 800AC7FC 000A973C 38 60 00 61 */ li r3, 0x61 /* 800AC800 000A9740 38 C4 01 D0 */ addi r6, r4, 0x1d0 /* 800AC804 000A9744 80 84 01 D0 */ lwz r4, 0x1d0(r4) /* 800AC808 000A9748 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800AC80C 000A974C 54 84 07 76 */ rlwinm r4, r4, 0, 0x1d, 0x1b /* 800AC810 000A9750 7C 80 03 78 */ or r0, r4, r0 /* 800AC814 000A9754 90 06 00 00 */ stw r0, 0(r6) /* 800AC818 000A9758 38 00 00 00 */ li r0, 0 /* 800AC81C 000A975C 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800AC820 000A9760 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC824 000A9764 80 64 01 D0 */ lwz r3, 0x1d0(r4) /* 800AC828 000A9768 90 65 80 00 */ stw r3, -0x8000(r5) /* 800AC82C 000A976C B0 04 00 02 */ sth r0, 2(r4) /* 800AC830 000A9770 4E 80 00 20 */ blr .global GXSetAlphaUpdate GXSetAlphaUpdate: /* 800AC834 000A9774 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC838 000A9778 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b /* 800AC83C 000A977C 38 60 00 61 */ li r3, 0x61 /* 800AC840 000A9780 38 C4 01 D0 */ addi r6, r4, 0x1d0 /* 800AC844 000A9784 80 84 01 D0 */ lwz r4, 0x1d0(r4) /* 800AC848 000A9788 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800AC84C 000A978C 54 84 07 34 */ rlwinm r4, r4, 0, 0x1c, 0x1a /* 800AC850 000A9790 7C 80 03 78 */ or r0, r4, r0 /* 800AC854 000A9794 90 06 00 00 */ stw r0, 0(r6) /* 800AC858 000A9798 38 00 00 00 */ li r0, 0 /* 800AC85C 000A979C 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800AC860 000A97A0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC864 000A97A4 80 64 01 D0 */ lwz r3, 0x1d0(r4) /* 800AC868 000A97A8 90 65 80 00 */ stw r3, -0x8000(r5) /* 800AC86C 000A97AC B0 04 00 02 */ sth r0, 2(r4) /* 800AC870 000A97B0 4E 80 00 20 */ blr .global GXSetZMode GXSetZMode: /* 800AC874 000A97B4 80 CD 82 C8 */ lwz r6, gx@sda21(r13) /* 800AC878 000A97B8 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 800AC87C 000A97BC 80 66 01 D8 */ lwz r3, 0x1d8(r6) /* 800AC880 000A97C0 38 E6 01 D8 */ addi r7, r6, 0x1d8 /* 800AC884 000A97C4 54 86 08 3C */ slwi r6, r4, 1 /* 800AC888 000A97C8 54 63 00 3C */ rlwinm r3, r3, 0, 0, 0x1e /* 800AC88C 000A97CC 7C 60 03 78 */ or r0, r3, r0 /* 800AC890 000A97D0 90 07 00 00 */ stw r0, 0(r7) /* 800AC894 000A97D4 54 A4 25 36 */ rlwinm r4, r5, 4, 0x14, 0x1b /* 800AC898 000A97D8 38 60 00 61 */ li r3, 0x61 /* 800AC89C 000A97DC 80 ED 82 C8 */ lwz r7, gx@sda21(r13) /* 800AC8A0 000A97E0 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800AC8A4 000A97E4 38 00 00 00 */ li r0, 0 /* 800AC8A8 000A97E8 39 07 01 D8 */ addi r8, r7, 0x1d8 /* 800AC8AC 000A97EC 80 E7 01 D8 */ lwz r7, 0x1d8(r7) /* 800AC8B0 000A97F0 54 E7 07 F6 */ rlwinm r7, r7, 0, 0x1f, 0x1b /* 800AC8B4 000A97F4 7C E6 33 78 */ or r6, r7, r6 /* 800AC8B8 000A97F8 90 C8 00 00 */ stw r6, 0(r8) /* 800AC8BC 000A97FC 80 CD 82 C8 */ lwz r6, gx@sda21(r13) /* 800AC8C0 000A9800 38 E6 01 D8 */ addi r7, r6, 0x1d8 /* 800AC8C4 000A9804 80 C6 01 D8 */ lwz r6, 0x1d8(r6) /* 800AC8C8 000A9808 54 C6 07 34 */ rlwinm r6, r6, 0, 0x1c, 0x1a /* 800AC8CC 000A980C 7C C4 23 78 */ or r4, r6, r4 /* 800AC8D0 000A9810 90 87 00 00 */ stw r4, 0(r7) /* 800AC8D4 000A9814 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800AC8D8 000A9818 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC8DC 000A981C 80 64 01 D8 */ lwz r3, 0x1d8(r4) /* 800AC8E0 000A9820 90 65 80 00 */ stw r3, -0x8000(r5) /* 800AC8E4 000A9824 B0 04 00 02 */ sth r0, 2(r4) /* 800AC8E8 000A9828 4E 80 00 20 */ blr .global GXSetZCompLoc GXSetZCompLoc: /* 800AC8EC 000A982C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC8F0 000A9830 54 60 34 B2 */ rlwinm r0, r3, 6, 0x12, 0x19 /* 800AC8F4 000A9834 38 60 00 61 */ li r3, 0x61 /* 800AC8F8 000A9838 38 C4 01 DC */ addi r6, r4, 0x1dc /* 800AC8FC 000A983C 80 84 01 DC */ lwz r4, 0x1dc(r4) /* 800AC900 000A9840 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800AC904 000A9844 54 84 06 B0 */ rlwinm r4, r4, 0, 0x1a, 0x18 /* 800AC908 000A9848 7C 80 03 78 */ or r0, r4, r0 /* 800AC90C 000A984C 90 06 00 00 */ stw r0, 0(r6) /* 800AC910 000A9850 38 00 00 00 */ li r0, 0 /* 800AC914 000A9854 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800AC918 000A9858 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC91C 000A985C 80 64 01 DC */ lwz r3, 0x1dc(r4) /* 800AC920 000A9860 90 65 80 00 */ stw r3, -0x8000(r5) /* 800AC924 000A9864 B0 04 00 02 */ sth r0, 2(r4) /* 800AC928 000A9868 4E 80 00 20 */ blr .global GXSetPixelFmt GXSetPixelFmt: /* 800AC92C 000A986C 80 ED 82 C8 */ lwz r7, gx@sda21(r13) /* 800AC930 000A9870 3C A0 80 3B */ lis r5, p2f$194@ha /* 800AC934 000A9874 54 66 10 3A */ slwi r6, r3, 2 /* 800AC938 000A9878 39 07 01 DC */ addi r8, r7, 0x1dc /* 800AC93C 000A987C 38 05 1B 38 */ addi r0, r5, p2f$194@l /* 800AC940 000A9880 80 E7 01 DC */ lwz r7, 0x1dc(r7) /* 800AC944 000A9884 7D 20 32 14 */ add r9, r0, r6 /* 800AC948 000A9888 80 A9 00 00 */ lwz r5, 0(r9) /* 800AC94C 000A988C 54 E6 00 38 */ rlwinm r6, r7, 0, 0, 0x1c /* 800AC950 000A9890 54 80 18 38 */ slwi r0, r4, 3 /* 800AC954 000A9894 7C C4 2B 78 */ or r4, r6, r5 /* 800AC958 000A9898 90 88 00 00 */ stw r4, 0(r8) /* 800AC95C 000A989C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC960 000A98A0 38 A4 01 DC */ addi r5, r4, 0x1dc /* 800AC964 000A98A4 80 84 01 DC */ lwz r4, 0x1dc(r4) /* 800AC968 000A98A8 54 84 07 72 */ rlwinm r4, r4, 0, 0x1d, 0x19 /* 800AC96C 000A98AC 7C 80 03 78 */ or r0, r4, r0 /* 800AC970 000A98B0 90 05 00 00 */ stw r0, 0(r5) /* 800AC974 000A98B4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC978 000A98B8 80 A4 01 DC */ lwz r5, 0x1dc(r4) /* 800AC97C 000A98BC 7C 07 28 40 */ cmplw r7, r5 /* 800AC980 000A98C0 41 82 00 54 */ beq lbl_800AC9D4 /* 800AC984 000A98C4 38 00 00 61 */ li r0, 0x61 /* 800AC988 000A98C8 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 800AC98C 000A98CC 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 800AC990 000A98D0 2C 03 00 02 */ cmpwi r3, 2 /* 800AC994 000A98D4 90 A4 80 00 */ stw r5, -0x8000(r4) /* 800AC998 000A98D8 40 82 00 0C */ bne lbl_800AC9A4 /* 800AC99C 000A98DC 38 00 00 01 */ li r0, 1 /* 800AC9A0 000A98E0 48 00 00 08 */ b lbl_800AC9A8 lbl_800AC9A4: /* 800AC9A4 000A98E4 38 00 00 00 */ li r0, 0 lbl_800AC9A8: /* 800AC9A8 000A98E8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC9AC 000A98EC 54 00 4B EC */ rlwinm r0, r0, 9, 0xf, 0x16 /* 800AC9B0 000A98F0 38 A4 02 04 */ addi r5, r4, 0x204 /* 800AC9B4 000A98F4 80 84 02 04 */ lwz r4, 0x204(r4) /* 800AC9B8 000A98F8 54 84 05 EA */ rlwinm r4, r4, 0, 0x17, 0x15 /* 800AC9BC 000A98FC 7C 80 03 78 */ or r0, r4, r0 /* 800AC9C0 000A9900 90 05 00 00 */ stw r0, 0(r5) /* 800AC9C4 000A9904 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC9C8 000A9908 80 04 04 F4 */ lwz r0, 0x4f4(r4) /* 800AC9CC 000A990C 60 00 00 04 */ ori r0, r0, 4 /* 800AC9D0 000A9910 90 04 04 F4 */ stw r0, 0x4f4(r4) lbl_800AC9D4: /* 800AC9D4 000A9914 80 09 00 00 */ lwz r0, 0(r9) /* 800AC9D8 000A9918 28 00 00 04 */ cmplwi r0, 4 /* 800AC9DC 000A991C 40 82 00 50 */ bne lbl_800ACA2C /* 800AC9E0 000A9920 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800AC9E4 000A9924 38 63 FF FC */ addi r3, r3, -4 /* 800AC9E8 000A9928 38 00 00 61 */ li r0, 0x61 /* 800AC9EC 000A992C 38 A4 01 D4 */ addi r5, r4, 0x1d4 /* 800AC9F0 000A9930 80 84 01 D4 */ lwz r4, 0x1d4(r4) /* 800AC9F4 000A9934 54 84 05 E8 */ rlwinm r4, r4, 0, 0x17, 0x14 /* 800AC9F8 000A9938 50 64 4D 6C */ rlwimi r4, r3, 9, 0x15, 0x16 /* 800AC9FC 000A993C 90 85 00 00 */ stw r4, 0(r5) /* 800ACA00 000A9940 3C 80 CC 01 */ lis r4, 0xCC008000@ha /* 800ACA04 000A9944 80 6D 82 C8 */ lwz r3, gx@sda21(r13) /* 800ACA08 000A9948 38 A3 01 D4 */ addi r5, r3, 0x1d4 /* 800ACA0C 000A994C 80 63 01 D4 */ lwz r3, 0x1d4(r3) /* 800ACA10 000A9950 54 63 02 3E */ clrlwi r3, r3, 8 /* 800ACA14 000A9954 64 63 42 00 */ oris r3, r3, 0x4200 /* 800ACA18 000A9958 90 65 00 00 */ stw r3, 0(r5) /* 800ACA1C 000A995C 98 04 80 00 */ stb r0, 0xCC008000@l(r4) /* 800ACA20 000A9960 80 6D 82 C8 */ lwz r3, gx@sda21(r13) /* 800ACA24 000A9964 80 03 01 D4 */ lwz r0, 0x1d4(r3) /* 800ACA28 000A9968 90 04 80 00 */ stw r0, -0x8000(r4) lbl_800ACA2C: /* 800ACA2C 000A996C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) /* 800ACA30 000A9970 38 00 00 00 */ li r0, 0 /* 800ACA34 000A9974 B0 03 00 02 */ sth r0, 2(r3) /* 800ACA38 000A9978 4E 80 00 20 */ blr .global GXSetDither GXSetDither: /* 800ACA3C 000A997C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800ACA40 000A9980 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d /* 800ACA44 000A9984 38 60 00 61 */ li r3, 0x61 /* 800ACA48 000A9988 38 C4 01 D0 */ addi r6, r4, 0x1d0 /* 800ACA4C 000A998C 80 84 01 D0 */ lwz r4, 0x1d0(r4) /* 800ACA50 000A9990 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800ACA54 000A9994 54 84 07 B8 */ rlwinm r4, r4, 0, 0x1e, 0x1c /* 800ACA58 000A9998 7C 80 03 78 */ or r0, r4, r0 /* 800ACA5C 000A999C 90 06 00 00 */ stw r0, 0(r6) /* 800ACA60 000A99A0 38 00 00 00 */ li r0, 0 /* 800ACA64 000A99A4 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800ACA68 000A99A8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800ACA6C 000A99AC 80 64 01 D0 */ lwz r3, 0x1d0(r4) /* 800ACA70 000A99B0 90 65 80 00 */ stw r3, -0x8000(r5) /* 800ACA74 000A99B4 B0 04 00 02 */ sth r0, 2(r4) /* 800ACA78 000A99B8 4E 80 00 20 */ blr .global GXSetDstAlpha GXSetDstAlpha: /* 800ACA7C 000A99BC 80 AD 82 C8 */ lwz r5, gx@sda21(r13) /* 800ACA80 000A99C0 54 66 44 2E */ rlwinm r6, r3, 8, 0x10, 0x17 /* 800ACA84 000A99C4 84 05 01 D4 */ lwzu r0, 0x1d4(r5) /* 800ACA88 000A99C8 38 60 00 61 */ li r3, 0x61 /* 800ACA8C 000A99CC 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17 /* 800ACA90 000A99D0 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f /* 800ACA94 000A99D4 90 05 00 00 */ stw r0, 0(r5) /* 800ACA98 000A99D8 3C A0 CC 01 */ lis r5, 0xCC008000@ha /* 800ACA9C 000A99DC 38 00 00 00 */ li r0, 0 /* 800ACAA0 000A99E0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800ACAA4 000A99E4 38 E4 01 D4 */ addi r7, r4, 0x1d4 /* 800ACAA8 000A99E8 80 84 01 D4 */ lwz r4, 0x1d4(r4) /* 800ACAAC 000A99EC 54 84 06 2C */ rlwinm r4, r4, 0, 0x18, 0x16 /* 800ACAB0 000A99F0 7C 84 33 78 */ or r4, r4, r6 /* 800ACAB4 000A99F4 90 87 00 00 */ stw r4, 0(r7) /* 800ACAB8 000A99F8 98 65 80 00 */ stb r3, 0xCC008000@l(r5) /* 800ACABC 000A99FC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800ACAC0 000A9A00 80 64 01 D4 */ lwz r3, 0x1d4(r4) /* 800ACAC4 000A9A04 90 65 80 00 */ stw r3, -0x8000(r5) /* 800ACAC8 000A9A08 B0 04 00 02 */ sth r0, 2(r4) /* 800ACACC 000A9A0C 4E 80 00 20 */ blr .global GXSetFieldMask GXSetFieldMask: /* 800ACAD0 000A9A10 54 80 06 3E */ clrlwi r0, r4, 0x18 /* 800ACAD4 000A9A14 80 8D 82 C8 */ lwz r4, gx@sda21(r13) /* 800ACAD8 000A9A18 54 05 07 FA */ rlwinm r5, r0, 0, 0x1f, 0x1d /* 800ACADC 000A9A1C 54 60 0D FC */ rlwinm r0, r3, 1, 0x17, 0x1e /* 800ACAE0 000A9A20 7C A0 03 78 */ or r0, r5, r0 /* 800ACAE4 000A9A24 54 05 02 3E */ clrlwi r5, r0, 8 /* 800ACAE8 000A9A28 38 00 00 61 */ li r0, 0x61 /* 800ACAEC 000A9A2C 3C 60 CC 01 */ lis r3, 0xCC008000@ha /* 800ACAF0 000A9A30 98 03 80 00 */ stb r0, 0xCC008000@l(r3) /* 800ACAF4 000A9A34 64 A5 44 00 */ oris r5, r5, 0x4400 /* 800ACAF8 000A9A38 38 00 00 00 */ li r0, 0 /* 800ACAFC 000A9A3C 90 A3 80 00 */ stw r5, -0x8000(r3) /* 800ACB00 000A9A40 B0 04 00 02 */ sth r0, 2(r4) /* 800ACB04 000A9A44 4E 80 00 20 */ blr .global GXSetFieldMode GXSetFieldMode: /* 800ACB08 000A9A48 7C 08 02 A6 */ mflr r0 /* 800ACB0C 000A9A4C 90 01 00 04 */ stw r0, 4(r1) /* 800ACB10 000A9A50 54 80 B0 92 */ rlwinm r0, r4, 0x16, 2, 9 /* 800ACB14 000A9A54 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800ACB18 000A9A58 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800ACB1C 000A9A5C 3F E0 CC 01 */ lis r31, 0xCC008000@ha /* 800ACB20 000A9A60 93 C1 00 18 */ stw r30, 0x18(r1) /* 800ACB24 000A9A64 3B C0 00 61 */ li r30, 0x61 /* 800ACB28 000A9A68 93 A1 00 14 */ stw r29, 0x14(r1) /* 800ACB2C 000A9A6C 7C 7D 1B 78 */ mr r29, r3 /* 800ACB30 000A9A70 80 AD 82 C8 */ lwz r5, gx@sda21(r13) /* 800ACB34 000A9A74 84 85 00 7C */ lwzu r4, 0x7c(r5) /* 800ACB38 000A9A78 54 84 02 90 */ rlwinm r4, r4, 0, 0xa, 8 /* 800ACB3C 000A9A7C 7C 80 03 78 */ or r0, r4, r0 /* 800ACB40 000A9A80 90 05 00 00 */ stw r0, 0(r5) /* 800ACB44 000A9A84 9B DF 80 00 */ stb r30, 0xCC008000@l(r31) /* 800ACB48 000A9A88 80 6D 82 C8 */ lwz r3, gx@sda21(r13) /* 800ACB4C 000A9A8C 80 03 00 7C */ lwz r0, 0x7c(r3) /* 800ACB50 000A9A90 90 1F 80 00 */ stw r0, -0x8000(r31) /* 800ACB54 000A9A94 4B FF EE 91 */ bl __GXFlushTextureState /* 800ACB58 000A9A98 57 A0 06 3E */ clrlwi r0, r29, 0x18 /* 800ACB5C 000A9A9C 9B DF 80 00 */ stb r30, -0x8000(r31) /* 800ACB60 000A9AA0 64 00 68 00 */ oris r0, r0, 0x6800 /* 800ACB64 000A9AA4 90 1F 80 00 */ stw r0, -0x8000(r31) /* 800ACB68 000A9AA8 4B FF EE 7D */ bl __GXFlushTextureState /* 800ACB6C 000A9AAC 80 01 00 24 */ lwz r0, 0x24(r1) /* 800ACB70 000A9AB0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800ACB74 000A9AB4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800ACB78 000A9AB8 83 A1 00 14 */ lwz r29, 0x14(r1) /* 800ACB7C 000A9ABC 38 21 00 20 */ addi r1, r1, 0x20 /* 800ACB80 000A9AC0 7C 08 03 A6 */ mtlr r0 /* 800ACB84 000A9AC4 4E 80 00 20 */ blr .section .data, "wa" # 0x803A8380 - 0x803E6000 p2f$194: .4byte 0 .4byte 0x00000001 .4byte 0x00000002 .4byte 0x00000003 .4byte 0x00000004 .4byte 0x00000004 .4byte 0x00000004 .4byte 0x00000005 .section .sdata2, "a" # 0x8040B460 - 0x80414020 .balign 8 "@125": .4byte 0 "@126": .4byte 0x3F000000 "@127": .4byte 0x3FF00000 .4byte 0 "@128": .4byte 0x40000000 .4byte 0 "@129": .4byte 0x3FE00000 .4byte 0 "@130": .4byte 0x4B00001E .4byte 0 "@132": .4byte 0x43300000 .4byte 0x80000000