diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-02 17:29:19 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-03 13:27:06 -0400 |
commit | f2eabdb6257c09cf2890dac5e9737912728542af (patch) | |
tree | 3b46f6787185d65605651a0f48776dc9779ce648 /asm/Dolphin/gx | |
parent | eef1dd840b7cecac28c2e6b0574707b90a37d4e7 (diff) |
global: Add rest of Dolphin SDK proper, add MSL, and MetroTRK
Finally, it links properly.
Diffstat (limited to 'asm/Dolphin/gx')
-rw-r--r-- | asm/Dolphin/gx/GXAttr.s | 2086 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXBump.s | 501 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXDisplayList.s | 35 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXDraw.s | 560 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXFifo.s | 577 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXFrameBuf.s | 1044 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXGeometry.s | 298 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXInit.s | 1184 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXLight.s | 653 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXMisc.s | 499 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXPerf.s | 748 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXPixel.s | 551 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXStubs.s | 6 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXTev.s | 752 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXTexture.s | 1431 | ||||
-rw-r--r-- | asm/Dolphin/gx/GXTransform.s | 608 |
16 files changed, 11533 insertions, 0 deletions
diff --git a/asm/Dolphin/gx/GXAttr.s b/asm/Dolphin/gx/GXAttr.s new file mode 100644 index 0000000..2fa91ae --- /dev/null +++ b/asm/Dolphin/gx/GXAttr.s @@ -0,0 +1,2086 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __GXXfVtxSpecs +__GXXfVtxSpecs: +/* 800A6790 000A36D0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6794 000A36D4 80 85 00 14 */ lwz r4, 0x14(r5) +/* 800A6798 000A36D8 54 80 9F BF */ rlwinm. r0, r4, 0x13, 0x1e, 0x1f +/* 800A679C 000A36DC 41 82 00 0C */ beq lbl_800A67A8 +/* 800A67A0 000A36E0 38 60 00 01 */ li r3, 1 +/* 800A67A4 000A36E4 48 00 00 08 */ b lbl_800A67AC +lbl_800A67A8: +/* 800A67A8 000A36E8 38 60 00 00 */ li r3, 0 +lbl_800A67AC: +/* 800A67AC 000A36EC 54 80 8F BF */ rlwinm. r0, r4, 0x11, 0x1e, 0x1f +/* 800A67B0 000A36F0 41 82 00 0C */ beq lbl_800A67BC +/* 800A67B4 000A36F4 38 80 00 01 */ li r4, 1 +/* 800A67B8 000A36F8 48 00 00 08 */ b lbl_800A67C0 +lbl_800A67BC: +/* 800A67BC 000A36FC 38 80 00 00 */ li r4, 0 +lbl_800A67C0: +/* 800A67C0 000A3700 88 05 04 1D */ lbz r0, 0x41d(r5) +/* 800A67C4 000A3704 7C E3 22 14 */ add r7, r3, r4 +/* 800A67C8 000A3708 28 00 00 00 */ cmplwi r0, 0 +/* 800A67CC 000A370C 41 82 00 0C */ beq lbl_800A67D8 +/* 800A67D0 000A3710 38 80 00 02 */ li r4, 2 +/* 800A67D4 000A3714 48 00 00 1C */ b lbl_800A67F0 +lbl_800A67D8: +/* 800A67D8 000A3718 88 05 04 1C */ lbz r0, 0x41c(r5) +/* 800A67DC 000A371C 28 00 00 00 */ cmplwi r0, 0 +/* 800A67E0 000A3720 41 82 00 0C */ beq lbl_800A67EC +/* 800A67E4 000A3724 38 80 00 01 */ li r4, 1 +/* 800A67E8 000A3728 48 00 00 08 */ b lbl_800A67F0 +lbl_800A67EC: +/* 800A67EC 000A372C 38 80 00 00 */ li r4, 0 +lbl_800A67F0: +/* 800A67F0 000A3730 80 C5 00 18 */ lwz r6, 0x18(r5) +/* 800A67F4 000A3734 54 C0 07 BF */ clrlwi. r0, r6, 0x1e +/* 800A67F8 000A3738 41 82 00 0C */ beq lbl_800A6804 +/* 800A67FC 000A373C 38 60 00 01 */ li r3, 1 +/* 800A6800 000A3740 48 00 00 08 */ b lbl_800A6808 +lbl_800A6804: +/* 800A6804 000A3744 38 60 00 00 */ li r3, 0 +lbl_800A6808: +/* 800A6808 000A3748 54 C0 F7 BF */ rlwinm. r0, r6, 0x1e, 0x1e, 0x1f +/* 800A680C 000A374C 41 82 00 0C */ beq lbl_800A6818 +/* 800A6810 000A3750 38 A0 00 01 */ li r5, 1 +/* 800A6814 000A3754 48 00 00 08 */ b lbl_800A681C +lbl_800A6818: +/* 800A6818 000A3758 38 A0 00 00 */ li r5, 0 +lbl_800A681C: +/* 800A681C 000A375C 54 C0 E7 BF */ rlwinm. r0, r6, 0x1c, 0x1e, 0x1f +/* 800A6820 000A3760 7D 03 2A 14 */ add r8, r3, r5 +/* 800A6824 000A3764 41 82 00 0C */ beq lbl_800A6830 +/* 800A6828 000A3768 38 60 00 01 */ li r3, 1 +/* 800A682C 000A376C 48 00 00 08 */ b lbl_800A6834 +lbl_800A6830: +/* 800A6830 000A3770 38 60 00 00 */ li r3, 0 +lbl_800A6834: +/* 800A6834 000A3774 54 C0 D7 BF */ rlwinm. r0, r6, 0x1a, 0x1e, 0x1f +/* 800A6838 000A3778 7D 08 1A 14 */ add r8, r8, r3 +/* 800A683C 000A377C 41 82 00 0C */ beq lbl_800A6848 +/* 800A6840 000A3780 38 60 00 01 */ li r3, 1 +/* 800A6844 000A3784 48 00 00 08 */ b lbl_800A684C +lbl_800A6848: +/* 800A6848 000A3788 38 60 00 00 */ li r3, 0 +lbl_800A684C: +/* 800A684C 000A378C 54 C0 C7 BF */ rlwinm. r0, r6, 0x18, 0x1e, 0x1f +/* 800A6850 000A3790 7D 08 1A 14 */ add r8, r8, r3 +/* 800A6854 000A3794 41 82 00 0C */ beq lbl_800A6860 +/* 800A6858 000A3798 38 60 00 01 */ li r3, 1 +/* 800A685C 000A379C 48 00 00 08 */ b lbl_800A6864 +lbl_800A6860: +/* 800A6860 000A37A0 38 60 00 00 */ li r3, 0 +lbl_800A6864: +/* 800A6864 000A37A4 54 C0 B7 BF */ rlwinm. r0, r6, 0x16, 0x1e, 0x1f +/* 800A6868 000A37A8 7D 08 1A 14 */ add r8, r8, r3 +/* 800A686C 000A37AC 41 82 00 0C */ beq lbl_800A6878 +/* 800A6870 000A37B0 38 60 00 01 */ li r3, 1 +/* 800A6874 000A37B4 48 00 00 08 */ b lbl_800A687C +lbl_800A6878: +/* 800A6878 000A37B8 38 60 00 00 */ li r3, 0 +lbl_800A687C: +/* 800A687C 000A37BC 54 C0 A7 BF */ rlwinm. r0, r6, 0x14, 0x1e, 0x1f +/* 800A6880 000A37C0 7D 08 1A 14 */ add r8, r8, r3 +/* 800A6884 000A37C4 41 82 00 0C */ beq lbl_800A6890 +/* 800A6888 000A37C8 38 60 00 01 */ li r3, 1 +/* 800A688C 000A37CC 48 00 00 08 */ b lbl_800A6894 +lbl_800A6890: +/* 800A6890 000A37D0 38 60 00 00 */ li r3, 0 +lbl_800A6894: +/* 800A6894 000A37D4 54 C0 97 BF */ rlwinm. r0, r6, 0x12, 0x1e, 0x1f +/* 800A6898 000A37D8 7D 08 1A 14 */ add r8, r8, r3 +/* 800A689C 000A37DC 41 82 00 0C */ beq lbl_800A68A8 +/* 800A68A0 000A37E0 38 C0 00 01 */ li r6, 1 +/* 800A68A4 000A37E4 48 00 00 08 */ b lbl_800A68AC +lbl_800A68A8: +/* 800A68A8 000A37E8 38 C0 00 00 */ li r6, 0 +lbl_800A68AC: +/* 800A68AC 000A37EC 38 00 00 10 */ li r0, 0x10 +/* 800A68B0 000A37F0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A68B4 000A37F4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A68B8 000A37F8 7D 08 32 14 */ add r8, r8, r6 +/* 800A68BC 000A37FC 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A68C0 000A3800 54 80 10 3A */ slwi r0, r4, 2 +/* 800A68C4 000A3804 38 80 10 08 */ li r4, 0x1008 +/* 800A68C8 000A3808 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A68CC 000A380C 55 04 20 36 */ slwi r4, r8, 4 +/* 800A68D0 000A3810 7C E0 03 78 */ or r0, r7, r0 +/* 800A68D4 000A3814 7C 80 03 78 */ or r0, r4, r0 +/* 800A68D8 000A3818 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800A68DC 000A381C 38 00 00 01 */ li r0, 1 +/* 800A68E0 000A3820 B0 03 00 02 */ sth r0, 2(r3) +/* 800A68E4 000A3824 4E 80 00 20 */ blr + +.global GXSetVtxDesc +GXSetVtxDesc: +/* 800A68E8 000A3828 28 03 00 19 */ cmplwi r3, 0x19 +/* 800A68EC 000A382C 41 81 03 00 */ bgt lbl_800A6BEC +/* 800A68F0 000A3830 3C A0 80 3B */ lis r5, "@128"@ha +/* 800A68F4 000A3834 38 A5 15 40 */ addi r5, r5, "@128"@l +/* 800A68F8 000A3838 54 60 10 3A */ slwi r0, r3, 2 +/* 800A68FC 000A383C 7C 05 00 2E */ lwzx r0, r5, r0 +/* 800A6900 000A3840 7C 09 03 A6 */ mtctr r0 +/* 800A6904 000A3844 4E 80 04 20 */ bctr +lbl_800A6908: +/* 800A6908 000A3848 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A690C 000A384C 84 03 00 14 */ lwzu r0, 0x14(r3) +/* 800A6910 000A3850 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A6914 000A3854 7C 00 23 78 */ or r0, r0, r4 +/* 800A6918 000A3858 90 03 00 00 */ stw r0, 0(r3) +/* 800A691C 000A385C 48 00 02 D0 */ b lbl_800A6BEC +lbl_800A6920: +/* 800A6920 000A3860 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6924 000A3864 54 80 08 3C */ slwi r0, r4, 1 +/* 800A6928 000A3868 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A692C 000A386C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6930 000A3870 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d +/* 800A6934 000A3874 7C 60 03 78 */ or r0, r3, r0 +/* 800A6938 000A3878 90 04 00 00 */ stw r0, 0(r4) +/* 800A693C 000A387C 48 00 02 B0 */ b lbl_800A6BEC +lbl_800A6940: +/* 800A6940 000A3880 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6944 000A3884 54 80 10 3A */ slwi r0, r4, 2 +/* 800A6948 000A3888 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A694C 000A388C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6950 000A3890 54 63 07 B8 */ rlwinm r3, r3, 0, 0x1e, 0x1c +/* 800A6954 000A3894 7C 60 03 78 */ or r0, r3, r0 +/* 800A6958 000A3898 90 04 00 00 */ stw r0, 0(r4) +/* 800A695C 000A389C 48 00 02 90 */ b lbl_800A6BEC +lbl_800A6960: +/* 800A6960 000A38A0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6964 000A38A4 54 80 18 38 */ slwi r0, r4, 3 +/* 800A6968 000A38A8 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A696C 000A38AC 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6970 000A38B0 54 63 07 76 */ rlwinm r3, r3, 0, 0x1d, 0x1b +/* 800A6974 000A38B4 7C 60 03 78 */ or r0, r3, r0 +/* 800A6978 000A38B8 90 04 00 00 */ stw r0, 0(r4) +/* 800A697C 000A38BC 48 00 02 70 */ b lbl_800A6BEC +lbl_800A6980: +/* 800A6980 000A38C0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6984 000A38C4 54 80 20 36 */ slwi r0, r4, 4 +/* 800A6988 000A38C8 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A698C 000A38CC 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6990 000A38D0 54 63 07 34 */ rlwinm r3, r3, 0, 0x1c, 0x1a +/* 800A6994 000A38D4 7C 60 03 78 */ or r0, r3, r0 +/* 800A6998 000A38D8 90 04 00 00 */ stw r0, 0(r4) +/* 800A699C 000A38DC 48 00 02 50 */ b lbl_800A6BEC +lbl_800A69A0: +/* 800A69A0 000A38E0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A69A4 000A38E4 54 80 28 34 */ slwi r0, r4, 5 +/* 800A69A8 000A38E8 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A69AC 000A38EC 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A69B0 000A38F0 54 63 06 F2 */ rlwinm r3, r3, 0, 0x1b, 0x19 +/* 800A69B4 000A38F4 7C 60 03 78 */ or r0, r3, r0 +/* 800A69B8 000A38F8 90 04 00 00 */ stw r0, 0(r4) +/* 800A69BC 000A38FC 48 00 02 30 */ b lbl_800A6BEC +lbl_800A69C0: +/* 800A69C0 000A3900 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A69C4 000A3904 54 80 30 32 */ slwi r0, r4, 6 +/* 800A69C8 000A3908 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A69CC 000A390C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A69D0 000A3910 54 63 06 B0 */ rlwinm r3, r3, 0, 0x1a, 0x18 +/* 800A69D4 000A3914 7C 60 03 78 */ or r0, r3, r0 +/* 800A69D8 000A3918 90 04 00 00 */ stw r0, 0(r4) +/* 800A69DC 000A391C 48 00 02 10 */ b lbl_800A6BEC +lbl_800A69E0: +/* 800A69E0 000A3920 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A69E4 000A3924 54 80 38 30 */ slwi r0, r4, 7 +/* 800A69E8 000A3928 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A69EC 000A392C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A69F0 000A3930 54 63 06 6E */ rlwinm r3, r3, 0, 0x19, 0x17 +/* 800A69F4 000A3934 7C 60 03 78 */ or r0, r3, r0 +/* 800A69F8 000A3938 90 04 00 00 */ stw r0, 0(r4) +/* 800A69FC 000A393C 48 00 01 F0 */ b lbl_800A6BEC +lbl_800A6A00: +/* 800A6A00 000A3940 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A04 000A3944 54 80 40 2E */ slwi r0, r4, 8 +/* 800A6A08 000A3948 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A6A0C 000A394C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6A10 000A3950 54 63 06 2C */ rlwinm r3, r3, 0, 0x18, 0x16 +/* 800A6A14 000A3954 7C 60 03 78 */ or r0, r3, r0 +/* 800A6A18 000A3958 90 04 00 00 */ stw r0, 0(r4) +/* 800A6A1C 000A395C 48 00 01 D0 */ b lbl_800A6BEC +lbl_800A6A20: +/* 800A6A20 000A3960 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A24 000A3964 54 80 48 2C */ slwi r0, r4, 9 +/* 800A6A28 000A3968 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A6A2C 000A396C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6A30 000A3970 54 63 05 E8 */ rlwinm r3, r3, 0, 0x17, 0x14 +/* 800A6A34 000A3974 7C 60 03 78 */ or r0, r3, r0 +/* 800A6A38 000A3978 90 04 00 00 */ stw r0, 0(r4) +/* 800A6A3C 000A397C 48 00 01 B0 */ b lbl_800A6BEC +lbl_800A6A40: +/* 800A6A40 000A3980 2C 04 00 00 */ cmpwi r4, 0 +/* 800A6A44 000A3984 41 82 00 28 */ beq lbl_800A6A6C +/* 800A6A48 000A3988 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A4C 000A398C 38 A0 00 01 */ li r5, 1 +/* 800A6A50 000A3990 38 00 00 00 */ li r0, 0 +/* 800A6A54 000A3994 98 A3 04 1C */ stb r5, 0x41c(r3) +/* 800A6A58 000A3998 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A5C 000A399C 98 03 04 1D */ stb r0, 0x41d(r3) +/* 800A6A60 000A39A0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A64 000A39A4 90 83 04 18 */ stw r4, 0x418(r3) +/* 800A6A68 000A39A8 48 00 01 84 */ b lbl_800A6BEC +lbl_800A6A6C: +/* 800A6A6C 000A39AC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A70 000A39B0 38 00 00 00 */ li r0, 0 +/* 800A6A74 000A39B4 98 03 04 1C */ stb r0, 0x41c(r3) +/* 800A6A78 000A39B8 48 00 01 74 */ b lbl_800A6BEC +lbl_800A6A7C: +/* 800A6A7C 000A39BC 2C 04 00 00 */ cmpwi r4, 0 +/* 800A6A80 000A39C0 41 82 00 28 */ beq lbl_800A6AA8 +/* 800A6A84 000A39C4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A88 000A39C8 38 A0 00 01 */ li r5, 1 +/* 800A6A8C 000A39CC 38 00 00 00 */ li r0, 0 +/* 800A6A90 000A39D0 98 A3 04 1D */ stb r5, 0x41d(r3) +/* 800A6A94 000A39D4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6A98 000A39D8 98 03 04 1C */ stb r0, 0x41c(r3) +/* 800A6A9C 000A39DC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6AA0 000A39E0 90 83 04 18 */ stw r4, 0x418(r3) +/* 800A6AA4 000A39E4 48 00 01 48 */ b lbl_800A6BEC +lbl_800A6AA8: +/* 800A6AA8 000A39E8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6AAC 000A39EC 38 00 00 00 */ li r0, 0 +/* 800A6AB0 000A39F0 98 03 04 1D */ stb r0, 0x41d(r3) +/* 800A6AB4 000A39F4 48 00 01 38 */ b lbl_800A6BEC +lbl_800A6AB8: +/* 800A6AB8 000A39F8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6ABC 000A39FC 54 80 68 24 */ slwi r0, r4, 0xd +/* 800A6AC0 000A3A00 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A6AC4 000A3A04 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6AC8 000A3A08 54 63 04 E0 */ rlwinm r3, r3, 0, 0x13, 0x10 +/* 800A6ACC 000A3A0C 7C 60 03 78 */ or r0, r3, r0 +/* 800A6AD0 000A3A10 90 04 00 00 */ stw r0, 0(r4) +/* 800A6AD4 000A3A14 48 00 01 18 */ b lbl_800A6BEC +lbl_800A6AD8: +/* 800A6AD8 000A3A18 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6ADC 000A3A1C 54 80 78 20 */ slwi r0, r4, 0xf +/* 800A6AE0 000A3A20 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A6AE4 000A3A24 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6AE8 000A3A28 54 63 04 5C */ rlwinm r3, r3, 0, 0x11, 0xe +/* 800A6AEC 000A3A2C 7C 60 03 78 */ or r0, r3, r0 +/* 800A6AF0 000A3A30 90 04 00 00 */ stw r0, 0(r4) +/* 800A6AF4 000A3A34 48 00 00 F8 */ b lbl_800A6BEC +lbl_800A6AF8: +/* 800A6AF8 000A3A38 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6AFC 000A3A3C 84 03 00 18 */ lwzu r0, 0x18(r3) +/* 800A6B00 000A3A40 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d +/* 800A6B04 000A3A44 7C 00 23 78 */ or r0, r0, r4 +/* 800A6B08 000A3A48 90 03 00 00 */ stw r0, 0(r3) +/* 800A6B0C 000A3A4C 48 00 00 E0 */ b lbl_800A6BEC +lbl_800A6B10: +/* 800A6B10 000A3A50 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6B14 000A3A54 54 80 10 3A */ slwi r0, r4, 2 +/* 800A6B18 000A3A58 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6B1C 000A3A5C 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6B20 000A3A60 54 63 07 B6 */ rlwinm r3, r3, 0, 0x1e, 0x1b +/* 800A6B24 000A3A64 7C 60 03 78 */ or r0, r3, r0 +/* 800A6B28 000A3A68 90 04 00 00 */ stw r0, 0(r4) +/* 800A6B2C 000A3A6C 48 00 00 C0 */ b lbl_800A6BEC +lbl_800A6B30: +/* 800A6B30 000A3A70 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6B34 000A3A74 54 80 20 36 */ slwi r0, r4, 4 +/* 800A6B38 000A3A78 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6B3C 000A3A7C 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6B40 000A3A80 54 63 07 32 */ rlwinm r3, r3, 0, 0x1c, 0x19 +/* 800A6B44 000A3A84 7C 60 03 78 */ or r0, r3, r0 +/* 800A6B48 000A3A88 90 04 00 00 */ stw r0, 0(r4) +/* 800A6B4C 000A3A8C 48 00 00 A0 */ b lbl_800A6BEC +lbl_800A6B50: +/* 800A6B50 000A3A90 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6B54 000A3A94 54 80 30 32 */ slwi r0, r4, 6 +/* 800A6B58 000A3A98 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6B5C 000A3A9C 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6B60 000A3AA0 54 63 06 AE */ rlwinm r3, r3, 0, 0x1a, 0x17 +/* 800A6B64 000A3AA4 7C 60 03 78 */ or r0, r3, r0 +/* 800A6B68 000A3AA8 90 04 00 00 */ stw r0, 0(r4) +/* 800A6B6C 000A3AAC 48 00 00 80 */ b lbl_800A6BEC +lbl_800A6B70: +/* 800A6B70 000A3AB0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6B74 000A3AB4 54 80 40 2E */ slwi r0, r4, 8 +/* 800A6B78 000A3AB8 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6B7C 000A3ABC 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6B80 000A3AC0 54 63 06 2A */ rlwinm r3, r3, 0, 0x18, 0x15 +/* 800A6B84 000A3AC4 7C 60 03 78 */ or r0, r3, r0 +/* 800A6B88 000A3AC8 90 04 00 00 */ stw r0, 0(r4) +/* 800A6B8C 000A3ACC 48 00 00 60 */ b lbl_800A6BEC +lbl_800A6B90: +/* 800A6B90 000A3AD0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6B94 000A3AD4 54 80 50 2A */ slwi r0, r4, 0xa +/* 800A6B98 000A3AD8 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6B9C 000A3ADC 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6BA0 000A3AE0 54 63 05 A6 */ rlwinm r3, r3, 0, 0x16, 0x13 +/* 800A6BA4 000A3AE4 7C 60 03 78 */ or r0, r3, r0 +/* 800A6BA8 000A3AE8 90 04 00 00 */ stw r0, 0(r4) +/* 800A6BAC 000A3AEC 48 00 00 40 */ b lbl_800A6BEC +lbl_800A6BB0: +/* 800A6BB0 000A3AF0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6BB4 000A3AF4 54 80 60 26 */ slwi r0, r4, 0xc +/* 800A6BB8 000A3AF8 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6BBC 000A3AFC 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6BC0 000A3B00 54 63 05 22 */ rlwinm r3, r3, 0, 0x14, 0x11 +/* 800A6BC4 000A3B04 7C 60 03 78 */ or r0, r3, r0 +/* 800A6BC8 000A3B08 90 04 00 00 */ stw r0, 0(r4) +/* 800A6BCC 000A3B0C 48 00 00 20 */ b lbl_800A6BEC +lbl_800A6BD0: +/* 800A6BD0 000A3B10 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6BD4 000A3B14 54 80 70 22 */ slwi r0, r4, 0xe +/* 800A6BD8 000A3B18 38 83 00 18 */ addi r4, r3, 0x18 +/* 800A6BDC 000A3B1C 80 63 00 18 */ lwz r3, 0x18(r3) +/* 800A6BE0 000A3B20 54 63 04 9E */ rlwinm r3, r3, 0, 0x12, 0xf +/* 800A6BE4 000A3B24 7C 60 03 78 */ or r0, r3, r0 +/* 800A6BE8 000A3B28 90 04 00 00 */ stw r0, 0(r4) +lbl_800A6BEC: +/* 800A6BEC 000A3B2C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6BF0 000A3B30 88 03 04 1C */ lbz r0, 0x41c(r3) +/* 800A6BF4 000A3B34 28 00 00 00 */ cmplwi r0, 0 +/* 800A6BF8 000A3B38 40 82 00 10 */ bne lbl_800A6C08 +/* 800A6BFC 000A3B3C 88 03 04 1D */ lbz r0, 0x41d(r3) +/* 800A6C00 000A3B40 28 00 00 00 */ cmplwi r0, 0 +/* 800A6C04 000A3B44 41 82 00 24 */ beq lbl_800A6C28 +lbl_800A6C08: +/* 800A6C08 000A3B48 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A6C0C 000A3B4C 80 03 04 18 */ lwz r0, 0x418(r3) +/* 800A6C10 000A3B50 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6C14 000A3B54 54 00 58 28 */ slwi r0, r0, 0xb +/* 800A6C18 000A3B58 54 63 05 64 */ rlwinm r3, r3, 0, 0x15, 0x12 +/* 800A6C1C 000A3B5C 7C 60 03 78 */ or r0, r3, r0 +/* 800A6C20 000A3B60 90 04 00 00 */ stw r0, 0(r4) +/* 800A6C24 000A3B64 48 00 00 10 */ b lbl_800A6C34 +lbl_800A6C28: +/* 800A6C28 000A3B68 84 03 00 14 */ lwzu r0, 0x14(r3) +/* 800A6C2C 000A3B6C 54 00 05 64 */ rlwinm r0, r0, 0, 0x15, 0x12 +/* 800A6C30 000A3B70 90 03 00 00 */ stw r0, 0(r3) +lbl_800A6C34: +/* 800A6C34 000A3B74 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6C38 000A3B78 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A6C3C 000A3B7C 60 00 00 08 */ ori r0, r0, 8 +/* 800A6C40 000A3B80 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A6C44 000A3B84 4E 80 00 20 */ blr + +.global GXSetVtxDescv +GXSetVtxDescv: +/* 800A6C48 000A3B88 3C 80 80 3B */ lis r4, "@189"@ha +/* 800A6C4C 000A3B8C 38 84 15 A8 */ addi r4, r4, "@189"@l +/* 800A6C50 000A3B90 48 00 03 14 */ b lbl_800A6F64 +lbl_800A6C54: +/* 800A6C54 000A3B94 80 A3 00 00 */ lwz r5, 0(r3) +/* 800A6C58 000A3B98 80 03 00 04 */ lwz r0, 4(r3) +/* 800A6C5C 000A3B9C 28 05 00 19 */ cmplwi r5, 0x19 +/* 800A6C60 000A3BA0 41 81 03 00 */ bgt lbl_800A6F60 +/* 800A6C64 000A3BA4 54 A5 10 3A */ slwi r5, r5, 2 +/* 800A6C68 000A3BA8 7C A4 28 2E */ lwzx r5, r4, r5 +/* 800A6C6C 000A3BAC 7C A9 03 A6 */ mtctr r5 +/* 800A6C70 000A3BB0 4E 80 04 20 */ bctr +lbl_800A6C74: +/* 800A6C74 000A3BB4 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6C78 000A3BB8 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6C7C 000A3BBC 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6C80 000A3BC0 54 A5 00 3C */ rlwinm r5, r5, 0, 0, 0x1e +/* 800A6C84 000A3BC4 7C A0 03 78 */ or r0, r5, r0 +/* 800A6C88 000A3BC8 90 06 00 00 */ stw r0, 0(r6) +/* 800A6C8C 000A3BCC 48 00 02 D4 */ b lbl_800A6F60 +lbl_800A6C90: +/* 800A6C90 000A3BD0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6C94 000A3BD4 54 00 08 3C */ slwi r0, r0, 1 +/* 800A6C98 000A3BD8 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6C9C 000A3BDC 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6CA0 000A3BE0 54 A5 07 FA */ rlwinm r5, r5, 0, 0x1f, 0x1d +/* 800A6CA4 000A3BE4 7C A0 03 78 */ or r0, r5, r0 +/* 800A6CA8 000A3BE8 90 06 00 00 */ stw r0, 0(r6) +/* 800A6CAC 000A3BEC 48 00 02 B4 */ b lbl_800A6F60 +lbl_800A6CB0: +/* 800A6CB0 000A3BF0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6CB4 000A3BF4 54 00 10 3A */ slwi r0, r0, 2 +/* 800A6CB8 000A3BF8 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6CBC 000A3BFC 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6CC0 000A3C00 54 A5 07 B8 */ rlwinm r5, r5, 0, 0x1e, 0x1c +/* 800A6CC4 000A3C04 7C A0 03 78 */ or r0, r5, r0 +/* 800A6CC8 000A3C08 90 06 00 00 */ stw r0, 0(r6) +/* 800A6CCC 000A3C0C 48 00 02 94 */ b lbl_800A6F60 +lbl_800A6CD0: +/* 800A6CD0 000A3C10 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6CD4 000A3C14 54 00 18 38 */ slwi r0, r0, 3 +/* 800A6CD8 000A3C18 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6CDC 000A3C1C 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6CE0 000A3C20 54 A5 07 76 */ rlwinm r5, r5, 0, 0x1d, 0x1b +/* 800A6CE4 000A3C24 7C A0 03 78 */ or r0, r5, r0 +/* 800A6CE8 000A3C28 90 06 00 00 */ stw r0, 0(r6) +/* 800A6CEC 000A3C2C 48 00 02 74 */ b lbl_800A6F60 +lbl_800A6CF0: +/* 800A6CF0 000A3C30 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6CF4 000A3C34 54 00 20 36 */ slwi r0, r0, 4 +/* 800A6CF8 000A3C38 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6CFC 000A3C3C 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6D00 000A3C40 54 A5 07 34 */ rlwinm r5, r5, 0, 0x1c, 0x1a +/* 800A6D04 000A3C44 7C A0 03 78 */ or r0, r5, r0 +/* 800A6D08 000A3C48 90 06 00 00 */ stw r0, 0(r6) +/* 800A6D0C 000A3C4C 48 00 02 54 */ b lbl_800A6F60 +lbl_800A6D10: +/* 800A6D10 000A3C50 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6D14 000A3C54 54 00 28 34 */ slwi r0, r0, 5 +/* 800A6D18 000A3C58 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6D1C 000A3C5C 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6D20 000A3C60 54 A5 06 F2 */ rlwinm r5, r5, 0, 0x1b, 0x19 +/* 800A6D24 000A3C64 7C A0 03 78 */ or r0, r5, r0 +/* 800A6D28 000A3C68 90 06 00 00 */ stw r0, 0(r6) +/* 800A6D2C 000A3C6C 48 00 02 34 */ b lbl_800A6F60 +lbl_800A6D30: +/* 800A6D30 000A3C70 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6D34 000A3C74 54 00 30 32 */ slwi r0, r0, 6 +/* 800A6D38 000A3C78 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6D3C 000A3C7C 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6D40 000A3C80 54 A5 06 B0 */ rlwinm r5, r5, 0, 0x1a, 0x18 +/* 800A6D44 000A3C84 7C A0 03 78 */ or r0, r5, r0 +/* 800A6D48 000A3C88 90 06 00 00 */ stw r0, 0(r6) +/* 800A6D4C 000A3C8C 48 00 02 14 */ b lbl_800A6F60 +lbl_800A6D50: +/* 800A6D50 000A3C90 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6D54 000A3C94 54 00 38 30 */ slwi r0, r0, 7 +/* 800A6D58 000A3C98 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6D5C 000A3C9C 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6D60 000A3CA0 54 A5 06 6E */ rlwinm r5, r5, 0, 0x19, 0x17 +/* 800A6D64 000A3CA4 7C A0 03 78 */ or r0, r5, r0 +/* 800A6D68 000A3CA8 90 06 00 00 */ stw r0, 0(r6) +/* 800A6D6C 000A3CAC 48 00 01 F4 */ b lbl_800A6F60 +lbl_800A6D70: +/* 800A6D70 000A3CB0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6D74 000A3CB4 54 00 40 2E */ slwi r0, r0, 8 +/* 800A6D78 000A3CB8 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6D7C 000A3CBC 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6D80 000A3CC0 54 A5 06 2C */ rlwinm r5, r5, 0, 0x18, 0x16 +/* 800A6D84 000A3CC4 7C A0 03 78 */ or r0, r5, r0 +/* 800A6D88 000A3CC8 90 06 00 00 */ stw r0, 0(r6) +/* 800A6D8C 000A3CCC 48 00 01 D4 */ b lbl_800A6F60 +lbl_800A6D90: +/* 800A6D90 000A3CD0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6D94 000A3CD4 54 00 48 2C */ slwi r0, r0, 9 +/* 800A6D98 000A3CD8 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6D9C 000A3CDC 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6DA0 000A3CE0 54 A5 05 E8 */ rlwinm r5, r5, 0, 0x17, 0x14 +/* 800A6DA4 000A3CE4 7C A0 03 78 */ or r0, r5, r0 +/* 800A6DA8 000A3CE8 90 06 00 00 */ stw r0, 0(r6) +/* 800A6DAC 000A3CEC 48 00 01 B4 */ b lbl_800A6F60 +lbl_800A6DB0: +/* 800A6DB0 000A3CF0 2C 00 00 00 */ cmpwi r0, 0 +/* 800A6DB4 000A3CF4 41 82 00 28 */ beq lbl_800A6DDC +/* 800A6DB8 000A3CF8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6DBC 000A3CFC 38 E0 00 01 */ li r7, 1 +/* 800A6DC0 000A3D00 38 C0 00 00 */ li r6, 0 +/* 800A6DC4 000A3D04 98 E5 04 1C */ stb r7, 0x41c(r5) +/* 800A6DC8 000A3D08 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6DCC 000A3D0C 98 C5 04 1D */ stb r6, 0x41d(r5) +/* 800A6DD0 000A3D10 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6DD4 000A3D14 90 05 04 18 */ stw r0, 0x418(r5) +/* 800A6DD8 000A3D18 48 00 01 88 */ b lbl_800A6F60 +lbl_800A6DDC: +/* 800A6DDC 000A3D1C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6DE0 000A3D20 38 00 00 00 */ li r0, 0 +/* 800A6DE4 000A3D24 98 05 04 1C */ stb r0, 0x41c(r5) +/* 800A6DE8 000A3D28 48 00 01 78 */ b lbl_800A6F60 +lbl_800A6DEC: +/* 800A6DEC 000A3D2C 2C 00 00 00 */ cmpwi r0, 0 +/* 800A6DF0 000A3D30 41 82 00 28 */ beq lbl_800A6E18 +/* 800A6DF4 000A3D34 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6DF8 000A3D38 38 E0 00 01 */ li r7, 1 +/* 800A6DFC 000A3D3C 38 C0 00 00 */ li r6, 0 +/* 800A6E00 000A3D40 98 E5 04 1D */ stb r7, 0x41d(r5) +/* 800A6E04 000A3D44 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E08 000A3D48 98 C5 04 1C */ stb r6, 0x41c(r5) +/* 800A6E0C 000A3D4C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E10 000A3D50 90 05 04 18 */ stw r0, 0x418(r5) +/* 800A6E14 000A3D54 48 00 01 4C */ b lbl_800A6F60 +lbl_800A6E18: +/* 800A6E18 000A3D58 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E1C 000A3D5C 38 00 00 00 */ li r0, 0 +/* 800A6E20 000A3D60 98 05 04 1D */ stb r0, 0x41d(r5) +/* 800A6E24 000A3D64 48 00 01 3C */ b lbl_800A6F60 +lbl_800A6E28: +/* 800A6E28 000A3D68 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E2C 000A3D6C 54 00 68 24 */ slwi r0, r0, 0xd +/* 800A6E30 000A3D70 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6E34 000A3D74 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6E38 000A3D78 54 A5 04 E0 */ rlwinm r5, r5, 0, 0x13, 0x10 +/* 800A6E3C 000A3D7C 7C A0 03 78 */ or r0, r5, r0 +/* 800A6E40 000A3D80 90 06 00 00 */ stw r0, 0(r6) +/* 800A6E44 000A3D84 48 00 01 1C */ b lbl_800A6F60 +lbl_800A6E48: +/* 800A6E48 000A3D88 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E4C 000A3D8C 54 00 78 20 */ slwi r0, r0, 0xf +/* 800A6E50 000A3D90 38 C5 00 14 */ addi r6, r5, 0x14 +/* 800A6E54 000A3D94 80 A5 00 14 */ lwz r5, 0x14(r5) +/* 800A6E58 000A3D98 54 A5 04 5C */ rlwinm r5, r5, 0, 0x11, 0xe +/* 800A6E5C 000A3D9C 7C A0 03 78 */ or r0, r5, r0 +/* 800A6E60 000A3DA0 90 06 00 00 */ stw r0, 0(r6) +/* 800A6E64 000A3DA4 48 00 00 FC */ b lbl_800A6F60 +lbl_800A6E68: +/* 800A6E68 000A3DA8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E6C 000A3DAC 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6E70 000A3DB0 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6E74 000A3DB4 54 A5 00 3A */ rlwinm r5, r5, 0, 0, 0x1d +/* 800A6E78 000A3DB8 7C A0 03 78 */ or r0, r5, r0 +/* 800A6E7C 000A3DBC 90 06 00 00 */ stw r0, 0(r6) +/* 800A6E80 000A3DC0 48 00 00 E0 */ b lbl_800A6F60 +lbl_800A6E84: +/* 800A6E84 000A3DC4 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6E88 000A3DC8 54 00 10 3A */ slwi r0, r0, 2 +/* 800A6E8C 000A3DCC 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6E90 000A3DD0 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6E94 000A3DD4 54 A5 07 B6 */ rlwinm r5, r5, 0, 0x1e, 0x1b +/* 800A6E98 000A3DD8 7C A0 03 78 */ or r0, r5, r0 +/* 800A6E9C 000A3DDC 90 06 00 00 */ stw r0, 0(r6) +/* 800A6EA0 000A3DE0 48 00 00 C0 */ b lbl_800A6F60 +lbl_800A6EA4: +/* 800A6EA4 000A3DE4 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6EA8 000A3DE8 54 00 20 36 */ slwi r0, r0, 4 +/* 800A6EAC 000A3DEC 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6EB0 000A3DF0 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6EB4 000A3DF4 54 A5 07 32 */ rlwinm r5, r5, 0, 0x1c, 0x19 +/* 800A6EB8 000A3DF8 7C A0 03 78 */ or r0, r5, r0 +/* 800A6EBC 000A3DFC 90 06 00 00 */ stw r0, 0(r6) +/* 800A6EC0 000A3E00 48 00 00 A0 */ b lbl_800A6F60 +lbl_800A6EC4: +/* 800A6EC4 000A3E04 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6EC8 000A3E08 54 00 30 32 */ slwi r0, r0, 6 +/* 800A6ECC 000A3E0C 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6ED0 000A3E10 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6ED4 000A3E14 54 A5 06 AE */ rlwinm r5, r5, 0, 0x1a, 0x17 +/* 800A6ED8 000A3E18 7C A0 03 78 */ or r0, r5, r0 +/* 800A6EDC 000A3E1C 90 06 00 00 */ stw r0, 0(r6) +/* 800A6EE0 000A3E20 48 00 00 80 */ b lbl_800A6F60 +lbl_800A6EE4: +/* 800A6EE4 000A3E24 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6EE8 000A3E28 54 00 40 2E */ slwi r0, r0, 8 +/* 800A6EEC 000A3E2C 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6EF0 000A3E30 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6EF4 000A3E34 54 A5 06 2A */ rlwinm r5, r5, 0, 0x18, 0x15 +/* 800A6EF8 000A3E38 7C A0 03 78 */ or r0, r5, r0 +/* 800A6EFC 000A3E3C 90 06 00 00 */ stw r0, 0(r6) +/* 800A6F00 000A3E40 48 00 00 60 */ b lbl_800A6F60 +lbl_800A6F04: +/* 800A6F04 000A3E44 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6F08 000A3E48 54 00 50 2A */ slwi r0, r0, 0xa +/* 800A6F0C 000A3E4C 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6F10 000A3E50 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6F14 000A3E54 54 A5 05 A6 */ rlwinm r5, r5, 0, 0x16, 0x13 +/* 800A6F18 000A3E58 7C A0 03 78 */ or r0, r5, r0 +/* 800A6F1C 000A3E5C 90 06 00 00 */ stw r0, 0(r6) +/* 800A6F20 000A3E60 48 00 00 40 */ b lbl_800A6F60 +lbl_800A6F24: +/* 800A6F24 000A3E64 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6F28 000A3E68 54 00 60 26 */ slwi r0, r0, 0xc +/* 800A6F2C 000A3E6C 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6F30 000A3E70 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6F34 000A3E74 54 A5 05 22 */ rlwinm r5, r5, 0, 0x14, 0x11 +/* 800A6F38 000A3E78 7C A0 03 78 */ or r0, r5, r0 +/* 800A6F3C 000A3E7C 90 06 00 00 */ stw r0, 0(r6) +/* 800A6F40 000A3E80 48 00 00 20 */ b lbl_800A6F60 +lbl_800A6F44: +/* 800A6F44 000A3E84 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6F48 000A3E88 54 00 70 22 */ slwi r0, r0, 0xe +/* 800A6F4C 000A3E8C 38 C5 00 18 */ addi r6, r5, 0x18 +/* 800A6F50 000A3E90 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 800A6F54 000A3E94 54 A5 04 9E */ rlwinm r5, r5, 0, 0x12, 0xf +/* 800A6F58 000A3E98 7C A0 03 78 */ or r0, r5, r0 +/* 800A6F5C 000A3E9C 90 06 00 00 */ stw r0, 0(r6) +lbl_800A6F60: +/* 800A6F60 000A3EA0 38 63 00 08 */ addi r3, r3, 8 +lbl_800A6F64: +/* 800A6F64 000A3EA4 80 03 00 00 */ lwz r0, 0(r3) +/* 800A6F68 000A3EA8 2C 00 00 FF */ cmpwi r0, 0xff +/* 800A6F6C 000A3EAC 40 82 FC E8 */ bne lbl_800A6C54 +/* 800A6F70 000A3EB0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6F74 000A3EB4 88 03 04 1C */ lbz r0, 0x41c(r3) +/* 800A6F78 000A3EB8 28 00 00 00 */ cmplwi r0, 0 +/* 800A6F7C 000A3EBC 40 82 00 10 */ bne lbl_800A6F8C +/* 800A6F80 000A3EC0 88 03 04 1D */ lbz r0, 0x41d(r3) +/* 800A6F84 000A3EC4 28 00 00 00 */ cmplwi r0, 0 +/* 800A6F88 000A3EC8 41 82 00 24 */ beq lbl_800A6FAC +lbl_800A6F8C: +/* 800A6F8C 000A3ECC 38 83 00 14 */ addi r4, r3, 0x14 +/* 800A6F90 000A3ED0 80 03 04 18 */ lwz r0, 0x418(r3) +/* 800A6F94 000A3ED4 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800A6F98 000A3ED8 54 00 58 28 */ slwi r0, r0, 0xb +/* 800A6F9C 000A3EDC 54 63 05 64 */ rlwinm r3, r3, 0, 0x15, 0x12 +/* 800A6FA0 000A3EE0 7C 60 03 78 */ or r0, r3, r0 +/* 800A6FA4 000A3EE4 90 04 00 00 */ stw r0, 0(r4) +/* 800A6FA8 000A3EE8 48 00 00 10 */ b lbl_800A6FB8 +lbl_800A6FAC: +/* 800A6FAC 000A3EEC 84 03 00 14 */ lwzu r0, 0x14(r3) +/* 800A6FB0 000A3EF0 54 00 05 64 */ rlwinm r0, r0, 0, 0x15, 0x12 +/* 800A6FB4 000A3EF4 90 03 00 00 */ stw r0, 0(r3) +lbl_800A6FB8: +/* 800A6FB8 000A3EF8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6FBC 000A3EFC 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A6FC0 000A3F00 60 00 00 08 */ ori r0, r0, 8 +/* 800A6FC4 000A3F04 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A6FC8 000A3F08 4E 80 00 20 */ blr + +.global __GXSetVCD +__GXSetVCD: +/* 800A6FCC 000A3F0C 7C 08 02 A6 */ mflr r0 +/* 800A6FD0 000A3F10 38 C0 00 08 */ li r6, 8 +/* 800A6FD4 000A3F14 90 01 00 04 */ stw r0, 4(r1) +/* 800A6FD8 000A3F18 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A6FDC 000A3F1C 38 60 00 50 */ li r3, 0x50 +/* 800A6FE0 000A3F20 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A6FE4 000A3F24 38 00 00 60 */ li r0, 0x60 +/* 800A6FE8 000A3F28 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800A6FEC 000A3F2C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A6FF0 000A3F30 98 65 80 00 */ stb r3, -0x8000(r5) +/* 800A6FF4 000A3F34 80 64 00 14 */ lwz r3, 0x14(r4) +/* 800A6FF8 000A3F38 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A6FFC 000A3F3C 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800A7000 000A3F40 98 05 80 00 */ stb r0, -0x8000(r5) +/* 800A7004 000A3F44 80 04 00 18 */ lwz r0, 0x18(r4) +/* 800A7008 000A3F48 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800A700C 000A3F4C 4B FF F7 85 */ bl __GXXfVtxSpecs +/* 800A7010 000A3F50 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A7014 000A3F54 38 21 00 08 */ addi r1, r1, 8 +/* 800A7018 000A3F58 7C 08 03 A6 */ mtlr r0 +/* 800A701C 000A3F5C 4E 80 00 20 */ blr + +.global __GXCalculateVLim +__GXCalculateVLim: +/* 800A7020 000A3F60 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7024 000A3F64 A0 03 00 04 */ lhz r0, 4(r3) +/* 800A7028 000A3F68 28 00 00 00 */ cmplwi r0, 0 +/* 800A702C 000A3F6C 4D 82 00 20 */ beqlr +/* 800A7030 000A3F70 81 23 00 14 */ lwz r9, 0x14(r3) +/* 800A7034 000A3F74 38 AD 82 D8 */ addi r5, r13, tbl3$217@sda21 +/* 800A7038 000A3F78 81 03 00 1C */ lwz r8, 0x1c(r3) +/* 800A703C 000A3F7C 55 20 07 FE */ clrlwi r0, r9, 0x1f +/* 800A7040 000A3F80 80 83 00 18 */ lwz r4, 0x18(r3) +/* 800A7044 000A3F84 55 26 FF FE */ rlwinm r6, r9, 0x1f, 0x1f, 0x1f +/* 800A7048 000A3F88 7C 00 32 14 */ add r0, r0, r6 +/* 800A704C 000A3F8C 55 26 F7 FE */ rlwinm r6, r9, 0x1e, 0x1f, 0x1f +/* 800A7050 000A3F90 7C 00 32 14 */ add r0, r0, r6 +/* 800A7054 000A3F94 55 27 EF FE */ rlwinm r7, r9, 0x1d, 0x1f, 0x1f +/* 800A7058 000A3F98 55 26 BF BE */ rlwinm r6, r9, 0x17, 0x1e, 0x1f +/* 800A705C 000A3F9C 7C A5 30 AE */ lbzx r5, r5, r6 +/* 800A7060 000A3FA0 55 08 BF FE */ rlwinm r8, r8, 0x17, 0x1f, 0x1f +/* 800A7064 000A3FA4 7C 00 3A 14 */ add r0, r0, r7 +/* 800A7068 000A3FA8 55 26 E7 FE */ rlwinm r6, r9, 0x1c, 0x1f, 0x1f +/* 800A706C 000A3FAC 7C 00 32 14 */ add r0, r0, r6 +/* 800A7070 000A3FB0 55 26 DF FE */ rlwinm r6, r9, 0x1b, 0x1f, 0x1f +/* 800A7074 000A3FB4 7C 00 32 14 */ add r0, r0, r6 +/* 800A7078 000A3FB8 55 26 D7 FE */ rlwinm r6, r9, 0x1a, 0x1f, 0x1f +/* 800A707C 000A3FBC 7C 00 32 14 */ add r0, r0, r6 +/* 800A7080 000A3FC0 55 26 CF FE */ rlwinm r6, r9, 0x19, 0x1f, 0x1f +/* 800A7084 000A3FC4 7C 00 32 14 */ add r0, r0, r6 +/* 800A7088 000A3FC8 55 26 C7 FE */ rlwinm r6, r9, 0x18, 0x1f, 0x1f +/* 800A708C 000A3FCC 7C 00 32 14 */ add r0, r0, r6 +/* 800A7090 000A3FD0 2C 08 00 01 */ cmpwi r8, 1 +/* 800A7094 000A3FD4 7C 00 2A 14 */ add r0, r0, r5 +/* 800A7098 000A3FD8 40 82 00 0C */ bne lbl_800A70A4 +/* 800A709C 000A3FDC 39 00 00 03 */ li r8, 3 +/* 800A70A0 000A3FE0 48 00 00 08 */ b lbl_800A70A8 +lbl_800A70A4: +/* 800A70A4 000A3FE4 39 00 00 01 */ li r8, 1 +lbl_800A70A8: +/* 800A70A8 000A3FE8 55 26 AF BE */ rlwinm r6, r9, 0x15, 0x1e, 0x1f +/* 800A70AC 000A3FEC 38 AD 82 D8 */ addi r5, r13, tbl3$217@sda21 +/* 800A70B0 000A3FF0 7C C5 30 AE */ lbzx r6, r5, r6 +/* 800A70B4 000A3FF4 55 25 9F BE */ rlwinm r5, r9, 0x13, 0x1e, 0x1f +/* 800A70B8 000A3FF8 38 ED 82 D0 */ addi r7, r13, tbl1$215@sda21 +/* 800A70BC 000A3FFC 7D 06 41 D6 */ mullw r8, r6, r8 +/* 800A70C0 000A4000 7C C7 28 AE */ lbzx r6, r7, r5 +/* 800A70C4 000A4004 7C 00 42 14 */ add r0, r0, r8 +/* 800A70C8 000A4008 55 25 8F BE */ rlwinm r5, r9, 0x11, 0x1e, 0x1f +/* 800A70CC 000A400C 7D 27 28 AE */ lbzx r9, r7, r5 +/* 800A70D0 000A4010 7C 00 32 14 */ add r0, r0, r6 +/* 800A70D4 000A4014 54 86 07 BE */ clrlwi r6, r4, 0x1e +/* 800A70D8 000A4018 39 0D 82 D4 */ addi r8, r13, tbl2$216@sda21 +/* 800A70DC 000A401C 54 85 F7 BE */ rlwinm r5, r4, 0x1e, 0x1e, 0x1f +/* 800A70E0 000A4020 7C E8 30 AE */ lbzx r7, r8, r6 +/* 800A70E4 000A4024 7C 00 4A 14 */ add r0, r0, r9 +/* 800A70E8 000A4028 7C C8 28 AE */ lbzx r6, r8, r5 +/* 800A70EC 000A402C 7C 00 3A 14 */ add r0, r0, r7 +/* 800A70F0 000A4030 54 85 E7 BE */ rlwinm r5, r4, 0x1c, 0x1e, 0x1f +/* 800A70F4 000A4034 7C E8 28 AE */ lbzx r7, r8, r5 +/* 800A70F8 000A4038 7C 00 32 14 */ add r0, r0, r6 +/* 800A70FC 000A403C 54 85 D7 BE */ rlwinm r5, r4, 0x1a, 0x1e, 0x1f +/* 800A7100 000A4040 7C C8 28 AE */ lbzx r6, r8, r5 +/* 800A7104 000A4044 7C 00 3A 14 */ add r0, r0, r7 +/* 800A7108 000A4048 54 85 C7 BE */ rlwinm r5, r4, 0x18, 0x1e, 0x1f +/* 800A710C 000A404C 7C E8 28 AE */ lbzx r7, r8, r5 +/* 800A7110 000A4050 7C 00 32 14 */ add r0, r0, r6 +/* 800A7114 000A4054 54 85 B7 BE */ rlwinm r5, r4, 0x16, 0x1e, 0x1f +/* 800A7118 000A4058 7C C8 28 AE */ lbzx r6, r8, r5 +/* 800A711C 000A405C 54 85 A7 BE */ rlwinm r5, r4, 0x14, 0x1e, 0x1f +/* 800A7120 000A4060 7C 00 3A 14 */ add r0, r0, r7 +/* 800A7124 000A4064 7C A8 28 AE */ lbzx r5, r8, r5 +/* 800A7128 000A4068 54 84 97 BE */ rlwinm r4, r4, 0x12, 0x1e, 0x1f +/* 800A712C 000A406C 7C 00 32 14 */ add r0, r0, r6 +/* 800A7130 000A4070 7C 88 20 AE */ lbzx r4, r8, r4 +/* 800A7134 000A4074 7C 00 2A 14 */ add r0, r0, r5 +/* 800A7138 000A4078 7C 00 22 14 */ add r0, r0, r4 +/* 800A713C 000A407C B0 03 00 06 */ sth r0, 6(r3) +/* 800A7140 000A4080 4E 80 00 20 */ blr + +.global GXGetVtxDesc +GXGetVtxDesc: +/* 800A7144 000A4084 28 03 00 19 */ cmplwi r3, 0x19 +/* 800A7148 000A4088 41 81 01 A4 */ bgt lbl_800A72EC +/* 800A714C 000A408C 3C A0 80 3B */ lis r5, "@256"@ha +/* 800A7150 000A4090 38 A5 16 10 */ addi r5, r5, "@256"@l +/* 800A7154 000A4094 54 60 10 3A */ slwi r0, r3, 2 +/* 800A7158 000A4098 7C 05 00 2E */ lwzx r0, r5, r0 +/* 800A715C 000A409C 7C 09 03 A6 */ mtctr r0 +/* 800A7160 000A40A0 4E 80 04 20 */ bctr +lbl_800A7164: +/* 800A7164 000A40A4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7168 000A40A8 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A716C 000A40AC 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 800A7170 000A40B0 48 00 01 80 */ b lbl_800A72F0 +lbl_800A7174: +/* 800A7174 000A40B4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7178 000A40B8 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A717C 000A40BC 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f +/* 800A7180 000A40C0 48 00 01 70 */ b lbl_800A72F0 +lbl_800A7184: +/* 800A7184 000A40C4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7188 000A40C8 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A718C 000A40CC 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f +/* 800A7190 000A40D0 48 00 01 60 */ b lbl_800A72F0 +lbl_800A7194: +/* 800A7194 000A40D4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7198 000A40D8 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A719C 000A40DC 54 00 EF FE */ rlwinm r0, r0, 0x1d, 0x1f, 0x1f +/* 800A71A0 000A40E0 48 00 01 50 */ b lbl_800A72F0 +lbl_800A71A4: +/* 800A71A4 000A40E4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A71A8 000A40E8 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A71AC 000A40EC 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f +/* 800A71B0 000A40F0 48 00 01 40 */ b lbl_800A72F0 +lbl_800A71B4: +/* 800A71B4 000A40F4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A71B8 000A40F8 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A71BC 000A40FC 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f +/* 800A71C0 000A4100 48 00 01 30 */ b lbl_800A72F0 +lbl_800A71C4: +/* 800A71C4 000A4104 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A71C8 000A4108 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A71CC 000A410C 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f +/* 800A71D0 000A4110 48 00 01 20 */ b lbl_800A72F0 +lbl_800A71D4: +/* 800A71D4 000A4114 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A71D8 000A4118 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A71DC 000A411C 54 00 CF FE */ rlwinm r0, r0, 0x19, 0x1f, 0x1f +/* 800A71E0 000A4120 48 00 01 10 */ b lbl_800A72F0 +lbl_800A71E4: +/* 800A71E4 000A4124 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A71E8 000A4128 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A71EC 000A412C 54 00 C7 FE */ rlwinm r0, r0, 0x18, 0x1f, 0x1f +/* 800A71F0 000A4130 48 00 01 00 */ b lbl_800A72F0 +lbl_800A71F4: +/* 800A71F4 000A4134 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A71F8 000A4138 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A71FC 000A413C 54 00 BF BE */ rlwinm r0, r0, 0x17, 0x1e, 0x1f +/* 800A7200 000A4140 48 00 00 F0 */ b lbl_800A72F0 +lbl_800A7204: +/* 800A7204 000A4144 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7208 000A4148 88 03 04 1C */ lbz r0, 0x41c(r3) +/* 800A720C 000A414C 28 00 00 00 */ cmplwi r0, 0 +/* 800A7210 000A4150 41 82 00 10 */ beq lbl_800A7220 +/* 800A7214 000A4154 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A7218 000A4158 54 00 AF BE */ rlwinm r0, r0, 0x15, 0x1e, 0x1f +/* 800A721C 000A415C 48 00 00 D4 */ b lbl_800A72F0 +lbl_800A7220: +/* 800A7220 000A4160 38 00 00 00 */ li r0, 0 +/* 800A7224 000A4164 48 00 00 CC */ b lbl_800A72F0 +lbl_800A7228: +/* 800A7228 000A4168 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A722C 000A416C 88 03 04 1D */ lbz r0, 0x41d(r3) +/* 800A7230 000A4170 28 00 00 00 */ cmplwi r0, 0 +/* 800A7234 000A4174 41 82 00 10 */ beq lbl_800A7244 +/* 800A7238 000A4178 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A723C 000A417C 54 00 AF BE */ rlwinm r0, r0, 0x15, 0x1e, 0x1f +/* 800A7240 000A4180 48 00 00 B0 */ b lbl_800A72F0 +lbl_800A7244: +/* 800A7244 000A4184 38 00 00 00 */ li r0, 0 +/* 800A7248 000A4188 48 00 00 A8 */ b lbl_800A72F0 +lbl_800A724C: +/* 800A724C 000A418C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7250 000A4190 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A7254 000A4194 54 00 9F BE */ rlwinm r0, r0, 0x13, 0x1e, 0x1f +/* 800A7258 000A4198 48 00 00 98 */ b lbl_800A72F0 +lbl_800A725C: +/* 800A725C 000A419C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7260 000A41A0 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A7264 000A41A4 54 00 8F BE */ rlwinm r0, r0, 0x11, 0x1e, 0x1f +/* 800A7268 000A41A8 48 00 00 88 */ b lbl_800A72F0 +lbl_800A726C: +/* 800A726C 000A41AC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7270 000A41B0 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A7274 000A41B4 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 800A7278 000A41B8 48 00 00 78 */ b lbl_800A72F0 +lbl_800A727C: +/* 800A727C 000A41BC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7280 000A41C0 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A7284 000A41C4 54 00 F7 BE */ rlwinm r0, r0, 0x1e, 0x1e, 0x1f +/* 800A7288 000A41C8 48 00 00 68 */ b lbl_800A72F0 +lbl_800A728C: +/* 800A728C 000A41CC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7290 000A41D0 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A7294 000A41D4 54 00 E7 BE */ rlwinm r0, r0, 0x1c, 0x1e, 0x1f +/* 800A7298 000A41D8 48 00 00 58 */ b lbl_800A72F0 +lbl_800A729C: +/* 800A729C 000A41DC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A72A0 000A41E0 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A72A4 000A41E4 54 00 D7 BE */ rlwinm r0, r0, 0x1a, 0x1e, 0x1f +/* 800A72A8 000A41E8 48 00 00 48 */ b lbl_800A72F0 +lbl_800A72AC: +/* 800A72AC 000A41EC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A72B0 000A41F0 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A72B4 000A41F4 54 00 C7 BE */ rlwinm r0, r0, 0x18, 0x1e, 0x1f +/* 800A72B8 000A41F8 48 00 00 38 */ b lbl_800A72F0 +lbl_800A72BC: +/* 800A72BC 000A41FC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A72C0 000A4200 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A72C4 000A4204 54 00 B7 BE */ rlwinm r0, r0, 0x16, 0x1e, 0x1f +/* 800A72C8 000A4208 48 00 00 28 */ b lbl_800A72F0 +lbl_800A72CC: +/* 800A72CC 000A420C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A72D0 000A4210 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A72D4 000A4214 54 00 A7 BE */ rlwinm r0, r0, 0x14, 0x1e, 0x1f +/* 800A72D8 000A4218 48 00 00 18 */ b lbl_800A72F0 +lbl_800A72DC: +/* 800A72DC 000A421C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A72E0 000A4220 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A72E4 000A4224 54 00 97 BE */ rlwinm r0, r0, 0x12, 0x1e, 0x1f +/* 800A72E8 000A4228 48 00 00 08 */ b lbl_800A72F0 +lbl_800A72EC: +/* 800A72EC 000A422C 38 00 00 00 */ li r0, 0 +lbl_800A72F0: +/* 800A72F0 000A4230 90 04 00 00 */ stw r0, 0(r4) +/* 800A72F4 000A4234 4E 80 00 20 */ blr + +.global GXGetVtxDescv +GXGetVtxDescv: +/* 800A72F8 000A4238 7C 08 02 A6 */ mflr r0 +/* 800A72FC 000A423C 90 01 00 04 */ stw r0, 4(r1) +/* 800A7300 000A4240 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800A7304 000A4244 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800A7308 000A4248 3B E0 00 00 */ li r31, 0 +/* 800A730C 000A424C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 800A7310 000A4250 3B C0 00 00 */ li r30, 0 +/* 800A7314 000A4254 93 A1 00 14 */ stw r29, 0x14(r1) +/* 800A7318 000A4258 3B A3 00 00 */ addi r29, r3, 0 +lbl_800A731C: +/* 800A731C 000A425C 7C 9D FA 14 */ add r4, r29, r31 +/* 800A7320 000A4260 93 C4 00 00 */ stw r30, 0(r4) +/* 800A7324 000A4264 38 7E 00 00 */ addi r3, r30, 0 +/* 800A7328 000A4268 38 84 00 04 */ addi r4, r4, 4 +/* 800A732C 000A426C 4B FF FE 19 */ bl GXGetVtxDesc +/* 800A7330 000A4270 3B DE 00 01 */ addi r30, r30, 1 +/* 800A7334 000A4274 2C 1E 00 1A */ cmpwi r30, 0x1a +/* 800A7338 000A4278 3B FF 00 08 */ addi r31, r31, 8 +/* 800A733C 000A427C 41 80 FF E0 */ blt lbl_800A731C +/* 800A7340 000A4280 57 C0 18 38 */ slwi r0, r30, 3 +/* 800A7344 000A4284 38 60 00 FF */ li r3, 0xff +/* 800A7348 000A4288 7C 7D 01 2E */ stwx r3, r29, r0 +/* 800A734C 000A428C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A7350 000A4290 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800A7354 000A4294 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 800A7358 000A4298 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 800A735C 000A429C 38 21 00 20 */ addi r1, r1, 0x20 +/* 800A7360 000A42A0 7C 08 03 A6 */ mtlr r0 +/* 800A7364 000A42A4 4E 80 00 20 */ blr + +.global GXClearVtxDesc +GXClearVtxDesc: +/* 800A7368 000A42A8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A736C 000A42AC 38 80 00 00 */ li r4, 0 +/* 800A7370 000A42B0 90 83 00 14 */ stw r4, 0x14(r3) +/* 800A7374 000A42B4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7378 000A42B8 84 03 00 14 */ lwzu r0, 0x14(r3) +/* 800A737C 000A42BC 54 00 05 E8 */ rlwinm r0, r0, 0, 0x17, 0x14 +/* 800A7380 000A42C0 60 00 02 00 */ ori r0, r0, 0x200 +/* 800A7384 000A42C4 90 03 00 00 */ stw r0, 0(r3) +/* 800A7388 000A42C8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A738C 000A42CC 90 83 00 18 */ stw r4, 0x18(r3) +/* 800A7390 000A42D0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7394 000A42D4 98 83 04 1C */ stb r4, 0x41c(r3) +/* 800A7398 000A42D8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A739C 000A42DC 98 83 04 1D */ stb r4, 0x41d(r3) +/* 800A73A0 000A42E0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A73A4 000A42E4 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A73A8 000A42E8 60 00 00 08 */ ori r0, r0, 8 +/* 800A73AC 000A42EC 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A73B0 000A42F0 4E 80 00 20 */ blr + +.global GXSetVtxAttrFmt +GXSetVtxAttrFmt: +/* 800A73B4 000A42F4 38 04 FF F7 */ addi r0, r4, -9 +/* 800A73B8 000A42F8 81 0D 82 C8 */ lwz r8, gx@sda21(r13) +/* 800A73BC 000A42FC 54 64 10 3A */ slwi r4, r3, 2 +/* 800A73C0 000A4300 7D 28 22 14 */ add r9, r8, r4 +/* 800A73C4 000A4304 28 00 00 10 */ cmplwi r0, 0x10 +/* 800A73C8 000A4308 38 89 00 1C */ addi r4, r9, 0x1c +/* 800A73CC 000A430C 39 09 00 3C */ addi r8, r9, 0x3c +/* 800A73D0 000A4310 39 29 00 5C */ addi r9, r9, 0x5c +/* 800A73D4 000A4314 41 81 03 08 */ bgt lbl_800A76DC +/* 800A73D8 000A4318 3D 40 80 3B */ lis r10, "@302"@ha +/* 800A73DC 000A431C 39 4A 16 78 */ addi r10, r10, "@302"@l +/* 800A73E0 000A4320 54 00 10 3A */ slwi r0, r0, 2 +/* 800A73E4 000A4324 7C 0A 00 2E */ lwzx r0, r10, r0 +/* 800A73E8 000A4328 7C 09 03 A6 */ mtctr r0 +/* 800A73EC 000A432C 4E 80 04 20 */ bctr +lbl_800A73F0: +/* 800A73F0 000A4330 80 04 00 00 */ lwz r0, 0(r4) +/* 800A73F4 000A4334 54 C6 08 3C */ slwi r6, r6, 1 +/* 800A73F8 000A4338 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A73FC 000A433C 7C 00 2B 78 */ or r0, r0, r5 +/* 800A7400 000A4340 90 04 00 00 */ stw r0, 0(r4) +/* 800A7404 000A4344 54 E0 25 36 */ rlwinm r0, r7, 4, 0x14, 0x1b +/* 800A7408 000A4348 80 A4 00 00 */ lwz r5, 0(r4) +/* 800A740C 000A434C 54 A5 07 F6 */ rlwinm r5, r5, 0, 0x1f, 0x1b +/* 800A7410 000A4350 7C A5 33 78 */ or r5, r5, r6 +/* 800A7414 000A4354 90 A4 00 00 */ stw r5, 0(r4) +/* 800A7418 000A4358 80 A4 00 00 */ lwz r5, 0(r4) +/* 800A741C 000A435C 54 A5 07 2C */ rlwinm r5, r5, 0, 0x1c, 0x16 +/* 800A7420 000A4360 7C A0 03 78 */ or r0, r5, r0 +/* 800A7424 000A4364 90 04 00 00 */ stw r0, 0(r4) +/* 800A7428 000A4368 48 00 02 B4 */ b lbl_800A76DC +lbl_800A742C: +/* 800A742C 000A436C 80 E4 00 00 */ lwz r7, 0(r4) +/* 800A7430 000A4370 54 C0 50 2A */ slwi r0, r6, 0xa +/* 800A7434 000A4374 2C 05 00 02 */ cmpwi r5, 2 +/* 800A7438 000A4378 54 E6 05 A4 */ rlwinm r6, r7, 0, 0x16, 0x12 +/* 800A743C 000A437C 7C C0 03 78 */ or r0, r6, r0 +/* 800A7440 000A4380 90 04 00 00 */ stw r0, 0(r4) +/* 800A7444 000A4384 40 82 00 28 */ bne lbl_800A746C +/* 800A7448 000A4388 80 04 00 00 */ lwz r0, 0(r4) +/* 800A744C 000A438C 54 00 05 EA */ rlwinm r0, r0, 0, 0x17, 0x15 +/* 800A7450 000A4390 60 00 02 00 */ ori r0, r0, 0x200 +/* 800A7454 000A4394 90 04 00 00 */ stw r0, 0(r4) +/* 800A7458 000A4398 80 04 00 00 */ lwz r0, 0(r4) +/* 800A745C 000A439C 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A7460 000A43A0 64 00 80 00 */ oris r0, r0, 0x8000 +/* 800A7464 000A43A4 90 04 00 00 */ stw r0, 0(r4) +/* 800A7468 000A43A8 48 00 02 74 */ b lbl_800A76DC +lbl_800A746C: +/* 800A746C 000A43AC 80 C4 00 00 */ lwz r6, 0(r4) +/* 800A7470 000A43B0 54 A0 48 2C */ slwi r0, r5, 9 +/* 800A7474 000A43B4 54 C5 05 EA */ rlwinm r5, r6, 0, 0x17, 0x15 +/* 800A7478 000A43B8 7C A0 03 78 */ or r0, r5, r0 +/* 800A747C 000A43BC 90 04 00 00 */ stw r0, 0(r4) +/* 800A7480 000A43C0 80 04 00 00 */ lwz r0, 0(r4) +/* 800A7484 000A43C4 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A7488 000A43C8 90 04 00 00 */ stw r0, 0(r4) +/* 800A748C 000A43CC 48 00 02 50 */ b lbl_800A76DC +lbl_800A7490: +/* 800A7490 000A43D0 80 E4 00 00 */ lwz r7, 0(r4) +/* 800A7494 000A43D4 54 A5 68 24 */ slwi r5, r5, 0xd +/* 800A7498 000A43D8 54 C0 70 22 */ slwi r0, r6, 0xe +/* 800A749C 000A43DC 54 E6 04 E2 */ rlwinm r6, r7, 0, 0x13, 0x11 +/* 800A74A0 000A43E0 7C C5 2B 78 */ or r5, r6, r5 +/* 800A74A4 000A43E4 90 A4 00 00 */ stw r5, 0(r4) +/* 800A74A8 000A43E8 80 A4 00 00 */ lwz r5, 0(r4) +/* 800A74AC 000A43EC 54 A5 04 9C */ rlwinm r5, r5, 0, 0x12, 0xe +/* 800A74B0 000A43F0 7C A0 03 78 */ or r0, r5, r0 +/* 800A74B4 000A43F4 90 04 00 00 */ stw r0, 0(r4) +/* 800A74B8 000A43F8 48 00 02 24 */ b lbl_800A76DC +lbl_800A74BC: +/* 800A74BC 000A43FC 80 E4 00 00 */ lwz r7, 0(r4) +/* 800A74C0 000A4400 54 A5 88 1C */ slwi r5, r5, 0x11 +/* 800A74C4 000A4404 54 C0 90 1A */ slwi r0, r6, 0x12 +/* 800A74C8 000A4408 54 E6 03 DA */ rlwinm r6, r7, 0, 0xf, 0xd +/* 800A74CC 000A440C 7C C5 2B 78 */ or r5, r6, r5 +/* 800A74D0 000A4410 90 A4 00 00 */ stw r5, 0(r4) +/* 800A74D4 000A4414 80 A4 00 00 */ lwz r5, 0(r4) +/* 800A74D8 000A4418 54 A5 03 94 */ rlwinm r5, r5, 0, 0xe, 0xa +/* 800A74DC 000A441C 7C A0 03 78 */ or r0, r5, r0 +/* 800A74E0 000A4420 90 04 00 00 */ stw r0, 0(r4) +/* 800A74E4 000A4424 48 00 01 F8 */ b lbl_800A76DC +lbl_800A74E8: +/* 800A74E8 000A4428 81 04 00 00 */ lwz r8, 0(r4) +/* 800A74EC 000A442C 54 A0 A8 14 */ slwi r0, r5, 0x15 +/* 800A74F0 000A4430 55 05 02 D2 */ rlwinm r5, r8, 0, 0xb, 9 +/* 800A74F4 000A4434 7C A0 03 78 */ or r0, r5, r0 +/* 800A74F8 000A4438 90 04 00 00 */ stw r0, 0(r4) +/* 800A74FC 000A443C 54 C5 B0 12 */ slwi r5, r6, 0x16 +/* 800A7500 000A4440 54 E0 C8 0C */ slwi r0, r7, 0x19 +/* 800A7504 000A4444 80 C4 00 00 */ lwz r6, 0(r4) +/* 800A7508 000A4448 54 C6 02 8C */ rlwinm r6, r6, 0, 0xa, 6 +/* 800A750C 000A444C 7C C5 2B 78 */ or r5, r6, r5 +/* 800A7510 000A4450 90 A4 00 00 */ stw r5, 0(r4) +/* 800A7514 000A4454 80 A4 00 00 */ lwz r5, 0(r4) +/* 800A7518 000A4458 54 A5 01 C2 */ rlwinm r5, r5, 0, 7, 1 +/* 800A751C 000A445C 7C A0 03 78 */ or r0, r5, r0 +/* 800A7520 000A4460 90 04 00 00 */ stw r0, 0(r4) +/* 800A7524 000A4464 48 00 01 B8 */ b lbl_800A76DC +lbl_800A7528: +/* 800A7528 000A4468 80 08 00 00 */ lwz r0, 0(r8) +/* 800A752C 000A446C 54 C4 08 3C */ slwi r4, r6, 1 +/* 800A7530 000A4470 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A7534 000A4474 7C 00 2B 78 */ or r0, r0, r5 +/* 800A7538 000A4478 90 08 00 00 */ stw r0, 0(r8) +/* 800A753C 000A447C 54 E0 25 36 */ rlwinm r0, r7, 4, 0x14, 0x1b +/* 800A7540 000A4480 80 A8 00 00 */ lwz r5, 0(r8) +/* 800A7544 000A4484 54 A5 07 F6 */ rlwinm r5, r5, 0, 0x1f, 0x1b +/* 800A7548 000A4488 7C A4 23 78 */ or r4, r5, r4 +/* 800A754C 000A448C 90 88 00 00 */ stw r4, 0(r8) +/* 800A7550 000A4490 80 88 00 00 */ lwz r4, 0(r8) +/* 800A7554 000A4494 54 84 07 2C */ rlwinm r4, r4, 0, 0x1c, 0x16 +/* 800A7558 000A4498 7C 80 03 78 */ or r0, r4, r0 +/* 800A755C 000A449C 90 08 00 00 */ stw r0, 0(r8) +/* 800A7560 000A44A0 48 00 01 7C */ b lbl_800A76DC +lbl_800A7564: +/* 800A7564 000A44A4 80 88 00 00 */ lwz r4, 0(r8) +/* 800A7568 000A44A8 54 A0 48 2C */ slwi r0, r5, 9 +/* 800A756C 000A44AC 54 84 05 EA */ rlwinm r4, r4, 0, 0x17, 0x15 +/* 800A7570 000A44B0 7C 80 03 78 */ or r0, r4, r0 +/* 800A7574 000A44B4 90 08 00 00 */ stw r0, 0(r8) +/* 800A7578 000A44B8 54 C4 50 2A */ slwi r4, r6, 0xa +/* 800A757C 000A44BC 54 E0 6A E4 */ rlwinm r0, r7, 0xd, 0xb, 0x12 +/* 800A7580 000A44C0 80 A8 00 00 */ lwz r5, 0(r8) +/* 800A7584 000A44C4 54 A5 05 A4 */ rlwinm r5, r5, 0, 0x16, 0x12 +/* 800A7588 000A44C8 7C A4 23 78 */ or r4, r5, r4 +/* 800A758C 000A44CC 90 88 00 00 */ stw r4, 0(r8) +/* 800A7590 000A44D0 80 88 00 00 */ lwz r4, 0(r8) +/* 800A7594 000A44D4 54 84 04 DA */ rlwinm r4, r4, 0, 0x13, 0xd +/* 800A7598 000A44D8 7C 80 03 78 */ or r0, r4, r0 +/* 800A759C 000A44DC 90 08 00 00 */ stw r0, 0(r8) +/* 800A75A0 000A44E0 48 00 01 3C */ b lbl_800A76DC +lbl_800A75A4: +/* 800A75A4 000A44E4 80 88 00 00 */ lwz r4, 0(r8) +/* 800A75A8 000A44E8 54 A0 90 1A */ slwi r0, r5, 0x12 +/* 800A75AC 000A44EC 54 84 03 98 */ rlwinm r4, r4, 0, 0xe, 0xc +/* 800A75B0 000A44F0 7C 80 03 78 */ or r0, r4, r0 +/* 800A75B4 000A44F4 90 08 00 00 */ stw r0, 0(r8) +/* 800A75B8 000A44F8 54 C4 98 18 */ slwi r4, r6, 0x13 +/* 800A75BC 000A44FC 54 E0 B0 92 */ rlwinm r0, r7, 0x16, 2, 9 +/* 800A75C0 000A4500 80 A8 00 00 */ lwz r5, 0(r8) +/* 800A75C4 000A4504 54 A5 03 52 */ rlwinm r5, r5, 0, 0xd, 9 +/* 800A75C8 000A4508 7C A4 23 78 */ or r4, r5, r4 +/* 800A75CC 000A450C 90 88 00 00 */ stw r4, 0(r8) +/* 800A75D0 000A4510 80 88 00 00 */ lwz r4, 0(r8) +/* 800A75D4 000A4514 54 84 02 88 */ rlwinm r4, r4, 0, 0xa, 4 +/* 800A75D8 000A4518 7C 80 03 78 */ or r0, r4, r0 +/* 800A75DC 000A451C 90 08 00 00 */ stw r0, 0(r8) +/* 800A75E0 000A4520 48 00 00 FC */ b lbl_800A76DC +lbl_800A75E4: +/* 800A75E4 000A4524 81 48 00 00 */ lwz r10, 0(r8) +/* 800A75E8 000A4528 54 A0 D8 08 */ slwi r0, r5, 0x1b +/* 800A75EC 000A452C 54 C4 E0 06 */ slwi r4, r6, 0x1c +/* 800A75F0 000A4530 55 45 01 46 */ rlwinm r5, r10, 0, 5, 3 +/* 800A75F4 000A4534 7C A0 03 78 */ or r0, r5, r0 +/* 800A75F8 000A4538 90 08 00 00 */ stw r0, 0(r8) +/* 800A75FC 000A453C 54 E0 06 3E */ clrlwi r0, r7, 0x18 +/* 800A7600 000A4540 80 A8 00 00 */ lwz r5, 0(r8) +/* 800A7604 000A4544 54 A5 01 00 */ rlwinm r5, r5, 0, 4, 0 +/* 800A7608 000A4548 7C A4 23 78 */ or r4, r5, r4 +/* 800A760C 000A454C 90 88 00 00 */ stw r4, 0(r8) +/* 800A7610 000A4550 80 89 00 00 */ lwz r4, 0(r9) +/* 800A7614 000A4554 54 84 00 34 */ rlwinm r4, r4, 0, 0, 0x1a +/* 800A7618 000A4558 7C 80 03 78 */ or r0, r4, r0 +/* 800A761C 000A455C 90 09 00 00 */ stw r0, 0(r9) +/* 800A7620 000A4560 48 00 00 BC */ b lbl_800A76DC +lbl_800A7624: +/* 800A7624 000A4564 80 89 00 00 */ lwz r4, 0(r9) +/* 800A7628 000A4568 54 A0 28 34 */ slwi r0, r5, 5 +/* 800A762C 000A456C 54 84 06 F2 */ rlwinm r4, r4, 0, 0x1b, 0x19 +/* 800A7630 000A4570 7C 80 03 78 */ or r0, r4, r0 +/* 800A7634 000A4574 90 09 00 00 */ stw r0, 0(r9) +/* 800A7638 000A4578 54 C4 30 32 */ slwi r4, r6, 6 +/* 800A763C 000A457C 54 E0 4B EC */ rlwinm r0, r7, 9, 0xf, 0x16 +/* 800A7640 000A4580 80 A9 00 00 */ lwz r5, 0(r9) +/* 800A7644 000A4584 54 A5 06 AC */ rlwinm r5, r5, 0, 0x1a, 0x16 +/* 800A7648 000A4588 7C A4 23 78 */ or r4, r5, r4 +/* 800A764C 000A458C 90 89 00 00 */ stw r4, 0(r9) +/* 800A7650 000A4590 80 89 00 00 */ lwz r4, 0(r9) +/* 800A7654 000A4594 54 84 05 E2 */ rlwinm r4, r4, 0, 0x17, 0x11 +/* 800A7658 000A4598 7C 80 03 78 */ or r0, r4, r0 +/* 800A765C 000A459C 90 09 00 00 */ stw r0, 0(r9) +/* 800A7660 000A45A0 48 00 00 7C */ b lbl_800A76DC +lbl_800A7664: +/* 800A7664 000A45A4 80 89 00 00 */ lwz r4, 0(r9) +/* 800A7668 000A45A8 54 A0 70 22 */ slwi r0, r5, 0xe +/* 800A766C 000A45AC 54 84 04 A0 */ rlwinm r4, r4, 0, 0x12, 0x10 +/* 800A7670 000A45B0 7C 80 03 78 */ or r0, r4, r0 +/* 800A7674 000A45B4 90 09 00 00 */ stw r0, 0(r9) +/* 800A7678 000A45B8 54 C4 78 20 */ slwi r4, r6, 0xf +/* 800A767C 000A45BC 54 E0 91 9A */ rlwinm r0, r7, 0x12, 6, 0xd +/* 800A7680 000A45C0 80 A9 00 00 */ lwz r5, 0(r9) +/* 800A7684 000A45C4 54 A5 04 5A */ rlwinm r5, r5, 0, 0x11, 0xd +/* 800A7688 000A45C8 7C A4 23 78 */ or r4, r5, r4 +/* 800A768C 000A45CC 90 89 00 00 */ stw r4, 0(r9) +/* 800A7690 000A45D0 80 89 00 00 */ lwz r4, 0(r9) +/* 800A7694 000A45D4 54 84 03 90 */ rlwinm r4, r4, 0, 0xe, 8 +/* 800A7698 000A45D8 7C 80 03 78 */ or r0, r4, r0 +/* 800A769C 000A45DC 90 09 00 00 */ stw r0, 0(r9) +/* 800A76A0 000A45E0 48 00 00 3C */ b lbl_800A76DC +lbl_800A76A4: +/* 800A76A4 000A45E4 80 89 00 00 */ lwz r4, 0(r9) +/* 800A76A8 000A45E8 54 A0 B8 10 */ slwi r0, r5, 0x17 +/* 800A76AC 000A45EC 54 84 02 4E */ rlwinm r4, r4, 0, 9, 7 +/* 800A76B0 000A45F0 7C 80 03 78 */ or r0, r4, r0 +/* 800A76B4 000A45F4 90 09 00 00 */ stw r0, 0(r9) +/* 800A76B8 000A45F8 54 C0 C0 0E */ slwi r0, r6, 0x18 +/* 800A76BC 000A45FC 80 89 00 00 */ lwz r4, 0(r9) +/* 800A76C0 000A4600 54 84 02 08 */ rlwinm r4, r4, 0, 8, 4 +/* 800A76C4 000A4604 7C 80 03 78 */ or r0, r4, r0 +/* 800A76C8 000A4608 90 09 00 00 */ stw r0, 0(r9) +/* 800A76CC 000A460C 80 09 00 00 */ lwz r0, 0(r9) +/* 800A76D0 000A4610 54 00 01 7E */ clrlwi r0, r0, 5 +/* 800A76D4 000A4614 50 E0 D8 08 */ rlwimi r0, r7, 0x1b, 0, 4 +/* 800A76D8 000A4618 90 09 00 00 */ stw r0, 0(r9) +lbl_800A76DC: +/* 800A76DC 000A461C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A76E0 000A4620 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 800A76E4 000A4624 38 60 00 01 */ li r3, 1 +/* 800A76E8 000A4628 80 85 04 F4 */ lwz r4, 0x4f4(r5) +/* 800A76EC 000A462C 7C 60 00 30 */ slw r0, r3, r0 +/* 800A76F0 000A4630 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 800A76F4 000A4634 60 83 00 10 */ ori r3, r4, 0x10 +/* 800A76F8 000A4638 90 65 04 F4 */ stw r3, 0x4f4(r5) +/* 800A76FC 000A463C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A7700 000A4640 88 64 04 F2 */ lbz r3, 0x4f2(r4) +/* 800A7704 000A4644 7C 60 03 78 */ or r0, r3, r0 +/* 800A7708 000A4648 98 04 04 F2 */ stb r0, 0x4f2(r4) +/* 800A770C 000A464C 4E 80 00 20 */ blr + +.global GXSetVtxAttrFmtv +GXSetVtxAttrFmtv: +/* 800A7710 000A4650 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A7714 000A4654 54 60 10 3A */ slwi r0, r3, 2 +/* 800A7718 000A4658 3C A0 80 3B */ lis r5, "@329"@ha +/* 800A771C 000A465C 7C C6 02 14 */ add r6, r6, r0 +/* 800A7720 000A4660 39 06 00 1C */ addi r8, r6, 0x1c +/* 800A7724 000A4664 39 26 00 3C */ addi r9, r6, 0x3c +/* 800A7728 000A4668 39 46 00 5C */ addi r10, r6, 0x5c +/* 800A772C 000A466C 38 A5 16 BC */ addi r5, r5, "@329"@l +/* 800A7730 000A4670 48 00 03 1C */ b lbl_800A7A4C +lbl_800A7734: +/* 800A7734 000A4674 80 C4 00 00 */ lwz r6, 0(r4) +/* 800A7738 000A4678 88 E4 00 0C */ lbz r7, 0xc(r4) +/* 800A773C 000A467C 39 66 FF F7 */ addi r11, r6, -9 +/* 800A7740 000A4680 80 C4 00 08 */ lwz r6, 8(r4) +/* 800A7744 000A4684 28 0B 00 10 */ cmplwi r11, 0x10 +/* 800A7748 000A4688 80 04 00 04 */ lwz r0, 4(r4) +/* 800A774C 000A468C 41 81 02 FC */ bgt lbl_800A7A48 +/* 800A7750 000A4690 55 6B 10 3A */ slwi r11, r11, 2 +/* 800A7754 000A4694 7D 65 58 2E */ lwzx r11, r5, r11 +/* 800A7758 000A4698 7D 69 03 A6 */ mtctr r11 +/* 800A775C 000A469C 4E 80 04 20 */ bctr +lbl_800A7760: +/* 800A7760 000A46A0 81 88 00 00 */ lwz r12, 0(r8) +/* 800A7764 000A46A4 54 CB 08 3C */ slwi r11, r6, 1 +/* 800A7768 000A46A8 54 E6 20 36 */ slwi r6, r7, 4 +/* 800A776C 000A46AC 55 87 00 3C */ rlwinm r7, r12, 0, 0, 0x1e +/* 800A7770 000A46B0 7C E0 03 78 */ or r0, r7, r0 +/* 800A7774 000A46B4 90 08 00 00 */ stw r0, 0(r8) +/* 800A7778 000A46B8 80 08 00 00 */ lwz r0, 0(r8) +/* 800A777C 000A46BC 54 00 07 F6 */ rlwinm r0, r0, 0, 0x1f, 0x1b +/* 800A7780 000A46C0 7C 00 5B 78 */ or r0, r0, r11 +/* 800A7784 000A46C4 90 08 00 00 */ stw r0, 0(r8) +/* 800A7788 000A46C8 80 08 00 00 */ lwz r0, 0(r8) +/* 800A778C 000A46CC 54 00 07 2C */ rlwinm r0, r0, 0, 0x1c, 0x16 +/* 800A7790 000A46D0 7C 00 33 78 */ or r0, r0, r6 +/* 800A7794 000A46D4 90 08 00 00 */ stw r0, 0(r8) +/* 800A7798 000A46D8 48 00 02 B0 */ b lbl_800A7A48 +lbl_800A779C: +/* 800A779C 000A46DC 80 E8 00 00 */ lwz r7, 0(r8) +/* 800A77A0 000A46E0 54 C6 50 2A */ slwi r6, r6, 0xa +/* 800A77A4 000A46E4 2C 00 00 02 */ cmpwi r0, 2 +/* 800A77A8 000A46E8 54 E7 05 A4 */ rlwinm r7, r7, 0, 0x16, 0x12 +/* 800A77AC 000A46EC 7C E6 33 78 */ or r6, r7, r6 +/* 800A77B0 000A46F0 90 C8 00 00 */ stw r6, 0(r8) +/* 800A77B4 000A46F4 40 82 00 28 */ bne lbl_800A77DC +/* 800A77B8 000A46F8 80 08 00 00 */ lwz r0, 0(r8) +/* 800A77BC 000A46FC 54 00 05 EA */ rlwinm r0, r0, 0, 0x17, 0x15 +/* 800A77C0 000A4700 60 00 02 00 */ ori r0, r0, 0x200 +/* 800A77C4 000A4704 90 08 00 00 */ stw r0, 0(r8) +/* 800A77C8 000A4708 80 08 00 00 */ lwz r0, 0(r8) +/* 800A77CC 000A470C 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A77D0 000A4710 64 00 80 00 */ oris r0, r0, 0x8000 +/* 800A77D4 000A4714 90 08 00 00 */ stw r0, 0(r8) +/* 800A77D8 000A4718 48 00 02 70 */ b lbl_800A7A48 +lbl_800A77DC: +/* 800A77DC 000A471C 80 C8 00 00 */ lwz r6, 0(r8) +/* 800A77E0 000A4720 54 00 48 2C */ slwi r0, r0, 9 +/* 800A77E4 000A4724 54 C6 05 EA */ rlwinm r6, r6, 0, 0x17, 0x15 +/* 800A77E8 000A4728 7C C0 03 78 */ or r0, r6, r0 +/* 800A77EC 000A472C 90 08 00 00 */ stw r0, 0(r8) +/* 800A77F0 000A4730 80 08 00 00 */ lwz r0, 0(r8) +/* 800A77F4 000A4734 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A77F8 000A4738 90 08 00 00 */ stw r0, 0(r8) +/* 800A77FC 000A473C 48 00 02 4C */ b lbl_800A7A48 +lbl_800A7800: +/* 800A7800 000A4740 81 68 00 00 */ lwz r11, 0(r8) +/* 800A7804 000A4744 54 07 68 24 */ slwi r7, r0, 0xd +/* 800A7808 000A4748 54 C0 70 22 */ slwi r0, r6, 0xe +/* 800A780C 000A474C 55 66 04 E2 */ rlwinm r6, r11, 0, 0x13, 0x11 +/* 800A7810 000A4750 7C C6 3B 78 */ or r6, r6, r7 +/* 800A7814 000A4754 90 C8 00 00 */ stw r6, 0(r8) +/* 800A7818 000A4758 80 C8 00 00 */ lwz r6, 0(r8) +/* 800A781C 000A475C 54 C6 04 9C */ rlwinm r6, r6, 0, 0x12, 0xe +/* 800A7820 000A4760 7C C0 03 78 */ or r0, r6, r0 +/* 800A7824 000A4764 90 08 00 00 */ stw r0, 0(r8) +/* 800A7828 000A4768 48 00 02 20 */ b lbl_800A7A48 +lbl_800A782C: +/* 800A782C 000A476C 81 68 00 00 */ lwz r11, 0(r8) +/* 800A7830 000A4770 54 07 88 1C */ slwi r7, r0, 0x11 +/* 800A7834 000A4774 54 C0 90 1A */ slwi r0, r6, 0x12 +/* 800A7838 000A4778 55 66 03 DA */ rlwinm r6, r11, 0, 0xf, 0xd +/* 800A783C 000A477C 7C C6 3B 78 */ or r6, r6, r7 +/* 800A7840 000A4780 90 C8 00 00 */ stw r6, 0(r8) +/* 800A7844 000A4784 80 C8 00 00 */ lwz r6, 0(r8) +/* 800A7848 000A4788 54 C6 03 94 */ rlwinm r6, r6, 0, 0xe, 0xa +/* 800A784C 000A478C 7C C0 03 78 */ or r0, r6, r0 +/* 800A7850 000A4790 90 08 00 00 */ stw r0, 0(r8) +/* 800A7854 000A4794 48 00 01 F4 */ b lbl_800A7A48 +lbl_800A7858: +/* 800A7858 000A4798 81 68 00 00 */ lwz r11, 0(r8) +/* 800A785C 000A479C 54 00 A8 14 */ slwi r0, r0, 0x15 +/* 800A7860 000A47A0 54 C6 B0 12 */ slwi r6, r6, 0x16 +/* 800A7864 000A47A4 55 6B 02 D2 */ rlwinm r11, r11, 0, 0xb, 9 +/* 800A7868 000A47A8 7D 60 03 78 */ or r0, r11, r0 +/* 800A786C 000A47AC 90 08 00 00 */ stw r0, 0(r8) +/* 800A7870 000A47B0 54 E0 C8 0C */ slwi r0, r7, 0x19 +/* 800A7874 000A47B4 80 E8 00 00 */ lwz r7, 0(r8) +/* 800A7878 000A47B8 54 E7 02 8C */ rlwinm r7, r7, 0, 0xa, 6 +/* 800A787C 000A47BC 7C E6 33 78 */ or r6, r7, r6 +/* 800A7880 000A47C0 90 C8 00 00 */ stw r6, 0(r8) +/* 800A7884 000A47C4 80 C8 00 00 */ lwz r6, 0(r8) +/* 800A7888 000A47C8 54 C6 01 C2 */ rlwinm r6, r6, 0, 7, 1 +/* 800A788C 000A47CC 7C C0 03 78 */ or r0, r6, r0 +/* 800A7890 000A47D0 90 08 00 00 */ stw r0, 0(r8) +/* 800A7894 000A47D4 48 00 01 B4 */ b lbl_800A7A48 +lbl_800A7898: +/* 800A7898 000A47D8 81 89 00 00 */ lwz r12, 0(r9) +/* 800A789C 000A47DC 54 CB 08 3C */ slwi r11, r6, 1 +/* 800A78A0 000A47E0 54 E6 20 36 */ slwi r6, r7, 4 +/* 800A78A4 000A47E4 55 87 00 3C */ rlwinm r7, r12, 0, 0, 0x1e +/* 800A78A8 000A47E8 7C E0 03 78 */ or r0, r7, r0 +/* 800A78AC 000A47EC 90 09 00 00 */ stw r0, 0(r9) +/* 800A78B0 000A47F0 80 09 00 00 */ lwz r0, 0(r9) +/* 800A78B4 000A47F4 54 00 07 F6 */ rlwinm r0, r0, 0, 0x1f, 0x1b +/* 800A78B8 000A47F8 7C 00 5B 78 */ or r0, r0, r11 +/* 800A78BC 000A47FC 90 09 00 00 */ stw r0, 0(r9) +/* 800A78C0 000A4800 80 09 00 00 */ lwz r0, 0(r9) +/* 800A78C4 000A4804 54 00 07 2C */ rlwinm r0, r0, 0, 0x1c, 0x16 +/* 800A78C8 000A4808 7C 00 33 78 */ or r0, r0, r6 +/* 800A78CC 000A480C 90 09 00 00 */ stw r0, 0(r9) +/* 800A78D0 000A4810 48 00 01 78 */ b lbl_800A7A48 +lbl_800A78D4: +/* 800A78D4 000A4814 81 69 00 00 */ lwz r11, 0(r9) +/* 800A78D8 000A4818 54 00 48 2C */ slwi r0, r0, 9 +/* 800A78DC 000A481C 54 C6 50 2A */ slwi r6, r6, 0xa +/* 800A78E0 000A4820 55 6B 05 EA */ rlwinm r11, r11, 0, 0x17, 0x15 +/* 800A78E4 000A4824 7D 60 03 78 */ or r0, r11, r0 +/* 800A78E8 000A4828 90 09 00 00 */ stw r0, 0(r9) +/* 800A78EC 000A482C 54 E0 68 24 */ slwi r0, r7, 0xd +/* 800A78F0 000A4830 80 E9 00 00 */ lwz r7, 0(r9) +/* 800A78F4 000A4834 54 E7 05 A4 */ rlwinm r7, r7, 0, 0x16, 0x12 +/* 800A78F8 000A4838 7C E6 33 78 */ or r6, r7, r6 +/* 800A78FC 000A483C 90 C9 00 00 */ stw r6, 0(r9) +/* 800A7900 000A4840 80 C9 00 00 */ lwz r6, 0(r9) +/* 800A7904 000A4844 54 C6 04 DA */ rlwinm r6, r6, 0, 0x13, 0xd +/* 800A7908 000A4848 7C C0 03 78 */ or r0, r6, r0 +/* 800A790C 000A484C 90 09 00 00 */ stw r0, 0(r9) +/* 800A7910 000A4850 48 00 01 38 */ b lbl_800A7A48 +lbl_800A7914: +/* 800A7914 000A4854 81 69 00 00 */ lwz r11, 0(r9) +/* 800A7918 000A4858 54 00 90 1A */ slwi r0, r0, 0x12 +/* 800A791C 000A485C 54 C6 98 18 */ slwi r6, r6, 0x13 +/* 800A7920 000A4860 55 6B 03 98 */ rlwinm r11, r11, 0, 0xe, 0xc +/* 800A7924 000A4864 7D 60 03 78 */ or r0, r11, r0 +/* 800A7928 000A4868 90 09 00 00 */ stw r0, 0(r9) +/* 800A792C 000A486C 54 E0 B0 12 */ slwi r0, r7, 0x16 +/* 800A7930 000A4870 80 E9 00 00 */ lwz r7, 0(r9) +/* 800A7934 000A4874 54 E7 03 52 */ rlwinm r7, r7, 0, 0xd, 9 +/* 800A7938 000A4878 7C E6 33 78 */ or r6, r7, r6 +/* 800A793C 000A487C 90 C9 00 00 */ stw r6, 0(r9) +/* 800A7940 000A4880 80 C9 00 00 */ lwz r6, 0(r9) +/* 800A7944 000A4884 54 C6 02 88 */ rlwinm r6, r6, 0, 0xa, 4 +/* 800A7948 000A4888 7C C0 03 78 */ or r0, r6, r0 +/* 800A794C 000A488C 90 09 00 00 */ stw r0, 0(r9) +/* 800A7950 000A4890 48 00 00 F8 */ b lbl_800A7A48 +lbl_800A7954: +/* 800A7954 000A4894 81 89 00 00 */ lwz r12, 0(r9) +/* 800A7958 000A4898 54 0B D8 08 */ slwi r11, r0, 0x1b +/* 800A795C 000A489C 54 C0 E0 06 */ slwi r0, r6, 0x1c +/* 800A7960 000A48A0 55 86 01 46 */ rlwinm r6, r12, 0, 5, 3 +/* 800A7964 000A48A4 7C C6 5B 78 */ or r6, r6, r11 +/* 800A7968 000A48A8 90 C9 00 00 */ stw r6, 0(r9) +/* 800A796C 000A48AC 80 C9 00 00 */ lwz r6, 0(r9) +/* 800A7970 000A48B0 54 C6 01 00 */ rlwinm r6, r6, 0, 4, 0 +/* 800A7974 000A48B4 7C C0 03 78 */ or r0, r6, r0 +/* 800A7978 000A48B8 90 09 00 00 */ stw r0, 0(r9) +/* 800A797C 000A48BC 80 0A 00 00 */ lwz r0, 0(r10) +/* 800A7980 000A48C0 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a +/* 800A7984 000A48C4 7C 00 3B 78 */ or r0, r0, r7 +/* 800A7988 000A48C8 90 0A 00 00 */ stw r0, 0(r10) +/* 800A798C 000A48CC 48 00 00 BC */ b lbl_800A7A48 +lbl_800A7990: +/* 800A7990 000A48D0 81 6A 00 00 */ lwz r11, 0(r10) +/* 800A7994 000A48D4 54 00 28 34 */ slwi r0, r0, 5 +/* 800A7998 000A48D8 54 C6 30 32 */ slwi r6, r6, 6 +/* 800A799C 000A48DC 55 6B 06 F2 */ rlwinm r11, r11, 0, 0x1b, 0x19 +/* 800A79A0 000A48E0 7D 60 03 78 */ or r0, r11, r0 +/* 800A79A4 000A48E4 90 0A 00 00 */ stw r0, 0(r10) +/* 800A79A8 000A48E8 54 E0 48 2C */ slwi r0, r7, 9 +/* 800A79AC 000A48EC 80 EA 00 00 */ lwz r7, 0(r10) +/* 800A79B0 000A48F0 54 E7 06 AC */ rlwinm r7, r7, 0, 0x1a, 0x16 +/* 800A79B4 000A48F4 7C E6 33 78 */ or r6, r7, r6 +/* 800A79B8 000A48F8 90 CA 00 00 */ stw r6, 0(r10) +/* 800A79BC 000A48FC 80 CA 00 00 */ lwz r6, 0(r10) +/* 800A79C0 000A4900 54 C6 05 E2 */ rlwinm r6, r6, 0, 0x17, 0x11 +/* 800A79C4 000A4904 7C C0 03 78 */ or r0, r6, r0 +/* 800A79C8 000A4908 90 0A 00 00 */ stw r0, 0(r10) +/* 800A79CC 000A490C 48 00 00 7C */ b lbl_800A7A48 +lbl_800A79D0: +/* 800A79D0 000A4910 81 6A 00 00 */ lwz r11, 0(r10) +/* 800A79D4 000A4914 54 00 70 22 */ slwi r0, r0, 0xe +/* 800A79D8 000A4918 54 C6 78 20 */ slwi r6, r6, 0xf +/* 800A79DC 000A491C 55 6B 04 A0 */ rlwinm r11, r11, 0, 0x12, 0x10 +/* 800A79E0 000A4920 7D 60 03 78 */ or r0, r11, r0 +/* 800A79E4 000A4924 90 0A 00 00 */ stw r0, 0(r10) +/* 800A79E8 000A4928 54 E0 90 1A */ slwi r0, r7, 0x12 +/* 800A79EC 000A492C 80 EA 00 00 */ lwz r7, 0(r10) +/* 800A79F0 000A4930 54 E7 04 5A */ rlwinm r7, r7, 0, 0x11, 0xd +/* 800A79F4 000A4934 7C E6 33 78 */ or r6, r7, r6 +/* 800A79F8 000A4938 90 CA 00 00 */ stw r6, 0(r10) +/* 800A79FC 000A493C 80 CA 00 00 */ lwz r6, 0(r10) +/* 800A7A00 000A4940 54 C6 03 90 */ rlwinm r6, r6, 0, 0xe, 8 +/* 800A7A04 000A4944 7C C0 03 78 */ or r0, r6, r0 +/* 800A7A08 000A4948 90 0A 00 00 */ stw r0, 0(r10) +/* 800A7A0C 000A494C 48 00 00 3C */ b lbl_800A7A48 +lbl_800A7A10: +/* 800A7A10 000A4950 81 8A 00 00 */ lwz r12, 0(r10) +/* 800A7A14 000A4954 54 0B B8 10 */ slwi r11, r0, 0x17 +/* 800A7A18 000A4958 54 C0 C0 0E */ slwi r0, r6, 0x18 +/* 800A7A1C 000A495C 55 86 02 4E */ rlwinm r6, r12, 0, 9, 7 +/* 800A7A20 000A4960 7C C6 5B 78 */ or r6, r6, r11 +/* 800A7A24 000A4964 90 CA 00 00 */ stw r6, 0(r10) +/* 800A7A28 000A4968 80 CA 00 00 */ lwz r6, 0(r10) +/* 800A7A2C 000A496C 54 C6 02 08 */ rlwinm r6, r6, 0, 8, 4 +/* 800A7A30 000A4970 7C C0 03 78 */ or r0, r6, r0 +/* 800A7A34 000A4974 90 0A 00 00 */ stw r0, 0(r10) +/* 800A7A38 000A4978 80 0A 00 00 */ lwz r0, 0(r10) +/* 800A7A3C 000A497C 54 00 01 7E */ clrlwi r0, r0, 5 +/* 800A7A40 000A4980 50 E0 D8 08 */ rlwimi r0, r7, 0x1b, 0, 4 +/* 800A7A44 000A4984 90 0A 00 00 */ stw r0, 0(r10) +lbl_800A7A48: +/* 800A7A48 000A4988 38 84 00 10 */ addi r4, r4, 0x10 +lbl_800A7A4C: +/* 800A7A4C 000A498C 80 04 00 00 */ lwz r0, 0(r4) +/* 800A7A50 000A4990 2C 00 00 FF */ cmpwi r0, 0xff +/* 800A7A54 000A4994 40 82 FC E0 */ bne lbl_800A7734 +/* 800A7A58 000A4998 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A7A5C 000A499C 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 800A7A60 000A49A0 38 60 00 01 */ li r3, 1 +/* 800A7A64 000A49A4 80 85 04 F4 */ lwz r4, 0x4f4(r5) +/* 800A7A68 000A49A8 7C 60 00 30 */ slw r0, r3, r0 +/* 800A7A6C 000A49AC 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 800A7A70 000A49B0 60 83 00 10 */ ori r3, r4, 0x10 +/* 800A7A74 000A49B4 90 65 04 F4 */ stw r3, 0x4f4(r5) +/* 800A7A78 000A49B8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A7A7C 000A49BC 88 64 04 F2 */ lbz r3, 0x4f2(r4) +/* 800A7A80 000A49C0 7C 60 03 78 */ or r0, r3, r0 +/* 800A7A84 000A49C4 98 04 04 F2 */ stb r0, 0x4f2(r4) +/* 800A7A88 000A49C8 4E 80 00 20 */ blr + +.global __GXSetVAT +__GXSetVAT: +/* 800A7A8C 000A49CC 81 4D 82 C8 */ lwz r10, gx@sda21(r13) +/* 800A7A90 000A49D0 39 80 00 00 */ li r12, 0 +/* 800A7A94 000A49D4 39 60 00 00 */ li r11, 0 +/* 800A7A98 000A49D8 3C E0 CC 01 */ lis r7, 0xcc01 +/* 800A7A9C 000A49DC 48 00 00 70 */ b lbl_800A7B0C +lbl_800A7AA0: +/* 800A7AA0 000A49E0 55 89 06 3E */ clrlwi r9, r12, 0x18 +/* 800A7AA4 000A49E4 88 6A 04 F2 */ lbz r3, 0x4f2(r10) +/* 800A7AA8 000A49E8 38 00 00 01 */ li r0, 1 +/* 800A7AAC 000A49EC 7C 00 48 30 */ slw r0, r0, r9 +/* 800A7AB0 000A49F0 7C 60 00 39 */ and. r0, r3, r0 +/* 800A7AB4 000A49F4 41 82 00 50 */ beq lbl_800A7B04 +/* 800A7AB8 000A49F8 39 00 00 08 */ li r8, 8 +/* 800A7ABC 000A49FC 99 07 80 00 */ stb r8, -0x8000(r7) +/* 800A7AC0 000A4A00 61 23 00 70 */ ori r3, r9, 0x70 +/* 800A7AC4 000A4A04 38 0B 00 1C */ addi r0, r11, 0x1c +/* 800A7AC8 000A4A08 98 67 80 00 */ stb r3, -0x8000(r7) +/* 800A7ACC 000A4A0C 61 25 00 80 */ ori r5, r9, 0x80 +/* 800A7AD0 000A4A10 38 8B 00 3C */ addi r4, r11, 0x3c +/* 800A7AD4 000A4A14 7C CA 00 2E */ lwzx r6, r10, r0 +/* 800A7AD8 000A4A18 61 23 00 90 */ ori r3, r9, 0x90 +/* 800A7ADC 000A4A1C 38 0B 00 5C */ addi r0, r11, 0x5c +/* 800A7AE0 000A4A20 90 C7 80 00 */ stw r6, -0x8000(r7) +/* 800A7AE4 000A4A24 99 07 80 00 */ stb r8, -0x8000(r7) +/* 800A7AE8 000A4A28 98 A7 80 00 */ stb r5, -0x8000(r7) +/* 800A7AEC 000A4A2C 7C 8A 20 2E */ lwzx r4, r10, r4 +/* 800A7AF0 000A4A30 90 87 80 00 */ stw r4, -0x8000(r7) +/* 800A7AF4 000A4A34 99 07 80 00 */ stb r8, -0x8000(r7) +/* 800A7AF8 000A4A38 98 67 80 00 */ stb r3, -0x8000(r7) +/* 800A7AFC 000A4A3C 7C 0A 00 2E */ lwzx r0, r10, r0 +/* 800A7B00 000A4A40 90 07 80 00 */ stw r0, -0x8000(r7) +lbl_800A7B04: +/* 800A7B04 000A4A44 39 6B 00 04 */ addi r11, r11, 4 +/* 800A7B08 000A4A48 39 8C 00 01 */ addi r12, r12, 1 +lbl_800A7B0C: +/* 800A7B0C 000A4A4C 55 80 06 3E */ clrlwi r0, r12, 0x18 +/* 800A7B10 000A4A50 28 00 00 08 */ cmplwi r0, 8 +/* 800A7B14 000A4A54 41 80 FF 8C */ blt lbl_800A7AA0 +/* 800A7B18 000A4A58 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7B1C 000A4A5C 38 00 00 00 */ li r0, 0 +/* 800A7B20 000A4A60 98 03 04 F2 */ stb r0, 0x4f2(r3) +/* 800A7B24 000A4A64 4E 80 00 20 */ blr + +.global GXGetVtxAttrFmt +GXGetVtxAttrFmt: +/* 800A7B28 000A4A68 38 04 FF F7 */ addi r0, r4, -9 +/* 800A7B2C 000A4A6C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A7B30 000A4A70 54 63 10 3A */ slwi r3, r3, 2 +/* 800A7B34 000A4A74 7C 84 1A 14 */ add r4, r4, r3 +/* 800A7B38 000A4A78 28 00 00 10 */ cmplwi r0, 0x10 +/* 800A7B3C 000A4A7C 38 64 00 1C */ addi r3, r4, 0x1c +/* 800A7B40 000A4A80 39 04 00 3C */ addi r8, r4, 0x3c +/* 800A7B44 000A4A84 39 24 00 5C */ addi r9, r4, 0x5c +/* 800A7B48 000A4A88 41 81 02 10 */ bgt lbl_800A7D58 +/* 800A7B4C 000A4A8C 3C 80 80 3B */ lis r4, "@393"@ha +/* 800A7B50 000A4A90 38 84 17 00 */ addi r4, r4, "@393"@l +/* 800A7B54 000A4A94 54 00 10 3A */ slwi r0, r0, 2 +/* 800A7B58 000A4A98 7C 04 00 2E */ lwzx r0, r4, r0 +/* 800A7B5C 000A4A9C 7C 09 03 A6 */ mtctr r0 +/* 800A7B60 000A4AA0 4E 80 04 20 */ bctr +lbl_800A7B64: +/* 800A7B64 000A4AA4 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7B68 000A4AA8 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 800A7B6C 000A4AAC 90 05 00 00 */ stw r0, 0(r5) +/* 800A7B70 000A4AB0 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7B74 000A4AB4 54 00 FF 7E */ rlwinm r0, r0, 0x1f, 0x1d, 0x1f +/* 800A7B78 000A4AB8 90 06 00 00 */ stw r0, 0(r6) +/* 800A7B7C 000A4ABC 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7B80 000A4AC0 54 00 E6 FE */ rlwinm r0, r0, 0x1c, 0x1b, 0x1f +/* 800A7B84 000A4AC4 98 07 00 00 */ stb r0, 0(r7) +/* 800A7B88 000A4AC8 4E 80 00 20 */ blr +lbl_800A7B8C: +/* 800A7B8C 000A4ACC 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7B90 000A4AD0 54 00 BF FE */ rlwinm r0, r0, 0x17, 0x1f, 0x1f +/* 800A7B94 000A4AD4 90 05 00 00 */ stw r0, 0(r5) +/* 800A7B98 000A4AD8 80 05 00 00 */ lwz r0, 0(r5) +/* 800A7B9C 000A4ADC 2C 00 00 01 */ cmpwi r0, 1 +/* 800A7BA0 000A4AE0 40 82 00 18 */ bne lbl_800A7BB8 +/* 800A7BA4 000A4AE4 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7BA8 000A4AE8 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f +/* 800A7BAC 000A4AEC 41 82 00 0C */ beq lbl_800A7BB8 +/* 800A7BB0 000A4AF0 38 00 00 02 */ li r0, 2 +/* 800A7BB4 000A4AF4 90 05 00 00 */ stw r0, 0(r5) +lbl_800A7BB8: +/* 800A7BB8 000A4AF8 80 63 00 00 */ lwz r3, 0(r3) +/* 800A7BBC 000A4AFC 38 00 00 00 */ li r0, 0 +/* 800A7BC0 000A4B00 54 63 B7 7E */ rlwinm r3, r3, 0x16, 0x1d, 0x1f +/* 800A7BC4 000A4B04 90 66 00 00 */ stw r3, 0(r6) +/* 800A7BC8 000A4B08 98 07 00 00 */ stb r0, 0(r7) +/* 800A7BCC 000A4B0C 4E 80 00 20 */ blr +lbl_800A7BD0: +/* 800A7BD0 000A4B10 80 83 00 00 */ lwz r4, 0(r3) +/* 800A7BD4 000A4B14 38 00 00 00 */ li r0, 0 +/* 800A7BD8 000A4B18 54 84 9F FE */ rlwinm r4, r4, 0x13, 0x1f, 0x1f +/* 800A7BDC 000A4B1C 90 85 00 00 */ stw r4, 0(r5) +/* 800A7BE0 000A4B20 80 63 00 00 */ lwz r3, 0(r3) +/* 800A7BE4 000A4B24 54 63 97 7E */ rlwinm r3, r3, 0x12, 0x1d, 0x1f +/* 800A7BE8 000A4B28 90 66 00 00 */ stw r3, 0(r6) +/* 800A7BEC 000A4B2C 98 07 00 00 */ stb r0, 0(r7) +/* 800A7BF0 000A4B30 4E 80 00 20 */ blr +lbl_800A7BF4: +/* 800A7BF4 000A4B34 80 83 00 00 */ lwz r4, 0(r3) +/* 800A7BF8 000A4B38 38 00 00 00 */ li r0, 0 +/* 800A7BFC 000A4B3C 54 84 7F FE */ rlwinm r4, r4, 0xf, 0x1f, 0x1f +/* 800A7C00 000A4B40 90 85 00 00 */ stw r4, 0(r5) +/* 800A7C04 000A4B44 80 63 00 00 */ lwz r3, 0(r3) +/* 800A7C08 000A4B48 54 63 77 7E */ rlwinm r3, r3, 0xe, 0x1d, 0x1f +/* 800A7C0C 000A4B4C 90 66 00 00 */ stw r3, 0(r6) +/* 800A7C10 000A4B50 98 07 00 00 */ stb r0, 0(r7) +/* 800A7C14 000A4B54 4E 80 00 20 */ blr +lbl_800A7C18: +/* 800A7C18 000A4B58 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7C1C 000A4B5C 54 00 5F FE */ rlwinm r0, r0, 0xb, 0x1f, 0x1f +/* 800A7C20 000A4B60 90 05 00 00 */ stw r0, 0(r5) +/* 800A7C24 000A4B64 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7C28 000A4B68 54 00 57 7E */ rlwinm r0, r0, 0xa, 0x1d, 0x1f +/* 800A7C2C 000A4B6C 90 06 00 00 */ stw r0, 0(r6) +/* 800A7C30 000A4B70 80 03 00 00 */ lwz r0, 0(r3) +/* 800A7C34 000A4B74 54 00 3E FE */ rlwinm r0, r0, 7, 0x1b, 0x1f +/* 800A7C38 000A4B78 98 07 00 00 */ stb r0, 0(r7) +/* 800A7C3C 000A4B7C 4E 80 00 20 */ blr +lbl_800A7C40: +/* 800A7C40 000A4B80 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C44 000A4B84 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 800A7C48 000A4B88 90 05 00 00 */ stw r0, 0(r5) +/* 800A7C4C 000A4B8C 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C50 000A4B90 54 00 FF 7E */ rlwinm r0, r0, 0x1f, 0x1d, 0x1f +/* 800A7C54 000A4B94 90 06 00 00 */ stw r0, 0(r6) +/* 800A7C58 000A4B98 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C5C 000A4B9C 54 00 E6 FE */ rlwinm r0, r0, 0x1c, 0x1b, 0x1f +/* 800A7C60 000A4BA0 98 07 00 00 */ stb r0, 0(r7) +/* 800A7C64 000A4BA4 4E 80 00 20 */ blr +lbl_800A7C68: +/* 800A7C68 000A4BA8 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C6C 000A4BAC 54 00 BF FE */ rlwinm r0, r0, 0x17, 0x1f, 0x1f +/* 800A7C70 000A4BB0 90 05 00 00 */ stw r0, 0(r5) +/* 800A7C74 000A4BB4 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C78 000A4BB8 54 00 B7 7E */ rlwinm r0, r0, 0x16, 0x1d, 0x1f +/* 800A7C7C 000A4BBC 90 06 00 00 */ stw r0, 0(r6) +/* 800A7C80 000A4BC0 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C84 000A4BC4 54 00 9E FE */ rlwinm r0, r0, 0x13, 0x1b, 0x1f +/* 800A7C88 000A4BC8 98 07 00 00 */ stb r0, 0(r7) +/* 800A7C8C 000A4BCC 4E 80 00 20 */ blr +lbl_800A7C90: +/* 800A7C90 000A4BD0 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7C94 000A4BD4 54 00 77 FE */ rlwinm r0, r0, 0xe, 0x1f, 0x1f +/* 800A7C98 000A4BD8 90 05 00 00 */ stw r0, 0(r5) +/* 800A7C9C 000A4BDC 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7CA0 000A4BE0 54 00 6F 7E */ rlwinm r0, r0, 0xd, 0x1d, 0x1f +/* 800A7CA4 000A4BE4 90 06 00 00 */ stw r0, 0(r6) +/* 800A7CA8 000A4BE8 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7CAC 000A4BEC 54 00 56 FE */ rlwinm r0, r0, 0xa, 0x1b, 0x1f +/* 800A7CB0 000A4BF0 98 07 00 00 */ stb r0, 0(r7) +/* 800A7CB4 000A4BF4 4E 80 00 20 */ blr +lbl_800A7CB8: +/* 800A7CB8 000A4BF8 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7CBC 000A4BFC 54 00 2F FE */ rlwinm r0, r0, 5, 0x1f, 0x1f +/* 800A7CC0 000A4C00 90 05 00 00 */ stw r0, 0(r5) +/* 800A7CC4 000A4C04 80 08 00 00 */ lwz r0, 0(r8) +/* 800A7CC8 000A4C08 54 00 27 7E */ rlwinm r0, r0, 4, 0x1d, 0x1f +/* 800A7CCC 000A4C0C 90 06 00 00 */ stw r0, 0(r6) +/* 800A7CD0 000A4C10 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7CD4 000A4C14 54 00 06 FE */ clrlwi r0, r0, 0x1b +/* 800A7CD8 000A4C18 98 07 00 00 */ stb r0, 0(r7) +/* 800A7CDC 000A4C1C 4E 80 00 20 */ blr +lbl_800A7CE0: +/* 800A7CE0 000A4C20 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7CE4 000A4C24 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f +/* 800A7CE8 000A4C28 90 05 00 00 */ stw r0, 0(r5) +/* 800A7CEC 000A4C2C 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7CF0 000A4C30 54 00 D7 7E */ rlwinm r0, r0, 0x1a, 0x1d, 0x1f +/* 800A7CF4 000A4C34 90 06 00 00 */ stw r0, 0(r6) +/* 800A7CF8 000A4C38 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7CFC 000A4C3C 54 00 BE FE */ rlwinm r0, r0, 0x17, 0x1b, 0x1f +/* 800A7D00 000A4C40 98 07 00 00 */ stb r0, 0(r7) +/* 800A7D04 000A4C44 4E 80 00 20 */ blr +lbl_800A7D08: +/* 800A7D08 000A4C48 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7D0C 000A4C4C 54 00 97 FE */ rlwinm r0, r0, 0x12, 0x1f, 0x1f +/* 800A7D10 000A4C50 90 05 00 00 */ stw r0, 0(r5) +/* 800A7D14 000A4C54 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7D18 000A4C58 54 00 8F 7E */ rlwinm r0, r0, 0x11, 0x1d, 0x1f +/* 800A7D1C 000A4C5C 90 06 00 00 */ stw r0, 0(r6) +/* 800A7D20 000A4C60 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7D24 000A4C64 54 00 76 FE */ rlwinm r0, r0, 0xe, 0x1b, 0x1f +/* 800A7D28 000A4C68 98 07 00 00 */ stb r0, 0(r7) +/* 800A7D2C 000A4C6C 4E 80 00 20 */ blr +lbl_800A7D30: +/* 800A7D30 000A4C70 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7D34 000A4C74 54 00 4F FE */ rlwinm r0, r0, 9, 0x1f, 0x1f +/* 800A7D38 000A4C78 90 05 00 00 */ stw r0, 0(r5) +/* 800A7D3C 000A4C7C 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7D40 000A4C80 54 00 47 7E */ rlwinm r0, r0, 8, 0x1d, 0x1f +/* 800A7D44 000A4C84 90 06 00 00 */ stw r0, 0(r6) +/* 800A7D48 000A4C88 80 09 00 00 */ lwz r0, 0(r9) +/* 800A7D4C 000A4C8C 54 00 2E FE */ srwi r0, r0, 0x1b +/* 800A7D50 000A4C90 98 07 00 00 */ stb r0, 0(r7) +/* 800A7D54 000A4C94 4E 80 00 20 */ blr +lbl_800A7D58: +/* 800A7D58 000A4C98 38 00 00 01 */ li r0, 1 +/* 800A7D5C 000A4C9C 90 05 00 00 */ stw r0, 0(r5) +/* 800A7D60 000A4CA0 38 00 00 00 */ li r0, 0 +/* 800A7D64 000A4CA4 90 06 00 00 */ stw r0, 0(r6) +/* 800A7D68 000A4CA8 98 07 00 00 */ stb r0, 0(r7) +/* 800A7D6C 000A4CAC 4E 80 00 20 */ blr + +.global GXGetVtxAttrFmtv +GXGetVtxAttrFmtv: +/* 800A7D70 000A4CB0 7C 08 02 A6 */ mflr r0 +/* 800A7D74 000A4CB4 90 01 00 04 */ stw r0, 4(r1) +/* 800A7D78 000A4CB8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800A7D7C 000A4CBC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800A7D80 000A4CC0 3B E0 00 09 */ li r31, 9 +/* 800A7D84 000A4CC4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 800A7D88 000A4CC8 3B C4 00 00 */ addi r30, r4, 0 +/* 800A7D8C 000A4CCC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 800A7D90 000A4CD0 3B A3 00 00 */ addi r29, r3, 0 +lbl_800A7D94: +/* 800A7D94 000A4CD4 93 FE 00 00 */ stw r31, 0(r30) +/* 800A7D98 000A4CD8 38 7D 00 00 */ addi r3, r29, 0 +/* 800A7D9C 000A4CDC 38 9F 00 00 */ addi r4, r31, 0 +/* 800A7DA0 000A4CE0 38 BE 00 04 */ addi r5, r30, 4 +/* 800A7DA4 000A4CE4 38 DE 00 08 */ addi r6, r30, 8 +/* 800A7DA8 000A4CE8 38 FE 00 0C */ addi r7, r30, 0xc +/* 800A7DAC 000A4CEC 4B FF FD 7D */ bl GXGetVtxAttrFmt +/* 800A7DB0 000A4CF0 3B FF 00 01 */ addi r31, r31, 1 +/* 800A7DB4 000A4CF4 2C 1F 00 1A */ cmpwi r31, 0x1a +/* 800A7DB8 000A4CF8 3B DE 00 10 */ addi r30, r30, 0x10 +/* 800A7DBC 000A4CFC 41 80 FF D8 */ blt lbl_800A7D94 +/* 800A7DC0 000A4D00 38 00 00 FF */ li r0, 0xff +/* 800A7DC4 000A4D04 90 1E 00 00 */ stw r0, 0(r30) +/* 800A7DC8 000A4D08 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A7DCC 000A4D0C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800A7DD0 000A4D10 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 800A7DD4 000A4D14 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 800A7DD8 000A4D18 38 21 00 20 */ addi r1, r1, 0x20 +/* 800A7DDC 000A4D1C 7C 08 03 A6 */ mtlr r0 +/* 800A7DE0 000A4D20 4E 80 00 20 */ blr + +.global GXSetArray +GXSetArray: +/* 800A7DE4 000A4D24 2C 03 00 19 */ cmpwi r3, 0x19 +/* 800A7DE8 000A4D28 40 82 00 08 */ bne lbl_800A7DF0 +/* 800A7DEC 000A4D2C 38 60 00 0A */ li r3, 0xa +lbl_800A7DF0: +/* 800A7DF0 000A4D30 38 00 00 08 */ li r0, 8 +/* 800A7DF4 000A4D34 38 C3 FF F7 */ addi r6, r3, -9 +/* 800A7DF8 000A4D38 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A7DFC 000A4D3C 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800A7E00 000A4D40 60 C0 00 A0 */ ori r0, r6, 0xa0 +/* 800A7E04 000A4D44 54 84 00 BE */ clrlwi r4, r4, 2 +/* 800A7E08 000A4D48 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800A7E0C 000A4D4C 34 06 FF F4 */ addic. r0, r6, -12 +/* 800A7E10 000A4D50 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800A7E14 000A4D54 41 80 00 1C */ blt lbl_800A7E30 +/* 800A7E18 000A4D58 2C 00 00 04 */ cmpwi r0, 4 +/* 800A7E1C 000A4D5C 40 80 00 14 */ bge lbl_800A7E30 +/* 800A7E20 000A4D60 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7E24 000A4D64 54 00 10 3A */ slwi r0, r0, 2 +/* 800A7E28 000A4D68 7C 63 02 14 */ add r3, r3, r0 +/* 800A7E2C 000A4D6C 90 83 00 88 */ stw r4, 0x88(r3) +lbl_800A7E30: +/* 800A7E30 000A4D70 38 00 00 08 */ li r0, 8 +/* 800A7E34 000A4D74 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A7E38 000A4D78 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800A7E3C 000A4D7C 60 C0 00 B0 */ ori r0, r6, 0xb0 +/* 800A7E40 000A4D80 54 A4 06 3E */ clrlwi r4, r5, 0x18 +/* 800A7E44 000A4D84 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800A7E48 000A4D88 34 06 FF F4 */ addic. r0, r6, -12 +/* 800A7E4C 000A4D8C 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800A7E50 000A4D90 4D 80 00 20 */ bltlr +/* 800A7E54 000A4D94 2C 00 00 04 */ cmpwi r0, 4 +/* 800A7E58 000A4D98 4C 80 00 20 */ bgelr +/* 800A7E5C 000A4D9C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A7E60 000A4DA0 54 00 10 3A */ slwi r0, r0, 2 +/* 800A7E64 000A4DA4 7C 63 02 14 */ add r3, r3, r0 +/* 800A7E68 000A4DA8 90 83 00 98 */ stw r4, 0x98(r3) +/* 800A7E6C 000A4DAC 4E 80 00 20 */ blr + +.global GXInvalidateVtxCache +GXInvalidateVtxCache: +/* 800A7E70 000A4DB0 38 00 00 48 */ li r0, 0x48 +/* 800A7E74 000A4DB4 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A7E78 000A4DB8 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800A7E7C 000A4DBC 4E 80 00 20 */ blr + +.global GXSetTexCoordGen2 +GXSetTexCoordGen2: +/* 800A7E80 000A4DC0 7C 08 02 A6 */ mflr r0 +/* 800A7E84 000A4DC4 28 05 00 14 */ cmplwi r5, 0x14 +/* 800A7E88 000A4DC8 90 01 00 04 */ stw r0, 4(r1) +/* 800A7E8C 000A4DCC 39 60 00 00 */ li r11, 0 +/* 800A7E90 000A4DD0 39 80 00 00 */ li r12, 0 +/* 800A7E94 000A4DD4 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A7E98 000A4DD8 39 40 00 05 */ li r10, 5 +/* 800A7E9C 000A4DDC 41 81 00 98 */ bgt lbl_800A7F34 +/* 800A7EA0 000A4DE0 3D 20 80 3B */ lis r9, "@498"@ha +/* 800A7EA4 000A4DE4 39 29 17 60 */ addi r9, r9, "@498"@l +/* 800A7EA8 000A4DE8 54 A0 10 3A */ slwi r0, r5, 2 +/* 800A7EAC 000A4DEC 7C 09 00 2E */ lwzx r0, r9, r0 +/* 800A7EB0 000A4DF0 7C 09 03 A6 */ mtctr r0 +/* 800A7EB4 000A4DF4 4E 80 04 20 */ bctr +lbl_800A7EB8: +/* 800A7EB8 000A4DF8 39 40 00 00 */ li r10, 0 +/* 800A7EBC 000A4DFC 39 80 00 01 */ li r12, 1 +/* 800A7EC0 000A4E00 48 00 00 74 */ b lbl_800A7F34 +lbl_800A7EC4: +/* 800A7EC4 000A4E04 39 40 00 01 */ li r10, 1 +/* 800A7EC8 000A4E08 39 80 00 01 */ li r12, 1 +/* 800A7ECC 000A4E0C 48 00 00 68 */ b lbl_800A7F34 +lbl_800A7ED0: +/* 800A7ED0 000A4E10 39 40 00 03 */ li r10, 3 +/* 800A7ED4 000A4E14 39 80 00 01 */ li r12, 1 +/* 800A7ED8 000A4E18 48 00 00 5C */ b lbl_800A7F34 +lbl_800A7EDC: +/* 800A7EDC 000A4E1C 39 40 00 04 */ li r10, 4 +/* 800A7EE0 000A4E20 39 80 00 01 */ li r12, 1 +/* 800A7EE4 000A4E24 48 00 00 50 */ b lbl_800A7F34 +lbl_800A7EE8: +/* 800A7EE8 000A4E28 39 40 00 02 */ li r10, 2 +/* 800A7EEC 000A4E2C 48 00 00 48 */ b lbl_800A7F34 +lbl_800A7EF0: +/* 800A7EF0 000A4E30 39 40 00 02 */ li r10, 2 +/* 800A7EF4 000A4E34 48 00 00 40 */ b lbl_800A7F34 +lbl_800A7EF8: +/* 800A7EF8 000A4E38 39 40 00 05 */ li r10, 5 +/* 800A7EFC 000A4E3C 48 00 00 38 */ b lbl_800A7F34 +lbl_800A7F00: +/* 800A7F00 000A4E40 39 40 00 06 */ li r10, 6 +/* 800A7F04 000A4E44 48 00 00 30 */ b lbl_800A7F34 +lbl_800A7F08: +/* 800A7F08 000A4E48 39 40 00 07 */ li r10, 7 +/* 800A7F0C 000A4E4C 48 00 00 28 */ b lbl_800A7F34 +lbl_800A7F10: +/* 800A7F10 000A4E50 39 40 00 08 */ li r10, 8 +/* 800A7F14 000A4E54 48 00 00 20 */ b lbl_800A7F34 +lbl_800A7F18: +/* 800A7F18 000A4E58 39 40 00 09 */ li r10, 9 +/* 800A7F1C 000A4E5C 48 00 00 18 */ b lbl_800A7F34 +lbl_800A7F20: +/* 800A7F20 000A4E60 39 40 00 0A */ li r10, 0xa +/* 800A7F24 000A4E64 48 00 00 10 */ b lbl_800A7F34 +lbl_800A7F28: +/* 800A7F28 000A4E68 39 40 00 0B */ li r10, 0xb +/* 800A7F2C 000A4E6C 48 00 00 08 */ b lbl_800A7F34 +lbl_800A7F30: +/* 800A7F30 000A4E70 39 40 00 0C */ li r10, 0xc +lbl_800A7F34: +/* 800A7F34 000A4E74 2C 04 00 01 */ cmpwi r4, 1 +/* 800A7F38 000A4E78 41 82 00 24 */ beq lbl_800A7F5C +/* 800A7F3C 000A4E7C 40 80 00 10 */ bge lbl_800A7F4C +/* 800A7F40 000A4E80 2C 04 00 00 */ cmpwi r4, 0 +/* 800A7F44 000A4E84 40 80 00 2C */ bge lbl_800A7F70 +/* 800A7F48 000A4E88 48 00 00 A4 */ b lbl_800A7FEC +lbl_800A7F4C: +/* 800A7F4C 000A4E8C 2C 04 00 0A */ cmpwi r4, 0xa +/* 800A7F50 000A4E90 41 82 00 74 */ beq lbl_800A7FC4 +/* 800A7F54 000A4E94 40 80 00 98 */ bge lbl_800A7FEC +/* 800A7F58 000A4E98 48 00 00 30 */ b lbl_800A7F88 +lbl_800A7F5C: +/* 800A7F5C 000A4E9C 55 80 10 3A */ slwi r0, r12, 2 +/* 800A7F60 000A4EA0 54 04 07 26 */ rlwinm r4, r0, 0, 0x1c, 0x13 +/* 800A7F64 000A4EA4 55 40 38 30 */ slwi r0, r10, 7 +/* 800A7F68 000A4EA8 7C 8B 03 78 */ or r11, r4, r0 +/* 800A7F6C 000A4EAC 48 00 00 80 */ b lbl_800A7FEC +lbl_800A7F70: +/* 800A7F70 000A4EB0 55 80 10 3A */ slwi r0, r12, 2 +/* 800A7F74 000A4EB4 60 00 00 02 */ ori r0, r0, 2 +/* 800A7F78 000A4EB8 54 04 07 26 */ rlwinm r4, r0, 0, 0x1c, 0x13 +/* 800A7F7C 000A4EBC 55 40 38 30 */ slwi r0, r10, 7 +/* 800A7F80 000A4EC0 7C 8B 03 78 */ or r11, r4, r0 +/* 800A7F84 000A4EC4 48 00 00 68 */ b lbl_800A7FEC +lbl_800A7F88: +/* 800A7F88 000A4EC8 55 80 10 3A */ slwi r0, r12, 2 +/* 800A7F8C 000A4ECC 54 00 07 30 */ rlwinm r0, r0, 0, 0x1c, 0x18 +/* 800A7F90 000A4ED0 60 00 00 10 */ ori r0, r0, 0x10 +/* 800A7F94 000A4ED4 54 09 06 66 */ rlwinm r9, r0, 0, 0x19, 0x13 +/* 800A7F98 000A4ED8 55 40 38 30 */ slwi r0, r10, 7 +/* 800A7F9C 000A4EDC 7D 29 03 78 */ or r9, r9, r0 +/* 800A7FA0 000A4EE0 38 A5 FF F4 */ addi r5, r5, -12 +/* 800A7FA4 000A4EE4 38 04 FF FE */ addi r0, r4, -2 +/* 800A7FA8 000A4EE8 55 29 05 20 */ rlwinm r9, r9, 0, 0x14, 0x10 +/* 800A7FAC 000A4EEC 54 A4 60 26 */ slwi r4, r5, 0xc +/* 800A7FB0 000A4EF0 7D 24 23 78 */ or r4, r9, r4 +/* 800A7FB4 000A4EF4 54 84 04 5A */ rlwinm r4, r4, 0, 0x11, 0xd +/* 800A7FB8 000A4EF8 54 00 78 20 */ slwi r0, r0, 0xf +/* 800A7FBC 000A4EFC 7C 8B 03 78 */ or r11, r4, r0 +/* 800A7FC0 000A4F00 48 00 00 2C */ b lbl_800A7FEC +lbl_800A7FC4: +/* 800A7FC4 000A4F04 2C 05 00 13 */ cmpwi r5, 0x13 +/* 800A7FC8 000A4F08 55 80 10 3A */ slwi r0, r12, 2 +/* 800A7FCC 000A4F0C 40 82 00 10 */ bne lbl_800A7FDC +/* 800A7FD0 000A4F10 54 00 07 30 */ rlwinm r0, r0, 0, 0x1c, 0x18 +/* 800A7FD4 000A4F14 60 00 00 20 */ ori r0, r0, 0x20 +/* 800A7FD8 000A4F18 48 00 00 0C */ b lbl_800A7FE4 +lbl_800A7FDC: +/* 800A7FDC 000A4F1C 54 00 07 30 */ rlwinm r0, r0, 0, 0x1c, 0x18 +/* 800A7FE0 000A4F20 60 00 00 30 */ ori r0, r0, 0x30 +lbl_800A7FE4: +/* 800A7FE4 000A4F24 54 00 06 66 */ rlwinm r0, r0, 0, 0x19, 0x13 +/* 800A7FE8 000A4F28 60 0B 01 00 */ ori r11, r0, 0x100 +lbl_800A7FEC: +/* 800A7FEC 000A4F2C 39 40 00 10 */ li r10, 0x10 +/* 800A7FF0 000A4F30 3D 20 CC 01 */ lis r9, 0xCC008000@ha +/* 800A7FF4 000A4F34 99 49 80 00 */ stb r10, 0xCC008000@l(r9) +/* 800A7FF8 000A4F38 38 03 10 40 */ addi r0, r3, 0x1040 +/* 800A7FFC 000A4F3C 38 88 FF C0 */ addi r4, r8, -64 +/* 800A8000 000A4F40 90 09 80 00 */ stw r0, -0x8000(r9) +/* 800A8004 000A4F44 54 85 06 2C */ rlwinm r5, r4, 0, 0x18, 0x16 +/* 800A8008 000A4F48 54 E4 44 2E */ rlwinm r4, r7, 8, 0x10, 0x17 +/* 800A800C 000A4F4C 91 69 80 00 */ stw r11, -0x8000(r9) +/* 800A8010 000A4F50 38 03 10 50 */ addi r0, r3, 0x1050 +/* 800A8014 000A4F54 28 03 00 06 */ cmplwi r3, 6 +/* 800A8018 000A4F58 99 49 80 00 */ stb r10, -0x8000(r9) +/* 800A801C 000A4F5C 7C A4 23 78 */ or r4, r5, r4 +/* 800A8020 000A4F60 90 09 80 00 */ stw r0, -0x8000(r9) +/* 800A8024 000A4F64 90 89 80 00 */ stw r4, -0x8000(r9) +/* 800A8028 000A4F68 41 81 00 F4 */ bgt lbl_800A811C +/* 800A802C 000A4F6C 3C 80 80 3B */ lis r4, "@499"@ha +/* 800A8030 000A4F70 38 84 17 44 */ addi r4, r4, "@499"@l +/* 800A8034 000A4F74 54 60 10 3A */ slwi r0, r3, 2 +/* 800A8038 000A4F78 7C 04 00 2E */ lwzx r0, r4, r0 +/* 800A803C 000A4F7C 7C 09 03 A6 */ mtctr r0 +/* 800A8040 000A4F80 4E 80 04 20 */ bctr +lbl_800A8044: +/* 800A8044 000A4F84 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8048 000A4F88 54 C0 30 32 */ slwi r0, r6, 6 +/* 800A804C 000A4F8C 38 A4 00 80 */ addi r5, r4, 0x80 +/* 800A8050 000A4F90 80 84 00 80 */ lwz r4, 0x80(r4) +/* 800A8054 000A4F94 54 84 06 A6 */ rlwinm r4, r4, 0, 0x1a, 0x13 +/* 800A8058 000A4F98 7C 80 03 78 */ or r0, r4, r0 +/* 800A805C 000A4F9C 90 05 00 00 */ stw r0, 0(r5) +/* 800A8060 000A4FA0 48 00 00 D8 */ b lbl_800A8138 +lbl_800A8064: +/* 800A8064 000A4FA4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8068 000A4FA8 54 C0 60 26 */ slwi r0, r6, 0xc +/* 800A806C 000A4FAC 38 A4 00 80 */ addi r5, r4, 0x80 +/* 800A8070 000A4FB0 80 84 00 80 */ lwz r4, 0x80(r4) +/* 800A8074 000A4FB4 54 84 05 1A */ rlwinm r4, r4, 0, 0x14, 0xd +/* 800A8078 000A4FB8 7C 80 03 78 */ or r0, r4, r0 +/* 800A807C 000A4FBC 90 05 00 00 */ stw r0, 0(r5) +/* 800A8080 000A4FC0 48 00 00 B8 */ b lbl_800A8138 +lbl_800A8084: +/* 800A8084 000A4FC4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8088 000A4FC8 54 C0 90 1A */ slwi r0, r6, 0x12 +/* 800A808C 000A4FCC 38 A4 00 80 */ addi r5, r4, 0x80 +/* 800A8090 000A4FD0 80 84 00 80 */ lwz r4, 0x80(r4) +/* 800A8094 000A4FD4 54 84 03 8E */ rlwinm r4, r4, 0, 0xe, 7 +/* 800A8098 000A4FD8 7C 80 03 78 */ or r0, r4, r0 +/* 800A809C 000A4FDC 90 05 00 00 */ stw r0, 0(r5) +/* 800A80A0 000A4FE0 48 00 00 98 */ b lbl_800A8138 +lbl_800A80A4: +/* 800A80A4 000A4FE4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A80A8 000A4FE8 54 C0 C0 0E */ slwi r0, r6, 0x18 +/* 800A80AC 000A4FEC 38 A4 00 80 */ addi r5, r4, 0x80 +/* 800A80B0 000A4FF0 80 84 00 80 */ lwz r4, 0x80(r4) +/* 800A80B4 000A4FF4 54 84 02 02 */ rlwinm r4, r4, 0, 8, 1 +/* 800A80B8 000A4FF8 7C 80 03 78 */ or r0, r4, r0 +/* 800A80BC 000A4FFC 90 05 00 00 */ stw r0, 0(r5) +/* 800A80C0 000A5000 48 00 00 78 */ b lbl_800A8138 +lbl_800A80C4: +/* 800A80C4 000A5004 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A80C8 000A5008 84 04 00 84 */ lwzu r0, 0x84(r4) +/* 800A80CC 000A500C 54 00 00 32 */ rlwinm r0, r0, 0, 0, 0x19 +/* 800A80D0 000A5010 7C 00 33 78 */ or r0, r0, r6 +/* 800A80D4 000A5014 90 04 00 00 */ stw r0, 0(r4) +/* 800A80D8 000A5018 48 00 00 60 */ b lbl_800A8138 +lbl_800A80DC: +/* 800A80DC 000A501C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A80E0 000A5020 54 C0 30 32 */ slwi r0, r6, 6 +/* 800A80E4 000A5024 38 A4 00 84 */ addi r5, r4, 0x84 +/* 800A80E8 000A5028 80 84 00 84 */ lwz r4, 0x84(r4) +/* 800A80EC 000A502C 54 84 06 A6 */ rlwinm r4, r4, 0, 0x1a, 0x13 +/* 800A80F0 000A5030 7C 80 03 78 */ or r0, r4, r0 +/* 800A80F4 000A5034 90 05 00 00 */ stw r0, 0(r5) +/* 800A80F8 000A5038 48 00 00 40 */ b lbl_800A8138 +lbl_800A80FC: +/* 800A80FC 000A503C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8100 000A5040 54 C0 60 26 */ slwi r0, r6, 0xc +/* 800A8104 000A5044 38 A4 00 84 */ addi r5, r4, 0x84 +/* 800A8108 000A5048 80 84 00 84 */ lwz r4, 0x84(r4) +/* 800A810C 000A504C 54 84 05 1A */ rlwinm r4, r4, 0, 0x14, 0xd +/* 800A8110 000A5050 7C 80 03 78 */ or r0, r4, r0 +/* 800A8114 000A5054 90 05 00 00 */ stw r0, 0(r5) +/* 800A8118 000A5058 48 00 00 20 */ b lbl_800A8138 +lbl_800A811C: +/* 800A811C 000A505C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8120 000A5060 54 C0 90 1A */ slwi r0, r6, 0x12 +/* 800A8124 000A5064 38 A4 00 84 */ addi r5, r4, 0x84 +/* 800A8128 000A5068 80 84 00 84 */ lwz r4, 0x84(r4) +/* 800A812C 000A506C 54 84 03 8E */ rlwinm r4, r4, 0, 0xe, 7 +/* 800A8130 000A5070 7C 80 03 78 */ or r0, r4, r0 +/* 800A8134 000A5074 90 05 00 00 */ stw r0, 0(r5) +lbl_800A8138: +/* 800A8138 000A5078 38 63 00 01 */ addi r3, r3, 1 +/* 800A813C 000A507C 48 00 5A 39 */ bl __GXSetMatrixIndex +/* 800A8140 000A5080 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A8144 000A5084 38 21 00 08 */ addi r1, r1, 8 +/* 800A8148 000A5088 7C 08 03 A6 */ mtlr r0 +/* 800A814C 000A508C 4E 80 00 20 */ blr + +.global GXSetNumTexGens +GXSetNumTexGens: +/* 800A8150 000A5090 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8154 000A5094 54 67 06 3E */ clrlwi r7, r3, 0x18 +/* 800A8158 000A5098 38 60 00 10 */ li r3, 0x10 +/* 800A815C 000A509C 38 C4 02 04 */ addi r6, r4, 0x204 +/* 800A8160 000A50A0 80 A4 02 04 */ lwz r5, 0x204(r4) +/* 800A8164 000A50A4 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800A8168 000A50A8 38 00 10 3F */ li r0, 0x103f +/* 800A816C 000A50AC 54 A5 00 36 */ rlwinm r5, r5, 0, 0, 0x1b +/* 800A8170 000A50B0 7C A5 3B 78 */ or r5, r5, r7 +/* 800A8174 000A50B4 90 A6 00 00 */ stw r5, 0(r6) +/* 800A8178 000A50B8 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800A817C 000A50BC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8180 000A50C0 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800A8184 000A50C4 90 E4 80 00 */ stw r7, -0x8000(r4) +/* 800A8188 000A50C8 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A818C 000A50CC 60 00 00 04 */ ori r0, r0, 4 +/* 800A8190 000A50D0 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A8194 000A50D4 4E 80 00 20 */ blr + +.section .data, "wa" # 0x803A8380 - 0x803E6000 +"@128": + .4byte lbl_800A6908 + .4byte lbl_800A6920 + .4byte lbl_800A6940 + .4byte lbl_800A6960 + .4byte lbl_800A6980 + .4byte lbl_800A69A0 + .4byte lbl_800A69C0 + .4byte lbl_800A69E0 + .4byte lbl_800A6A00 + .4byte lbl_800A6A20 + .4byte lbl_800A6A40 + .4byte lbl_800A6AB8 + .4byte lbl_800A6AD8 + .4byte lbl_800A6AF8 + .4byte lbl_800A6B10 + .4byte lbl_800A6B30 + .4byte lbl_800A6B50 + .4byte lbl_800A6B70 + .4byte lbl_800A6B90 + .4byte lbl_800A6BB0 + .4byte lbl_800A6BD0 + .4byte lbl_800A6BEC + .4byte lbl_800A6BEC + .4byte lbl_800A6BEC + .4byte lbl_800A6BEC + .4byte lbl_800A6A7C +"@189": + .4byte lbl_800A6C74 + .4byte lbl_800A6C90 + .4byte lbl_800A6CB0 + .4byte lbl_800A6CD0 + .4byte lbl_800A6CF0 + .4byte lbl_800A6D10 + .4byte lbl_800A6D30 + .4byte lbl_800A6D50 + .4byte lbl_800A6D70 + .4byte lbl_800A6D90 + .4byte lbl_800A6DB0 + .4byte lbl_800A6E28 + .4byte lbl_800A6E48 + .4byte lbl_800A6E68 + .4byte lbl_800A6E84 + .4byte lbl_800A6EA4 + .4byte lbl_800A6EC4 + .4byte lbl_800A6EE4 + .4byte lbl_800A6F04 + .4byte lbl_800A6F24 + .4byte lbl_800A6F44 + .4byte lbl_800A6F60 + .4byte lbl_800A6F60 + .4byte lbl_800A6F60 + .4byte lbl_800A6F60 + .4byte lbl_800A6DEC +"@256": + .4byte lbl_800A7164 + .4byte lbl_800A7174 + .4byte lbl_800A7184 + .4byte lbl_800A7194 + .4byte lbl_800A71A4 + .4byte lbl_800A71B4 + .4byte lbl_800A71C4 + .4byte lbl_800A71D4 + .4byte lbl_800A71E4 + .4byte lbl_800A71F4 + .4byte lbl_800A7204 + .4byte lbl_800A724C + .4byte lbl_800A725C + .4byte lbl_800A726C + .4byte lbl_800A727C + .4byte lbl_800A728C + .4byte lbl_800A729C + .4byte lbl_800A72AC + .4byte lbl_800A72BC + .4byte lbl_800A72CC + .4byte lbl_800A72DC + .4byte lbl_800A72EC + .4byte lbl_800A72EC + .4byte lbl_800A72EC + .4byte lbl_800A72EC + .4byte lbl_800A7228 +"@302": + .4byte lbl_800A73F0 + .4byte lbl_800A742C + .4byte lbl_800A7490 + .4byte lbl_800A74BC + .4byte lbl_800A74E8 + .4byte lbl_800A7528 + .4byte lbl_800A7564 + .4byte lbl_800A75A4 + .4byte lbl_800A75E4 + .4byte lbl_800A7624 + .4byte lbl_800A7664 + .4byte lbl_800A76A4 + .4byte lbl_800A76DC + .4byte lbl_800A76DC + .4byte lbl_800A76DC + .4byte lbl_800A76DC + .4byte lbl_800A742C +"@329": + .4byte lbl_800A7760 + .4byte lbl_800A779C + .4byte lbl_800A7800 + .4byte lbl_800A782C + .4byte lbl_800A7858 + .4byte lbl_800A7898 + .4byte lbl_800A78D4 + .4byte lbl_800A7914 + .4byte lbl_800A7954 + .4byte lbl_800A7990 + .4byte lbl_800A79D0 + .4byte lbl_800A7A10 + .4byte lbl_800A7A48 + .4byte lbl_800A7A48 + .4byte lbl_800A7A48 + .4byte lbl_800A7A48 + .4byte lbl_800A779C +"@393": + .4byte lbl_800A7B64 + .4byte lbl_800A7B8C + .4byte lbl_800A7BD0 + .4byte lbl_800A7BF4 + .4byte lbl_800A7C18 + .4byte lbl_800A7C40 + .4byte lbl_800A7C68 + .4byte lbl_800A7C90 + .4byte lbl_800A7CB8 + .4byte lbl_800A7CE0 + .4byte lbl_800A7D08 + .4byte lbl_800A7D30 + .4byte lbl_800A7D58 + .4byte lbl_800A7D58 + .4byte lbl_800A7D58 + .4byte lbl_800A7D58 + .4byte lbl_800A7B8C +"@499": + .4byte lbl_800A8044 + .4byte lbl_800A8064 + .4byte lbl_800A8084 + .4byte lbl_800A80A4 + .4byte lbl_800A80C4 + .4byte lbl_800A80DC + .4byte lbl_800A80FC +"@498": + .4byte lbl_800A7EB8 + .4byte lbl_800A7EC4 + .4byte lbl_800A7ED0 + .4byte lbl_800A7EDC + .4byte lbl_800A7EF8 + .4byte lbl_800A7F00 + .4byte lbl_800A7F08 + .4byte lbl_800A7F10 + .4byte lbl_800A7F18 + .4byte lbl_800A7F20 + .4byte lbl_800A7F28 + .4byte lbl_800A7F30 + .4byte lbl_800A7F34 + .4byte lbl_800A7F34 + .4byte lbl_800A7F34 + .4byte lbl_800A7F34 + .4byte lbl_800A7F34 + .4byte lbl_800A7F34 + .4byte lbl_800A7F34 + .4byte lbl_800A7EE8 + .4byte lbl_800A7EF0 +.section .sdata, "wa" # 0x80408AC0 - 0x804097C0 +tbl1$215: + .4byte 0x00040102 +tbl2$216: + .4byte 0x00080102 +tbl3$217: + .4byte 0x000C0102 + .4byte 0 diff --git a/asm/Dolphin/gx/GXBump.s b/asm/Dolphin/gx/GXBump.s new file mode 100644 index 0000000..fe3567b --- /dev/null +++ b/asm/Dolphin/gx/GXBump.s @@ -0,0 +1,501 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXSetTevIndirect +GXSetTevIndirect: +/* 800AB338 000A8278 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800AB33C 000A827C 54 84 07 B6 */ rlwinm r4, r4, 0, 0x1e, 0x1b +/* 800AB340 000A8280 54 A0 10 3A */ slwi r0, r5, 2 +/* 800AB344 000A8284 7C 80 03 78 */ or r0, r4, r0 +/* 800AB348 000A8288 81 61 00 34 */ lwz r11, 0x34(r1) +/* 800AB34C 000A828C 54 05 07 30 */ rlwinm r5, r0, 0, 0x1c, 0x18 +/* 800AB350 000A8290 89 81 00 33 */ lbz r12, 0x33(r1) +/* 800AB354 000A8294 54 C0 20 36 */ slwi r0, r6, 4 +/* 800AB358 000A8298 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB35C 000A829C 7C A0 03 78 */ or r0, r5, r0 +/* 800AB360 000A82A0 54 05 06 6C */ rlwinm r5, r0, 0, 0x19, 0x16 +/* 800AB364 000A82A4 55 60 38 30 */ slwi r0, r11, 7 +/* 800AB368 000A82A8 7C A0 03 78 */ or r0, r5, r0 +/* 800AB36C 000A82AC 54 05 05 E4 */ rlwinm r5, r0, 0, 0x17, 0x12 +/* 800AB370 000A82B0 54 E0 48 2C */ slwi r0, r7, 9 +/* 800AB374 000A82B4 7C A0 03 78 */ or r0, r5, r0 +/* 800AB378 000A82B8 54 05 04 DE */ rlwinm r5, r0, 0, 0x13, 0xf +/* 800AB37C 000A82BC 55 00 68 24 */ slwi r0, r8, 0xd +/* 800AB380 000A82C0 7C A0 03 78 */ or r0, r5, r0 +/* 800AB384 000A82C4 38 A3 00 10 */ addi r5, r3, 0x10 +/* 800AB388 000A82C8 54 03 04 18 */ rlwinm r3, r0, 0, 0x10, 0xc +/* 800AB38C 000A82CC 55 20 80 1E */ slwi r0, r9, 0x10 +/* 800AB390 000A82D0 7C 60 03 78 */ or r0, r3, r0 +/* 800AB394 000A82D4 54 03 03 56 */ rlwinm r3, r0, 0, 0xd, 0xb +/* 800AB398 000A82D8 55 80 98 18 */ slwi r0, r12, 0x13 +/* 800AB39C 000A82DC 7C 60 03 78 */ or r0, r3, r0 +/* 800AB3A0 000A82E0 54 03 03 14 */ rlwinm r3, r0, 0, 0xc, 0xa +/* 800AB3A4 000A82E4 55 40 A1 16 */ rlwinm r0, r10, 0x14, 4, 0xb +/* 800AB3A8 000A82E8 7C 66 03 78 */ or r6, r3, r0 +/* 800AB3AC 000A82EC 38 00 00 61 */ li r0, 0x61 +/* 800AB3B0 000A82F0 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AB3B4 000A82F4 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AB3B8 000A82F8 54 A0 C0 0E */ slwi r0, r5, 0x18 +/* 800AB3BC 000A82FC 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f +/* 800AB3C0 000A8300 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800AB3C4 000A8304 38 00 00 00 */ li r0, 0 +/* 800AB3C8 000A8308 B0 04 00 02 */ sth r0, 2(r4) +/* 800AB3CC 000A830C 38 21 00 28 */ addi r1, r1, 0x28 +/* 800AB3D0 000A8310 4E 80 00 20 */ blr + +.global GXSetIndTexMtx +GXSetIndTexMtx: +/* 800AB3D4 000A8314 2C 03 00 08 */ cmpwi r3, 8 +/* 800AB3D8 000A8318 94 21 FF 88 */ stwu r1, -0x78(r1) +/* 800AB3DC 000A831C 41 82 00 44 */ beq lbl_800AB420 +/* 800AB3E0 000A8320 40 80 00 1C */ bge lbl_800AB3FC +/* 800AB3E4 000A8324 2C 03 00 04 */ cmpwi r3, 4 +/* 800AB3E8 000A8328 41 82 00 38 */ beq lbl_800AB420 +/* 800AB3EC 000A832C 40 80 00 24 */ bge lbl_800AB410 +/* 800AB3F0 000A8330 2C 03 00 01 */ cmpwi r3, 1 +/* 800AB3F4 000A8334 40 80 00 14 */ bge lbl_800AB408 +/* 800AB3F8 000A8338 48 00 00 28 */ b lbl_800AB420 +lbl_800AB3FC: +/* 800AB3FC 000A833C 2C 03 00 0C */ cmpwi r3, 0xc +/* 800AB400 000A8340 40 80 00 20 */ bge lbl_800AB420 +/* 800AB404 000A8344 48 00 00 14 */ b lbl_800AB418 +lbl_800AB408: +/* 800AB408 000A8348 38 03 FF FF */ addi r0, r3, -1 +/* 800AB40C 000A834C 48 00 00 18 */ b lbl_800AB424 +lbl_800AB410: +/* 800AB410 000A8350 38 03 FF FB */ addi r0, r3, -5 +/* 800AB414 000A8354 48 00 00 10 */ b lbl_800AB424 +lbl_800AB418: +/* 800AB418 000A8358 38 03 FF F7 */ addi r0, r3, -9 +/* 800AB41C 000A835C 48 00 00 08 */ b lbl_800AB424 +lbl_800AB420: +/* 800AB420 000A8360 38 00 00 00 */ li r0, 0 +lbl_800AB424: +/* 800AB424 000A8364 C0 42 8B 50 */ lfs f2, "@45"@sda21(r2) +/* 800AB428 000A8368 1C 60 00 03 */ mulli r3, r0, 3 +/* 800AB42C 000A836C C0 24 00 00 */ lfs f1, 0(r4) +/* 800AB430 000A8370 C0 04 00 0C */ lfs f0, 0xc(r4) +/* 800AB434 000A8374 EC 22 00 72 */ fmuls f1, f2, f1 +/* 800AB438 000A8378 39 65 00 11 */ addi r11, r5, 0x11 +/* 800AB43C 000A837C EC 02 00 32 */ fmuls f0, f2, f0 +/* 800AB440 000A8380 38 03 00 06 */ addi r0, r3, 6 +/* 800AB444 000A8384 7D 6B 07 74 */ extsb r11, r11 +/* 800AB448 000A8388 FC 20 08 1E */ fctiwz f1, f1 +/* 800AB44C 000A838C 39 40 00 61 */ li r10, 0x61 +/* 800AB450 000A8390 FC 00 00 1E */ fctiwz f0, f0 +/* 800AB454 000A8394 3D 20 CC 01 */ lis r9, 0xCC008000@ha +/* 800AB458 000A8398 99 49 80 00 */ stb r10, 0xCC008000@l(r9) +/* 800AB45C 000A839C D8 21 00 70 */ stfd f1, 0x70(r1) +/* 800AB460 000A83A0 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AB464 000A83A4 38 C3 00 07 */ addi r6, r3, 7 +/* 800AB468 000A83A8 D8 01 00 68 */ stfd f0, 0x68(r1) +/* 800AB46C 000A83AC 38 A3 00 08 */ addi r5, r3, 8 +/* 800AB470 000A83B0 81 01 00 74 */ lwz r8, 0x74(r1) +/* 800AB474 000A83B4 80 E1 00 6C */ lwz r7, 0x6c(r1) +/* 800AB478 000A83B8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB47C 000A83BC 54 E7 5A A8 */ rlwinm r7, r7, 0xb, 0xa, 0x14 +/* 800AB480 000A83C0 51 07 05 7E */ rlwimi r7, r8, 0, 0x15, 0x1f +/* 800AB484 000A83C4 54 E7 02 8E */ rlwinm r7, r7, 0, 0xa, 7 +/* 800AB488 000A83C8 51 67 B2 12 */ rlwimi r7, r11, 0x16, 8, 9 +/* 800AB48C 000A83CC 50 E0 02 3E */ rlwimi r0, r7, 0, 8, 0x1f +/* 800AB490 000A83D0 90 09 80 00 */ stw r0, -0x8000(r9) +/* 800AB494 000A83D4 38 00 00 00 */ li r0, 0 +/* 800AB498 000A83D8 C0 24 00 04 */ lfs f1, 4(r4) +/* 800AB49C 000A83DC C0 04 00 10 */ lfs f0, 0x10(r4) +/* 800AB4A0 000A83E0 EC 22 00 72 */ fmuls f1, f2, f1 +/* 800AB4A4 000A83E4 EC 02 00 32 */ fmuls f0, f2, f0 +/* 800AB4A8 000A83E8 99 49 80 00 */ stb r10, -0x8000(r9) +/* 800AB4AC 000A83EC FC 20 08 1E */ fctiwz f1, f1 +/* 800AB4B0 000A83F0 FC 00 00 1E */ fctiwz f0, f0 +/* 800AB4B4 000A83F4 D8 21 00 60 */ stfd f1, 0x60(r1) +/* 800AB4B8 000A83F8 D8 01 00 58 */ stfd f0, 0x58(r1) +/* 800AB4BC 000A83FC 81 01 00 64 */ lwz r8, 0x64(r1) +/* 800AB4C0 000A8400 80 E1 00 5C */ lwz r7, 0x5c(r1) +/* 800AB4C4 000A8404 54 E7 5A A8 */ rlwinm r7, r7, 0xb, 0xa, 0x14 +/* 800AB4C8 000A8408 51 07 05 7E */ rlwimi r7, r8, 0, 0x15, 0x1f +/* 800AB4CC 000A840C 54 E7 02 8E */ rlwinm r7, r7, 0, 0xa, 7 +/* 800AB4D0 000A8410 51 67 A2 12 */ rlwimi r7, r11, 0x14, 8, 9 +/* 800AB4D4 000A8414 54 E7 02 3E */ clrlwi r7, r7, 8 +/* 800AB4D8 000A8418 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7 +/* 800AB4DC 000A841C 90 E9 80 00 */ stw r7, -0x8000(r9) +/* 800AB4E0 000A8420 C0 24 00 08 */ lfs f1, 8(r4) +/* 800AB4E4 000A8424 C0 04 00 14 */ lfs f0, 0x14(r4) +/* 800AB4E8 000A8428 EC 22 00 72 */ fmuls f1, f2, f1 +/* 800AB4EC 000A842C EC 02 00 32 */ fmuls f0, f2, f0 +/* 800AB4F0 000A8430 99 49 80 00 */ stb r10, -0x8000(r9) +/* 800AB4F4 000A8434 FC 20 08 1E */ fctiwz f1, f1 +/* 800AB4F8 000A8438 FC 00 00 1E */ fctiwz f0, f0 +/* 800AB4FC 000A843C D8 21 00 50 */ stfd f1, 0x50(r1) +/* 800AB500 000A8440 D8 01 00 48 */ stfd f0, 0x48(r1) +/* 800AB504 000A8444 80 C1 00 54 */ lwz r6, 0x54(r1) +/* 800AB508 000A8448 80 81 00 4C */ lwz r4, 0x4c(r1) +/* 800AB50C 000A844C 54 84 5A A8 */ rlwinm r4, r4, 0xb, 0xa, 0x14 +/* 800AB510 000A8450 50 C4 05 7E */ rlwimi r4, r6, 0, 0x15, 0x1f +/* 800AB514 000A8454 54 84 02 8E */ rlwinm r4, r4, 0, 0xa, 7 +/* 800AB518 000A8458 51 64 92 12 */ rlwimi r4, r11, 0x12, 8, 9 +/* 800AB51C 000A845C 54 84 02 3E */ clrlwi r4, r4, 8 +/* 800AB520 000A8460 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 +/* 800AB524 000A8464 90 89 80 00 */ stw r4, -0x8000(r9) +/* 800AB528 000A8468 B0 03 00 02 */ sth r0, 2(r3) +/* 800AB52C 000A846C 38 21 00 78 */ addi r1, r1, 0x78 +/* 800AB530 000A8470 4E 80 00 20 */ blr + +.global GXSetIndTexCoordScale +GXSetIndTexCoordScale: +/* 800AB534 000A8474 2C 03 00 02 */ cmpwi r3, 2 +/* 800AB538 000A8478 41 82 00 F4 */ beq lbl_800AB62C +/* 800AB53C 000A847C 40 80 00 14 */ bge lbl_800AB550 +/* 800AB540 000A8480 2C 03 00 00 */ cmpwi r3, 0 +/* 800AB544 000A8484 41 82 00 18 */ beq lbl_800AB55C +/* 800AB548 000A8488 40 80 00 7C */ bge lbl_800AB5C4 +/* 800AB54C 000A848C 48 00 01 AC */ b lbl_800AB6F8 +lbl_800AB550: +/* 800AB550 000A8490 2C 03 00 04 */ cmpwi r3, 4 +/* 800AB554 000A8494 40 80 01 A4 */ bge lbl_800AB6F8 +/* 800AB558 000A8498 48 00 01 3C */ b lbl_800AB694 +lbl_800AB55C: +/* 800AB55C 000A849C 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800AB560 000A84A0 54 A3 20 36 */ slwi r3, r5, 4 +/* 800AB564 000A84A4 38 00 00 61 */ li r0, 0x61 +/* 800AB568 000A84A8 38 E6 01 28 */ addi r7, r6, 0x128 +/* 800AB56C 000A84AC 80 C6 01 28 */ lwz r6, 0x128(r6) +/* 800AB570 000A84B0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AB574 000A84B4 54 C6 00 36 */ rlwinm r6, r6, 0, 0, 0x1b +/* 800AB578 000A84B8 7C C4 23 78 */ or r4, r6, r4 +/* 800AB57C 000A84BC 90 87 00 00 */ stw r4, 0(r7) +/* 800AB580 000A84C0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB584 000A84C4 38 C4 01 28 */ addi r6, r4, 0x128 +/* 800AB588 000A84C8 80 84 01 28 */ lwz r4, 0x128(r4) +/* 800AB58C 000A84CC 54 84 07 2E */ rlwinm r4, r4, 0, 0x1c, 0x17 +/* 800AB590 000A84D0 7C 83 1B 78 */ or r3, r4, r3 +/* 800AB594 000A84D4 90 66 00 00 */ stw r3, 0(r6) +/* 800AB598 000A84D8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB59C 000A84DC 38 83 01 28 */ addi r4, r3, 0x128 +/* 800AB5A0 000A84E0 80 63 01 28 */ lwz r3, 0x128(r3) +/* 800AB5A4 000A84E4 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800AB5A8 000A84E8 64 63 25 00 */ oris r3, r3, 0x2500 +/* 800AB5AC 000A84EC 90 64 00 00 */ stw r3, 0(r4) +/* 800AB5B0 000A84F0 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AB5B4 000A84F4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB5B8 000A84F8 80 03 01 28 */ lwz r0, 0x128(r3) +/* 800AB5BC 000A84FC 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AB5C0 000A8500 48 00 01 38 */ b lbl_800AB6F8 +lbl_800AB5C4: +/* 800AB5C4 000A8504 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800AB5C8 000A8508 54 A3 60 26 */ slwi r3, r5, 0xc +/* 800AB5CC 000A850C 84 A7 01 28 */ lwzu r5, 0x128(r7) +/* 800AB5D0 000A8510 54 86 40 2E */ slwi r6, r4, 8 +/* 800AB5D4 000A8514 38 00 00 61 */ li r0, 0x61 +/* 800AB5D8 000A8518 54 A5 06 26 */ rlwinm r5, r5, 0, 0x18, 0x13 +/* 800AB5DC 000A851C 7C A5 33 78 */ or r5, r5, r6 +/* 800AB5E0 000A8520 90 A7 00 00 */ stw r5, 0(r7) +/* 800AB5E4 000A8524 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AB5E8 000A8528 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AB5EC 000A852C 38 C5 01 28 */ addi r6, r5, 0x128 +/* 800AB5F0 000A8530 80 A5 01 28 */ lwz r5, 0x128(r5) +/* 800AB5F4 000A8534 54 A5 05 1E */ rlwinm r5, r5, 0, 0x14, 0xf +/* 800AB5F8 000A8538 7C A3 1B 78 */ or r3, r5, r3 +/* 800AB5FC 000A853C 90 66 00 00 */ stw r3, 0(r6) +/* 800AB600 000A8540 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB604 000A8544 38 A3 01 28 */ addi r5, r3, 0x128 +/* 800AB608 000A8548 80 63 01 28 */ lwz r3, 0x128(r3) +/* 800AB60C 000A854C 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800AB610 000A8550 64 63 25 00 */ oris r3, r3, 0x2500 +/* 800AB614 000A8554 90 65 00 00 */ stw r3, 0(r5) +/* 800AB618 000A8558 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AB61C 000A855C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB620 000A8560 80 03 01 28 */ lwz r0, 0x128(r3) +/* 800AB624 000A8564 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AB628 000A8568 48 00 00 D0 */ b lbl_800AB6F8 +lbl_800AB62C: +/* 800AB62C 000A856C 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800AB630 000A8570 54 A3 20 36 */ slwi r3, r5, 4 +/* 800AB634 000A8574 38 00 00 61 */ li r0, 0x61 +/* 800AB638 000A8578 38 E6 01 2C */ addi r7, r6, 0x12c +/* 800AB63C 000A857C 80 C6 01 2C */ lwz r6, 0x12c(r6) +/* 800AB640 000A8580 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AB644 000A8584 54 C6 00 36 */ rlwinm r6, r6, 0, 0, 0x1b +/* 800AB648 000A8588 7C C4 23 78 */ or r4, r6, r4 +/* 800AB64C 000A858C 90 87 00 00 */ stw r4, 0(r7) +/* 800AB650 000A8590 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB654 000A8594 38 C4 01 2C */ addi r6, r4, 0x12c +/* 800AB658 000A8598 80 84 01 2C */ lwz r4, 0x12c(r4) +/* 800AB65C 000A859C 54 84 07 2E */ rlwinm r4, r4, 0, 0x1c, 0x17 +/* 800AB660 000A85A0 7C 83 1B 78 */ or r3, r4, r3 +/* 800AB664 000A85A4 90 66 00 00 */ stw r3, 0(r6) +/* 800AB668 000A85A8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB66C 000A85AC 38 83 01 2C */ addi r4, r3, 0x12c +/* 800AB670 000A85B0 80 63 01 2C */ lwz r3, 0x12c(r3) +/* 800AB674 000A85B4 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800AB678 000A85B8 64 63 26 00 */ oris r3, r3, 0x2600 +/* 800AB67C 000A85BC 90 64 00 00 */ stw r3, 0(r4) +/* 800AB680 000A85C0 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AB684 000A85C4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB688 000A85C8 80 03 01 2C */ lwz r0, 0x12c(r3) +/* 800AB68C 000A85CC 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AB690 000A85D0 48 00 00 68 */ b lbl_800AB6F8 +lbl_800AB694: +/* 800AB694 000A85D4 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800AB698 000A85D8 54 A3 60 26 */ slwi r3, r5, 0xc +/* 800AB69C 000A85DC 84 A7 01 2C */ lwzu r5, 0x12c(r7) +/* 800AB6A0 000A85E0 54 86 40 2E */ slwi r6, r4, 8 +/* 800AB6A4 000A85E4 38 00 00 61 */ li r0, 0x61 +/* 800AB6A8 000A85E8 54 A5 06 26 */ rlwinm r5, r5, 0, 0x18, 0x13 +/* 800AB6AC 000A85EC 7C A5 33 78 */ or r5, r5, r6 +/* 800AB6B0 000A85F0 90 A7 00 00 */ stw r5, 0(r7) +/* 800AB6B4 000A85F4 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AB6B8 000A85F8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AB6BC 000A85FC 38 C5 01 2C */ addi r6, r5, 0x12c +/* 800AB6C0 000A8600 80 A5 01 2C */ lwz r5, 0x12c(r5) +/* 800AB6C4 000A8604 54 A5 05 1E */ rlwinm r5, r5, 0, 0x14, 0xf +/* 800AB6C8 000A8608 7C A3 1B 78 */ or r3, r5, r3 +/* 800AB6CC 000A860C 90 66 00 00 */ stw r3, 0(r6) +/* 800AB6D0 000A8610 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB6D4 000A8614 38 A3 01 2C */ addi r5, r3, 0x12c +/* 800AB6D8 000A8618 80 63 01 2C */ lwz r3, 0x12c(r3) +/* 800AB6DC 000A861C 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800AB6E0 000A8620 64 63 26 00 */ oris r3, r3, 0x2600 +/* 800AB6E4 000A8624 90 65 00 00 */ stw r3, 0(r5) +/* 800AB6E8 000A8628 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AB6EC 000A862C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB6F0 000A8630 80 03 01 2C */ lwz r0, 0x12c(r3) +/* 800AB6F4 000A8634 90 04 80 00 */ stw r0, -0x8000(r4) +lbl_800AB6F8: +/* 800AB6F8 000A8638 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB6FC 000A863C 38 00 00 00 */ li r0, 0 +/* 800AB700 000A8640 B0 03 00 02 */ sth r0, 2(r3) +/* 800AB704 000A8644 4E 80 00 20 */ blr + +.global GXSetIndTexOrder +GXSetIndTexOrder: +/* 800AB708 000A8648 2C 03 00 02 */ cmpwi r3, 2 +/* 800AB70C 000A864C 41 82 00 94 */ beq lbl_800AB7A0 +/* 800AB710 000A8650 40 80 00 14 */ bge lbl_800AB724 +/* 800AB714 000A8654 2C 03 00 00 */ cmpwi r3, 0 +/* 800AB718 000A8658 41 82 00 18 */ beq lbl_800AB730 +/* 800AB71C 000A865C 40 80 00 4C */ bge lbl_800AB768 +/* 800AB720 000A8660 48 00 00 EC */ b lbl_800AB80C +lbl_800AB724: +/* 800AB724 000A8664 2C 03 00 04 */ cmpwi r3, 4 +/* 800AB728 000A8668 40 80 00 E4 */ bge lbl_800AB80C +/* 800AB72C 000A866C 48 00 00 AC */ b lbl_800AB7D8 +lbl_800AB730: +/* 800AB730 000A8670 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB734 000A8674 54 80 18 38 */ slwi r0, r4, 3 +/* 800AB738 000A8678 38 83 01 20 */ addi r4, r3, 0x120 +/* 800AB73C 000A867C 80 63 01 20 */ lwz r3, 0x120(r3) +/* 800AB740 000A8680 54 63 00 38 */ rlwinm r3, r3, 0, 0, 0x1c +/* 800AB744 000A8684 7C 63 2B 78 */ or r3, r3, r5 +/* 800AB748 000A8688 90 64 00 00 */ stw r3, 0(r4) +/* 800AB74C 000A868C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB750 000A8690 38 83 01 20 */ addi r4, r3, 0x120 +/* 800AB754 000A8694 80 63 01 20 */ lwz r3, 0x120(r3) +/* 800AB758 000A8698 54 63 07 72 */ rlwinm r3, r3, 0, 0x1d, 0x19 +/* 800AB75C 000A869C 7C 60 03 78 */ or r0, r3, r0 +/* 800AB760 000A86A0 90 04 00 00 */ stw r0, 0(r4) +/* 800AB764 000A86A4 48 00 00 A8 */ b lbl_800AB80C +lbl_800AB768: +/* 800AB768 000A86A8 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800AB76C 000A86AC 54 80 48 2C */ slwi r0, r4, 9 +/* 800AB770 000A86B0 54 A3 30 32 */ slwi r3, r5, 6 +/* 800AB774 000A86B4 80 86 01 20 */ lwz r4, 0x120(r6) +/* 800AB778 000A86B8 54 84 06 AC */ rlwinm r4, r4, 0, 0x1a, 0x16 +/* 800AB77C 000A86BC 7C 83 1B 78 */ or r3, r4, r3 +/* 800AB780 000A86C0 90 66 01 20 */ stw r3, 0x120(r6) +/* 800AB784 000A86C4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB788 000A86C8 38 83 01 20 */ addi r4, r3, 0x120 +/* 800AB78C 000A86CC 80 63 01 20 */ lwz r3, 0x120(r3) +/* 800AB790 000A86D0 54 63 05 E6 */ rlwinm r3, r3, 0, 0x17, 0x13 +/* 800AB794 000A86D4 7C 60 03 78 */ or r0, r3, r0 +/* 800AB798 000A86D8 90 04 00 00 */ stw r0, 0(r4) +/* 800AB79C 000A86DC 48 00 00 70 */ b lbl_800AB80C +lbl_800AB7A0: +/* 800AB7A0 000A86E0 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800AB7A4 000A86E4 54 80 78 20 */ slwi r0, r4, 0xf +/* 800AB7A8 000A86E8 54 A3 60 26 */ slwi r3, r5, 0xc +/* 800AB7AC 000A86EC 80 86 01 20 */ lwz r4, 0x120(r6) +/* 800AB7B0 000A86F0 54 84 05 20 */ rlwinm r4, r4, 0, 0x14, 0x10 +/* 800AB7B4 000A86F4 7C 83 1B 78 */ or r3, r4, r3 +/* 800AB7B8 000A86F8 90 66 01 20 */ stw r3, 0x120(r6) +/* 800AB7BC 000A86FC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB7C0 000A8700 38 83 01 20 */ addi r4, r3, 0x120 +/* 800AB7C4 000A8704 80 63 01 20 */ lwz r3, 0x120(r3) +/* 800AB7C8 000A8708 54 63 04 5A */ rlwinm r3, r3, 0, 0x11, 0xd +/* 800AB7CC 000A870C 7C 60 03 78 */ or r0, r3, r0 +/* 800AB7D0 000A8710 90 04 00 00 */ stw r0, 0(r4) +/* 800AB7D4 000A8714 48 00 00 38 */ b lbl_800AB80C +lbl_800AB7D8: +/* 800AB7D8 000A8718 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800AB7DC 000A871C 54 80 A8 14 */ slwi r0, r4, 0x15 +/* 800AB7E0 000A8720 54 A3 90 1A */ slwi r3, r5, 0x12 +/* 800AB7E4 000A8724 80 86 01 20 */ lwz r4, 0x120(r6) +/* 800AB7E8 000A8728 54 84 03 94 */ rlwinm r4, r4, 0, 0xe, 0xa +/* 800AB7EC 000A872C 7C 83 1B 78 */ or r3, r4, r3 +/* 800AB7F0 000A8730 90 66 01 20 */ stw r3, 0x120(r6) +/* 800AB7F4 000A8734 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB7F8 000A8738 38 83 01 20 */ addi r4, r3, 0x120 +/* 800AB7FC 000A873C 80 63 01 20 */ lwz r3, 0x120(r3) +/* 800AB800 000A8740 54 63 02 CE */ rlwinm r3, r3, 0, 0xb, 7 +/* 800AB804 000A8744 7C 60 03 78 */ or r0, r3, r0 +/* 800AB808 000A8748 90 04 00 00 */ stw r0, 0(r4) +lbl_800AB80C: +/* 800AB80C 000A874C 38 00 00 61 */ li r0, 0x61 +/* 800AB810 000A8750 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB814 000A8754 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AB818 000A8758 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AB81C 000A875C 38 00 00 00 */ li r0, 0 +/* 800AB820 000A8760 80 64 01 20 */ lwz r3, 0x120(r4) +/* 800AB824 000A8764 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800AB828 000A8768 80 64 04 F4 */ lwz r3, 0x4f4(r4) +/* 800AB82C 000A876C 60 63 00 03 */ ori r3, r3, 3 +/* 800AB830 000A8770 90 64 04 F4 */ stw r3, 0x4f4(r4) +/* 800AB834 000A8774 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB838 000A8778 B0 03 00 02 */ sth r0, 2(r3) +/* 800AB83C 000A877C 4E 80 00 20 */ blr + +.global GXSetNumIndStages +GXSetNumIndStages: +/* 800AB840 000A8780 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB844 000A8784 54 60 82 1E */ rlwinm r0, r3, 0x10, 8, 0xf +/* 800AB848 000A8788 84 64 02 04 */ lwzu r3, 0x204(r4) +/* 800AB84C 000A878C 54 63 04 18 */ rlwinm r3, r3, 0, 0x10, 0xc +/* 800AB850 000A8790 7C 60 03 78 */ or r0, r3, r0 +/* 800AB854 000A8794 90 04 00 00 */ stw r0, 0(r4) +/* 800AB858 000A8798 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB85C 000A879C 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800AB860 000A87A0 60 00 00 06 */ ori r0, r0, 6 +/* 800AB864 000A87A4 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800AB868 000A87A8 4E 80 00 20 */ blr + +.global GXSetTevDirect +GXSetTevDirect: +/* 800AB86C 000A87AC 7C 08 02 A6 */ mflr r0 +/* 800AB870 000A87B0 38 80 00 00 */ li r4, 0 +/* 800AB874 000A87B4 90 01 00 04 */ stw r0, 4(r1) +/* 800AB878 000A87B8 38 00 00 00 */ li r0, 0 +/* 800AB87C 000A87BC 38 A0 00 00 */ li r5, 0 +/* 800AB880 000A87C0 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800AB884 000A87C4 38 C0 00 00 */ li r6, 0 +/* 800AB888 000A87C8 38 E0 00 00 */ li r7, 0 +/* 800AB88C 000A87CC 90 01 00 08 */ stw r0, 8(r1) +/* 800AB890 000A87D0 39 00 00 00 */ li r8, 0 +/* 800AB894 000A87D4 39 20 00 00 */ li r9, 0 +/* 800AB898 000A87D8 90 01 00 0C */ stw r0, 0xc(r1) +/* 800AB89C 000A87DC 39 40 00 00 */ li r10, 0 +/* 800AB8A0 000A87E0 4B FF FA 99 */ bl GXSetTevIndirect +/* 800AB8A4 000A87E4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800AB8A8 000A87E8 38 21 00 18 */ addi r1, r1, 0x18 +/* 800AB8AC 000A87EC 7C 08 03 A6 */ mtlr r0 +/* 800AB8B0 000A87F0 4E 80 00 20 */ blr + +.global GXSetTevIndWarp +GXSetTevIndWarp: +/* 800AB8B4 000A87F4 7C 08 02 A6 */ mflr r0 +/* 800AB8B8 000A87F8 90 01 00 04 */ stw r0, 4(r1) +/* 800AB8BC 000A87FC 54 C0 06 3F */ clrlwi. r0, r6, 0x18 +/* 800AB8C0 000A8800 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800AB8C4 000A8804 41 82 00 0C */ beq lbl_800AB8D0 +/* 800AB8C8 000A8808 38 C0 00 06 */ li r6, 6 +/* 800AB8CC 000A880C 48 00 00 08 */ b lbl_800AB8D4 +lbl_800AB8D0: +/* 800AB8D0 000A8810 38 C0 00 00 */ li r6, 0 +lbl_800AB8D4: +/* 800AB8D4 000A8814 54 A0 06 3F */ clrlwi. r0, r5, 0x18 +/* 800AB8D8 000A8818 39 06 00 00 */ addi r8, r6, 0 +/* 800AB8DC 000A881C 41 82 00 0C */ beq lbl_800AB8E8 +/* 800AB8E0 000A8820 38 C0 00 07 */ li r6, 7 +/* 800AB8E4 000A8824 48 00 00 08 */ b lbl_800AB8EC +lbl_800AB8E8: +/* 800AB8E8 000A8828 38 C0 00 00 */ li r6, 0 +lbl_800AB8EC: +/* 800AB8EC 000A882C 38 00 00 00 */ li r0, 0 +/* 800AB8F0 000A8830 90 01 00 08 */ stw r0, 8(r1) +/* 800AB8F4 000A8834 39 28 00 00 */ addi r9, r8, 0 +/* 800AB8F8 000A8838 38 A0 00 00 */ li r5, 0 +/* 800AB8FC 000A883C 90 01 00 0C */ stw r0, 0xc(r1) +/* 800AB900 000A8840 39 40 00 00 */ li r10, 0 +/* 800AB904 000A8844 4B FF FA 35 */ bl GXSetTevIndirect +/* 800AB908 000A8848 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800AB90C 000A884C 38 21 00 20 */ addi r1, r1, 0x20 +/* 800AB910 000A8850 7C 08 03 A6 */ mtlr r0 +/* 800AB914 000A8854 4E 80 00 20 */ blr + +.global __GXUpdateBPMask +__GXUpdateBPMask: +/* 800AB918 000A8858 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB91C 000A885C 38 C0 00 00 */ li r6, 0 +/* 800AB920 000A8860 38 80 00 00 */ li r4, 0 +/* 800AB924 000A8864 80 03 02 04 */ lwz r0, 0x204(r3) +/* 800AB928 000A8868 54 00 87 7E */ rlwinm r0, r0, 0x10, 0x1d, 0x1f +/* 800AB92C 000A886C 28 00 00 00 */ cmplwi r0, 0 +/* 800AB930 000A8870 7C 09 03 A6 */ mtctr r0 +/* 800AB934 000A8874 40 81 00 6C */ ble lbl_800AB9A0 +lbl_800AB938: +/* 800AB938 000A8878 2C 04 00 02 */ cmpwi r4, 2 +/* 800AB93C 000A887C 41 82 00 3C */ beq lbl_800AB978 +/* 800AB940 000A8880 40 80 00 14 */ bge lbl_800AB954 +/* 800AB944 000A8884 2C 04 00 00 */ cmpwi r4, 0 +/* 800AB948 000A8888 41 82 00 18 */ beq lbl_800AB960 +/* 800AB94C 000A888C 40 80 00 20 */ bge lbl_800AB96C +/* 800AB950 000A8890 48 00 00 3C */ b lbl_800AB98C +lbl_800AB954: +/* 800AB954 000A8894 2C 04 00 04 */ cmpwi r4, 4 +/* 800AB958 000A8898 40 80 00 34 */ bge lbl_800AB98C +/* 800AB95C 000A889C 48 00 00 28 */ b lbl_800AB984 +lbl_800AB960: +/* 800AB960 000A88A0 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AB964 000A88A4 54 05 07 7E */ clrlwi r5, r0, 0x1d +/* 800AB968 000A88A8 48 00 00 24 */ b lbl_800AB98C +lbl_800AB96C: +/* 800AB96C 000A88AC 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AB970 000A88B0 54 05 D7 7E */ rlwinm r5, r0, 0x1a, 0x1d, 0x1f +/* 800AB974 000A88B4 48 00 00 18 */ b lbl_800AB98C +lbl_800AB978: +/* 800AB978 000A88B8 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AB97C 000A88BC 54 05 A7 7E */ rlwinm r5, r0, 0x14, 0x1d, 0x1f +/* 800AB980 000A88C0 48 00 00 0C */ b lbl_800AB98C +lbl_800AB984: +/* 800AB984 000A88C4 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AB988 000A88C8 54 05 77 7E */ rlwinm r5, r0, 0xe, 0x1d, 0x1f +lbl_800AB98C: +/* 800AB98C 000A88CC 38 00 00 01 */ li r0, 1 +/* 800AB990 000A88D0 7C 00 28 30 */ slw r0, r0, r5 +/* 800AB994 000A88D4 7C C6 03 78 */ or r6, r6, r0 +/* 800AB998 000A88D8 38 84 00 01 */ addi r4, r4, 1 +/* 800AB99C 000A88DC 42 00 FF 9C */ bdnz lbl_800AB938 +lbl_800AB9A0: +/* 800AB9A0 000A88E0 38 83 01 24 */ addi r4, r3, 0x124 +/* 800AB9A4 000A88E4 80 63 01 24 */ lwz r3, 0x124(r3) +/* 800AB9A8 000A88E8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 800AB9AC 000A88EC 7C 00 30 40 */ cmplw r0, r6 +/* 800AB9B0 000A88F0 4D 82 00 20 */ beqlr +/* 800AB9B4 000A88F4 54 60 00 2E */ rlwinm r0, r3, 0, 0, 0x17 +/* 800AB9B8 000A88F8 7C 00 33 78 */ or r0, r0, r6 +/* 800AB9BC 000A88FC 90 04 00 00 */ stw r0, 0(r4) +/* 800AB9C0 000A8900 38 00 00 61 */ li r0, 0x61 +/* 800AB9C4 000A8904 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AB9C8 000A8908 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AB9CC 000A890C 38 00 00 00 */ li r0, 0 +/* 800AB9D0 000A8910 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB9D4 000A8914 80 64 01 24 */ lwz r3, 0x124(r4) +/* 800AB9D8 000A8918 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800AB9DC 000A891C B0 04 00 02 */ sth r0, 2(r4) +/* 800AB9E0 000A8920 4E 80 00 20 */ blr + +.global __GXFlushTextureState +__GXFlushTextureState: +/* 800AB9E4 000A8924 38 00 00 61 */ li r0, 0x61 +/* 800AB9E8 000A8928 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AB9EC 000A892C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AB9F0 000A8930 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AB9F4 000A8934 38 00 00 00 */ li r0, 0 +/* 800AB9F8 000A8938 80 64 01 24 */ lwz r3, 0x124(r4) +/* 800AB9FC 000A893C 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ABA00 000A8940 B0 04 00 02 */ sth r0, 2(r4) +/* 800ABA04 000A8944 4E 80 00 20 */ blr + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@45": + .4byte 0x44800000 + .4byte 0 diff --git a/asm/Dolphin/gx/GXDisplayList.s b/asm/Dolphin/gx/GXDisplayList.s new file mode 100644 index 0000000..82f353e --- /dev/null +++ b/asm/Dolphin/gx/GXDisplayList.s @@ -0,0 +1,35 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXCallDisplayList +GXCallDisplayList: +/* 800AD370 000AA2B0 7C 08 02 A6 */ mflr r0 +/* 800AD374 000AA2B4 90 01 00 04 */ stw r0, 4(r1) +/* 800AD378 000AA2B8 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800AD37C 000AA2BC 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800AD380 000AA2C0 3B E4 00 00 */ addi r31, r4, 0 +/* 800AD384 000AA2C4 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800AD388 000AA2C8 3B C3 00 00 */ addi r30, r3, 0 +/* 800AD38C 000AA2CC 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AD390 000AA2D0 80 05 04 F4 */ lwz r0, 0x4f4(r5) +/* 800AD394 000AA2D4 28 00 00 00 */ cmplwi r0, 0 +/* 800AD398 000AA2D8 41 82 00 08 */ beq lbl_800AD3A0 +/* 800AD39C 000AA2DC 4B FF B4 6D */ bl __GXSetDirtyState +lbl_800AD3A0: +/* 800AD3A0 000AA2E0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD3A4 000AA2E4 80 03 00 00 */ lwz r0, 0(r3) +/* 800AD3A8 000AA2E8 28 00 00 00 */ cmplwi r0, 0 +/* 800AD3AC 000AA2EC 40 82 00 08 */ bne lbl_800AD3B4 +/* 800AD3B0 000AA2F0 4B FF B5 E9 */ bl __GXSendFlushPrim +lbl_800AD3B4: +/* 800AD3B4 000AA2F4 38 00 00 40 */ li r0, 0x40 +/* 800AD3B8 000AA2F8 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AD3BC 000AA2FC 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AD3C0 000AA300 93 C3 80 00 */ stw r30, -0x8000(r3) +/* 800AD3C4 000AA304 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800AD3C8 000AA308 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800AD3CC 000AA30C 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800AD3D0 000AA310 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800AD3D4 000AA314 38 21 00 18 */ addi r1, r1, 0x18 +/* 800AD3D8 000AA318 7C 08 03 A6 */ mtlr r0 +/* 800AD3DC 000AA31C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/gx/GXDraw.s b/asm/Dolphin/gx/GXDraw.s new file mode 100644 index 0000000..9ad6d12 --- /dev/null +++ b/asm/Dolphin/gx/GXDraw.s @@ -0,0 +1,560 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXDrawSphere +GXDrawSphere: +/* 800ACB88 000A9AC8 7C 08 02 A6 */ mflr r0 +/* 800ACB8C 000A9ACC 90 01 00 04 */ stw r0, 4(r1) +/* 800ACB90 000A9AD0 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 800ACB94 000A9AD4 94 21 FF 30 */ stwu r1, -0xd0(r1) +/* 800ACB98 000A9AD8 DB E1 00 C8 */ stfd f31, 0xc8(r1) +/* 800ACB9C 000A9ADC DB C1 00 C0 */ stfd f30, 0xc0(r1) +/* 800ACBA0 000A9AE0 DB A1 00 B8 */ stfd f29, 0xb8(r1) +/* 800ACBA4 000A9AE4 DB 81 00 B0 */ stfd f28, 0xb0(r1) +/* 800ACBA8 000A9AE8 DB 61 00 A8 */ stfd f27, 0xa8(r1) +/* 800ACBAC 000A9AEC DB 41 00 A0 */ stfd f26, 0xa0(r1) +/* 800ACBB0 000A9AF0 DB 21 00 98 */ stfd f25, 0x98(r1) +/* 800ACBB4 000A9AF4 DB 01 00 90 */ stfd f24, 0x90(r1) +/* 800ACBB8 000A9AF8 DA E1 00 88 */ stfd f23, 0x88(r1) +/* 800ACBBC 000A9AFC DA C1 00 80 */ stfd f22, 0x80(r1) +/* 800ACBC0 000A9B00 DA A1 00 78 */ stfd f21, 0x78(r1) +/* 800ACBC4 000A9B04 DA 81 00 70 */ stfd f20, 0x70(r1) +/* 800ACBC8 000A9B08 DA 61 00 68 */ stfd f19, 0x68(r1) +/* 800ACBCC 000A9B0C BE A1 00 3C */ stmw r21, 0x3c(r1) +/* 800ACBD0 000A9B10 7C 76 1B 78 */ mr r22, r3 +/* 800ACBD4 000A9B14 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 800ACBD8 000A9B18 90 61 00 34 */ stw r3, 0x34(r1) +/* 800ACBDC 000A9B1C 3C 60 43 30 */ lis r3, 0x4330 +/* 800ACBE0 000A9B20 7C 95 23 78 */ mr r21, r4 +/* 800ACBE4 000A9B24 90 01 00 2C */ stw r0, 0x2c(r1) +/* 800ACBE8 000A9B28 3C 80 80 3F */ lis r4, vcd@ha +/* 800ACBEC 000A9B2C 3B 44 C7 18 */ addi r26, r4, vcd@l +/* 800ACBF0 000A9B30 90 61 00 30 */ stw r3, 0x30(r1) +/* 800ACBF4 000A9B34 38 81 00 10 */ addi r4, r1, 0x10 +/* 800ACBF8 000A9B38 90 61 00 28 */ stw r3, 0x28(r1) +/* 800ACBFC 000A9B3C 38 60 00 0D */ li r3, 0xd +/* 800ACC00 000A9B40 C8 41 00 30 */ lfd f2, 0x30(r1) +/* 800ACC04 000A9B44 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 800ACC08 000A9B48 C8 62 8B A0 */ lfd f3, "@364"@sda21(r2) +/* 800ACC0C 000A9B4C C0 82 8B 90 */ lfs f4, "@358"@sda21(r2) +/* 800ACC10 000A9B50 EC 42 18 28 */ fsubs f2, f2, f3 +/* 800ACC14 000A9B54 C0 22 8B A8 */ lfs f1, "@405"@sda21(r2) +/* 800ACC18 000A9B58 EC 00 18 28 */ fsubs f0, f0, f3 +/* 800ACC1C 000A9B5C EF 24 10 24 */ fdivs f25, f4, f2 +/* 800ACC20 000A9B60 EF 01 00 24 */ fdivs f24, f1, f0 +/* 800ACC24 000A9B64 4B FF A5 21 */ bl GXGetVtxDesc +/* 800ACC28 000A9B68 7F 43 D3 78 */ mr r3, r26 +/* 800ACC2C 000A9B6C 4B FF A6 CD */ bl GXGetVtxDescv +/* 800ACC30 000A9B70 38 60 00 03 */ li r3, 3 +/* 800ACC34 000A9B74 38 9A 00 D8 */ addi r4, r26, 0xd8 +/* 800ACC38 000A9B78 4B FF B1 39 */ bl GXGetVtxAttrFmtv +/* 800ACC3C 000A9B7C 4B FF A7 2D */ bl GXClearVtxDesc +/* 800ACC40 000A9B80 38 60 00 09 */ li r3, 9 +/* 800ACC44 000A9B84 38 80 00 01 */ li r4, 1 +/* 800ACC48 000A9B88 4B FF 9C A1 */ bl GXSetVtxDesc +/* 800ACC4C 000A9B8C 38 60 00 0A */ li r3, 0xa +/* 800ACC50 000A9B90 38 80 00 01 */ li r4, 1 +/* 800ACC54 000A9B94 4B FF 9C 95 */ bl GXSetVtxDesc +/* 800ACC58 000A9B98 38 60 00 03 */ li r3, 3 +/* 800ACC5C 000A9B9C 38 80 00 09 */ li r4, 9 +/* 800ACC60 000A9BA0 38 A0 00 01 */ li r5, 1 +/* 800ACC64 000A9BA4 38 C0 00 04 */ li r6, 4 +/* 800ACC68 000A9BA8 38 E0 00 00 */ li r7, 0 +/* 800ACC6C 000A9BAC 4B FF A7 49 */ bl GXSetVtxAttrFmt +/* 800ACC70 000A9BB0 38 60 00 03 */ li r3, 3 +/* 800ACC74 000A9BB4 38 80 00 0A */ li r4, 0xa +/* 800ACC78 000A9BB8 38 A0 00 00 */ li r5, 0 +/* 800ACC7C 000A9BBC 38 C0 00 04 */ li r6, 4 +/* 800ACC80 000A9BC0 38 E0 00 00 */ li r7, 0 +/* 800ACC84 000A9BC4 4B FF A7 31 */ bl GXSetVtxAttrFmt +/* 800ACC88 000A9BC8 80 01 00 10 */ lwz r0, 0x10(r1) +/* 800ACC8C 000A9BCC 2C 00 00 00 */ cmpwi r0, 0 +/* 800ACC90 000A9BD0 41 82 00 28 */ beq lbl_800ACCB8 +/* 800ACC94 000A9BD4 38 60 00 0D */ li r3, 0xd +/* 800ACC98 000A9BD8 38 80 00 01 */ li r4, 1 +/* 800ACC9C 000A9BDC 4B FF 9C 4D */ bl GXSetVtxDesc +/* 800ACCA0 000A9BE0 38 60 00 03 */ li r3, 3 +/* 800ACCA4 000A9BE4 38 80 00 0D */ li r4, 0xd +/* 800ACCA8 000A9BE8 38 A0 00 01 */ li r5, 1 +/* 800ACCAC 000A9BEC 38 C0 00 04 */ li r6, 4 +/* 800ACCB0 000A9BF0 38 E0 00 00 */ li r7, 0 +/* 800ACCB4 000A9BF4 4B FF A7 01 */ bl GXSetVtxAttrFmt +lbl_800ACCB8: +/* 800ACCB8 000A9BF8 56 B7 06 3E */ clrlwi r23, r21, 0x18 +/* 800ACCBC 000A9BFC CB 42 8B 98 */ lfd f26, "@362"@sda21(r2) +/* 800ACCC0 000A9C00 38 17 00 01 */ addi r0, r23, 1 +/* 800ACCC4 000A9C04 C3 82 8B 8C */ lfs f28, "@357"@sda21(r2) +/* 800ACCC8 000A9C08 CB C2 8B A0 */ lfd f30, "@364"@sda21(r2) +/* 800ACCCC 000A9C0C 54 19 08 3C */ slwi r25, r0, 1 +/* 800ACCD0 000A9C10 56 D8 06 3E */ clrlwi r24, r22, 0x18 +/* 800ACCD4 000A9C14 3A C0 00 00 */ li r22, 0 +/* 800ACCD8 000A9C18 3F A0 43 30 */ lis r29, 0x4330 +/* 800ACCDC 000A9C1C 3F C0 CC 01 */ lis r30, 0xcc01 +/* 800ACCE0 000A9C20 48 00 01 C0 */ b lbl_800ACEA0 +lbl_800ACCE4: +/* 800ACCE4 000A9C24 6E DB 80 00 */ xoris r27, r22, 0x8000 +/* 800ACCE8 000A9C28 93 61 00 2C */ stw r27, 0x2c(r1) +/* 800ACCEC 000A9C2C 93 A1 00 28 */ stw r29, 0x28(r1) +/* 800ACCF0 000A9C30 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 800ACCF4 000A9C34 EC 00 D0 28 */ fsubs f0, f0, f26 +/* 800ACCF8 000A9C38 EE 80 06 72 */ fmuls f20, f0, f25 +/* 800ACCFC 000A9C3C FC 20 A0 90 */ fmr f1, f20 +/* 800ACD00 000A9C40 EF 74 C8 2A */ fadds f27, f20, f25 +/* 800ACD04 000A9C44 4B FD A4 01 */ bl sinf +/* 800ACD08 000A9C48 EE FC 00 72 */ fmuls f23, f28, f1 +/* 800ACD0C 000A9C4C FC 20 D8 90 */ fmr f1, f27 +/* 800ACD10 000A9C50 4B FD A3 F5 */ bl sinf +/* 800ACD14 000A9C54 EE DC 00 72 */ fmuls f22, f28, f1 +/* 800ACD18 000A9C58 FC 20 A0 90 */ fmr f1, f20 +/* 800ACD1C 000A9C5C 4B FD A2 55 */ bl cosf +/* 800ACD20 000A9C60 EE BC 00 72 */ fmuls f21, f28, f1 +/* 800ACD24 000A9C64 FC 20 D8 90 */ fmr f1, f27 +/* 800ACD28 000A9C68 4B FD A2 49 */ bl cosf +/* 800ACD2C 000A9C6C EE 9C 00 72 */ fmuls f20, f28, f1 +/* 800ACD30 000A9C70 57 25 04 3E */ clrlwi r5, r25, 0x10 +/* 800ACD34 000A9C74 38 60 00 98 */ li r3, 0x98 +/* 800ACD38 000A9C78 38 80 00 03 */ li r4, 3 +/* 800ACD3C 000A9C7C 4B FF BB 6D */ bl GXBegin +/* 800ACD40 000A9C80 EF B4 E0 24 */ fdivs f29, f20, f28 +/* 800ACD44 000A9C84 38 16 00 01 */ addi r0, r22, 1 +/* 800ACD48 000A9C88 6C 1F 80 00 */ xoris r31, r0, 0x8000 +/* 800ACD4C 000A9C8C 3A A0 00 00 */ li r21, 0 +/* 800ACD50 000A9C90 EF F5 E0 24 */ fdivs f31, f21, f28 +/* 800ACD54 000A9C94 48 00 01 40 */ b lbl_800ACE94 +lbl_800ACD58: +/* 800ACD58 000A9C98 6E BC 80 00 */ xoris r28, r21, 0x8000 +/* 800ACD5C 000A9C9C 93 81 00 2C */ stw r28, 0x2c(r1) +/* 800ACD60 000A9CA0 93 A1 00 28 */ stw r29, 0x28(r1) +/* 800ACD64 000A9CA4 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 800ACD68 000A9CA8 EC 00 D0 28 */ fsubs f0, f0, f26 +/* 800ACD6C 000A9CAC EE 60 06 32 */ fmuls f19, f0, f24 +/* 800ACD70 000A9CB0 FC 20 98 90 */ fmr f1, f19 +/* 800ACD74 000A9CB4 4B FD A1 FD */ bl cosf +/* 800ACD78 000A9CB8 FF 60 08 90 */ fmr f27, f1 +/* 800ACD7C 000A9CBC FC 20 98 90 */ fmr f1, f19 +/* 800ACD80 000A9CC0 4B FD A3 85 */ bl sinf +/* 800ACD84 000A9CC4 EC 1B 05 B2 */ fmuls f0, f27, f22 +/* 800ACD88 000A9CC8 80 01 00 10 */ lwz r0, 0x10(r1) +/* 800ACD8C 000A9CCC EC 61 05 B2 */ fmuls f3, f1, f22 +/* 800ACD90 000A9CD0 2C 00 00 00 */ cmpwi r0, 0 +/* 800ACD94 000A9CD4 EC 40 E0 24 */ fdivs f2, f0, f28 +/* 800ACD98 000A9CD8 D0 1E 80 00 */ stfs f0, -0x8000(r30) +/* 800ACD9C 000A9CDC D0 7E 80 00 */ stfs f3, -0x8000(r30) +/* 800ACDA0 000A9CE0 D2 9E 80 00 */ stfs f20, -0x8000(r30) +/* 800ACDA4 000A9CE4 EC 03 E0 24 */ fdivs f0, f3, f28 +/* 800ACDA8 000A9CE8 D0 5E 80 00 */ stfs f2, -0x8000(r30) +/* 800ACDAC 000A9CEC D0 1E 80 00 */ stfs f0, -0x8000(r30) +/* 800ACDB0 000A9CF0 D3 BE 80 00 */ stfs f29, -0x8000(r30) +/* 800ACDB4 000A9CF4 41 82 00 54 */ beq lbl_800ACE08 +/* 800ACDB8 000A9CF8 93 81 00 2C */ stw r28, 0x2c(r1) +/* 800ACDBC 000A9CFC 92 E1 00 34 */ stw r23, 0x34(r1) +/* 800ACDC0 000A9D00 93 A1 00 28 */ stw r29, 0x28(r1) +/* 800ACDC4 000A9D04 93 A1 00 30 */ stw r29, 0x30(r1) +/* 800ACDC8 000A9D08 C8 41 00 28 */ lfd f2, 0x28(r1) +/* 800ACDCC 000A9D0C 93 E1 00 24 */ stw r31, 0x24(r1) +/* 800ACDD0 000A9D10 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 800ACDD4 000A9D14 EC 42 D0 28 */ fsubs f2, f2, f26 +/* 800ACDD8 000A9D18 93 01 00 1C */ stw r24, 0x1c(r1) +/* 800ACDDC 000A9D1C EC 00 F0 28 */ fsubs f0, f0, f30 +/* 800ACDE0 000A9D20 93 A1 00 20 */ stw r29, 0x20(r1) +/* 800ACDE4 000A9D24 93 A1 00 18 */ stw r29, 0x18(r1) +/* 800ACDE8 000A9D28 EC 62 00 24 */ fdivs f3, f2, f0 +/* 800ACDEC 000A9D2C C8 41 00 20 */ lfd f2, 0x20(r1) +/* 800ACDF0 000A9D30 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 800ACDF4 000A9D34 EC 42 D0 28 */ fsubs f2, f2, f26 +/* 800ACDF8 000A9D38 D0 7E 80 00 */ stfs f3, -0x8000(r30) +/* 800ACDFC 000A9D3C EC 00 F0 28 */ fsubs f0, f0, f30 +/* 800ACE00 000A9D40 EC 02 00 24 */ fdivs f0, f2, f0 +/* 800ACE04 000A9D44 D0 1E 80 00 */ stfs f0, -0x8000(r30) +lbl_800ACE08: +/* 800ACE08 000A9D48 EC 1B 05 F2 */ fmuls f0, f27, f23 +/* 800ACE0C 000A9D4C 80 01 00 10 */ lwz r0, 0x10(r1) +/* 800ACE10 000A9D50 EC 41 05 F2 */ fmuls f2, f1, f23 +/* 800ACE14 000A9D54 2C 00 00 00 */ cmpwi r0, 0 +/* 800ACE18 000A9D58 EC 20 E0 24 */ fdivs f1, f0, f28 +/* 800ACE1C 000A9D5C D0 1E 80 00 */ stfs f0, -0x8000(r30) +/* 800ACE20 000A9D60 D0 5E 80 00 */ stfs f2, -0x8000(r30) +/* 800ACE24 000A9D64 D2 BE 80 00 */ stfs f21, -0x8000(r30) +/* 800ACE28 000A9D68 EC 02 E0 24 */ fdivs f0, f2, f28 +/* 800ACE2C 000A9D6C D0 3E 80 00 */ stfs f1, -0x8000(r30) +/* 800ACE30 000A9D70 D0 1E 80 00 */ stfs f0, -0x8000(r30) +/* 800ACE34 000A9D74 D3 FE 80 00 */ stfs f31, -0x8000(r30) +/* 800ACE38 000A9D78 41 82 00 58 */ beq lbl_800ACE90 +/* 800ACE3C 000A9D7C 6E A0 80 00 */ xoris r0, r21, 0x8000 +/* 800ACE40 000A9D80 92 E1 00 24 */ stw r23, 0x24(r1) +/* 800ACE44 000A9D84 90 01 00 1C */ stw r0, 0x1c(r1) +/* 800ACE48 000A9D88 93 A1 00 18 */ stw r29, 0x18(r1) +/* 800ACE4C 000A9D8C 93 A1 00 20 */ stw r29, 0x20(r1) +/* 800ACE50 000A9D90 C8 21 00 18 */ lfd f1, 0x18(r1) +/* 800ACE54 000A9D94 93 61 00 2C */ stw r27, 0x2c(r1) +/* 800ACE58 000A9D98 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 800ACE5C 000A9D9C EC 21 D0 28 */ fsubs f1, f1, f26 +/* 800ACE60 000A9DA0 93 01 00 34 */ stw r24, 0x34(r1) +/* 800ACE64 000A9DA4 EC 00 F0 28 */ fsubs f0, f0, f30 +/* 800ACE68 000A9DA8 93 A1 00 28 */ stw r29, 0x28(r1) +/* 800ACE6C 000A9DAC 93 A1 00 30 */ stw r29, 0x30(r1) +/* 800ACE70 000A9DB0 EC 41 00 24 */ fdivs f2, f1, f0 +/* 800ACE74 000A9DB4 C8 21 00 28 */ lfd f1, 0x28(r1) +/* 800ACE78 000A9DB8 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 800ACE7C 000A9DBC EC 21 D0 28 */ fsubs f1, f1, f26 +/* 800ACE80 000A9DC0 D0 5E 80 00 */ stfs f2, -0x8000(r30) +/* 800ACE84 000A9DC4 EC 00 F0 28 */ fsubs f0, f0, f30 +/* 800ACE88 000A9DC8 EC 01 00 24 */ fdivs f0, f1, f0 +/* 800ACE8C 000A9DCC D0 1E 80 00 */ stfs f0, -0x8000(r30) +lbl_800ACE90: +/* 800ACE90 000A9DD0 3A B5 00 01 */ addi r21, r21, 1 +lbl_800ACE94: +/* 800ACE94 000A9DD4 7C 15 B8 00 */ cmpw r21, r23 +/* 800ACE98 000A9DD8 40 81 FE C0 */ ble lbl_800ACD58 +/* 800ACE9C 000A9DDC 3A D6 00 01 */ addi r22, r22, 1 +lbl_800ACEA0: +/* 800ACEA0 000A9DE0 7C 16 C0 00 */ cmpw r22, r24 +/* 800ACEA4 000A9DE4 41 80 FE 40 */ blt lbl_800ACCE4 +/* 800ACEA8 000A9DE8 7F 43 D3 78 */ mr r3, r26 +/* 800ACEAC 000A9DEC 4B FF 9D 9D */ bl GXSetVtxDescv +/* 800ACEB0 000A9DF0 38 60 00 03 */ li r3, 3 +/* 800ACEB4 000A9DF4 38 9A 00 D8 */ addi r4, r26, 0xd8 +/* 800ACEB8 000A9DF8 4B FF A8 59 */ bl GXSetVtxAttrFmtv +/* 800ACEBC 000A9DFC BA A1 00 3C */ lmw r21, 0x3c(r1) +/* 800ACEC0 000A9E00 80 01 00 D4 */ lwz r0, 0xd4(r1) +/* 800ACEC4 000A9E04 CB E1 00 C8 */ lfd f31, 0xc8(r1) +/* 800ACEC8 000A9E08 CB C1 00 C0 */ lfd f30, 0xc0(r1) +/* 800ACECC 000A9E0C CB A1 00 B8 */ lfd f29, 0xb8(r1) +/* 800ACED0 000A9E10 CB 81 00 B0 */ lfd f28, 0xb0(r1) +/* 800ACED4 000A9E14 CB 61 00 A8 */ lfd f27, 0xa8(r1) +/* 800ACED8 000A9E18 CB 41 00 A0 */ lfd f26, 0xa0(r1) +/* 800ACEDC 000A9E1C CB 21 00 98 */ lfd f25, 0x98(r1) +/* 800ACEE0 000A9E20 CB 01 00 90 */ lfd f24, 0x90(r1) +/* 800ACEE4 000A9E24 CA E1 00 88 */ lfd f23, 0x88(r1) +/* 800ACEE8 000A9E28 CA C1 00 80 */ lfd f22, 0x80(r1) +/* 800ACEEC 000A9E2C CA A1 00 78 */ lfd f21, 0x78(r1) +/* 800ACEF0 000A9E30 CA 81 00 70 */ lfd f20, 0x70(r1) +/* 800ACEF4 000A9E34 CA 61 00 68 */ lfd f19, 0x68(r1) +/* 800ACEF8 000A9E38 38 21 00 D0 */ addi r1, r1, 0xd0 +/* 800ACEFC 000A9E3C 7C 08 03 A6 */ mtlr r0 +/* 800ACF00 000A9E40 4E 80 00 20 */ blr + +.global GXDrawCubeFace +GXDrawCubeFace: +/* 800ACF04 000A9E44 94 21 FF A8 */ stwu r1, -0x58(r1) +/* 800ACF08 000A9E48 ED 22 28 2A */ fadds f9, f2, f5 +/* 800ACF0C 000A9E4C EC 01 20 2A */ fadds f0, f1, f4 +/* 800ACF10 000A9E50 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ACF14 000A9E54 DB E1 00 50 */ stfd f31, 0x50(r1) +/* 800ACF18 000A9E58 ED 43 30 2A */ fadds f10, f3, f6 +/* 800ACF1C 000A9E5C DB C1 00 48 */ stfd f30, 0x48(r1) +/* 800ACF20 000A9E60 C1 61 00 60 */ lfs f11, 0x60(r1) +/* 800ACF24 000A9E64 EF C7 00 2A */ fadds f30, f7, f0 +/* 800ACF28 000A9E68 DB A1 00 40 */ stfd f29, 0x40(r1) +/* 800ACF2C 000A9E6C ED A8 48 2A */ fadds f13, f8, f9 +/* 800ACF30 000A9E70 2C 03 00 00 */ cmpwi r3, 0 +/* 800ACF34 000A9E74 DB 81 00 38 */ stfd f28, 0x38(r1) +/* 800ACF38 000A9E78 ED 8B 50 2A */ fadds f12, f11, f10 +/* 800ACF3C 000A9E7C DB 61 00 30 */ stfd f27, 0x30(r1) +/* 800ACF40 000A9E80 C3 E2 8B AC */ lfs f31, "@493"@sda21(r2) +/* 800ACF44 000A9E84 EF DF 07 B2 */ fmuls f30, f31, f30 +/* 800ACF48 000A9E88 ED BF 03 72 */ fmuls f13, f31, f13 +/* 800ACF4C 000A9E8C ED 9F 03 32 */ fmuls f12, f31, f12 +/* 800ACF50 000A9E90 D3 C5 80 00 */ stfs f30, 0xCC008000@l(r5) +/* 800ACF54 000A9E94 D1 A5 80 00 */ stfs f13, -0x8000(r5) +/* 800ACF58 000A9E98 D1 85 80 00 */ stfs f12, -0x8000(r5) +/* 800ACF5C 000A9E9C D0 25 80 00 */ stfs f1, -0x8000(r5) +/* 800ACF60 000A9EA0 D0 45 80 00 */ stfs f2, -0x8000(r5) +/* 800ACF64 000A9EA4 D0 65 80 00 */ stfs f3, -0x8000(r5) +/* 800ACF68 000A9EA8 41 82 00 1C */ beq lbl_800ACF84 +/* 800ACF6C 000A9EAC D0 85 80 00 */ stfs f4, -0x8000(r5) +/* 800ACF70 000A9EB0 D0 A5 80 00 */ stfs f5, -0x8000(r5) +/* 800ACF74 000A9EB4 D0 C5 80 00 */ stfs f6, -0x8000(r5) +/* 800ACF78 000A9EB8 D0 E5 80 00 */ stfs f7, -0x8000(r5) +/* 800ACF7C 000A9EBC D1 05 80 00 */ stfs f8, -0x8000(r5) +/* 800ACF80 000A9EC0 D1 65 80 00 */ stfs f11, -0x8000(r5) +lbl_800ACF84: +/* 800ACF84 000A9EC4 2C 04 00 00 */ cmpwi r4, 0 +/* 800ACF88 000A9EC8 41 82 00 14 */ beq lbl_800ACF9C +/* 800ACF8C 000A9ECC 38 00 00 01 */ li r0, 1 +/* 800ACF90 000A9ED0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ACF94 000A9ED4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ACF98 000A9ED8 98 05 80 00 */ stb r0, -0x8000(r5) +lbl_800ACF9C: +/* 800ACF9C 000A9EDC EF A1 20 28 */ fsubs f29, f1, f4 +/* 800ACFA0 000A9EE0 C3 E2 8B AC */ lfs f31, "@493"@sda21(r2) +/* 800ACFA4 000A9EE4 EF 82 28 28 */ fsubs f28, f2, f5 +/* 800ACFA8 000A9EE8 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ACFAC 000A9EEC EF 63 30 28 */ fsubs f27, f3, f6 +/* 800ACFB0 000A9EF0 EF C7 E8 2A */ fadds f30, f7, f29 +/* 800ACFB4 000A9EF4 2C 03 00 00 */ cmpwi r3, 0 +/* 800ACFB8 000A9EF8 ED A8 E0 2A */ fadds f13, f8, f28 +/* 800ACFBC 000A9EFC ED 8B D8 2A */ fadds f12, f11, f27 +/* 800ACFC0 000A9F00 EF DF 07 B2 */ fmuls f30, f31, f30 +/* 800ACFC4 000A9F04 ED BF 03 72 */ fmuls f13, f31, f13 +/* 800ACFC8 000A9F08 ED 9F 03 32 */ fmuls f12, f31, f12 +/* 800ACFCC 000A9F0C D3 C5 80 00 */ stfs f30, 0xCC008000@l(r5) +/* 800ACFD0 000A9F10 D1 A5 80 00 */ stfs f13, -0x8000(r5) +/* 800ACFD4 000A9F14 D1 85 80 00 */ stfs f12, -0x8000(r5) +/* 800ACFD8 000A9F18 D0 25 80 00 */ stfs f1, -0x8000(r5) +/* 800ACFDC 000A9F1C D0 45 80 00 */ stfs f2, -0x8000(r5) +/* 800ACFE0 000A9F20 D0 65 80 00 */ stfs f3, -0x8000(r5) +/* 800ACFE4 000A9F24 41 82 00 1C */ beq lbl_800AD000 +/* 800ACFE8 000A9F28 D0 85 80 00 */ stfs f4, -0x8000(r5) +/* 800ACFEC 000A9F2C D0 A5 80 00 */ stfs f5, -0x8000(r5) +/* 800ACFF0 000A9F30 D0 C5 80 00 */ stfs f6, -0x8000(r5) +/* 800ACFF4 000A9F34 D0 E5 80 00 */ stfs f7, -0x8000(r5) +/* 800ACFF8 000A9F38 D1 05 80 00 */ stfs f8, -0x8000(r5) +/* 800ACFFC 000A9F3C D1 65 80 00 */ stfs f11, -0x8000(r5) +lbl_800AD000: +/* 800AD000 000A9F40 2C 04 00 00 */ cmpwi r4, 0 +/* 800AD004 000A9F44 41 82 00 18 */ beq lbl_800AD01C +/* 800AD008 000A9F48 38 00 00 00 */ li r0, 0 +/* 800AD00C 000A9F4C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD010 000A9F50 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AD014 000A9F54 38 00 00 01 */ li r0, 1 +/* 800AD018 000A9F58 98 05 80 00 */ stb r0, -0x8000(r5) +lbl_800AD01C: +/* 800AD01C 000A9F5C EF FD 38 28 */ fsubs f31, f29, f7 +/* 800AD020 000A9F60 C3 C2 8B AC */ lfs f30, "@493"@sda21(r2) +/* 800AD024 000A9F64 ED BC 40 28 */ fsubs f13, f28, f8 +/* 800AD028 000A9F68 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD02C 000A9F6C ED 9B 58 28 */ fsubs f12, f27, f11 +/* 800AD030 000A9F70 EF FE 07 F2 */ fmuls f31, f30, f31 +/* 800AD034 000A9F74 2C 03 00 00 */ cmpwi r3, 0 +/* 800AD038 000A9F78 ED BE 03 72 */ fmuls f13, f30, f13 +/* 800AD03C 000A9F7C ED 9E 03 32 */ fmuls f12, f30, f12 +/* 800AD040 000A9F80 D3 E5 80 00 */ stfs f31, 0xCC008000@l(r5) +/* 800AD044 000A9F84 D1 A5 80 00 */ stfs f13, -0x8000(r5) +/* 800AD048 000A9F88 D1 85 80 00 */ stfs f12, -0x8000(r5) +/* 800AD04C 000A9F8C D0 25 80 00 */ stfs f1, -0x8000(r5) +/* 800AD050 000A9F90 D0 45 80 00 */ stfs f2, -0x8000(r5) +/* 800AD054 000A9F94 D0 65 80 00 */ stfs f3, -0x8000(r5) +/* 800AD058 000A9F98 41 82 00 1C */ beq lbl_800AD074 +/* 800AD05C 000A9F9C D0 85 80 00 */ stfs f4, -0x8000(r5) +/* 800AD060 000A9FA0 D0 A5 80 00 */ stfs f5, -0x8000(r5) +/* 800AD064 000A9FA4 D0 C5 80 00 */ stfs f6, -0x8000(r5) +/* 800AD068 000A9FA8 D0 E5 80 00 */ stfs f7, -0x8000(r5) +/* 800AD06C 000A9FAC D1 05 80 00 */ stfs f8, -0x8000(r5) +/* 800AD070 000A9FB0 D1 65 80 00 */ stfs f11, -0x8000(r5) +lbl_800AD074: +/* 800AD074 000A9FB4 2C 04 00 00 */ cmpwi r4, 0 +/* 800AD078 000A9FB8 41 82 00 14 */ beq lbl_800AD08C +/* 800AD07C 000A9FBC 38 00 00 00 */ li r0, 0 +/* 800AD080 000A9FC0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD084 000A9FC4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AD088 000A9FC8 98 05 80 00 */ stb r0, -0x8000(r5) +lbl_800AD08C: +/* 800AD08C 000A9FCC ED 80 38 28 */ fsubs f12, f0, f7 +/* 800AD090 000A9FD0 C1 A2 8B AC */ lfs f13, "@493"@sda21(r2) +/* 800AD094 000A9FD4 ED 29 40 28 */ fsubs f9, f9, f8 +/* 800AD098 000A9FD8 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD09C 000A9FDC EC 0A 58 28 */ fsubs f0, f10, f11 +/* 800AD0A0 000A9FE0 ED 4D 03 32 */ fmuls f10, f13, f12 +/* 800AD0A4 000A9FE4 2C 03 00 00 */ cmpwi r3, 0 +/* 800AD0A8 000A9FE8 ED 2D 02 72 */ fmuls f9, f13, f9 +/* 800AD0AC 000A9FEC EC 0D 00 32 */ fmuls f0, f13, f0 +/* 800AD0B0 000A9FF0 D1 45 80 00 */ stfs f10, 0xCC008000@l(r5) +/* 800AD0B4 000A9FF4 D1 25 80 00 */ stfs f9, -0x8000(r5) +/* 800AD0B8 000A9FF8 D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD0BC 000A9FFC D0 25 80 00 */ stfs f1, -0x8000(r5) +/* 800AD0C0 000AA000 D0 45 80 00 */ stfs f2, -0x8000(r5) +/* 800AD0C4 000AA004 D0 65 80 00 */ stfs f3, -0x8000(r5) +/* 800AD0C8 000AA008 41 82 00 1C */ beq lbl_800AD0E4 +/* 800AD0CC 000AA00C D0 85 80 00 */ stfs f4, -0x8000(r5) +/* 800AD0D0 000AA010 D0 A5 80 00 */ stfs f5, -0x8000(r5) +/* 800AD0D4 000AA014 D0 C5 80 00 */ stfs f6, -0x8000(r5) +/* 800AD0D8 000AA018 D0 E5 80 00 */ stfs f7, -0x8000(r5) +/* 800AD0DC 000AA01C D1 05 80 00 */ stfs f8, -0x8000(r5) +/* 800AD0E0 000AA020 D1 65 80 00 */ stfs f11, -0x8000(r5) +lbl_800AD0E4: +/* 800AD0E4 000AA024 2C 04 00 00 */ cmpwi r4, 0 +/* 800AD0E8 000AA028 41 82 00 18 */ beq lbl_800AD100 +/* 800AD0EC 000AA02C 38 00 00 01 */ li r0, 1 +/* 800AD0F0 000AA030 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AD0F4 000AA034 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AD0F8 000AA038 38 00 00 00 */ li r0, 0 +/* 800AD0FC 000AA03C 98 03 80 00 */ stb r0, -0x8000(r3) +lbl_800AD100: +/* 800AD100 000AA040 CB E1 00 50 */ lfd f31, 0x50(r1) +/* 800AD104 000AA044 CB C1 00 48 */ lfd f30, 0x48(r1) +/* 800AD108 000AA048 CB A1 00 40 */ lfd f29, 0x40(r1) +/* 800AD10C 000AA04C CB 81 00 38 */ lfd f28, 0x38(r1) +/* 800AD110 000AA050 CB 61 00 30 */ lfd f27, 0x30(r1) +/* 800AD114 000AA054 38 21 00 58 */ addi r1, r1, 0x58 +/* 800AD118 000AA058 4E 80 00 20 */ blr + +.global GXDrawCube +GXDrawCube: +/* 800AD11C 000AA05C 7C 08 02 A6 */ mflr r0 +/* 800AD120 000AA060 3C 60 80 3F */ lis r3, vcd@ha +/* 800AD124 000AA064 90 01 00 04 */ stw r0, 4(r1) +/* 800AD128 000AA068 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800AD12C 000AA06C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800AD130 000AA070 3B E3 C7 18 */ addi r31, r3, vcd@l +/* 800AD134 000AA074 38 81 00 14 */ addi r4, r1, 0x14 +/* 800AD138 000AA078 38 60 00 19 */ li r3, 0x19 +/* 800AD13C 000AA07C 4B FF A0 09 */ bl GXGetVtxDesc +/* 800AD140 000AA080 38 60 00 0D */ li r3, 0xd +/* 800AD144 000AA084 38 81 00 10 */ addi r4, r1, 0x10 +/* 800AD148 000AA088 4B FF 9F FD */ bl GXGetVtxDesc +/* 800AD14C 000AA08C 7F E3 FB 78 */ mr r3, r31 +/* 800AD150 000AA090 4B FF A1 A9 */ bl GXGetVtxDescv +/* 800AD154 000AA094 38 60 00 03 */ li r3, 3 +/* 800AD158 000AA098 38 9F 00 D8 */ addi r4, r31, 0xd8 +/* 800AD15C 000AA09C 4B FF AC 15 */ bl GXGetVtxAttrFmtv +/* 800AD160 000AA0A0 4B FF A2 09 */ bl GXClearVtxDesc +/* 800AD164 000AA0A4 38 60 00 09 */ li r3, 9 +/* 800AD168 000AA0A8 38 80 00 01 */ li r4, 1 +/* 800AD16C 000AA0AC 4B FF 97 7D */ bl GXSetVtxDesc +/* 800AD170 000AA0B0 38 60 00 0A */ li r3, 0xa +/* 800AD174 000AA0B4 38 80 00 01 */ li r4, 1 +/* 800AD178 000AA0B8 4B FF 97 71 */ bl GXSetVtxDesc +/* 800AD17C 000AA0BC 38 60 00 03 */ li r3, 3 +/* 800AD180 000AA0C0 38 80 00 09 */ li r4, 9 +/* 800AD184 000AA0C4 38 A0 00 01 */ li r5, 1 +/* 800AD188 000AA0C8 38 C0 00 04 */ li r6, 4 +/* 800AD18C 000AA0CC 38 E0 00 00 */ li r7, 0 +/* 800AD190 000AA0D0 4B FF A2 25 */ bl GXSetVtxAttrFmt +/* 800AD194 000AA0D4 38 60 00 03 */ li r3, 3 +/* 800AD198 000AA0D8 38 80 00 0A */ li r4, 0xa +/* 800AD19C 000AA0DC 38 A0 00 00 */ li r5, 0 +/* 800AD1A0 000AA0E0 38 C0 00 04 */ li r6, 4 +/* 800AD1A4 000AA0E4 38 E0 00 00 */ li r7, 0 +/* 800AD1A8 000AA0E8 4B FF A2 0D */ bl GXSetVtxAttrFmt +/* 800AD1AC 000AA0EC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800AD1B0 000AA0F0 2C 00 00 00 */ cmpwi r0, 0 +/* 800AD1B4 000AA0F4 41 82 00 28 */ beq lbl_800AD1DC +/* 800AD1B8 000AA0F8 38 60 00 19 */ li r3, 0x19 +/* 800AD1BC 000AA0FC 38 80 00 01 */ li r4, 1 +/* 800AD1C0 000AA100 4B FF 97 29 */ bl GXSetVtxDesc +/* 800AD1C4 000AA104 38 60 00 03 */ li r3, 3 +/* 800AD1C8 000AA108 38 80 00 19 */ li r4, 0x19 +/* 800AD1CC 000AA10C 38 A0 00 01 */ li r5, 1 +/* 800AD1D0 000AA110 38 C0 00 04 */ li r6, 4 +/* 800AD1D4 000AA114 38 E0 00 00 */ li r7, 0 +/* 800AD1D8 000AA118 4B FF A1 DD */ bl GXSetVtxAttrFmt +lbl_800AD1DC: +/* 800AD1DC 000AA11C 80 01 00 10 */ lwz r0, 0x10(r1) +/* 800AD1E0 000AA120 2C 00 00 00 */ cmpwi r0, 0 +/* 800AD1E4 000AA124 41 82 00 28 */ beq lbl_800AD20C +/* 800AD1E8 000AA128 38 60 00 0D */ li r3, 0xd +/* 800AD1EC 000AA12C 38 80 00 01 */ li r4, 1 +/* 800AD1F0 000AA130 4B FF 96 F9 */ bl GXSetVtxDesc +/* 800AD1F4 000AA134 38 60 00 03 */ li r3, 3 +/* 800AD1F8 000AA138 38 80 00 0D */ li r4, 0xd +/* 800AD1FC 000AA13C 38 A0 00 01 */ li r5, 1 +/* 800AD200 000AA140 38 C0 00 01 */ li r6, 1 +/* 800AD204 000AA144 38 E0 00 00 */ li r7, 0 +/* 800AD208 000AA148 4B FF A1 AD */ bl GXSetVtxAttrFmt +lbl_800AD20C: +/* 800AD20C 000AA14C 38 60 00 80 */ li r3, 0x80 +/* 800AD210 000AA150 38 80 00 03 */ li r4, 3 +/* 800AD214 000AA154 38 A0 00 18 */ li r5, 0x18 +/* 800AD218 000AA158 4B FF B6 91 */ bl GXBegin +/* 800AD21C 000AA15C C0 42 8B 88 */ lfs f2, "@133"@sda21(r2) +/* 800AD220 000AA160 D0 41 00 08 */ stfs f2, 8(r1) +/* 800AD224 000AA164 FC 60 10 90 */ fmr f3, f2 +/* 800AD228 000AA168 FC 80 10 90 */ fmr f4, f2 +/* 800AD22C 000AA16C C0 22 8B 94 */ lfs f1, "@360"@sda21(r2) +/* 800AD230 000AA170 FC A0 10 90 */ fmr f5, f2 +/* 800AD234 000AA174 FC E0 10 90 */ fmr f7, f2 +/* 800AD238 000AA178 FC C0 08 90 */ fmr f6, f1 +/* 800AD23C 000AA17C C1 02 8B 8C */ lfs f8, "@357"@sda21(r2) +/* 800AD240 000AA180 80 61 00 14 */ lwz r3, 0x14(r1) +/* 800AD244 000AA184 80 81 00 10 */ lwz r4, 0x10(r1) +/* 800AD248 000AA188 4B FF FC BD */ bl GXDrawCubeFace +/* 800AD24C 000AA18C C0 02 8B 94 */ lfs f0, "@360"@sda21(r2) +/* 800AD250 000AA190 D0 01 00 08 */ stfs f0, 8(r1) +/* 800AD254 000AA194 C0 42 8B 88 */ lfs f2, "@133"@sda21(r2) +/* 800AD258 000AA198 C0 22 8B 8C */ lfs f1, "@357"@sda21(r2) +/* 800AD25C 000AA19C FC 60 10 90 */ fmr f3, f2 +/* 800AD260 000AA1A0 80 61 00 14 */ lwz r3, 0x14(r1) +/* 800AD264 000AA1A4 FC 80 10 90 */ fmr f4, f2 +/* 800AD268 000AA1A8 80 81 00 10 */ lwz r4, 0x10(r1) +/* 800AD26C 000AA1AC FC A0 08 90 */ fmr f5, f1 +/* 800AD270 000AA1B0 FC C0 10 90 */ fmr f6, f2 +/* 800AD274 000AA1B4 FC E0 10 90 */ fmr f7, f2 +/* 800AD278 000AA1B8 FD 00 10 90 */ fmr f8, f2 +/* 800AD27C 000AA1BC 4B FF FC 89 */ bl GXDrawCubeFace +/* 800AD280 000AA1C0 C0 02 8B 8C */ lfs f0, "@357"@sda21(r2) +/* 800AD284 000AA1C4 D0 01 00 08 */ stfs f0, 8(r1) +/* 800AD288 000AA1C8 C0 22 8B 88 */ lfs f1, "@133"@sda21(r2) +/* 800AD28C 000AA1CC C0 42 8B 94 */ lfs f2, "@360"@sda21(r2) +/* 800AD290 000AA1D0 FC 60 08 90 */ fmr f3, f1 +/* 800AD294 000AA1D4 80 61 00 14 */ lwz r3, 0x14(r1) +/* 800AD298 000AA1D8 FC 80 10 90 */ fmr f4, f2 +/* 800AD29C 000AA1DC 80 81 00 10 */ lwz r4, 0x10(r1) +/* 800AD2A0 000AA1E0 FC A0 08 90 */ fmr f5, f1 +/* 800AD2A4 000AA1E4 FC C0 08 90 */ fmr f6, f1 +/* 800AD2A8 000AA1E8 FC E0 08 90 */ fmr f7, f1 +/* 800AD2AC 000AA1EC FD 00 08 90 */ fmr f8, f1 +/* 800AD2B0 000AA1F0 4B FF FC 55 */ bl GXDrawCubeFace +/* 800AD2B4 000AA1F4 C0 22 8B 88 */ lfs f1, "@133"@sda21(r2) +/* 800AD2B8 000AA1F8 D0 21 00 08 */ stfs f1, 8(r1) +/* 800AD2BC 000AA1FC FC 60 08 90 */ fmr f3, f1 +/* 800AD2C0 000AA200 FC 80 08 90 */ fmr f4, f1 +/* 800AD2C4 000AA204 C0 42 8B 8C */ lfs f2, "@357"@sda21(r2) +/* 800AD2C8 000AA208 FC A0 08 90 */ fmr f5, f1 +/* 800AD2CC 000AA20C FD 00 08 90 */ fmr f8, f1 +/* 800AD2D0 000AA210 FC C0 10 90 */ fmr f6, f2 +/* 800AD2D4 000AA214 C0 E2 8B 94 */ lfs f7, "@360"@sda21(r2) +/* 800AD2D8 000AA218 80 61 00 14 */ lwz r3, 0x14(r1) +/* 800AD2DC 000AA21C 80 81 00 10 */ lwz r4, 0x10(r1) +/* 800AD2E0 000AA220 4B FF FC 25 */ bl GXDrawCubeFace +/* 800AD2E4 000AA224 C0 22 8B 88 */ lfs f1, "@133"@sda21(r2) +/* 800AD2E8 000AA228 D0 21 00 08 */ stfs f1, 8(r1) +/* 800AD2EC 000AA22C FC 40 08 90 */ fmr f2, f1 +/* 800AD2F0 000AA230 FC 80 08 90 */ fmr f4, f1 +/* 800AD2F4 000AA234 C0 62 8B 94 */ lfs f3, "@360"@sda21(r2) +/* 800AD2F8 000AA238 FC C0 08 90 */ fmr f6, f1 +/* 800AD2FC 000AA23C FD 00 08 90 */ fmr f8, f1 +/* 800AD300 000AA240 FC A0 18 90 */ fmr f5, f3 +/* 800AD304 000AA244 C0 E2 8B 8C */ lfs f7, "@357"@sda21(r2) +/* 800AD308 000AA248 80 61 00 14 */ lwz r3, 0x14(r1) +/* 800AD30C 000AA24C 80 81 00 10 */ lwz r4, 0x10(r1) +/* 800AD310 000AA250 4B FF FB F5 */ bl GXDrawCubeFace +/* 800AD314 000AA254 C0 22 8B 88 */ lfs f1, "@133"@sda21(r2) +/* 800AD318 000AA258 D0 21 00 08 */ stfs f1, 8(r1) +/* 800AD31C 000AA25C FC 40 08 90 */ fmr f2, f1 +/* 800AD320 000AA260 FC A0 08 90 */ fmr f5, f1 +/* 800AD324 000AA264 C0 62 8B 8C */ lfs f3, "@357"@sda21(r2) +/* 800AD328 000AA268 FC C0 08 90 */ fmr f6, f1 +/* 800AD32C 000AA26C FC E0 08 90 */ fmr f7, f1 +/* 800AD330 000AA270 FC 80 18 90 */ fmr f4, f3 +/* 800AD334 000AA274 C1 02 8B 94 */ lfs f8, "@360"@sda21(r2) +/* 800AD338 000AA278 80 61 00 14 */ lwz r3, 0x14(r1) +/* 800AD33C 000AA27C 80 81 00 10 */ lwz r4, 0x10(r1) +/* 800AD340 000AA280 4B FF FB C5 */ bl GXDrawCubeFace +/* 800AD344 000AA284 7F E3 FB 78 */ mr r3, r31 +/* 800AD348 000AA288 4B FF 99 01 */ bl GXSetVtxDescv +/* 800AD34C 000AA28C 38 60 00 03 */ li r3, 3 +/* 800AD350 000AA290 38 9F 00 D8 */ addi r4, r31, 0xd8 +/* 800AD354 000AA294 4B FF A3 BD */ bl GXSetVtxAttrFmtv +/* 800AD358 000AA298 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800AD35C 000AA29C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800AD360 000AA2A0 38 21 00 20 */ addi r1, r1, 0x20 +/* 800AD364 000AA2A4 7C 08 03 A6 */ mtlr r0 +/* 800AD368 000AA2A8 4E 80 00 20 */ blr + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@133": + .4byte 0 +"@357": + .4byte 0x3F800000 +"@358": + .4byte 0x40490FDB +"@360": + .4byte 0xBF800000 +"@362": + .4byte 0x43300000 + .4byte 0x80000000 +"@364": + .4byte 0x43300000 + .4byte 0 +"@405": + .4byte 0x40C90FDB +"@493": + .4byte 0x3F13CD3A + +.section .bss, "wa" # 0x803E6000 - 0x80408AC0 +vcd: + .skip 0xD8 +vat: + .skip 0x1B0 diff --git a/asm/Dolphin/gx/GXFifo.s b/asm/Dolphin/gx/GXFifo.s new file mode 100644 index 0000000..23df893 --- /dev/null +++ b/asm/Dolphin/gx/GXFifo.s @@ -0,0 +1,577 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXCPInterruptHandler +GXCPInterruptHandler: +/* 800A5FD4 000A2F14 7C 08 02 A6 */ mflr r0 +/* 800A5FD8 000A2F18 90 01 00 04 */ stw r0, 4(r1) +/* 800A5FDC 000A2F1C 94 21 FD 20 */ stwu r1, -0x2e0(r1) +/* 800A5FE0 000A2F20 93 E1 02 DC */ stw r31, 0x2dc(r1) +/* 800A5FE4 000A2F24 7C 9F 23 78 */ mr r31, r4 +/* 800A5FE8 000A2F28 80 AD 95 5C */ lwz r5, __cpReg@sda21(r13) +/* 800A5FEC 000A2F2C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5FF0 000A2F30 A0 05 00 00 */ lhz r0, 0(r5) +/* 800A5FF4 000A2F34 90 03 00 0C */ stw r0, 0xc(r3) +/* 800A5FF8 000A2F38 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5FFC 000A2F3C 80 03 00 08 */ lwz r0, 8(r3) +/* 800A6000 000A2F40 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f +/* 800A6004 000A2F44 41 82 00 38 */ beq lbl_800A603C +/* 800A6008 000A2F48 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A600C 000A2F4C 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f +/* 800A6010 000A2F50 41 82 00 2C */ beq lbl_800A603C +/* 800A6014 000A2F54 80 6D 95 70 */ lwz r3, __GXCurrentThread@sda21(r13) +/* 800A6018 000A2F58 4B FE D7 F1 */ bl OSResumeThread +/* 800A601C 000A2F5C 38 00 00 00 */ li r0, 0 +/* 800A6020 000A2F60 90 0D 95 78 */ stw r0, GXOverflowSuspendInProgress@sda21(r13) +/* 800A6024 000A2F64 38 60 00 01 */ li r3, 1 +/* 800A6028 000A2F68 38 80 00 01 */ li r4, 1 +/* 800A602C 000A2F6C 48 00 07 11 */ bl __GXWriteFifoIntReset +/* 800A6030 000A2F70 38 60 00 01 */ li r3, 1 +/* 800A6034 000A2F74 38 80 00 00 */ li r4, 0 +/* 800A6038 000A2F78 48 00 06 B9 */ bl __GXWriteFifoIntEnable +lbl_800A603C: +/* 800A603C 000A2F7C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6040 000A2F80 80 03 00 08 */ lwz r0, 8(r3) +/* 800A6044 000A2F84 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f +/* 800A6048 000A2F88 41 82 00 44 */ beq lbl_800A608C +/* 800A604C 000A2F8C 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A6050 000A2F90 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 800A6054 000A2F94 41 82 00 38 */ beq lbl_800A608C +/* 800A6058 000A2F98 80 AD 95 80 */ lwz r5, __GXOverflowCount@sda21(r13) +/* 800A605C 000A2F9C 38 60 00 00 */ li r3, 0 +/* 800A6060 000A2FA0 38 80 00 01 */ li r4, 1 +/* 800A6064 000A2FA4 38 05 00 01 */ addi r0, r5, 1 +/* 800A6068 000A2FA8 90 0D 95 80 */ stw r0, __GXOverflowCount@sda21(r13) +/* 800A606C 000A2FAC 48 00 06 85 */ bl __GXWriteFifoIntEnable +/* 800A6070 000A2FB0 38 60 00 01 */ li r3, 1 +/* 800A6074 000A2FB4 38 80 00 00 */ li r4, 0 +/* 800A6078 000A2FB8 48 00 06 C5 */ bl __GXWriteFifoIntReset +/* 800A607C 000A2FBC 38 00 00 01 */ li r0, 1 +/* 800A6080 000A2FC0 80 6D 95 70 */ lwz r3, __GXCurrentThread@sda21(r13) +/* 800A6084 000A2FC4 90 0D 95 78 */ stw r0, GXOverflowSuspendInProgress@sda21(r13) +/* 800A6088 000A2FC8 4B FE DA 09 */ bl OSSuspendThread +lbl_800A608C: +/* 800A608C 000A2FCC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6090 000A2FD0 80 83 00 08 */ lwz r4, 8(r3) +/* 800A6094 000A2FD4 38 A3 00 08 */ addi r5, r3, 8 +/* 800A6098 000A2FD8 54 80 DF FF */ rlwinm. r0, r4, 0x1b, 0x1f, 0x1f +/* 800A609C 000A2FDC 41 82 00 60 */ beq lbl_800A60FC +/* 800A60A0 000A2FE0 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A60A4 000A2FE4 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f +/* 800A60A8 000A2FE8 41 82 00 54 */ beq lbl_800A60FC +/* 800A60AC 000A2FEC 54 80 06 F2 */ rlwinm r0, r4, 0, 0x1b, 0x19 +/* 800A60B0 000A2FF0 90 05 00 00 */ stw r0, 0(r5) +/* 800A60B4 000A2FF4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A60B8 000A2FF8 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A60BC 000A2FFC 80 04 00 08 */ lwz r0, 8(r4) +/* 800A60C0 000A3000 B0 03 00 02 */ sth r0, 2(r3) +/* 800A60C4 000A3004 80 0D 95 7C */ lwz r0, BreakPointCB@sda21(r13) +/* 800A60C8 000A3008 28 00 00 00 */ cmplwi r0, 0 +/* 800A60CC 000A300C 41 82 00 30 */ beq lbl_800A60FC +/* 800A60D0 000A3010 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A60D4 000A3014 4B FE 89 11 */ bl OSClearContext +/* 800A60D8 000A3018 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A60DC 000A301C 4B FE 87 41 */ bl OSSetCurrentContext +/* 800A60E0 000A3020 81 8D 95 7C */ lwz r12, BreakPointCB@sda21(r13) +/* 800A60E4 000A3024 7D 88 03 A6 */ mtlr r12 +/* 800A60E8 000A3028 4E 80 00 21 */ blrl +/* 800A60EC 000A302C 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A60F0 000A3030 4B FE 88 F5 */ bl OSClearContext +/* 800A60F4 000A3034 7F E3 FB 78 */ mr r3, r31 +/* 800A60F8 000A3038 4B FE 87 25 */ bl OSSetCurrentContext +lbl_800A60FC: +/* 800A60FC 000A303C 80 01 02 E4 */ lwz r0, 0x2e4(r1) +/* 800A6100 000A3040 83 E1 02 DC */ lwz r31, 0x2dc(r1) +/* 800A6104 000A3044 38 21 02 E0 */ addi r1, r1, 0x2e0 +/* 800A6108 000A3048 7C 08 03 A6 */ mtlr r0 +/* 800A610C 000A304C 4E 80 00 20 */ blr + +.global GXInitFifoBase +GXInitFifoBase: +/* 800A6110 000A3050 7C 08 02 A6 */ mflr r0 +/* 800A6114 000A3054 90 01 00 04 */ stw r0, 4(r1) +/* 800A6118 000A3058 38 05 FF FC */ addi r0, r5, -4 +/* 800A611C 000A305C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800A6120 000A3060 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800A6124 000A3064 3B E4 00 00 */ addi r31, r4, 0 +/* 800A6128 000A3068 7C 1F 02 14 */ add r0, r31, r0 +/* 800A612C 000A306C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 800A6130 000A3070 3B C3 00 00 */ addi r30, r3, 0 +/* 800A6134 000A3074 38 85 C0 00 */ addi r4, r5, -16384 +/* 800A6138 000A3078 93 E3 00 00 */ stw r31, 0(r3) +/* 800A613C 000A307C 90 03 00 04 */ stw r0, 4(r3) +/* 800A6140 000A3080 38 00 00 00 */ li r0, 0 +/* 800A6144 000A3084 90 A3 00 08 */ stw r5, 8(r3) +/* 800A6148 000A3088 54 A5 F8 74 */ rlwinm r5, r5, 0x1f, 1, 0x1a +/* 800A614C 000A308C 90 1E 00 1C */ stw r0, 0x1c(r30) +/* 800A6150 000A3090 48 00 00 9D */ bl GXInitFifoLimits +/* 800A6154 000A3094 38 7E 00 00 */ addi r3, r30, 0 +/* 800A6158 000A3098 38 9F 00 00 */ addi r4, r31, 0 +/* 800A615C 000A309C 38 BF 00 00 */ addi r5, r31, 0 +/* 800A6160 000A30A0 48 00 00 1D */ bl GXInitFifoPtrs +/* 800A6164 000A30A4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A6168 000A30A8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800A616C 000A30AC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 800A6170 000A30B0 38 21 00 20 */ addi r1, r1, 0x20 +/* 800A6174 000A30B4 7C 08 03 A6 */ mtlr r0 +/* 800A6178 000A30B8 4E 80 00 20 */ blr + +.global GXInitFifoPtrs +GXInitFifoPtrs: +/* 800A617C 000A30BC 7C 08 02 A6 */ mflr r0 +/* 800A6180 000A30C0 90 01 00 04 */ stw r0, 4(r1) +/* 800A6184 000A30C4 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800A6188 000A30C8 93 E1 00 24 */ stw r31, 0x24(r1) +/* 800A618C 000A30CC 3B E5 00 00 */ addi r31, r5, 0 +/* 800A6190 000A30D0 93 C1 00 20 */ stw r30, 0x20(r1) +/* 800A6194 000A30D4 3B C4 00 00 */ addi r30, r4, 0 +/* 800A6198 000A30D8 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 800A619C 000A30DC 3B A3 00 00 */ addi r29, r3, 0 +/* 800A61A0 000A30E0 4B FE A0 2D */ bl OSDisableInterrupts +/* 800A61A4 000A30E4 93 DD 00 14 */ stw r30, 0x14(r29) +/* 800A61A8 000A30E8 7C 1E F8 50 */ subf r0, r30, r31 +/* 800A61AC 000A30EC 93 FD 00 18 */ stw r31, 0x18(r29) +/* 800A61B0 000A30F0 90 1D 00 1C */ stw r0, 0x1c(r29) +/* 800A61B4 000A30F4 80 9D 00 1C */ lwz r4, 0x1c(r29) +/* 800A61B8 000A30F8 2C 04 00 00 */ cmpwi r4, 0 +/* 800A61BC 000A30FC 40 80 00 10 */ bge lbl_800A61CC +/* 800A61C0 000A3100 80 1D 00 08 */ lwz r0, 8(r29) +/* 800A61C4 000A3104 7C 04 02 14 */ add r0, r4, r0 +/* 800A61C8 000A3108 90 1D 00 1C */ stw r0, 0x1c(r29) +lbl_800A61CC: +/* 800A61CC 000A310C 4B FE A0 29 */ bl OSRestoreInterrupts +/* 800A61D0 000A3110 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 800A61D4 000A3114 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 800A61D8 000A3118 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 800A61DC 000A311C 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 800A61E0 000A3120 38 21 00 28 */ addi r1, r1, 0x28 +/* 800A61E4 000A3124 7C 08 03 A6 */ mtlr r0 +/* 800A61E8 000A3128 4E 80 00 20 */ blr + +.global GXInitFifoLimits +GXInitFifoLimits: +/* 800A61EC 000A312C 90 83 00 0C */ stw r4, 0xc(r3) +/* 800A61F0 000A3130 90 A3 00 10 */ stw r5, 0x10(r3) +/* 800A61F4 000A3134 4E 80 00 20 */ blr + +.global GXSetCPUFifo +GXSetCPUFifo: +/* 800A61F8 000A3138 7C 08 02 A6 */ mflr r0 +/* 800A61FC 000A313C 90 01 00 04 */ stw r0, 4(r1) +/* 800A6200 000A3140 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A6204 000A3144 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A6208 000A3148 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800A620C 000A314C 7C 7E 1B 78 */ mr r30, r3 +/* 800A6210 000A3150 4B FE 9F BD */ bl OSDisableInterrupts +/* 800A6214 000A3154 80 0D 95 6C */ lwz r0, GPFifo@sda21(r13) +/* 800A6218 000A3158 3B E3 00 00 */ addi r31, r3, 0 +/* 800A621C 000A315C 93 CD 95 68 */ stw r30, CPUFifo@sda21(r13) +/* 800A6220 000A3160 7C 1E 00 40 */ cmplw r30, r0 +/* 800A6224 000A3164 40 82 00 64 */ bne lbl_800A6288 +/* 800A6228 000A3168 80 BE 00 00 */ lwz r5, 0(r30) +/* 800A622C 000A316C 38 00 00 01 */ li r0, 1 +/* 800A6230 000A3170 80 8D 95 58 */ lwz r4, __piReg@sda21(r13) +/* 800A6234 000A3174 38 60 00 01 */ li r3, 1 +/* 800A6238 000A3178 54 A5 00 BE */ clrlwi r5, r5, 2 +/* 800A623C 000A317C 90 A4 00 0C */ stw r5, 0xc(r4) +/* 800A6240 000A3180 38 80 00 01 */ li r4, 1 +/* 800A6244 000A3184 80 DE 00 04 */ lwz r6, 4(r30) +/* 800A6248 000A3188 80 AD 95 58 */ lwz r5, __piReg@sda21(r13) +/* 800A624C 000A318C 54 C6 00 BE */ clrlwi r6, r6, 2 +/* 800A6250 000A3190 90 C5 00 10 */ stw r6, 0x10(r5) +/* 800A6254 000A3194 80 DE 00 18 */ lwz r6, 0x18(r30) +/* 800A6258 000A3198 80 AD 95 58 */ lwz r5, __piReg@sda21(r13) +/* 800A625C 000A319C 54 C6 00 B4 */ rlwinm r6, r6, 0, 2, 0x1a +/* 800A6260 000A31A0 54 C6 01 88 */ rlwinm r6, r6, 0, 6, 4 +/* 800A6264 000A31A4 90 C5 00 14 */ stw r6, 0x14(r5) +/* 800A6268 000A31A8 98 0D 95 74 */ stb r0, CPGPLinked@sda21(r13) +/* 800A626C 000A31AC 48 00 04 D1 */ bl __GXWriteFifoIntReset +/* 800A6270 000A31B0 38 60 00 01 */ li r3, 1 +/* 800A6274 000A31B4 38 80 00 00 */ li r4, 0 +/* 800A6278 000A31B8 48 00 04 79 */ bl __GXWriteFifoIntEnable +/* 800A627C 000A31BC 38 60 00 01 */ li r3, 1 +/* 800A6280 000A31C0 48 00 04 2D */ bl __GXFifoLink +/* 800A6284 000A31C4 48 00 00 60 */ b lbl_800A62E4 +lbl_800A6288: +/* 800A6288 000A31C8 88 0D 95 74 */ lbz r0, CPGPLinked@sda21(r13) +/* 800A628C 000A31CC 28 00 00 00 */ cmplwi r0, 0 +/* 800A6290 000A31D0 41 82 00 14 */ beq lbl_800A62A4 +/* 800A6294 000A31D4 38 60 00 00 */ li r3, 0 +/* 800A6298 000A31D8 48 00 04 15 */ bl __GXFifoLink +/* 800A629C 000A31DC 38 00 00 00 */ li r0, 0 +/* 800A62A0 000A31E0 98 0D 95 74 */ stb r0, CPGPLinked@sda21(r13) +lbl_800A62A4: +/* 800A62A4 000A31E4 38 60 00 00 */ li r3, 0 +/* 800A62A8 000A31E8 38 80 00 00 */ li r4, 0 +/* 800A62AC 000A31EC 48 00 04 45 */ bl __GXWriteFifoIntEnable +/* 800A62B0 000A31F0 80 1E 00 00 */ lwz r0, 0(r30) +/* 800A62B4 000A31F4 80 6D 95 58 */ lwz r3, __piReg@sda21(r13) +/* 800A62B8 000A31F8 54 00 00 BE */ clrlwi r0, r0, 2 +/* 800A62BC 000A31FC 90 03 00 0C */ stw r0, 0xc(r3) +/* 800A62C0 000A3200 80 1E 00 04 */ lwz r0, 4(r30) +/* 800A62C4 000A3204 80 6D 95 58 */ lwz r3, __piReg@sda21(r13) +/* 800A62C8 000A3208 54 00 00 BE */ clrlwi r0, r0, 2 +/* 800A62CC 000A320C 90 03 00 10 */ stw r0, 0x10(r3) +/* 800A62D0 000A3210 80 1E 00 18 */ lwz r0, 0x18(r30) +/* 800A62D4 000A3214 80 6D 95 58 */ lwz r3, __piReg@sda21(r13) +/* 800A62D8 000A3218 54 00 00 B4 */ rlwinm r0, r0, 0, 2, 0x1a +/* 800A62DC 000A321C 54 00 01 88 */ rlwinm r0, r0, 0, 6, 4 +/* 800A62E0 000A3220 90 03 00 14 */ stw r0, 0x14(r3) +lbl_800A62E4: +/* 800A62E4 000A3224 7C 00 04 AC */ sync 0 +/* 800A62E8 000A3228 7F E3 FB 78 */ mr r3, r31 +/* 800A62EC 000A322C 4B FE 9F 09 */ bl OSRestoreInterrupts +/* 800A62F0 000A3230 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A62F4 000A3234 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A62F8 000A3238 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800A62FC 000A323C 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A6300 000A3240 7C 08 03 A6 */ mtlr r0 +/* 800A6304 000A3244 4E 80 00 20 */ blr + +.global GXSetGPFifo +GXSetGPFifo: +/* 800A6308 000A3248 7C 08 02 A6 */ mflr r0 +/* 800A630C 000A324C 90 01 00 04 */ stw r0, 4(r1) +/* 800A6310 000A3250 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A6314 000A3254 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A6318 000A3258 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800A631C 000A325C 7C 7E 1B 78 */ mr r30, r3 +/* 800A6320 000A3260 4B FE 9E AD */ bl OSDisableInterrupts +/* 800A6324 000A3264 7C 7F 1B 78 */ mr r31, r3 +/* 800A6328 000A3268 48 00 03 61 */ bl __GXFifoReadDisable +/* 800A632C 000A326C 38 60 00 00 */ li r3, 0 +/* 800A6330 000A3270 38 80 00 00 */ li r4, 0 +/* 800A6334 000A3274 48 00 03 BD */ bl __GXWriteFifoIntEnable +/* 800A6338 000A3278 93 CD 95 6C */ stw r30, GPFifo@sda21(r13) +/* 800A633C 000A327C 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6340 000A3280 80 1E 00 00 */ lwz r0, 0(r30) +/* 800A6344 000A3284 B0 03 00 20 */ sth r0, 0x20(r3) +/* 800A6348 000A3288 80 1E 00 04 */ lwz r0, 4(r30) +/* 800A634C 000A328C 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6350 000A3290 B0 03 00 24 */ sth r0, 0x24(r3) +/* 800A6354 000A3294 80 1E 00 1C */ lwz r0, 0x1c(r30) +/* 800A6358 000A3298 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A635C 000A329C B0 03 00 30 */ sth r0, 0x30(r3) +/* 800A6360 000A32A0 80 1E 00 18 */ lwz r0, 0x18(r30) +/* 800A6364 000A32A4 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6368 000A32A8 B0 03 00 34 */ sth r0, 0x34(r3) +/* 800A636C 000A32AC 80 1E 00 14 */ lwz r0, 0x14(r30) +/* 800A6370 000A32B0 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6374 000A32B4 B0 03 00 38 */ sth r0, 0x38(r3) +/* 800A6378 000A32B8 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 800A637C 000A32BC 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6380 000A32C0 B0 03 00 28 */ sth r0, 0x28(r3) +/* 800A6384 000A32C4 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 800A6388 000A32C8 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A638C 000A32CC B0 03 00 2C */ sth r0, 0x2c(r3) +/* 800A6390 000A32D0 80 1E 00 00 */ lwz r0, 0(r30) +/* 800A6394 000A32D4 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6398 000A32D8 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f +/* 800A639C 000A32DC B0 03 00 22 */ sth r0, 0x22(r3) +/* 800A63A0 000A32E0 80 1E 00 04 */ lwz r0, 4(r30) +/* 800A63A4 000A32E4 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A63A8 000A32E8 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f +/* 800A63AC 000A32EC B0 03 00 26 */ sth r0, 0x26(r3) +/* 800A63B0 000A32F0 80 1E 00 1C */ lwz r0, 0x1c(r30) +/* 800A63B4 000A32F4 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A63B8 000A32F8 7C 00 86 70 */ srawi r0, r0, 0x10 +/* 800A63BC 000A32FC B0 03 00 32 */ sth r0, 0x32(r3) +/* 800A63C0 000A3300 80 1E 00 18 */ lwz r0, 0x18(r30) +/* 800A63C4 000A3304 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A63C8 000A3308 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f +/* 800A63CC 000A330C B0 03 00 36 */ sth r0, 0x36(r3) +/* 800A63D0 000A3310 80 1E 00 14 */ lwz r0, 0x14(r30) +/* 800A63D4 000A3314 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A63D8 000A3318 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f +/* 800A63DC 000A331C B0 03 00 3A */ sth r0, 0x3a(r3) +/* 800A63E0 000A3320 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 800A63E4 000A3324 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A63E8 000A3328 54 00 84 3E */ srwi r0, r0, 0x10 +/* 800A63EC 000A332C B0 03 00 2A */ sth r0, 0x2a(r3) +/* 800A63F0 000A3330 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 800A63F4 000A3334 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A63F8 000A3338 54 00 84 3E */ srwi r0, r0, 0x10 +/* 800A63FC 000A333C B0 03 00 2E */ sth r0, 0x2e(r3) +/* 800A6400 000A3340 7C 00 04 AC */ sync 0 +/* 800A6404 000A3344 80 6D 95 68 */ lwz r3, CPUFifo@sda21(r13) +/* 800A6408 000A3348 80 0D 95 6C */ lwz r0, GPFifo@sda21(r13) +/* 800A640C 000A334C 7C 03 00 40 */ cmplw r3, r0 +/* 800A6410 000A3350 40 82 00 24 */ bne lbl_800A6434 +/* 800A6414 000A3354 38 00 00 01 */ li r0, 1 +/* 800A6418 000A3358 98 0D 95 74 */ stb r0, CPGPLinked@sda21(r13) +/* 800A641C 000A335C 38 60 00 01 */ li r3, 1 +/* 800A6420 000A3360 38 80 00 00 */ li r4, 0 +/* 800A6424 000A3364 48 00 02 CD */ bl __GXWriteFifoIntEnable +/* 800A6428 000A3368 38 60 00 01 */ li r3, 1 +/* 800A642C 000A336C 48 00 02 81 */ bl __GXFifoLink +/* 800A6430 000A3370 48 00 00 20 */ b lbl_800A6450 +lbl_800A6434: +/* 800A6434 000A3374 38 00 00 00 */ li r0, 0 +/* 800A6438 000A3378 98 0D 95 74 */ stb r0, CPGPLinked@sda21(r13) +/* 800A643C 000A337C 38 60 00 00 */ li r3, 0 +/* 800A6440 000A3380 38 80 00 00 */ li r4, 0 +/* 800A6444 000A3384 48 00 02 AD */ bl __GXWriteFifoIntEnable +/* 800A6448 000A3388 38 60 00 00 */ li r3, 0 +/* 800A644C 000A338C 48 00 02 61 */ bl __GXFifoLink +lbl_800A6450: +/* 800A6450 000A3390 38 60 00 01 */ li r3, 1 +/* 800A6454 000A3394 38 80 00 01 */ li r4, 1 +/* 800A6458 000A3398 48 00 02 E5 */ bl __GXWriteFifoIntReset +/* 800A645C 000A339C 48 00 02 05 */ bl __GXFifoReadEnable +/* 800A6460 000A33A0 7F E3 FB 78 */ mr r3, r31 +/* 800A6464 000A33A4 4B FE 9D 91 */ bl OSRestoreInterrupts +/* 800A6468 000A33A8 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A646C 000A33AC 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A6470 000A33B0 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800A6474 000A33B4 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A6478 000A33B8 7C 08 03 A6 */ mtlr r0 +/* 800A647C 000A33BC 4E 80 00 20 */ blr + +.global GXGetFifoPtrs +GXGetFifoPtrs: +/* 800A6480 000A33C0 80 0D 95 68 */ lwz r0, CPUFifo@sda21(r13) +/* 800A6484 000A33C4 7C 03 00 40 */ cmplw r3, r0 +/* 800A6488 000A33C8 40 82 00 18 */ bne lbl_800A64A0 +/* 800A648C 000A33CC 80 CD 95 58 */ lwz r6, __piReg@sda21(r13) +/* 800A6490 000A33D0 80 06 00 14 */ lwz r0, 0x14(r6) +/* 800A6494 000A33D4 54 06 01 88 */ rlwinm r6, r0, 0, 6, 4 +/* 800A6498 000A33D8 3C 06 80 00 */ addis r0, r6, 0x8000 +/* 800A649C 000A33DC 90 03 00 18 */ stw r0, 0x18(r3) +lbl_800A64A0: +/* 800A64A0 000A33E0 80 0D 95 6C */ lwz r0, GPFifo@sda21(r13) +/* 800A64A4 000A33E4 7C 03 00 40 */ cmplw r3, r0 +/* 800A64A8 000A33E8 40 82 00 34 */ bne lbl_800A64DC +/* 800A64AC 000A33EC 80 ED 95 5C */ lwz r7, __cpReg@sda21(r13) +/* 800A64B0 000A33F0 A0 C7 00 3A */ lhz r6, 0x3a(r7) +/* 800A64B4 000A33F4 A0 E7 00 38 */ lhz r7, 0x38(r7) +/* 800A64B8 000A33F8 50 C7 80 1E */ rlwimi r7, r6, 0x10, 0, 0xf +/* 800A64BC 000A33FC 3C 07 80 00 */ addis r0, r7, 0x8000 +/* 800A64C0 000A3400 90 03 00 14 */ stw r0, 0x14(r3) +/* 800A64C4 000A3404 80 ED 95 5C */ lwz r7, __cpReg@sda21(r13) +/* 800A64C8 000A3408 A0 C7 00 32 */ lhz r6, 0x32(r7) +/* 800A64CC 000A340C A0 07 00 30 */ lhz r0, 0x30(r7) +/* 800A64D0 000A3410 50 C0 80 1E */ rlwimi r0, r6, 0x10, 0, 0xf +/* 800A64D4 000A3414 90 03 00 1C */ stw r0, 0x1c(r3) +/* 800A64D8 000A3418 48 00 00 2C */ b lbl_800A6504 +lbl_800A64DC: +/* 800A64DC 000A341C 80 C3 00 14 */ lwz r6, 0x14(r3) +/* 800A64E0 000A3420 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A64E4 000A3424 7C 06 00 50 */ subf r0, r6, r0 +/* 800A64E8 000A3428 90 03 00 1C */ stw r0, 0x1c(r3) +/* 800A64EC 000A342C 80 C3 00 1C */ lwz r6, 0x1c(r3) +/* 800A64F0 000A3430 2C 06 00 00 */ cmpwi r6, 0 +/* 800A64F4 000A3434 40 80 00 10 */ bge lbl_800A6504 +/* 800A64F8 000A3438 80 03 00 08 */ lwz r0, 8(r3) +/* 800A64FC 000A343C 7C 06 02 14 */ add r0, r6, r0 +/* 800A6500 000A3440 90 03 00 1C */ stw r0, 0x1c(r3) +lbl_800A6504: +/* 800A6504 000A3444 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800A6508 000A3448 90 04 00 00 */ stw r0, 0(r4) +/* 800A650C 000A344C 80 03 00 18 */ lwz r0, 0x18(r3) +/* 800A6510 000A3450 90 05 00 00 */ stw r0, 0(r5) +/* 800A6514 000A3454 4E 80 00 20 */ blr + +.global GXEnableBreakPt +GXEnableBreakPt: +/* 800A6518 000A3458 7C 08 02 A6 */ mflr r0 +/* 800A651C 000A345C 90 01 00 04 */ stw r0, 4(r1) +/* 800A6520 000A3460 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A6524 000A3464 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A6528 000A3468 7C 7F 1B 78 */ mr r31, r3 +/* 800A652C 000A346C 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800A6530 000A3470 4B FE 9C 9D */ bl OSDisableInterrupts +/* 800A6534 000A3474 7C 7E 1B 78 */ mr r30, r3 +/* 800A6538 000A3478 48 00 01 51 */ bl __GXFifoReadDisable +/* 800A653C 000A347C 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6540 000A3480 57 E0 84 BE */ rlwinm r0, r31, 0x10, 0x12, 0x1f +/* 800A6544 000A3484 B3 E3 00 3C */ sth r31, 0x3c(r3) +/* 800A6548 000A3488 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A654C 000A348C B0 03 00 3E */ sth r0, 0x3e(r3) +/* 800A6550 000A3490 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6554 000A3494 84 03 00 08 */ lwzu r0, 8(r3) +/* 800A6558 000A3498 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 800A655C 000A349C 60 00 00 02 */ ori r0, r0, 2 +/* 800A6560 000A34A0 90 03 00 00 */ stw r0, 0(r3) +/* 800A6564 000A34A4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6568 000A34A8 84 03 00 08 */ lwzu r0, 8(r3) +/* 800A656C 000A34AC 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19 +/* 800A6570 000A34B0 60 00 00 20 */ ori r0, r0, 0x20 +/* 800A6574 000A34B4 90 03 00 00 */ stw r0, 0(r3) +/* 800A6578 000A34B8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A657C 000A34BC 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6580 000A34C0 80 04 00 08 */ lwz r0, 8(r4) +/* 800A6584 000A34C4 B0 03 00 02 */ sth r0, 2(r3) +/* 800A6588 000A34C8 93 ED 95 84 */ stw r31, __GXCurrentBP@sda21(r13) +/* 800A658C 000A34CC 48 00 00 D5 */ bl __GXFifoReadEnable +/* 800A6590 000A34D0 7F C3 F3 78 */ mr r3, r30 +/* 800A6594 000A34D4 4B FE 9C 61 */ bl OSRestoreInterrupts +/* 800A6598 000A34D8 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A659C 000A34DC 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A65A0 000A34E0 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800A65A4 000A34E4 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A65A8 000A34E8 7C 08 03 A6 */ mtlr r0 +/* 800A65AC 000A34EC 4E 80 00 20 */ blr + +.global GXDisableBreakPt +GXDisableBreakPt: +/* 800A65B0 000A34F0 7C 08 02 A6 */ mflr r0 +/* 800A65B4 000A34F4 90 01 00 04 */ stw r0, 4(r1) +/* 800A65B8 000A34F8 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A65BC 000A34FC 4B FE 9C 11 */ bl OSDisableInterrupts +/* 800A65C0 000A3500 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A65C4 000A3504 38 00 00 00 */ li r0, 0 +/* 800A65C8 000A3508 38 A4 00 08 */ addi r5, r4, 8 +/* 800A65CC 000A350C 80 84 00 08 */ lwz r4, 8(r4) +/* 800A65D0 000A3510 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d +/* 800A65D4 000A3514 90 85 00 00 */ stw r4, 0(r5) +/* 800A65D8 000A3518 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A65DC 000A351C 38 A4 00 08 */ addi r5, r4, 8 +/* 800A65E0 000A3520 80 84 00 08 */ lwz r4, 8(r4) +/* 800A65E4 000A3524 54 84 06 F2 */ rlwinm r4, r4, 0, 0x1b, 0x19 +/* 800A65E8 000A3528 90 85 00 00 */ stw r4, 0(r5) +/* 800A65EC 000A352C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A65F0 000A3530 80 8D 95 5C */ lwz r4, __cpReg@sda21(r13) +/* 800A65F4 000A3534 80 A5 00 08 */ lwz r5, 8(r5) +/* 800A65F8 000A3538 B0 A4 00 02 */ sth r5, 2(r4) +/* 800A65FC 000A353C 90 0D 95 84 */ stw r0, __GXCurrentBP@sda21(r13) +/* 800A6600 000A3540 4B FE 9B F5 */ bl OSRestoreInterrupts +/* 800A6604 000A3544 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A6608 000A3548 38 21 00 08 */ addi r1, r1, 8 +/* 800A660C 000A354C 7C 08 03 A6 */ mtlr r0 +/* 800A6610 000A3550 4E 80 00 20 */ blr + +.global __GXFifoInit +__GXFifoInit: +/* 800A6614 000A3554 7C 08 02 A6 */ mflr r0 +/* 800A6618 000A3558 3C 60 80 0A */ lis r3, GXCPInterruptHandler@ha +/* 800A661C 000A355C 90 01 00 04 */ stw r0, 4(r1) +/* 800A6620 000A3560 38 83 5F D4 */ addi r4, r3, GXCPInterruptHandler@l +/* 800A6624 000A3564 38 60 00 11 */ li r3, 0x11 +/* 800A6628 000A3568 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A662C 000A356C 4B FE 9B ED */ bl __OSSetInterruptHandler +/* 800A6630 000A3570 38 60 40 00 */ li r3, 0x4000 +/* 800A6634 000A3574 4B FE 9F E9 */ bl __OSUnmaskInterrupts +/* 800A6638 000A3578 4B FE C6 51 */ bl OSGetCurrentThread +/* 800A663C 000A357C 38 00 00 00 */ li r0, 0 +/* 800A6640 000A3580 90 6D 95 70 */ stw r3, __GXCurrentThread@sda21(r13) +/* 800A6644 000A3584 90 0D 95 78 */ stw r0, GXOverflowSuspendInProgress@sda21(r13) +/* 800A6648 000A3588 90 0D 95 68 */ stw r0, CPUFifo@sda21(r13) +/* 800A664C 000A358C 90 0D 95 6C */ stw r0, GPFifo@sda21(r13) +/* 800A6650 000A3590 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A6654 000A3594 38 21 00 08 */ addi r1, r1, 8 +/* 800A6658 000A3598 7C 08 03 A6 */ mtlr r0 +/* 800A665C 000A359C 4E 80 00 20 */ blr + +.global __GXFifoReadEnable +__GXFifoReadEnable: +/* 800A6660 000A35A0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6664 000A35A4 84 03 00 08 */ lwzu r0, 8(r3) +/* 800A6668 000A35A8 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A666C 000A35AC 60 00 00 01 */ ori r0, r0, 1 +/* 800A6670 000A35B0 90 03 00 00 */ stw r0, 0(r3) +/* 800A6674 000A35B4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A6678 000A35B8 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A667C 000A35BC 80 04 00 08 */ lwz r0, 8(r4) +/* 800A6680 000A35C0 B0 03 00 02 */ sth r0, 2(r3) +/* 800A6684 000A35C4 4E 80 00 20 */ blr + +.global __GXFifoReadDisable +__GXFifoReadDisable: +/* 800A6688 000A35C8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A668C 000A35CC 84 03 00 08 */ lwzu r0, 8(r3) +/* 800A6690 000A35D0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A6694 000A35D4 90 03 00 00 */ stw r0, 0(r3) +/* 800A6698 000A35D8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A669C 000A35DC 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A66A0 000A35E0 80 04 00 08 */ lwz r0, 8(r4) +/* 800A66A4 000A35E4 B0 03 00 02 */ sth r0, 2(r3) +/* 800A66A8 000A35E8 4E 80 00 20 */ blr + +.global __GXFifoLink +__GXFifoLink: +/* 800A66AC 000A35EC 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 800A66B0 000A35F0 41 82 00 0C */ beq lbl_800A66BC +/* 800A66B4 000A35F4 38 00 00 01 */ li r0, 1 +/* 800A66B8 000A35F8 48 00 00 08 */ b lbl_800A66C0 +lbl_800A66BC: +/* 800A66BC 000A35FC 38 00 00 00 */ li r0, 0 +lbl_800A66C0: +/* 800A66C0 000A3600 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A66C4 000A3604 54 00 20 36 */ slwi r0, r0, 4 +/* 800A66C8 000A3608 38 83 00 08 */ addi r4, r3, 8 +/* 800A66CC 000A360C 80 63 00 08 */ lwz r3, 8(r3) +/* 800A66D0 000A3610 54 63 07 34 */ rlwinm r3, r3, 0, 0x1c, 0x1a +/* 800A66D4 000A3614 7C 60 03 78 */ or r0, r3, r0 +/* 800A66D8 000A3618 90 04 00 00 */ stw r0, 0(r4) +/* 800A66DC 000A361C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A66E0 000A3620 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A66E4 000A3624 80 04 00 08 */ lwz r0, 8(r4) +/* 800A66E8 000A3628 B0 03 00 02 */ sth r0, 2(r3) +/* 800A66EC 000A362C 4E 80 00 20 */ blr + +.global __GXWriteFifoIntEnable +__GXWriteFifoIntEnable: +/* 800A66F0 000A3630 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A66F4 000A3634 54 63 15 BA */ rlwinm r3, r3, 2, 0x16, 0x1d +/* 800A66F8 000A3638 54 80 1D 78 */ rlwinm r0, r4, 3, 0x15, 0x1c +/* 800A66FC 000A363C 38 C5 00 08 */ addi r6, r5, 8 +/* 800A6700 000A3640 80 A5 00 08 */ lwz r5, 8(r5) +/* 800A6704 000A3644 54 A4 07 B8 */ rlwinm r4, r5, 0, 0x1e, 0x1c +/* 800A6708 000A3648 7C 83 1B 78 */ or r3, r4, r3 +/* 800A670C 000A364C 90 66 00 00 */ stw r3, 0(r6) +/* 800A6710 000A3650 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6714 000A3654 38 83 00 08 */ addi r4, r3, 8 +/* 800A6718 000A3658 80 63 00 08 */ lwz r3, 8(r3) +/* 800A671C 000A365C 54 63 07 76 */ rlwinm r3, r3, 0, 0x1d, 0x1b +/* 800A6720 000A3660 7C 60 03 78 */ or r0, r3, r0 +/* 800A6724 000A3664 90 04 00 00 */ stw r0, 0(r4) +/* 800A6728 000A3668 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A672C 000A366C 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A6730 000A3670 80 04 00 08 */ lwz r0, 8(r4) +/* 800A6734 000A3674 B0 03 00 02 */ sth r0, 2(r3) +/* 800A6738 000A3678 4E 80 00 20 */ blr + +.global __GXWriteFifoIntReset +__GXWriteFifoIntReset: +/* 800A673C 000A367C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A6740 000A3680 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 800A6744 000A3684 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e +/* 800A6748 000A3688 38 C5 00 10 */ addi r6, r5, 0x10 +/* 800A674C 000A368C 80 A5 00 10 */ lwz r5, 0x10(r5) +/* 800A6750 000A3690 54 A4 00 3C */ rlwinm r4, r5, 0, 0, 0x1e +/* 800A6754 000A3694 7C 83 1B 78 */ or r3, r4, r3 +/* 800A6758 000A3698 90 66 00 00 */ stw r3, 0(r6) +/* 800A675C 000A369C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A6760 000A36A0 38 83 00 10 */ addi r4, r3, 0x10 +/* 800A6764 000A36A4 80 63 00 10 */ lwz r3, 0x10(r3) +/* 800A6768 000A36A8 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d +/* 800A676C 000A36AC 7C 60 03 78 */ or r0, r3, r0 +/* 800A6770 000A36B0 90 04 00 00 */ stw r0, 0(r4) +/* 800A6774 000A36B4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A6778 000A36B8 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800A677C 000A36BC 80 04 00 10 */ lwz r0, 0x10(r4) +/* 800A6780 000A36C0 B0 03 00 04 */ sth r0, 4(r3) +/* 800A6784 000A36C4 4E 80 00 20 */ blr + +.global GXGetCPUFifo +GXGetCPUFifo: +/* 800A6788 000A36C8 80 6D 95 68 */ lwz r3, CPUFifo@sda21(r13) +/* 800A678C 000A36CC 4E 80 00 20 */ blr + +.section .sbss, "wa" # 0x804097C0 - 0x8040B45C +CPUFifo: + .skip 0x4 +GPFifo: + .skip 0x4 +__GXCurrentThread: + .skip 0x4 +CPGPLinked: + .skip 0x4 +GXOverflowSuspendInProgress: + .skip 0x4 +BreakPointCB: + .skip 0x4 +__GXOverflowCount: + .skip 0x4 +__GXCurrentBP: + .skip 0x4 diff --git a/asm/Dolphin/gx/GXFrameBuf.s b/asm/Dolphin/gx/GXFrameBuf.s new file mode 100644 index 0000000..55751bd --- /dev/null +++ b/asm/Dolphin/gx/GXFrameBuf.s @@ -0,0 +1,1044 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXSetDispCopySrc +GXSetDispCopySrc: +/* 800A8BE8 000A5B28 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A8BEC 000A5B2C 39 00 00 00 */ li r8, 0 +/* 800A8BF0 000A5B30 54 84 51 AA */ rlwinm r4, r4, 0xa, 6, 0x15 +/* 800A8BF4 000A5B34 91 07 01 E0 */ stw r8, 0x1e0(r7) +/* 800A8BF8 000A5B38 54 A7 04 3E */ clrlwi r7, r5, 0x10 +/* 800A8BFC 000A5B3C 54 C5 04 3E */ clrlwi r5, r6, 0x10 +/* 800A8C00 000A5B40 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A8C04 000A5B44 38 05 FF FF */ addi r0, r5, -1 +/* 800A8C08 000A5B48 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 800A8C0C 000A5B4C 39 26 01 E0 */ addi r9, r6, 0x1e0 +/* 800A8C10 000A5B50 80 C6 01 E0 */ lwz r6, 0x1e0(r6) +/* 800A8C14 000A5B54 38 67 FF FF */ addi r3, r7, -1 +/* 800A8C18 000A5B58 54 C6 00 2A */ rlwinm r6, r6, 0, 0, 0x15 +/* 800A8C1C 000A5B5C 7C C5 2B 78 */ or r5, r6, r5 +/* 800A8C20 000A5B60 90 A9 00 00 */ stw r5, 0(r9) +/* 800A8C24 000A5B64 54 00 50 2A */ slwi r0, r0, 0xa +/* 800A8C28 000A5B68 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A8C2C 000A5B6C 38 C5 01 E0 */ addi r6, r5, 0x1e0 +/* 800A8C30 000A5B70 80 A5 01 E0 */ lwz r5, 0x1e0(r5) +/* 800A8C34 000A5B74 54 A5 05 96 */ rlwinm r5, r5, 0, 0x16, 0xb +/* 800A8C38 000A5B78 7C A4 23 78 */ or r4, r5, r4 +/* 800A8C3C 000A5B7C 90 86 00 00 */ stw r4, 0(r6) +/* 800A8C40 000A5B80 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8C44 000A5B84 38 A4 01 E0 */ addi r5, r4, 0x1e0 +/* 800A8C48 000A5B88 80 84 01 E0 */ lwz r4, 0x1e0(r4) +/* 800A8C4C 000A5B8C 54 84 02 3E */ clrlwi r4, r4, 8 +/* 800A8C50 000A5B90 64 84 49 00 */ oris r4, r4, 0x4900 +/* 800A8C54 000A5B94 90 85 00 00 */ stw r4, 0(r5) +/* 800A8C58 000A5B98 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8C5C 000A5B9C 91 04 01 E4 */ stw r8, 0x1e4(r4) +/* 800A8C60 000A5BA0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8C64 000A5BA4 38 A4 01 E4 */ addi r5, r4, 0x1e4 +/* 800A8C68 000A5BA8 80 84 01 E4 */ lwz r4, 0x1e4(r4) +/* 800A8C6C 000A5BAC 54 84 00 2A */ rlwinm r4, r4, 0, 0, 0x15 +/* 800A8C70 000A5BB0 7C 83 1B 78 */ or r3, r4, r3 +/* 800A8C74 000A5BB4 90 65 00 00 */ stw r3, 0(r5) +/* 800A8C78 000A5BB8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8C7C 000A5BBC 38 83 01 E4 */ addi r4, r3, 0x1e4 +/* 800A8C80 000A5BC0 80 63 01 E4 */ lwz r3, 0x1e4(r3) +/* 800A8C84 000A5BC4 54 63 05 96 */ rlwinm r3, r3, 0, 0x16, 0xb +/* 800A8C88 000A5BC8 7C 60 03 78 */ or r0, r3, r0 +/* 800A8C8C 000A5BCC 90 04 00 00 */ stw r0, 0(r4) +/* 800A8C90 000A5BD0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8C94 000A5BD4 84 03 01 E4 */ lwzu r0, 0x1e4(r3) +/* 800A8C98 000A5BD8 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A8C9C 000A5BDC 64 00 4A 00 */ oris r0, r0, 0x4a00 +/* 800A8CA0 000A5BE0 90 03 00 00 */ stw r0, 0(r3) +/* 800A8CA4 000A5BE4 4E 80 00 20 */ blr + +.global GXSetTexCopySrc +GXSetTexCopySrc: +/* 800A8CA8 000A5BE8 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A8CAC 000A5BEC 39 00 00 00 */ li r8, 0 +/* 800A8CB0 000A5BF0 54 84 51 AA */ rlwinm r4, r4, 0xa, 6, 0x15 +/* 800A8CB4 000A5BF4 91 07 01 F0 */ stw r8, 0x1f0(r7) +/* 800A8CB8 000A5BF8 54 A7 04 3E */ clrlwi r7, r5, 0x10 +/* 800A8CBC 000A5BFC 54 C5 04 3E */ clrlwi r5, r6, 0x10 +/* 800A8CC0 000A5C00 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A8CC4 000A5C04 38 05 FF FF */ addi r0, r5, -1 +/* 800A8CC8 000A5C08 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 800A8CCC 000A5C0C 39 26 01 F0 */ addi r9, r6, 0x1f0 +/* 800A8CD0 000A5C10 80 C6 01 F0 */ lwz r6, 0x1f0(r6) +/* 800A8CD4 000A5C14 38 67 FF FF */ addi r3, r7, -1 +/* 800A8CD8 000A5C18 54 C6 00 2A */ rlwinm r6, r6, 0, 0, 0x15 +/* 800A8CDC 000A5C1C 7C C5 2B 78 */ or r5, r6, r5 +/* 800A8CE0 000A5C20 90 A9 00 00 */ stw r5, 0(r9) +/* 800A8CE4 000A5C24 54 00 50 2A */ slwi r0, r0, 0xa +/* 800A8CE8 000A5C28 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A8CEC 000A5C2C 38 C5 01 F0 */ addi r6, r5, 0x1f0 +/* 800A8CF0 000A5C30 80 A5 01 F0 */ lwz r5, 0x1f0(r5) +/* 800A8CF4 000A5C34 54 A5 05 96 */ rlwinm r5, r5, 0, 0x16, 0xb +/* 800A8CF8 000A5C38 7C A4 23 78 */ or r4, r5, r4 +/* 800A8CFC 000A5C3C 90 86 00 00 */ stw r4, 0(r6) +/* 800A8D00 000A5C40 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8D04 000A5C44 38 A4 01 F0 */ addi r5, r4, 0x1f0 +/* 800A8D08 000A5C48 80 84 01 F0 */ lwz r4, 0x1f0(r4) +/* 800A8D0C 000A5C4C 54 84 02 3E */ clrlwi r4, r4, 8 +/* 800A8D10 000A5C50 64 84 49 00 */ oris r4, r4, 0x4900 +/* 800A8D14 000A5C54 90 85 00 00 */ stw r4, 0(r5) +/* 800A8D18 000A5C58 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8D1C 000A5C5C 91 04 01 F4 */ stw r8, 0x1f4(r4) +/* 800A8D20 000A5C60 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8D24 000A5C64 38 A4 01 F4 */ addi r5, r4, 0x1f4 +/* 800A8D28 000A5C68 80 84 01 F4 */ lwz r4, 0x1f4(r4) +/* 800A8D2C 000A5C6C 54 84 00 2A */ rlwinm r4, r4, 0, 0, 0x15 +/* 800A8D30 000A5C70 7C 83 1B 78 */ or r3, r4, r3 +/* 800A8D34 000A5C74 90 65 00 00 */ stw r3, 0(r5) +/* 800A8D38 000A5C78 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8D3C 000A5C7C 38 83 01 F4 */ addi r4, r3, 0x1f4 +/* 800A8D40 000A5C80 80 63 01 F4 */ lwz r3, 0x1f4(r3) +/* 800A8D44 000A5C84 54 63 05 96 */ rlwinm r3, r3, 0, 0x16, 0xb +/* 800A8D48 000A5C88 7C 60 03 78 */ or r0, r3, r0 +/* 800A8D4C 000A5C8C 90 04 00 00 */ stw r0, 0(r4) +/* 800A8D50 000A5C90 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8D54 000A5C94 84 03 01 F4 */ lwzu r0, 0x1f4(r3) +/* 800A8D58 000A5C98 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A8D5C 000A5C9C 64 00 4A 00 */ oris r0, r0, 0x4a00 +/* 800A8D60 000A5CA0 90 03 00 00 */ stw r0, 0(r3) +/* 800A8D64 000A5CA4 4E 80 00 20 */ blr + +.global GXSetDispCopyDst +GXSetDispCopyDst: +/* 800A8D68 000A5CA8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8D6C 000A5CAC 38 00 00 00 */ li r0, 0 +/* 800A8D70 000A5CB0 90 04 01 E8 */ stw r0, 0x1e8(r4) +/* 800A8D74 000A5CB4 54 60 0C 3C */ rlwinm r0, r3, 1, 0x10, 0x1e +/* 800A8D78 000A5CB8 7C 00 2E 70 */ srawi r0, r0, 5 +/* 800A8D7C 000A5CBC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8D80 000A5CC0 38 83 01 E8 */ addi r4, r3, 0x1e8 +/* 800A8D84 000A5CC4 80 63 01 E8 */ lwz r3, 0x1e8(r3) +/* 800A8D88 000A5CC8 54 63 00 2A */ rlwinm r3, r3, 0, 0, 0x15 +/* 800A8D8C 000A5CCC 7C 60 03 78 */ or r0, r3, r0 +/* 800A8D90 000A5CD0 90 04 00 00 */ stw r0, 0(r4) +/* 800A8D94 000A5CD4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8D98 000A5CD8 84 03 01 E8 */ lwzu r0, 0x1e8(r3) +/* 800A8D9C 000A5CDC 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A8DA0 000A5CE0 64 00 4D 00 */ oris r0, r0, 0x4d00 +/* 800A8DA4 000A5CE4 90 03 00 00 */ stw r0, 0(r3) +/* 800A8DA8 000A5CE8 4E 80 00 20 */ blr + +.global GXSetTexCopyDst +GXSetTexCopyDst: +/* 800A8DAC 000A5CEC 7C 08 02 A6 */ mflr r0 +/* 800A8DB0 000A5CF0 2C 05 00 13 */ cmpwi r5, 0x13 +/* 800A8DB4 000A5CF4 90 01 00 04 */ stw r0, 4(r1) +/* 800A8DB8 000A5CF8 38 00 00 00 */ li r0, 0 +/* 800A8DBC 000A5CFC 39 03 00 00 */ addi r8, r3, 0 +/* 800A8DC0 000A5D00 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 800A8DC4 000A5D04 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 800A8DC8 000A5D08 54 BF 07 3E */ clrlwi r31, r5, 0x1c +/* 800A8DCC 000A5D0C 93 C1 00 28 */ stw r30, 0x28(r1) +/* 800A8DD0 000A5D10 3B C6 00 00 */ addi r30, r6, 0 +/* 800A8DD4 000A5D14 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A8DD8 000A5D18 98 07 02 00 */ stb r0, 0x200(r7) +/* 800A8DDC 000A5D1C 38 E4 00 00 */ addi r7, r4, 0 +/* 800A8DE0 000A5D20 40 82 00 08 */ bne lbl_800A8DE8 +/* 800A8DE4 000A5D24 3B E0 00 0B */ li r31, 0xb +lbl_800A8DE8: +/* 800A8DE8 000A5D28 2C 05 00 26 */ cmpwi r5, 0x26 +/* 800A8DEC 000A5D2C 41 82 00 1C */ beq lbl_800A8E08 +/* 800A8DF0 000A5D30 40 80 00 34 */ bge lbl_800A8E24 +/* 800A8DF4 000A5D34 2C 05 00 04 */ cmpwi r5, 4 +/* 800A8DF8 000A5D38 40 80 00 2C */ bge lbl_800A8E24 +/* 800A8DFC 000A5D3C 2C 05 00 00 */ cmpwi r5, 0 +/* 800A8E00 000A5D40 40 80 00 08 */ bge lbl_800A8E08 +/* 800A8E04 000A5D44 48 00 00 20 */ b lbl_800A8E24 +lbl_800A8E08: +/* 800A8E08 000A5D48 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8E0C 000A5D4C 84 03 01 FC */ lwzu r0, 0x1fc(r3) +/* 800A8E10 000A5D50 54 00 04 5C */ rlwinm r0, r0, 0, 0x11, 0xe +/* 800A8E14 000A5D54 64 00 00 01 */ oris r0, r0, 1 +/* 800A8E18 000A5D58 60 00 80 00 */ ori r0, r0, 0x8000 +/* 800A8E1C 000A5D5C 90 03 00 00 */ stw r0, 0(r3) +/* 800A8E20 000A5D60 48 00 00 18 */ b lbl_800A8E38 +lbl_800A8E24: +/* 800A8E24 000A5D64 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8E28 000A5D68 84 03 01 FC */ lwzu r0, 0x1fc(r3) +/* 800A8E2C 000A5D6C 54 00 04 5C */ rlwinm r0, r0, 0, 0x11, 0xe +/* 800A8E30 000A5D70 64 00 00 01 */ oris r0, r0, 1 +/* 800A8E34 000A5D74 90 03 00 00 */ stw r0, 0(r3) +lbl_800A8E38: +/* 800A8E38 000A5D78 54 A4 06 F6 */ rlwinm r4, r5, 0, 0x1b, 0x1b +/* 800A8E3C 000A5D7C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8E40 000A5D80 38 04 FF F0 */ addi r0, r4, -16 +/* 800A8E44 000A5D84 7C 00 00 34 */ cntlzw r0, r0 +/* 800A8E48 000A5D88 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f +/* 800A8E4C 000A5D8C 98 03 02 00 */ stb r0, 0x200(r3) +/* 800A8E50 000A5D90 38 65 00 00 */ addi r3, r5, 0 +/* 800A8E54 000A5D94 38 A7 00 00 */ addi r5, r7, 0 +/* 800A8E58 000A5D98 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8E5C 000A5D9C 38 E1 00 1C */ addi r7, r1, 0x1c +/* 800A8E60 000A5DA0 80 04 01 FC */ lwz r0, 0x1fc(r4) +/* 800A8E64 000A5DA4 38 C4 01 FC */ addi r6, r4, 0x1fc +/* 800A8E68 000A5DA8 38 88 00 00 */ addi r4, r8, 0 +/* 800A8E6C 000A5DAC 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 800A8E70 000A5DB0 53 E0 07 38 */ rlwimi r0, r31, 0, 0x1c, 0x1c +/* 800A8E74 000A5DB4 90 06 00 00 */ stw r0, 0(r6) +/* 800A8E78 000A5DB8 57 FF 07 7E */ clrlwi r31, r31, 0x1d +/* 800A8E7C 000A5DBC 38 C1 00 20 */ addi r6, r1, 0x20 +/* 800A8E80 000A5DC0 39 01 00 18 */ addi r8, r1, 0x18 +/* 800A8E84 000A5DC4 48 00 14 AD */ bl __GetImageTileCount +/* 800A8E88 000A5DC8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8E8C 000A5DCC 38 00 00 00 */ li r0, 0 +/* 800A8E90 000A5DD0 90 03 01 F8 */ stw r0, 0x1f8(r3) +/* 800A8E94 000A5DD4 57 C3 4B EC */ rlwinm r3, r30, 9, 0xf, 0x16 +/* 800A8E98 000A5DD8 57 E0 20 36 */ slwi r0, r31, 4 +/* 800A8E9C 000A5DDC 80 A1 00 20 */ lwz r5, 0x20(r1) +/* 800A8EA0 000A5DE0 80 81 00 18 */ lwz r4, 0x18(r1) +/* 800A8EA4 000A5DE4 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A8EA8 000A5DE8 7C 85 21 D6 */ mullw r4, r5, r4 +/* 800A8EAC 000A5DEC 84 A6 01 F8 */ lwzu r5, 0x1f8(r6) +/* 800A8EB0 000A5DF0 54 A5 00 2A */ rlwinm r5, r5, 0, 0, 0x15 +/* 800A8EB4 000A5DF4 7C A4 23 78 */ or r4, r5, r4 +/* 800A8EB8 000A5DF8 90 86 00 00 */ stw r4, 0(r6) +/* 800A8EBC 000A5DFC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8EC0 000A5E00 38 A4 01 F8 */ addi r5, r4, 0x1f8 +/* 800A8EC4 000A5E04 80 84 01 F8 */ lwz r4, 0x1f8(r4) +/* 800A8EC8 000A5E08 54 84 02 3E */ clrlwi r4, r4, 8 +/* 800A8ECC 000A5E0C 64 84 4D 00 */ oris r4, r4, 0x4d00 +/* 800A8ED0 000A5E10 90 85 00 00 */ stw r4, 0(r5) +/* 800A8ED4 000A5E14 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8ED8 000A5E18 38 A4 01 FC */ addi r5, r4, 0x1fc +/* 800A8EDC 000A5E1C 80 84 01 FC */ lwz r4, 0x1fc(r4) +/* 800A8EE0 000A5E20 54 84 05 EA */ rlwinm r4, r4, 0, 0x17, 0x15 +/* 800A8EE4 000A5E24 7C 83 1B 78 */ or r3, r4, r3 +/* 800A8EE8 000A5E28 90 65 00 00 */ stw r3, 0(r5) +/* 800A8EEC 000A5E2C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8EF0 000A5E30 38 83 01 FC */ addi r4, r3, 0x1fc +/* 800A8EF4 000A5E34 80 63 01 FC */ lwz r3, 0x1fc(r3) +/* 800A8EF8 000A5E38 54 63 07 30 */ rlwinm r3, r3, 0, 0x1c, 0x18 +/* 800A8EFC 000A5E3C 7C 60 03 78 */ or r0, r3, r0 +/* 800A8F00 000A5E40 90 04 00 00 */ stw r0, 0(r4) +/* 800A8F04 000A5E44 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800A8F08 000A5E48 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 800A8F0C 000A5E4C 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 800A8F10 000A5E50 38 21 00 30 */ addi r1, r1, 0x30 +/* 800A8F14 000A5E54 7C 08 03 A6 */ mtlr r0 +/* 800A8F18 000A5E58 4E 80 00 20 */ blr + +.global GXSetDispCopyFrame2Field +GXSetDispCopyFrame2Field: +/* 800A8F1C 000A5E5C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8F20 000A5E60 54 60 60 26 */ slwi r0, r3, 0xc +/* 800A8F24 000A5E64 84 64 01 EC */ lwzu r3, 0x1ec(r4) +/* 800A8F28 000A5E68 54 63 05 22 */ rlwinm r3, r3, 0, 0x14, 0x11 +/* 800A8F2C 000A5E6C 7C 60 03 78 */ or r0, r3, r0 +/* 800A8F30 000A5E70 90 04 00 00 */ stw r0, 0(r4) +/* 800A8F34 000A5E74 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8F38 000A5E78 84 03 01 FC */ lwzu r0, 0x1fc(r3) +/* 800A8F3C 000A5E7C 54 00 05 22 */ rlwinm r0, r0, 0, 0x14, 0x11 +/* 800A8F40 000A5E80 90 03 00 00 */ stw r0, 0(r3) +/* 800A8F44 000A5E84 4E 80 00 20 */ blr + +.global GXSetCopyClamp +GXSetCopyClamp: +/* 800A8F48 000A5E88 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A8F4C 000A5E8C 54 64 07 FE */ clrlwi r4, r3, 0x1f +/* 800A8F50 000A5E90 38 04 FF FF */ addi r0, r4, -1 +/* 800A8F54 000A5E94 80 85 01 EC */ lwz r4, 0x1ec(r5) +/* 800A8F58 000A5E98 38 C5 01 EC */ addi r6, r5, 0x1ec +/* 800A8F5C 000A5E9C 7C 00 00 34 */ cntlzw r0, r0 +/* 800A8F60 000A5EA0 54 85 00 3C */ rlwinm r5, r4, 0, 0, 0x1e +/* 800A8F64 000A5EA4 54 04 DE 3E */ rlwinm r4, r0, 0x1b, 0x18, 0x1f +/* 800A8F68 000A5EA8 7C A0 23 78 */ or r0, r5, r4 +/* 800A8F6C 000A5EAC 90 06 00 00 */ stw r0, 0(r6) +/* 800A8F70 000A5EB0 54 63 07 BC */ rlwinm r3, r3, 0, 0x1e, 0x1e +/* 800A8F74 000A5EB4 38 03 FF FE */ addi r0, r3, -2 +/* 800A8F78 000A5EB8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8F7C 000A5EBC 7C 00 00 34 */ cntlzw r0, r0 +/* 800A8F80 000A5EC0 54 06 E5 FC */ rlwinm r6, r0, 0x1c, 0x17, 0x1e +/* 800A8F84 000A5EC4 38 A3 01 EC */ addi r5, r3, 0x1ec +/* 800A8F88 000A5EC8 80 63 01 EC */ lwz r3, 0x1ec(r3) +/* 800A8F8C 000A5ECC 54 60 07 FA */ rlwinm r0, r3, 0, 0x1f, 0x1d +/* 800A8F90 000A5ED0 7C 00 33 78 */ or r0, r0, r6 +/* 800A8F94 000A5ED4 90 05 00 00 */ stw r0, 0(r5) +/* 800A8F98 000A5ED8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8F9C 000A5EDC 84 03 01 FC */ lwzu r0, 0x1fc(r3) +/* 800A8FA0 000A5EE0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A8FA4 000A5EE4 7C 00 23 78 */ or r0, r0, r4 +/* 800A8FA8 000A5EE8 90 03 00 00 */ stw r0, 0(r3) +/* 800A8FAC 000A5EEC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8FB0 000A5EF0 84 03 01 FC */ lwzu r0, 0x1fc(r3) +/* 800A8FB4 000A5EF4 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 800A8FB8 000A5EF8 7C 00 33 78 */ or r0, r0, r6 +/* 800A8FBC 000A5EFC 90 03 00 00 */ stw r0, 0(r3) +/* 800A8FC0 000A5F00 4E 80 00 20 */ blr + +.global GXGetNumXfbLines +GXGetNumXfbLines: +/* 800A8FC4 000A5F04 7C 08 02 A6 */ mflr r0 +/* 800A8FC8 000A5F08 90 01 00 04 */ stw r0, 4(r1) +/* 800A8FCC 000A5F0C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800A8FD0 000A5F10 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800A8FD4 000A5F14 7C 7F 1B 78 */ mr r31, r3 +/* 800A8FD8 000A5F18 C0 02 8A F0 */ lfs f0, "@83"@sda21(r2) +/* 800A8FDC 000A5F1C EC 20 08 24 */ fdivs f1, f0, f1 +/* 800A8FE0 000A5F20 4B FD 9B DD */ bl __cvt_fp2unsigned +/* 800A8FE4 000A5F24 57 E5 04 3E */ clrlwi r5, r31, 0x10 +/* 800A8FE8 000A5F28 38 05 FF FF */ addi r0, r5, -1 +/* 800A8FEC 000A5F2C 54 64 05 FE */ clrlwi r4, r3, 0x17 +/* 800A8FF0 000A5F30 54 00 40 2E */ slwi r0, r0, 8 +/* 800A8FF4 000A5F34 7C 60 23 96 */ divwu r3, r0, r4 +/* 800A8FF8 000A5F38 28 04 00 80 */ cmplwi r4, 0x80 +/* 800A8FFC 000A5F3C 38 63 00 01 */ addi r3, r3, 1 +/* 800A9000 000A5F40 40 81 00 30 */ ble lbl_800A9030 +/* 800A9004 000A5F44 28 04 01 00 */ cmplwi r4, 0x100 +/* 800A9008 000A5F48 40 80 00 28 */ bge lbl_800A9030 +/* 800A900C 000A5F4C 48 00 00 08 */ b lbl_800A9014 +lbl_800A9010: +/* 800A9010 000A5F50 54 84 F8 7E */ srwi r4, r4, 1 +lbl_800A9014: +/* 800A9014 000A5F54 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 800A9018 000A5F58 41 82 FF F8 */ beq lbl_800A9010 +/* 800A901C 000A5F5C 7C 05 23 96 */ divwu r0, r5, r4 +/* 800A9020 000A5F60 7C 00 21 D6 */ mullw r0, r0, r4 +/* 800A9024 000A5F64 7C 00 28 51 */ subf. r0, r0, r5 +/* 800A9028 000A5F68 40 82 00 08 */ bne lbl_800A9030 +/* 800A902C 000A5F6C 38 63 00 01 */ addi r3, r3, 1 +lbl_800A9030: +/* 800A9030 000A5F70 28 03 04 00 */ cmplwi r3, 0x400 +/* 800A9034 000A5F74 40 81 00 08 */ ble lbl_800A903C +/* 800A9038 000A5F78 38 60 04 00 */ li r3, 0x400 +lbl_800A903C: +/* 800A903C 000A5F7C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A9040 000A5F80 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 800A9044 000A5F84 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800A9048 000A5F88 38 21 00 20 */ addi r1, r1, 0x20 +/* 800A904C 000A5F8C 7C 08 03 A6 */ mtlr r0 +/* 800A9050 000A5F90 4E 80 00 20 */ blr + +.global GXGetYScaleFactor +GXGetYScaleFactor: +/* 800A9054 000A5F94 7C 08 02 A6 */ mflr r0 +/* 800A9058 000A5F98 90 01 00 04 */ stw r0, 4(r1) +/* 800A905C 000A5F9C 3C 00 43 30 */ lis r0, 0x4330 +/* 800A9060 000A5FA0 94 21 FF 88 */ stwu r1, -0x78(r1) +/* 800A9064 000A5FA4 DB E1 00 70 */ stfd f31, 0x70(r1) +/* 800A9068 000A5FA8 DB C1 00 68 */ stfd f30, 0x68(r1) +/* 800A906C 000A5FAC DB A1 00 60 */ stfd f29, 0x60(r1) +/* 800A9070 000A5FB0 DB 81 00 58 */ stfd f28, 0x58(r1) +/* 800A9074 000A5FB4 BF 21 00 3C */ stmw r25, 0x3c(r1) +/* 800A9078 000A5FB8 54 9C 04 3E */ clrlwi r28, r4, 0x10 +/* 800A907C 000A5FBC 54 7F 04 3E */ clrlwi r31, r3, 0x10 +/* 800A9080 000A5FC0 93 81 00 34 */ stw r28, 0x34(r1) +/* 800A9084 000A5FC4 7C 7B 1B 78 */ mr r27, r3 +/* 800A9088 000A5FC8 7C 99 23 78 */ mr r25, r4 +/* 800A908C 000A5FCC 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 800A9090 000A5FD0 90 01 00 30 */ stw r0, 0x30(r1) +/* 800A9094 000A5FD4 90 01 00 28 */ stw r0, 0x28(r1) +/* 800A9098 000A5FD8 C8 62 8A F8 */ lfd f3, "@138"@sda21(r2) +/* 800A909C 000A5FDC C8 41 00 30 */ lfd f2, 0x30(r1) +/* 800A90A0 000A5FE0 C8 21 00 28 */ lfd f1, 0x28(r1) +/* 800A90A4 000A5FE4 EC 42 18 28 */ fsubs f2, f2, f3 +/* 800A90A8 000A5FE8 C0 02 8A F0 */ lfs f0, "@83"@sda21(r2) +/* 800A90AC 000A5FEC EC 21 18 28 */ fsubs f1, f1, f3 +/* 800A90B0 000A5FF0 EC 42 08 24 */ fdivs f2, f2, f1 +/* 800A90B4 000A5FF4 EC 20 10 24 */ fdivs f1, f0, f2 +/* 800A90B8 000A5FF8 FF 80 10 90 */ fmr f28, f2 +/* 800A90BC 000A5FFC 4B FD 9B 01 */ bl __cvt_fp2unsigned +/* 800A90C0 000A6000 38 1F FF FF */ addi r0, r31, -1 +/* 800A90C4 000A6004 54 64 05 FE */ clrlwi r4, r3, 0x17 +/* 800A90C8 000A6008 54 1E 40 2E */ slwi r30, r0, 8 +/* 800A90CC 000A600C 7C 7E 23 96 */ divwu r3, r30, r4 +/* 800A90D0 000A6010 28 04 00 80 */ cmplwi r4, 0x80 +/* 800A90D4 000A6014 38 63 00 01 */ addi r3, r3, 1 +/* 800A90D8 000A6018 40 81 00 30 */ ble lbl_800A9108 +/* 800A90DC 000A601C 28 04 01 00 */ cmplwi r4, 0x100 +/* 800A90E0 000A6020 40 80 00 28 */ bge lbl_800A9108 +/* 800A90E4 000A6024 48 00 00 08 */ b lbl_800A90EC +lbl_800A90E8: +/* 800A90E8 000A6028 54 84 F8 7E */ srwi r4, r4, 1 +lbl_800A90EC: +/* 800A90EC 000A602C 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 800A90F0 000A6030 41 82 FF F8 */ beq lbl_800A90E8 +/* 800A90F4 000A6034 7C 1F 23 96 */ divwu r0, r31, r4 +/* 800A90F8 000A6038 7C 00 21 D6 */ mullw r0, r0, r4 +/* 800A90FC 000A603C 7C 00 F8 51 */ subf. r0, r0, r31 +/* 800A9100 000A6040 40 82 00 08 */ bne lbl_800A9108 +/* 800A9104 000A6044 38 63 00 01 */ addi r3, r3, 1 +lbl_800A9108: +/* 800A9108 000A6048 28 03 04 00 */ cmplwi r3, 0x400 +/* 800A910C 000A604C 40 81 00 08 */ ble lbl_800A9114 +/* 800A9110 000A6050 38 60 04 00 */ li r3, 0x400 +lbl_800A9114: +/* 800A9114 000A6054 CB E2 8A F8 */ lfd f31, "@138"@sda21(r2) +/* 800A9118 000A6058 7C 60 1B 78 */ mr r0, r3 +/* 800A911C 000A605C C3 C2 8A F0 */ lfs f30, "@83"@sda21(r2) +/* 800A9120 000A6060 57 3D 04 3E */ clrlwi r29, r25, 0x10 +/* 800A9124 000A6064 57 7A 04 3E */ clrlwi r26, r27, 0x10 +/* 800A9128 000A6068 3F 20 43 30 */ lis r25, 0x4330 +/* 800A912C 000A606C 48 00 00 88 */ b lbl_800A91B4 +lbl_800A9130: +/* 800A9130 000A6070 3B 9C FF FF */ addi r28, r28, -1 +/* 800A9134 000A6074 93 41 00 34 */ stw r26, 0x34(r1) +/* 800A9138 000A6078 93 81 00 2C */ stw r28, 0x2c(r1) +/* 800A913C 000A607C 93 21 00 28 */ stw r25, 0x28(r1) +/* 800A9140 000A6080 93 21 00 30 */ stw r25, 0x30(r1) +/* 800A9144 000A6084 C8 21 00 28 */ lfd f1, 0x28(r1) +/* 800A9148 000A6088 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 800A914C 000A608C EC 21 F8 28 */ fsubs f1, f1, f31 +/* 800A9150 000A6090 EC 00 F8 28 */ fsubs f0, f0, f31 +/* 800A9154 000A6094 EC 01 00 24 */ fdivs f0, f1, f0 +/* 800A9158 000A6098 EC 3E 00 24 */ fdivs f1, f30, f0 +/* 800A915C 000A609C FF 80 00 90 */ fmr f28, f0 +/* 800A9160 000A60A0 4B FD 9A 5D */ bl __cvt_fp2unsigned +/* 800A9164 000A60A4 54 64 05 FE */ clrlwi r4, r3, 0x17 +/* 800A9168 000A60A8 7C 7E 23 96 */ divwu r3, r30, r4 +/* 800A916C 000A60AC 28 04 00 80 */ cmplwi r4, 0x80 +/* 800A9170 000A60B0 38 63 00 01 */ addi r3, r3, 1 +/* 800A9174 000A60B4 40 81 00 30 */ ble lbl_800A91A4 +/* 800A9178 000A60B8 28 04 01 00 */ cmplwi r4, 0x100 +/* 800A917C 000A60BC 40 80 00 28 */ bge lbl_800A91A4 +/* 800A9180 000A60C0 48 00 00 08 */ b lbl_800A9188 +lbl_800A9184: +/* 800A9184 000A60C4 54 84 F8 7E */ srwi r4, r4, 1 +lbl_800A9188: +/* 800A9188 000A60C8 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 800A918C 000A60CC 41 82 FF F8 */ beq lbl_800A9184 +/* 800A9190 000A60D0 7C 1F 23 96 */ divwu r0, r31, r4 +/* 800A9194 000A60D4 7C 00 21 D6 */ mullw r0, r0, r4 +/* 800A9198 000A60D8 7C 00 F8 51 */ subf. r0, r0, r31 +/* 800A919C 000A60DC 40 82 00 08 */ bne lbl_800A91A4 +/* 800A91A0 000A60E0 38 63 00 01 */ addi r3, r3, 1 +lbl_800A91A4: +/* 800A91A4 000A60E4 28 03 04 00 */ cmplwi r3, 0x400 +/* 800A91A8 000A60E8 40 81 00 08 */ ble lbl_800A91B0 +/* 800A91AC 000A60EC 38 60 04 00 */ li r3, 0x400 +lbl_800A91B0: +/* 800A91B0 000A60F0 7C 60 1B 78 */ mr r0, r3 +lbl_800A91B4: +/* 800A91B4 000A60F4 7C 00 E8 40 */ cmplw r0, r29 +/* 800A91B8 000A60F8 41 81 FF 78 */ bgt lbl_800A9130 +/* 800A91BC 000A60FC FF A0 E0 90 */ fmr f29, f28 +/* 800A91C0 000A6100 CB C2 8A F8 */ lfd f30, "@138"@sda21(r2) +/* 800A91C4 000A6104 C3 E2 8A F0 */ lfs f31, "@83"@sda21(r2) +/* 800A91C8 000A6108 57 7B 04 3E */ clrlwi r27, r27, 0x10 +/* 800A91CC 000A610C 3F 40 43 30 */ lis r26, 0x4330 +/* 800A91D0 000A6110 48 00 00 8C */ b lbl_800A925C +lbl_800A91D4: +/* 800A91D4 000A6114 3B 9C 00 01 */ addi r28, r28, 1 +/* 800A91D8 000A6118 93 61 00 34 */ stw r27, 0x34(r1) +/* 800A91DC 000A611C FF A0 E0 90 */ fmr f29, f28 +/* 800A91E0 000A6120 93 81 00 2C */ stw r28, 0x2c(r1) +/* 800A91E4 000A6124 93 41 00 28 */ stw r26, 0x28(r1) +/* 800A91E8 000A6128 93 41 00 30 */ stw r26, 0x30(r1) +/* 800A91EC 000A612C C8 21 00 28 */ lfd f1, 0x28(r1) +/* 800A91F0 000A6130 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 800A91F4 000A6134 EC 21 F0 28 */ fsubs f1, f1, f30 +/* 800A91F8 000A6138 EC 00 F0 28 */ fsubs f0, f0, f30 +/* 800A91FC 000A613C EC 01 00 24 */ fdivs f0, f1, f0 +/* 800A9200 000A6140 EC 3F 00 24 */ fdivs f1, f31, f0 +/* 800A9204 000A6144 FF 80 00 90 */ fmr f28, f0 +/* 800A9208 000A6148 4B FD 99 B5 */ bl __cvt_fp2unsigned +/* 800A920C 000A614C 54 64 05 FE */ clrlwi r4, r3, 0x17 +/* 800A9210 000A6150 7C 7E 23 96 */ divwu r3, r30, r4 +/* 800A9214 000A6154 28 04 00 80 */ cmplwi r4, 0x80 +/* 800A9218 000A6158 38 63 00 01 */ addi r3, r3, 1 +/* 800A921C 000A615C 40 81 00 30 */ ble lbl_800A924C +/* 800A9220 000A6160 28 04 01 00 */ cmplwi r4, 0x100 +/* 800A9224 000A6164 40 80 00 28 */ bge lbl_800A924C +/* 800A9228 000A6168 48 00 00 08 */ b lbl_800A9230 +lbl_800A922C: +/* 800A922C 000A616C 54 84 F8 7E */ srwi r4, r4, 1 +lbl_800A9230: +/* 800A9230 000A6170 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 800A9234 000A6174 41 82 FF F8 */ beq lbl_800A922C +/* 800A9238 000A6178 7C 1F 23 96 */ divwu r0, r31, r4 +/* 800A923C 000A617C 7C 00 21 D6 */ mullw r0, r0, r4 +/* 800A9240 000A6180 7C 00 F8 51 */ subf. r0, r0, r31 +/* 800A9244 000A6184 40 82 00 08 */ bne lbl_800A924C +/* 800A9248 000A6188 38 63 00 01 */ addi r3, r3, 1 +lbl_800A924C: +/* 800A924C 000A618C 28 03 04 00 */ cmplwi r3, 0x400 +/* 800A9250 000A6190 40 81 00 08 */ ble lbl_800A9258 +/* 800A9254 000A6194 38 60 04 00 */ li r3, 0x400 +lbl_800A9258: +/* 800A9258 000A6198 7C 60 1B 78 */ mr r0, r3 +lbl_800A925C: +/* 800A925C 000A619C 7C 00 E8 40 */ cmplw r0, r29 +/* 800A9260 000A61A0 41 80 FF 74 */ blt lbl_800A91D4 +/* 800A9264 000A61A4 BB 21 00 3C */ lmw r25, 0x3c(r1) +/* 800A9268 000A61A8 FC 20 E8 90 */ fmr f1, f29 +/* 800A926C 000A61AC 80 01 00 7C */ lwz r0, 0x7c(r1) +/* 800A9270 000A61B0 CB E1 00 70 */ lfd f31, 0x70(r1) +/* 800A9274 000A61B4 CB C1 00 68 */ lfd f30, 0x68(r1) +/* 800A9278 000A61B8 CB A1 00 60 */ lfd f29, 0x60(r1) +/* 800A927C 000A61BC CB 81 00 58 */ lfd f28, 0x58(r1) +/* 800A9280 000A61C0 38 21 00 78 */ addi r1, r1, 0x78 +/* 800A9284 000A61C4 7C 08 03 A6 */ mtlr r0 +/* 800A9288 000A61C8 4E 80 00 20 */ blr + +.global GXSetDispCopyYScale +GXSetDispCopyYScale: +/* 800A928C 000A61CC 7C 08 02 A6 */ mflr r0 +/* 800A9290 000A61D0 90 01 00 04 */ stw r0, 4(r1) +/* 800A9294 000A61D4 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A9298 000A61D8 C0 02 8A F0 */ lfs f0, "@83"@sda21(r2) +/* 800A929C 000A61DC EC 20 08 24 */ fdivs f1, f0, f1 +/* 800A92A0 000A61E0 4B FD 99 1D */ bl __cvt_fp2unsigned +/* 800A92A4 000A61E4 54 66 05 FE */ clrlwi r6, r3, 0x17 +/* 800A92A8 000A61E8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A92AC 000A61EC 38 00 00 61 */ li r0, 0x61 +/* 800A92B0 000A61F0 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A92B4 000A61F4 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800A92B8 000A61F8 64 C0 4E 00 */ oris r0, r6, 0x4e00 +/* 800A92BC 000A61FC 38 A0 00 00 */ li r5, 0 +/* 800A92C0 000A6200 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A92C4 000A6204 20 66 01 00 */ subfic r3, r6, 0x100 +/* 800A92C8 000A6208 30 03 FF FF */ addic r0, r3, -1 +/* 800A92CC 000A620C B0 A4 00 02 */ sth r5, 2(r4) +/* 800A92D0 000A6210 7C 00 19 10 */ subfe r0, r0, r3 +/* 800A92D4 000A6214 54 00 53 AA */ rlwinm r0, r0, 0xa, 0xe, 0x15 +/* 800A92D8 000A6218 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A92DC 000A621C 28 06 00 80 */ cmplwi r6, 0x80 +/* 800A92E0 000A6220 38 86 00 00 */ addi r4, r6, 0 +/* 800A92E4 000A6224 38 A3 01 EC */ addi r5, r3, 0x1ec +/* 800A92E8 000A6228 80 63 01 EC */ lwz r3, 0x1ec(r3) +/* 800A92EC 000A622C 54 63 05 A8 */ rlwinm r3, r3, 0, 0x16, 0x14 +/* 800A92F0 000A6230 7C 60 03 78 */ or r0, r3, r0 +/* 800A92F4 000A6234 90 05 00 00 */ stw r0, 0(r5) +/* 800A92F8 000A6238 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A92FC 000A623C 80 03 01 E4 */ lwz r0, 0x1e4(r3) +/* 800A9300 000A6240 54 05 B5 BE */ rlwinm r5, r0, 0x16, 0x16, 0x1f +/* 800A9304 000A6244 54 00 F3 AE */ rlwinm r0, r0, 0x1e, 0xe, 0x17 +/* 800A9308 000A6248 7C 60 33 96 */ divwu r3, r0, r6 +/* 800A930C 000A624C 38 A5 00 01 */ addi r5, r5, 1 +/* 800A9310 000A6250 38 63 00 01 */ addi r3, r3, 1 +/* 800A9314 000A6254 40 81 00 30 */ ble lbl_800A9344 +/* 800A9318 000A6258 28 06 01 00 */ cmplwi r6, 0x100 +/* 800A931C 000A625C 40 80 00 28 */ bge lbl_800A9344 +/* 800A9320 000A6260 48 00 00 08 */ b lbl_800A9328 +lbl_800A9324: +/* 800A9324 000A6264 54 84 F8 7E */ srwi r4, r4, 1 +lbl_800A9328: +/* 800A9328 000A6268 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 800A932C 000A626C 41 82 FF F8 */ beq lbl_800A9324 +/* 800A9330 000A6270 7C 05 23 96 */ divwu r0, r5, r4 +/* 800A9334 000A6274 7C 00 21 D6 */ mullw r0, r0, r4 +/* 800A9338 000A6278 7C 00 28 51 */ subf. r0, r0, r5 +/* 800A933C 000A627C 40 82 00 08 */ bne lbl_800A9344 +/* 800A9340 000A6280 38 63 00 01 */ addi r3, r3, 1 +lbl_800A9344: +/* 800A9344 000A6284 28 03 04 00 */ cmplwi r3, 0x400 +/* 800A9348 000A6288 40 81 00 08 */ ble lbl_800A9350 +/* 800A934C 000A628C 38 60 04 00 */ li r3, 0x400 +lbl_800A9350: +/* 800A9350 000A6290 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A9354 000A6294 38 21 00 08 */ addi r1, r1, 8 +/* 800A9358 000A6298 7C 08 03 A6 */ mtlr r0 +/* 800A935C 000A629C 4E 80 00 20 */ blr + +.global GXSetCopyClear +GXSetCopyClear: +/* 800A9360 000A62A0 54 80 02 3E */ clrlwi r0, r4, 8 +/* 800A9364 000A62A4 88 83 00 03 */ lbz r4, 3(r3) +/* 800A9368 000A62A8 88 A3 00 00 */ lbz r5, 0(r3) +/* 800A936C 000A62AC 38 C0 00 61 */ li r6, 0x61 +/* 800A9370 000A62B0 54 87 40 2E */ slwi r7, r4, 8 +/* 800A9374 000A62B4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A9378 000A62B8 50 A7 06 3E */ rlwimi r7, r5, 0, 0x18, 0x1f +/* 800A937C 000A62BC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A9380 000A62C0 54 E7 02 3E */ clrlwi r7, r7, 8 +/* 800A9384 000A62C4 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800A9388 000A62C8 64 E7 4F 00 */ oris r7, r7, 0x4f00 +/* 800A938C 000A62CC 90 E5 80 00 */ stw r7, -0x8000(r5) +/* 800A9390 000A62D0 64 07 51 00 */ oris r7, r0, 0x5100 +/* 800A9394 000A62D4 38 00 00 00 */ li r0, 0 +/* 800A9398 000A62D8 89 03 00 02 */ lbz r8, 2(r3) +/* 800A939C 000A62DC 88 63 00 01 */ lbz r3, 1(r3) +/* 800A93A0 000A62E0 54 63 40 2E */ slwi r3, r3, 8 +/* 800A93A4 000A62E4 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800A93A8 000A62E8 51 03 06 3E */ rlwimi r3, r8, 0, 0x18, 0x1f +/* 800A93AC 000A62EC 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A93B0 000A62F0 64 63 50 00 */ oris r3, r3, 0x5000 +/* 800A93B4 000A62F4 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A93B8 000A62F8 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800A93BC 000A62FC 90 E5 80 00 */ stw r7, -0x8000(r5) +/* 800A93C0 000A6300 B0 04 00 02 */ sth r0, 2(r4) +/* 800A93C4 000A6304 4E 80 00 20 */ blr + +.global GXSetCopyFilter +GXSetCopyFilter: +/* 800A93C8 000A6308 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 800A93CC 000A630C 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 800A93D0 000A6310 BE E1 00 2C */ stmw r23, 0x2c(r1) +/* 800A93D4 000A6314 41 82 01 28 */ beq lbl_800A94FC +/* 800A93D8 000A6318 88 04 00 01 */ lbz r0, 1(r4) +/* 800A93DC 000A631C 88 64 00 07 */ lbz r3, 7(r4) +/* 800A93E0 000A6320 54 1E 20 36 */ slwi r30, r0, 4 +/* 800A93E4 000A6324 89 04 00 00 */ lbz r8, 0(r4) +/* 800A93E8 000A6328 88 04 00 13 */ lbz r0, 0x13(r4) +/* 800A93EC 000A632C 54 79 20 36 */ slwi r25, r3, 4 +/* 800A93F0 000A6330 89 44 00 06 */ lbz r10, 6(r4) +/* 800A93F4 000A6334 51 1E 07 3E */ rlwimi r30, r8, 0, 0x1c, 0x1f +/* 800A93F8 000A6338 89 64 00 02 */ lbz r11, 2(r4) +/* 800A93FC 000A633C 88 E4 00 0D */ lbz r7, 0xd(r4) +/* 800A9400 000A6340 51 59 07 3E */ rlwimi r25, r10, 0, 0x1c, 0x1f +/* 800A9404 000A6344 55 7B 40 2E */ slwi r27, r11, 8 +/* 800A9408 000A6348 89 24 00 08 */ lbz r9, 8(r4) +/* 800A940C 000A634C 88 64 00 0E */ lbz r3, 0xe(r4) +/* 800A9410 000A6350 55 3A 40 2E */ slwi r26, r9, 8 +/* 800A9414 000A6354 8B 84 00 03 */ lbz r28, 3(r4) +/* 800A9418 000A6358 53 DB 06 3E */ rlwimi r27, r30, 0, 0x18, 0x1f +/* 800A941C 000A635C 89 24 00 10 */ lbz r9, 0x10(r4) +/* 800A9420 000A6360 54 F7 20 36 */ slwi r23, r7, 4 +/* 800A9424 000A6364 89 84 00 0C */ lbz r12, 0xc(r4) +/* 800A9428 000A6368 88 E4 00 15 */ lbz r7, 0x15(r4) +/* 800A942C 000A636C 54 78 40 2E */ slwi r24, r3, 8 +/* 800A9430 000A6370 51 97 07 3E */ rlwimi r23, r12, 0, 0x1c, 0x1f +/* 800A9434 000A6374 8B A4 00 12 */ lbz r29, 0x12(r4) +/* 800A9438 000A6378 54 00 20 36 */ slwi r0, r0, 4 +/* 800A943C 000A637C 53 A0 07 3E */ rlwimi r0, r29, 0, 0x1c, 0x1f +/* 800A9440 000A6380 89 04 00 14 */ lbz r8, 0x14(r4) +/* 800A9444 000A6384 57 9C 60 26 */ slwi r28, r28, 0xc +/* 800A9448 000A6388 8B E4 00 09 */ lbz r31, 9(r4) +/* 800A944C 000A638C 53 7C 05 3E */ rlwimi r28, r27, 0, 0x14, 0x1f +/* 800A9450 000A6390 8B A4 00 04 */ lbz r29, 4(r4) +/* 800A9454 000A6394 52 F8 06 3E */ rlwimi r24, r23, 0, 0x18, 0x1f +/* 800A9458 000A6398 89 44 00 0F */ lbz r10, 0xf(r4) +/* 800A945C 000A639C 55 17 40 2E */ slwi r23, r8, 8 +/* 800A9460 000A63A0 89 84 00 0A */ lbz r12, 0xa(r4) +/* 800A9464 000A63A4 53 3A 06 3E */ rlwimi r26, r25, 0, 0x18, 0x1f +/* 800A9468 000A63A8 88 64 00 16 */ lbz r3, 0x16(r4) +/* 800A946C 000A63AC 55 59 60 26 */ slwi r25, r10, 0xc +/* 800A9470 000A63B0 8B C4 00 05 */ lbz r30, 5(r4) +/* 800A9474 000A63B4 50 17 06 3E */ rlwimi r23, r0, 0, 0x18, 0x1f +/* 800A9478 000A63B8 88 04 00 17 */ lbz r0, 0x17(r4) +/* 800A947C 000A63BC 57 FB 60 26 */ slwi r27, r31, 0xc +/* 800A9480 000A63C0 89 64 00 0B */ lbz r11, 0xb(r4) +/* 800A9484 000A63C4 89 04 00 11 */ lbz r8, 0x11(r4) +/* 800A9488 000A63C8 57 A4 80 1E */ slwi r4, r29, 0x10 +/* 800A948C 000A63CC 54 E7 60 26 */ slwi r7, r7, 0xc +/* 800A9490 000A63D0 55 8A 80 1E */ slwi r10, r12, 0x10 +/* 800A9494 000A63D4 53 5B 05 3E */ rlwimi r27, r26, 0, 0x14, 0x1f +/* 800A9498 000A63D8 54 6C 80 1E */ slwi r12, r3, 0x10 +/* 800A949C 000A63DC 52 E7 05 3E */ rlwimi r7, r23, 0, 0x14, 0x1f +/* 800A94A0 000A63E0 53 84 04 3E */ rlwimi r4, r28, 0, 0x10, 0x1f +/* 800A94A4 000A63E4 57 C3 A0 16 */ slwi r3, r30, 0x14 +/* 800A94A8 000A63E8 53 19 05 3E */ rlwimi r25, r24, 0, 0x14, 0x1f +/* 800A94AC 000A63EC 55 29 80 1E */ slwi r9, r9, 0x10 +/* 800A94B0 000A63F0 53 6A 04 3E */ rlwimi r10, r27, 0, 0x10, 0x1f +/* 800A94B4 000A63F4 50 83 03 3E */ rlwimi r3, r4, 0, 0xc, 0x1f +/* 800A94B8 000A63F8 50 EC 04 3E */ rlwimi r12, r7, 0, 0x10, 0x1f +/* 800A94BC 000A63FC 54 67 02 3E */ clrlwi r7, r3, 8 +/* 800A94C0 000A6400 55 63 A0 16 */ slwi r3, r11, 0x14 +/* 800A94C4 000A6404 51 43 03 3E */ rlwimi r3, r10, 0, 0xc, 0x1f +/* 800A94C8 000A6408 54 64 02 3E */ clrlwi r4, r3, 8 +/* 800A94CC 000A640C 55 03 A0 16 */ slwi r3, r8, 0x14 +/* 800A94D0 000A6410 53 29 04 3E */ rlwimi r9, r25, 0, 0x10, 0x1f +/* 800A94D4 000A6414 51 23 03 3E */ rlwimi r3, r9, 0, 0xc, 0x1f +/* 800A94D8 000A6418 54 00 A0 16 */ slwi r0, r0, 0x14 +/* 800A94DC 000A641C 51 80 03 3E */ rlwimi r0, r12, 0, 0xc, 0x1f +/* 800A94E0 000A6420 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A94E4 000A6424 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A94E8 000A6428 64 E8 01 00 */ oris r8, r7, 0x100 +/* 800A94EC 000A642C 64 87 02 00 */ oris r7, r4, 0x200 +/* 800A94F0 000A6430 64 69 03 00 */ oris r9, r3, 0x300 +/* 800A94F4 000A6434 64 0A 04 00 */ oris r10, r0, 0x400 +/* 800A94F8 000A6438 48 00 00 24 */ b lbl_800A951C +lbl_800A94FC: +/* 800A94FC 000A643C 3D 00 01 66 */ lis r8, 0x01666666@ha +/* 800A9500 000A6440 3C E0 02 66 */ lis r7, 0x02666666@ha +/* 800A9504 000A6444 3C 80 03 66 */ lis r4, 0x03666666@ha +/* 800A9508 000A6448 3C 60 04 66 */ lis r3, 0x04666666@ha +/* 800A950C 000A644C 39 08 66 66 */ addi r8, r8, 0x01666666@l +/* 800A9510 000A6450 38 E7 66 66 */ addi r7, r7, 0x02666666@l +/* 800A9514 000A6454 39 24 66 66 */ addi r9, r4, 0x03666666@l +/* 800A9518 000A6458 39 43 66 66 */ addi r10, r3, 0x04666666@l +lbl_800A951C: +/* 800A951C 000A645C 38 80 00 61 */ li r4, 0x61 +/* 800A9520 000A6460 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A9524 000A6464 98 83 80 00 */ stb r4, 0xCC008000@l(r3) +/* 800A9528 000A6468 54 A0 06 3F */ clrlwi. r0, r5, 0x18 +/* 800A952C 000A646C 91 03 80 00 */ stw r8, -0x8000(r3) +/* 800A9530 000A6470 98 83 80 00 */ stb r4, -0x8000(r3) +/* 800A9534 000A6474 90 E3 80 00 */ stw r7, -0x8000(r3) +/* 800A9538 000A6478 98 83 80 00 */ stb r4, -0x8000(r3) +/* 800A953C 000A647C 91 23 80 00 */ stw r9, -0x8000(r3) +/* 800A9540 000A6480 98 83 80 00 */ stb r4, -0x8000(r3) +/* 800A9544 000A6484 91 43 80 00 */ stw r10, -0x8000(r3) +/* 800A9548 000A6488 41 82 00 68 */ beq lbl_800A95B0 +/* 800A954C 000A648C 88 06 00 00 */ lbz r0, 0(r6) +/* 800A9550 000A6490 88 66 00 01 */ lbz r3, 1(r6) +/* 800A9554 000A6494 64 05 53 00 */ oris r5, r0, 0x5300 +/* 800A9558 000A6498 88 06 00 04 */ lbz r0, 4(r6) +/* 800A955C 000A649C 88 86 00 02 */ lbz r4, 2(r6) +/* 800A9560 000A64A0 54 A7 06 A6 */ rlwinm r7, r5, 0, 0x1a, 0x13 +/* 800A9564 000A64A4 54 65 30 32 */ slwi r5, r3, 6 +/* 800A9568 000A64A8 88 66 00 05 */ lbz r3, 5(r6) +/* 800A956C 000A64AC 7C E7 2B 78 */ or r7, r7, r5 +/* 800A9570 000A64B0 64 08 54 00 */ oris r8, r0, 0x5400 +/* 800A9574 000A64B4 88 A6 00 03 */ lbz r5, 3(r6) +/* 800A9578 000A64B8 88 06 00 06 */ lbz r0, 6(r6) +/* 800A957C 000A64BC 54 E6 05 1A */ rlwinm r6, r7, 0, 0x14, 0xd +/* 800A9580 000A64C0 54 84 60 26 */ slwi r4, r4, 0xc +/* 800A9584 000A64C4 7C C6 23 78 */ or r6, r6, r4 +/* 800A9588 000A64C8 55 04 06 A6 */ rlwinm r4, r8, 0, 0x1a, 0x13 +/* 800A958C 000A64CC 54 63 30 32 */ slwi r3, r3, 6 +/* 800A9590 000A64D0 7C 83 1B 78 */ or r3, r4, r3 +/* 800A9594 000A64D4 54 C6 03 8E */ rlwinm r6, r6, 0, 0xe, 7 +/* 800A9598 000A64D8 54 A4 90 1A */ slwi r4, r5, 0x12 +/* 800A959C 000A64DC 54 63 05 1A */ rlwinm r3, r3, 0, 0x14, 0xd +/* 800A95A0 000A64E0 54 00 60 26 */ slwi r0, r0, 0xc +/* 800A95A4 000A64E4 7C C6 23 78 */ or r6, r6, r4 +/* 800A95A8 000A64E8 7C 67 03 78 */ or r7, r3, r0 +/* 800A95AC 000A64EC 48 00 00 14 */ b lbl_800A95C0 +lbl_800A95B0: +/* 800A95B0 000A64F0 3C 80 53 59 */ lis r4, 0x53595000@ha +/* 800A95B4 000A64F4 3C 60 54 00 */ lis r3, 0x54000015@ha +/* 800A95B8 000A64F8 38 C4 50 00 */ addi r6, r4, 0x53595000@l +/* 800A95BC 000A64FC 38 E3 00 15 */ addi r7, r3, 0x54000015@l +lbl_800A95C0: +/* 800A95C0 000A6500 38 A0 00 61 */ li r5, 0x61 +/* 800A95C4 000A6504 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A95C8 000A6508 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800A95CC 000A650C 98 A4 80 00 */ stb r5, 0xCC008000@l(r4) +/* 800A95D0 000A6510 38 00 00 00 */ li r0, 0 +/* 800A95D4 000A6514 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800A95D8 000A6518 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800A95DC 000A651C 90 E4 80 00 */ stw r7, -0x8000(r4) +/* 800A95E0 000A6520 B0 03 00 02 */ sth r0, 2(r3) +/* 800A95E4 000A6524 BA E1 00 2C */ lmw r23, 0x2c(r1) +/* 800A95E8 000A6528 38 21 00 50 */ addi r1, r1, 0x50 +/* 800A95EC 000A652C 4E 80 00 20 */ blr + +.global GXSetDispCopyGamma +GXSetDispCopyGamma: +/* 800A95F0 000A6530 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A95F4 000A6534 54 60 38 30 */ slwi r0, r3, 7 +/* 800A95F8 000A6538 84 64 01 EC */ lwzu r3, 0x1ec(r4) +/* 800A95FC 000A653C 54 63 06 6C */ rlwinm r3, r3, 0, 0x19, 0x16 +/* 800A9600 000A6540 7C 60 03 78 */ or r0, r3, r0 +/* 800A9604 000A6544 90 04 00 00 */ stw r0, 0(r4) +/* 800A9608 000A6548 4E 80 00 20 */ blr + +.global GXCopyDisp +GXCopyDisp: +/* 800A960C 000A654C 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 800A9610 000A6550 41 82 00 3C */ beq lbl_800A964C +/* 800A9614 000A6554 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A9618 000A6558 38 00 00 61 */ li r0, 0x61 +/* 800A961C 000A655C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A9620 000A6560 80 C7 01 D8 */ lwz r6, 0x1d8(r7) +/* 800A9624 000A6564 54 C6 00 3C */ rlwinm r6, r6, 0, 0, 0x1e +/* 800A9628 000A6568 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A962C 000A656C 60 C6 00 01 */ ori r6, r6, 1 +/* 800A9630 000A6570 54 C6 07 F6 */ rlwinm r6, r6, 0, 0x1f, 0x1b +/* 800A9634 000A6574 60 C6 00 0E */ ori r6, r6, 0xe +/* 800A9638 000A6578 90 C5 80 00 */ stw r6, -0x8000(r5) +/* 800A963C 000A657C 80 C7 01 D0 */ lwz r6, 0x1d0(r7) +/* 800A9640 000A6580 98 05 80 00 */ stb r0, -0x8000(r5) +/* 800A9644 000A6584 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d +/* 800A9648 000A6588 90 05 80 00 */ stw r0, -0x8000(r5) +lbl_800A964C: +/* 800A964C 000A658C 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 800A9650 000A6590 38 00 00 00 */ li r0, 0 +/* 800A9654 000A6594 40 82 00 18 */ bne lbl_800A966C +/* 800A9658 000A6598 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A965C 000A659C 80 A5 01 DC */ lwz r5, 0x1dc(r5) +/* 800A9660 000A65A0 54 A5 07 7E */ clrlwi r5, r5, 0x1d +/* 800A9664 000A65A4 28 05 00 03 */ cmplwi r5, 3 +/* 800A9668 000A65A8 40 82 00 30 */ bne lbl_800A9698 +lbl_800A966C: +/* 800A966C 000A65AC 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9670 000A65B0 80 E5 01 DC */ lwz r7, 0x1dc(r5) +/* 800A9674 000A65B4 54 E5 D7 FE */ rlwinm r5, r7, 0x1a, 0x1f, 0x1f +/* 800A9678 000A65B8 28 05 00 01 */ cmplwi r5, 1 +/* 800A967C 000A65BC 40 82 00 1C */ bne lbl_800A9698 +/* 800A9680 000A65C0 38 00 00 61 */ li r0, 0x61 +/* 800A9684 000A65C4 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800A9688 000A65C8 98 06 80 00 */ stb r0, 0xCC008000@l(r6) +/* 800A968C 000A65CC 54 E5 06 B0 */ rlwinm r5, r7, 0, 0x1a, 0x18 +/* 800A9690 000A65D0 38 00 00 01 */ li r0, 1 +/* 800A9694 000A65D4 90 A6 80 00 */ stw r5, -0x8000(r6) +lbl_800A9698: +/* 800A9698 000A65D8 39 20 00 61 */ li r9, 0x61 +/* 800A969C 000A65DC 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A96A0 000A65E0 3D 00 CC 01 */ lis r8, 0xCC008000@ha +/* 800A96A4 000A65E4 99 28 80 00 */ stb r9, 0xCC008000@l(r8) +/* 800A96A8 000A65E8 54 63 DA 3E */ rlwinm r3, r3, 0x1b, 8, 0x1f +/* 800A96AC 000A65EC 64 6A 4B 00 */ oris r10, r3, 0x4b00 +/* 800A96B0 000A65F0 80 C7 01 E0 */ lwz r6, 0x1e0(r7) +/* 800A96B4 000A65F4 54 85 06 3F */ clrlwi. r5, r4, 0x18 +/* 800A96B8 000A65F8 54 83 5B 68 */ rlwinm r3, r4, 0xb, 0xd, 0x14 +/* 800A96BC 000A65FC 90 C8 80 00 */ stw r6, -0x8000(r8) +/* 800A96C0 000A6600 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A96C4 000A6604 80 87 01 E4 */ lwz r4, 0x1e4(r7) +/* 800A96C8 000A6608 90 88 80 00 */ stw r4, -0x8000(r8) +/* 800A96CC 000A660C 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A96D0 000A6610 80 87 01 E8 */ lwz r4, 0x1e8(r7) +/* 800A96D4 000A6614 90 88 80 00 */ stw r4, -0x8000(r8) +/* 800A96D8 000A6618 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A96DC 000A661C 91 48 80 00 */ stw r10, -0x8000(r8) +/* 800A96E0 000A6620 80 87 01 EC */ lwz r4, 0x1ec(r7) +/* 800A96E4 000A6624 54 84 05 66 */ rlwinm r4, r4, 0, 0x15, 0x13 +/* 800A96E8 000A6628 7C 83 1B 78 */ or r3, r4, r3 +/* 800A96EC 000A662C 90 67 01 EC */ stw r3, 0x1ec(r7) +/* 800A96F0 000A6630 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A96F4 000A6634 38 83 01 EC */ addi r4, r3, 0x1ec +/* 800A96F8 000A6638 80 63 01 EC */ lwz r3, 0x1ec(r3) +/* 800A96FC 000A663C 54 63 04 A0 */ rlwinm r3, r3, 0, 0x12, 0x10 +/* 800A9700 000A6640 60 63 40 00 */ ori r3, r3, 0x4000 +/* 800A9704 000A6644 90 64 00 00 */ stw r3, 0(r4) +/* 800A9708 000A6648 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A970C 000A664C 38 83 01 EC */ addi r4, r3, 0x1ec +/* 800A9710 000A6650 80 63 01 EC */ lwz r3, 0x1ec(r3) +/* 800A9714 000A6654 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A9718 000A6658 64 63 52 00 */ oris r3, r3, 0x5200 +/* 800A971C 000A665C 90 64 00 00 */ stw r3, 0(r4) +/* 800A9720 000A6660 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A9724 000A6664 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A9728 000A6668 80 64 01 EC */ lwz r3, 0x1ec(r4) +/* 800A972C 000A666C 90 68 80 00 */ stw r3, -0x8000(r8) +/* 800A9730 000A6670 41 82 00 1C */ beq lbl_800A974C +/* 800A9734 000A6674 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A9738 000A6678 80 64 01 D8 */ lwz r3, 0x1d8(r4) +/* 800A973C 000A667C 90 68 80 00 */ stw r3, -0x8000(r8) +/* 800A9740 000A6680 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A9744 000A6684 80 64 01 D0 */ lwz r3, 0x1d0(r4) +/* 800A9748 000A6688 90 68 80 00 */ stw r3, -0x8000(r8) +lbl_800A974C: +/* 800A974C 000A668C 54 00 06 3F */ clrlwi. r0, r0, 0x18 +/* 800A9750 000A6690 41 82 00 1C */ beq lbl_800A976C +/* 800A9754 000A6694 38 00 00 61 */ li r0, 0x61 +/* 800A9758 000A6698 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A975C 000A669C 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800A9760 000A66A0 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800A9764 000A66A4 80 03 01 DC */ lwz r0, 0x1dc(r3) +/* 800A9768 000A66A8 90 04 80 00 */ stw r0, -0x8000(r4) +lbl_800A976C: +/* 800A976C 000A66AC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9770 000A66B0 38 00 00 00 */ li r0, 0 +/* 800A9774 000A66B4 B0 03 00 02 */ sth r0, 2(r3) +/* 800A9778 000A66B8 4E 80 00 20 */ blr + +.global GXCopyTex +GXCopyTex: +/* 800A977C 000A66BC 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 800A9780 000A66C0 41 82 00 3C */ beq lbl_800A97BC +/* 800A9784 000A66C4 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A9788 000A66C8 38 00 00 61 */ li r0, 0x61 +/* 800A978C 000A66CC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A9790 000A66D0 80 C7 01 D8 */ lwz r6, 0x1d8(r7) +/* 800A9794 000A66D4 54 C6 00 3C */ rlwinm r6, r6, 0, 0, 0x1e +/* 800A9798 000A66D8 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A979C 000A66DC 60 C6 00 01 */ ori r6, r6, 1 +/* 800A97A0 000A66E0 54 C6 07 F6 */ rlwinm r6, r6, 0, 0x1f, 0x1b +/* 800A97A4 000A66E4 60 C6 00 0E */ ori r6, r6, 0xe +/* 800A97A8 000A66E8 90 C5 80 00 */ stw r6, -0x8000(r5) +/* 800A97AC 000A66EC 80 C7 01 D0 */ lwz r6, 0x1d0(r7) +/* 800A97B0 000A66F0 98 05 80 00 */ stb r0, -0x8000(r5) +/* 800A97B4 000A66F4 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d +/* 800A97B8 000A66F8 90 05 80 00 */ stw r0, -0x8000(r5) +lbl_800A97BC: +/* 800A97BC 000A66FC 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A97C0 000A6700 38 00 00 00 */ li r0, 0 +/* 800A97C4 000A6704 88 A6 02 00 */ lbz r5, 0x200(r6) +/* 800A97C8 000A6708 80 E6 01 DC */ lwz r7, 0x1dc(r6) +/* 800A97CC 000A670C 28 05 00 00 */ cmplwi r5, 0 +/* 800A97D0 000A6710 41 82 00 1C */ beq lbl_800A97EC +/* 800A97D4 000A6714 54 E5 07 7E */ clrlwi r5, r7, 0x1d +/* 800A97D8 000A6718 28 05 00 03 */ cmplwi r5, 3 +/* 800A97DC 000A671C 41 82 00 10 */ beq lbl_800A97EC +/* 800A97E0 000A6720 54 E0 00 38 */ rlwinm r0, r7, 0, 0, 0x1c +/* 800A97E4 000A6724 60 07 00 03 */ ori r7, r0, 3 +/* 800A97E8 000A6728 38 00 00 01 */ li r0, 1 +lbl_800A97EC: +/* 800A97EC 000A672C 54 85 06 3F */ clrlwi. r5, r4, 0x18 +/* 800A97F0 000A6730 40 82 00 10 */ bne lbl_800A9800 +/* 800A97F4 000A6734 54 E5 07 7E */ clrlwi r5, r7, 0x1d +/* 800A97F8 000A6738 28 05 00 03 */ cmplwi r5, 3 +/* 800A97FC 000A673C 40 82 00 18 */ bne lbl_800A9814 +lbl_800A9800: +/* 800A9800 000A6740 54 E5 D7 FE */ rlwinm r5, r7, 0x1a, 0x1f, 0x1f +/* 800A9804 000A6744 28 05 00 01 */ cmplwi r5, 1 +/* 800A9808 000A6748 40 82 00 0C */ bne lbl_800A9814 +/* 800A980C 000A674C 38 00 00 01 */ li r0, 1 +/* 800A9810 000A6750 54 E7 06 B0 */ rlwinm r7, r7, 0, 0x1a, 0x18 +lbl_800A9814: +/* 800A9814 000A6754 54 05 06 3F */ clrlwi. r5, r0, 0x18 +/* 800A9818 000A6758 41 82 00 14 */ beq lbl_800A982C +/* 800A981C 000A675C 38 C0 00 61 */ li r6, 0x61 +/* 800A9820 000A6760 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A9824 000A6764 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800A9828 000A6768 90 E5 80 00 */ stw r7, -0x8000(r5) +lbl_800A982C: +/* 800A982C 000A676C 39 20 00 61 */ li r9, 0x61 +/* 800A9830 000A6770 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800A9834 000A6774 3D 00 CC 01 */ lis r8, 0xCC008000@ha +/* 800A9838 000A6778 99 28 80 00 */ stb r9, 0xCC008000@l(r8) +/* 800A983C 000A677C 54 63 DA 3E */ rlwinm r3, r3, 0x1b, 8, 0x1f +/* 800A9840 000A6780 64 6A 4B 00 */ oris r10, r3, 0x4b00 +/* 800A9844 000A6784 80 C7 01 F0 */ lwz r6, 0x1f0(r7) +/* 800A9848 000A6788 54 85 06 3F */ clrlwi. r5, r4, 0x18 +/* 800A984C 000A678C 54 83 5B 68 */ rlwinm r3, r4, 0xb, 0xd, 0x14 +/* 800A9850 000A6790 90 C8 80 00 */ stw r6, -0x8000(r8) +/* 800A9854 000A6794 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A9858 000A6798 80 87 01 F4 */ lwz r4, 0x1f4(r7) +/* 800A985C 000A679C 90 88 80 00 */ stw r4, -0x8000(r8) +/* 800A9860 000A67A0 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A9864 000A67A4 80 87 01 F8 */ lwz r4, 0x1f8(r7) +/* 800A9868 000A67A8 90 88 80 00 */ stw r4, -0x8000(r8) +/* 800A986C 000A67AC 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A9870 000A67B0 91 48 80 00 */ stw r10, -0x8000(r8) +/* 800A9874 000A67B4 80 87 01 FC */ lwz r4, 0x1fc(r7) +/* 800A9878 000A67B8 54 84 05 66 */ rlwinm r4, r4, 0, 0x15, 0x13 +/* 800A987C 000A67BC 7C 83 1B 78 */ or r3, r4, r3 +/* 800A9880 000A67C0 90 67 01 FC */ stw r3, 0x1fc(r7) +/* 800A9884 000A67C4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9888 000A67C8 38 83 01 FC */ addi r4, r3, 0x1fc +/* 800A988C 000A67CC 80 63 01 FC */ lwz r3, 0x1fc(r3) +/* 800A9890 000A67D0 54 63 04 A0 */ rlwinm r3, r3, 0, 0x12, 0x10 +/* 800A9894 000A67D4 90 64 00 00 */ stw r3, 0(r4) +/* 800A9898 000A67D8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A989C 000A67DC 38 83 01 FC */ addi r4, r3, 0x1fc +/* 800A98A0 000A67E0 80 63 01 FC */ lwz r3, 0x1fc(r3) +/* 800A98A4 000A67E4 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A98A8 000A67E8 64 63 52 00 */ oris r3, r3, 0x5200 +/* 800A98AC 000A67EC 90 64 00 00 */ stw r3, 0(r4) +/* 800A98B0 000A67F0 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A98B4 000A67F4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A98B8 000A67F8 80 64 01 FC */ lwz r3, 0x1fc(r4) +/* 800A98BC 000A67FC 90 68 80 00 */ stw r3, -0x8000(r8) +/* 800A98C0 000A6800 41 82 00 1C */ beq lbl_800A98DC +/* 800A98C4 000A6804 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A98C8 000A6808 80 64 01 D8 */ lwz r3, 0x1d8(r4) +/* 800A98CC 000A680C 90 68 80 00 */ stw r3, -0x8000(r8) +/* 800A98D0 000A6810 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800A98D4 000A6814 80 64 01 D0 */ lwz r3, 0x1d0(r4) +/* 800A98D8 000A6818 90 68 80 00 */ stw r3, -0x8000(r8) +lbl_800A98DC: +/* 800A98DC 000A681C 54 00 06 3F */ clrlwi. r0, r0, 0x18 +/* 800A98E0 000A6820 41 82 00 1C */ beq lbl_800A98FC +/* 800A98E4 000A6824 38 00 00 61 */ li r0, 0x61 +/* 800A98E8 000A6828 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A98EC 000A682C 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800A98F0 000A6830 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800A98F4 000A6834 80 03 01 DC */ lwz r0, 0x1dc(r3) +/* 800A98F8 000A6838 90 04 80 00 */ stw r0, -0x8000(r4) +lbl_800A98FC: +/* 800A98FC 000A683C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9900 000A6840 38 00 00 00 */ li r0, 0 +/* 800A9904 000A6844 B0 03 00 02 */ sth r0, 2(r3) +/* 800A9908 000A6848 4E 80 00 20 */ blr + +.global GXClearBoundingBox +GXClearBoundingBox: +/* 800A990C 000A684C 38 C0 00 61 */ li r6, 0x61 +/* 800A9910 000A6850 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9914 000A6854 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A9918 000A6858 3C 80 55 00 */ lis r4, 0x550003FF@ha +/* 800A991C 000A685C 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800A9920 000A6860 38 04 03 FF */ addi r0, r4, 0x550003FF@l +/* 800A9924 000A6864 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800A9928 000A6868 3C 80 56 00 */ lis r4, 0x560003FF@ha +/* 800A992C 000A686C 38 84 03 FF */ addi r4, r4, 0x560003FF@l +/* 800A9930 000A6870 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800A9934 000A6874 38 00 00 00 */ li r0, 0 +/* 800A9938 000A6878 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A993C 000A687C B0 03 00 02 */ sth r0, 2(r3) +/* 800A9940 000A6880 4E 80 00 20 */ blr + +.section .data, "wa" # 0x803A8380 - 0x803E6000 + .balign 8 +.global GXNtsc480IntDf +GXNtsc480IntDf: + .4byte 0 + .4byte 0x028001E0 + .4byte 0x01E00028 + .4byte 0x00000280 + .4byte 0x01E00000 + .4byte 0x00000001 + .4byte 0x00000606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060808 + .4byte 0x0A0C0A08 + .4byte 0x08000000 +.global GXNtsc480Int +GXNtsc480Int: + .4byte 0 + .4byte 0x028001E0 + .4byte 0x01E00028 + .4byte 0x00000280 + .4byte 0x01E00000 + .4byte 0x00000001 + .4byte 0x00000606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060000 + .4byte 0x15161500 + .4byte 0 +.global GXMpal480IntDf +GXMpal480IntDf: + .4byte 0x00000008 + .4byte 0x028001E0 + .4byte 0x01E00028 + .4byte 0x00000280 + .4byte 0x01E00000 + .4byte 0x00000001 + .4byte 0x00000606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060808 + .4byte 0x0A0C0A08 + .4byte 0x08000000 +.global GXPal528IntDf +GXPal528IntDf: + .4byte 0x00000004 + .4byte 0x02800210 + .4byte 0x02100028 + .4byte 0x00170280 + .4byte 0x02100000 + .4byte 0x00000001 + .4byte 0x00000606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060808 + .4byte 0x0A0C0A08 + .4byte 0x08000000 +.global GXEurgb60Hz480IntDf +GXEurgb60Hz480IntDf: + .4byte 0x00000014 + .4byte 0x028001E0 + .4byte 0x01E00028 + .4byte 0x00000280 + .4byte 0x01E00000 + .4byte 0x00000001 + .4byte 0x00000606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060606 + .4byte 0x06060808 + .4byte 0x0A0C0A08 + .4byte 0x08000000 + .4byte 0 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@83": + .4byte 0x43800000 + .4byte 0 +"@138": + .4byte 0x43300000 + .4byte 0 diff --git a/asm/Dolphin/gx/GXGeometry.s b/asm/Dolphin/gx/GXGeometry.s new file mode 100644 index 0000000..995f3bc --- /dev/null +++ b/asm/Dolphin/gx/GXGeometry.s @@ -0,0 +1,298 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __GXSetDirtyState +__GXSetDirtyState: +/* 800A8808 000A5748 7C 08 02 A6 */ mflr r0 +/* 800A880C 000A574C 90 01 00 04 */ stw r0, 4(r1) +/* 800A8810 000A5750 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A8814 000A5754 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8818 000A5758 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A881C 000A575C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 800A8820 000A5760 41 82 00 08 */ beq lbl_800A8828 +/* 800A8824 000A5764 48 00 27 59 */ bl __GXSetSUTexRegs +lbl_800A8828: +/* 800A8828 000A5768 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A882C 000A576C 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8830 000A5770 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 800A8834 000A5774 41 82 00 08 */ beq lbl_800A883C +/* 800A8838 000A5778 48 00 30 E1 */ bl __GXUpdateBPMask +lbl_800A883C: +/* 800A883C 000A577C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8840 000A5780 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8844 000A5784 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 800A8848 000A5788 41 82 00 08 */ beq lbl_800A8850 +/* 800A884C 000A578C 48 00 03 79 */ bl __GXSetGenMode +lbl_800A8850: +/* 800A8850 000A5790 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8854 000A5794 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8858 000A5798 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 800A885C 000A579C 41 82 00 08 */ beq lbl_800A8864 +/* 800A8860 000A57A0 4B FF E7 6D */ bl __GXSetVCD +lbl_800A8864: +/* 800A8864 000A57A4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8868 000A57A8 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A886C 000A57AC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 800A8870 000A57B0 41 82 00 08 */ beq lbl_800A8878 +/* 800A8874 000A57B4 4B FF F2 19 */ bl __GXSetVAT +lbl_800A8878: +/* 800A8878 000A57B8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A887C 000A57BC 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8880 000A57C0 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c +/* 800A8884 000A57C4 41 82 00 08 */ beq lbl_800A888C +/* 800A8888 000A57C8 4B FF E7 99 */ bl __GXCalculateVLim +lbl_800A888C: +/* 800A888C 000A57CC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8890 000A57D0 38 00 00 00 */ li r0, 0 +/* 800A8894 000A57D4 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A8898 000A57D8 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A889C 000A57DC 38 21 00 08 */ addi r1, r1, 8 +/* 800A88A0 000A57E0 7C 08 03 A6 */ mtlr r0 +/* 800A88A4 000A57E4 4E 80 00 20 */ blr + +.global GXBegin +GXBegin: +/* 800A88A8 000A57E8 7C 08 02 A6 */ mflr r0 +/* 800A88AC 000A57EC 90 01 00 04 */ stw r0, 4(r1) +/* 800A88B0 000A57F0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800A88B4 000A57F4 93 E1 00 24 */ stw r31, 0x24(r1) +/* 800A88B8 000A57F8 3B E5 00 00 */ addi r31, r5, 0 +/* 800A88BC 000A57FC 93 C1 00 20 */ stw r30, 0x20(r1) +/* 800A88C0 000A5800 3B C4 00 00 */ addi r30, r4, 0 +/* 800A88C4 000A5804 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 800A88C8 000A5808 3B A3 00 00 */ addi r29, r3, 0 +/* 800A88CC 000A580C 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A88D0 000A5810 80 06 04 F4 */ lwz r0, 0x4f4(r6) +/* 800A88D4 000A5814 28 00 00 00 */ cmplwi r0, 0 +/* 800A88D8 000A5818 41 82 00 80 */ beq lbl_800A8958 +/* 800A88DC 000A581C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 800A88E0 000A5820 41 82 00 08 */ beq lbl_800A88E8 +/* 800A88E4 000A5824 48 00 26 99 */ bl __GXSetSUTexRegs +lbl_800A88E8: +/* 800A88E8 000A5828 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A88EC 000A582C 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A88F0 000A5830 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 800A88F4 000A5834 41 82 00 08 */ beq lbl_800A88FC +/* 800A88F8 000A5838 48 00 30 21 */ bl __GXUpdateBPMask +lbl_800A88FC: +/* 800A88FC 000A583C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8900 000A5840 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8904 000A5844 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 800A8908 000A5848 41 82 00 08 */ beq lbl_800A8910 +/* 800A890C 000A584C 48 00 02 B9 */ bl __GXSetGenMode +lbl_800A8910: +/* 800A8910 000A5850 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8914 000A5854 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8918 000A5858 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 800A891C 000A585C 41 82 00 08 */ beq lbl_800A8924 +/* 800A8920 000A5860 4B FF E6 AD */ bl __GXSetVCD +lbl_800A8924: +/* 800A8924 000A5864 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8928 000A5868 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A892C 000A586C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 800A8930 000A5870 41 82 00 08 */ beq lbl_800A8938 +/* 800A8934 000A5874 4B FF F1 59 */ bl __GXSetVAT +lbl_800A8938: +/* 800A8938 000A5878 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A893C 000A587C 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8940 000A5880 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c +/* 800A8944 000A5884 41 82 00 08 */ beq lbl_800A894C +/* 800A8948 000A5888 4B FF E6 D9 */ bl __GXCalculateVLim +lbl_800A894C: +/* 800A894C 000A588C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8950 000A5890 38 00 00 00 */ li r0, 0 +/* 800A8954 000A5894 90 03 04 F4 */ stw r0, 0x4f4(r3) +lbl_800A8958: +/* 800A8958 000A5898 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A895C 000A589C 80 03 00 00 */ lwz r0, 0(r3) +/* 800A8960 000A58A0 28 00 00 00 */ cmplwi r0, 0 +/* 800A8964 000A58A4 40 82 00 08 */ bne lbl_800A896C +/* 800A8968 000A58A8 48 00 00 31 */ bl __GXSendFlushPrim +lbl_800A896C: +/* 800A896C 000A58AC 7F C0 EB 78 */ or r0, r30, r29 +/* 800A8970 000A58B0 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A8974 000A58B4 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800A8978 000A58B8 B3 E3 80 00 */ sth r31, -0x8000(r3) +/* 800A897C 000A58BC 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 800A8980 000A58C0 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 800A8984 000A58C4 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 800A8988 000A58C8 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 800A898C 000A58CC 38 21 00 28 */ addi r1, r1, 0x28 +/* 800A8990 000A58D0 7C 08 03 A6 */ mtlr r0 +/* 800A8994 000A58D4 4E 80 00 20 */ blr + +.global __GXSendFlushPrim +__GXSendFlushPrim: +/* 800A8998 000A58D8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A899C 000A58DC 38 00 00 98 */ li r0, 0x98 +/* 800A89A0 000A58E0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A89A4 000A58E4 A0 C3 00 04 */ lhz r6, 4(r3) +/* 800A89A8 000A58E8 38 80 00 00 */ li r4, 0 +/* 800A89AC 000A58EC A0 63 00 06 */ lhz r3, 6(r3) +/* 800A89B0 000A58F0 7C E6 19 D6 */ mullw r7, r6, r3 +/* 800A89B4 000A58F4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A89B8 000A58F8 B0 C5 80 00 */ sth r6, -0x8000(r5) +/* 800A89BC 000A58FC 38 67 00 03 */ addi r3, r7, 3 +/* 800A89C0 000A5900 28 07 00 00 */ cmplwi r7, 0 +/* 800A89C4 000A5904 54 63 F0 BE */ srwi r3, r3, 2 +/* 800A89C8 000A5908 40 81 00 48 */ ble lbl_800A8A10 +/* 800A89CC 000A590C 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 800A89D0 000A5910 7C 09 03 A6 */ mtctr r0 +/* 800A89D4 000A5914 41 82 00 30 */ beq lbl_800A8A04 +lbl_800A89D8: +/* 800A89D8 000A5918 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89DC 000A591C 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89E0 000A5920 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89E4 000A5924 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89E8 000A5928 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89EC 000A592C 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89F0 000A5930 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89F4 000A5934 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A89F8 000A5938 42 00 FF E0 */ bdnz lbl_800A89D8 +/* 800A89FC 000A593C 70 63 00 07 */ andi. r3, r3, 7 +/* 800A8A00 000A5940 41 82 00 10 */ beq lbl_800A8A10 +lbl_800A8A04: +/* 800A8A04 000A5944 7C 69 03 A6 */ mtctr r3 +lbl_800A8A08: +/* 800A8A08 000A5948 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800A8A0C 000A594C 42 00 FF FC */ bdnz lbl_800A8A08 +lbl_800A8A10: +/* 800A8A10 000A5950 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8A14 000A5954 38 00 00 01 */ li r0, 1 +/* 800A8A18 000A5958 B0 03 00 02 */ sth r0, 2(r3) +/* 800A8A1C 000A595C 4E 80 00 20 */ blr + +.global GXSetLineWidth +GXSetLineWidth: +/* 800A8A20 000A5960 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A8A24 000A5964 54 86 80 1E */ slwi r6, r4, 0x10 +/* 800A8A28 000A5968 38 80 00 61 */ li r4, 0x61 +/* 800A8A2C 000A596C 80 05 00 7C */ lwz r0, 0x7c(r5) +/* 800A8A30 000A5970 38 E5 00 7C */ addi r7, r5, 0x7c +/* 800A8A34 000A5974 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8A38 000A5978 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17 +/* 800A8A3C 000A597C 50 60 06 3E */ rlwimi r0, r3, 0, 0x18, 0x1f +/* 800A8A40 000A5980 90 07 00 00 */ stw r0, 0(r7) +/* 800A8A44 000A5984 38 00 00 00 */ li r0, 0 +/* 800A8A48 000A5988 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8A4C 000A598C 38 E3 00 7C */ addi r7, r3, 0x7c +/* 800A8A50 000A5990 80 63 00 7C */ lwz r3, 0x7c(r3) +/* 800A8A54 000A5994 54 63 04 18 */ rlwinm r3, r3, 0, 0x10, 0xc +/* 800A8A58 000A5998 7C 63 33 78 */ or r3, r3, r6 +/* 800A8A5C 000A599C 90 67 00 00 */ stw r3, 0(r7) +/* 800A8A60 000A59A0 98 85 80 00 */ stb r4, 0xCC008000@l(r5) +/* 800A8A64 000A59A4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8A68 000A59A8 80 64 00 7C */ lwz r3, 0x7c(r4) +/* 800A8A6C 000A59AC 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A8A70 000A59B0 B0 04 00 02 */ sth r0, 2(r4) +/* 800A8A74 000A59B4 4E 80 00 20 */ blr + +.global GXSetPointSize +GXSetPointSize: +/* 800A8A78 000A59B8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A8A7C 000A59BC 54 86 98 18 */ slwi r6, r4, 0x13 +/* 800A8A80 000A59C0 84 05 00 7C */ lwzu r0, 0x7c(r5) +/* 800A8A84 000A59C4 38 80 00 61 */ li r4, 0x61 +/* 800A8A88 000A59C8 54 00 06 1E */ rlwinm r0, r0, 0, 0x18, 0xf +/* 800A8A8C 000A59CC 50 60 44 2E */ rlwimi r0, r3, 8, 0x10, 0x17 +/* 800A8A90 000A59D0 90 05 00 00 */ stw r0, 0(r5) +/* 800A8A94 000A59D4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8A98 000A59D8 38 00 00 00 */ li r0, 0 +/* 800A8A9C 000A59DC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8AA0 000A59E0 38 E3 00 7C */ addi r7, r3, 0x7c +/* 800A8AA4 000A59E4 80 63 00 7C */ lwz r3, 0x7c(r3) +/* 800A8AA8 000A59E8 54 63 03 52 */ rlwinm r3, r3, 0, 0xd, 9 +/* 800A8AAC 000A59EC 7C 63 33 78 */ or r3, r3, r6 +/* 800A8AB0 000A59F0 90 67 00 00 */ stw r3, 0(r7) +/* 800A8AB4 000A59F4 98 85 80 00 */ stb r4, 0xCC008000@l(r5) +/* 800A8AB8 000A59F8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8ABC 000A59FC 80 64 00 7C */ lwz r3, 0x7c(r4) +/* 800A8AC0 000A5A00 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A8AC4 000A5A04 B0 04 00 02 */ sth r0, 2(r4) +/* 800A8AC8 000A5A08 4E 80 00 20 */ blr + +.global GXEnableTexOffsets +GXEnableTexOffsets: +/* 800A8ACC 000A5A0C 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A8AD0 000A5A10 54 67 10 3A */ slwi r7, r3, 2 +/* 800A8AD4 000A5A14 7C C0 3A 14 */ add r6, r0, r7 +/* 800A8AD8 000A5A18 80 66 00 B8 */ lwz r3, 0xb8(r6) +/* 800A8ADC 000A5A1C 54 80 91 9A */ rlwinm r0, r4, 0x12, 6, 0xd +/* 800A8AE0 000A5A20 54 A4 99 58 */ rlwinm r4, r5, 0x13, 5, 0xc +/* 800A8AE4 000A5A24 54 63 03 98 */ rlwinm r3, r3, 0, 0xe, 0xc +/* 800A8AE8 000A5A28 7C 60 03 78 */ or r0, r3, r0 +/* 800A8AEC 000A5A2C 90 06 00 B8 */ stw r0, 0xb8(r6) +/* 800A8AF0 000A5A30 38 60 00 61 */ li r3, 0x61 +/* 800A8AF4 000A5A34 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8AF8 000A5A38 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A8AFC 000A5A3C 38 00 00 00 */ li r0, 0 +/* 800A8B00 000A5A40 7D 06 3A 14 */ add r8, r6, r7 +/* 800A8B04 000A5A44 80 C8 00 B8 */ lwz r6, 0xb8(r8) +/* 800A8B08 000A5A48 54 C6 03 56 */ rlwinm r6, r6, 0, 0xd, 0xb +/* 800A8B0C 000A5A4C 7C C4 23 78 */ or r4, r6, r4 +/* 800A8B10 000A5A50 90 88 00 B8 */ stw r4, 0xb8(r8) +/* 800A8B14 000A5A54 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8B18 000A5A58 98 65 80 00 */ stb r3, 0xCC008000@l(r5) +/* 800A8B1C 000A5A5C 7C 64 3A 14 */ add r3, r4, r7 +/* 800A8B20 000A5A60 80 63 00 B8 */ lwz r3, 0xb8(r3) +/* 800A8B24 000A5A64 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A8B28 000A5A68 B0 04 00 02 */ sth r0, 2(r4) +/* 800A8B2C 000A5A6C 4E 80 00 20 */ blr + +.global GXSetCullMode +GXSetCullMode: +/* 800A8B30 000A5A70 2C 03 00 02 */ cmpwi r3, 2 +/* 800A8B34 000A5A74 41 82 00 1C */ beq lbl_800A8B50 +/* 800A8B38 000A5A78 40 80 00 1C */ bge lbl_800A8B54 +/* 800A8B3C 000A5A7C 2C 03 00 01 */ cmpwi r3, 1 +/* 800A8B40 000A5A80 40 80 00 08 */ bge lbl_800A8B48 +/* 800A8B44 000A5A84 48 00 00 10 */ b lbl_800A8B54 +lbl_800A8B48: +/* 800A8B48 000A5A88 38 60 00 02 */ li r3, 2 +/* 800A8B4C 000A5A8C 48 00 00 08 */ b lbl_800A8B54 +lbl_800A8B50: +/* 800A8B50 000A5A90 38 60 00 01 */ li r3, 1 +lbl_800A8B54: +/* 800A8B54 000A5A94 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8B58 000A5A98 54 60 70 22 */ slwi r0, r3, 0xe +/* 800A8B5C 000A5A9C 84 64 02 04 */ lwzu r3, 0x204(r4) +/* 800A8B60 000A5AA0 54 63 04 9E */ rlwinm r3, r3, 0, 0x12, 0xf +/* 800A8B64 000A5AA4 7C 60 03 78 */ or r0, r3, r0 +/* 800A8B68 000A5AA8 90 04 00 00 */ stw r0, 0(r4) +/* 800A8B6C 000A5AAC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8B70 000A5AB0 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8B74 000A5AB4 60 00 00 04 */ ori r0, r0, 4 +/* 800A8B78 000A5AB8 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A8B7C 000A5ABC 4E 80 00 20 */ blr + +.global GXSetCoPlanar +GXSetCoPlanar: +/* 800A8B80 000A5AC0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8B84 000A5AC4 54 60 99 58 */ rlwinm r0, r3, 0x13, 5, 0xc +/* 800A8B88 000A5AC8 38 A0 00 61 */ li r5, 0x61 +/* 800A8B8C 000A5ACC 80 64 02 04 */ lwz r3, 0x204(r4) +/* 800A8B90 000A5AD0 38 C4 02 04 */ addi r6, r4, 0x204 +/* 800A8B94 000A5AD4 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800A8B98 000A5AD8 54 63 03 56 */ rlwinm r3, r3, 0, 0xd, 0xb +/* 800A8B9C 000A5ADC 7C 60 03 78 */ or r0, r3, r0 +/* 800A8BA0 000A5AE0 90 06 00 00 */ stw r0, 0(r6) +/* 800A8BA4 000A5AE4 3C 00 FE 08 */ lis r0, 0xfe08 +/* 800A8BA8 000A5AE8 98 A4 80 00 */ stb r5, 0xCC008000@l(r4) +/* 800A8BAC 000A5AEC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8BB0 000A5AF0 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800A8BB4 000A5AF4 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800A8BB8 000A5AF8 80 03 02 04 */ lwz r0, 0x204(r3) +/* 800A8BBC 000A5AFC 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800A8BC0 000A5B00 4E 80 00 20 */ blr + +.global __GXSetGenMode +__GXSetGenMode: +/* 800A8BC4 000A5B04 38 00 00 61 */ li r0, 0x61 +/* 800A8BC8 000A5B08 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8BCC 000A5B0C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8BD0 000A5B10 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A8BD4 000A5B14 38 00 00 00 */ li r0, 0 +/* 800A8BD8 000A5B18 80 64 02 04 */ lwz r3, 0x204(r4) +/* 800A8BDC 000A5B1C 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A8BE0 000A5B20 B0 04 00 02 */ sth r0, 2(r4) +/* 800A8BE4 000A5B24 4E 80 00 20 */ blr diff --git a/asm/Dolphin/gx/GXInit.s b/asm/Dolphin/gx/GXInit.s new file mode 100644 index 0000000..55e6ea1 --- /dev/null +++ b/asm/Dolphin/gx/GXInit.s @@ -0,0 +1,1184 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __GXDefaultTexRegionCallback +__GXDefaultTexRegionCallback: +/* 800A4EE4 000A1E24 7C 08 02 A6 */ mflr r0 +/* 800A4EE8 000A1E28 90 01 00 04 */ stw r0, 4(r1) +/* 800A4EEC 000A1E2C 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A4EF0 000A1E30 48 00 59 E1 */ bl GXGetTexObjFmt +/* 800A4EF4 000A1E34 2C 03 00 08 */ cmpwi r3, 8 +/* 800A4EF8 000A1E38 41 82 00 38 */ beq lbl_800A4F30 +/* 800A4EFC 000A1E3C 2C 03 00 09 */ cmpwi r3, 9 +/* 800A4F00 000A1E40 41 82 00 30 */ beq lbl_800A4F30 +/* 800A4F04 000A1E44 2C 03 00 0A */ cmpwi r3, 0xa +/* 800A4F08 000A1E48 41 82 00 28 */ beq lbl_800A4F30 +/* 800A4F0C 000A1E4C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A4F10 000A1E50 80 65 02 C8 */ lwz r3, 0x2c8(r5) +/* 800A4F14 000A1E54 54 60 07 7E */ clrlwi r0, r3, 0x1d +/* 800A4F18 000A1E58 38 83 00 01 */ addi r4, r3, 1 +/* 800A4F1C 000A1E5C 54 03 20 36 */ slwi r3, r0, 4 +/* 800A4F20 000A1E60 90 85 02 C8 */ stw r4, 0x2c8(r5) +/* 800A4F24 000A1E64 38 63 02 08 */ addi r3, r3, 0x208 +/* 800A4F28 000A1E68 7C 65 1A 14 */ add r3, r5, r3 +/* 800A4F2C 000A1E6C 48 00 00 24 */ b lbl_800A4F50 +lbl_800A4F30: +/* 800A4F30 000A1E70 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A4F34 000A1E74 80 65 02 CC */ lwz r3, 0x2cc(r5) +/* 800A4F38 000A1E78 54 60 07 BE */ clrlwi r0, r3, 0x1e +/* 800A4F3C 000A1E7C 38 83 00 01 */ addi r4, r3, 1 +/* 800A4F40 000A1E80 54 03 20 36 */ slwi r3, r0, 4 +/* 800A4F44 000A1E84 90 85 02 CC */ stw r4, 0x2cc(r5) +/* 800A4F48 000A1E88 38 63 02 88 */ addi r3, r3, 0x288 +/* 800A4F4C 000A1E8C 7C 65 1A 14 */ add r3, r5, r3 +lbl_800A4F50: +/* 800A4F50 000A1E90 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A4F54 000A1E94 38 21 00 08 */ addi r1, r1, 8 +/* 800A4F58 000A1E98 7C 08 03 A6 */ mtlr r0 +/* 800A4F5C 000A1E9C 4E 80 00 20 */ blr + +.global __GXDefaultTlutRegionCallback +__GXDefaultTlutRegionCallback: +/* 800A4F60 000A1EA0 28 03 00 14 */ cmplwi r3, 0x14 +/* 800A4F64 000A1EA4 41 80 00 0C */ blt lbl_800A4F70 +/* 800A4F68 000A1EA8 38 60 00 00 */ li r3, 0 +/* 800A4F6C 000A1EAC 48 00 00 14 */ b lbl_800A4F80 +lbl_800A4F70: +/* 800A4F70 000A1EB0 54 63 20 36 */ slwi r3, r3, 4 +/* 800A4F74 000A1EB4 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A4F78 000A1EB8 38 63 02 D0 */ addi r3, r3, 0x2d0 +/* 800A4F7C 000A1EBC 7C 60 1A 14 */ add r3, r0, r3 +lbl_800A4F80: +/* 800A4F80 000A1EC0 4E 80 00 20 */ blr + +.global GXInit +GXInit: +/* 800A4F84 000A1EC4 7C 08 02 A6 */ mflr r0 +/* 800A4F88 000A1EC8 90 01 00 04 */ stw r0, 4(r1) +/* 800A4F8C 000A1ECC 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 800A4F90 000A1ED0 BF 41 00 30 */ stmw r26, 0x30(r1) +/* 800A4F94 000A1ED4 7C 7B 1B 78 */ mr r27, r3 +/* 800A4F98 000A1ED8 7C 9A 23 78 */ mr r26, r4 +/* 800A4F9C 000A1EDC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A4FA0 000A1EE0 3B E0 00 00 */ li r31, 0 +/* 800A4FA4 000A1EE4 3C 80 80 3F */ lis r4, gxData@ha +/* 800A4FA8 000A1EE8 9B E3 04 F0 */ stb r31, 0x4f0(r3) +/* 800A4FAC 000A1EEC 38 00 00 01 */ li r0, 1 +/* 800A4FB0 000A1EF0 3B C4 C1 A0 */ addi r30, r4, gxData@l +/* 800A4FB4 000A1EF4 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A4FB8 000A1EF8 38 60 00 01 */ li r3, 1 +/* 800A4FBC 000A1EFC 38 80 00 00 */ li r4, 0 +/* 800A4FC0 000A1F00 98 05 04 F1 */ stb r0, 0x4f1(r5) +/* 800A4FC4 000A1F04 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A4FC8 000A1F08 93 E5 04 DC */ stw r31, 0x4dc(r5) +/* 800A4FCC 000A1F0C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A4FD0 000A1F10 93 E5 04 E0 */ stw r31, 0x4e0(r5) +/* 800A4FD4 000A1F14 48 00 31 C5 */ bl GXSetMisc +/* 800A4FD8 000A1F18 3C 80 CC 00 */ lis r4, 0xCC003000@ha +/* 800A4FDC 000A1F1C 38 A4 30 00 */ addi r5, r4, 0xCC003000@l +/* 800A4FE0 000A1F20 90 8D 95 5C */ stw r4, __cpReg@sda21(r13) +/* 800A4FE4 000A1F24 38 64 10 00 */ addi r3, r4, 0x1000 +/* 800A4FE8 000A1F28 38 04 40 00 */ addi r0, r4, 0x4000 +/* 800A4FEC 000A1F2C 90 AD 95 58 */ stw r5, __piReg@sda21(r13) +/* 800A4FF0 000A1F30 90 6D 95 60 */ stw r3, __peReg@sda21(r13) +/* 800A4FF4 000A1F34 90 0D 95 64 */ stw r0, __memReg@sda21(r13) +/* 800A4FF8 000A1F38 48 00 16 1D */ bl __GXFifoInit +/* 800A4FFC 000A1F3C 7F 64 DB 78 */ mr r4, r27 +/* 800A5000 000A1F40 7F 45 D3 78 */ mr r5, r26 +/* 800A5004 000A1F44 38 7E 04 F8 */ addi r3, r30, 0x4f8 +/* 800A5008 000A1F48 48 00 11 09 */ bl GXInitFifoBase +/* 800A500C 000A1F4C 38 7E 04 F8 */ addi r3, r30, 0x4f8 +/* 800A5010 000A1F50 48 00 11 E9 */ bl GXSetCPUFifo +/* 800A5014 000A1F54 38 7E 04 F8 */ addi r3, r30, 0x4f8 +/* 800A5018 000A1F58 48 00 12 F1 */ bl GXSetGPFifo +/* 800A501C 000A1F5C 48 00 37 6D */ bl __GXPEInit +/* 800A5020 000A1F60 4B FE 73 D5 */ bl PPCMfhid2 +/* 800A5024 000A1F64 3C 80 0C 01 */ lis r4, 0x0C008000@ha +/* 800A5028 000A1F68 7C 7A 1B 78 */ mr r26, r3 +/* 800A502C 000A1F6C 38 64 80 00 */ addi r3, r4, 0x0C008000@l +/* 800A5030 000A1F70 4B FE 73 D5 */ bl PPCMtwpar +/* 800A5034 000A1F74 67 43 40 00 */ oris r3, r26, 0x4000 +/* 800A5038 000A1F78 4B FE 73 C5 */ bl PPCMthid2 +/* 800A503C 000A1F7C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5040 000A1F80 38 00 00 FF */ li r0, 0xff +/* 800A5044 000A1F84 38 E0 00 00 */ li r7, 0 +/* 800A5048 000A1F88 93 E3 02 04 */ stw r31, 0x204(r3) +/* 800A504C 000A1F8C 38 60 00 C0 */ li r3, 0xc0 +/* 800A5050 000A1F90 38 80 00 C1 */ li r4, 0xc1 +/* 800A5054 000A1F94 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5058 000A1F98 38 C5 02 04 */ addi r6, r5, 0x204 +/* 800A505C 000A1F9C 80 A6 00 00 */ lwz r5, 0(r6) +/* 800A5060 000A1FA0 54 A5 02 3E */ clrlwi r5, r5, 8 +/* 800A5064 000A1FA4 90 A6 00 00 */ stw r5, 0(r6) +/* 800A5068 000A1FA8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A506C 000A1FAC 90 05 01 24 */ stw r0, 0x124(r5) +/* 800A5070 000A1FB0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5074 000A1FB4 38 A5 01 24 */ addi r5, r5, 0x124 +/* 800A5078 000A1FB8 80 05 00 00 */ lwz r0, 0(r5) +/* 800A507C 000A1FBC 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A5080 000A1FC0 64 00 0F 00 */ oris r0, r0, 0xf00 +/* 800A5084 000A1FC4 90 05 00 00 */ stw r0, 0(r5) +/* 800A5088 000A1FC8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A508C 000A1FCC 93 E5 00 7C */ stw r31, 0x7c(r5) +/* 800A5090 000A1FD0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5094 000A1FD4 38 A5 00 7C */ addi r5, r5, 0x7c +/* 800A5098 000A1FD8 80 05 00 00 */ lwz r0, 0(r5) +/* 800A509C 000A1FDC 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A50A0 000A1FE0 64 00 22 00 */ oris r0, r0, 0x2200 +/* 800A50A4 000A1FE4 90 05 00 00 */ stw r0, 0(r5) +/* 800A50A8 000A1FE8 48 00 00 04 */ b lbl_800A50AC +lbl_800A50AC: +/* 800A50AC 000A1FEC 38 00 00 10 */ li r0, 0x10 +/* 800A50B0 000A1FF0 7C 09 03 A6 */ mtctr r0 +/* 800A50B4 000A1FF4 48 00 00 04 */ b lbl_800A50B8 +lbl_800A50B8: +/* 800A50B8 000A1FF8 48 00 00 04 */ b lbl_800A50BC +lbl_800A50BC: +/* 800A50BC 000A1FFC 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A50C0 000A2000 54 E8 F8 7E */ srwi r8, r7, 1 +/* 800A50C4 000A2004 3B 5F 01 30 */ addi r26, r31, 0x130 +/* 800A50C8 000A2008 38 A0 00 00 */ li r5, 0 +/* 800A50CC 000A200C 7C A6 D1 2E */ stwx r5, r6, r26 +/* 800A50D0 000A2010 55 1C 10 3A */ slwi r28, r8, 2 +/* 800A50D4 000A2014 54 6B C0 0E */ slwi r11, r3, 0x18 +/* 800A50D8 000A2018 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A50DC 000A201C 3B 7F 01 70 */ addi r27, r31, 0x170 +/* 800A50E0 000A2020 39 9F 04 9C */ addi r12, r31, 0x49c +/* 800A50E4 000A2024 7C A6 D9 2E */ stwx r5, r6, r27 +/* 800A50E8 000A2028 54 8A C0 0E */ slwi r10, r4, 0x18 +/* 800A50EC 000A202C 39 28 00 F6 */ addi r9, r8, 0xf6 +/* 800A50F0 000A2030 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A50F4 000A2034 38 1C 01 00 */ addi r0, r28, 0x100 +/* 800A50F8 000A2038 39 08 00 28 */ addi r8, r8, 0x28 +/* 800A50FC 000A203C 7C A6 01 2E */ stwx r5, r6, r0 +/* 800A5100 000A2040 3B A0 00 FF */ li r29, 0xff +/* 800A5104 000A2044 38 DC 01 B0 */ addi r6, r28, 0x1b0 +/* 800A5108 000A2048 83 8D 82 C8 */ lwz r28, gx@sda21(r13) +/* 800A510C 000A204C 55 29 C0 0E */ slwi r9, r9, 0x18 +/* 800A5110 000A2050 55 08 C0 0E */ slwi r8, r8, 0x18 +/* 800A5114 000A2054 7F BC 61 2E */ stwx r29, r28, r12 +/* 800A5118 000A2058 3B FF 00 04 */ addi r31, r31, 4 +/* 800A511C 000A205C 38 63 00 02 */ addi r3, r3, 2 +/* 800A5120 000A2060 81 8D 82 C8 */ lwz r12, gx@sda21(r13) +/* 800A5124 000A2064 38 84 00 02 */ addi r4, r4, 2 +/* 800A5128 000A2068 38 E7 00 01 */ addi r7, r7, 1 +/* 800A512C 000A206C 7F 4C D2 14 */ add r26, r12, r26 +/* 800A5130 000A2070 81 9A 00 00 */ lwz r12, 0(r26) +/* 800A5134 000A2074 55 8C 02 3E */ clrlwi r12, r12, 8 +/* 800A5138 000A2078 7D 8B 5B 78 */ or r11, r12, r11 +/* 800A513C 000A207C 91 7A 00 00 */ stw r11, 0(r26) +/* 800A5140 000A2080 81 6D 82 C8 */ lwz r11, gx@sda21(r13) +/* 800A5144 000A2084 7D 8B DA 14 */ add r12, r11, r27 +/* 800A5148 000A2088 81 6C 00 00 */ lwz r11, 0(r12) +/* 800A514C 000A208C 55 6B 02 3E */ clrlwi r11, r11, 8 +/* 800A5150 000A2090 7D 6A 53 78 */ or r10, r11, r10 +/* 800A5154 000A2094 91 4C 00 00 */ stw r10, 0(r12) +/* 800A5158 000A2098 81 4D 82 C8 */ lwz r10, gx@sda21(r13) +/* 800A515C 000A209C 7C CA 32 14 */ add r6, r10, r6 +/* 800A5160 000A20A0 81 46 00 00 */ lwz r10, 0(r6) +/* 800A5164 000A20A4 55 4A 02 3E */ clrlwi r10, r10, 8 +/* 800A5168 000A20A8 7D 49 4B 78 */ or r9, r10, r9 +/* 800A516C 000A20AC 91 26 00 00 */ stw r9, 0(r6) +/* 800A5170 000A20B0 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800A5174 000A20B4 7C C6 02 14 */ add r6, r6, r0 +/* 800A5178 000A20B8 80 06 00 00 */ lwz r0, 0(r6) +/* 800A517C 000A20BC 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A5180 000A20C0 7C 00 43 78 */ or r0, r0, r8 +/* 800A5184 000A20C4 90 06 00 00 */ stw r0, 0(r6) +/* 800A5188 000A20C8 42 00 FF 34 */ bdnz lbl_800A50BC +/* 800A518C 000A20CC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5190 000A20D0 39 00 00 30 */ li r8, 0x30 +/* 800A5194 000A20D4 39 20 00 31 */ li r9, 0x31 +/* 800A5198 000A20D8 90 A3 01 20 */ stw r5, 0x120(r3) +/* 800A519C 000A20DC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A51A0 000A20E0 38 63 01 20 */ addi r3, r3, 0x120 +/* 800A51A4 000A20E4 80 03 00 00 */ lwz r0, 0(r3) +/* 800A51A8 000A20E8 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A51AC 000A20EC 64 00 27 00 */ oris r0, r0, 0x2700 +/* 800A51B0 000A20F0 90 03 00 00 */ stw r0, 0(r3) +/* 800A51B4 000A20F4 48 00 00 04 */ b lbl_800A51B8 +lbl_800A51B8: +/* 800A51B8 000A20F8 38 00 00 04 */ li r0, 4 +/* 800A51BC 000A20FC 7C 09 03 A6 */ mtctr r0 +/* 800A51C0 000A2100 48 00 00 04 */ b lbl_800A51C4 +lbl_800A51C4: +/* 800A51C4 000A2104 48 00 00 04 */ b lbl_800A51C8 +lbl_800A51C8: +/* 800A51C8 000A2108 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A51CC 000A210C 55 04 C0 0E */ slwi r4, r8, 0x18 +/* 800A51D0 000A2110 38 E5 00 B8 */ addi r7, r5, 0xb8 +/* 800A51D4 000A2114 3B A0 00 00 */ li r29, 0 +/* 800A51D8 000A2118 7F A3 39 2E */ stwx r29, r3, r7 +/* 800A51DC 000A211C 38 C5 00 D8 */ addi r6, r5, 0xd8 +/* 800A51E0 000A2120 55 20 C0 0E */ slwi r0, r9, 0x18 +/* 800A51E4 000A2124 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A51E8 000A2128 38 A5 00 04 */ addi r5, r5, 4 +/* 800A51EC 000A212C 39 08 00 02 */ addi r8, r8, 2 +/* 800A51F0 000A2130 7F A3 31 2E */ stwx r29, r3, r6 +/* 800A51F4 000A2134 39 29 00 02 */ addi r9, r9, 2 +/* 800A51F8 000A2138 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A51FC 000A213C 7D 43 3A 14 */ add r10, r3, r7 +/* 800A5200 000A2140 80 6A 00 00 */ lwz r3, 0(r10) +/* 800A5204 000A2144 38 E5 00 B8 */ addi r7, r5, 0xb8 +/* 800A5208 000A2148 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A520C 000A214C 7C 63 23 78 */ or r3, r3, r4 +/* 800A5210 000A2150 90 6A 00 00 */ stw r3, 0(r10) +/* 800A5214 000A2154 55 04 C0 0E */ slwi r4, r8, 0x18 +/* 800A5218 000A2158 39 08 00 02 */ addi r8, r8, 2 +/* 800A521C 000A215C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5220 000A2160 7D 43 32 14 */ add r10, r3, r6 +/* 800A5224 000A2164 80 6A 00 00 */ lwz r3, 0(r10) +/* 800A5228 000A2168 38 C5 00 D8 */ addi r6, r5, 0xd8 +/* 800A522C 000A216C 38 A5 00 04 */ addi r5, r5, 4 +/* 800A5230 000A2170 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A5234 000A2174 7C 60 03 78 */ or r0, r3, r0 +/* 800A5238 000A2178 90 0A 00 00 */ stw r0, 0(r10) +/* 800A523C 000A217C 55 20 C0 0E */ slwi r0, r9, 0x18 +/* 800A5240 000A2180 39 29 00 02 */ addi r9, r9, 2 +/* 800A5244 000A2184 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5248 000A2188 7F A3 39 2E */ stwx r29, r3, r7 +/* 800A524C 000A218C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5250 000A2190 7F A3 31 2E */ stwx r29, r3, r6 +/* 800A5254 000A2194 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5258 000A2198 7D 43 3A 14 */ add r10, r3, r7 +/* 800A525C 000A219C 80 6A 00 00 */ lwz r3, 0(r10) +/* 800A5260 000A21A0 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A5264 000A21A4 7C 63 23 78 */ or r3, r3, r4 +/* 800A5268 000A21A8 90 6A 00 00 */ stw r3, 0(r10) +/* 800A526C 000A21AC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A5270 000A21B0 7D 43 32 14 */ add r10, r3, r6 +/* 800A5274 000A21B4 80 6A 00 00 */ lwz r3, 0(r10) +/* 800A5278 000A21B8 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800A527C 000A21BC 7C 60 03 78 */ or r0, r3, r0 +/* 800A5280 000A21C0 90 0A 00 00 */ stw r0, 0(r10) +/* 800A5284 000A21C4 42 00 FF 44 */ bdnz lbl_800A51C8 +/* 800A5288 000A21C8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A528C 000A21CC 3C 60 10 62 */ lis r3, 0x10624DD3@ha +/* 800A5290 000A21D0 3C 80 80 00 */ lis r4, 0x800000F8@ha +/* 800A5294 000A21D4 38 A5 00 F8 */ addi r5, r5, 0xf8 +/* 800A5298 000A21D8 80 05 00 00 */ lwz r0, 0(r5) +/* 800A529C 000A21DC 38 63 4D D3 */ addi r3, r3, 0x10624DD3@l +/* 800A52A0 000A21E0 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A52A4 000A21E4 64 00 20 00 */ oris r0, r0, 0x2000 +/* 800A52A8 000A21E8 90 05 00 00 */ stw r0, 0(r5) +/* 800A52AC 000A21EC 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A52B0 000A21F0 38 A5 00 FC */ addi r5, r5, 0xfc +/* 800A52B4 000A21F4 80 05 00 00 */ lwz r0, 0(r5) +/* 800A52B8 000A21F8 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A52BC 000A21FC 64 00 21 00 */ oris r0, r0, 0x2100 +/* 800A52C0 000A2200 90 05 00 00 */ stw r0, 0(r5) +/* 800A52C4 000A2204 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A52C8 000A2208 38 A5 01 D0 */ addi r5, r5, 0x1d0 +/* 800A52CC 000A220C 80 05 00 00 */ lwz r0, 0(r5) +/* 800A52D0 000A2210 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A52D4 000A2214 64 00 41 00 */ oris r0, r0, 0x4100 +/* 800A52D8 000A2218 90 05 00 00 */ stw r0, 0(r5) +/* 800A52DC 000A221C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A52E0 000A2220 38 A5 01 D4 */ addi r5, r5, 0x1d4 +/* 800A52E4 000A2224 80 05 00 00 */ lwz r0, 0(r5) +/* 800A52E8 000A2228 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A52EC 000A222C 64 00 42 00 */ oris r0, r0, 0x4200 +/* 800A52F0 000A2230 90 05 00 00 */ stw r0, 0(r5) +/* 800A52F4 000A2234 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A52F8 000A2238 38 A5 01 D8 */ addi r5, r5, 0x1d8 +/* 800A52FC 000A223C 80 05 00 00 */ lwz r0, 0(r5) +/* 800A5300 000A2240 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A5304 000A2244 64 00 40 00 */ oris r0, r0, 0x4000 +/* 800A5308 000A2248 90 05 00 00 */ stw r0, 0(r5) +/* 800A530C 000A224C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5310 000A2250 38 A5 01 DC */ addi r5, r5, 0x1dc +/* 800A5314 000A2254 80 05 00 00 */ lwz r0, 0(r5) +/* 800A5318 000A2258 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A531C 000A225C 64 00 43 00 */ oris r0, r0, 0x4300 +/* 800A5320 000A2260 90 05 00 00 */ stw r0, 0(r5) +/* 800A5324 000A2264 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5328 000A2268 38 A5 01 FC */ addi r5, r5, 0x1fc +/* 800A532C 000A226C 80 05 00 00 */ lwz r0, 0(r5) +/* 800A5330 000A2270 54 00 06 6C */ rlwinm r0, r0, 0, 0x19, 0x16 +/* 800A5334 000A2274 90 05 00 00 */ stw r0, 0(r5) +/* 800A5338 000A2278 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A533C 000A227C 93 A5 04 F4 */ stw r29, 0x4f4(r5) +/* 800A5340 000A2280 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5344 000A2284 9B A5 04 F2 */ stb r29, 0x4f2(r5) +/* 800A5348 000A2288 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4) +/* 800A534C 000A228C 7C 03 00 16 */ mulhwu r0, r3, r0 +/* 800A5350 000A2290 54 1A D9 7E */ srwi r26, r0, 5 +/* 800A5354 000A2294 48 00 66 91 */ bl __GXFlushTextureState +/* 800A5358 000A2298 57 40 AA FE */ srwi r0, r26, 0xb +/* 800A535C 000A229C 64 00 69 00 */ oris r0, r0, 0x6900 +/* 800A5360 000A22A0 3B 80 00 61 */ li r28, 0x61 +/* 800A5364 000A22A4 3F E0 CC 01 */ lis r31, 0xCC008000@ha +/* 800A5368 000A22A8 9B 9F 80 00 */ stb r28, 0xCC008000@l(r31) +/* 800A536C 000A22AC 60 00 04 00 */ ori r0, r0, 0x400 +/* 800A5370 000A22B0 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800A5374 000A22B4 48 00 66 71 */ bl __GXFlushTextureState +/* 800A5378 000A22B8 3C 60 3E 10 */ lis r3, 0x3E0F83E1@ha +/* 800A537C 000A22BC 9B 9F 80 00 */ stb r28, -0x8000(r31) +/* 800A5380 000A22C0 38 03 83 E1 */ addi r0, r3, 0x3E0F83E1@l +/* 800A5384 000A22C4 7C 00 D0 16 */ mulhwu r0, r0, r26 +/* 800A5388 000A22C8 54 00 B2 BE */ srwi r0, r0, 0xa +/* 800A538C 000A22CC 64 00 46 00 */ oris r0, r0, 0x4600 +/* 800A5390 000A22D0 60 00 02 00 */ ori r0, r0, 0x200 +/* 800A5394 000A22D4 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800A5398 000A22D8 7F A7 EB 78 */ mr r7, r29 +/* 800A539C 000A22DC 48 00 00 04 */ b lbl_800A53A0 +lbl_800A53A0: +/* 800A53A0 000A22E0 38 00 00 02 */ li r0, 2 +/* 800A53A4 000A22E4 7C 09 03 A6 */ mtctr r0 +/* 800A53A8 000A22E8 48 00 00 04 */ b lbl_800A53AC +lbl_800A53AC: +/* 800A53AC 000A22EC 48 00 00 04 */ b lbl_800A53B0 +lbl_800A53B0: +/* 800A53B0 000A22F0 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A53B4 000A22F4 39 07 00 1C */ addi r8, r7, 0x1c +/* 800A53B8 000A22F8 63 A5 00 80 */ ori r5, r29, 0x80 +/* 800A53BC 000A22FC 7D 00 42 14 */ add r8, r0, r8 +/* 800A53C0 000A2300 80 08 00 00 */ lwz r0, 0(r8) +/* 800A53C4 000A2304 39 27 00 3C */ addi r9, r7, 0x3c +/* 800A53C8 000A2308 38 67 00 3C */ addi r3, r7, 0x3c +/* 800A53CC 000A230C 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0 +/* 800A53D0 000A2310 64 00 40 00 */ oris r0, r0, 0x4000 +/* 800A53D4 000A2314 90 08 00 00 */ stw r0, 0(r8) +/* 800A53D8 000A2318 38 E7 00 04 */ addi r7, r7, 4 +/* 800A53DC 000A231C 38 C0 00 08 */ li r6, 8 +/* 800A53E0 000A2320 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A53E4 000A2324 39 07 00 1C */ addi r8, r7, 0x1c +/* 800A53E8 000A2328 3B BD 00 01 */ addi r29, r29, 1 +/* 800A53EC 000A232C 7D 20 4A 14 */ add r9, r0, r9 +/* 800A53F0 000A2330 80 09 00 00 */ lwz r0, 0(r9) +/* 800A53F4 000A2334 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A53F8 000A2338 64 00 80 00 */ oris r0, r0, 0x8000 +/* 800A53FC 000A233C 90 09 00 00 */ stw r0, 0(r9) +/* 800A5400 000A2340 39 27 00 3C */ addi r9, r7, 0x3c +/* 800A5404 000A2344 98 DF 80 00 */ stb r6, -0x8000(r31) +/* 800A5408 000A2348 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A540C 000A234C 98 BF 80 00 */ stb r5, -0x8000(r31) +/* 800A5410 000A2350 63 A5 00 80 */ ori r5, r29, 0x80 +/* 800A5414 000A2354 7D 04 42 14 */ add r8, r4, r8 +/* 800A5418 000A2358 7C 04 18 2E */ lwzx r0, r4, r3 +/* 800A541C 000A235C 38 67 00 3C */ addi r3, r7, 0x3c +/* 800A5420 000A2360 38 E7 00 04 */ addi r7, r7, 4 +/* 800A5424 000A2364 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800A5428 000A2368 3B BD 00 01 */ addi r29, r29, 1 +/* 800A542C 000A236C 80 08 00 00 */ lwz r0, 0(r8) +/* 800A5430 000A2370 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0 +/* 800A5434 000A2374 64 00 40 00 */ oris r0, r0, 0x4000 +/* 800A5438 000A2378 90 08 00 00 */ stw r0, 0(r8) +/* 800A543C 000A237C 39 07 00 1C */ addi r8, r7, 0x1c +/* 800A5440 000A2380 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A5444 000A2384 7D 20 4A 14 */ add r9, r0, r9 +/* 800A5448 000A2388 80 09 00 00 */ lwz r0, 0(r9) +/* 800A544C 000A238C 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A5450 000A2390 64 00 80 00 */ oris r0, r0, 0x8000 +/* 800A5454 000A2394 90 09 00 00 */ stw r0, 0(r9) +/* 800A5458 000A2398 39 27 00 3C */ addi r9, r7, 0x3c +/* 800A545C 000A239C 98 DF 80 00 */ stb r6, -0x8000(r31) +/* 800A5460 000A23A0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A5464 000A23A4 98 BF 80 00 */ stb r5, -0x8000(r31) +/* 800A5468 000A23A8 63 A5 00 80 */ ori r5, r29, 0x80 +/* 800A546C 000A23AC 7D 04 42 14 */ add r8, r4, r8 +/* 800A5470 000A23B0 7C 04 18 2E */ lwzx r0, r4, r3 +/* 800A5474 000A23B4 38 67 00 3C */ addi r3, r7, 0x3c +/* 800A5478 000A23B8 38 E7 00 04 */ addi r7, r7, 4 +/* 800A547C 000A23BC 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800A5480 000A23C0 3B BD 00 01 */ addi r29, r29, 1 +/* 800A5484 000A23C4 80 08 00 00 */ lwz r0, 0(r8) +/* 800A5488 000A23C8 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0 +/* 800A548C 000A23CC 64 00 40 00 */ oris r0, r0, 0x4000 +/* 800A5490 000A23D0 90 08 00 00 */ stw r0, 0(r8) +/* 800A5494 000A23D4 39 07 00 1C */ addi r8, r7, 0x1c +/* 800A5498 000A23D8 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A549C 000A23DC 7D 20 4A 14 */ add r9, r0, r9 +/* 800A54A0 000A23E0 80 09 00 00 */ lwz r0, 0(r9) +/* 800A54A4 000A23E4 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A54A8 000A23E8 64 00 80 00 */ oris r0, r0, 0x8000 +/* 800A54AC 000A23EC 90 09 00 00 */ stw r0, 0(r9) +/* 800A54B0 000A23F0 39 27 00 3C */ addi r9, r7, 0x3c +/* 800A54B4 000A23F4 98 DF 80 00 */ stb r6, -0x8000(r31) +/* 800A54B8 000A23F8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A54BC 000A23FC 98 BF 80 00 */ stb r5, -0x8000(r31) +/* 800A54C0 000A2400 63 A5 00 80 */ ori r5, r29, 0x80 +/* 800A54C4 000A2404 7D 04 42 14 */ add r8, r4, r8 +/* 800A54C8 000A2408 7C 04 18 2E */ lwzx r0, r4, r3 +/* 800A54CC 000A240C 38 67 00 3C */ addi r3, r7, 0x3c +/* 800A54D0 000A2410 38 E7 00 04 */ addi r7, r7, 4 +/* 800A54D4 000A2414 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800A54D8 000A2418 3B BD 00 01 */ addi r29, r29, 1 +/* 800A54DC 000A241C 80 08 00 00 */ lwz r0, 0(r8) +/* 800A54E0 000A2420 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0 +/* 800A54E4 000A2424 64 00 40 00 */ oris r0, r0, 0x4000 +/* 800A54E8 000A2428 90 08 00 00 */ stw r0, 0(r8) +/* 800A54EC 000A242C 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A54F0 000A2430 7D 20 4A 14 */ add r9, r0, r9 +/* 800A54F4 000A2434 80 09 00 00 */ lwz r0, 0(r9) +/* 800A54F8 000A2438 54 00 00 7E */ clrlwi r0, r0, 1 +/* 800A54FC 000A243C 64 00 80 00 */ oris r0, r0, 0x8000 +/* 800A5500 000A2440 90 09 00 00 */ stw r0, 0(r9) +/* 800A5504 000A2444 98 DF 80 00 */ stb r6, -0x8000(r31) +/* 800A5508 000A2448 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A550C 000A244C 98 BF 80 00 */ stb r5, -0x8000(r31) +/* 800A5510 000A2450 7C 04 18 2E */ lwzx r0, r4, r3 +/* 800A5514 000A2454 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800A5518 000A2458 42 00 FE 98 */ bdnz lbl_800A53B0 +/* 800A551C 000A245C 38 80 00 10 */ li r4, 0x10 +/* 800A5520 000A2460 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800A5524 000A2464 98 86 80 00 */ stb r4, 0xCC008000@l(r6) +/* 800A5528 000A2468 38 00 10 00 */ li r0, 0x1000 +/* 800A552C 000A246C 3B A0 00 00 */ li r29, 0 +/* 800A5530 000A2470 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A5534 000A2474 38 00 00 3F */ li r0, 0x3f +/* 800A5538 000A2478 57 BC 78 20 */ slwi r28, r29, 0xf +/* 800A553C 000A247C 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A5540 000A2480 38 00 10 12 */ li r0, 0x1012 +/* 800A5544 000A2484 38 A0 00 01 */ li r5, 1 +/* 800A5548 000A2488 98 86 80 00 */ stb r4, -0x8000(r6) +/* 800A554C 000A248C 38 80 00 61 */ li r4, 0x61 +/* 800A5550 000A2490 3C 60 58 00 */ lis r3, 0x5800000F@ha +/* 800A5554 000A2494 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A5558 000A2498 38 03 00 0F */ addi r0, r3, 0x5800000F@l +/* 800A555C 000A249C 3F 5C 00 08 */ addis r26, r28, 8 +/* 800A5560 000A24A0 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800A5564 000A24A4 57 BB 20 36 */ slwi r27, r29, 4 +/* 800A5568 000A24A8 98 86 80 00 */ stb r4, -0x8000(r6) +/* 800A556C 000A24AC 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A5570 000A24B0 48 00 00 04 */ b lbl_800A5574 +lbl_800A5574: +/* 800A5574 000A24B4 48 00 00 04 */ b lbl_800A5578 +lbl_800A5578: +/* 800A5578 000A24B8 48 00 00 04 */ b lbl_800A557C +lbl_800A557C: +/* 800A557C 000A24BC 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A5580 000A24C0 38 7B 02 08 */ addi r3, r27, 0x208 +/* 800A5584 000A24C4 7F 85 E3 78 */ mr r5, r28 +/* 800A5588 000A24C8 7F 47 D3 78 */ mr r7, r26 +/* 800A558C 000A24CC 7C 60 1A 14 */ add r3, r0, r3 +/* 800A5590 000A24D0 38 80 00 00 */ li r4, 0 +/* 800A5594 000A24D4 38 C0 00 00 */ li r6, 0 +/* 800A5598 000A24D8 39 00 00 00 */ li r8, 0 +/* 800A559C 000A24DC 48 00 56 1D */ bl GXInitTexCacheRegion +/* 800A55A0 000A24E0 3F 5A 00 01 */ addis r26, r26, 1 +/* 800A55A4 000A24E4 3F 9C 00 01 */ addis r28, r28, 1 +/* 800A55A8 000A24E8 3B 5A 80 00 */ addi r26, r26, -32768 +/* 800A55AC 000A24EC 3B 9C 80 00 */ addi r28, r28, -32768 +/* 800A55B0 000A24F0 3B 7B 00 10 */ addi r27, r27, 0x10 +/* 800A55B4 000A24F4 3B BD 00 01 */ addi r29, r29, 1 +/* 800A55B8 000A24F8 28 1D 00 08 */ cmplwi r29, 8 +/* 800A55BC 000A24FC 41 80 FF C0 */ blt lbl_800A557C +/* 800A55C0 000A2500 3B A0 00 00 */ li r29, 0 +/* 800A55C4 000A2504 57 A3 08 3C */ slwi r3, r29, 1 +/* 800A55C8 000A2508 3B 43 00 09 */ addi r26, r3, 9 +/* 800A55CC 000A250C 3B 63 00 08 */ addi r27, r3, 8 +/* 800A55D0 000A2510 57 BC 20 36 */ slwi r28, r29, 4 +/* 800A55D4 000A2514 48 00 00 04 */ b lbl_800A55D8 +lbl_800A55D8: +/* 800A55D8 000A2518 48 00 00 04 */ b lbl_800A55DC +lbl_800A55DC: +/* 800A55DC 000A251C 48 00 00 04 */ b lbl_800A55E0 +lbl_800A55E0: +/* 800A55E0 000A2520 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A55E4 000A2524 38 7C 02 88 */ addi r3, r28, 0x288 +/* 800A55E8 000A2528 57 65 78 20 */ slwi r5, r27, 0xf +/* 800A55EC 000A252C 7C 60 1A 14 */ add r3, r0, r3 +/* 800A55F0 000A2530 57 47 78 20 */ slwi r7, r26, 0xf +/* 800A55F4 000A2534 38 80 00 00 */ li r4, 0 +/* 800A55F8 000A2538 38 C0 00 00 */ li r6, 0 +/* 800A55FC 000A253C 39 00 00 00 */ li r8, 0 +/* 800A5600 000A2540 48 00 55 B9 */ bl GXInitTexCacheRegion +/* 800A5604 000A2544 3B 5A 00 02 */ addi r26, r26, 2 +/* 800A5608 000A2548 3B 7B 00 02 */ addi r27, r27, 2 +/* 800A560C 000A254C 3B 9C 00 10 */ addi r28, r28, 0x10 +/* 800A5610 000A2550 3B BD 00 01 */ addi r29, r29, 1 +/* 800A5614 000A2554 28 1D 00 04 */ cmplwi r29, 4 +/* 800A5618 000A2558 41 80 FF C8 */ blt lbl_800A55E0 +/* 800A561C 000A255C 3B 80 00 00 */ li r28, 0 +/* 800A5620 000A2560 57 83 68 24 */ slwi r3, r28, 0xd +/* 800A5624 000A2564 3F 43 00 0C */ addis r26, r3, 0xc +/* 800A5628 000A2568 57 9B 20 36 */ slwi r27, r28, 4 +/* 800A562C 000A256C 48 00 00 04 */ b lbl_800A5630 +lbl_800A5630: +/* 800A5630 000A2570 48 00 00 04 */ b lbl_800A5634 +lbl_800A5634: +/* 800A5634 000A2574 48 00 00 04 */ b lbl_800A5638 +lbl_800A5638: +/* 800A5638 000A2578 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800A563C 000A257C 38 7B 02 D0 */ addi r3, r27, 0x2d0 +/* 800A5640 000A2580 7F 44 D3 78 */ mr r4, r26 +/* 800A5644 000A2584 7C 60 1A 14 */ add r3, r0, r3 +/* 800A5648 000A2588 38 A0 00 10 */ li r5, 0x10 +/* 800A564C 000A258C 48 00 56 8D */ bl GXInitTlutRegion +/* 800A5650 000A2590 3B 5A 20 00 */ addi r26, r26, 0x2000 +/* 800A5654 000A2594 3B 7B 00 10 */ addi r27, r27, 0x10 +/* 800A5658 000A2598 3B 9C 00 01 */ addi r28, r28, 1 +/* 800A565C 000A259C 28 1C 00 10 */ cmplwi r28, 0x10 +/* 800A5660 000A25A0 41 80 FF D8 */ blt lbl_800A5638 +/* 800A5664 000A25A4 3B 60 00 00 */ li r27, 0 +/* 800A5668 000A25A8 57 63 78 20 */ slwi r3, r27, 0xf +/* 800A566C 000A25AC 3F 43 00 0E */ addis r26, r3, 0xe +/* 800A5670 000A25B0 48 00 00 04 */ b lbl_800A5674 +lbl_800A5674: +/* 800A5674 000A25B4 48 00 00 04 */ b lbl_800A5678 +lbl_800A5678: +/* 800A5678 000A25B8 48 00 00 04 */ b lbl_800A567C +lbl_800A567C: +/* 800A567C 000A25BC 38 1B 00 10 */ addi r0, r27, 0x10 +/* 800A5680 000A25C0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A5684 000A25C4 54 03 20 36 */ slwi r3, r0, 4 +/* 800A5688 000A25C8 38 63 02 D0 */ addi r3, r3, 0x2d0 +/* 800A568C 000A25CC 7F 44 D3 78 */ mr r4, r26 +/* 800A5690 000A25D0 7C 65 1A 14 */ add r3, r5, r3 +/* 800A5694 000A25D4 38 A0 00 40 */ li r5, 0x40 +/* 800A5698 000A25D8 48 00 56 41 */ bl GXInitTlutRegion +/* 800A569C 000A25DC 3F 5A 00 01 */ addis r26, r26, 1 +/* 800A56A0 000A25E0 3B 5A 80 00 */ addi r26, r26, -32768 +/* 800A56A4 000A25E4 3B 7B 00 01 */ addi r27, r27, 1 +/* 800A56A8 000A25E8 28 1B 00 04 */ cmplwi r27, 4 +/* 800A56AC 000A25EC 41 80 FF D0 */ blt lbl_800A567C +/* 800A56B0 000A25F0 80 8D 95 5C */ lwz r4, __cpReg@sda21(r13) +/* 800A56B4 000A25F4 39 80 00 00 */ li r12, 0 +/* 800A56B8 000A25F8 38 60 00 08 */ li r3, 8 +/* 800A56BC 000A25FC B1 84 00 06 */ sth r12, 6(r4) +/* 800A56C0 000A2600 3D 60 CC 01 */ lis r11, 0xCC008000@ha +/* 800A56C4 000A2604 39 40 00 20 */ li r10, 0x20 +/* 800A56C8 000A2608 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A56CC 000A260C 39 00 00 10 */ li r8, 0x10 +/* 800A56D0 000A2610 38 E0 10 06 */ li r7, 0x1006 +/* 800A56D4 000A2614 38 84 04 EC */ addi r4, r4, 0x4ec +/* 800A56D8 000A2618 80 04 00 00 */ lwz r0, 0(r4) +/* 800A56DC 000A261C 38 C0 00 61 */ li r6, 0x61 +/* 800A56E0 000A2620 3C A0 23 00 */ lis r5, 0x2300 +/* 800A56E4 000A2624 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800A56E8 000A2628 90 04 00 00 */ stw r0, 0(r4) +/* 800A56EC 000A262C 3C 80 24 00 */ lis r4, 0x2400 +/* 800A56F0 000A2630 3C 00 67 00 */ lis r0, 0x6700 +/* 800A56F4 000A2634 98 6B 80 00 */ stb r3, 0xCC008000@l(r11) +/* 800A56F8 000A2638 38 60 00 00 */ li r3, 0 +/* 800A56FC 000A263C 81 2D 82 C8 */ lwz r9, gx@sda21(r13) +/* 800A5700 000A2640 99 4B 80 00 */ stb r10, -0x8000(r11) +/* 800A5704 000A2644 81 29 04 EC */ lwz r9, 0x4ec(r9) +/* 800A5708 000A2648 91 2B 80 00 */ stw r9, -0x8000(r11) +/* 800A570C 000A264C 99 0B 80 00 */ stb r8, -0x8000(r11) +/* 800A5710 000A2650 90 EB 80 00 */ stw r7, -0x8000(r11) +/* 800A5714 000A2654 91 8B 80 00 */ stw r12, -0x8000(r11) +/* 800A5718 000A2658 98 CB 80 00 */ stb r6, -0x8000(r11) +/* 800A571C 000A265C 90 AB 80 00 */ stw r5, -0x8000(r11) +/* 800A5720 000A2660 98 CB 80 00 */ stb r6, -0x8000(r11) +/* 800A5724 000A2664 90 8B 80 00 */ stw r4, -0x8000(r11) +/* 800A5728 000A2668 98 CB 80 00 */ stb r6, -0x8000(r11) +/* 800A572C 000A266C 90 0B 80 00 */ stw r0, -0x8000(r11) +/* 800A5730 000A2670 48 00 59 C9 */ bl __GXSetTmemConfig +/* 800A5734 000A2674 48 00 00 1D */ bl __GXInitGX +/* 800A5738 000A2678 38 7E 04 F8 */ addi r3, r30, 0x4f8 +/* 800A573C 000A267C BB 41 00 30 */ lmw r26, 0x30(r1) +/* 800A5740 000A2680 80 01 00 4C */ lwz r0, 0x4c(r1) +/* 800A5744 000A2684 38 21 00 48 */ addi r1, r1, 0x48 +/* 800A5748 000A2688 7C 08 03 A6 */ mtlr r0 +/* 800A574C 000A268C 4E 80 00 20 */ blr + +.global __GXInitGX +__GXInitGX: +/* 800A5750 000A2690 7C 08 02 A6 */ mflr r0 +/* 800A5754 000A2694 90 01 00 04 */ stw r0, 4(r1) +/* 800A5758 000A2698 94 21 FF 88 */ stwu r1, -0x78(r1) +/* 800A575C 000A269C 93 E1 00 74 */ stw r31, 0x74(r1) +/* 800A5760 000A26A0 93 C1 00 70 */ stw r30, 0x70(r1) +/* 800A5764 000A26A4 80 82 8A D0 */ lwz r4, "@121"@sda21(r2) +/* 800A5768 000A26A8 80 62 8A D4 */ lwz r3, "@122"@sda21(r2) +/* 800A576C 000A26AC 80 02 8A D8 */ lwz r0, "@123"@sda21(r2) +/* 800A5770 000A26B0 90 81 00 28 */ stw r4, 0x28(r1) +/* 800A5774 000A26B4 90 61 00 24 */ stw r3, 0x24(r1) +/* 800A5778 000A26B8 90 01 00 20 */ stw r0, 0x20(r1) +/* 800A577C 000A26BC 4B FF 58 41 */ bl VIGetTvFormat +/* 800A5780 000A26C0 2C 03 00 02 */ cmpwi r3, 2 +/* 800A5784 000A26C4 41 82 00 54 */ beq lbl_800A57D8 +/* 800A5788 000A26C8 40 80 00 14 */ bge lbl_800A579C +/* 800A578C 000A26CC 2C 03 00 00 */ cmpwi r3, 0 +/* 800A5790 000A26D0 41 82 00 18 */ beq lbl_800A57A8 +/* 800A5794 000A26D4 40 80 00 24 */ bge lbl_800A57B8 +/* 800A5798 000A26D8 48 00 00 50 */ b lbl_800A57E8 +lbl_800A579C: +/* 800A579C 000A26DC 2C 03 00 05 */ cmpwi r3, 5 +/* 800A57A0 000A26E0 41 82 00 28 */ beq lbl_800A57C8 +/* 800A57A4 000A26E4 48 00 00 44 */ b lbl_800A57E8 +lbl_800A57A8: +/* 800A57A8 000A26E8 3C 60 80 3B */ lis r3, GXNtsc480IntDf@ha +/* 800A57AC 000A26EC 38 03 17 B8 */ addi r0, r3, GXNtsc480IntDf@l +/* 800A57B0 000A26F0 7C 1F 03 78 */ mr r31, r0 +/* 800A57B4 000A26F4 48 00 00 40 */ b lbl_800A57F4 +lbl_800A57B8: +/* 800A57B8 000A26F8 3C 60 80 3B */ lis r3, GXPal528IntDf@ha +/* 800A57BC 000A26FC 38 03 18 6C */ addi r0, r3, GXPal528IntDf@l +/* 800A57C0 000A2700 7C 1F 03 78 */ mr r31, r0 +/* 800A57C4 000A2704 48 00 00 30 */ b lbl_800A57F4 +lbl_800A57C8: +/* 800A57C8 000A2708 3C 60 80 3B */ lis r3, GXEurgb60Hz480IntDf@ha +/* 800A57CC 000A270C 38 03 18 A8 */ addi r0, r3, GXEurgb60Hz480IntDf@l +/* 800A57D0 000A2710 7C 1F 03 78 */ mr r31, r0 +/* 800A57D4 000A2714 48 00 00 20 */ b lbl_800A57F4 +lbl_800A57D8: +/* 800A57D8 000A2718 3C 60 80 3B */ lis r3, GXMpal480IntDf@ha +/* 800A57DC 000A271C 38 03 18 30 */ addi r0, r3, GXMpal480IntDf@l +/* 800A57E0 000A2720 7C 1F 03 78 */ mr r31, r0 +/* 800A57E4 000A2724 48 00 00 10 */ b lbl_800A57F4 +lbl_800A57E8: +/* 800A57E8 000A2728 3C 60 80 3B */ lis r3, GXNtsc480IntDf@ha +/* 800A57EC 000A272C 38 03 17 B8 */ addi r0, r3, GXNtsc480IntDf@l +/* 800A57F0 000A2730 7C 1F 03 78 */ mr r31, r0 +lbl_800A57F4: +/* 800A57F4 000A2734 80 01 00 28 */ lwz r0, 0x28(r1) +/* 800A57F8 000A2738 3C 80 01 00 */ lis r4, 0x00FFFFFF@ha +/* 800A57FC 000A273C 38 61 00 1C */ addi r3, r1, 0x1c +/* 800A5800 000A2740 90 01 00 1C */ stw r0, 0x1c(r1) +/* 800A5804 000A2744 38 84 FF FF */ addi r4, r4, 0x00FFFFFF@l +/* 800A5808 000A2748 48 00 3B 59 */ bl GXSetCopyClear +/* 800A580C 000A274C 38 60 00 00 */ li r3, 0 +/* 800A5810 000A2750 38 80 00 01 */ li r4, 1 +/* 800A5814 000A2754 38 A0 00 04 */ li r5, 4 +/* 800A5818 000A2758 38 C0 00 3C */ li r6, 0x3c +/* 800A581C 000A275C 38 E0 00 00 */ li r7, 0 +/* 800A5820 000A2760 39 00 00 7D */ li r8, 0x7d +/* 800A5824 000A2764 48 00 26 5D */ bl GXSetTexCoordGen2 +/* 800A5828 000A2768 38 60 00 01 */ li r3, 1 +/* 800A582C 000A276C 38 80 00 01 */ li r4, 1 +/* 800A5830 000A2770 38 A0 00 05 */ li r5, 5 +/* 800A5834 000A2774 38 C0 00 3C */ li r6, 0x3c +/* 800A5838 000A2778 38 E0 00 00 */ li r7, 0 +/* 800A583C 000A277C 39 00 00 7D */ li r8, 0x7d +/* 800A5840 000A2780 48 00 26 41 */ bl GXSetTexCoordGen2 +/* 800A5844 000A2784 38 60 00 02 */ li r3, 2 +/* 800A5848 000A2788 38 80 00 01 */ li r4, 1 +/* 800A584C 000A278C 38 A0 00 06 */ li r5, 6 +/* 800A5850 000A2790 38 C0 00 3C */ li r6, 0x3c +/* 800A5854 000A2794 38 E0 00 00 */ li r7, 0 +/* 800A5858 000A2798 39 00 00 7D */ li r8, 0x7d +/* 800A585C 000A279C 48 00 26 25 */ bl GXSetTexCoordGen2 +/* 800A5860 000A27A0 38 60 00 03 */ li r3, 3 +/* 800A5864 000A27A4 38 80 00 01 */ li r4, 1 +/* 800A5868 000A27A8 38 A0 00 07 */ li r5, 7 +/* 800A586C 000A27AC 38 C0 00 3C */ li r6, 0x3c +/* 800A5870 000A27B0 38 E0 00 00 */ li r7, 0 +/* 800A5874 000A27B4 39 00 00 7D */ li r8, 0x7d +/* 800A5878 000A27B8 48 00 26 09 */ bl GXSetTexCoordGen2 +/* 800A587C 000A27BC 38 60 00 04 */ li r3, 4 +/* 800A5880 000A27C0 38 80 00 01 */ li r4, 1 +/* 800A5884 000A27C4 38 A0 00 08 */ li r5, 8 +/* 800A5888 000A27C8 38 C0 00 3C */ li r6, 0x3c +/* 800A588C 000A27CC 38 E0 00 00 */ li r7, 0 +/* 800A5890 000A27D0 39 00 00 7D */ li r8, 0x7d +/* 800A5894 000A27D4 48 00 25 ED */ bl GXSetTexCoordGen2 +/* 800A5898 000A27D8 38 60 00 05 */ li r3, 5 +/* 800A589C 000A27DC 38 80 00 01 */ li r4, 1 +/* 800A58A0 000A27E0 38 A0 00 09 */ li r5, 9 +/* 800A58A4 000A27E4 38 C0 00 3C */ li r6, 0x3c +/* 800A58A8 000A27E8 38 E0 00 00 */ li r7, 0 +/* 800A58AC 000A27EC 39 00 00 7D */ li r8, 0x7d +/* 800A58B0 000A27F0 48 00 25 D1 */ bl GXSetTexCoordGen2 +/* 800A58B4 000A27F4 38 60 00 06 */ li r3, 6 +/* 800A58B8 000A27F8 38 80 00 01 */ li r4, 1 +/* 800A58BC 000A27FC 38 A0 00 0A */ li r5, 0xa +/* 800A58C0 000A2800 38 C0 00 3C */ li r6, 0x3c +/* 800A58C4 000A2804 38 E0 00 00 */ li r7, 0 +/* 800A58C8 000A2808 39 00 00 7D */ li r8, 0x7d +/* 800A58CC 000A280C 48 00 25 B5 */ bl GXSetTexCoordGen2 +/* 800A58D0 000A2810 38 60 00 07 */ li r3, 7 +/* 800A58D4 000A2814 38 80 00 01 */ li r4, 1 +/* 800A58D8 000A2818 38 A0 00 0B */ li r5, 0xb +/* 800A58DC 000A281C 38 C0 00 3C */ li r6, 0x3c +/* 800A58E0 000A2820 38 E0 00 00 */ li r7, 0 +/* 800A58E4 000A2824 39 00 00 7D */ li r8, 0x7d +/* 800A58E8 000A2828 48 00 25 99 */ bl GXSetTexCoordGen2 +/* 800A58EC 000A282C 38 60 00 01 */ li r3, 1 +/* 800A58F0 000A2830 48 00 28 61 */ bl GXSetNumTexGens +/* 800A58F4 000A2834 48 00 1A 75 */ bl GXClearVtxDesc +/* 800A58F8 000A2838 48 00 25 79 */ bl GXInvalidateVtxCache +/* 800A58FC 000A283C 3B C0 00 09 */ li r30, 9 +/* 800A5900 000A2840 48 00 00 04 */ b lbl_800A5904 +lbl_800A5904: +/* 800A5904 000A2844 48 00 00 04 */ b lbl_800A5908 +lbl_800A5908: +/* 800A5908 000A2848 48 00 00 04 */ b lbl_800A590C +lbl_800A590C: +/* 800A590C 000A284C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A5910 000A2850 7F C3 F3 78 */ mr r3, r30 +/* 800A5914 000A2854 38 A0 00 00 */ li r5, 0 +/* 800A5918 000A2858 48 00 24 CD */ bl GXSetArray +/* 800A591C 000A285C 3B DE 00 01 */ addi r30, r30, 1 +/* 800A5920 000A2860 28 1E 00 18 */ cmplwi r30, 0x18 +/* 800A5924 000A2864 40 81 FF E8 */ ble lbl_800A590C +/* 800A5928 000A2868 38 60 00 06 */ li r3, 6 +/* 800A592C 000A286C 38 80 00 00 */ li r4, 0 +/* 800A5930 000A2870 48 00 30 F1 */ bl GXSetLineWidth +/* 800A5934 000A2874 38 60 00 06 */ li r3, 6 +/* 800A5938 000A2878 38 80 00 00 */ li r4, 0 +/* 800A593C 000A287C 48 00 31 3D */ bl GXSetPointSize +/* 800A5940 000A2880 38 60 00 00 */ li r3, 0 +/* 800A5944 000A2884 38 80 00 00 */ li r4, 0 +/* 800A5948 000A2888 38 A0 00 00 */ li r5, 0 +/* 800A594C 000A288C 48 00 31 81 */ bl GXEnableTexOffsets +/* 800A5950 000A2890 38 60 00 01 */ li r3, 1 +/* 800A5954 000A2894 38 80 00 00 */ li r4, 0 +/* 800A5958 000A2898 38 A0 00 00 */ li r5, 0 +/* 800A595C 000A289C 48 00 31 71 */ bl GXEnableTexOffsets +/* 800A5960 000A28A0 38 60 00 02 */ li r3, 2 +/* 800A5964 000A28A4 38 80 00 00 */ li r4, 0 +/* 800A5968 000A28A8 38 A0 00 00 */ li r5, 0 +/* 800A596C 000A28AC 48 00 31 61 */ bl GXEnableTexOffsets +/* 800A5970 000A28B0 38 60 00 03 */ li r3, 3 +/* 800A5974 000A28B4 38 80 00 00 */ li r4, 0 +/* 800A5978 000A28B8 38 A0 00 00 */ li r5, 0 +/* 800A597C 000A28BC 48 00 31 51 */ bl GXEnableTexOffsets +/* 800A5980 000A28C0 38 60 00 04 */ li r3, 4 +/* 800A5984 000A28C4 38 80 00 00 */ li r4, 0 +/* 800A5988 000A28C8 38 A0 00 00 */ li r5, 0 +/* 800A598C 000A28CC 48 00 31 41 */ bl GXEnableTexOffsets +/* 800A5990 000A28D0 38 60 00 05 */ li r3, 5 +/* 800A5994 000A28D4 38 80 00 00 */ li r4, 0 +/* 800A5998 000A28D8 38 A0 00 00 */ li r5, 0 +/* 800A599C 000A28DC 48 00 31 31 */ bl GXEnableTexOffsets +/* 800A59A0 000A28E0 38 60 00 06 */ li r3, 6 +/* 800A59A4 000A28E4 38 80 00 00 */ li r4, 0 +/* 800A59A8 000A28E8 38 A0 00 00 */ li r5, 0 +/* 800A59AC 000A28EC 48 00 31 21 */ bl GXEnableTexOffsets +/* 800A59B0 000A28F0 38 60 00 07 */ li r3, 7 +/* 800A59B4 000A28F4 38 80 00 00 */ li r4, 0 +/* 800A59B8 000A28F8 38 A0 00 00 */ li r5, 0 +/* 800A59BC 000A28FC 48 00 31 11 */ bl GXEnableTexOffsets +/* 800A59C0 000A2900 C0 22 8A DC */ lfs f1, "@177"@sda21(r2) +/* 800A59C4 000A2904 38 61 00 2C */ addi r3, r1, 0x2c +/* 800A59C8 000A2908 C0 02 8A E0 */ lfs f0, "@178"@sda21(r2) +/* 800A59CC 000A290C 38 80 00 00 */ li r4, 0 +/* 800A59D0 000A2910 D0 21 00 2C */ stfs f1, 0x2c(r1) +/* 800A59D4 000A2914 D0 01 00 30 */ stfs f0, 0x30(r1) +/* 800A59D8 000A2918 D0 01 00 34 */ stfs f0, 0x34(r1) +/* 800A59DC 000A291C D0 01 00 38 */ stfs f0, 0x38(r1) +/* 800A59E0 000A2920 D0 01 00 3C */ stfs f0, 0x3c(r1) +/* 800A59E4 000A2924 D0 21 00 40 */ stfs f1, 0x40(r1) +/* 800A59E8 000A2928 D0 01 00 44 */ stfs f0, 0x44(r1) +/* 800A59EC 000A292C D0 01 00 48 */ stfs f0, 0x48(r1) +/* 800A59F0 000A2930 D0 01 00 4C */ stfs f0, 0x4c(r1) +/* 800A59F4 000A2934 D0 01 00 50 */ stfs f0, 0x50(r1) +/* 800A59F8 000A2938 D0 21 00 54 */ stfs f1, 0x54(r1) +/* 800A59FC 000A293C D0 01 00 58 */ stfs f0, 0x58(r1) +/* 800A5A00 000A2940 48 00 7D 2D */ bl GXLoadPosMtxImm +/* 800A5A04 000A2944 38 61 00 2C */ addi r3, r1, 0x2c +/* 800A5A08 000A2948 38 80 00 00 */ li r4, 0 +/* 800A5A0C 000A294C 48 00 7D 8D */ bl GXLoadNrmMtxImm +/* 800A5A10 000A2950 38 60 00 00 */ li r3, 0 +/* 800A5A14 000A2954 48 00 7D F9 */ bl GXSetCurrentMtx +/* 800A5A18 000A2958 38 61 00 2C */ addi r3, r1, 0x2c +/* 800A5A1C 000A295C 38 80 00 3C */ li r4, 0x3c +/* 800A5A20 000A2960 38 A0 00 00 */ li r5, 0 +/* 800A5A24 000A2964 48 00 7E 25 */ bl GXLoadTexMtxImm +/* 800A5A28 000A2968 38 61 00 2C */ addi r3, r1, 0x2c +/* 800A5A2C 000A296C 38 80 00 7D */ li r4, 0x7d +/* 800A5A30 000A2970 38 A0 00 00 */ li r5, 0 +/* 800A5A34 000A2974 48 00 7E 15 */ bl GXLoadTexMtxImm +/* 800A5A38 000A2978 A0 9F 00 04 */ lhz r4, 4(r31) +/* 800A5A3C 000A297C 3C 60 43 30 */ lis r3, 0x4330 +/* 800A5A40 000A2980 A0 1F 00 08 */ lhz r0, 8(r31) +/* 800A5A44 000A2984 90 81 00 6C */ stw r4, 0x6c(r1) +/* 800A5A48 000A2988 C0 22 8A E0 */ lfs f1, "@178"@sda21(r2) +/* 800A5A4C 000A298C 90 01 00 64 */ stw r0, 0x64(r1) +/* 800A5A50 000A2990 C8 82 8A E8 */ lfd f4, "@181"@sda21(r2) +/* 800A5A54 000A2994 FC 40 08 90 */ fmr f2, f1 +/* 800A5A58 000A2998 90 61 00 68 */ stw r3, 0x68(r1) +/* 800A5A5C 000A299C FC A0 08 90 */ fmr f5, f1 +/* 800A5A60 000A29A0 C0 C2 8A DC */ lfs f6, "@177"@sda21(r2) +/* 800A5A64 000A29A4 90 61 00 60 */ stw r3, 0x60(r1) +/* 800A5A68 000A29A8 C8 61 00 68 */ lfd f3, 0x68(r1) +/* 800A5A6C 000A29AC C8 01 00 60 */ lfd f0, 0x60(r1) +/* 800A5A70 000A29B0 EC 63 20 28 */ fsubs f3, f3, f4 +/* 800A5A74 000A29B4 EC 80 20 28 */ fsubs f4, f0, f4 +/* 800A5A78 000A29B8 48 00 7F 71 */ bl GXSetViewport +/* 800A5A7C 000A29BC 38 60 00 00 */ li r3, 0 +/* 800A5A80 000A29C0 48 00 31 01 */ bl GXSetCoPlanar +/* 800A5A84 000A29C4 38 60 00 02 */ li r3, 2 +/* 800A5A88 000A29C8 48 00 30 A9 */ bl GXSetCullMode +/* 800A5A8C 000A29CC 38 60 00 00 */ li r3, 0 +/* 800A5A90 000A29D0 48 00 80 BD */ bl GXSetClipMode +/* 800A5A94 000A29D4 A0 BF 00 04 */ lhz r5, 4(r31) +/* 800A5A98 000A29D8 38 60 00 00 */ li r3, 0 +/* 800A5A9C 000A29DC A0 DF 00 06 */ lhz r6, 6(r31) +/* 800A5AA0 000A29E0 38 80 00 00 */ li r4, 0 +/* 800A5AA4 000A29E4 48 00 7F B5 */ bl GXSetScissor +/* 800A5AA8 000A29E8 38 60 00 00 */ li r3, 0 +/* 800A5AAC 000A29EC 38 80 00 00 */ li r4, 0 +/* 800A5AB0 000A29F0 48 00 80 59 */ bl GXSetScissorBoxOffset +/* 800A5AB4 000A29F4 38 60 00 00 */ li r3, 0 +/* 800A5AB8 000A29F8 48 00 44 ED */ bl GXSetNumChans +/* 800A5ABC 000A29FC 38 60 00 04 */ li r3, 4 +/* 800A5AC0 000A2A00 38 80 00 00 */ li r4, 0 +/* 800A5AC4 000A2A04 38 A0 00 00 */ li r5, 0 +/* 800A5AC8 000A2A08 38 C0 00 01 */ li r6, 1 +/* 800A5ACC 000A2A0C 38 E0 00 00 */ li r7, 0 +/* 800A5AD0 000A2A10 39 00 00 00 */ li r8, 0 +/* 800A5AD4 000A2A14 39 20 00 02 */ li r9, 2 +/* 800A5AD8 000A2A18 48 00 45 19 */ bl GXSetChanCtrl +/* 800A5ADC 000A2A1C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A5AE0 000A2A20 38 81 00 18 */ addi r4, r1, 0x18 +/* 800A5AE4 000A2A24 38 60 00 04 */ li r3, 4 +/* 800A5AE8 000A2A28 90 01 00 18 */ stw r0, 0x18(r1) +/* 800A5AEC 000A2A2C 48 00 41 E9 */ bl GXSetChanAmbColor +/* 800A5AF0 000A2A30 80 01 00 20 */ lwz r0, 0x20(r1) +/* 800A5AF4 000A2A34 38 81 00 14 */ addi r4, r1, 0x14 +/* 800A5AF8 000A2A38 38 60 00 04 */ li r3, 4 +/* 800A5AFC 000A2A3C 90 01 00 14 */ stw r0, 0x14(r1) +/* 800A5B00 000A2A40 48 00 43 3D */ bl GXSetChanMatColor +/* 800A5B04 000A2A44 38 60 00 05 */ li r3, 5 +/* 800A5B08 000A2A48 38 80 00 00 */ li r4, 0 +/* 800A5B0C 000A2A4C 38 A0 00 00 */ li r5, 0 +/* 800A5B10 000A2A50 38 C0 00 01 */ li r6, 1 +/* 800A5B14 000A2A54 38 E0 00 00 */ li r7, 0 +/* 800A5B18 000A2A58 39 00 00 00 */ li r8, 0 +/* 800A5B1C 000A2A5C 39 20 00 02 */ li r9, 2 +/* 800A5B20 000A2A60 48 00 44 D1 */ bl GXSetChanCtrl +/* 800A5B24 000A2A64 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A5B28 000A2A68 38 81 00 10 */ addi r4, r1, 0x10 +/* 800A5B2C 000A2A6C 38 60 00 05 */ li r3, 5 +/* 800A5B30 000A2A70 90 01 00 10 */ stw r0, 0x10(r1) +/* 800A5B34 000A2A74 48 00 41 A1 */ bl GXSetChanAmbColor +/* 800A5B38 000A2A78 80 01 00 20 */ lwz r0, 0x20(r1) +/* 800A5B3C 000A2A7C 38 81 00 0C */ addi r4, r1, 0xc +/* 800A5B40 000A2A80 38 60 00 05 */ li r3, 5 +/* 800A5B44 000A2A84 90 01 00 0C */ stw r0, 0xc(r1) +/* 800A5B48 000A2A88 48 00 42 F5 */ bl GXSetChanMatColor +/* 800A5B4C 000A2A8C 48 00 51 D5 */ bl GXInvalidateTexAll +/* 800A5B50 000A2A90 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A5B54 000A2A94 3B C0 00 00 */ li r30, 0 +/* 800A5B58 000A2A98 3C 60 80 0A */ lis r3, __GXDefaultTexRegionCallback@ha +/* 800A5B5C 000A2A9C 93 C4 02 C8 */ stw r30, 0x2c8(r4) +/* 800A5B60 000A2AA0 38 63 4E E4 */ addi r3, r3, __GXDefaultTexRegionCallback@l +/* 800A5B64 000A2AA4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A5B68 000A2AA8 93 C4 02 CC */ stw r30, 0x2cc(r4) +/* 800A5B6C 000A2AAC 48 00 51 FD */ bl GXSetTexRegionCallback +/* 800A5B70 000A2AB0 3C 60 80 0A */ lis r3, __GXDefaultTlutRegionCallback@ha +/* 800A5B74 000A2AB4 38 63 4F 60 */ addi r3, r3, __GXDefaultTlutRegionCallback@l +/* 800A5B78 000A2AB8 48 00 52 05 */ bl GXSetTlutRegionCallback +/* 800A5B7C 000A2ABC 38 60 00 00 */ li r3, 0 +/* 800A5B80 000A2AC0 38 80 00 00 */ li r4, 0 +/* 800A5B84 000A2AC4 38 A0 00 00 */ li r5, 0 +/* 800A5B88 000A2AC8 38 C0 00 04 */ li r6, 4 +/* 800A5B8C 000A2ACC 48 00 66 A5 */ bl GXSetTevOrder +/* 800A5B90 000A2AD0 38 60 00 01 */ li r3, 1 +/* 800A5B94 000A2AD4 38 80 00 01 */ li r4, 1 +/* 800A5B98 000A2AD8 38 A0 00 01 */ li r5, 1 +/* 800A5B9C 000A2ADC 38 C0 00 04 */ li r6, 4 +/* 800A5BA0 000A2AE0 48 00 66 91 */ bl GXSetTevOrder +/* 800A5BA4 000A2AE4 38 60 00 02 */ li r3, 2 +/* 800A5BA8 000A2AE8 38 80 00 02 */ li r4, 2 +/* 800A5BAC 000A2AEC 38 A0 00 02 */ li r5, 2 +/* 800A5BB0 000A2AF0 38 C0 00 04 */ li r6, 4 +/* 800A5BB4 000A2AF4 48 00 66 7D */ bl GXSetTevOrder +/* 800A5BB8 000A2AF8 38 60 00 03 */ li r3, 3 +/* 800A5BBC 000A2AFC 38 80 00 03 */ li r4, 3 +/* 800A5BC0 000A2B00 38 A0 00 03 */ li r5, 3 +/* 800A5BC4 000A2B04 38 C0 00 04 */ li r6, 4 +/* 800A5BC8 000A2B08 48 00 66 69 */ bl GXSetTevOrder +/* 800A5BCC 000A2B0C 38 60 00 04 */ li r3, 4 +/* 800A5BD0 000A2B10 38 80 00 04 */ li r4, 4 +/* 800A5BD4 000A2B14 38 A0 00 04 */ li r5, 4 +/* 800A5BD8 000A2B18 38 C0 00 04 */ li r6, 4 +/* 800A5BDC 000A2B1C 48 00 66 55 */ bl GXSetTevOrder +/* 800A5BE0 000A2B20 38 60 00 05 */ li r3, 5 +/* 800A5BE4 000A2B24 38 80 00 05 */ li r4, 5 +/* 800A5BE8 000A2B28 38 A0 00 05 */ li r5, 5 +/* 800A5BEC 000A2B2C 38 C0 00 04 */ li r6, 4 +/* 800A5BF0 000A2B30 48 00 66 41 */ bl GXSetTevOrder +/* 800A5BF4 000A2B34 38 60 00 06 */ li r3, 6 +/* 800A5BF8 000A2B38 38 80 00 06 */ li r4, 6 +/* 800A5BFC 000A2B3C 38 A0 00 06 */ li r5, 6 +/* 800A5C00 000A2B40 38 C0 00 04 */ li r6, 4 +/* 800A5C04 000A2B44 48 00 66 2D */ bl GXSetTevOrder +/* 800A5C08 000A2B48 38 60 00 07 */ li r3, 7 +/* 800A5C0C 000A2B4C 38 80 00 07 */ li r4, 7 +/* 800A5C10 000A2B50 38 A0 00 07 */ li r5, 7 +/* 800A5C14 000A2B54 38 C0 00 04 */ li r6, 4 +/* 800A5C18 000A2B58 48 00 66 19 */ bl GXSetTevOrder +/* 800A5C1C 000A2B5C 38 60 00 08 */ li r3, 8 +/* 800A5C20 000A2B60 38 80 00 FF */ li r4, 0xff +/* 800A5C24 000A2B64 38 A0 00 FF */ li r5, 0xff +/* 800A5C28 000A2B68 38 C0 00 FF */ li r6, 0xff +/* 800A5C2C 000A2B6C 48 00 66 05 */ bl GXSetTevOrder +/* 800A5C30 000A2B70 38 60 00 09 */ li r3, 9 +/* 800A5C34 000A2B74 38 80 00 FF */ li r4, 0xff +/* 800A5C38 000A2B78 38 A0 00 FF */ li r5, 0xff +/* 800A5C3C 000A2B7C 38 C0 00 FF */ li r6, 0xff +/* 800A5C40 000A2B80 48 00 65 F1 */ bl GXSetTevOrder +/* 800A5C44 000A2B84 38 60 00 0A */ li r3, 0xa +/* 800A5C48 000A2B88 38 80 00 FF */ li r4, 0xff +/* 800A5C4C 000A2B8C 38 A0 00 FF */ li r5, 0xff +/* 800A5C50 000A2B90 38 C0 00 FF */ li r6, 0xff +/* 800A5C54 000A2B94 48 00 65 DD */ bl GXSetTevOrder +/* 800A5C58 000A2B98 38 60 00 0B */ li r3, 0xb +/* 800A5C5C 000A2B9C 38 80 00 FF */ li r4, 0xff +/* 800A5C60 000A2BA0 38 A0 00 FF */ li r5, 0xff +/* 800A5C64 000A2BA4 38 C0 00 FF */ li r6, 0xff +/* 800A5C68 000A2BA8 48 00 65 C9 */ bl GXSetTevOrder +/* 800A5C6C 000A2BAC 38 60 00 0C */ li r3, 0xc +/* 800A5C70 000A2BB0 38 80 00 FF */ li r4, 0xff +/* 800A5C74 000A2BB4 38 A0 00 FF */ li r5, 0xff +/* 800A5C78 000A2BB8 38 C0 00 FF */ li r6, 0xff +/* 800A5C7C 000A2BBC 48 00 65 B5 */ bl GXSetTevOrder +/* 800A5C80 000A2BC0 38 60 00 0D */ li r3, 0xd +/* 800A5C84 000A2BC4 38 80 00 FF */ li r4, 0xff +/* 800A5C88 000A2BC8 38 A0 00 FF */ li r5, 0xff +/* 800A5C8C 000A2BCC 38 C0 00 FF */ li r6, 0xff +/* 800A5C90 000A2BD0 48 00 65 A1 */ bl GXSetTevOrder +/* 800A5C94 000A2BD4 38 60 00 0E */ li r3, 0xe +/* 800A5C98 000A2BD8 38 80 00 FF */ li r4, 0xff +/* 800A5C9C 000A2BDC 38 A0 00 FF */ li r5, 0xff +/* 800A5CA0 000A2BE0 38 C0 00 FF */ li r6, 0xff +/* 800A5CA4 000A2BE4 48 00 65 8D */ bl GXSetTevOrder +/* 800A5CA8 000A2BE8 38 60 00 0F */ li r3, 0xf +/* 800A5CAC 000A2BEC 38 80 00 FF */ li r4, 0xff +/* 800A5CB0 000A2BF0 38 A0 00 FF */ li r5, 0xff +/* 800A5CB4 000A2BF4 38 C0 00 FF */ li r6, 0xff +/* 800A5CB8 000A2BF8 48 00 65 79 */ bl GXSetTevOrder +/* 800A5CBC 000A2BFC 38 60 00 01 */ li r3, 1 +/* 800A5CC0 000A2C00 48 00 67 4D */ bl GXSetNumTevStages +/* 800A5CC4 000A2C04 38 60 00 00 */ li r3, 0 +/* 800A5CC8 000A2C08 38 80 00 03 */ li r4, 3 +/* 800A5CCC 000A2C0C 48 00 5D 3D */ bl GXSetTevOp +/* 800A5CD0 000A2C10 38 60 00 07 */ li r3, 7 +/* 800A5CD4 000A2C14 38 80 00 00 */ li r4, 0 +/* 800A5CD8 000A2C18 38 A0 00 00 */ li r5, 0 +/* 800A5CDC 000A2C1C 38 C0 00 07 */ li r6, 7 +/* 800A5CE0 000A2C20 38 E0 00 00 */ li r7, 0 +/* 800A5CE4 000A2C24 48 00 64 79 */ bl GXSetAlphaCompare +/* 800A5CE8 000A2C28 38 60 00 00 */ li r3, 0 +/* 800A5CEC 000A2C2C 38 80 00 11 */ li r4, 0x11 +/* 800A5CF0 000A2C30 38 A0 00 00 */ li r5, 0 +/* 800A5CF4 000A2C34 48 00 64 B9 */ bl GXSetZTexture +/* 800A5CF8 000A2C38 48 00 00 04 */ b lbl_800A5CFC +lbl_800A5CFC: +/* 800A5CFC 000A2C3C 48 00 00 04 */ b lbl_800A5D00 +lbl_800A5D00: +/* 800A5D00 000A2C40 48 00 00 04 */ b lbl_800A5D04 +lbl_800A5D04: +/* 800A5D04 000A2C44 7F C3 F3 78 */ mr r3, r30 +/* 800A5D08 000A2C48 38 80 00 06 */ li r4, 6 +/* 800A5D0C 000A2C4C 48 00 62 81 */ bl GXSetTevKColorSel +/* 800A5D10 000A2C50 7F C3 F3 78 */ mr r3, r30 +/* 800A5D14 000A2C54 38 80 00 00 */ li r4, 0 +/* 800A5D18 000A2C58 48 00 62 E1 */ bl GXSetTevKAlphaSel +/* 800A5D1C 000A2C5C 7F C3 F3 78 */ mr r3, r30 +/* 800A5D20 000A2C60 38 80 00 00 */ li r4, 0 +/* 800A5D24 000A2C64 38 A0 00 00 */ li r5, 0 +/* 800A5D28 000A2C68 48 00 63 3D */ bl GXSetTevSwapMode +/* 800A5D2C 000A2C6C 3B DE 00 01 */ addi r30, r30, 1 +/* 800A5D30 000A2C70 28 1E 00 10 */ cmplwi r30, 0x10 +/* 800A5D34 000A2C74 41 80 FF D0 */ blt lbl_800A5D04 +/* 800A5D38 000A2C78 38 60 00 00 */ li r3, 0 +/* 800A5D3C 000A2C7C 38 80 00 00 */ li r4, 0 +/* 800A5D40 000A2C80 38 A0 00 01 */ li r5, 1 +/* 800A5D44 000A2C84 38 C0 00 02 */ li r6, 2 +/* 800A5D48 000A2C88 38 E0 00 03 */ li r7, 3 +/* 800A5D4C 000A2C8C 48 00 63 71 */ bl GXSetTevSwapModeTable +/* 800A5D50 000A2C90 38 60 00 01 */ li r3, 1 +/* 800A5D54 000A2C94 38 80 00 00 */ li r4, 0 +/* 800A5D58 000A2C98 38 A0 00 00 */ li r5, 0 +/* 800A5D5C 000A2C9C 38 C0 00 00 */ li r6, 0 +/* 800A5D60 000A2CA0 38 E0 00 03 */ li r7, 3 +/* 800A5D64 000A2CA4 48 00 63 59 */ bl GXSetTevSwapModeTable +/* 800A5D68 000A2CA8 38 60 00 02 */ li r3, 2 +/* 800A5D6C 000A2CAC 38 80 00 01 */ li r4, 1 +/* 800A5D70 000A2CB0 38 A0 00 01 */ li r5, 1 +/* 800A5D74 000A2CB4 38 C0 00 01 */ li r6, 1 +/* 800A5D78 000A2CB8 38 E0 00 03 */ li r7, 3 +/* 800A5D7C 000A2CBC 48 00 63 41 */ bl GXSetTevSwapModeTable +/* 800A5D80 000A2CC0 38 60 00 03 */ li r3, 3 +/* 800A5D84 000A2CC4 38 80 00 02 */ li r4, 2 +/* 800A5D88 000A2CC8 38 A0 00 02 */ li r5, 2 +/* 800A5D8C 000A2CCC 38 C0 00 02 */ li r6, 2 +/* 800A5D90 000A2CD0 38 E0 00 03 */ li r7, 3 +/* 800A5D94 000A2CD4 48 00 63 29 */ bl GXSetTevSwapModeTable +/* 800A5D98 000A2CD8 3B C0 00 00 */ li r30, 0 +/* 800A5D9C 000A2CDC 48 00 00 04 */ b lbl_800A5DA0 +lbl_800A5DA0: +/* 800A5DA0 000A2CE0 48 00 00 04 */ b lbl_800A5DA4 +lbl_800A5DA4: +/* 800A5DA4 000A2CE4 48 00 00 04 */ b lbl_800A5DA8 +lbl_800A5DA8: +/* 800A5DA8 000A2CE8 7F C3 F3 78 */ mr r3, r30 +/* 800A5DAC 000A2CEC 48 00 5A C1 */ bl GXSetTevDirect +/* 800A5DB0 000A2CF0 3B DE 00 01 */ addi r30, r30, 1 +/* 800A5DB4 000A2CF4 28 1E 00 10 */ cmplwi r30, 0x10 +/* 800A5DB8 000A2CF8 41 80 FF F0 */ blt lbl_800A5DA8 +/* 800A5DBC 000A2CFC 38 60 00 00 */ li r3, 0 +/* 800A5DC0 000A2D00 48 00 5A 81 */ bl GXSetNumIndStages +/* 800A5DC4 000A2D04 38 60 00 00 */ li r3, 0 +/* 800A5DC8 000A2D08 38 80 00 00 */ li r4, 0 +/* 800A5DCC 000A2D0C 38 A0 00 00 */ li r5, 0 +/* 800A5DD0 000A2D10 48 00 57 65 */ bl GXSetIndTexCoordScale +/* 800A5DD4 000A2D14 38 60 00 01 */ li r3, 1 +/* 800A5DD8 000A2D18 38 80 00 00 */ li r4, 0 +/* 800A5DDC 000A2D1C 38 A0 00 00 */ li r5, 0 +/* 800A5DE0 000A2D20 48 00 57 55 */ bl GXSetIndTexCoordScale +/* 800A5DE4 000A2D24 38 60 00 02 */ li r3, 2 +/* 800A5DE8 000A2D28 38 80 00 00 */ li r4, 0 +/* 800A5DEC 000A2D2C 38 A0 00 00 */ li r5, 0 +/* 800A5DF0 000A2D30 48 00 57 45 */ bl GXSetIndTexCoordScale +/* 800A5DF4 000A2D34 38 60 00 03 */ li r3, 3 +/* 800A5DF8 000A2D38 38 80 00 00 */ li r4, 0 +/* 800A5DFC 000A2D3C 38 A0 00 00 */ li r5, 0 +/* 800A5E00 000A2D40 48 00 57 35 */ bl GXSetIndTexCoordScale +/* 800A5E04 000A2D44 C0 42 8A DC */ lfs f2, "@177"@sda21(r2) +/* 800A5E08 000A2D48 38 81 00 08 */ addi r4, r1, 8 +/* 800A5E0C 000A2D4C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800A5E10 000A2D50 38 60 00 00 */ li r3, 0 +/* 800A5E14 000A2D54 FC 80 10 90 */ fmr f4, f2 +/* 800A5E18 000A2D58 90 01 00 08 */ stw r0, 8(r1) +/* 800A5E1C 000A2D5C C0 22 8A E0 */ lfs f1, "@178"@sda21(r2) +/* 800A5E20 000A2D60 C0 62 8A E4 */ lfs f3, "@179"@sda21(r2) +/* 800A5E24 000A2D64 48 00 66 1D */ bl GXSetFog +/* 800A5E28 000A2D68 38 60 00 00 */ li r3, 0 +/* 800A5E2C 000A2D6C 38 80 00 00 */ li r4, 0 +/* 800A5E30 000A2D70 38 A0 00 00 */ li r5, 0 +/* 800A5E34 000A2D74 48 00 67 BD */ bl GXSetFogRangeAdj +/* 800A5E38 000A2D78 38 60 00 00 */ li r3, 0 +/* 800A5E3C 000A2D7C 38 80 00 04 */ li r4, 4 +/* 800A5E40 000A2D80 38 A0 00 05 */ li r5, 5 +/* 800A5E44 000A2D84 38 C0 00 00 */ li r6, 0 +/* 800A5E48 000A2D88 48 00 68 A9 */ bl GXSetBlendMode +/* 800A5E4C 000A2D8C 38 60 00 01 */ li r3, 1 +/* 800A5E50 000A2D90 48 00 69 A5 */ bl GXSetColorUpdate +/* 800A5E54 000A2D94 38 60 00 01 */ li r3, 1 +/* 800A5E58 000A2D98 48 00 69 DD */ bl GXSetAlphaUpdate +/* 800A5E5C 000A2D9C 38 60 00 01 */ li r3, 1 +/* 800A5E60 000A2DA0 38 80 00 03 */ li r4, 3 +/* 800A5E64 000A2DA4 38 A0 00 01 */ li r5, 1 +/* 800A5E68 000A2DA8 48 00 6A 0D */ bl GXSetZMode +/* 800A5E6C 000A2DAC 38 60 00 01 */ li r3, 1 +/* 800A5E70 000A2DB0 48 00 6A 7D */ bl GXSetZCompLoc +/* 800A5E74 000A2DB4 38 60 00 01 */ li r3, 1 +/* 800A5E78 000A2DB8 48 00 6B C5 */ bl GXSetDither +/* 800A5E7C 000A2DBC 38 60 00 00 */ li r3, 0 +/* 800A5E80 000A2DC0 38 80 00 00 */ li r4, 0 +/* 800A5E84 000A2DC4 48 00 6B F9 */ bl GXSetDstAlpha +/* 800A5E88 000A2DC8 38 60 00 00 */ li r3, 0 +/* 800A5E8C 000A2DCC 38 80 00 00 */ li r4, 0 +/* 800A5E90 000A2DD0 48 00 6A 9D */ bl GXSetPixelFmt +/* 800A5E94 000A2DD4 38 60 00 01 */ li r3, 1 +/* 800A5E98 000A2DD8 38 80 00 01 */ li r4, 1 +/* 800A5E9C 000A2DDC 48 00 6C 35 */ bl GXSetFieldMask +/* 800A5EA0 000A2DE0 A0 1F 00 08 */ lhz r0, 8(r31) +/* 800A5EA4 000A2DE4 A0 7F 00 10 */ lhz r3, 0x10(r31) +/* 800A5EA8 000A2DE8 54 00 08 3C */ slwi r0, r0, 1 +/* 800A5EAC 000A2DEC 7C 03 00 00 */ cmpw r3, r0 +/* 800A5EB0 000A2DF0 40 82 00 0C */ bne lbl_800A5EBC +/* 800A5EB4 000A2DF4 38 80 00 01 */ li r4, 1 +/* 800A5EB8 000A2DF8 48 00 00 08 */ b lbl_800A5EC0 +lbl_800A5EBC: +/* 800A5EBC 000A2DFC 38 80 00 00 */ li r4, 0 +lbl_800A5EC0: +/* 800A5EC0 000A2E00 88 7F 00 18 */ lbz r3, 0x18(r31) +/* 800A5EC4 000A2E04 48 00 6C 45 */ bl GXSetFieldMode +/* 800A5EC8 000A2E08 A0 BF 00 04 */ lhz r5, 4(r31) +/* 800A5ECC 000A2E0C 38 60 00 00 */ li r3, 0 +/* 800A5ED0 000A2E10 A0 DF 00 06 */ lhz r6, 6(r31) +/* 800A5ED4 000A2E14 38 80 00 00 */ li r4, 0 +/* 800A5ED8 000A2E18 48 00 2D 11 */ bl GXSetDispCopySrc +/* 800A5EDC 000A2E1C A0 7F 00 04 */ lhz r3, 4(r31) +/* 800A5EE0 000A2E20 A0 9F 00 06 */ lhz r4, 6(r31) +/* 800A5EE4 000A2E24 48 00 2E 85 */ bl GXSetDispCopyDst +/* 800A5EE8 000A2E28 A0 9F 00 08 */ lhz r4, 8(r31) +/* 800A5EEC 000A2E2C 3C 60 43 30 */ lis r3, 0x4330 +/* 800A5EF0 000A2E30 A0 1F 00 06 */ lhz r0, 6(r31) +/* 800A5EF4 000A2E34 90 81 00 64 */ stw r4, 0x64(r1) +/* 800A5EF8 000A2E38 C8 42 8A E8 */ lfd f2, "@181"@sda21(r2) +/* 800A5EFC 000A2E3C 90 01 00 6C */ stw r0, 0x6c(r1) +/* 800A5F00 000A2E40 90 61 00 60 */ stw r3, 0x60(r1) +/* 800A5F04 000A2E44 90 61 00 68 */ stw r3, 0x68(r1) +/* 800A5F08 000A2E48 C8 21 00 60 */ lfd f1, 0x60(r1) +/* 800A5F0C 000A2E4C C8 01 00 68 */ lfd f0, 0x68(r1) +/* 800A5F10 000A2E50 EC 21 10 28 */ fsubs f1, f1, f2 +/* 800A5F14 000A2E54 EC 00 10 28 */ fsubs f0, f0, f2 +/* 800A5F18 000A2E58 EC 21 00 24 */ fdivs f1, f1, f0 +/* 800A5F1C 000A2E5C 48 00 33 71 */ bl GXSetDispCopyYScale +/* 800A5F20 000A2E60 38 60 00 03 */ li r3, 3 +/* 800A5F24 000A2E64 48 00 30 25 */ bl GXSetCopyClamp +/* 800A5F28 000A2E68 88 7F 00 19 */ lbz r3, 0x19(r31) +/* 800A5F2C 000A2E6C 38 9F 00 1A */ addi r4, r31, 0x1a +/* 800A5F30 000A2E70 38 DF 00 32 */ addi r6, r31, 0x32 +/* 800A5F34 000A2E74 38 A0 00 01 */ li r5, 1 +/* 800A5F38 000A2E78 48 00 34 91 */ bl GXSetCopyFilter +/* 800A5F3C 000A2E7C 38 60 00 00 */ li r3, 0 +/* 800A5F40 000A2E80 48 00 36 B1 */ bl GXSetDispCopyGamma +/* 800A5F44 000A2E84 38 60 00 00 */ li r3, 0 +/* 800A5F48 000A2E88 48 00 2F D5 */ bl GXSetDispCopyFrame2Field +/* 800A5F4C 000A2E8C 48 00 39 C1 */ bl GXClearBoundingBox +/* 800A5F50 000A2E90 38 60 00 01 */ li r3, 1 +/* 800A5F54 000A2E94 48 00 26 25 */ bl GXPokeColorUpdate +/* 800A5F58 000A2E98 38 60 00 01 */ li r3, 1 +/* 800A5F5C 000A2E9C 48 00 25 79 */ bl GXPokeAlphaUpdate +/* 800A5F60 000A2EA0 38 60 00 00 */ li r3, 0 +/* 800A5F64 000A2EA4 48 00 26 45 */ bl GXPokeDither +/* 800A5F68 000A2EA8 38 60 00 00 */ li r3, 0 +/* 800A5F6C 000A2EAC 38 80 00 00 */ li r4, 0 +/* 800A5F70 000A2EB0 38 A0 00 01 */ li r5, 1 +/* 800A5F74 000A2EB4 38 C0 00 0F */ li r6, 0xf +/* 800A5F78 000A2EB8 48 00 25 79 */ bl GXPokeBlendMode +/* 800A5F7C 000A2EBC 38 60 00 07 */ li r3, 7 +/* 800A5F80 000A2EC0 38 80 00 00 */ li r4, 0 +/* 800A5F84 000A2EC4 48 00 25 29 */ bl GXPokeAlphaMode +/* 800A5F88 000A2EC8 38 60 00 01 */ li r3, 1 +/* 800A5F8C 000A2ECC 48 00 25 35 */ bl GXPokeAlphaRead +/* 800A5F90 000A2ED0 38 60 00 00 */ li r3, 0 +/* 800A5F94 000A2ED4 38 80 00 00 */ li r4, 0 +/* 800A5F98 000A2ED8 48 00 25 FD */ bl GXPokeDstAlpha +/* 800A5F9C 000A2EDC 38 60 00 01 */ li r3, 1 +/* 800A5FA0 000A2EE0 38 80 00 07 */ li r4, 7 +/* 800A5FA4 000A2EE4 38 A0 00 01 */ li r5, 1 +/* 800A5FA8 000A2EE8 48 00 26 1D */ bl GXPokeZMode +/* 800A5FAC 000A2EEC 38 60 00 23 */ li r3, 0x23 +/* 800A5FB0 000A2EF0 38 80 00 16 */ li r4, 0x16 +/* 800A5FB4 000A2EF4 48 00 7C 45 */ bl GXSetGPMetric +/* 800A5FB8 000A2EF8 48 00 84 D9 */ bl GXClearGPMetric +/* 800A5FBC 000A2EFC 80 01 00 7C */ lwz r0, 0x7c(r1) +/* 800A5FC0 000A2F00 83 E1 00 74 */ lwz r31, 0x74(r1) +/* 800A5FC4 000A2F04 83 C1 00 70 */ lwz r30, 0x70(r1) +/* 800A5FC8 000A2F08 38 21 00 78 */ addi r1, r1, 0x78 +/* 800A5FCC 000A2F0C 7C 08 03 A6 */ mtlr r0 +/* 800A5FD0 000A2F10 4E 80 00 20 */ blr + +.section .sdata, "wa" # 0x80408AC0 - 0x804097C0 +.global gx +gx: + .4byte gxData + .4byte 0 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@121": + .4byte 0x404040FF +"@122": + .4byte 0 +"@123": + .4byte -1 +"@177": + .4byte 0x3F800000 +"@178": + .4byte 0 +"@179": + .4byte 0x3DCCCCCD +"@181": + .4byte 0x43300000 + .4byte 0 + +.section .bss, "wa" # 0x803E6000 - 0x80408AC0 +gxData: + .skip 0x4F8 +FifoObj: + .skip 0x80 + +.section .sbss, "wa" # 0x804097C0 - 0x8040B45C +.global __piReg +__piReg: + .skip 0x4 +.global __cpReg +__cpReg: + .skip 0x4 +.global __peReg +__peReg: + .skip 0x4 +__memReg: + .skip 0x4 diff --git a/asm/Dolphin/gx/GXLight.s b/asm/Dolphin/gx/GXLight.s new file mode 100644 index 0000000..526d56d --- /dev/null +++ b/asm/Dolphin/gx/GXLight.s @@ -0,0 +1,653 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXInitLightAttn +GXInitLightAttn: +/* 800A9944 000A6884 D0 23 00 10 */ stfs f1, 0x10(r3) +/* 800A9948 000A6888 D0 43 00 14 */ stfs f2, 0x14(r3) +/* 800A994C 000A688C D0 63 00 18 */ stfs f3, 0x18(r3) +/* 800A9950 000A6890 D0 83 00 1C */ stfs f4, 0x1c(r3) +/* 800A9954 000A6894 D0 A3 00 20 */ stfs f5, 0x20(r3) +/* 800A9958 000A6898 D0 C3 00 24 */ stfs f6, 0x24(r3) +/* 800A995C 000A689C 4E 80 00 20 */ blr + +.global GXInitLightAttnA +GXInitLightAttnA: +/* 800A9960 000A68A0 D0 23 00 10 */ stfs f1, 0x10(r3) +/* 800A9964 000A68A4 D0 43 00 14 */ stfs f2, 0x14(r3) +/* 800A9968 000A68A8 D0 63 00 18 */ stfs f3, 0x18(r3) +/* 800A996C 000A68AC 4E 80 00 20 */ blr + +.global GXInitLightAttnK +GXInitLightAttnK: +/* 800A9970 000A68B0 D0 23 00 1C */ stfs f1, 0x1c(r3) +/* 800A9974 000A68B4 D0 43 00 20 */ stfs f2, 0x20(r3) +/* 800A9978 000A68B8 D0 63 00 24 */ stfs f3, 0x24(r3) +/* 800A997C 000A68BC 4E 80 00 20 */ blr + +.global GXInitLightDistAttn +GXInitLightDistAttn: +/* 800A9980 000A68C0 C0 02 8B 00 */ lfs f0, "@121"@sda21(r2) +/* 800A9984 000A68C4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 800A9988 000A68C8 40 80 00 08 */ bge lbl_800A9990 +/* 800A998C 000A68CC 38 80 00 00 */ li r4, 0 +lbl_800A9990: +/* 800A9990 000A68D0 C0 02 8B 00 */ lfs f0, "@121"@sda21(r2) +/* 800A9994 000A68D4 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 800A9998 000A68D8 4C 40 13 82 */ cror 2, 0, 2 +/* 800A999C 000A68DC 41 82 00 14 */ beq lbl_800A99B0 +/* 800A99A0 000A68E0 C0 02 8B 04 */ lfs f0, "@127"@sda21(r2) +/* 800A99A4 000A68E4 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 800A99A8 000A68E8 4C 41 13 82 */ cror 2, 1, 2 +/* 800A99AC 000A68EC 40 82 00 08 */ bne lbl_800A99B4 +lbl_800A99B0: +/* 800A99B0 000A68F0 38 80 00 00 */ li r4, 0 +lbl_800A99B4: +/* 800A99B4 000A68F4 2C 04 00 02 */ cmpwi r4, 2 +/* 800A99B8 000A68F8 41 82 00 3C */ beq lbl_800A99F4 +/* 800A99BC 000A68FC 40 80 00 14 */ bge lbl_800A99D0 +/* 800A99C0 000A6900 2C 04 00 00 */ cmpwi r4, 0 +/* 800A99C4 000A6904 41 82 00 70 */ beq lbl_800A9A34 +/* 800A99C8 000A6908 40 80 00 14 */ bge lbl_800A99DC +/* 800A99CC 000A690C 48 00 00 68 */ b lbl_800A9A34 +lbl_800A99D0: +/* 800A99D0 000A6910 2C 04 00 04 */ cmpwi r4, 4 +/* 800A99D4 000A6914 40 80 00 60 */ bge lbl_800A9A34 +/* 800A99D8 000A6918 48 00 00 40 */ b lbl_800A9A18 +lbl_800A99DC: +/* 800A99DC 000A691C C0 A2 8B 04 */ lfs f5, "@127"@sda21(r2) +/* 800A99E0 000A6920 EC 02 00 72 */ fmuls f0, f2, f1 +/* 800A99E4 000A6924 C0 82 8B 00 */ lfs f4, "@121"@sda21(r2) +/* 800A99E8 000A6928 EC 25 10 28 */ fsubs f1, f5, f2 +/* 800A99EC 000A692C EC 61 00 24 */ fdivs f3, f1, f0 +/* 800A99F0 000A6930 48 00 00 50 */ b lbl_800A9A40 +lbl_800A99F4: +/* 800A99F4 000A6934 C0 A2 8B 04 */ lfs f5, "@127"@sda21(r2) +/* 800A99F8 000A6938 EC 82 00 72 */ fmuls f4, f2, f1 +/* 800A99FC 000A693C C0 62 8B 08 */ lfs f3, "@148"@sda21(r2) +/* 800A9A00 000A6940 EC 45 10 28 */ fsubs f2, f5, f2 +/* 800A9A04 000A6944 EC 01 01 32 */ fmuls f0, f1, f4 +/* 800A9A08 000A6948 EC 23 00 B2 */ fmuls f1, f3, f2 +/* 800A9A0C 000A694C EC 61 20 24 */ fdivs f3, f1, f4 +/* 800A9A10 000A6950 EC 81 00 24 */ fdivs f4, f1, f0 +/* 800A9A14 000A6954 48 00 00 2C */ b lbl_800A9A40 +lbl_800A9A18: +/* 800A9A18 000A6958 EC 02 00 72 */ fmuls f0, f2, f1 +/* 800A9A1C 000A695C C0 A2 8B 04 */ lfs f5, "@127"@sda21(r2) +/* 800A9A20 000A6960 C0 62 8B 00 */ lfs f3, "@121"@sda21(r2) +/* 800A9A24 000A6964 EC 45 10 28 */ fsubs f2, f5, f2 +/* 800A9A28 000A6968 EC 01 00 32 */ fmuls f0, f1, f0 +/* 800A9A2C 000A696C EC 82 00 24 */ fdivs f4, f2, f0 +/* 800A9A30 000A6970 48 00 00 10 */ b lbl_800A9A40 +lbl_800A9A34: +/* 800A9A34 000A6974 C0 62 8B 00 */ lfs f3, "@121"@sda21(r2) +/* 800A9A38 000A6978 C0 A2 8B 04 */ lfs f5, "@127"@sda21(r2) +/* 800A9A3C 000A697C FC 80 18 90 */ fmr f4, f3 +lbl_800A9A40: +/* 800A9A40 000A6980 D0 A3 00 1C */ stfs f5, 0x1c(r3) +/* 800A9A44 000A6984 D0 63 00 20 */ stfs f3, 0x20(r3) +/* 800A9A48 000A6988 D0 83 00 24 */ stfs f4, 0x24(r3) +/* 800A9A4C 000A698C 4E 80 00 20 */ blr + +.global GXInitLightPos +GXInitLightPos: +/* 800A9A50 000A6990 D0 23 00 28 */ stfs f1, 0x28(r3) +/* 800A9A54 000A6994 D0 43 00 2C */ stfs f2, 0x2c(r3) +/* 800A9A58 000A6998 D0 63 00 30 */ stfs f3, 0x30(r3) +/* 800A9A5C 000A699C 4E 80 00 20 */ blr + +.global GXInitSpecularDir +GXInitSpecularDir: +/* 800A9A60 000A69A0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800A9A64 000A69A4 FC 00 08 50 */ fneg f0, f1 +/* 800A9A68 000A69A8 FC 20 10 50 */ fneg f1, f2 +/* 800A9A6C 000A69AC C0 A2 8B 04 */ lfs f5, "@127"@sda21(r2) +/* 800A9A70 000A69B0 EC C0 00 32 */ fmuls f6, f0, f0 +/* 800A9A74 000A69B4 C0 82 8B 00 */ lfs f4, "@121"@sda21(r2) +/* 800A9A78 000A69B8 EC 45 18 28 */ fsubs f2, f5, f3 +/* 800A9A7C 000A69BC EC A1 00 72 */ fmuls f5, f1, f1 +/* 800A9A80 000A69C0 EC E2 00 B2 */ fmuls f7, f2, f2 +/* 800A9A84 000A69C4 EC A6 28 2A */ fadds f5, f6, f5 +/* 800A9A88 000A69C8 ED 07 28 2A */ fadds f8, f7, f5 +/* 800A9A8C 000A69CC FC 08 20 40 */ fcmpo cr0, f8, f4 +/* 800A9A90 000A69D0 40 81 00 5C */ ble lbl_800A9AEC +/* 800A9A94 000A69D4 FC A0 40 34 */ frsqrte f5, f8 +/* 800A9A98 000A69D8 C8 E2 8B 10 */ lfd f7, "@165"@sda21(r2) +/* 800A9A9C 000A69DC C8 C2 8B 18 */ lfd f6, "@166"@sda21(r2) +/* 800A9AA0 000A69E0 FC 85 01 72 */ fmul f4, f5, f5 +/* 800A9AA4 000A69E4 FC A7 01 72 */ fmul f5, f7, f5 +/* 800A9AA8 000A69E8 FC 88 01 32 */ fmul f4, f8, f4 +/* 800A9AAC 000A69EC FC 86 20 28 */ fsub f4, f6, f4 +/* 800A9AB0 000A69F0 FC A5 01 32 */ fmul f5, f5, f4 +/* 800A9AB4 000A69F4 FC 85 01 72 */ fmul f4, f5, f5 +/* 800A9AB8 000A69F8 FC A7 01 72 */ fmul f5, f7, f5 +/* 800A9ABC 000A69FC FC 88 01 32 */ fmul f4, f8, f4 +/* 800A9AC0 000A6A00 FC 86 20 28 */ fsub f4, f6, f4 +/* 800A9AC4 000A6A04 FC A5 01 32 */ fmul f5, f5, f4 +/* 800A9AC8 000A6A08 FC 85 01 72 */ fmul f4, f5, f5 +/* 800A9ACC 000A6A0C FC A7 01 72 */ fmul f5, f7, f5 +/* 800A9AD0 000A6A10 FC 88 01 32 */ fmul f4, f8, f4 +/* 800A9AD4 000A6A14 FC 86 20 28 */ fsub f4, f6, f4 +/* 800A9AD8 000A6A18 FC 85 01 32 */ fmul f4, f5, f4 +/* 800A9ADC 000A6A1C FC 88 01 32 */ fmul f4, f8, f4 +/* 800A9AE0 000A6A20 FC 80 20 18 */ frsp f4, f4 +/* 800A9AE4 000A6A24 D0 81 00 18 */ stfs f4, 0x18(r1) +/* 800A9AE8 000A6A28 C1 01 00 18 */ lfs f8, 0x18(r1) +lbl_800A9AEC: +/* 800A9AEC 000A6A2C C0 82 8B 04 */ lfs f4, "@127"@sda21(r2) +/* 800A9AF0 000A6A30 FC 60 18 50 */ fneg f3, f3 +/* 800A9AF4 000A6A34 EC C4 40 24 */ fdivs f6, f4, f8 +/* 800A9AF8 000A6A38 EC A0 01 B2 */ fmuls f5, f0, f6 +/* 800A9AFC 000A6A3C EC 81 01 B2 */ fmuls f4, f1, f6 +/* 800A9B00 000A6A40 EC 42 01 B2 */ fmuls f2, f2, f6 +/* 800A9B04 000A6A44 D0 A3 00 34 */ stfs f5, 0x34(r3) +/* 800A9B08 000A6A48 D0 83 00 38 */ stfs f4, 0x38(r3) +/* 800A9B0C 000A6A4C D0 43 00 3C */ stfs f2, 0x3c(r3) +/* 800A9B10 000A6A50 C0 82 8B 20 */ lfs f4, "@167"@sda21(r2) +/* 800A9B14 000A6A54 EC 44 00 32 */ fmuls f2, f4, f0 +/* 800A9B18 000A6A58 EC 24 00 72 */ fmuls f1, f4, f1 +/* 800A9B1C 000A6A5C EC 04 00 F2 */ fmuls f0, f4, f3 +/* 800A9B20 000A6A60 D0 43 00 28 */ stfs f2, 0x28(r3) +/* 800A9B24 000A6A64 D0 23 00 2C */ stfs f1, 0x2c(r3) +/* 800A9B28 000A6A68 D0 03 00 30 */ stfs f0, 0x30(r3) +/* 800A9B2C 000A6A6C 38 21 00 20 */ addi r1, r1, 0x20 +/* 800A9B30 000A6A70 4E 80 00 20 */ blr + +.global GXInitLightColor +GXInitLightColor: +/* 800A9B34 000A6A74 88 04 00 01 */ lbz r0, 1(r4) +/* 800A9B38 000A6A78 88 A4 00 00 */ lbz r5, 0(r4) +/* 800A9B3C 000A6A7C 88 C4 00 02 */ lbz r6, 2(r4) +/* 800A9B40 000A6A80 54 00 80 1E */ slwi r0, r0, 0x10 +/* 800A9B44 000A6A84 50 A0 C0 0E */ rlwimi r0, r5, 0x18, 0, 7 +/* 800A9B48 000A6A88 88 84 00 03 */ lbz r4, 3(r4) +/* 800A9B4C 000A6A8C 50 C0 44 2E */ rlwimi r0, r6, 8, 0x10, 0x17 +/* 800A9B50 000A6A90 7C 80 03 78 */ or r0, r4, r0 +/* 800A9B54 000A6A94 90 03 00 0C */ stw r0, 0xc(r3) +/* 800A9B58 000A6A98 4E 80 00 20 */ blr + +.global GXGetLightColor +GXGetLightColor: +/* 800A9B5C 000A6A9C 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A9B60 000A6AA0 54 00 46 3E */ srwi r0, r0, 0x18 +/* 800A9B64 000A6AA4 98 04 00 00 */ stb r0, 0(r4) +/* 800A9B68 000A6AA8 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A9B6C 000A6AAC 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f +/* 800A9B70 000A6AB0 98 04 00 01 */ stb r0, 1(r4) +/* 800A9B74 000A6AB4 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A9B78 000A6AB8 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f +/* 800A9B7C 000A6ABC 98 04 00 02 */ stb r0, 2(r4) +/* 800A9B80 000A6AC0 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800A9B84 000A6AC4 98 04 00 03 */ stb r0, 3(r4) +/* 800A9B88 000A6AC8 4E 80 00 20 */ blr + +.global GXLoadLightObjImm +GXLoadLightObjImm: +/* 800A9B8C 000A6ACC 2C 04 00 10 */ cmpwi r4, 0x10 +/* 800A9B90 000A6AD0 41 82 00 7C */ beq lbl_800A9C0C +/* 800A9B94 000A6AD4 40 80 00 34 */ bge lbl_800A9BC8 +/* 800A9B98 000A6AD8 2C 04 00 04 */ cmpwi r4, 4 +/* 800A9B9C 000A6ADC 41 82 00 60 */ beq lbl_800A9BFC +/* 800A9BA0 000A6AE0 40 80 00 1C */ bge lbl_800A9BBC +/* 800A9BA4 000A6AE4 2C 04 00 02 */ cmpwi r4, 2 +/* 800A9BA8 000A6AE8 41 82 00 4C */ beq lbl_800A9BF4 +/* 800A9BAC 000A6AEC 40 80 00 80 */ bge lbl_800A9C2C +/* 800A9BB0 000A6AF0 2C 04 00 01 */ cmpwi r4, 1 +/* 800A9BB4 000A6AF4 40 80 00 38 */ bge lbl_800A9BEC +/* 800A9BB8 000A6AF8 48 00 00 74 */ b lbl_800A9C2C +lbl_800A9BBC: +/* 800A9BBC 000A6AFC 2C 04 00 08 */ cmpwi r4, 8 +/* 800A9BC0 000A6B00 41 82 00 44 */ beq lbl_800A9C04 +/* 800A9BC4 000A6B04 48 00 00 68 */ b lbl_800A9C2C +lbl_800A9BC8: +/* 800A9BC8 000A6B08 2C 04 00 40 */ cmpwi r4, 0x40 +/* 800A9BCC 000A6B0C 41 82 00 50 */ beq lbl_800A9C1C +/* 800A9BD0 000A6B10 40 80 00 10 */ bge lbl_800A9BE0 +/* 800A9BD4 000A6B14 2C 04 00 20 */ cmpwi r4, 0x20 +/* 800A9BD8 000A6B18 41 82 00 3C */ beq lbl_800A9C14 +/* 800A9BDC 000A6B1C 48 00 00 50 */ b lbl_800A9C2C +lbl_800A9BE0: +/* 800A9BE0 000A6B20 2C 04 00 80 */ cmpwi r4, 0x80 +/* 800A9BE4 000A6B24 41 82 00 40 */ beq lbl_800A9C24 +/* 800A9BE8 000A6B28 48 00 00 44 */ b lbl_800A9C2C +lbl_800A9BEC: +/* 800A9BEC 000A6B2C 38 00 00 00 */ li r0, 0 +/* 800A9BF0 000A6B30 48 00 00 40 */ b lbl_800A9C30 +lbl_800A9BF4: +/* 800A9BF4 000A6B34 38 00 00 01 */ li r0, 1 +/* 800A9BF8 000A6B38 48 00 00 38 */ b lbl_800A9C30 +lbl_800A9BFC: +/* 800A9BFC 000A6B3C 38 00 00 02 */ li r0, 2 +/* 800A9C00 000A6B40 48 00 00 30 */ b lbl_800A9C30 +lbl_800A9C04: +/* 800A9C04 000A6B44 38 00 00 03 */ li r0, 3 +/* 800A9C08 000A6B48 48 00 00 28 */ b lbl_800A9C30 +lbl_800A9C0C: +/* 800A9C0C 000A6B4C 38 00 00 04 */ li r0, 4 +/* 800A9C10 000A6B50 48 00 00 20 */ b lbl_800A9C30 +lbl_800A9C14: +/* 800A9C14 000A6B54 38 00 00 05 */ li r0, 5 +/* 800A9C18 000A6B58 48 00 00 18 */ b lbl_800A9C30 +lbl_800A9C1C: +/* 800A9C1C 000A6B5C 38 00 00 06 */ li r0, 6 +/* 800A9C20 000A6B60 48 00 00 10 */ b lbl_800A9C30 +lbl_800A9C24: +/* 800A9C24 000A6B64 38 00 00 07 */ li r0, 7 +/* 800A9C28 000A6B68 48 00 00 08 */ b lbl_800A9C30 +lbl_800A9C2C: +/* 800A9C2C 000A6B6C 38 00 00 00 */ li r0, 0 +lbl_800A9C30: +/* 800A9C30 000A6B70 54 05 20 36 */ slwi r5, r0, 4 +/* 800A9C34 000A6B74 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A9C38 000A6B78 38 05 06 00 */ addi r0, r5, 0x600 +/* 800A9C3C 000A6B7C 38 A0 00 10 */ li r5, 0x10 +/* 800A9C40 000A6B80 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800A9C44 000A6B84 98 A6 80 00 */ stb r5, 0xCC008000@l(r6) +/* 800A9C48 000A6B88 64 00 00 0F */ oris r0, r0, 0xf +/* 800A9C4C 000A6B8C 38 A0 00 00 */ li r5, 0 +/* 800A9C50 000A6B90 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A9C54 000A6B94 38 00 00 01 */ li r0, 1 +/* 800A9C58 000A6B98 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800A9C5C 000A6B9C 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800A9C60 000A6BA0 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800A9C64 000A6BA4 80 A3 00 0C */ lwz r5, 0xc(r3) +/* 800A9C68 000A6BA8 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800A9C6C 000A6BAC C0 03 00 10 */ lfs f0, 0x10(r3) +/* 800A9C70 000A6BB0 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9C74 000A6BB4 C0 03 00 14 */ lfs f0, 0x14(r3) +/* 800A9C78 000A6BB8 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9C7C 000A6BBC C0 03 00 18 */ lfs f0, 0x18(r3) +/* 800A9C80 000A6BC0 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9C84 000A6BC4 C0 03 00 1C */ lfs f0, 0x1c(r3) +/* 800A9C88 000A6BC8 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9C8C 000A6BCC C0 03 00 20 */ lfs f0, 0x20(r3) +/* 800A9C90 000A6BD0 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9C94 000A6BD4 C0 03 00 24 */ lfs f0, 0x24(r3) +/* 800A9C98 000A6BD8 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9C9C 000A6BDC C0 03 00 28 */ lfs f0, 0x28(r3) +/* 800A9CA0 000A6BE0 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9CA4 000A6BE4 C0 03 00 2C */ lfs f0, 0x2c(r3) +/* 800A9CA8 000A6BE8 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9CAC 000A6BEC C0 03 00 30 */ lfs f0, 0x30(r3) +/* 800A9CB0 000A6BF0 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9CB4 000A6BF4 C0 03 00 34 */ lfs f0, 0x34(r3) +/* 800A9CB8 000A6BF8 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9CBC 000A6BFC C0 03 00 38 */ lfs f0, 0x38(r3) +/* 800A9CC0 000A6C00 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9CC4 000A6C04 C0 03 00 3C */ lfs f0, 0x3c(r3) +/* 800A9CC8 000A6C08 D0 06 80 00 */ stfs f0, -0x8000(r6) +/* 800A9CCC 000A6C0C B0 04 00 02 */ sth r0, 2(r4) +/* 800A9CD0 000A6C10 4E 80 00 20 */ blr + +.global GXSetChanAmbColor +GXSetChanAmbColor: +/* 800A9CD4 000A6C14 2C 03 00 03 */ cmpwi r3, 3 +/* 800A9CD8 000A6C18 41 82 00 B0 */ beq lbl_800A9D88 +/* 800A9CDC 000A6C1C 40 80 00 1C */ bge lbl_800A9CF8 +/* 800A9CE0 000A6C20 2C 03 00 01 */ cmpwi r3, 1 +/* 800A9CE4 000A6C24 41 82 00 58 */ beq lbl_800A9D3C +/* 800A9CE8 000A6C28 40 80 00 88 */ bge lbl_800A9D70 +/* 800A9CEC 000A6C2C 2C 03 00 00 */ cmpwi r3, 0 +/* 800A9CF0 000A6C30 40 80 00 18 */ bge lbl_800A9D08 +/* 800A9CF4 000A6C34 4E 80 00 20 */ blr +lbl_800A9CF8: +/* 800A9CF8 000A6C38 2C 03 00 05 */ cmpwi r3, 5 +/* 800A9CFC 000A6C3C 41 82 00 D4 */ beq lbl_800A9DD0 +/* 800A9D00 000A6C40 4C 80 00 20 */ bgelr +/* 800A9D04 000A6C44 48 00 00 9C */ b lbl_800A9DA0 +lbl_800A9D08: +/* 800A9D08 000A6C48 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9D0C 000A6C4C 38 60 00 00 */ li r3, 0 +/* 800A9D10 000A6C50 88 C4 00 02 */ lbz r6, 2(r4) +/* 800A9D14 000A6C54 80 E5 00 A8 */ lwz r7, 0xa8(r5) +/* 800A9D18 000A6C58 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9D1C 000A6C5C 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9D20 000A6C60 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 800A9D24 000A6C64 50 C7 44 2E */ rlwimi r7, r6, 8, 0x10, 0x17 +/* 800A9D28 000A6C68 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9D2C 000A6C6C 50 E4 04 3E */ rlwimi r4, r7, 0, 0x10, 0x1f +/* 800A9D30 000A6C70 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9D34 000A6C74 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9D38 000A6C78 48 00 00 CC */ b lbl_800A9E04 +lbl_800A9D3C: +/* 800A9D3C 000A6C7C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9D40 000A6C80 38 60 00 01 */ li r3, 1 +/* 800A9D44 000A6C84 88 C4 00 02 */ lbz r6, 2(r4) +/* 800A9D48 000A6C88 80 E5 00 AC */ lwz r7, 0xac(r5) +/* 800A9D4C 000A6C8C 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9D50 000A6C90 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9D54 000A6C94 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 800A9D58 000A6C98 50 C7 44 2E */ rlwimi r7, r6, 8, 0x10, 0x17 +/* 800A9D5C 000A6C9C 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9D60 000A6CA0 50 E4 04 3E */ rlwimi r4, r7, 0, 0x10, 0x1f +/* 800A9D64 000A6CA4 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9D68 000A6CA8 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9D6C 000A6CAC 48 00 00 98 */ b lbl_800A9E04 +lbl_800A9D70: +/* 800A9D70 000A6CB0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9D74 000A6CB4 38 60 00 00 */ li r3, 0 +/* 800A9D78 000A6CB8 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9D7C 000A6CBC 80 05 00 A8 */ lwz r0, 0xa8(r5) +/* 800A9D80 000A6CC0 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 +/* 800A9D84 000A6CC4 48 00 00 80 */ b lbl_800A9E04 +lbl_800A9D88: +/* 800A9D88 000A6CC8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9D8C 000A6CCC 38 60 00 01 */ li r3, 1 +/* 800A9D90 000A6CD0 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9D94 000A6CD4 80 05 00 AC */ lwz r0, 0xac(r5) +/* 800A9D98 000A6CD8 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 +/* 800A9D9C 000A6CDC 48 00 00 68 */ b lbl_800A9E04 +lbl_800A9DA0: +/* 800A9DA0 000A6CE0 88 04 00 02 */ lbz r0, 2(r4) +/* 800A9DA4 000A6CE4 38 60 00 00 */ li r3, 0 +/* 800A9DA8 000A6CE8 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9DAC 000A6CEC 54 06 40 2E */ slwi r6, r0, 8 +/* 800A9DB0 000A6CF0 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9DB4 000A6CF4 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9DB8 000A6CF8 50 E6 06 3E */ rlwimi r6, r7, 0, 0x18, 0x1f +/* 800A9DBC 000A6CFC 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9DC0 000A6D00 50 C4 04 3E */ rlwimi r4, r6, 0, 0x10, 0x1f +/* 800A9DC4 000A6D04 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9DC8 000A6D08 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9DCC 000A6D0C 48 00 00 38 */ b lbl_800A9E04 +lbl_800A9DD0: +/* 800A9DD0 000A6D10 88 04 00 02 */ lbz r0, 2(r4) +/* 800A9DD4 000A6D14 38 60 00 01 */ li r3, 1 +/* 800A9DD8 000A6D18 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9DDC 000A6D1C 54 06 40 2E */ slwi r6, r0, 8 +/* 800A9DE0 000A6D20 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9DE4 000A6D24 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9DE8 000A6D28 50 E6 06 3E */ rlwimi r6, r7, 0, 0x18, 0x1f +/* 800A9DEC 000A6D2C 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9DF0 000A6D30 50 C4 04 3E */ rlwimi r4, r6, 0, 0x10, 0x1f +/* 800A9DF4 000A6D34 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9DF8 000A6D38 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9DFC 000A6D3C 48 00 00 08 */ b lbl_800A9E04 +/* 800A9E00 000A6D40 4E 80 00 20 */ blr +lbl_800A9E04: +/* 800A9E04 000A6D44 38 00 00 10 */ li r0, 0x10 +/* 800A9E08 000A6D48 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A9E0C 000A6D4C 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800A9E10 000A6D50 98 06 80 00 */ stb r0, 0xCC008000@l(r6) +/* 800A9E14 000A6D54 38 03 10 0A */ addi r0, r3, 0x100a +/* 800A9E18 000A6D58 38 A0 00 01 */ li r5, 1 +/* 800A9E1C 000A6D5C 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A9E20 000A6D60 54 60 10 3A */ slwi r0, r3, 2 +/* 800A9E24 000A6D64 90 E6 80 00 */ stw r7, -0x8000(r6) +/* 800A9E28 000A6D68 B0 A4 00 02 */ sth r5, 2(r4) +/* 800A9E2C 000A6D6C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9E30 000A6D70 7C 63 02 14 */ add r3, r3, r0 +/* 800A9E34 000A6D74 90 E3 00 A8 */ stw r7, 0xa8(r3) +/* 800A9E38 000A6D78 4E 80 00 20 */ blr + +.global GXSetChanMatColor +GXSetChanMatColor: +/* 800A9E3C 000A6D7C 2C 03 00 03 */ cmpwi r3, 3 +/* 800A9E40 000A6D80 41 82 00 B0 */ beq lbl_800A9EF0 +/* 800A9E44 000A6D84 40 80 00 1C */ bge lbl_800A9E60 +/* 800A9E48 000A6D88 2C 03 00 01 */ cmpwi r3, 1 +/* 800A9E4C 000A6D8C 41 82 00 58 */ beq lbl_800A9EA4 +/* 800A9E50 000A6D90 40 80 00 88 */ bge lbl_800A9ED8 +/* 800A9E54 000A6D94 2C 03 00 00 */ cmpwi r3, 0 +/* 800A9E58 000A6D98 40 80 00 18 */ bge lbl_800A9E70 +/* 800A9E5C 000A6D9C 4E 80 00 20 */ blr +lbl_800A9E60: +/* 800A9E60 000A6DA0 2C 03 00 05 */ cmpwi r3, 5 +/* 800A9E64 000A6DA4 41 82 00 D4 */ beq lbl_800A9F38 +/* 800A9E68 000A6DA8 4C 80 00 20 */ bgelr +/* 800A9E6C 000A6DAC 48 00 00 9C */ b lbl_800A9F08 +lbl_800A9E70: +/* 800A9E70 000A6DB0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9E74 000A6DB4 38 60 00 00 */ li r3, 0 +/* 800A9E78 000A6DB8 88 C4 00 02 */ lbz r6, 2(r4) +/* 800A9E7C 000A6DBC 80 E5 00 B0 */ lwz r7, 0xb0(r5) +/* 800A9E80 000A6DC0 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9E84 000A6DC4 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9E88 000A6DC8 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 800A9E8C 000A6DCC 50 C7 44 2E */ rlwimi r7, r6, 8, 0x10, 0x17 +/* 800A9E90 000A6DD0 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9E94 000A6DD4 50 E4 04 3E */ rlwimi r4, r7, 0, 0x10, 0x1f +/* 800A9E98 000A6DD8 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9E9C 000A6DDC 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9EA0 000A6DE0 48 00 00 CC */ b lbl_800A9F6C +lbl_800A9EA4: +/* 800A9EA4 000A6DE4 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9EA8 000A6DE8 38 60 00 01 */ li r3, 1 +/* 800A9EAC 000A6DEC 88 C4 00 02 */ lbz r6, 2(r4) +/* 800A9EB0 000A6DF0 80 E5 00 B4 */ lwz r7, 0xb4(r5) +/* 800A9EB4 000A6DF4 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9EB8 000A6DF8 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9EBC 000A6DFC 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 800A9EC0 000A6E00 50 C7 44 2E */ rlwimi r7, r6, 8, 0x10, 0x17 +/* 800A9EC4 000A6E04 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9EC8 000A6E08 50 E4 04 3E */ rlwimi r4, r7, 0, 0x10, 0x1f +/* 800A9ECC 000A6E0C 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9ED0 000A6E10 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9ED4 000A6E14 48 00 00 98 */ b lbl_800A9F6C +lbl_800A9ED8: +/* 800A9ED8 000A6E18 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9EDC 000A6E1C 38 60 00 00 */ li r3, 0 +/* 800A9EE0 000A6E20 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9EE4 000A6E24 80 05 00 B0 */ lwz r0, 0xb0(r5) +/* 800A9EE8 000A6E28 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 +/* 800A9EEC 000A6E2C 48 00 00 80 */ b lbl_800A9F6C +lbl_800A9EF0: +/* 800A9EF0 000A6E30 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800A9EF4 000A6E34 38 60 00 01 */ li r3, 1 +/* 800A9EF8 000A6E38 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9EFC 000A6E3C 80 05 00 B4 */ lwz r0, 0xb4(r5) +/* 800A9F00 000A6E40 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17 +/* 800A9F04 000A6E44 48 00 00 68 */ b lbl_800A9F6C +lbl_800A9F08: +/* 800A9F08 000A6E48 88 04 00 02 */ lbz r0, 2(r4) +/* 800A9F0C 000A6E4C 38 60 00 00 */ li r3, 0 +/* 800A9F10 000A6E50 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9F14 000A6E54 54 06 40 2E */ slwi r6, r0, 8 +/* 800A9F18 000A6E58 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9F1C 000A6E5C 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9F20 000A6E60 50 E6 06 3E */ rlwimi r6, r7, 0, 0x18, 0x1f +/* 800A9F24 000A6E64 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9F28 000A6E68 50 C4 04 3E */ rlwimi r4, r6, 0, 0x10, 0x1f +/* 800A9F2C 000A6E6C 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9F30 000A6E70 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9F34 000A6E74 48 00 00 38 */ b lbl_800A9F6C +lbl_800A9F38: +/* 800A9F38 000A6E78 88 04 00 02 */ lbz r0, 2(r4) +/* 800A9F3C 000A6E7C 38 60 00 01 */ li r3, 1 +/* 800A9F40 000A6E80 88 E4 00 03 */ lbz r7, 3(r4) +/* 800A9F44 000A6E84 54 06 40 2E */ slwi r6, r0, 8 +/* 800A9F48 000A6E88 88 A4 00 01 */ lbz r5, 1(r4) +/* 800A9F4C 000A6E8C 88 04 00 00 */ lbz r0, 0(r4) +/* 800A9F50 000A6E90 50 E6 06 3E */ rlwimi r6, r7, 0, 0x18, 0x1f +/* 800A9F54 000A6E94 54 A4 80 1E */ slwi r4, r5, 0x10 +/* 800A9F58 000A6E98 50 C4 04 3E */ rlwimi r4, r6, 0, 0x10, 0x1f +/* 800A9F5C 000A6E9C 54 07 C0 0E */ slwi r7, r0, 0x18 +/* 800A9F60 000A6EA0 50 87 02 3E */ rlwimi r7, r4, 0, 8, 0x1f +/* 800A9F64 000A6EA4 48 00 00 08 */ b lbl_800A9F6C +/* 800A9F68 000A6EA8 4E 80 00 20 */ blr +lbl_800A9F6C: +/* 800A9F6C 000A6EAC 38 00 00 10 */ li r0, 0x10 +/* 800A9F70 000A6EB0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A9F74 000A6EB4 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800A9F78 000A6EB8 98 06 80 00 */ stb r0, 0xCC008000@l(r6) +/* 800A9F7C 000A6EBC 38 03 10 0C */ addi r0, r3, 0x100c +/* 800A9F80 000A6EC0 38 A0 00 01 */ li r5, 1 +/* 800A9F84 000A6EC4 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A9F88 000A6EC8 54 60 10 3A */ slwi r0, r3, 2 +/* 800A9F8C 000A6ECC 90 E6 80 00 */ stw r7, -0x8000(r6) +/* 800A9F90 000A6ED0 B0 A4 00 02 */ sth r5, 2(r4) +/* 800A9F94 000A6ED4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9F98 000A6ED8 7C 63 02 14 */ add r3, r3, r0 +/* 800A9F9C 000A6EDC 90 E3 00 B0 */ stw r7, 0xb0(r3) +/* 800A9FA0 000A6EE0 4E 80 00 20 */ blr + +.global GXSetNumChans +GXSetNumChans: +/* 800A9FA4 000A6EE4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A9FA8 000A6EE8 54 67 06 3E */ clrlwi r7, r3, 0x18 +/* 800A9FAC 000A6EEC 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b +/* 800A9FB0 000A6EF0 38 C4 02 04 */ addi r6, r4, 0x204 +/* 800A9FB4 000A6EF4 80 A4 02 04 */ lwz r5, 0x204(r4) +/* 800A9FB8 000A6EF8 38 60 00 10 */ li r3, 0x10 +/* 800A9FBC 000A6EFC 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800A9FC0 000A6F00 54 A5 07 30 */ rlwinm r5, r5, 0, 0x1c, 0x18 +/* 800A9FC4 000A6F04 7C A0 03 78 */ or r0, r5, r0 +/* 800A9FC8 000A6F08 90 06 00 00 */ stw r0, 0(r6) +/* 800A9FCC 000A6F0C 38 00 10 09 */ li r0, 0x1009 +/* 800A9FD0 000A6F10 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800A9FD4 000A6F14 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A9FD8 000A6F18 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800A9FDC 000A6F1C 90 E4 80 00 */ stw r7, -0x8000(r4) +/* 800A9FE0 000A6F20 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A9FE4 000A6F24 60 00 00 04 */ ori r0, r0, 4 +/* 800A9FE8 000A6F28 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A9FEC 000A6F2C 4E 80 00 20 */ blr + +.global GXSetChanCtrl +GXSetChanCtrl: +/* 800A9FF0 000A6F30 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 800A9FF4 000A6F34 2C 03 00 04 */ cmpwi r3, 4 +/* 800A9FF8 000A6F38 93 E1 00 34 */ stw r31, 0x34(r1) +/* 800A9FFC 000A6F3C 93 C1 00 30 */ stw r30, 0x30(r1) +/* 800AA000 000A6F40 93 A1 00 2C */ stw r29, 0x2c(r1) +/* 800AA004 000A6F44 93 81 00 28 */ stw r28, 0x28(r1) +/* 800AA008 000A6F48 40 82 00 0C */ bne lbl_800AA014 +/* 800AA00C 000A6F4C 39 60 00 00 */ li r11, 0 +/* 800AA010 000A6F50 48 00 00 18 */ b lbl_800AA028 +lbl_800AA014: +/* 800AA014 000A6F54 2C 03 00 05 */ cmpwi r3, 5 +/* 800AA018 000A6F58 40 82 00 0C */ bne lbl_800AA024 +/* 800AA01C 000A6F5C 39 60 00 01 */ li r11, 1 +/* 800AA020 000A6F60 48 00 00 08 */ b lbl_800AA028 +lbl_800AA024: +/* 800AA024 000A6F64 7C 6B 1B 78 */ mr r11, r3 +lbl_800AA028: +/* 800AA028 000A6F68 54 84 0D FC */ rlwinm r4, r4, 1, 0x17, 0x1e +/* 800AA02C 000A6F6C 7C 8A 33 78 */ or r10, r4, r6 +/* 800AA030 000A6F70 54 E0 07 FE */ clrlwi r0, r7, 0x1f +/* 800AA034 000A6F74 7C C0 00 D0 */ neg r6, r0 +/* 800AA038 000A6F78 30 86 FF FF */ addic r4, r6, -1 +/* 800AA03C 000A6F7C 54 E0 07 BC */ rlwinm r0, r7, 0, 0x1e, 0x1e +/* 800AA040 000A6F80 7D 80 00 D0 */ neg r12, r0 +/* 800AA044 000A6F84 7C C4 31 10 */ subfe r6, r4, r6 +/* 800AA048 000A6F88 30 8C FF FF */ addic r4, r12, -1 +/* 800AA04C 000A6F8C 7C 84 61 10 */ subfe r4, r4, r12 +/* 800AA050 000A6F90 54 E0 07 7A */ rlwinm r0, r7, 0, 0x1d, 0x1d +/* 800AA054 000A6F94 7F 80 00 D0 */ neg r28, r0 +/* 800AA058 000A6F98 30 1C FF FF */ addic r0, r28, -1 +/* 800AA05C 000A6F9C 54 EC 07 38 */ rlwinm r12, r7, 0, 0x1c, 0x1c +/* 800AA060 000A6FA0 7C 00 E1 10 */ subfe r0, r0, r28 +/* 800AA064 000A6FA4 7F AC 00 D0 */ neg r29, r12 +/* 800AA068 000A6FA8 33 9D FF FF */ addic r28, r29, -1 +/* 800AA06C 000A6FAC 54 EC 06 F6 */ rlwinm r12, r7, 0, 0x1b, 0x1b +/* 800AA070 000A6FB0 7F CC 00 D0 */ neg r30, r12 +/* 800AA074 000A6FB4 7F 9C E9 10 */ subfe r28, r28, r29 +/* 800AA078 000A6FB8 33 BE FF FF */ addic r29, r30, -1 +/* 800AA07C 000A6FBC 54 EC 06 B4 */ rlwinm r12, r7, 0, 0x1a, 0x1a +/* 800AA080 000A6FC0 7F EC 00 D0 */ neg r31, r12 +/* 800AA084 000A6FC4 7F BD F1 10 */ subfe r29, r29, r30 +/* 800AA088 000A6FC8 33 DF FF FF */ addic r30, r31, -1 +/* 800AA08C 000A6FCC 54 EC 06 72 */ rlwinm r12, r7, 0, 0x19, 0x19 +/* 800AA090 000A6FD0 7F DE F9 10 */ subfe r30, r30, r31 +/* 800AA094 000A6FD4 7F EC 00 D0 */ neg r31, r12 +/* 800AA098 000A6FD8 31 9F FF FF */ addic r12, r31, -1 +/* 800AA09C 000A6FDC 55 4A 06 B0 */ rlwinm r10, r10, 0, 0x1a, 0x18 +/* 800AA0A0 000A6FE0 54 A5 30 32 */ slwi r5, r5, 6 +/* 800AA0A4 000A6FE4 7D 45 2B 78 */ or r5, r10, r5 +/* 800AA0A8 000A6FE8 54 AA 07 B8 */ rlwinm r10, r5, 0, 0x1e, 0x1c +/* 800AA0AC 000A6FEC 54 C5 10 3A */ slwi r5, r6, 2 +/* 800AA0B0 000A6FF0 7D 45 2B 78 */ or r5, r10, r5 +/* 800AA0B4 000A6FF4 54 A5 07 76 */ rlwinm r5, r5, 0, 0x1d, 0x1b +/* 800AA0B8 000A6FF8 54 84 18 38 */ slwi r4, r4, 3 +/* 800AA0BC 000A6FFC 7C A4 23 78 */ or r4, r5, r4 +/* 800AA0C0 000A7000 54 84 07 34 */ rlwinm r4, r4, 0, 0x1c, 0x1a +/* 800AA0C4 000A7004 54 00 20 36 */ slwi r0, r0, 4 +/* 800AA0C8 000A7008 7C 80 03 78 */ or r0, r4, r0 +/* 800AA0CC 000A700C 54 04 06 F2 */ rlwinm r4, r0, 0, 0x1b, 0x19 +/* 800AA0D0 000A7010 57 80 28 34 */ slwi r0, r28, 5 +/* 800AA0D4 000A7014 7C 80 03 78 */ or r0, r4, r0 +/* 800AA0D8 000A7018 54 04 05 66 */ rlwinm r4, r0, 0, 0x15, 0x13 +/* 800AA0DC 000A701C 57 A0 58 28 */ slwi r0, r29, 0xb +/* 800AA0E0 000A7020 7C 80 03 78 */ or r0, r4, r0 +/* 800AA0E4 000A7024 54 04 05 24 */ rlwinm r4, r0, 0, 0x14, 0x12 +/* 800AA0E8 000A7028 57 C0 60 26 */ slwi r0, r30, 0xc +/* 800AA0EC 000A702C 7C 80 03 78 */ or r0, r4, r0 +/* 800AA0F0 000A7030 54 E7 06 30 */ rlwinm r7, r7, 0, 0x18, 0x18 +/* 800AA0F4 000A7034 7F EC F9 10 */ subfe r31, r12, r31 +/* 800AA0F8 000A7038 7D 87 00 D0 */ neg r12, r7 +/* 800AA0FC 000A703C 30 EC FF FF */ addic r7, r12, -1 +/* 800AA100 000A7040 54 04 04 E2 */ rlwinm r4, r0, 0, 0x13, 0x11 +/* 800AA104 000A7044 57 E0 68 24 */ slwi r0, r31, 0xd +/* 800AA108 000A7048 7C 80 03 78 */ or r0, r4, r0 +/* 800AA10C 000A704C 7C E7 61 10 */ subfe r7, r7, r12 +/* 800AA110 000A7050 54 04 04 A0 */ rlwinm r4, r0, 0, 0x12, 0x10 +/* 800AA114 000A7054 54 E0 70 22 */ slwi r0, r7, 0xe +/* 800AA118 000A7058 2C 09 00 00 */ cmpwi r9, 0 +/* 800AA11C 000A705C 7C 86 03 78 */ or r6, r4, r0 +/* 800AA120 000A7060 40 82 00 08 */ bne lbl_800AA128 +/* 800AA124 000A7064 39 00 00 00 */ li r8, 0 +lbl_800AA128: +/* 800AA128 000A7068 20 A9 00 02 */ subfic r5, r9, 2 +/* 800AA12C 000A706C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AA130 000A7070 30 05 FF FF */ addic r0, r5, -1 +/* 800AA134 000A7074 7D 40 29 10 */ subfe r10, r0, r5 +/* 800AA138 000A7078 7C A9 00 D0 */ neg r5, r9 +/* 800AA13C 000A707C 30 05 FF FF */ addic r0, r5, -1 +/* 800AA140 000A7080 7C E0 29 10 */ subfe r7, r0, r5 +/* 800AA144 000A7084 54 C5 06 6C */ rlwinm r5, r6, 0, 0x19, 0x16 +/* 800AA148 000A7088 55 00 38 30 */ slwi r0, r8, 7 +/* 800AA14C 000A708C 7C A8 03 78 */ or r8, r5, r0 +/* 800AA150 000A7090 38 C0 00 10 */ li r6, 0x10 +/* 800AA154 000A7094 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AA158 000A7098 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800AA15C 000A709C 38 0B 10 0E */ addi r0, r11, 0x100e +/* 800AA160 000A70A0 55 09 05 EA */ rlwinm r9, r8, 0, 0x17, 0x15 +/* 800AA164 000A70A4 55 48 48 2C */ slwi r8, r10, 9 +/* 800AA168 000A70A8 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AA16C 000A70AC 7D 20 43 78 */ or r0, r9, r8 +/* 800AA170 000A70B0 54 08 05 A8 */ rlwinm r8, r0, 0, 0x16, 0x14 +/* 800AA174 000A70B4 54 E0 50 2A */ slwi r0, r7, 0xa +/* 800AA178 000A70B8 7D 07 03 78 */ or r7, r8, r0 +/* 800AA17C 000A70BC 90 E5 80 00 */ stw r7, -0x8000(r5) +/* 800AA180 000A70C0 38 00 00 01 */ li r0, 1 +/* 800AA184 000A70C4 2C 03 00 04 */ cmpwi r3, 4 +/* 800AA188 000A70C8 B0 04 00 02 */ sth r0, 2(r4) +/* 800AA18C 000A70CC 40 82 00 18 */ bne lbl_800AA1A4 +/* 800AA190 000A70D0 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800AA194 000A70D4 38 00 10 10 */ li r0, 0x1010 +/* 800AA198 000A70D8 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AA19C 000A70DC 90 E5 80 00 */ stw r7, -0x8000(r5) +/* 800AA1A0 000A70E0 48 00 00 1C */ b lbl_800AA1BC +lbl_800AA1A4: +/* 800AA1A4 000A70E4 2C 03 00 05 */ cmpwi r3, 5 +/* 800AA1A8 000A70E8 40 82 00 14 */ bne lbl_800AA1BC +/* 800AA1AC 000A70EC 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800AA1B0 000A70F0 38 00 10 11 */ li r0, 0x1011 +/* 800AA1B4 000A70F4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AA1B8 000A70F8 90 E5 80 00 */ stw r7, -0x8000(r5) +lbl_800AA1BC: +/* 800AA1BC 000A70FC 83 E1 00 34 */ lwz r31, 0x34(r1) +/* 800AA1C0 000A7100 83 C1 00 30 */ lwz r30, 0x30(r1) +/* 800AA1C4 000A7104 83 A1 00 2C */ lwz r29, 0x2c(r1) +/* 800AA1C8 000A7108 83 81 00 28 */ lwz r28, 0x28(r1) +/* 800AA1CC 000A710C 38 21 00 38 */ addi r1, r1, 0x38 +/* 800AA1D0 000A7110 4E 80 00 20 */ blr + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@121": + .4byte 0 +"@127": + .4byte 0x3F800000 +"@148": + .4byte 0x3F000000 + .4byte 0 +"@165": + .4byte 0x3FE00000 + .4byte 0 +"@166": + .4byte 0x40080000 + .4byte 0 +"@167": + .4byte 0x49800000 + .4byte 0 diff --git a/asm/Dolphin/gx/GXMisc.s b/asm/Dolphin/gx/GXMisc.s new file mode 100644 index 0000000..d1ba191 --- /dev/null +++ b/asm/Dolphin/gx/GXMisc.s @@ -0,0 +1,499 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXSetMisc +GXSetMisc: +/* 800A8198 000A50D8 2C 03 00 01 */ cmpwi r3, 1 +/* 800A819C 000A50DC 41 82 00 14 */ beq lbl_800A81B0 +/* 800A81A0 000A50E0 4D 80 00 20 */ bltlr +/* 800A81A4 000A50E4 2C 03 00 03 */ cmpwi r3, 3 +/* 800A81A8 000A50E8 4C 80 00 20 */ bgelr +/* 800A81AC 000A50EC 48 00 00 4C */ b lbl_800A81F8 +lbl_800A81B0: +/* 800A81B0 000A50F0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A81B4 000A50F4 38 00 00 01 */ li r0, 1 +/* 800A81B8 000A50F8 B0 83 00 04 */ sth r4, 4(r3) +/* 800A81BC 000A50FC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A81C0 000A5100 A0 64 00 04 */ lhz r3, 4(r4) +/* 800A81C4 000A5104 7C 63 00 34 */ cntlzw r3, r3 +/* 800A81C8 000A5108 54 63 DC 3E */ rlwinm r3, r3, 0x1b, 0x10, 0x1f +/* 800A81CC 000A510C B0 64 00 00 */ sth r3, 0(r4) +/* 800A81D0 000A5110 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A81D4 000A5114 B0 03 00 02 */ sth r0, 2(r3) +/* 800A81D8 000A5118 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A81DC 000A511C A0 03 00 04 */ lhz r0, 4(r3) +/* 800A81E0 000A5120 28 00 00 00 */ cmplwi r0, 0 +/* 800A81E4 000A5124 4D 82 00 20 */ beqlr +/* 800A81E8 000A5128 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A81EC 000A512C 60 00 00 08 */ ori r0, r0, 8 +/* 800A81F0 000A5130 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800A81F4 000A5134 4E 80 00 20 */ blr +lbl_800A81F8: +/* 800A81F8 000A5138 7C 84 00 D0 */ neg r4, r4 +/* 800A81FC 000A513C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8200 000A5140 30 04 FF FF */ addic r0, r4, -1 +/* 800A8204 000A5144 7C 00 21 10 */ subfe r0, r0, r4 +/* 800A8208 000A5148 98 03 04 F1 */ stb r0, 0x4f1(r3) +/* 800A820C 000A514C 4E 80 00 20 */ blr + +.global GXFlush +GXFlush: +/* 800A8210 000A5150 7C 08 02 A6 */ mflr r0 +/* 800A8214 000A5154 90 01 00 04 */ stw r0, 4(r1) +/* 800A8218 000A5158 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A821C 000A515C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8220 000A5160 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800A8224 000A5164 28 00 00 00 */ cmplwi r0, 0 +/* 800A8228 000A5168 41 82 00 08 */ beq lbl_800A8230 +/* 800A822C 000A516C 48 00 05 DD */ bl __GXSetDirtyState +lbl_800A8230: +/* 800A8230 000A5170 38 00 00 00 */ li r0, 0 +/* 800A8234 000A5174 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A8238 000A5178 90 03 80 00 */ stw r0, 0xCC008000@l(r3) +/* 800A823C 000A517C 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A8240 000A5180 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A8244 000A5184 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A8248 000A5188 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A824C 000A518C 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A8250 000A5190 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A8254 000A5194 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800A8258 000A5198 4B FE 41 81 */ bl PPCSync +/* 800A825C 000A519C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A8260 000A51A0 38 21 00 08 */ addi r1, r1, 8 +/* 800A8264 000A51A4 7C 08 03 A6 */ mtlr r0 +/* 800A8268 000A51A8 4E 80 00 20 */ blr + +.global GXSetDrawSync +GXSetDrawSync: +/* 800A826C 000A51AC 7C 08 02 A6 */ mflr r0 +/* 800A8270 000A51B0 90 01 00 04 */ stw r0, 4(r1) +/* 800A8274 000A51B4 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A8278 000A51B8 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A827C 000A51BC 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800A8280 000A51C0 7C 7E 1B 78 */ mr r30, r3 +/* 800A8284 000A51C4 4B FE 7F 49 */ bl OSDisableInterrupts +/* 800A8288 000A51C8 38 C0 00 61 */ li r6, 0x61 +/* 800A828C 000A51CC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8290 000A51D0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8294 000A51D4 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 800A8298 000A51D8 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800A829C 000A51DC 64 00 48 00 */ oris r0, r0, 0x4800 +/* 800A82A0 000A51E0 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800A82A4 000A51E4 54 00 00 1E */ rlwinm r0, r0, 0, 0, 0xf +/* 800A82A8 000A51E8 53 C0 04 3E */ rlwimi r0, r30, 0, 0x10, 0x1f +/* 800A82AC 000A51EC 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A82B0 000A51F0 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800A82B4 000A51F4 64 00 47 00 */ oris r0, r0, 0x4700 +/* 800A82B8 000A51F8 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800A82BC 000A51FC 7C 7E 1B 78 */ mr r30, r3 +/* 800A82C0 000A5200 80 04 04 F4 */ lwz r0, 0x4f4(r4) +/* 800A82C4 000A5204 28 00 00 00 */ cmplwi r0, 0 +/* 800A82C8 000A5208 41 82 00 08 */ beq lbl_800A82D0 +/* 800A82CC 000A520C 48 00 05 3D */ bl __GXSetDirtyState +lbl_800A82D0: +/* 800A82D0 000A5210 3B E0 00 00 */ li r31, 0 +/* 800A82D4 000A5214 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A82D8 000A5218 93 E3 80 00 */ stw r31, 0xCC008000@l(r3) +/* 800A82DC 000A521C 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82E0 000A5220 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82E4 000A5224 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82E8 000A5228 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82EC 000A522C 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82F0 000A5230 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82F4 000A5234 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A82F8 000A5238 4B FE 40 E1 */ bl PPCSync +/* 800A82FC 000A523C 7F C3 F3 78 */ mr r3, r30 +/* 800A8300 000A5240 4B FE 7E F5 */ bl OSRestoreInterrupts +/* 800A8304 000A5244 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800A8308 000A5248 B3 E3 00 02 */ sth r31, 2(r3) +/* 800A830C 000A524C 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A8310 000A5250 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A8314 000A5254 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800A8318 000A5258 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A831C 000A525C 7C 08 03 A6 */ mtlr r0 +/* 800A8320 000A5260 4E 80 00 20 */ blr + +.global GXSetDrawDone +GXSetDrawDone: +/* 800A8324 000A5264 7C 08 02 A6 */ mflr r0 +/* 800A8328 000A5268 90 01 00 04 */ stw r0, 4(r1) +/* 800A832C 000A526C 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A8330 000A5270 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A8334 000A5274 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800A8338 000A5278 4B FE 7E 95 */ bl OSDisableInterrupts +/* 800A833C 000A527C 38 00 00 61 */ li r0, 0x61 +/* 800A8340 000A5280 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8344 000A5284 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800A8348 000A5288 3C A0 45 00 */ lis r5, 0x45000002@ha +/* 800A834C 000A528C 98 06 80 00 */ stb r0, 0xCC008000@l(r6) +/* 800A8350 000A5290 38 05 00 02 */ addi r0, r5, 0x45000002@l +/* 800A8354 000A5294 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800A8358 000A5298 7C 7E 1B 78 */ mr r30, r3 +/* 800A835C 000A529C 80 04 04 F4 */ lwz r0, 0x4f4(r4) +/* 800A8360 000A52A0 28 00 00 00 */ cmplwi r0, 0 +/* 800A8364 000A52A4 41 82 00 08 */ beq lbl_800A836C +/* 800A8368 000A52A8 48 00 04 A1 */ bl __GXSetDirtyState +lbl_800A836C: +/* 800A836C 000A52AC 3B E0 00 00 */ li r31, 0 +/* 800A8370 000A52B0 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800A8374 000A52B4 93 E3 80 00 */ stw r31, 0xCC008000@l(r3) +/* 800A8378 000A52B8 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A837C 000A52BC 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A8380 000A52C0 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A8384 000A52C4 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A8388 000A52C8 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A838C 000A52CC 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A8390 000A52D0 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800A8394 000A52D4 4B FE 40 45 */ bl PPCSync +/* 800A8398 000A52D8 9B ED 95 90 */ stb r31, DrawDone@sda21(r13) +/* 800A839C 000A52DC 7F C3 F3 78 */ mr r3, r30 +/* 800A83A0 000A52E0 4B FE 7E 55 */ bl OSRestoreInterrupts +/* 800A83A4 000A52E4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A83A8 000A52E8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A83AC 000A52EC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800A83B0 000A52F0 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A83B4 000A52F4 7C 08 03 A6 */ mtlr r0 +/* 800A83B8 000A52F8 4E 80 00 20 */ blr + +.global GXWaitDrawDone +GXWaitDrawDone: +/* 800A83BC 000A52FC 7C 08 02 A6 */ mflr r0 +/* 800A83C0 000A5300 90 01 00 04 */ stw r0, 4(r1) +/* 800A83C4 000A5304 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 800A83C8 000A5308 93 E1 00 0C */ stw r31, 0xc(r1) +/* 800A83CC 000A530C 4B FE 7E 01 */ bl OSDisableInterrupts +/* 800A83D0 000A5310 7C 7F 1B 78 */ mr r31, r3 +/* 800A83D4 000A5314 48 00 00 0C */ b lbl_800A83E0 +lbl_800A83D8: +/* 800A83D8 000A5318 38 6D 95 94 */ addi r3, r13, FinishQueue@sda21 +/* 800A83DC 000A531C 4B FE B8 25 */ bl OSSleepThread +lbl_800A83E0: +/* 800A83E0 000A5320 88 0D 95 90 */ lbz r0, DrawDone@sda21(r13) +/* 800A83E4 000A5324 28 00 00 00 */ cmplwi r0, 0 +/* 800A83E8 000A5328 41 82 FF F0 */ beq lbl_800A83D8 +/* 800A83EC 000A532C 7F E3 FB 78 */ mr r3, r31 +/* 800A83F0 000A5330 4B FE 7E 05 */ bl OSRestoreInterrupts +/* 800A83F4 000A5334 80 01 00 14 */ lwz r0, 0x14(r1) +/* 800A83F8 000A5338 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 800A83FC 000A533C 38 21 00 10 */ addi r1, r1, 0x10 +/* 800A8400 000A5340 7C 08 03 A6 */ mtlr r0 +/* 800A8404 000A5344 4E 80 00 20 */ blr + +.global GXDrawDone +GXDrawDone: +/* 800A8408 000A5348 7C 08 02 A6 */ mflr r0 +/* 800A840C 000A534C 90 01 00 04 */ stw r0, 4(r1) +/* 800A8410 000A5350 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A8414 000A5354 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A8418 000A5358 4B FE 7D B5 */ bl OSDisableInterrupts +/* 800A841C 000A535C 38 00 00 61 */ li r0, 0x61 +/* 800A8420 000A5360 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8424 000A5364 3C 80 45 00 */ lis r4, 0x45000002@ha +/* 800A8428 000A5368 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A842C 000A536C 38 04 00 02 */ addi r0, r4, 0x45000002@l +/* 800A8430 000A5370 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800A8434 000A5374 7C 7F 1B 78 */ mr r31, r3 +/* 800A8438 000A5378 4B FF FD D9 */ bl GXFlush +/* 800A843C 000A537C 38 00 00 00 */ li r0, 0 +/* 800A8440 000A5380 98 0D 95 90 */ stb r0, DrawDone@sda21(r13) +/* 800A8444 000A5384 7F E3 FB 78 */ mr r3, r31 +/* 800A8448 000A5388 4B FE 7D AD */ bl OSRestoreInterrupts +/* 800A844C 000A538C 4B FE 7D 81 */ bl OSDisableInterrupts +/* 800A8450 000A5390 7C 7F 1B 78 */ mr r31, r3 +/* 800A8454 000A5394 48 00 00 0C */ b lbl_800A8460 +lbl_800A8458: +/* 800A8458 000A5398 38 6D 95 94 */ addi r3, r13, FinishQueue@sda21 +/* 800A845C 000A539C 4B FE B7 A5 */ bl OSSleepThread +lbl_800A8460: +/* 800A8460 000A53A0 88 0D 95 90 */ lbz r0, DrawDone@sda21(r13) +/* 800A8464 000A53A4 28 00 00 00 */ cmplwi r0, 0 +/* 800A8468 000A53A8 41 82 FF F0 */ beq lbl_800A8458 +/* 800A846C 000A53AC 7F E3 FB 78 */ mr r3, r31 +/* 800A8470 000A53B0 4B FE 7D 85 */ bl OSRestoreInterrupts +/* 800A8474 000A53B4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A8478 000A53B8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A847C 000A53BC 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A8480 000A53C0 7C 08 03 A6 */ mtlr r0 +/* 800A8484 000A53C4 4E 80 00 20 */ blr + +.global GXPixModeSync +GXPixModeSync: +/* 800A8488 000A53C8 38 00 00 61 */ li r0, 0x61 +/* 800A848C 000A53CC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800A8490 000A53D0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800A8494 000A53D4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800A8498 000A53D8 38 00 00 00 */ li r0, 0 +/* 800A849C 000A53DC 80 64 01 DC */ lwz r3, 0x1dc(r4) +/* 800A84A0 000A53E0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800A84A4 000A53E4 B0 04 00 02 */ sth r0, 2(r4) +/* 800A84A8 000A53E8 4E 80 00 20 */ blr + +.global GXPokeAlphaMode +GXPokeAlphaMode: +/* 800A84AC 000A53EC 80 AD 95 60 */ lwz r5, __peReg@sda21(r13) +/* 800A84B0 000A53F0 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 800A84B4 000A53F4 50 60 40 2E */ rlwimi r0, r3, 8, 0, 0x17 +/* 800A84B8 000A53F8 B0 05 00 06 */ sth r0, 6(r5) +/* 800A84BC 000A53FC 4E 80 00 20 */ blr + +.global GXPokeAlphaRead +GXPokeAlphaRead: +/* 800A84C0 000A5400 54 60 07 B8 */ rlwinm r0, r3, 0, 0x1e, 0x1c +/* 800A84C4 000A5404 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800A84C8 000A5408 60 00 00 04 */ ori r0, r0, 4 +/* 800A84CC 000A540C B0 03 00 08 */ sth r0, 8(r3) +/* 800A84D0 000A5410 4E 80 00 20 */ blr + +.global GXPokeAlphaUpdate +GXPokeAlphaUpdate: +/* 800A84D4 000A5414 80 8D 95 60 */ lwz r4, __peReg@sda21(r13) +/* 800A84D8 000A5418 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b +/* 800A84DC 000A541C A4 64 00 02 */ lhzu r3, 2(r4) +/* 800A84E0 000A5420 54 63 07 34 */ rlwinm r3, r3, 0, 0x1c, 0x1a +/* 800A84E4 000A5424 7C 60 03 78 */ or r0, r3, r0 +/* 800A84E8 000A5428 B0 04 00 00 */ sth r0, 0(r4) +/* 800A84EC 000A542C 4E 80 00 20 */ blr + +.global GXPokeBlendMode +GXPokeBlendMode: +/* 800A84F0 000A5430 80 ED 95 60 */ lwz r7, __peReg@sda21(r13) +/* 800A84F4 000A5434 2C 03 00 01 */ cmpwi r3, 1 +/* 800A84F8 000A5438 39 20 00 01 */ li r9, 1 +/* 800A84FC 000A543C 39 47 00 02 */ addi r10, r7, 2 +/* 800A8500 000A5440 A0 E7 00 02 */ lhz r7, 2(r7) +/* 800A8504 000A5444 41 82 00 10 */ beq lbl_800A8514 +/* 800A8508 000A5448 2C 03 00 03 */ cmpwi r3, 3 +/* 800A850C 000A544C 41 82 00 08 */ beq lbl_800A8514 +/* 800A8510 000A5450 39 20 00 00 */ li r9, 0 +lbl_800A8514: +/* 800A8514 000A5454 54 E8 00 3C */ rlwinm r8, r7, 0, 0, 0x1e +/* 800A8518 000A5458 20 03 00 03 */ subfic r0, r3, 3 +/* 800A851C 000A545C 7C 07 00 34 */ cntlzw r7, r0 +/* 800A8520 000A5460 20 03 00 02 */ subfic r0, r3, 2 +/* 800A8524 000A5464 7D 08 4B 78 */ or r8, r8, r9 +/* 800A8528 000A5468 7C 00 00 34 */ cntlzw r0, r0 +/* 800A852C 000A546C 55 08 05 66 */ rlwinm r8, r8, 0, 0x15, 0x13 +/* 800A8530 000A5470 54 E3 30 28 */ rlwinm r3, r7, 6, 0, 0x14 +/* 800A8534 000A5474 7D 03 1B 78 */ or r3, r8, r3 +/* 800A8538 000A5478 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d +/* 800A853C 000A547C 54 00 E1 3C */ rlwinm r0, r0, 0x1c, 4, 0x1e +/* 800A8540 000A5480 7C 60 03 78 */ or r0, r3, r0 +/* 800A8544 000A5484 54 03 05 1E */ rlwinm r3, r0, 0, 0x14, 0xf +/* 800A8548 000A5488 54 C0 60 26 */ slwi r0, r6, 0xc +/* 800A854C 000A548C 7C 60 03 78 */ or r0, r3, r0 +/* 800A8550 000A5490 54 03 06 28 */ rlwinm r3, r0, 0, 0x18, 0x14 +/* 800A8554 000A5494 54 80 40 2E */ slwi r0, r4, 8 +/* 800A8558 000A5498 7C 60 03 78 */ or r0, r3, r0 +/* 800A855C 000A549C 54 03 06 EE */ rlwinm r3, r0, 0, 0x1b, 0x17 +/* 800A8560 000A54A0 54 A0 28 34 */ slwi r0, r5, 5 +/* 800A8564 000A54A4 7C 60 03 78 */ or r0, r3, r0 +/* 800A8568 000A54A8 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800A856C 000A54AC 64 00 41 00 */ oris r0, r0, 0x4100 +/* 800A8570 000A54B0 B0 0A 00 00 */ sth r0, 0(r10) +/* 800A8574 000A54B4 4E 80 00 20 */ blr + +.global GXPokeColorUpdate +GXPokeColorUpdate: +/* 800A8578 000A54B8 80 8D 95 60 */ lwz r4, __peReg@sda21(r13) +/* 800A857C 000A54BC 54 60 1D 78 */ rlwinm r0, r3, 3, 0x15, 0x1c +/* 800A8580 000A54C0 A4 64 00 02 */ lhzu r3, 2(r4) +/* 800A8584 000A54C4 54 63 07 76 */ rlwinm r3, r3, 0, 0x1d, 0x1b +/* 800A8588 000A54C8 7C 60 03 78 */ or r0, r3, r0 +/* 800A858C 000A54CC B0 04 00 00 */ sth r0, 0(r4) +/* 800A8590 000A54D0 4E 80 00 20 */ blr + +.global GXPokeDstAlpha +GXPokeDstAlpha: +/* 800A8594 000A54D4 80 AD 95 60 */ lwz r5, __peReg@sda21(r13) +/* 800A8598 000A54D8 54 60 44 2E */ rlwinm r0, r3, 8, 0x10, 0x17 +/* 800A859C 000A54DC 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f +/* 800A85A0 000A54E0 B0 05 00 04 */ sth r0, 4(r5) +/* 800A85A4 000A54E4 4E 80 00 20 */ blr + +.global GXPokeDither +GXPokeDither: +/* 800A85A8 000A54E8 80 8D 95 60 */ lwz r4, __peReg@sda21(r13) +/* 800A85AC 000A54EC 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d +/* 800A85B0 000A54F0 A4 64 00 02 */ lhzu r3, 2(r4) +/* 800A85B4 000A54F4 54 63 07 B8 */ rlwinm r3, r3, 0, 0x1e, 0x1c +/* 800A85B8 000A54F8 7C 60 03 78 */ or r0, r3, r0 +/* 800A85BC 000A54FC B0 04 00 00 */ sth r0, 0(r4) +/* 800A85C0 000A5500 4E 80 00 20 */ blr + +.global GXPokeZMode +GXPokeZMode: +/* 800A85C4 000A5504 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 800A85C8 000A5508 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800A85CC 000A550C 54 06 07 F6 */ rlwinm r6, r0, 0, 0x1f, 0x1b +/* 800A85D0 000A5510 54 80 08 3C */ slwi r0, r4, 1 +/* 800A85D4 000A5514 7C C0 03 78 */ or r0, r6, r0 +/* 800A85D8 000A5518 54 04 07 34 */ rlwinm r4, r0, 0, 0x1c, 0x1a +/* 800A85DC 000A551C 54 A0 25 36 */ rlwinm r0, r5, 4, 0x14, 0x1b +/* 800A85E0 000A5520 7C 80 03 78 */ or r0, r4, r0 +/* 800A85E4 000A5524 B0 03 00 00 */ sth r0, 0(r3) +/* 800A85E8 000A5528 4E 80 00 20 */ blr + +.global GXPeekARGB +GXPeekARGB: +/* 800A85EC 000A552C 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d +/* 800A85F0 000A5530 64 00 C8 00 */ oris r0, r0, 0xc800 +/* 800A85F4 000A5534 54 03 05 12 */ rlwinm r3, r0, 0, 0x14, 9 +/* 800A85F8 000A5538 54 80 61 26 */ rlwinm r0, r4, 0xc, 4, 0x13 +/* 800A85FC 000A553C 7C 60 03 78 */ or r0, r3, r0 +/* 800A8600 000A5540 54 03 02 8E */ rlwinm r3, r0, 0, 0xa, 7 +/* 800A8604 000A5544 80 03 00 00 */ lwz r0, 0(r3) +/* 800A8608 000A5548 90 05 00 00 */ stw r0, 0(r5) +/* 800A860C 000A554C 4E 80 00 20 */ blr + +.global GXPeekZ +GXPeekZ: +/* 800A8610 000A5550 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d +/* 800A8614 000A5554 64 00 C8 00 */ oris r0, r0, 0xc800 +/* 800A8618 000A5558 54 03 05 12 */ rlwinm r3, r0, 0, 0x14, 9 +/* 800A861C 000A555C 54 80 61 26 */ rlwinm r0, r4, 0xc, 4, 0x13 +/* 800A8620 000A5560 7C 60 03 78 */ or r0, r3, r0 +/* 800A8624 000A5564 54 00 02 8E */ rlwinm r0, r0, 0, 0xa, 7 +/* 800A8628 000A5568 64 03 00 40 */ oris r3, r0, 0x40 +/* 800A862C 000A556C 80 03 00 00 */ lwz r0, 0(r3) +/* 800A8630 000A5570 90 05 00 00 */ stw r0, 0(r5) +/* 800A8634 000A5574 4E 80 00 20 */ blr + +.global GXSetDrawSyncCallback +GXSetDrawSyncCallback: +/* 800A8638 000A5578 7C 08 02 A6 */ mflr r0 +/* 800A863C 000A557C 90 01 00 04 */ stw r0, 4(r1) +/* 800A8640 000A5580 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800A8644 000A5584 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800A8648 000A5588 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800A864C 000A558C 7C 7E 1B 78 */ mr r30, r3 +/* 800A8650 000A5590 83 ED 95 88 */ lwz r31, TokenCB@sda21(r13) +/* 800A8654 000A5594 4B FE 7B 79 */ bl OSDisableInterrupts +/* 800A8658 000A5598 93 CD 95 88 */ stw r30, TokenCB@sda21(r13) +/* 800A865C 000A559C 4B FE 7B 99 */ bl OSRestoreInterrupts +/* 800A8660 000A55A0 7F E3 FB 78 */ mr r3, r31 +/* 800A8664 000A55A4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800A8668 000A55A8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800A866C 000A55AC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800A8670 000A55B0 38 21 00 18 */ addi r1, r1, 0x18 +/* 800A8674 000A55B4 7C 08 03 A6 */ mtlr r0 +/* 800A8678 000A55B8 4E 80 00 20 */ blr + +.global GXTokenInterruptHandler +GXTokenInterruptHandler: +/* 800A867C 000A55BC 7C 08 02 A6 */ mflr r0 +/* 800A8680 000A55C0 90 01 00 04 */ stw r0, 4(r1) +/* 800A8684 000A55C4 94 21 FD 20 */ stwu r1, -0x2e0(r1) +/* 800A8688 000A55C8 93 E1 02 DC */ stw r31, 0x2dc(r1) +/* 800A868C 000A55CC 93 C1 02 D8 */ stw r30, 0x2d8(r1) +/* 800A8690 000A55D0 7C 9E 23 78 */ mr r30, r4 +/* 800A8694 000A55D4 80 0D 95 88 */ lwz r0, TokenCB@sda21(r13) +/* 800A8698 000A55D8 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800A869C 000A55DC 28 00 00 00 */ cmplwi r0, 0 +/* 800A86A0 000A55E0 A3 E3 00 0E */ lhz r31, 0xe(r3) +/* 800A86A4 000A55E4 41 82 00 34 */ beq lbl_800A86D8 +/* 800A86A8 000A55E8 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A86AC 000A55EC 4B FE 63 39 */ bl OSClearContext +/* 800A86B0 000A55F0 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A86B4 000A55F4 4B FE 61 69 */ bl OSSetCurrentContext +/* 800A86B8 000A55F8 81 8D 95 88 */ lwz r12, TokenCB@sda21(r13) +/* 800A86BC 000A55FC 38 7F 00 00 */ addi r3, r31, 0 +/* 800A86C0 000A5600 7D 88 03 A6 */ mtlr r12 +/* 800A86C4 000A5604 4E 80 00 21 */ blrl +/* 800A86C8 000A5608 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A86CC 000A560C 4B FE 63 19 */ bl OSClearContext +/* 800A86D0 000A5610 7F C3 F3 78 */ mr r3, r30 +/* 800A86D4 000A5614 4B FE 61 49 */ bl OSSetCurrentContext +lbl_800A86D8: +/* 800A86D8 000A5618 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800A86DC 000A561C A4 03 00 0A */ lhzu r0, 0xa(r3) +/* 800A86E0 000A5620 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c +/* 800A86E4 000A5624 60 00 00 04 */ ori r0, r0, 4 +/* 800A86E8 000A5628 B0 03 00 00 */ sth r0, 0(r3) +/* 800A86EC 000A562C 80 01 02 E4 */ lwz r0, 0x2e4(r1) +/* 800A86F0 000A5630 83 E1 02 DC */ lwz r31, 0x2dc(r1) +/* 800A86F4 000A5634 83 C1 02 D8 */ lwz r30, 0x2d8(r1) +/* 800A86F8 000A5638 38 21 02 E0 */ addi r1, r1, 0x2e0 +/* 800A86FC 000A563C 7C 08 03 A6 */ mtlr r0 +/* 800A8700 000A5640 4E 80 00 20 */ blr + +.global GXFinishInterruptHandler +GXFinishInterruptHandler: +/* 800A8704 000A5644 7C 08 02 A6 */ mflr r0 +/* 800A8708 000A5648 38 60 00 01 */ li r3, 1 +/* 800A870C 000A564C 90 01 00 04 */ stw r0, 4(r1) +/* 800A8710 000A5650 94 21 FD 20 */ stwu r1, -0x2e0(r1) +/* 800A8714 000A5654 93 E1 02 DC */ stw r31, 0x2dc(r1) +/* 800A8718 000A5658 3B E4 00 00 */ addi r31, r4, 0 +/* 800A871C 000A565C 80 AD 95 60 */ lwz r5, __peReg@sda21(r13) +/* 800A8720 000A5660 A0 05 00 0A */ lhz r0, 0xa(r5) +/* 800A8724 000A5664 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 800A8728 000A5668 60 00 00 08 */ ori r0, r0, 8 +/* 800A872C 000A566C B0 05 00 0A */ sth r0, 0xa(r5) +/* 800A8730 000A5670 80 0D 95 8C */ lwz r0, DrawDoneCB@sda21(r13) +/* 800A8734 000A5674 98 6D 95 90 */ stb r3, DrawDone@sda21(r13) +/* 800A8738 000A5678 28 00 00 00 */ cmplwi r0, 0 +/* 800A873C 000A567C 41 82 00 30 */ beq lbl_800A876C +/* 800A8740 000A5680 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A8744 000A5684 4B FE 62 A1 */ bl OSClearContext +/* 800A8748 000A5688 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A874C 000A568C 4B FE 60 D1 */ bl OSSetCurrentContext +/* 800A8750 000A5690 81 8D 95 8C */ lwz r12, DrawDoneCB@sda21(r13) +/* 800A8754 000A5694 7D 88 03 A6 */ mtlr r12 +/* 800A8758 000A5698 4E 80 00 21 */ blrl +/* 800A875C 000A569C 38 61 00 10 */ addi r3, r1, 0x10 +/* 800A8760 000A56A0 4B FE 62 85 */ bl OSClearContext +/* 800A8764 000A56A4 7F E3 FB 78 */ mr r3, r31 +/* 800A8768 000A56A8 4B FE 60 B5 */ bl OSSetCurrentContext +lbl_800A876C: +/* 800A876C 000A56AC 38 6D 95 94 */ addi r3, r13, FinishQueue@sda21 +/* 800A8770 000A56B0 4B FE B5 7D */ bl OSWakeupThread +/* 800A8774 000A56B4 80 01 02 E4 */ lwz r0, 0x2e4(r1) +/* 800A8778 000A56B8 83 E1 02 DC */ lwz r31, 0x2dc(r1) +/* 800A877C 000A56BC 38 21 02 E0 */ addi r1, r1, 0x2e0 +/* 800A8780 000A56C0 7C 08 03 A6 */ mtlr r0 +/* 800A8784 000A56C4 4E 80 00 20 */ blr + +.global __GXPEInit +__GXPEInit: +/* 800A8788 000A56C8 7C 08 02 A6 */ mflr r0 +/* 800A878C 000A56CC 3C 60 80 0B */ lis r3, GXTokenInterruptHandler@ha +/* 800A8790 000A56D0 90 01 00 04 */ stw r0, 4(r1) +/* 800A8794 000A56D4 38 83 86 7C */ addi r4, r3, GXTokenInterruptHandler@l +/* 800A8798 000A56D8 38 60 00 12 */ li r3, 0x12 +/* 800A879C 000A56DC 94 21 FF F8 */ stwu r1, -8(r1) +/* 800A87A0 000A56E0 4B FE 7A 79 */ bl __OSSetInterruptHandler +/* 800A87A4 000A56E4 3C 60 80 0B */ lis r3, GXFinishInterruptHandler@ha +/* 800A87A8 000A56E8 38 83 87 04 */ addi r4, r3, GXFinishInterruptHandler@l +/* 800A87AC 000A56EC 38 60 00 13 */ li r3, 0x13 +/* 800A87B0 000A56F0 4B FE 7A 69 */ bl __OSSetInterruptHandler +/* 800A87B4 000A56F4 38 6D 95 94 */ addi r3, r13, FinishQueue@sda21 +/* 800A87B8 000A56F8 4B FE A4 C1 */ bl OSInitThreadQueue +/* 800A87BC 000A56FC 38 60 20 00 */ li r3, 0x2000 +/* 800A87C0 000A5700 4B FE 7E 5D */ bl __OSUnmaskInterrupts +/* 800A87C4 000A5704 38 60 10 00 */ li r3, 0x1000 +/* 800A87C8 000A5708 4B FE 7E 55 */ bl __OSUnmaskInterrupts +/* 800A87CC 000A570C 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800A87D0 000A5710 A4 03 00 0A */ lhzu r0, 0xa(r3) +/* 800A87D4 000A5714 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c +/* 800A87D8 000A5718 60 00 00 04 */ ori r0, r0, 4 +/* 800A87DC 000A571C 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 800A87E0 000A5720 60 00 00 08 */ ori r0, r0, 8 +/* 800A87E4 000A5724 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 800A87E8 000A5728 60 00 00 01 */ ori r0, r0, 1 +/* 800A87EC 000A572C 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 800A87F0 000A5730 60 00 00 02 */ ori r0, r0, 2 +/* 800A87F4 000A5734 B0 03 00 00 */ sth r0, 0(r3) +/* 800A87F8 000A5738 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800A87FC 000A573C 38 21 00 08 */ addi r1, r1, 8 +/* 800A8800 000A5740 7C 08 03 A6 */ mtlr r0 +/* 800A8804 000A5744 4E 80 00 20 */ blr + +.section .sbss, "wa" # 0x804097C0 - 0x8040B45C +TokenCB: + .skip 0x4 +DrawDoneCB: + .skip 0x4 +DrawDone: + .skip 0x4 +FinishQueue: + .skip 0xC diff --git a/asm/Dolphin/gx/GXPerf.s b/asm/Dolphin/gx/GXPerf.s new file mode 100644 index 0000000..560ef72 --- /dev/null +++ b/asm/Dolphin/gx/GXPerf.s @@ -0,0 +1,748 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXSetGPMetric +GXSetGPMetric: +/* 800ADBF8 000AAB38 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800ADBFC 000AAB3C 80 05 04 E4 */ lwz r0, 0x4e4(r5) +/* 800ADC00 000AAB40 2C 00 00 22 */ cmpwi r0, 0x22 +/* 800ADC04 000AAB44 41 82 00 2C */ beq lbl_800ADC30 +/* 800ADC08 000AAB48 40 80 00 74 */ bge lbl_800ADC7C +/* 800ADC0C 000AAB4C 2C 00 00 0B */ cmpwi r0, 0xb +/* 800ADC10 000AAB50 40 80 00 10 */ bge lbl_800ADC20 +/* 800ADC14 000AAB54 2C 00 00 00 */ cmpwi r0, 0 +/* 800ADC18 000AAB58 40 80 00 18 */ bge lbl_800ADC30 +/* 800ADC1C 000AAB5C 48 00 00 60 */ b lbl_800ADC7C +lbl_800ADC20: +/* 800ADC20 000AAB60 2C 00 00 1B */ cmpwi r0, 0x1b +/* 800ADC24 000AAB64 40 80 00 44 */ bge lbl_800ADC68 +/* 800ADC28 000AAB68 48 00 00 28 */ b lbl_800ADC50 +/* 800ADC2C 000AAB6C 48 00 00 50 */ b lbl_800ADC7C +lbl_800ADC30: +/* 800ADC30 000AAB70 38 00 00 10 */ li r0, 0x10 +/* 800ADC34 000AAB74 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800ADC38 000AAB78 98 06 80 00 */ stb r0, 0xCC008000@l(r6) +/* 800ADC3C 000AAB7C 38 A0 10 06 */ li r5, 0x1006 +/* 800ADC40 000AAB80 38 00 00 00 */ li r0, 0 +/* 800ADC44 000AAB84 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800ADC48 000AAB88 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800ADC4C 000AAB8C 48 00 00 30 */ b lbl_800ADC7C +lbl_800ADC50: +/* 800ADC50 000AAB90 38 00 00 61 */ li r0, 0x61 +/* 800ADC54 000AAB94 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADC58 000AAB98 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADC5C 000AAB9C 3C 00 23 00 */ lis r0, 0x2300 +/* 800ADC60 000AABA0 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADC64 000AABA4 48 00 00 18 */ b lbl_800ADC7C +lbl_800ADC68: +/* 800ADC68 000AABA8 38 00 00 61 */ li r0, 0x61 +/* 800ADC6C 000AABAC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADC70 000AABB0 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADC74 000AABB4 3C 00 24 00 */ lis r0, 0x2400 +/* 800ADC78 000AABB8 90 05 80 00 */ stw r0, -0x8000(r5) +lbl_800ADC7C: +/* 800ADC7C 000AABBC 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800ADC80 000AABC0 80 05 04 E8 */ lwz r0, 0x4e8(r5) +/* 800ADC84 000AABC4 2C 00 00 15 */ cmpwi r0, 0x15 +/* 800ADC88 000AABC8 41 82 00 2C */ beq lbl_800ADCB4 +/* 800ADC8C 000AABCC 40 80 00 80 */ bge lbl_800ADD0C +/* 800ADC90 000AABD0 2C 00 00 09 */ cmpwi r0, 9 +/* 800ADC94 000AABD4 40 80 00 10 */ bge lbl_800ADCA4 +/* 800ADC98 000AABD8 2C 00 00 00 */ cmpwi r0, 0 +/* 800ADC9C 000AABDC 40 80 00 18 */ bge lbl_800ADCB4 +/* 800ADCA0 000AABE0 48 00 00 6C */ b lbl_800ADD0C +lbl_800ADCA4: +/* 800ADCA4 000AABE4 2C 00 00 11 */ cmpwi r0, 0x11 +/* 800ADCA8 000AABE8 40 80 00 58 */ bge lbl_800ADD00 +/* 800ADCAC 000AABEC 48 00 00 20 */ b lbl_800ADCCC +/* 800ADCB0 000AABF0 48 00 00 5C */ b lbl_800ADD0C +lbl_800ADCB4: +/* 800ADCB4 000AABF4 38 00 00 61 */ li r0, 0x61 +/* 800ADCB8 000AABF8 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADCBC 000AABFC 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADCC0 000AAC00 3C 00 67 00 */ lis r0, 0x6700 +/* 800ADCC4 000AAC04 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADCC8 000AAC08 48 00 00 44 */ b lbl_800ADD0C +lbl_800ADCCC: +/* 800ADCCC 000AAC0C 38 E5 04 EC */ addi r7, r5, 0x4ec +/* 800ADCD0 000AAC10 80 05 04 EC */ lwz r0, 0x4ec(r5) +/* 800ADCD4 000AAC14 38 A0 00 08 */ li r5, 8 +/* 800ADCD8 000AAC18 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800ADCDC 000AAC1C 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800ADCE0 000AAC20 90 07 00 00 */ stw r0, 0(r7) +/* 800ADCE4 000AAC24 38 00 00 20 */ li r0, 0x20 +/* 800ADCE8 000AAC28 98 A6 80 00 */ stb r5, 0xCC008000@l(r6) +/* 800ADCEC 000AAC2C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800ADCF0 000AAC30 98 06 80 00 */ stb r0, -0x8000(r6) +/* 800ADCF4 000AAC34 80 05 04 EC */ lwz r0, 0x4ec(r5) +/* 800ADCF8 000AAC38 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800ADCFC 000AAC3C 48 00 00 10 */ b lbl_800ADD0C +lbl_800ADD00: +/* 800ADD00 000AAC40 80 AD 95 5C */ lwz r5, __cpReg@sda21(r13) +/* 800ADD04 000AAC44 38 00 00 00 */ li r0, 0 +/* 800ADD08 000AAC48 B0 05 00 06 */ sth r0, 6(r5) +lbl_800ADD0C: +/* 800ADD0C 000AAC4C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800ADD10 000AAC50 90 65 04 E4 */ stw r3, 0x4e4(r5) +/* 800ADD14 000AAC54 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ADD18 000AAC58 80 03 04 E4 */ lwz r0, 0x4e4(r3) +/* 800ADD1C 000AAC5C 28 00 00 23 */ cmplwi r0, 0x23 +/* 800ADD20 000AAC60 41 81 04 1C */ bgt lbl_800AE13C +/* 800ADD24 000AAC64 3C 60 80 3B */ lis r3, "@241"@ha +/* 800ADD28 000AAC68 38 63 1B B4 */ addi r3, r3, "@241"@l +/* 800ADD2C 000AAC6C 54 00 10 3A */ slwi r0, r0, 2 +/* 800ADD30 000AAC70 7C 03 00 2E */ lwzx r0, r3, r0 +/* 800ADD34 000AAC74 7C 09 03 A6 */ mtctr r0 +/* 800ADD38 000AAC78 4E 80 04 20 */ bctr +lbl_800ADD3C: +/* 800ADD3C 000AAC7C 38 00 00 10 */ li r0, 0x10 +/* 800ADD40 000AAC80 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADD44 000AAC84 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADD48 000AAC88 38 60 10 06 */ li r3, 0x1006 +/* 800ADD4C 000AAC8C 38 00 02 73 */ li r0, 0x273 +/* 800ADD50 000AAC90 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADD54 000AAC94 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADD58 000AAC98 48 00 03 E4 */ b lbl_800AE13C +lbl_800ADD5C: +/* 800ADD5C 000AAC9C 38 00 00 10 */ li r0, 0x10 +/* 800ADD60 000AACA0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADD64 000AACA4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADD68 000AACA8 38 60 10 06 */ li r3, 0x1006 +/* 800ADD6C 000AACAC 38 00 01 4A */ li r0, 0x14a +/* 800ADD70 000AACB0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADD74 000AACB4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADD78 000AACB8 48 00 03 C4 */ b lbl_800AE13C +lbl_800ADD7C: +/* 800ADD7C 000AACBC 38 00 00 10 */ li r0, 0x10 +/* 800ADD80 000AACC0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADD84 000AACC4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADD88 000AACC8 38 60 10 06 */ li r3, 0x1006 +/* 800ADD8C 000AACCC 38 00 01 6B */ li r0, 0x16b +/* 800ADD90 000AACD0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADD94 000AACD4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADD98 000AACD8 48 00 03 A4 */ b lbl_800AE13C +lbl_800ADD9C: +/* 800ADD9C 000AACDC 38 00 00 10 */ li r0, 0x10 +/* 800ADDA0 000AACE0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADDA4 000AACE4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADDA8 000AACE8 38 60 10 06 */ li r3, 0x1006 +/* 800ADDAC 000AACEC 38 00 00 84 */ li r0, 0x84 +/* 800ADDB0 000AACF0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADDB4 000AACF4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADDB8 000AACF8 48 00 03 84 */ b lbl_800AE13C +lbl_800ADDBC: +/* 800ADDBC 000AACFC 38 00 00 10 */ li r0, 0x10 +/* 800ADDC0 000AAD00 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADDC4 000AAD04 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADDC8 000AAD08 38 60 10 06 */ li r3, 0x1006 +/* 800ADDCC 000AAD0C 38 00 00 C6 */ li r0, 0xc6 +/* 800ADDD0 000AAD10 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADDD4 000AAD14 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADDD8 000AAD18 48 00 03 64 */ b lbl_800AE13C +lbl_800ADDDC: +/* 800ADDDC 000AAD1C 38 00 00 10 */ li r0, 0x10 +/* 800ADDE0 000AAD20 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADDE4 000AAD24 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADDE8 000AAD28 38 60 10 06 */ li r3, 0x1006 +/* 800ADDEC 000AAD2C 38 00 02 10 */ li r0, 0x210 +/* 800ADDF0 000AAD30 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADDF4 000AAD34 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADDF8 000AAD38 48 00 03 44 */ b lbl_800AE13C +lbl_800ADDFC: +/* 800ADDFC 000AAD3C 38 00 00 10 */ li r0, 0x10 +/* 800ADE00 000AAD40 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADE04 000AAD44 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADE08 000AAD48 38 60 10 06 */ li r3, 0x1006 +/* 800ADE0C 000AAD4C 38 00 02 52 */ li r0, 0x252 +/* 800ADE10 000AAD50 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADE14 000AAD54 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADE18 000AAD58 48 00 03 24 */ b lbl_800AE13C +lbl_800ADE1C: +/* 800ADE1C 000AAD5C 38 00 00 10 */ li r0, 0x10 +/* 800ADE20 000AAD60 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADE24 000AAD64 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADE28 000AAD68 38 60 10 06 */ li r3, 0x1006 +/* 800ADE2C 000AAD6C 38 00 02 31 */ li r0, 0x231 +/* 800ADE30 000AAD70 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADE34 000AAD74 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADE38 000AAD78 48 00 03 04 */ b lbl_800AE13C +lbl_800ADE3C: +/* 800ADE3C 000AAD7C 38 00 00 10 */ li r0, 0x10 +/* 800ADE40 000AAD80 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADE44 000AAD84 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADE48 000AAD88 38 60 10 06 */ li r3, 0x1006 +/* 800ADE4C 000AAD8C 38 00 01 AD */ li r0, 0x1ad +/* 800ADE50 000AAD90 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADE54 000AAD94 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADE58 000AAD98 48 00 02 E4 */ b lbl_800AE13C +lbl_800ADE5C: +/* 800ADE5C 000AAD9C 38 00 00 10 */ li r0, 0x10 +/* 800ADE60 000AADA0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADE64 000AADA4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADE68 000AADA8 38 60 10 06 */ li r3, 0x1006 +/* 800ADE6C 000AADAC 38 00 01 CE */ li r0, 0x1ce +/* 800ADE70 000AADB0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADE74 000AADB4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADE78 000AADB8 48 00 02 C4 */ b lbl_800AE13C +lbl_800ADE7C: +/* 800ADE7C 000AADBC 38 00 00 10 */ li r0, 0x10 +/* 800ADE80 000AADC0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADE84 000AADC4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADE88 000AADC8 38 60 10 06 */ li r3, 0x1006 +/* 800ADE8C 000AADCC 38 00 00 21 */ li r0, 0x21 +/* 800ADE90 000AADD0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADE94 000AADD4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADE98 000AADD8 48 00 02 A4 */ b lbl_800AE13C +lbl_800ADE9C: +/* 800ADE9C 000AADDC 38 00 00 10 */ li r0, 0x10 +/* 800ADEA0 000AADE0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADEA4 000AADE4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADEA8 000AADE8 38 60 10 06 */ li r3, 0x1006 +/* 800ADEAC 000AADEC 38 00 01 53 */ li r0, 0x153 +/* 800ADEB0 000AADF0 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADEB4 000AADF4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADEB8 000AADF8 48 00 02 84 */ b lbl_800AE13C +lbl_800ADEBC: +/* 800ADEBC 000AADFC 38 00 00 61 */ li r0, 0x61 +/* 800ADEC0 000AAE00 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADEC4 000AAE04 3C 60 23 01 */ lis r3, 0x2300AE7F@ha +/* 800ADEC8 000AAE08 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADECC 000AAE0C 38 03 AE 7F */ addi r0, r3, 0x2300AE7F@l +/* 800ADED0 000AAE10 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADED4 000AAE14 48 00 02 68 */ b lbl_800AE13C +lbl_800ADED8: +/* 800ADED8 000AAE18 38 00 00 61 */ li r0, 0x61 +/* 800ADEDC 000AAE1C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADEE0 000AAE20 3C 60 23 01 */ lis r3, 0x23008E7F@ha +/* 800ADEE4 000AAE24 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADEE8 000AAE28 38 03 8E 7F */ addi r0, r3, 0x23008E7F@l +/* 800ADEEC 000AAE2C 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADEF0 000AAE30 48 00 02 4C */ b lbl_800AE13C +lbl_800ADEF4: +/* 800ADEF4 000AAE34 38 00 00 61 */ li r0, 0x61 +/* 800ADEF8 000AAE38 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADEFC 000AAE3C 3C 60 23 01 */ lis r3, 0x23009E7F@ha +/* 800ADF00 000AAE40 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADF04 000AAE44 38 03 9E 7F */ addi r0, r3, 0x23009E7F@l +/* 800ADF08 000AAE48 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADF0C 000AAE4C 48 00 02 30 */ b lbl_800AE13C +lbl_800ADF10: +/* 800ADF10 000AAE50 38 00 00 61 */ li r0, 0x61 +/* 800ADF14 000AAE54 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADF18 000AAE58 3C 60 23 00 */ lis r3, 0x23001E7F@ha +/* 800ADF1C 000AAE5C 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADF20 000AAE60 38 03 1E 7F */ addi r0, r3, 0x23001E7F@l +/* 800ADF24 000AAE64 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADF28 000AAE68 48 00 02 14 */ b lbl_800AE13C +lbl_800ADF2C: +/* 800ADF2C 000AAE6C 38 00 00 61 */ li r0, 0x61 +/* 800ADF30 000AAE70 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADF34 000AAE74 3C 60 23 01 */ lis r3, 0x2300AC3F@ha +/* 800ADF38 000AAE78 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADF3C 000AAE7C 38 03 AC 3F */ addi r0, r3, 0x2300AC3F@l +/* 800ADF40 000AAE80 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADF44 000AAE84 48 00 01 F8 */ b lbl_800AE13C +lbl_800ADF48: +/* 800ADF48 000AAE88 38 00 00 61 */ li r0, 0x61 +/* 800ADF4C 000AAE8C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADF50 000AAE90 3C 60 23 01 */ lis r3, 0x2300AC7F@ha +/* 800ADF54 000AAE94 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADF58 000AAE98 38 03 AC 7F */ addi r0, r3, 0x2300AC7F@l +/* 800ADF5C 000AAE9C 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADF60 000AAEA0 48 00 01 DC */ b lbl_800AE13C +lbl_800ADF64: +/* 800ADF64 000AAEA4 38 00 00 61 */ li r0, 0x61 +/* 800ADF68 000AAEA8 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADF6C 000AAEAC 3C 60 23 01 */ lis r3, 0x2300ACBF@ha +/* 800ADF70 000AAEB0 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADF74 000AAEB4 38 03 AC BF */ addi r0, r3, 0x2300ACBF@l +/* 800ADF78 000AAEB8 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADF7C 000AAEBC 48 00 01 C0 */ b lbl_800AE13C +lbl_800ADF80: +/* 800ADF80 000AAEC0 38 00 00 61 */ li r0, 0x61 +/* 800ADF84 000AAEC4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADF88 000AAEC8 3C 60 23 01 */ lis r3, 0x2300ACFF@ha +/* 800ADF8C 000AAECC 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADF90 000AAED0 38 03 AC FF */ addi r0, r3, 0x2300ACFF@l +/* 800ADF94 000AAED4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADF98 000AAED8 48 00 01 A4 */ b lbl_800AE13C +lbl_800ADF9C: +/* 800ADF9C 000AAEDC 38 00 00 61 */ li r0, 0x61 +/* 800ADFA0 000AAEE0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADFA4 000AAEE4 3C 60 23 01 */ lis r3, 0x2300AD3F@ha +/* 800ADFA8 000AAEE8 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADFAC 000AAEEC 38 03 AD 3F */ addi r0, r3, 0x2300AD3F@l +/* 800ADFB0 000AAEF0 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADFB4 000AAEF4 48 00 01 88 */ b lbl_800AE13C +lbl_800ADFB8: +/* 800ADFB8 000AAEF8 38 00 00 61 */ li r0, 0x61 +/* 800ADFBC 000AAEFC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADFC0 000AAF00 3C 60 23 01 */ lis r3, 0x2300AD7F@ha +/* 800ADFC4 000AAF04 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADFC8 000AAF08 38 03 AD 7F */ addi r0, r3, 0x2300AD7F@l +/* 800ADFCC 000AAF0C 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADFD0 000AAF10 48 00 01 6C */ b lbl_800AE13C +lbl_800ADFD4: +/* 800ADFD4 000AAF14 38 00 00 61 */ li r0, 0x61 +/* 800ADFD8 000AAF18 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADFDC 000AAF1C 3C 60 23 01 */ lis r3, 0x2300ADBF@ha +/* 800ADFE0 000AAF20 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADFE4 000AAF24 38 03 AD BF */ addi r0, r3, 0x2300ADBF@l +/* 800ADFE8 000AAF28 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADFEC 000AAF2C 48 00 01 50 */ b lbl_800AE13C +lbl_800ADFF0: +/* 800ADFF0 000AAF30 38 00 00 61 */ li r0, 0x61 +/* 800ADFF4 000AAF34 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADFF8 000AAF38 3C 60 23 01 */ lis r3, 0x2300ADFF@ha +/* 800ADFFC 000AAF3C 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE000 000AAF40 38 03 AD FF */ addi r0, r3, 0x2300ADFF@l +/* 800AE004 000AAF44 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE008 000AAF48 48 00 01 34 */ b lbl_800AE13C +lbl_800AE00C: +/* 800AE00C 000AAF4C 38 00 00 61 */ li r0, 0x61 +/* 800AE010 000AAF50 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE014 000AAF54 3C 60 23 01 */ lis r3, 0x2300AE3F@ha +/* 800AE018 000AAF58 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE01C 000AAF5C 38 03 AE 3F */ addi r0, r3, 0x2300AE3F@l +/* 800AE020 000AAF60 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE024 000AAF64 48 00 01 18 */ b lbl_800AE13C +lbl_800AE028: +/* 800AE028 000AAF68 38 00 00 61 */ li r0, 0x61 +/* 800AE02C 000AAF6C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE030 000AAF70 3C 60 23 01 */ lis r3, 0x2300A27F@ha +/* 800AE034 000AAF74 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE038 000AAF78 38 03 A2 7F */ addi r0, r3, 0x2300A27F@l +/* 800AE03C 000AAF7C 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE040 000AAF80 48 00 00 FC */ b lbl_800AE13C +lbl_800AE044: +/* 800AE044 000AAF84 38 00 00 61 */ li r0, 0x61 +/* 800AE048 000AAF88 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE04C 000AAF8C 3C 60 23 01 */ lis r3, 0x2300A67F@ha +/* 800AE050 000AAF90 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE054 000AAF94 38 03 A6 7F */ addi r0, r3, 0x2300A67F@l +/* 800AE058 000AAF98 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE05C 000AAF9C 48 00 00 E0 */ b lbl_800AE13C +lbl_800AE060: +/* 800AE060 000AAFA0 38 00 00 61 */ li r0, 0x61 +/* 800AE064 000AAFA4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE068 000AAFA8 3C 60 23 01 */ lis r3, 0x2300AA7F@ha +/* 800AE06C 000AAFAC 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE070 000AAFB0 38 03 AA 7F */ addi r0, r3, 0x2300AA7F@l +/* 800AE074 000AAFB4 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE078 000AAFB8 48 00 00 C4 */ b lbl_800AE13C +lbl_800AE07C: +/* 800AE07C 000AAFBC 38 00 00 61 */ li r0, 0x61 +/* 800AE080 000AAFC0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE084 000AAFC4 3C 60 24 03 */ lis r3, 0x2402C0C6@ha +/* 800AE088 000AAFC8 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE08C 000AAFCC 38 03 C0 C6 */ addi r0, r3, 0x2402C0C6@l +/* 800AE090 000AAFD0 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE094 000AAFD4 48 00 00 A8 */ b lbl_800AE13C +lbl_800AE098: +/* 800AE098 000AAFD8 38 00 00 61 */ li r0, 0x61 +/* 800AE09C 000AAFDC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE0A0 000AAFE0 3C 60 24 03 */ lis r3, 0x2402C16B@ha +/* 800AE0A4 000AAFE4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE0A8 000AAFE8 38 03 C1 6B */ addi r0, r3, 0x2402C16B@l +/* 800AE0AC 000AAFEC 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE0B0 000AAFF0 48 00 00 8C */ b lbl_800AE13C +lbl_800AE0B4: +/* 800AE0B4 000AAFF4 38 00 00 61 */ li r0, 0x61 +/* 800AE0B8 000AAFF8 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE0BC 000AAFFC 3C 60 24 03 */ lis r3, 0x2402C0E7@ha +/* 800AE0C0 000AB000 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE0C4 000AB004 38 03 C0 E7 */ addi r0, r3, 0x2402C0E7@l +/* 800AE0C8 000AB008 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE0CC 000AB00C 48 00 00 70 */ b lbl_800AE13C +lbl_800AE0D0: +/* 800AE0D0 000AB010 38 00 00 61 */ li r0, 0x61 +/* 800AE0D4 000AB014 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE0D8 000AB018 3C 60 24 03 */ lis r3, 0x2402C108@ha +/* 800AE0DC 000AB01C 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE0E0 000AB020 38 03 C1 08 */ addi r0, r3, 0x2402C108@l +/* 800AE0E4 000AB024 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE0E8 000AB028 48 00 00 54 */ b lbl_800AE13C +lbl_800AE0EC: +/* 800AE0EC 000AB02C 38 00 00 61 */ li r0, 0x61 +/* 800AE0F0 000AB030 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE0F4 000AB034 3C 60 24 03 */ lis r3, 0x2402C129@ha +/* 800AE0F8 000AB038 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE0FC 000AB03C 38 03 C1 29 */ addi r0, r3, 0x2402C129@l +/* 800AE100 000AB040 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE104 000AB044 48 00 00 38 */ b lbl_800AE13C +lbl_800AE108: +/* 800AE108 000AB048 38 00 00 61 */ li r0, 0x61 +/* 800AE10C 000AB04C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE110 000AB050 3C 60 24 03 */ lis r3, 0x2402C14A@ha +/* 800AE114 000AB054 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE118 000AB058 38 03 C1 4A */ addi r0, r3, 0x2402C14A@l +/* 800AE11C 000AB05C 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AE120 000AB060 48 00 00 1C */ b lbl_800AE13C +lbl_800AE124: +/* 800AE124 000AB064 38 00 00 61 */ li r0, 0x61 +/* 800AE128 000AB068 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AE12C 000AB06C 3C 60 24 03 */ lis r3, 0x2402C1AD@ha +/* 800AE130 000AB070 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AE134 000AB074 38 03 C1 AD */ addi r0, r3, 0x2402C1AD@l +/* 800AE138 000AB078 90 05 80 00 */ stw r0, -0x8000(r5) +lbl_800AE13C: +/* 800AE13C 000AB07C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE140 000AB080 90 83 04 E8 */ stw r4, 0x4e8(r3) +/* 800AE144 000AB084 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AE148 000AB088 80 04 04 E8 */ lwz r0, 0x4e8(r4) +/* 800AE14C 000AB08C 28 00 00 16 */ cmplwi r0, 0x16 +/* 800AE150 000AB090 41 81 03 30 */ bgt lbl_800AE480 +/* 800AE154 000AB094 3C 60 80 3B */ lis r3, "@242"@ha +/* 800AE158 000AB098 38 63 1B 58 */ addi r3, r3, "@242"@l +/* 800AE15C 000AB09C 54 00 10 3A */ slwi r0, r0, 2 +/* 800AE160 000AB0A0 7C 03 00 2E */ lwzx r0, r3, r0 +/* 800AE164 000AB0A4 7C 09 03 A6 */ mtctr r0 +/* 800AE168 000AB0A8 4E 80 04 20 */ bctr +lbl_800AE16C: +/* 800AE16C 000AB0AC 38 00 00 61 */ li r0, 0x61 +/* 800AE170 000AB0B0 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE174 000AB0B4 3C 60 67 00 */ lis r3, 0x67000042@ha +/* 800AE178 000AB0B8 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE17C 000AB0BC 38 03 00 42 */ addi r0, r3, 0x67000042@l +/* 800AE180 000AB0C0 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE184 000AB0C4 48 00 02 FC */ b lbl_800AE480 +lbl_800AE188: +/* 800AE188 000AB0C8 38 00 00 61 */ li r0, 0x61 +/* 800AE18C 000AB0CC 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE190 000AB0D0 3C 60 67 00 */ lis r3, 0x67000084@ha +/* 800AE194 000AB0D4 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE198 000AB0D8 38 03 00 84 */ addi r0, r3, 0x67000084@l +/* 800AE19C 000AB0DC 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE1A0 000AB0E0 48 00 02 E0 */ b lbl_800AE480 +lbl_800AE1A4: +/* 800AE1A4 000AB0E4 38 00 00 61 */ li r0, 0x61 +/* 800AE1A8 000AB0E8 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE1AC 000AB0EC 3C 60 67 00 */ lis r3, 0x67000063@ha +/* 800AE1B0 000AB0F0 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE1B4 000AB0F4 38 03 00 63 */ addi r0, r3, 0x67000063@l +/* 800AE1B8 000AB0F8 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE1BC 000AB0FC 48 00 02 C4 */ b lbl_800AE480 +lbl_800AE1C0: +/* 800AE1C0 000AB100 38 00 00 61 */ li r0, 0x61 +/* 800AE1C4 000AB104 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE1C8 000AB108 3C 60 67 00 */ lis r3, 0x67000129@ha +/* 800AE1CC 000AB10C 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE1D0 000AB110 38 03 01 29 */ addi r0, r3, 0x67000129@l +/* 800AE1D4 000AB114 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE1D8 000AB118 48 00 02 A8 */ b lbl_800AE480 +lbl_800AE1DC: +/* 800AE1DC 000AB11C 38 00 00 61 */ li r0, 0x61 +/* 800AE1E0 000AB120 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE1E4 000AB124 3C 60 67 00 */ lis r3, 0x67000252@ha +/* 800AE1E8 000AB128 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE1EC 000AB12C 38 03 02 52 */ addi r0, r3, 0x67000252@l +/* 800AE1F0 000AB130 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE1F4 000AB134 48 00 02 8C */ b lbl_800AE480 +lbl_800AE1F8: +/* 800AE1F8 000AB138 38 00 00 61 */ li r0, 0x61 +/* 800AE1FC 000AB13C 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE200 000AB140 3C 60 67 00 */ lis r3, 0x67000021@ha +/* 800AE204 000AB144 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE208 000AB148 38 03 00 21 */ addi r0, r3, 0x67000021@l +/* 800AE20C 000AB14C 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE210 000AB150 48 00 02 70 */ b lbl_800AE480 +lbl_800AE214: +/* 800AE214 000AB154 38 00 00 61 */ li r0, 0x61 +/* 800AE218 000AB158 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE21C 000AB15C 3C 60 67 00 */ lis r3, 0x6700014B@ha +/* 800AE220 000AB160 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE224 000AB164 38 03 01 4B */ addi r0, r3, 0x6700014B@l +/* 800AE228 000AB168 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE22C 000AB16C 48 00 02 54 */ b lbl_800AE480 +lbl_800AE230: +/* 800AE230 000AB170 38 00 00 61 */ li r0, 0x61 +/* 800AE234 000AB174 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE238 000AB178 3C 60 67 00 */ lis r3, 0x6700018D@ha +/* 800AE23C 000AB17C 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE240 000AB180 38 03 01 8D */ addi r0, r3, 0x6700018D@l +/* 800AE244 000AB184 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE248 000AB188 48 00 02 38 */ b lbl_800AE480 +lbl_800AE24C: +/* 800AE24C 000AB18C 38 00 00 61 */ li r0, 0x61 +/* 800AE250 000AB190 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE254 000AB194 3C 60 67 00 */ lis r3, 0x670001CF@ha +/* 800AE258 000AB198 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE25C 000AB19C 38 03 01 CF */ addi r0, r3, 0x670001CF@l +/* 800AE260 000AB1A0 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE264 000AB1A4 48 00 02 1C */ b lbl_800AE480 +lbl_800AE268: +/* 800AE268 000AB1A8 38 00 00 61 */ li r0, 0x61 +/* 800AE26C 000AB1AC 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE270 000AB1B0 3C 60 67 00 */ lis r3, 0x67000211@ha +/* 800AE274 000AB1B4 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800AE278 000AB1B8 38 03 02 11 */ addi r0, r3, 0x67000211@l +/* 800AE27C 000AB1BC 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE280 000AB1C0 48 00 02 00 */ b lbl_800AE480 +lbl_800AE284: +/* 800AE284 000AB1C4 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE288 000AB1C8 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE28C 000AB1CC 38 60 00 08 */ li r3, 8 +/* 800AE290 000AB1D0 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE294 000AB1D4 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE298 000AB1D8 60 00 00 20 */ ori r0, r0, 0x20 +/* 800AE29C 000AB1DC 90 05 00 00 */ stw r0, 0(r5) +/* 800AE2A0 000AB1E0 38 00 00 20 */ li r0, 0x20 +/* 800AE2A4 000AB1E4 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE2A8 000AB1E8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE2AC 000AB1EC 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE2B0 000AB1F0 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE2B4 000AB1F4 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE2B8 000AB1F8 48 00 01 C8 */ b lbl_800AE480 +lbl_800AE2BC: +/* 800AE2BC 000AB1FC 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE2C0 000AB200 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE2C4 000AB204 38 60 00 08 */ li r3, 8 +/* 800AE2C8 000AB208 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE2CC 000AB20C 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE2D0 000AB210 60 00 00 30 */ ori r0, r0, 0x30 +/* 800AE2D4 000AB214 90 05 00 00 */ stw r0, 0(r5) +/* 800AE2D8 000AB218 38 00 00 20 */ li r0, 0x20 +/* 800AE2DC 000AB21C 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE2E0 000AB220 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE2E4 000AB224 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE2E8 000AB228 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE2EC 000AB22C 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE2F0 000AB230 48 00 01 90 */ b lbl_800AE480 +lbl_800AE2F4: +/* 800AE2F4 000AB234 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE2F8 000AB238 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE2FC 000AB23C 38 60 00 08 */ li r3, 8 +/* 800AE300 000AB240 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE304 000AB244 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE308 000AB248 60 00 00 40 */ ori r0, r0, 0x40 +/* 800AE30C 000AB24C 90 05 00 00 */ stw r0, 0(r5) +/* 800AE310 000AB250 38 00 00 20 */ li r0, 0x20 +/* 800AE314 000AB254 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE318 000AB258 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE31C 000AB25C 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE320 000AB260 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE324 000AB264 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE328 000AB268 48 00 01 58 */ b lbl_800AE480 +lbl_800AE32C: +/* 800AE32C 000AB26C 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE330 000AB270 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE334 000AB274 38 60 00 08 */ li r3, 8 +/* 800AE338 000AB278 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE33C 000AB27C 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE340 000AB280 60 00 00 50 */ ori r0, r0, 0x50 +/* 800AE344 000AB284 90 05 00 00 */ stw r0, 0(r5) +/* 800AE348 000AB288 38 00 00 20 */ li r0, 0x20 +/* 800AE34C 000AB28C 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE350 000AB290 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE354 000AB294 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE358 000AB298 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE35C 000AB29C 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE360 000AB2A0 48 00 01 20 */ b lbl_800AE480 +lbl_800AE364: +/* 800AE364 000AB2A4 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE368 000AB2A8 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE36C 000AB2AC 38 60 00 08 */ li r3, 8 +/* 800AE370 000AB2B0 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE374 000AB2B4 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE378 000AB2B8 60 00 00 60 */ ori r0, r0, 0x60 +/* 800AE37C 000AB2BC 90 05 00 00 */ stw r0, 0(r5) +/* 800AE380 000AB2C0 38 00 00 20 */ li r0, 0x20 +/* 800AE384 000AB2C4 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE388 000AB2C8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE38C 000AB2CC 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE390 000AB2D0 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE394 000AB2D4 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE398 000AB2D8 48 00 00 E8 */ b lbl_800AE480 +lbl_800AE39C: +/* 800AE39C 000AB2DC 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE3A0 000AB2E0 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE3A4 000AB2E4 38 60 00 08 */ li r3, 8 +/* 800AE3A8 000AB2E8 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE3AC 000AB2EC 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE3B0 000AB2F0 60 00 00 70 */ ori r0, r0, 0x70 +/* 800AE3B4 000AB2F4 90 05 00 00 */ stw r0, 0(r5) +/* 800AE3B8 000AB2F8 38 00 00 20 */ li r0, 0x20 +/* 800AE3BC 000AB2FC 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE3C0 000AB300 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE3C4 000AB304 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE3C8 000AB308 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE3CC 000AB30C 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE3D0 000AB310 48 00 00 B0 */ b lbl_800AE480 +lbl_800AE3D4: +/* 800AE3D4 000AB314 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE3D8 000AB318 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE3DC 000AB31C 38 60 00 08 */ li r3, 8 +/* 800AE3E0 000AB320 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE3E4 000AB324 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE3E8 000AB328 60 00 00 90 */ ori r0, r0, 0x90 +/* 800AE3EC 000AB32C 90 05 00 00 */ stw r0, 0(r5) +/* 800AE3F0 000AB330 38 00 00 20 */ li r0, 0x20 +/* 800AE3F4 000AB334 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE3F8 000AB338 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE3FC 000AB33C 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE400 000AB340 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE404 000AB344 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE408 000AB348 48 00 00 78 */ b lbl_800AE480 +lbl_800AE40C: +/* 800AE40C 000AB34C 38 A4 04 EC */ addi r5, r4, 0x4ec +/* 800AE410 000AB350 80 04 04 EC */ lwz r0, 0x4ec(r4) +/* 800AE414 000AB354 38 60 00 08 */ li r3, 8 +/* 800AE418 000AB358 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AE41C 000AB35C 54 00 07 2E */ rlwinm r0, r0, 0, 0x1c, 0x17 +/* 800AE420 000AB360 60 00 00 80 */ ori r0, r0, 0x80 +/* 800AE424 000AB364 90 05 00 00 */ stw r0, 0(r5) +/* 800AE428 000AB368 38 00 00 20 */ li r0, 0x20 +/* 800AE42C 000AB36C 98 64 80 00 */ stb r3, 0xCC008000@l(r4) +/* 800AE430 000AB370 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE434 000AB374 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800AE438 000AB378 80 03 04 EC */ lwz r0, 0x4ec(r3) +/* 800AE43C 000AB37C 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AE440 000AB380 48 00 00 40 */ b lbl_800AE480 +lbl_800AE444: +/* 800AE444 000AB384 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800AE448 000AB388 38 00 00 02 */ li r0, 2 +/* 800AE44C 000AB38C B0 03 00 06 */ sth r0, 6(r3) +/* 800AE450 000AB390 48 00 00 30 */ b lbl_800AE480 +lbl_800AE454: +/* 800AE454 000AB394 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800AE458 000AB398 38 00 00 03 */ li r0, 3 +/* 800AE45C 000AB39C B0 03 00 06 */ sth r0, 6(r3) +/* 800AE460 000AB3A0 48 00 00 20 */ b lbl_800AE480 +lbl_800AE464: +/* 800AE464 000AB3A4 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800AE468 000AB3A8 38 00 00 04 */ li r0, 4 +/* 800AE46C 000AB3AC B0 03 00 06 */ sth r0, 6(r3) +/* 800AE470 000AB3B0 48 00 00 10 */ b lbl_800AE480 +lbl_800AE474: +/* 800AE474 000AB3B4 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800AE478 000AB3B8 38 00 00 05 */ li r0, 5 +/* 800AE47C 000AB3BC B0 03 00 06 */ sth r0, 6(r3) +lbl_800AE480: +/* 800AE480 000AB3C0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE484 000AB3C4 38 00 00 00 */ li r0, 0 +/* 800AE488 000AB3C8 B0 03 00 02 */ sth r0, 2(r3) +/* 800AE48C 000AB3CC 4E 80 00 20 */ blr + +.global GXClearGPMetric +GXClearGPMetric: +/* 800AE490 000AB3D0 80 6D 95 5C */ lwz r3, __cpReg@sda21(r13) +/* 800AE494 000AB3D4 38 00 00 04 */ li r0, 4 +/* 800AE498 000AB3D8 B0 03 00 04 */ sth r0, 4(r3) +/* 800AE49C 000AB3DC 4E 80 00 20 */ blr + +.global GXReadPixMetric +GXReadPixMetric: +/* 800AE4A0 000AB3E0 81 2D 95 60 */ lwz r9, __peReg@sda21(r13) +/* 800AE4A4 000AB3E4 A1 49 00 1A */ lhz r10, 0x1a(r9) +/* 800AE4A8 000AB3E8 A0 09 00 18 */ lhz r0, 0x18(r9) +/* 800AE4AC 000AB3EC 51 40 80 1E */ rlwimi r0, r10, 0x10, 0, 0xf +/* 800AE4B0 000AB3F0 54 00 10 3A */ slwi r0, r0, 2 +/* 800AE4B4 000AB3F4 90 03 00 00 */ stw r0, 0(r3) +/* 800AE4B8 000AB3F8 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800AE4BC 000AB3FC A1 23 00 1E */ lhz r9, 0x1e(r3) +/* 800AE4C0 000AB400 A0 03 00 1C */ lhz r0, 0x1c(r3) +/* 800AE4C4 000AB404 51 20 80 1E */ rlwimi r0, r9, 0x10, 0, 0xf +/* 800AE4C8 000AB408 54 00 10 3A */ slwi r0, r0, 2 +/* 800AE4CC 000AB40C 90 04 00 00 */ stw r0, 0(r4) +/* 800AE4D0 000AB410 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800AE4D4 000AB414 A0 83 00 22 */ lhz r4, 0x22(r3) +/* 800AE4D8 000AB418 A0 03 00 20 */ lhz r0, 0x20(r3) +/* 800AE4DC 000AB41C 50 80 80 1E */ rlwimi r0, r4, 0x10, 0, 0xf +/* 800AE4E0 000AB420 54 00 10 3A */ slwi r0, r0, 2 +/* 800AE4E4 000AB424 90 05 00 00 */ stw r0, 0(r5) +/* 800AE4E8 000AB428 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800AE4EC 000AB42C A0 83 00 26 */ lhz r4, 0x26(r3) +/* 800AE4F0 000AB430 A0 03 00 24 */ lhz r0, 0x24(r3) +/* 800AE4F4 000AB434 50 80 80 1E */ rlwimi r0, r4, 0x10, 0, 0xf +/* 800AE4F8 000AB438 54 00 10 3A */ slwi r0, r0, 2 +/* 800AE4FC 000AB43C 90 06 00 00 */ stw r0, 0(r6) +/* 800AE500 000AB440 80 6D 95 60 */ lwz r3, __peReg@sda21(r13) +/* 800AE504 000AB444 A0 03 00 2A */ lhz r0, 0x2a(r3) +/* 800AE508 000AB448 A0 63 00 28 */ lhz r3, 0x28(r3) +/* 800AE50C 000AB44C 50 03 80 1E */ rlwimi r3, r0, 0x10, 0, 0xf +/* 800AE510 000AB450 54 60 10 3A */ slwi r0, r3, 2 +/* 800AE514 000AB454 90 07 00 00 */ stw r0, 0(r7) +/* 800AE518 000AB458 80 8D 95 60 */ lwz r4, __peReg@sda21(r13) +/* 800AE51C 000AB45C A0 64 00 2E */ lhz r3, 0x2e(r4) +/* 800AE520 000AB460 A0 04 00 2C */ lhz r0, 0x2c(r4) +/* 800AE524 000AB464 50 60 80 1E */ rlwimi r0, r3, 0x10, 0, 0xf +/* 800AE528 000AB468 90 08 00 00 */ stw r0, 0(r8) +/* 800AE52C 000AB46C 4E 80 00 20 */ blr + +.global GXClearPixMetric +GXClearPixMetric: +/* 800AE530 000AB470 38 E0 00 61 */ li r7, 0x61 +/* 800AE534 000AB474 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AE538 000AB478 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800AE53C 000AB47C 3C A0 57 00 */ lis r5, 0x57000AAA@ha +/* 800AE540 000AB480 98 E6 80 00 */ stb r7, 0xCC008000@l(r6) +/* 800AE544 000AB484 38 85 0A AA */ addi r4, r5, 0x57000AAA@l +/* 800AE548 000AB488 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800AE54C 000AB48C 38 00 00 00 */ li r0, 0 +/* 800AE550 000AB490 98 E6 80 00 */ stb r7, -0x8000(r6) +/* 800AE554 000AB494 90 86 80 00 */ stw r4, -0x8000(r6) +/* 800AE558 000AB498 B0 03 00 02 */ sth r0, 2(r3) +/* 800AE55C 000AB49C 4E 80 00 20 */ blr + +.section .data, "wa" # 0x803A8380 - 0x803E6000 +"@242": + .4byte lbl_800AE16C + .4byte lbl_800AE188 + .4byte lbl_800AE1A4 + .4byte lbl_800AE1C0 + .4byte lbl_800AE214 + .4byte lbl_800AE230 + .4byte lbl_800AE24C + .4byte lbl_800AE268 + .4byte lbl_800AE1DC + .4byte lbl_800AE284 + .4byte lbl_800AE2BC + .4byte lbl_800AE2F4 + .4byte lbl_800AE32C + .4byte lbl_800AE364 + .4byte lbl_800AE39C + .4byte lbl_800AE3D4 + .4byte lbl_800AE40C + .4byte lbl_800AE444 + .4byte lbl_800AE454 + .4byte lbl_800AE464 + .4byte lbl_800AE474 + .4byte lbl_800AE1F8 + .4byte lbl_800AE480 +"@241": + .4byte lbl_800ADD3C + .4byte lbl_800ADD5C + .4byte lbl_800ADD7C + .4byte lbl_800ADD9C + .4byte lbl_800ADDBC + .4byte lbl_800ADDDC + .4byte lbl_800ADDFC + .4byte lbl_800ADE1C + .4byte lbl_800ADE3C + .4byte lbl_800ADE5C + .4byte lbl_800ADE9C + .4byte lbl_800ADEBC + .4byte lbl_800ADED8 + .4byte lbl_800ADEF4 + .4byte lbl_800ADF10 + .4byte lbl_800ADF2C + .4byte lbl_800ADF48 + .4byte lbl_800ADF64 + .4byte lbl_800ADF80 + .4byte lbl_800ADF9C + .4byte lbl_800ADFB8 + .4byte lbl_800ADFD4 + .4byte lbl_800ADFF0 + .4byte lbl_800AE00C + .4byte lbl_800AE028 + .4byte lbl_800AE044 + .4byte lbl_800AE060 + .4byte lbl_800AE07C + .4byte lbl_800AE098 + .4byte lbl_800AE0B4 + .4byte lbl_800AE0D0 + .4byte lbl_800AE0EC + .4byte lbl_800AE108 + .4byte lbl_800AE124 + .4byte lbl_800ADE7C + .4byte lbl_800AE13C diff --git a/asm/Dolphin/gx/GXPixel.s b/asm/Dolphin/gx/GXPixel.s new file mode 100644 index 0000000..f5a6912 --- /dev/null +++ b/asm/Dolphin/gx/GXPixel.s @@ -0,0 +1,551 @@ +.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 diff --git a/asm/Dolphin/gx/GXStubs.s b/asm/Dolphin/gx/GXStubs.s new file mode 100644 index 0000000..ce0dc0f --- /dev/null +++ b/asm/Dolphin/gx/GXStubs.s @@ -0,0 +1,6 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global __GXSetRange +__GXSetRange: +/* 800AD36C 000AA2AC 4E 80 00 20 */ blr diff --git a/asm/Dolphin/gx/GXTev.s b/asm/Dolphin/gx/GXTev.s new file mode 100644 index 0000000..7002c3c --- /dev/null +++ b/asm/Dolphin/gx/GXTev.s @@ -0,0 +1,752 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXSetTevOp +GXSetTevOp: +/* 800ABA08 000A8948 7C 08 02 A6 */ mflr r0 +/* 800ABA0C 000A894C 38 C0 00 0A */ li r6, 0xa +/* 800ABA10 000A8950 90 01 00 04 */ stw r0, 4(r1) +/* 800ABA14 000A8954 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800ABA18 000A8958 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800ABA1C 000A895C 3B E0 00 05 */ li r31, 5 +/* 800ABA20 000A8960 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800ABA24 000A8964 7C 7E 1B 79 */ or. r30, r3, r3 +/* 800ABA28 000A8968 41 82 00 0C */ beq lbl_800ABA34 +/* 800ABA2C 000A896C 38 C0 00 00 */ li r6, 0 +/* 800ABA30 000A8970 3B E0 00 00 */ li r31, 0 +lbl_800ABA34: +/* 800ABA34 000A8974 2C 04 00 02 */ cmpwi r4, 2 +/* 800ABA38 000A8978 41 82 00 8C */ beq lbl_800ABAC4 +/* 800ABA3C 000A897C 40 80 00 14 */ bge lbl_800ABA50 +/* 800ABA40 000A8980 2C 04 00 00 */ cmpwi r4, 0 +/* 800ABA44 000A8984 41 82 00 1C */ beq lbl_800ABA60 +/* 800ABA48 000A8988 40 80 00 48 */ bge lbl_800ABA90 +/* 800ABA4C 000A898C 48 00 01 10 */ b lbl_800ABB5C +lbl_800ABA50: +/* 800ABA50 000A8990 2C 04 00 04 */ cmpwi r4, 4 +/* 800ABA54 000A8994 41 82 00 D8 */ beq lbl_800ABB2C +/* 800ABA58 000A8998 40 80 01 04 */ bge lbl_800ABB5C +/* 800ABA5C 000A899C 48 00 00 9C */ b lbl_800ABAF8 +lbl_800ABA60: +/* 800ABA60 000A89A0 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABA64 000A89A4 38 80 00 0F */ li r4, 0xf +/* 800ABA68 000A89A8 38 A0 00 08 */ li r5, 8 +/* 800ABA6C 000A89AC 38 E0 00 0F */ li r7, 0xf +/* 800ABA70 000A89B0 48 00 01 3D */ bl GXSetTevColorIn +/* 800ABA74 000A89B4 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABA78 000A89B8 38 DF 00 00 */ addi r6, r31, 0 +/* 800ABA7C 000A89BC 38 80 00 07 */ li r4, 7 +/* 800ABA80 000A89C0 38 A0 00 04 */ li r5, 4 +/* 800ABA84 000A89C4 38 E0 00 07 */ li r7, 7 +/* 800ABA88 000A89C8 48 00 01 A5 */ bl GXSetTevAlphaIn +/* 800ABA8C 000A89CC 48 00 00 D0 */ b lbl_800ABB5C +lbl_800ABA90: +/* 800ABA90 000A89D0 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABA94 000A89D4 38 86 00 00 */ addi r4, r6, 0 +/* 800ABA98 000A89D8 38 A0 00 08 */ li r5, 8 +/* 800ABA9C 000A89DC 38 C0 00 09 */ li r6, 9 +/* 800ABAA0 000A89E0 38 E0 00 0F */ li r7, 0xf +/* 800ABAA4 000A89E4 48 00 01 09 */ bl GXSetTevColorIn +/* 800ABAA8 000A89E8 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABAAC 000A89EC 38 FF 00 00 */ addi r7, r31, 0 +/* 800ABAB0 000A89F0 38 80 00 07 */ li r4, 7 +/* 800ABAB4 000A89F4 38 A0 00 07 */ li r5, 7 +/* 800ABAB8 000A89F8 38 C0 00 07 */ li r6, 7 +/* 800ABABC 000A89FC 48 00 01 71 */ bl GXSetTevAlphaIn +/* 800ABAC0 000A8A00 48 00 00 9C */ b lbl_800ABB5C +lbl_800ABAC4: +/* 800ABAC4 000A8A04 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABAC8 000A8A08 38 86 00 00 */ addi r4, r6, 0 +/* 800ABACC 000A8A0C 38 A0 00 0C */ li r5, 0xc +/* 800ABAD0 000A8A10 38 C0 00 08 */ li r6, 8 +/* 800ABAD4 000A8A14 38 E0 00 0F */ li r7, 0xf +/* 800ABAD8 000A8A18 48 00 00 D5 */ bl GXSetTevColorIn +/* 800ABADC 000A8A1C 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABAE0 000A8A20 38 DF 00 00 */ addi r6, r31, 0 +/* 800ABAE4 000A8A24 38 80 00 07 */ li r4, 7 +/* 800ABAE8 000A8A28 38 A0 00 04 */ li r5, 4 +/* 800ABAEC 000A8A2C 38 E0 00 07 */ li r7, 7 +/* 800ABAF0 000A8A30 48 00 01 3D */ bl GXSetTevAlphaIn +/* 800ABAF4 000A8A34 48 00 00 68 */ b lbl_800ABB5C +lbl_800ABAF8: +/* 800ABAF8 000A8A38 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABAFC 000A8A3C 38 80 00 0F */ li r4, 0xf +/* 800ABB00 000A8A40 38 A0 00 0F */ li r5, 0xf +/* 800ABB04 000A8A44 38 C0 00 0F */ li r6, 0xf +/* 800ABB08 000A8A48 38 E0 00 08 */ li r7, 8 +/* 800ABB0C 000A8A4C 48 00 00 A1 */ bl GXSetTevColorIn +/* 800ABB10 000A8A50 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABB14 000A8A54 38 80 00 07 */ li r4, 7 +/* 800ABB18 000A8A58 38 A0 00 07 */ li r5, 7 +/* 800ABB1C 000A8A5C 38 C0 00 07 */ li r6, 7 +/* 800ABB20 000A8A60 38 E0 00 04 */ li r7, 4 +/* 800ABB24 000A8A64 48 00 01 09 */ bl GXSetTevAlphaIn +/* 800ABB28 000A8A68 48 00 00 34 */ b lbl_800ABB5C +lbl_800ABB2C: +/* 800ABB2C 000A8A6C 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABB30 000A8A70 38 E6 00 00 */ addi r7, r6, 0 +/* 800ABB34 000A8A74 38 80 00 0F */ li r4, 0xf +/* 800ABB38 000A8A78 38 A0 00 0F */ li r5, 0xf +/* 800ABB3C 000A8A7C 38 C0 00 0F */ li r6, 0xf +/* 800ABB40 000A8A80 48 00 00 6D */ bl GXSetTevColorIn +/* 800ABB44 000A8A84 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABB48 000A8A88 38 FF 00 00 */ addi r7, r31, 0 +/* 800ABB4C 000A8A8C 38 80 00 07 */ li r4, 7 +/* 800ABB50 000A8A90 38 A0 00 07 */ li r5, 7 +/* 800ABB54 000A8A94 38 C0 00 07 */ li r6, 7 +/* 800ABB58 000A8A98 48 00 00 D5 */ bl GXSetTevAlphaIn +lbl_800ABB5C: +/* 800ABB5C 000A8A9C 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABB60 000A8AA0 38 80 00 00 */ li r4, 0 +/* 800ABB64 000A8AA4 38 A0 00 00 */ li r5, 0 +/* 800ABB68 000A8AA8 38 C0 00 00 */ li r6, 0 +/* 800ABB6C 000A8AAC 38 E0 00 01 */ li r7, 1 +/* 800ABB70 000A8AB0 39 00 00 00 */ li r8, 0 +/* 800ABB74 000A8AB4 48 00 01 3D */ bl GXSetTevColorOp +/* 800ABB78 000A8AB8 38 7E 00 00 */ addi r3, r30, 0 +/* 800ABB7C 000A8ABC 38 80 00 00 */ li r4, 0 +/* 800ABB80 000A8AC0 38 A0 00 00 */ li r5, 0 +/* 800ABB84 000A8AC4 38 C0 00 00 */ li r6, 0 +/* 800ABB88 000A8AC8 38 E0 00 01 */ li r7, 1 +/* 800ABB8C 000A8ACC 39 00 00 00 */ li r8, 0 +/* 800ABB90 000A8AD0 48 00 01 E1 */ bl GXSetTevAlphaOp +/* 800ABB94 000A8AD4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800ABB98 000A8AD8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800ABB9C 000A8ADC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800ABBA0 000A8AE0 38 21 00 18 */ addi r1, r1, 0x18 +/* 800ABBA4 000A8AE4 7C 08 03 A6 */ mtlr r0 +/* 800ABBA8 000A8AE8 4E 80 00 20 */ blr + +.global GXSetTevColorIn +GXSetTevColorIn: +/* 800ABBAC 000A8AEC 54 63 10 3A */ slwi r3, r3, 2 +/* 800ABBB0 000A8AF0 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800ABBB4 000A8AF4 39 23 01 30 */ addi r9, r3, 0x130 +/* 800ABBB8 000A8AF8 7D 20 4A 14 */ add r9, r0, r9 +/* 800ABBBC 000A8AFC 80 69 00 00 */ lwz r3, 0(r9) +/* 800ABBC0 000A8B00 54 80 60 26 */ slwi r0, r4, 0xc +/* 800ABBC4 000A8B04 54 A8 40 2E */ slwi r8, r5, 8 +/* 800ABBC8 000A8B08 54 63 05 1E */ rlwinm r3, r3, 0, 0x14, 0xf +/* 800ABBCC 000A8B0C 7C 60 03 78 */ or r0, r3, r0 +/* 800ABBD0 000A8B10 90 09 00 00 */ stw r0, 0(r9) +/* 800ABBD4 000A8B14 54 C4 20 36 */ slwi r4, r6, 4 +/* 800ABBD8 000A8B18 38 60 00 61 */ li r3, 0x61 +/* 800ABBDC 000A8B1C 80 C9 00 00 */ lwz r6, 0(r9) +/* 800ABBE0 000A8B20 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ABBE4 000A8B24 38 00 00 00 */ li r0, 0 +/* 800ABBE8 000A8B28 54 C6 06 26 */ rlwinm r6, r6, 0, 0x18, 0x13 +/* 800ABBEC 000A8B2C 7C C6 43 78 */ or r6, r6, r8 +/* 800ABBF0 000A8B30 90 C9 00 00 */ stw r6, 0(r9) +/* 800ABBF4 000A8B34 80 C9 00 00 */ lwz r6, 0(r9) +/* 800ABBF8 000A8B38 54 C6 07 2E */ rlwinm r6, r6, 0, 0x1c, 0x17 +/* 800ABBFC 000A8B3C 7C C4 23 78 */ or r4, r6, r4 +/* 800ABC00 000A8B40 90 89 00 00 */ stw r4, 0(r9) +/* 800ABC04 000A8B44 80 89 00 00 */ lwz r4, 0(r9) +/* 800ABC08 000A8B48 54 84 00 36 */ rlwinm r4, r4, 0, 0, 0x1b +/* 800ABC0C 000A8B4C 7C 84 3B 78 */ or r4, r4, r7 +/* 800ABC10 000A8B50 90 89 00 00 */ stw r4, 0(r9) +/* 800ABC14 000A8B54 98 65 80 00 */ stb r3, 0xCC008000@l(r5) +/* 800ABC18 000A8B58 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ABC1C 000A8B5C 80 89 00 00 */ lwz r4, 0(r9) +/* 800ABC20 000A8B60 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800ABC24 000A8B64 B0 03 00 02 */ sth r0, 2(r3) +/* 800ABC28 000A8B68 4E 80 00 20 */ blr + +.global GXSetTevAlphaIn +GXSetTevAlphaIn: +/* 800ABC2C 000A8B6C 54 63 10 3A */ slwi r3, r3, 2 +/* 800ABC30 000A8B70 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800ABC34 000A8B74 39 23 01 70 */ addi r9, r3, 0x170 +/* 800ABC38 000A8B78 7D 20 4A 14 */ add r9, r0, r9 +/* 800ABC3C 000A8B7C 81 09 00 00 */ lwz r8, 0(r9) +/* 800ABC40 000A8B80 54 83 68 24 */ slwi r3, r4, 0xd +/* 800ABC44 000A8B84 54 A0 50 2A */ slwi r0, r5, 0xa +/* 800ABC48 000A8B88 55 04 04 DE */ rlwinm r4, r8, 0, 0x13, 0xf +/* 800ABC4C 000A8B8C 7C 83 1B 78 */ or r3, r4, r3 +/* 800ABC50 000A8B90 90 69 00 00 */ stw r3, 0(r9) +/* 800ABC54 000A8B94 54 C6 38 30 */ slwi r6, r6, 7 +/* 800ABC58 000A8B98 54 E4 20 36 */ slwi r4, r7, 4 +/* 800ABC5C 000A8B9C 80 E9 00 00 */ lwz r7, 0(r9) +/* 800ABC60 000A8BA0 38 60 00 61 */ li r3, 0x61 +/* 800ABC64 000A8BA4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ABC68 000A8BA8 54 E7 05 A4 */ rlwinm r7, r7, 0, 0x16, 0x12 +/* 800ABC6C 000A8BAC 7C E0 03 78 */ or r0, r7, r0 +/* 800ABC70 000A8BB0 90 09 00 00 */ stw r0, 0(r9) +/* 800ABC74 000A8BB4 38 00 00 00 */ li r0, 0 +/* 800ABC78 000A8BB8 80 E9 00 00 */ lwz r7, 0(r9) +/* 800ABC7C 000A8BBC 54 E7 06 6A */ rlwinm r7, r7, 0, 0x19, 0x15 +/* 800ABC80 000A8BC0 7C E6 33 78 */ or r6, r7, r6 +/* 800ABC84 000A8BC4 90 C9 00 00 */ stw r6, 0(r9) +/* 800ABC88 000A8BC8 80 C9 00 00 */ lwz r6, 0(r9) +/* 800ABC8C 000A8BCC 54 C6 07 30 */ rlwinm r6, r6, 0, 0x1c, 0x18 +/* 800ABC90 000A8BD0 7C C4 23 78 */ or r4, r6, r4 +/* 800ABC94 000A8BD4 90 89 00 00 */ stw r4, 0(r9) +/* 800ABC98 000A8BD8 98 65 80 00 */ stb r3, 0xCC008000@l(r5) +/* 800ABC9C 000A8BDC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ABCA0 000A8BE0 80 89 00 00 */ lwz r4, 0(r9) +/* 800ABCA4 000A8BE4 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800ABCA8 000A8BE8 B0 03 00 02 */ sth r0, 2(r3) +/* 800ABCAC 000A8BEC 4E 80 00 20 */ blr + +.global GXSetTevColorOp +GXSetTevColorOp: +/* 800ABCB0 000A8BF0 54 63 10 3A */ slwi r3, r3, 2 +/* 800ABCB4 000A8BF4 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800ABCB8 000A8BF8 38 63 01 30 */ addi r3, r3, 0x130 +/* 800ABCBC 000A8BFC 7C 60 1A 14 */ add r3, r0, r3 +/* 800ABCC0 000A8C00 80 03 00 00 */ lwz r0, 0(r3) +/* 800ABCC4 000A8C04 2C 04 00 01 */ cmpwi r4, 1 +/* 800ABCC8 000A8C08 54 00 03 98 */ rlwinm r0, r0, 0, 0xe, 0xc +/* 800ABCCC 000A8C0C 50 80 93 5A */ rlwimi r0, r4, 0x12, 0xd, 0xd +/* 800ABCD0 000A8C10 90 03 00 00 */ stw r0, 0(r3) +/* 800ABCD4 000A8C14 41 81 00 30 */ bgt lbl_800ABD04 +/* 800ABCD8 000A8C18 81 23 00 00 */ lwz r9, 0(r3) +/* 800ABCDC 000A8C1C 54 C4 A0 16 */ slwi r4, r6, 0x14 +/* 800ABCE0 000A8C20 54 A0 80 1E */ slwi r0, r5, 0x10 +/* 800ABCE4 000A8C24 55 25 03 12 */ rlwinm r5, r9, 0, 0xc, 9 +/* 800ABCE8 000A8C28 7C A4 23 78 */ or r4, r5, r4 +/* 800ABCEC 000A8C2C 90 83 00 00 */ stw r4, 0(r3) +/* 800ABCF0 000A8C30 80 83 00 00 */ lwz r4, 0(r3) +/* 800ABCF4 000A8C34 54 84 04 1A */ rlwinm r4, r4, 0, 0x10, 0xd +/* 800ABCF8 000A8C38 7C 80 03 78 */ or r0, r4, r0 +/* 800ABCFC 000A8C3C 90 03 00 00 */ stw r0, 0(r3) +/* 800ABD00 000A8C40 48 00 00 24 */ b lbl_800ABD24 +lbl_800ABD04: +/* 800ABD04 000A8C44 80 03 00 00 */ lwz r0, 0(r3) +/* 800ABD08 000A8C48 54 00 03 12 */ rlwinm r0, r0, 0, 0xc, 9 +/* 800ABD0C 000A8C4C 50 80 9A 96 */ rlwimi r0, r4, 0x13, 0xa, 0xb +/* 800ABD10 000A8C50 90 03 00 00 */ stw r0, 0(r3) +/* 800ABD14 000A8C54 80 03 00 00 */ lwz r0, 0(r3) +/* 800ABD18 000A8C58 54 00 04 1A */ rlwinm r0, r0, 0, 0x10, 0xd +/* 800ABD1C 000A8C5C 64 00 00 03 */ oris r0, r0, 3 +/* 800ABD20 000A8C60 90 03 00 00 */ stw r0, 0(r3) +lbl_800ABD24: +/* 800ABD24 000A8C64 80 83 00 00 */ lwz r4, 0(r3) +/* 800ABD28 000A8C68 54 E0 99 58 */ rlwinm r0, r7, 0x13, 5, 0xc +/* 800ABD2C 000A8C6C 55 06 B0 12 */ slwi r6, r8, 0x16 +/* 800ABD30 000A8C70 54 84 03 56 */ rlwinm r4, r4, 0, 0xd, 0xb +/* 800ABD34 000A8C74 7C 80 03 78 */ or r0, r4, r0 +/* 800ABD38 000A8C78 90 03 00 00 */ stw r0, 0(r3) +/* 800ABD3C 000A8C7C 38 80 00 61 */ li r4, 0x61 +/* 800ABD40 000A8C80 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ABD44 000A8C84 80 E3 00 00 */ lwz r7, 0(r3) +/* 800ABD48 000A8C88 38 00 00 00 */ li r0, 0 +/* 800ABD4C 000A8C8C 54 E7 02 8E */ rlwinm r7, r7, 0, 0xa, 7 +/* 800ABD50 000A8C90 7C E6 33 78 */ or r6, r7, r6 +/* 800ABD54 000A8C94 90 C3 00 00 */ stw r6, 0(r3) +/* 800ABD58 000A8C98 98 85 80 00 */ stb r4, 0xCC008000@l(r5) +/* 800ABD5C 000A8C9C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ABD60 000A8CA0 80 63 00 00 */ lwz r3, 0(r3) +/* 800ABD64 000A8CA4 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ABD68 000A8CA8 B0 04 00 02 */ sth r0, 2(r4) +/* 800ABD6C 000A8CAC 4E 80 00 20 */ blr + +.global GXSetTevAlphaOp +GXSetTevAlphaOp: +/* 800ABD70 000A8CB0 54 63 10 3A */ slwi r3, r3, 2 +/* 800ABD74 000A8CB4 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800ABD78 000A8CB8 38 63 01 70 */ addi r3, r3, 0x170 +/* 800ABD7C 000A8CBC 7C 60 1A 14 */ add r3, r0, r3 +/* 800ABD80 000A8CC0 80 03 00 00 */ lwz r0, 0(r3) +/* 800ABD84 000A8CC4 2C 04 00 01 */ cmpwi r4, 1 +/* 800ABD88 000A8CC8 54 00 03 98 */ rlwinm r0, r0, 0, 0xe, 0xc +/* 800ABD8C 000A8CCC 50 80 93 5A */ rlwimi r0, r4, 0x12, 0xd, 0xd +/* 800ABD90 000A8CD0 90 03 00 00 */ stw r0, 0(r3) +/* 800ABD94 000A8CD4 41 81 00 30 */ bgt lbl_800ABDC4 +/* 800ABD98 000A8CD8 81 23 00 00 */ lwz r9, 0(r3) +/* 800ABD9C 000A8CDC 54 C4 A0 16 */ slwi r4, r6, 0x14 +/* 800ABDA0 000A8CE0 54 A0 80 1E */ slwi r0, r5, 0x10 +/* 800ABDA4 000A8CE4 55 25 03 12 */ rlwinm r5, r9, 0, 0xc, 9 +/* 800ABDA8 000A8CE8 7C A4 23 78 */ or r4, r5, r4 +/* 800ABDAC 000A8CEC 90 83 00 00 */ stw r4, 0(r3) +/* 800ABDB0 000A8CF0 80 83 00 00 */ lwz r4, 0(r3) +/* 800ABDB4 000A8CF4 54 84 04 1A */ rlwinm r4, r4, 0, 0x10, 0xd +/* 800ABDB8 000A8CF8 7C 80 03 78 */ or r0, r4, r0 +/* 800ABDBC 000A8CFC 90 03 00 00 */ stw r0, 0(r3) +/* 800ABDC0 000A8D00 48 00 00 24 */ b lbl_800ABDE4 +lbl_800ABDC4: +/* 800ABDC4 000A8D04 80 03 00 00 */ lwz r0, 0(r3) +/* 800ABDC8 000A8D08 54 00 03 12 */ rlwinm r0, r0, 0, 0xc, 9 +/* 800ABDCC 000A8D0C 50 80 9A 96 */ rlwimi r0, r4, 0x13, 0xa, 0xb +/* 800ABDD0 000A8D10 90 03 00 00 */ stw r0, 0(r3) +/* 800ABDD4 000A8D14 80 03 00 00 */ lwz r0, 0(r3) +/* 800ABDD8 000A8D18 54 00 04 1A */ rlwinm r0, r0, 0, 0x10, 0xd +/* 800ABDDC 000A8D1C 64 00 00 03 */ oris r0, r0, 3 +/* 800ABDE0 000A8D20 90 03 00 00 */ stw r0, 0(r3) +lbl_800ABDE4: +/* 800ABDE4 000A8D24 80 83 00 00 */ lwz r4, 0(r3) +/* 800ABDE8 000A8D28 54 E0 99 58 */ rlwinm r0, r7, 0x13, 5, 0xc +/* 800ABDEC 000A8D2C 55 06 B0 12 */ slwi r6, r8, 0x16 +/* 800ABDF0 000A8D30 54 84 03 56 */ rlwinm r4, r4, 0, 0xd, 0xb +/* 800ABDF4 000A8D34 7C 80 03 78 */ or r0, r4, r0 +/* 800ABDF8 000A8D38 90 03 00 00 */ stw r0, 0(r3) +/* 800ABDFC 000A8D3C 38 80 00 61 */ li r4, 0x61 +/* 800ABE00 000A8D40 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ABE04 000A8D44 80 E3 00 00 */ lwz r7, 0(r3) +/* 800ABE08 000A8D48 38 00 00 00 */ li r0, 0 +/* 800ABE0C 000A8D4C 54 E7 02 8E */ rlwinm r7, r7, 0, 0xa, 7 +/* 800ABE10 000A8D50 7C E6 33 78 */ or r6, r7, r6 +/* 800ABE14 000A8D54 90 C3 00 00 */ stw r6, 0(r3) +/* 800ABE18 000A8D58 98 85 80 00 */ stb r4, 0xCC008000@l(r5) +/* 800ABE1C 000A8D5C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ABE20 000A8D60 80 63 00 00 */ lwz r3, 0(r3) +/* 800ABE24 000A8D64 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ABE28 000A8D68 B0 04 00 02 */ sth r0, 2(r4) +/* 800ABE2C 000A8D6C 4E 80 00 20 */ blr + +.global GXSetTevColor +GXSetTevColor: +/* 800ABE30 000A8D70 88 04 00 03 */ lbz r0, 3(r4) +/* 800ABE34 000A8D74 54 68 08 3C */ slwi r8, r3, 1 +/* 800ABE38 000A8D78 88 A4 00 00 */ lbz r5, 0(r4) +/* 800ABE3C 000A8D7C 38 E8 00 E0 */ addi r7, r8, 0xe0 +/* 800ABE40 000A8D80 54 09 60 26 */ slwi r9, r0, 0xc +/* 800ABE44 000A8D84 50 A9 06 3E */ rlwimi r9, r5, 0, 0x18, 0x1f +/* 800ABE48 000A8D88 89 44 00 02 */ lbz r10, 2(r4) +/* 800ABE4C 000A8D8C 88 C4 00 01 */ lbz r6, 1(r4) +/* 800ABE50 000A8D90 54 E7 C0 0E */ slwi r7, r7, 0x18 +/* 800ABE54 000A8D94 38 A0 00 61 */ li r5, 0x61 +/* 800ABE58 000A8D98 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ABE5C 000A8D9C 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800ABE60 000A8DA0 98 A4 80 00 */ stb r5, 0xCC008000@l(r4) +/* 800ABE64 000A8DA4 51 27 03 3E */ rlwimi r7, r9, 0, 0xc, 0x1f +/* 800ABE68 000A8DA8 38 08 00 E1 */ addi r0, r8, 0xe1 +/* 800ABE6C 000A8DAC 90 E4 80 00 */ stw r7, -0x8000(r4) +/* 800ABE70 000A8DB0 54 C7 60 26 */ slwi r7, r6, 0xc +/* 800ABE74 000A8DB4 54 06 C0 0E */ slwi r6, r0, 0x18 +/* 800ABE78 000A8DB8 51 47 06 3E */ rlwimi r7, r10, 0, 0x18, 0x1f +/* 800ABE7C 000A8DBC 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800ABE80 000A8DC0 50 E6 03 3E */ rlwimi r6, r7, 0, 0xc, 0x1f +/* 800ABE84 000A8DC4 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800ABE88 000A8DC8 38 00 00 00 */ li r0, 0 +/* 800ABE8C 000A8DCC 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800ABE90 000A8DD0 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800ABE94 000A8DD4 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800ABE98 000A8DD8 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800ABE9C 000A8DDC B0 03 00 02 */ sth r0, 2(r3) +/* 800ABEA0 000A8DE0 4E 80 00 20 */ blr + +.global GXSetTevColorS10 +GXSetTevColorS10: +/* 800ABEA4 000A8DE4 A8 04 00 06 */ lha r0, 6(r4) +/* 800ABEA8 000A8DE8 54 69 08 3C */ slwi r9, r3, 1 +/* 800ABEAC 000A8DEC A8 A4 00 00 */ lha r5, 0(r4) +/* 800ABEB0 000A8DF0 39 09 00 E0 */ addi r8, r9, 0xe0 +/* 800ABEB4 000A8DF4 54 0A 62 66 */ rlwinm r10, r0, 0xc, 9, 0x13 +/* 800ABEB8 000A8DF8 50 AA 05 7E */ rlwimi r10, r5, 0, 0x15, 0x1f +/* 800ABEBC 000A8DFC A8 E4 00 04 */ lha r7, 4(r4) +/* 800ABEC0 000A8E00 A8 C4 00 02 */ lha r6, 2(r4) +/* 800ABEC4 000A8E04 55 08 C0 0E */ slwi r8, r8, 0x18 +/* 800ABEC8 000A8E08 38 A0 00 61 */ li r5, 0x61 +/* 800ABECC 000A8E0C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ABED0 000A8E10 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800ABED4 000A8E14 98 A4 80 00 */ stb r5, 0xCC008000@l(r4) +/* 800ABED8 000A8E18 51 48 02 7E */ rlwimi r8, r10, 0, 9, 0x1f +/* 800ABEDC 000A8E1C 38 09 00 E1 */ addi r0, r9, 0xe1 +/* 800ABEE0 000A8E20 91 04 80 00 */ stw r8, -0x8000(r4) +/* 800ABEE4 000A8E24 54 C8 62 66 */ rlwinm r8, r6, 0xc, 9, 0x13 +/* 800ABEE8 000A8E28 54 06 C0 0E */ slwi r6, r0, 0x18 +/* 800ABEEC 000A8E2C 50 E8 05 7E */ rlwimi r8, r7, 0, 0x15, 0x1f +/* 800ABEF0 000A8E30 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800ABEF4 000A8E34 51 06 02 7E */ rlwimi r6, r8, 0, 9, 0x1f +/* 800ABEF8 000A8E38 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800ABEFC 000A8E3C 38 00 00 00 */ li r0, 0 +/* 800ABF00 000A8E40 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800ABF04 000A8E44 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800ABF08 000A8E48 98 A4 80 00 */ stb r5, -0x8000(r4) +/* 800ABF0C 000A8E4C 90 C4 80 00 */ stw r6, -0x8000(r4) +/* 800ABF10 000A8E50 B0 03 00 02 */ sth r0, 2(r3) +/* 800ABF14 000A8E54 4E 80 00 20 */ blr + +.global GXSetTevKColor +GXSetTevKColor: +/* 800ABF18 000A8E58 88 04 00 03 */ lbz r0, 3(r4) +/* 800ABF1C 000A8E5C 54 65 08 3C */ slwi r5, r3, 1 +/* 800ABF20 000A8E60 88 C4 00 00 */ lbz r6, 0(r4) +/* 800ABF24 000A8E64 38 E5 00 E0 */ addi r7, r5, 0xe0 +/* 800ABF28 000A8E68 54 00 60 26 */ slwi r0, r0, 0xc +/* 800ABF2C 000A8E6C 50 C0 06 3E */ rlwimi r0, r6, 0, 0x18, 0x1f +/* 800ABF30 000A8E70 88 C4 00 01 */ lbz r6, 1(r4) +/* 800ABF34 000A8E74 89 24 00 02 */ lbz r9, 2(r4) +/* 800ABF38 000A8E78 54 00 03 0E */ rlwinm r0, r0, 0, 0xc, 7 +/* 800ABF3C 000A8E7C 64 08 00 80 */ oris r8, r0, 0x80 +/* 800ABF40 000A8E80 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ABF44 000A8E84 54 E7 C0 0E */ slwi r7, r7, 0x18 +/* 800ABF48 000A8E88 38 00 00 61 */ li r0, 0x61 +/* 800ABF4C 000A8E8C 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800ABF50 000A8E90 54 C6 60 26 */ slwi r6, r6, 0xc +/* 800ABF54 000A8E94 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800ABF58 000A8E98 51 07 02 3E */ rlwimi r7, r8, 0, 8, 0x1f +/* 800ABF5C 000A8E9C 90 E4 80 00 */ stw r7, -0x8000(r4) +/* 800ABF60 000A8EA0 51 26 06 3E */ rlwimi r6, r9, 0, 0x18, 0x1f +/* 800ABF64 000A8EA4 38 A5 00 E1 */ addi r5, r5, 0xe1 +/* 800ABF68 000A8EA8 98 04 80 00 */ stb r0, -0x8000(r4) +/* 800ABF6C 000A8EAC 54 C0 03 0E */ rlwinm r0, r6, 0, 0xc, 7 +/* 800ABF70 000A8EB0 64 06 00 80 */ oris r6, r0, 0x80 +/* 800ABF74 000A8EB4 54 A0 C0 0E */ slwi r0, r5, 0x18 +/* 800ABF78 000A8EB8 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f +/* 800ABF7C 000A8EBC 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800ABF80 000A8EC0 38 00 00 00 */ li r0, 0 +/* 800ABF84 000A8EC4 B0 03 00 02 */ sth r0, 2(r3) +/* 800ABF88 000A8EC8 4E 80 00 20 */ blr + +.global GXSetTevKColorSel +GXSetTevKColorSel: +/* 800ABF8C 000A8ECC 7C 65 0E 70 */ srawi r5, r3, 1 +/* 800ABF90 000A8ED0 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800ABF94 000A8ED4 54 60 07 FF */ clrlwi. r0, r3, 0x1f +/* 800ABF98 000A8ED8 54 A3 10 3A */ slwi r3, r5, 2 +/* 800ABF9C 000A8EDC 38 E3 01 B0 */ addi r7, r3, 0x1b0 +/* 800ABFA0 000A8EE0 7C E6 3A 14 */ add r7, r6, r7 +/* 800ABFA4 000A8EE4 41 82 00 1C */ beq lbl_800ABFC0 +/* 800ABFA8 000A8EE8 80 67 00 00 */ lwz r3, 0(r7) +/* 800ABFAC 000A8EEC 54 80 70 22 */ slwi r0, r4, 0xe +/* 800ABFB0 000A8EF0 54 63 04 98 */ rlwinm r3, r3, 0, 0x12, 0xc +/* 800ABFB4 000A8EF4 7C 60 03 78 */ or r0, r3, r0 +/* 800ABFB8 000A8EF8 90 07 00 00 */ stw r0, 0(r7) +/* 800ABFBC 000A8EFC 48 00 00 18 */ b lbl_800ABFD4 +lbl_800ABFC0: +/* 800ABFC0 000A8F00 80 67 00 00 */ lwz r3, 0(r7) +/* 800ABFC4 000A8F04 54 80 20 36 */ slwi r0, r4, 4 +/* 800ABFC8 000A8F08 54 63 07 2C */ rlwinm r3, r3, 0, 0x1c, 0x16 +/* 800ABFCC 000A8F0C 7C 60 03 78 */ or r0, r3, r0 +/* 800ABFD0 000A8F10 90 07 00 00 */ stw r0, 0(r7) +lbl_800ABFD4: +/* 800ABFD4 000A8F14 38 00 00 61 */ li r0, 0x61 +/* 800ABFD8 000A8F18 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ABFDC 000A8F1C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ABFE0 000A8F20 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ABFE4 000A8F24 38 00 00 00 */ li r0, 0 +/* 800ABFE8 000A8F28 80 87 00 00 */ lwz r4, 0(r7) +/* 800ABFEC 000A8F2C 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800ABFF0 000A8F30 B0 03 00 02 */ sth r0, 2(r3) +/* 800ABFF4 000A8F34 4E 80 00 20 */ blr + +.global GXSetTevKAlphaSel +GXSetTevKAlphaSel: +/* 800ABFF8 000A8F38 7C 65 0E 70 */ srawi r5, r3, 1 +/* 800ABFFC 000A8F3C 80 CD 82 C8 */ lwz r6, gx@sda21(r13) +/* 800AC000 000A8F40 54 60 07 FF */ clrlwi. r0, r3, 0x1f +/* 800AC004 000A8F44 54 A3 10 3A */ slwi r3, r5, 2 +/* 800AC008 000A8F48 38 E3 01 B0 */ addi r7, r3, 0x1b0 +/* 800AC00C 000A8F4C 7C E6 3A 14 */ add r7, r6, r7 +/* 800AC010 000A8F50 41 82 00 1C */ beq lbl_800AC02C +/* 800AC014 000A8F54 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC018 000A8F58 54 80 98 18 */ slwi r0, r4, 0x13 +/* 800AC01C 000A8F5C 54 63 03 4E */ rlwinm r3, r3, 0, 0xd, 7 +/* 800AC020 000A8F60 7C 60 03 78 */ or r0, r3, r0 +/* 800AC024 000A8F64 90 07 00 00 */ stw r0, 0(r7) +/* 800AC028 000A8F68 48 00 00 18 */ b lbl_800AC040 +lbl_800AC02C: +/* 800AC02C 000A8F6C 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC030 000A8F70 54 80 48 2C */ slwi r0, r4, 9 +/* 800AC034 000A8F74 54 63 05 E2 */ rlwinm r3, r3, 0, 0x17, 0x11 +/* 800AC038 000A8F78 7C 60 03 78 */ or r0, r3, r0 +/* 800AC03C 000A8F7C 90 07 00 00 */ stw r0, 0(r7) +lbl_800AC040: +/* 800AC040 000A8F80 38 00 00 61 */ li r0, 0x61 +/* 800AC044 000A8F84 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AC048 000A8F88 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AC04C 000A8F8C 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AC050 000A8F90 38 00 00 00 */ li r0, 0 +/* 800AC054 000A8F94 80 87 00 00 */ lwz r4, 0(r7) +/* 800AC058 000A8F98 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800AC05C 000A8F9C B0 03 00 02 */ sth r0, 2(r3) +/* 800AC060 000A8FA0 4E 80 00 20 */ blr + +.global GXSetTevSwapMode +GXSetTevSwapMode: +/* 800AC064 000A8FA4 54 63 10 3A */ slwi r3, r3, 2 +/* 800AC068 000A8FA8 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800AC06C 000A8FAC 38 E3 01 70 */ addi r7, r3, 0x170 +/* 800AC070 000A8FB0 7C E0 3A 14 */ add r7, r0, r7 +/* 800AC074 000A8FB4 80 07 00 00 */ lwz r0, 0(r7) +/* 800AC078 000A8FB8 54 A6 10 3A */ slwi r6, r5, 2 +/* 800AC07C 000A8FBC 38 60 00 61 */ li r3, 0x61 +/* 800AC080 000A8FC0 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d +/* 800AC084 000A8FC4 7C 00 23 78 */ or r0, r0, r4 +/* 800AC088 000A8FC8 90 07 00 00 */ stw r0, 0(r7) +/* 800AC08C 000A8FCC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AC090 000A8FD0 38 00 00 00 */ li r0, 0 +/* 800AC094 000A8FD4 80 87 00 00 */ lwz r4, 0(r7) +/* 800AC098 000A8FD8 54 84 07 B6 */ rlwinm r4, r4, 0, 0x1e, 0x1b +/* 800AC09C 000A8FDC 7C 84 33 78 */ or r4, r4, r6 +/* 800AC0A0 000A8FE0 90 87 00 00 */ stw r4, 0(r7) +/* 800AC0A4 000A8FE4 98 65 80 00 */ stb r3, 0xCC008000@l(r5) +/* 800AC0A8 000A8FE8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AC0AC 000A8FEC 80 87 00 00 */ lwz r4, 0(r7) +/* 800AC0B0 000A8FF0 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800AC0B4 000A8FF4 B0 03 00 02 */ sth r0, 2(r3) +/* 800AC0B8 000A8FF8 4E 80 00 20 */ blr + +.global GXSetTevSwapModeTable +GXSetTevSwapModeTable: +/* 800AC0BC 000A8FFC 54 69 08 3C */ slwi r9, r3, 1 +/* 800AC0C0 000A9000 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800AC0C4 000A9004 54 63 18 38 */ slwi r3, r3, 3 +/* 800AC0C8 000A9008 39 63 01 B0 */ addi r11, r3, 0x1b0 +/* 800AC0CC 000A900C 7D 60 5A 14 */ add r11, r0, r11 +/* 800AC0D0 000A9010 81 0B 00 00 */ lwz r8, 0(r11) +/* 800AC0D4 000A9014 38 09 00 01 */ addi r0, r9, 1 +/* 800AC0D8 000A9018 54 03 10 3A */ slwi r3, r0, 2 +/* 800AC0DC 000A901C 55 00 00 3A */ rlwinm r0, r8, 0, 0, 0x1d +/* 800AC0E0 000A9020 7C 00 23 78 */ or r0, r0, r4 +/* 800AC0E4 000A9024 90 0B 00 00 */ stw r0, 0(r11) +/* 800AC0E8 000A9028 54 A0 10 3A */ slwi r0, r5, 2 +/* 800AC0EC 000A902C 39 20 00 61 */ li r9, 0x61 +/* 800AC0F0 000A9030 80 8B 00 00 */ lwz r4, 0(r11) +/* 800AC0F4 000A9034 3D 00 CC 01 */ lis r8, 0xCC008000@ha +/* 800AC0F8 000A9038 39 43 01 B0 */ addi r10, r3, 0x1b0 +/* 800AC0FC 000A903C 54 83 07 B6 */ rlwinm r3, r4, 0, 0x1e, 0x1b +/* 800AC100 000A9040 7C 60 03 78 */ or r0, r3, r0 +/* 800AC104 000A9044 90 0B 00 00 */ stw r0, 0(r11) +/* 800AC108 000A9048 54 E3 10 3A */ slwi r3, r7, 2 +/* 800AC10C 000A904C 38 00 00 00 */ li r0, 0 +/* 800AC110 000A9050 99 28 80 00 */ stb r9, 0xCC008000@l(r8) +/* 800AC114 000A9054 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AC118 000A9058 80 AB 00 00 */ lwz r5, 0(r11) +/* 800AC11C 000A905C 7D 44 52 14 */ add r10, r4, r10 +/* 800AC120 000A9060 90 A8 80 00 */ stw r5, -0x8000(r8) +/* 800AC124 000A9064 80 8A 00 00 */ lwz r4, 0(r10) +/* 800AC128 000A9068 54 84 00 3A */ rlwinm r4, r4, 0, 0, 0x1d +/* 800AC12C 000A906C 7C 84 33 78 */ or r4, r4, r6 +/* 800AC130 000A9070 90 8A 00 00 */ stw r4, 0(r10) +/* 800AC134 000A9074 80 8A 00 00 */ lwz r4, 0(r10) +/* 800AC138 000A9078 54 84 07 B6 */ rlwinm r4, r4, 0, 0x1e, 0x1b +/* 800AC13C 000A907C 7C 83 1B 78 */ or r3, r4, r3 +/* 800AC140 000A9080 90 6A 00 00 */ stw r3, 0(r10) +/* 800AC144 000A9084 99 28 80 00 */ stb r9, -0x8000(r8) +/* 800AC148 000A9088 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AC14C 000A908C 80 8A 00 00 */ lwz r4, 0(r10) +/* 800AC150 000A9090 90 88 80 00 */ stw r4, -0x8000(r8) +/* 800AC154 000A9094 B0 03 00 02 */ sth r0, 2(r3) +/* 800AC158 000A9098 4E 80 00 20 */ blr + +.global GXSetAlphaCompare +GXSetAlphaCompare: +/* 800AC15C 000A909C 54 E7 44 2E */ rlwinm r7, r7, 8, 0x10, 0x17 +/* 800AC160 000A90A0 81 0D 82 C8 */ lwz r8, gx@sda21(r13) +/* 800AC164 000A90A4 50 87 06 3E */ rlwimi r7, r4, 0, 0x18, 0x1f +/* 800AC168 000A90A8 54 60 80 1E */ slwi r0, r3, 0x10 +/* 800AC16C 000A90AC 50 E0 04 3E */ rlwimi r0, r7, 0, 0x10, 0x1f +/* 800AC170 000A90B0 54 03 03 52 */ rlwinm r3, r0, 0, 0xd, 9 +/* 800AC174 000A90B4 54 C0 98 18 */ slwi r0, r6, 0x13 +/* 800AC178 000A90B8 7C 60 03 78 */ or r0, r3, r0 +/* 800AC17C 000A90BC 54 03 02 8E */ rlwinm r3, r0, 0, 0xa, 7 +/* 800AC180 000A90C0 54 A0 B0 12 */ slwi r0, r5, 0x16 +/* 800AC184 000A90C4 7C 60 03 78 */ or r0, r3, r0 +/* 800AC188 000A90C8 54 04 02 3E */ clrlwi r4, r0, 8 +/* 800AC18C 000A90CC 38 00 00 61 */ li r0, 0x61 +/* 800AC190 000A90D0 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AC194 000A90D4 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AC198 000A90D8 64 84 F3 00 */ oris r4, r4, 0xf300 +/* 800AC19C 000A90DC 38 00 00 00 */ li r0, 0 +/* 800AC1A0 000A90E0 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800AC1A4 000A90E4 B0 08 00 02 */ sth r0, 2(r8) +/* 800AC1A8 000A90E8 4E 80 00 20 */ blr + +.global GXSetZTexture +GXSetZTexture: +/* 800AC1AC 000A90EC 2C 04 00 13 */ cmpwi r4, 0x13 +/* 800AC1B0 000A90F0 54 A0 02 3E */ clrlwi r0, r5, 8 +/* 800AC1B4 000A90F4 64 07 F4 00 */ oris r7, r0, 0xf400 +/* 800AC1B8 000A90F8 41 82 00 28 */ beq lbl_800AC1E0 +/* 800AC1BC 000A90FC 40 80 00 10 */ bge lbl_800AC1CC +/* 800AC1C0 000A9100 2C 04 00 11 */ cmpwi r4, 0x11 +/* 800AC1C4 000A9104 41 82 00 14 */ beq lbl_800AC1D8 +/* 800AC1C8 000A9108 48 00 00 28 */ b lbl_800AC1F0 +lbl_800AC1CC: +/* 800AC1CC 000A910C 2C 04 00 16 */ cmpwi r4, 0x16 +/* 800AC1D0 000A9110 41 82 00 18 */ beq lbl_800AC1E8 +/* 800AC1D4 000A9114 48 00 00 1C */ b lbl_800AC1F0 +lbl_800AC1D8: +/* 800AC1D8 000A9118 38 C0 00 00 */ li r6, 0 +/* 800AC1DC 000A911C 48 00 00 18 */ b lbl_800AC1F4 +lbl_800AC1E0: +/* 800AC1E0 000A9120 38 C0 00 01 */ li r6, 1 +/* 800AC1E4 000A9124 48 00 00 10 */ b lbl_800AC1F4 +lbl_800AC1E8: +/* 800AC1E8 000A9128 38 C0 00 02 */ li r6, 2 +/* 800AC1EC 000A912C 48 00 00 08 */ b lbl_800AC1F4 +lbl_800AC1F0: +/* 800AC1F0 000A9130 38 C0 00 02 */ li r6, 2 +lbl_800AC1F4: +/* 800AC1F4 000A9134 38 00 00 61 */ li r0, 0x61 +/* 800AC1F8 000A9138 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AC1FC 000A913C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AC200 000A9140 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AC204 000A9144 54 C6 07 B6 */ rlwinm r6, r6, 0, 0x1e, 0x1b +/* 800AC208 000A9148 54 63 10 3A */ slwi r3, r3, 2 +/* 800AC20C 000A914C 90 E5 80 00 */ stw r7, -0x8000(r5) +/* 800AC210 000A9150 7C C3 1B 78 */ or r3, r6, r3 +/* 800AC214 000A9154 54 63 02 3E */ clrlwi r3, r3, 8 +/* 800AC218 000A9158 98 05 80 00 */ stb r0, -0x8000(r5) +/* 800AC21C 000A915C 64 63 F5 00 */ oris r3, r3, 0xf500 +/* 800AC220 000A9160 38 00 00 00 */ li r0, 0 +/* 800AC224 000A9164 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800AC228 000A9168 B0 04 00 02 */ sth r0, 2(r4) +/* 800AC22C 000A916C 4E 80 00 20 */ blr + +.global GXSetTevOrder +GXSetTevOrder: +/* 800AC230 000A9170 7C 67 0E 70 */ srawi r7, r3, 1 +/* 800AC234 000A9174 81 2D 82 C8 */ lwz r9, gx@sda21(r13) +/* 800AC238 000A9178 54 AA 06 2C */ rlwinm r10, r5, 0, 0x18, 0x16 +/* 800AC23C 000A917C 7C E7 01 94 */ addze r7, r7 +/* 800AC240 000A9180 54 60 10 3A */ slwi r0, r3, 2 +/* 800AC244 000A9184 7D 09 02 14 */ add r8, r9, r0 +/* 800AC248 000A9188 54 E7 10 3A */ slwi r7, r7, 2 +/* 800AC24C 000A918C 90 A8 04 9C */ stw r5, 0x49c(r8) +/* 800AC250 000A9190 38 E7 01 00 */ addi r7, r7, 0x100 +/* 800AC254 000A9194 28 0A 00 08 */ cmplwi r10, 8 +/* 800AC258 000A9198 38 0A 00 00 */ addi r0, r10, 0 +/* 800AC25C 000A919C 7C E9 3A 14 */ add r7, r9, r7 +/* 800AC260 000A91A0 41 80 00 0C */ blt lbl_800AC26C +/* 800AC264 000A91A4 39 20 00 00 */ li r9, 0 +/* 800AC268 000A91A8 48 00 00 08 */ b lbl_800AC270 +lbl_800AC26C: +/* 800AC26C 000A91AC 7C 09 03 78 */ mr r9, r0 +lbl_800AC270: +/* 800AC270 000A91B0 2C 04 00 08 */ cmpwi r4, 8 +/* 800AC274 000A91B4 41 80 00 28 */ blt lbl_800AC29C +/* 800AC278 000A91B8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AC27C 000A91BC 38 00 00 01 */ li r0, 1 +/* 800AC280 000A91C0 7C 00 18 30 */ slw r0, r0, r3 +/* 800AC284 000A91C4 81 04 04 E0 */ lwz r8, 0x4e0(r4) +/* 800AC288 000A91C8 39 44 04 E0 */ addi r10, r4, 0x4e0 +/* 800AC28C 000A91CC 38 80 00 00 */ li r4, 0 +/* 800AC290 000A91D0 7D 00 00 78 */ andc r0, r8, r0 +/* 800AC294 000A91D4 90 0A 00 00 */ stw r0, 0(r10) +/* 800AC298 000A91D8 48 00 00 20 */ b lbl_800AC2B8 +lbl_800AC29C: +/* 800AC29C 000A91DC 81 0D 82 C8 */ lwz r8, gx@sda21(r13) +/* 800AC2A0 000A91E0 38 00 00 01 */ li r0, 1 +/* 800AC2A4 000A91E4 7C 00 18 30 */ slw r0, r0, r3 +/* 800AC2A8 000A91E8 39 48 04 E0 */ addi r10, r8, 0x4e0 +/* 800AC2AC 000A91EC 81 08 04 E0 */ lwz r8, 0x4e0(r8) +/* 800AC2B0 000A91F0 7D 00 03 78 */ or r0, r8, r0 +/* 800AC2B4 000A91F4 90 0A 00 00 */ stw r0, 0(r10) +lbl_800AC2B8: +/* 800AC2B8 000A91F8 54 60 07 FF */ clrlwi. r0, r3, 0x1f +/* 800AC2BC 000A91FC 41 82 00 94 */ beq lbl_800AC350 +/* 800AC2C0 000A9200 81 07 00 00 */ lwz r8, 0(r7) +/* 800AC2C4 000A9204 55 23 60 26 */ slwi r3, r9, 0xc +/* 800AC2C8 000A9208 54 80 78 20 */ slwi r0, r4, 0xf +/* 800AC2CC 000A920C 55 04 05 20 */ rlwinm r4, r8, 0, 0x14, 0x10 +/* 800AC2D0 000A9210 7C 83 1B 78 */ or r3, r4, r3 +/* 800AC2D4 000A9214 90 67 00 00 */ stw r3, 0(r7) +/* 800AC2D8 000A9218 2C 06 00 FF */ cmpwi r6, 0xff +/* 800AC2DC 000A921C 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC2E0 000A9220 54 63 04 5A */ rlwinm r3, r3, 0, 0x11, 0xd +/* 800AC2E4 000A9224 7C 60 03 78 */ or r0, r3, r0 +/* 800AC2E8 000A9228 90 07 00 00 */ stw r0, 0(r7) +/* 800AC2EC 000A922C 40 82 00 0C */ bne lbl_800AC2F8 +/* 800AC2F0 000A9230 38 00 00 07 */ li r0, 7 +/* 800AC2F4 000A9234 48 00 00 18 */ b lbl_800AC30C +lbl_800AC2F8: +/* 800AC2F8 000A9238 3C 60 80 3B */ lis r3, c2r$71@ha +/* 800AC2FC 000A923C 54 C4 10 3A */ slwi r4, r6, 2 +/* 800AC300 000A9240 38 03 1B 10 */ addi r0, r3, c2r$71@l +/* 800AC304 000A9244 7C 60 22 14 */ add r3, r0, r4 +/* 800AC308 000A9248 80 03 00 00 */ lwz r0, 0(r3) +lbl_800AC30C: +/* 800AC30C 000A924C 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC310 000A9250 54 00 98 18 */ slwi r0, r0, 0x13 +/* 800AC314 000A9254 2C 05 00 FF */ cmpwi r5, 0xff +/* 800AC318 000A9258 54 63 03 52 */ rlwinm r3, r3, 0, 0xd, 9 +/* 800AC31C 000A925C 7C 60 03 78 */ or r0, r3, r0 +/* 800AC320 000A9260 90 07 00 00 */ stw r0, 0(r7) +/* 800AC324 000A9264 38 80 00 00 */ li r4, 0 +/* 800AC328 000A9268 41 82 00 10 */ beq lbl_800AC338 +/* 800AC32C 000A926C 54 A0 05 EF */ rlwinm. r0, r5, 0, 0x17, 0x17 +/* 800AC330 000A9270 40 82 00 08 */ bne lbl_800AC338 +/* 800AC334 000A9274 38 80 00 01 */ li r4, 1 +lbl_800AC338: +/* 800AC338 000A9278 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC33C 000A927C 54 80 90 1A */ slwi r0, r4, 0x12 +/* 800AC340 000A9280 54 63 03 98 */ rlwinm r3, r3, 0, 0xe, 0xc +/* 800AC344 000A9284 7C 60 03 78 */ or r0, r3, r0 +/* 800AC348 000A9288 90 07 00 00 */ stw r0, 0(r7) +/* 800AC34C 000A928C 48 00 00 8C */ b lbl_800AC3D8 +lbl_800AC350: +/* 800AC350 000A9290 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC354 000A9294 54 80 18 38 */ slwi r0, r4, 3 +/* 800AC358 000A9298 2C 06 00 FF */ cmpwi r6, 0xff +/* 800AC35C 000A929C 54 63 00 38 */ rlwinm r3, r3, 0, 0, 0x1c +/* 800AC360 000A92A0 7C 63 4B 78 */ or r3, r3, r9 +/* 800AC364 000A92A4 90 67 00 00 */ stw r3, 0(r7) +/* 800AC368 000A92A8 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC36C 000A92AC 54 63 07 72 */ rlwinm r3, r3, 0, 0x1d, 0x19 +/* 800AC370 000A92B0 7C 60 03 78 */ or r0, r3, r0 +/* 800AC374 000A92B4 90 07 00 00 */ stw r0, 0(r7) +/* 800AC378 000A92B8 40 82 00 0C */ bne lbl_800AC384 +/* 800AC37C 000A92BC 38 00 00 07 */ li r0, 7 +/* 800AC380 000A92C0 48 00 00 18 */ b lbl_800AC398 +lbl_800AC384: +/* 800AC384 000A92C4 3C 60 80 3B */ lis r3, c2r$71@ha +/* 800AC388 000A92C8 54 C4 10 3A */ slwi r4, r6, 2 +/* 800AC38C 000A92CC 38 03 1B 10 */ addi r0, r3, c2r$71@l +/* 800AC390 000A92D0 7C 60 22 14 */ add r3, r0, r4 +/* 800AC394 000A92D4 80 03 00 00 */ lwz r0, 0(r3) +lbl_800AC398: +/* 800AC398 000A92D8 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC39C 000A92DC 54 00 38 30 */ slwi r0, r0, 7 +/* 800AC3A0 000A92E0 2C 05 00 FF */ cmpwi r5, 0xff +/* 800AC3A4 000A92E4 54 63 06 6A */ rlwinm r3, r3, 0, 0x19, 0x15 +/* 800AC3A8 000A92E8 7C 60 03 78 */ or r0, r3, r0 +/* 800AC3AC 000A92EC 90 07 00 00 */ stw r0, 0(r7) +/* 800AC3B0 000A92F0 38 80 00 00 */ li r4, 0 +/* 800AC3B4 000A92F4 41 82 00 10 */ beq lbl_800AC3C4 +/* 800AC3B8 000A92F8 54 A0 05 EF */ rlwinm. r0, r5, 0, 0x17, 0x17 +/* 800AC3BC 000A92FC 40 82 00 08 */ bne lbl_800AC3C4 +/* 800AC3C0 000A9300 38 80 00 01 */ li r4, 1 +lbl_800AC3C4: +/* 800AC3C4 000A9304 80 67 00 00 */ lwz r3, 0(r7) +/* 800AC3C8 000A9308 54 80 30 32 */ slwi r0, r4, 6 +/* 800AC3CC 000A930C 54 63 06 B0 */ rlwinm r3, r3, 0, 0x1a, 0x18 +/* 800AC3D0 000A9310 7C 60 03 78 */ or r0, r3, r0 +/* 800AC3D4 000A9314 90 07 00 00 */ stw r0, 0(r7) +lbl_800AC3D8: +/* 800AC3D8 000A9318 38 00 00 61 */ li r0, 0x61 +/* 800AC3DC 000A931C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AC3E0 000A9320 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AC3E4 000A9324 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AC3E8 000A9328 38 00 00 00 */ li r0, 0 +/* 800AC3EC 000A932C 80 87 00 00 */ lwz r4, 0(r7) +/* 800AC3F0 000A9330 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800AC3F4 000A9334 B0 03 00 02 */ sth r0, 2(r3) +/* 800AC3F8 000A9338 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AC3FC 000A933C 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800AC400 000A9340 60 00 00 01 */ ori r0, r0, 1 +/* 800AC404 000A9344 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800AC408 000A9348 4E 80 00 20 */ blr + +.global GXSetNumTevStages +GXSetNumTevStages: +/* 800AC40C 000A934C 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 800AC410 000A9350 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AC414 000A9354 38 03 FF FF */ addi r0, r3, -1 +/* 800AC418 000A9358 84 64 02 04 */ lwzu r3, 0x204(r4) +/* 800AC41C 000A935C 54 00 50 2A */ slwi r0, r0, 0xa +/* 800AC420 000A9360 54 63 05 A2 */ rlwinm r3, r3, 0, 0x16, 0x11 +/* 800AC424 000A9364 7C 60 03 78 */ or r0, r3, r0 +/* 800AC428 000A9368 90 04 00 00 */ stw r0, 0(r4) +/* 800AC42C 000A936C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AC430 000A9370 80 03 04 F4 */ lwz r0, 0x4f4(r3) +/* 800AC434 000A9374 60 00 00 04 */ ori r0, r0, 4 +/* 800AC438 000A9378 90 03 04 F4 */ stw r0, 0x4f4(r3) +/* 800AC43C 000A937C 4E 80 00 20 */ blr + +.section .data, "wa" # 0x803A8380 - 0x803E6000 + .balign 8 +c2r$71: + .4byte 0 + .4byte 0x00000001 + .4byte 0 + .4byte 0x00000001 + .4byte 0 + .4byte 0x00000001 + .4byte 0x00000007 + .4byte 0x00000005 + .4byte 0x00000006 + .4byte 0 diff --git a/asm/Dolphin/gx/GXTexture.s b/asm/Dolphin/gx/GXTexture.s new file mode 100644 index 0000000..d73aaaf --- /dev/null +++ b/asm/Dolphin/gx/GXTexture.s @@ -0,0 +1,1431 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXGetTexBufferSize +GXGetTexBufferSize: +/* 800AA1D4 000A7114 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800AA1D8 000A7118 28 05 00 3C */ cmplwi r5, 0x3c +/* 800AA1DC 000A711C 93 E1 00 24 */ stw r31, 0x24(r1) +/* 800AA1E0 000A7120 41 81 00 40 */ bgt lbl_800AA220 +/* 800AA1E4 000A7124 3D 00 80 3B */ lis r8, "@92"@ha +/* 800AA1E8 000A7128 39 08 18 E8 */ addi r8, r8, "@92"@l +/* 800AA1EC 000A712C 54 A0 10 3A */ slwi r0, r5, 2 +/* 800AA1F0 000A7130 7C 08 00 2E */ lwzx r0, r8, r0 +/* 800AA1F4 000A7134 7C 09 03 A6 */ mtctr r0 +/* 800AA1F8 000A7138 4E 80 04 20 */ bctr +lbl_800AA1FC: +/* 800AA1FC 000A713C 38 00 00 03 */ li r0, 3 +/* 800AA200 000A7140 39 00 00 03 */ li r8, 3 +/* 800AA204 000A7144 48 00 00 24 */ b lbl_800AA228 +lbl_800AA208: +/* 800AA208 000A7148 38 00 00 03 */ li r0, 3 +/* 800AA20C 000A714C 39 00 00 02 */ li r8, 2 +/* 800AA210 000A7150 48 00 00 18 */ b lbl_800AA228 +lbl_800AA214: +/* 800AA214 000A7154 38 00 00 02 */ li r0, 2 +/* 800AA218 000A7158 39 00 00 02 */ li r8, 2 +/* 800AA21C 000A715C 48 00 00 0C */ b lbl_800AA228 +lbl_800AA220: +/* 800AA220 000A7160 39 00 00 00 */ li r8, 0 +/* 800AA224 000A7164 38 00 00 00 */ li r0, 0 +lbl_800AA228: +/* 800AA228 000A7168 28 05 00 06 */ cmplwi r5, 6 +/* 800AA22C 000A716C 41 82 00 0C */ beq lbl_800AA238 +/* 800AA230 000A7170 28 05 00 16 */ cmplwi r5, 0x16 +/* 800AA234 000A7174 40 82 00 0C */ bne lbl_800AA240 +lbl_800AA238: +/* 800AA238 000A7178 38 A0 00 40 */ li r5, 0x40 +/* 800AA23C 000A717C 48 00 00 08 */ b lbl_800AA244 +lbl_800AA240: +/* 800AA240 000A7180 38 A0 00 20 */ li r5, 0x20 +lbl_800AA244: +/* 800AA244 000A7184 54 C6 06 3E */ clrlwi r6, r6, 0x18 +/* 800AA248 000A7188 28 06 00 01 */ cmplwi r6, 1 +/* 800AA24C 000A718C 40 82 00 A0 */ bne lbl_800AA2EC +/* 800AA250 000A7190 54 E9 06 3E */ clrlwi r9, r7, 0x18 +/* 800AA254 000A7194 38 C0 00 01 */ li r6, 1 +/* 800AA258 000A7198 7D 29 03 A6 */ mtctr r9 +/* 800AA25C 000A719C 7C C7 40 30 */ slw r7, r6, r8 +/* 800AA260 000A71A0 7C C6 00 30 */ slw r6, r6, r0 +/* 800AA264 000A71A4 28 09 00 00 */ cmplwi r9, 0 +/* 800AA268 000A71A8 39 46 FF FF */ addi r10, r6, -1 +/* 800AA26C 000A71AC 38 E7 FF FF */ addi r7, r7, -1 +/* 800AA270 000A71B0 3B E0 00 00 */ li r31, 0 +/* 800AA274 000A71B4 40 81 00 AC */ ble lbl_800AA320 +lbl_800AA278: +/* 800AA278 000A71B8 54 6B 04 3E */ clrlwi r11, r3, 0x10 +/* 800AA27C 000A71BC 7C CB 52 14 */ add r6, r11, r10 +/* 800AA280 000A71C0 54 8C 04 3E */ clrlwi r12, r4, 0x10 +/* 800AA284 000A71C4 7C C9 06 30 */ sraw r9, r6, r0 +/* 800AA288 000A71C8 7C CC 3A 14 */ add r6, r12, r7 +/* 800AA28C 000A71CC 7C C6 46 30 */ sraw r6, r6, r8 +/* 800AA290 000A71D0 7C C9 31 D6 */ mullw r6, r9, r6 +/* 800AA294 000A71D4 7C C5 31 D6 */ mullw r6, r5, r6 +/* 800AA298 000A71D8 28 0B 00 01 */ cmplwi r11, 1 +/* 800AA29C 000A71DC 7F FF 32 14 */ add r31, r31, r6 +/* 800AA2A0 000A71E0 40 82 00 0C */ bne lbl_800AA2AC +/* 800AA2A4 000A71E4 28 0C 00 01 */ cmplwi r12, 1 +/* 800AA2A8 000A71E8 41 82 00 78 */ beq lbl_800AA320 +lbl_800AA2AC: +/* 800AA2AC 000A71EC 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 800AA2B0 000A71F0 28 03 00 01 */ cmplwi r3, 1 +/* 800AA2B4 000A71F4 40 81 00 0C */ ble lbl_800AA2C0 +/* 800AA2B8 000A71F8 7D 66 0E 70 */ srawi r6, r11, 1 +/* 800AA2BC 000A71FC 48 00 00 08 */ b lbl_800AA2C4 +lbl_800AA2C0: +/* 800AA2C0 000A7200 38 C0 00 01 */ li r6, 1 +lbl_800AA2C4: +/* 800AA2C4 000A7204 54 83 04 3E */ clrlwi r3, r4, 0x10 +/* 800AA2C8 000A7208 28 03 00 01 */ cmplwi r3, 1 +/* 800AA2CC 000A720C 54 C3 04 3E */ clrlwi r3, r6, 0x10 +/* 800AA2D0 000A7210 40 81 00 0C */ ble lbl_800AA2DC +/* 800AA2D4 000A7214 7D 84 0E 70 */ srawi r4, r12, 1 +/* 800AA2D8 000A7218 48 00 00 08 */ b lbl_800AA2E0 +lbl_800AA2DC: +/* 800AA2DC 000A721C 38 80 00 01 */ li r4, 1 +lbl_800AA2E0: +/* 800AA2E0 000A7220 54 84 04 3E */ clrlwi r4, r4, 0x10 +/* 800AA2E4 000A7224 42 00 FF 94 */ bdnz lbl_800AA278 +/* 800AA2E8 000A7228 48 00 00 38 */ b lbl_800AA320 +lbl_800AA2EC: +/* 800AA2EC 000A722C 38 C0 00 01 */ li r6, 1 +/* 800AA2F0 000A7230 7C C7 00 30 */ slw r7, r6, r0 +/* 800AA2F4 000A7234 7C C6 40 30 */ slw r6, r6, r8 +/* 800AA2F8 000A7238 54 69 04 3E */ clrlwi r9, r3, 0x10 +/* 800AA2FC 000A723C 38 67 FF FF */ addi r3, r7, -1 +/* 800AA300 000A7240 7C E9 1A 14 */ add r7, r9, r3 +/* 800AA304 000A7244 54 84 04 3E */ clrlwi r4, r4, 0x10 +/* 800AA308 000A7248 38 66 FF FF */ addi r3, r6, -1 +/* 800AA30C 000A724C 7C E6 06 30 */ sraw r6, r7, r0 +/* 800AA310 000A7250 7C 04 1A 14 */ add r0, r4, r3 +/* 800AA314 000A7254 7C 00 46 30 */ sraw r0, r0, r8 +/* 800AA318 000A7258 7C 06 01 D6 */ mullw r0, r6, r0 +/* 800AA31C 000A725C 7F E5 01 D6 */ mullw r31, r5, r0 +lbl_800AA320: +/* 800AA320 000A7260 7F E3 FB 78 */ mr r3, r31 +/* 800AA324 000A7264 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 800AA328 000A7268 38 21 00 28 */ addi r1, r1, 0x28 +/* 800AA32C 000A726C 4E 80 00 20 */ blr + +.global __GetImageTileCount +__GetImageTileCount: +/* 800AA330 000A7270 28 03 00 3C */ cmplwi r3, 0x3c +/* 800AA334 000A7274 41 81 00 40 */ bgt lbl_800AA374 +/* 800AA338 000A7278 3D 20 80 3B */ lis r9, "@133"@ha +/* 800AA33C 000A727C 39 29 19 DC */ addi r9, r9, "@133"@l +/* 800AA340 000A7280 54 60 10 3A */ slwi r0, r3, 2 +/* 800AA344 000A7284 7C 09 00 2E */ lwzx r0, r9, r0 +/* 800AA348 000A7288 7C 09 03 A6 */ mtctr r0 +/* 800AA34C 000A728C 4E 80 04 20 */ bctr +lbl_800AA350: +/* 800AA350 000A7290 39 60 00 03 */ li r11, 3 +/* 800AA354 000A7294 39 80 00 03 */ li r12, 3 +/* 800AA358 000A7298 48 00 00 24 */ b lbl_800AA37C +lbl_800AA35C: +/* 800AA35C 000A729C 39 60 00 03 */ li r11, 3 +/* 800AA360 000A72A0 39 80 00 02 */ li r12, 2 +/* 800AA364 000A72A4 48 00 00 18 */ b lbl_800AA37C +lbl_800AA368: +/* 800AA368 000A72A8 39 60 00 02 */ li r11, 2 +/* 800AA36C 000A72AC 39 80 00 02 */ li r12, 2 +/* 800AA370 000A72B0 48 00 00 0C */ b lbl_800AA37C +lbl_800AA374: +/* 800AA374 000A72B4 39 80 00 00 */ li r12, 0 +/* 800AA378 000A72B8 39 60 00 00 */ li r11, 0 +lbl_800AA37C: +/* 800AA37C 000A72BC 54 80 04 3F */ clrlwi. r0, r4, 0x10 +/* 800AA380 000A72C0 40 82 00 08 */ bne lbl_800AA388 +/* 800AA384 000A72C4 38 80 00 01 */ li r4, 1 +lbl_800AA388: +/* 800AA388 000A72C8 54 A0 04 3F */ clrlwi. r0, r5, 0x10 +/* 800AA38C 000A72CC 40 82 00 08 */ bne lbl_800AA394 +/* 800AA390 000A72D0 38 A0 00 01 */ li r5, 1 +lbl_800AA394: +/* 800AA394 000A72D4 39 40 00 01 */ li r10, 1 +/* 800AA398 000A72D8 7D 49 58 30 */ slw r9, r10, r11 +/* 800AA39C 000A72DC 54 84 04 3E */ clrlwi r4, r4, 0x10 +/* 800AA3A0 000A72E0 38 09 FF FF */ addi r0, r9, -1 +/* 800AA3A4 000A72E4 7C 04 02 14 */ add r0, r4, r0 +/* 800AA3A8 000A72E8 7C 00 5E 30 */ sraw r0, r0, r11 +/* 800AA3AC 000A72EC 7D 44 60 30 */ slw r4, r10, r12 +/* 800AA3B0 000A72F0 90 06 00 00 */ stw r0, 0(r6) +/* 800AA3B4 000A72F4 54 A5 04 3E */ clrlwi r5, r5, 0x10 +/* 800AA3B8 000A72F8 38 04 FF FF */ addi r0, r4, -1 +/* 800AA3BC 000A72FC 7C 05 02 14 */ add r0, r5, r0 +/* 800AA3C0 000A7300 7C 00 66 30 */ sraw r0, r0, r12 +/* 800AA3C4 000A7304 2C 03 00 06 */ cmpwi r3, 6 +/* 800AA3C8 000A7308 90 07 00 00 */ stw r0, 0(r7) +/* 800AA3CC 000A730C 41 82 00 10 */ beq lbl_800AA3DC +/* 800AA3D0 000A7310 2C 03 00 16 */ cmpwi r3, 0x16 +/* 800AA3D4 000A7314 41 82 00 08 */ beq lbl_800AA3DC +/* 800AA3D8 000A7318 39 40 00 00 */ li r10, 0 +lbl_800AA3DC: +/* 800AA3DC 000A731C 2C 0A 00 00 */ cmpwi r10, 0 +/* 800AA3E0 000A7320 41 82 00 0C */ beq lbl_800AA3EC +/* 800AA3E4 000A7324 38 00 00 02 */ li r0, 2 +/* 800AA3E8 000A7328 48 00 00 08 */ b lbl_800AA3F0 +lbl_800AA3EC: +/* 800AA3EC 000A732C 38 00 00 01 */ li r0, 1 +lbl_800AA3F0: +/* 800AA3F0 000A7330 90 08 00 00 */ stw r0, 0(r8) +/* 800AA3F4 000A7334 4E 80 00 20 */ blr + +.global GXInitTexObj +GXInitTexObj: +/* 800AA3F8 000A7338 7C 08 02 A6 */ mflr r0 +/* 800AA3FC 000A733C 90 01 00 04 */ stw r0, 4(r1) +/* 800AA400 000A7340 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 800AA404 000A7344 BF 01 00 40 */ stmw r24, 0x40(r1) +/* 800AA408 000A7348 3B 64 00 00 */ addi r27, r4, 0 +/* 800AA40C 000A734C 3B 85 00 00 */ addi r28, r5, 0 +/* 800AA410 000A7350 3B E3 00 00 */ addi r31, r3, 0 +/* 800AA414 000A7354 3B A6 00 00 */ addi r29, r6, 0 +/* 800AA418 000A7358 3B C7 00 00 */ addi r30, r7, 0 +/* 800AA41C 000A735C 3B 08 00 00 */ addi r24, r8, 0 +/* 800AA420 000A7360 3B 29 00 00 */ addi r25, r9, 0 +/* 800AA424 000A7364 3B 4A 00 00 */ addi r26, r10, 0 +/* 800AA428 000A7368 38 80 00 00 */ li r4, 0 +/* 800AA42C 000A736C 38 A0 00 20 */ li r5, 0x20 +/* 800AA430 000A7370 4B F5 8C D1 */ bl memset +/* 800AA434 000A7374 80 9F 00 00 */ lwz r4, 0(r31) +/* 800AA438 000A7378 57 40 06 3F */ clrlwi. r0, r26, 0x18 +/* 800AA43C 000A737C 57 23 10 3A */ slwi r3, r25, 2 +/* 800AA440 000A7380 54 84 00 3A */ rlwinm r4, r4, 0, 0, 0x1d +/* 800AA444 000A7384 7C 84 C3 78 */ or r4, r4, r24 +/* 800AA448 000A7388 90 9F 00 00 */ stw r4, 0(r31) +/* 800AA44C 000A738C 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AA450 000A7390 54 00 07 B6 */ rlwinm r0, r0, 0, 0x1e, 0x1b +/* 800AA454 000A7394 7C 00 1B 78 */ or r0, r0, r3 +/* 800AA458 000A7398 90 1F 00 00 */ stw r0, 0(r31) +/* 800AA45C 000A739C 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AA460 000A73A0 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a +/* 800AA464 000A73A4 60 00 00 10 */ ori r0, r0, 0x10 +/* 800AA468 000A73A8 90 1F 00 00 */ stw r0, 0(r31) +/* 800AA46C 000A73AC 41 82 00 A4 */ beq lbl_800AA510 +/* 800AA470 000A73B0 88 7F 00 1F */ lbz r3, 0x1f(r31) +/* 800AA474 000A73B4 38 1E FF F8 */ addi r0, r30, -8 +/* 800AA478 000A73B8 28 00 00 02 */ cmplwi r0, 2 +/* 800AA47C 000A73BC 60 60 00 01 */ ori r0, r3, 1 +/* 800AA480 000A73C0 98 1F 00 1F */ stb r0, 0x1f(r31) +/* 800AA484 000A73C4 41 81 00 18 */ bgt lbl_800AA49C +/* 800AA488 000A73C8 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AA48C 000A73CC 54 00 06 EE */ rlwinm r0, r0, 0, 0x1b, 0x17 +/* 800AA490 000A73D0 60 00 00 A0 */ ori r0, r0, 0xa0 +/* 800AA494 000A73D4 90 1F 00 00 */ stw r0, 0(r31) +/* 800AA498 000A73D8 48 00 00 14 */ b lbl_800AA4AC +lbl_800AA49C: +/* 800AA49C 000A73DC 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AA4A0 000A73E0 54 00 06 EE */ rlwinm r0, r0, 0, 0x1b, 0x17 +/* 800AA4A4 000A73E4 60 00 00 C0 */ ori r0, r0, 0xc0 +/* 800AA4A8 000A73E8 90 1F 00 00 */ stw r0, 0(r31) +lbl_800AA4AC: +/* 800AA4AC 000A73EC 57 83 04 3E */ clrlwi r3, r28, 0x10 +/* 800AA4B0 000A73F0 57 A0 04 3E */ clrlwi r0, r29, 0x10 +/* 800AA4B4 000A73F4 7C 03 00 40 */ cmplw r3, r0 +/* 800AA4B8 000A73F8 40 81 00 10 */ ble lbl_800AA4C8 +/* 800AA4BC 000A73FC 7C 60 00 34 */ cntlzw r0, r3 +/* 800AA4C0 000A7400 20 00 00 1F */ subfic r0, r0, 0x1f +/* 800AA4C4 000A7404 48 00 00 0C */ b lbl_800AA4D0 +lbl_800AA4C8: +/* 800AA4C8 000A7408 7C 00 00 34 */ cntlzw r0, r0 +/* 800AA4CC 000A740C 20 00 00 1F */ subfic r0, r0, 0x1f +lbl_800AA4D0: +/* 800AA4D0 000A7410 90 01 00 3C */ stw r0, 0x3c(r1) +/* 800AA4D4 000A7414 3C 00 43 30 */ lis r0, 0x4330 +/* 800AA4D8 000A7418 80 7F 00 04 */ lwz r3, 4(r31) +/* 800AA4DC 000A741C 90 01 00 38 */ stw r0, 0x38(r1) +/* 800AA4E0 000A7420 C8 22 8B 30 */ lfd f1, "@166"@sda21(r2) +/* 800AA4E4 000A7424 54 63 06 1E */ rlwinm r3, r3, 0, 0x18, 0xf +/* 800AA4E8 000A7428 C8 01 00 38 */ lfd f0, 0x38(r1) +/* 800AA4EC 000A742C C0 42 8B 28 */ lfs f2, "@164"@sda21(r2) +/* 800AA4F0 000A7430 EC 00 08 28 */ fsubs f0, f0, f1 +/* 800AA4F4 000A7434 EC 02 00 32 */ fmuls f0, f2, f0 +/* 800AA4F8 000A7438 FC 00 00 1E */ fctiwz f0, f0 +/* 800AA4FC 000A743C D8 01 00 30 */ stfd f0, 0x30(r1) +/* 800AA500 000A7440 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800AA504 000A7444 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17 +/* 800AA508 000A7448 90 7F 00 04 */ stw r3, 4(r31) +/* 800AA50C 000A744C 48 00 00 14 */ b lbl_800AA520 +lbl_800AA510: +/* 800AA510 000A7450 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AA514 000A7454 54 00 06 EE */ rlwinm r0, r0, 0, 0x1b, 0x17 +/* 800AA518 000A7458 60 00 00 80 */ ori r0, r0, 0x80 +/* 800AA51C 000A745C 90 1F 00 00 */ stw r0, 0(r31) +lbl_800AA520: +/* 800AA520 000A7460 93 DF 00 14 */ stw r30, 0x14(r31) +/* 800AA524 000A7464 57 A3 04 3E */ clrlwi r3, r29, 0x10 +/* 800AA528 000A7468 57 C7 07 3E */ clrlwi r7, r30, 0x1c +/* 800AA52C 000A746C 80 BF 00 08 */ lwz r5, 8(r31) +/* 800AA530 000A7470 57 84 04 3E */ clrlwi r4, r28, 0x10 +/* 800AA534 000A7474 38 03 FF FF */ addi r0, r3, -1 +/* 800AA538 000A7478 54 A6 00 2A */ rlwinm r6, r5, 0, 0, 0x15 +/* 800AA53C 000A747C 38 A4 FF FF */ addi r5, r4, -1 +/* 800AA540 000A7480 7C C5 2B 78 */ or r5, r6, r5 +/* 800AA544 000A7484 90 BF 00 08 */ stw r5, 8(r31) +/* 800AA548 000A7488 54 05 50 2A */ slwi r5, r0, 0xa +/* 800AA54C 000A748C 57 60 D9 FE */ rlwinm r0, r27, 0x1b, 7, 0x1f +/* 800AA550 000A7490 80 DF 00 08 */ lwz r6, 8(r31) +/* 800AA554 000A7494 28 07 00 0E */ cmplwi r7, 0xe +/* 800AA558 000A7498 54 C6 05 96 */ rlwinm r6, r6, 0, 0x16, 0xb +/* 800AA55C 000A749C 7C C5 2B 78 */ or r5, r6, r5 +/* 800AA560 000A74A0 90 BF 00 08 */ stw r5, 8(r31) +/* 800AA564 000A74A4 80 BF 00 08 */ lwz r5, 8(r31) +/* 800AA568 000A74A8 54 A5 03 0E */ rlwinm r5, r5, 0, 0xc, 7 +/* 800AA56C 000A74AC 53 C5 A2 16 */ rlwimi r5, r30, 0x14, 8, 0xb +/* 800AA570 000A74B0 90 BF 00 08 */ stw r5, 8(r31) +/* 800AA574 000A74B4 80 BF 00 0C */ lwz r5, 0xc(r31) +/* 800AA578 000A74B8 54 A5 00 14 */ rlwinm r5, r5, 0, 0, 0xa +/* 800AA57C 000A74BC 7C A0 03 78 */ or r0, r5, r0 +/* 800AA580 000A74C0 90 1F 00 0C */ stw r0, 0xc(r31) +/* 800AA584 000A74C4 41 81 00 80 */ bgt lbl_800AA604 +/* 800AA588 000A74C8 3C A0 80 3B */ lis r5, "@168"@ha +/* 800AA58C 000A74CC 38 A5 1A D0 */ addi r5, r5, "@168"@l +/* 800AA590 000A74D0 54 E0 10 3A */ slwi r0, r7, 2 +/* 800AA594 000A74D4 7C 05 00 2E */ lwzx r0, r5, r0 +/* 800AA598 000A74D8 7C 09 03 A6 */ mtctr r0 +/* 800AA59C 000A74DC 4E 80 04 20 */ bctr +lbl_800AA5A0: +/* 800AA5A0 000A74E0 38 00 00 01 */ li r0, 1 +/* 800AA5A4 000A74E4 98 1F 00 1E */ stb r0, 0x1e(r31) +/* 800AA5A8 000A74E8 38 00 00 03 */ li r0, 3 +/* 800AA5AC 000A74EC 38 E0 00 03 */ li r7, 3 +/* 800AA5B0 000A74F0 48 00 00 64 */ b lbl_800AA614 +lbl_800AA5B4: +/* 800AA5B4 000A74F4 38 00 00 02 */ li r0, 2 +/* 800AA5B8 000A74F8 98 1F 00 1E */ stb r0, 0x1e(r31) +/* 800AA5BC 000A74FC 38 00 00 03 */ li r0, 3 +/* 800AA5C0 000A7500 38 E0 00 02 */ li r7, 2 +/* 800AA5C4 000A7504 48 00 00 50 */ b lbl_800AA614 +lbl_800AA5C8: +/* 800AA5C8 000A7508 38 00 00 02 */ li r0, 2 +/* 800AA5CC 000A750C 98 1F 00 1E */ stb r0, 0x1e(r31) +/* 800AA5D0 000A7510 38 00 00 02 */ li r0, 2 +/* 800AA5D4 000A7514 38 E0 00 02 */ li r7, 2 +/* 800AA5D8 000A7518 48 00 00 3C */ b lbl_800AA614 +lbl_800AA5DC: +/* 800AA5DC 000A751C 38 00 00 03 */ li r0, 3 +/* 800AA5E0 000A7520 98 1F 00 1E */ stb r0, 0x1e(r31) +/* 800AA5E4 000A7524 38 00 00 02 */ li r0, 2 +/* 800AA5E8 000A7528 38 E0 00 02 */ li r7, 2 +/* 800AA5EC 000A752C 48 00 00 28 */ b lbl_800AA614 +lbl_800AA5F0: +/* 800AA5F0 000A7530 38 00 00 00 */ li r0, 0 +/* 800AA5F4 000A7534 98 1F 00 1E */ stb r0, 0x1e(r31) +/* 800AA5F8 000A7538 38 00 00 03 */ li r0, 3 +/* 800AA5FC 000A753C 38 E0 00 03 */ li r7, 3 +/* 800AA600 000A7540 48 00 00 14 */ b lbl_800AA614 +lbl_800AA604: +/* 800AA604 000A7544 38 00 00 02 */ li r0, 2 +/* 800AA608 000A7548 98 1F 00 1E */ stb r0, 0x1e(r31) +/* 800AA60C 000A754C 38 00 00 02 */ li r0, 2 +/* 800AA610 000A7550 38 E0 00 02 */ li r7, 2 +lbl_800AA614: +/* 800AA614 000A7554 54 08 04 3E */ clrlwi r8, r0, 0x10 +/* 800AA618 000A7558 38 C0 00 01 */ li r6, 1 +/* 800AA61C 000A755C 7C C5 40 30 */ slw r5, r6, r8 +/* 800AA620 000A7560 54 E7 04 3E */ clrlwi r7, r7, 0x10 +/* 800AA624 000A7564 38 05 FF FF */ addi r0, r5, -1 +/* 800AA628 000A7568 7C C5 38 30 */ slw r5, r6, r7 +/* 800AA62C 000A756C 7C 84 02 14 */ add r4, r4, r0 +/* 800AA630 000A7570 38 05 FF FF */ addi r0, r5, -1 +/* 800AA634 000A7574 7C 84 46 30 */ sraw r4, r4, r8 +/* 800AA638 000A7578 7C 03 02 14 */ add r0, r3, r0 +/* 800AA63C 000A757C 7C 00 3E 30 */ sraw r0, r0, r7 +/* 800AA640 000A7580 7C 04 01 D6 */ mullw r0, r4, r0 +/* 800AA644 000A7584 54 00 04 7E */ clrlwi r0, r0, 0x11 +/* 800AA648 000A7588 B0 1F 00 1C */ sth r0, 0x1c(r31) +/* 800AA64C 000A758C 88 1F 00 1F */ lbz r0, 0x1f(r31) +/* 800AA650 000A7590 60 00 00 02 */ ori r0, r0, 2 +/* 800AA654 000A7594 98 1F 00 1F */ stb r0, 0x1f(r31) +/* 800AA658 000A7598 80 01 00 64 */ lwz r0, 0x64(r1) +/* 800AA65C 000A759C BB 01 00 40 */ lmw r24, 0x40(r1) +/* 800AA660 000A75A0 38 21 00 60 */ addi r1, r1, 0x60 +/* 800AA664 000A75A4 7C 08 03 A6 */ mtlr r0 +/* 800AA668 000A75A8 4E 80 00 20 */ blr + +.global GXInitTexObjCI +GXInitTexObjCI: +/* 800AA66C 000A75AC 7C 08 02 A6 */ mflr r0 +/* 800AA670 000A75B0 90 01 00 04 */ stw r0, 4(r1) +/* 800AA674 000A75B4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 800AA678 000A75B8 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 800AA67C 000A75BC 83 E1 00 38 */ lwz r31, 0x38(r1) +/* 800AA680 000A75C0 93 C1 00 28 */ stw r30, 0x28(r1) +/* 800AA684 000A75C4 7C 7E 1B 78 */ mr r30, r3 +/* 800AA688 000A75C8 4B FF FD 71 */ bl GXInitTexObj +/* 800AA68C 000A75CC 88 1E 00 1F */ lbz r0, 0x1f(r30) +/* 800AA690 000A75D0 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 800AA694 000A75D4 98 1E 00 1F */ stb r0, 0x1f(r30) +/* 800AA698 000A75D8 93 FE 00 18 */ stw r31, 0x18(r30) +/* 800AA69C 000A75DC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800AA6A0 000A75E0 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 800AA6A4 000A75E4 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 800AA6A8 000A75E8 38 21 00 30 */ addi r1, r1, 0x30 +/* 800AA6AC 000A75EC 7C 08 03 A6 */ mtlr r0 +/* 800AA6B0 000A75F0 4E 80 00 20 */ blr + +.global GXInitTexObjLOD +GXInitTexObjLOD: +/* 800AA6B4 000A75F4 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 800AA6B8 000A75F8 C0 02 8B 38 */ lfs f0, "@192"@sda21(r2) +/* 800AA6BC 000A75FC FC 03 00 40 */ fcmpo cr0, f3, f0 +/* 800AA6C0 000A7600 40 80 00 0C */ bge lbl_800AA6CC +/* 800AA6C4 000A7604 FC 60 00 90 */ fmr f3, f0 +/* 800AA6C8 000A7608 48 00 00 18 */ b lbl_800AA6E0 +lbl_800AA6CC: +/* 800AA6CC 000A760C C0 02 8B 3C */ lfs f0, "@193"@sda21(r2) +/* 800AA6D0 000A7610 FC 03 00 40 */ fcmpo cr0, f3, f0 +/* 800AA6D4 000A7614 4C 41 13 82 */ cror 2, 1, 2 +/* 800AA6D8 000A7618 40 82 00 08 */ bne lbl_800AA6E0 +/* 800AA6DC 000A761C C0 62 8B 40 */ lfs f3, "@194"@sda21(r2) +lbl_800AA6E0: +/* 800AA6E0 000A7620 C0 02 8B 44 */ lfs f0, "@195"@sda21(r2) +/* 800AA6E4 000A7624 2C 05 00 01 */ cmpwi r5, 1 +/* 800AA6E8 000A7628 80 03 00 00 */ lwz r0, 0(r3) +/* 800AA6EC 000A762C EC 00 00 F2 */ fmuls f0, f0, f3 +/* 800AA6F0 000A7630 54 05 05 DC */ rlwinm r5, r0, 0, 0x17, 0xe +/* 800AA6F4 000A7634 FC 00 00 1E */ fctiwz f0, f0 +/* 800AA6F8 000A7638 D8 01 00 30 */ stfd f0, 0x30(r1) +/* 800AA6FC 000A763C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800AA700 000A7640 50 05 4B EC */ rlwimi r5, r0, 9, 0xf, 0x16 +/* 800AA704 000A7644 90 A3 00 00 */ stw r5, 0(r3) +/* 800AA708 000A7648 40 82 00 0C */ bne lbl_800AA714 +/* 800AA70C 000A764C 38 A0 00 01 */ li r5, 1 +/* 800AA710 000A7650 48 00 00 08 */ b lbl_800AA718 +lbl_800AA714: +/* 800AA714 000A7654 38 A0 00 00 */ li r5, 0 +lbl_800AA718: +/* 800AA718 000A7658 81 23 00 00 */ lwz r9, 0(r3) +/* 800AA71C 000A765C 54 E0 06 3F */ clrlwi. r0, r7, 0x18 +/* 800AA720 000A7660 54 A5 20 36 */ slwi r5, r5, 4 +/* 800AA724 000A7664 55 27 07 34 */ rlwinm r7, r9, 0, 0x1c, 0x1a +/* 800AA728 000A7668 7C E5 2B 78 */ or r5, r7, r5 +/* 800AA72C 000A766C 90 A3 00 00 */ stw r5, 0(r3) +/* 800AA730 000A7670 38 AD 82 E0 */ addi r5, r13, GX2HWFiltConv@sda21 +/* 800AA734 000A7674 7C 05 20 AE */ lbzx r0, r5, r4 +/* 800AA738 000A7678 80 E3 00 00 */ lwz r7, 0(r3) +/* 800AA73C 000A767C 54 00 28 34 */ slwi r0, r0, 5 +/* 800AA740 000A7680 54 E4 06 EE */ rlwinm r4, r7, 0, 0x1b, 0x17 +/* 800AA744 000A7684 7C 80 03 78 */ or r0, r4, r0 +/* 800AA748 000A7688 90 03 00 00 */ stw r0, 0(r3) +/* 800AA74C 000A768C 41 82 00 0C */ beq lbl_800AA758 +/* 800AA750 000A7690 38 00 00 00 */ li r0, 0 +/* 800AA754 000A7694 48 00 00 08 */ b lbl_800AA75C +lbl_800AA758: +/* 800AA758 000A7698 38 00 00 01 */ li r0, 1 +lbl_800AA75C: +/* 800AA75C 000A769C 80 83 00 00 */ lwz r4, 0(r3) +/* 800AA760 000A76A0 54 00 40 2E */ slwi r0, r0, 8 +/* 800AA764 000A76A4 54 84 06 2C */ rlwinm r4, r4, 0, 0x18, 0x16 +/* 800AA768 000A76A8 7C 80 03 78 */ or r0, r4, r0 +/* 800AA76C 000A76AC 90 03 00 00 */ stw r0, 0(r3) +/* 800AA770 000A76B0 55 04 98 18 */ slwi r4, r8, 0x13 +/* 800AA774 000A76B4 54 C0 A8 D4 */ rlwinm r0, r6, 0x15, 3, 0xa +/* 800AA778 000A76B8 80 A3 00 00 */ lwz r5, 0(r3) +/* 800AA77C 000A76BC 54 A5 03 DA */ rlwinm r5, r5, 0, 0xf, 0xd +/* 800AA780 000A76C0 90 A3 00 00 */ stw r5, 0(r3) +/* 800AA784 000A76C4 80 A3 00 00 */ lwz r5, 0(r3) +/* 800AA788 000A76C8 54 A5 03 98 */ rlwinm r5, r5, 0, 0xe, 0xc +/* 800AA78C 000A76CC 90 A3 00 00 */ stw r5, 0(r3) +/* 800AA790 000A76D0 80 A3 00 00 */ lwz r5, 0(r3) +/* 800AA794 000A76D4 54 A5 03 54 */ rlwinm r5, r5, 0, 0xd, 0xa +/* 800AA798 000A76D8 7C A4 23 78 */ or r4, r5, r4 +/* 800AA79C 000A76DC 90 83 00 00 */ stw r4, 0(r3) +/* 800AA7A0 000A76E0 80 83 00 00 */ lwz r4, 0(r3) +/* 800AA7A4 000A76E4 54 84 02 D2 */ rlwinm r4, r4, 0, 0xb, 9 +/* 800AA7A8 000A76E8 7C 80 03 78 */ or r0, r4, r0 +/* 800AA7AC 000A76EC 90 03 00 00 */ stw r0, 0(r3) +/* 800AA7B0 000A76F0 C0 02 8B 48 */ lfs f0, "@196"@sda21(r2) +/* 800AA7B4 000A76F4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 800AA7B8 000A76F8 40 80 00 0C */ bge lbl_800AA7C4 +/* 800AA7BC 000A76FC FC 20 00 90 */ fmr f1, f0 +/* 800AA7C0 000A7700 48 00 00 14 */ b lbl_800AA7D4 +lbl_800AA7C4: +/* 800AA7C4 000A7704 C0 02 8B 4C */ lfs f0, "@197"@sda21(r2) +/* 800AA7C8 000A7708 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 800AA7CC 000A770C 40 81 00 08 */ ble lbl_800AA7D4 +/* 800AA7D0 000A7710 FC 20 00 90 */ fmr f1, f0 +lbl_800AA7D4: +/* 800AA7D4 000A7714 C0 62 8B 28 */ lfs f3, "@164"@sda21(r2) +/* 800AA7D8 000A7718 C0 02 8B 48 */ lfs f0, "@196"@sda21(r2) +/* 800AA7DC 000A771C EC 23 00 72 */ fmuls f1, f3, f1 +/* 800AA7E0 000A7720 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 800AA7E4 000A7724 FC 20 08 1E */ fctiwz f1, f1 +/* 800AA7E8 000A7728 D8 21 00 30 */ stfd f1, 0x30(r1) +/* 800AA7EC 000A772C 80 81 00 34 */ lwz r4, 0x34(r1) +/* 800AA7F0 000A7730 40 80 00 0C */ bge lbl_800AA7FC +/* 800AA7F4 000A7734 FC 40 00 90 */ fmr f2, f0 +/* 800AA7F8 000A7738 48 00 00 14 */ b lbl_800AA80C +lbl_800AA7FC: +/* 800AA7FC 000A773C C0 02 8B 4C */ lfs f0, "@197"@sda21(r2) +/* 800AA800 000A7740 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 800AA804 000A7744 40 81 00 08 */ ble lbl_800AA80C +/* 800AA808 000A7748 FC 40 00 90 */ fmr f2, f0 +lbl_800AA80C: +/* 800AA80C 000A774C 80 03 00 04 */ lwz r0, 4(r3) +/* 800AA810 000A7750 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17 +/* 800AA814 000A7754 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f +/* 800AA818 000A7758 90 03 00 04 */ stw r0, 4(r3) +/* 800AA81C 000A775C C0 02 8B 28 */ lfs f0, "@164"@sda21(r2) +/* 800AA820 000A7760 80 03 00 04 */ lwz r0, 4(r3) +/* 800AA824 000A7764 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 800AA828 000A7768 54 04 06 1E */ rlwinm r4, r0, 0, 0x18, 0xf +/* 800AA82C 000A776C FC 00 00 1E */ fctiwz f0, f0 +/* 800AA830 000A7770 D8 01 00 30 */ stfd f0, 0x30(r1) +/* 800AA834 000A7774 80 01 00 34 */ lwz r0, 0x34(r1) +/* 800AA838 000A7778 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17 +/* 800AA83C 000A777C 90 83 00 04 */ stw r4, 4(r3) +/* 800AA840 000A7780 38 21 00 38 */ addi r1, r1, 0x38 +/* 800AA844 000A7784 4E 80 00 20 */ blr + +.global GXGetTexObjAll +GXGetTexObjAll: +/* 800AA848 000A7788 80 03 00 0C */ lwz r0, 0xc(r3) +/* 800AA84C 000A778C 54 00 29 B4 */ rlwinm r0, r0, 5, 6, 0x1a +/* 800AA850 000A7790 90 04 00 00 */ stw r0, 0(r4) +/* 800AA854 000A7794 80 03 00 08 */ lwz r0, 8(r3) +/* 800AA858 000A7798 54 04 05 BE */ clrlwi r4, r0, 0x16 +/* 800AA85C 000A779C 38 04 00 01 */ addi r0, r4, 1 +/* 800AA860 000A77A0 B0 05 00 00 */ sth r0, 0(r5) +/* 800AA864 000A77A4 80 03 00 08 */ lwz r0, 8(r3) +/* 800AA868 000A77A8 54 04 B5 BE */ rlwinm r4, r0, 0x16, 0x16, 0x1f +/* 800AA86C 000A77AC 38 04 00 01 */ addi r0, r4, 1 +/* 800AA870 000A77B0 B0 06 00 00 */ sth r0, 0(r6) +/* 800AA874 000A77B4 80 03 00 14 */ lwz r0, 0x14(r3) +/* 800AA878 000A77B8 90 07 00 00 */ stw r0, 0(r7) +/* 800AA87C 000A77BC 80 03 00 00 */ lwz r0, 0(r3) +/* 800AA880 000A77C0 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 800AA884 000A77C4 90 08 00 00 */ stw r0, 0(r8) +/* 800AA888 000A77C8 80 03 00 00 */ lwz r0, 0(r3) +/* 800AA88C 000A77CC 54 00 F7 BE */ rlwinm r0, r0, 0x1e, 0x1e, 0x1f +/* 800AA890 000A77D0 90 09 00 00 */ stw r0, 0(r9) +/* 800AA894 000A77D4 88 03 00 1F */ lbz r0, 0x1f(r3) +/* 800AA898 000A77D8 54 03 07 FE */ clrlwi r3, r0, 0x1f +/* 800AA89C 000A77DC 38 03 FF FF */ addi r0, r3, -1 +/* 800AA8A0 000A77E0 7C 00 00 34 */ cntlzw r0, r0 +/* 800AA8A4 000A77E4 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f +/* 800AA8A8 000A77E8 98 0A 00 00 */ stb r0, 0(r10) +/* 800AA8AC 000A77EC 4E 80 00 20 */ blr + +.global GXGetTexObjWidth +GXGetTexObjWidth: +/* 800AA8B0 000A77F0 80 03 00 08 */ lwz r0, 8(r3) +/* 800AA8B4 000A77F4 54 03 05 BE */ clrlwi r3, r0, 0x16 +/* 800AA8B8 000A77F8 38 63 00 01 */ addi r3, r3, 1 +/* 800AA8BC 000A77FC 4E 80 00 20 */ blr + +.global GXGetTexObjHeight +GXGetTexObjHeight: +/* 800AA8C0 000A7800 80 03 00 08 */ lwz r0, 8(r3) +/* 800AA8C4 000A7804 54 03 B5 BE */ rlwinm r3, r0, 0x16, 0x16, 0x1f +/* 800AA8C8 000A7808 38 63 00 01 */ addi r3, r3, 1 +/* 800AA8CC 000A780C 4E 80 00 20 */ blr + +.global GXGetTexObjFmt +GXGetTexObjFmt: +/* 800AA8D0 000A7810 80 63 00 14 */ lwz r3, 0x14(r3) +/* 800AA8D4 000A7814 4E 80 00 20 */ blr + +.global GXLoadTexObjPreLoaded +GXLoadTexObjPreLoaded: +/* 800AA8D8 000A7818 7C 08 02 A6 */ mflr r0 +/* 800AA8DC 000A781C 38 ED 80 48 */ addi r7, r13, GXTexImage0Ids@sda21 +/* 800AA8E0 000A7820 90 01 00 04 */ stw r0, 4(r1) +/* 800AA8E4 000A7824 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800AA8E8 000A7828 93 E1 00 24 */ stw r31, 0x24(r1) +/* 800AA8EC 000A782C 3F E0 CC 01 */ lis r31, 0xCC008000@ha +/* 800AA8F0 000A7830 93 C1 00 20 */ stw r30, 0x20(r1) +/* 800AA8F4 000A7834 3B C0 00 61 */ li r30, 0x61 +/* 800AA8F8 000A7838 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 800AA8FC 000A783C 3B A5 00 00 */ addi r29, r5, 0 +/* 800AA900 000A7840 38 AD 80 58 */ addi r5, r13, GXTexImage2Ids@sda21 +/* 800AA904 000A7844 93 81 00 18 */ stw r28, 0x18(r1) +/* 800AA908 000A7848 7C 7C 1B 78 */ mr r28, r3 +/* 800AA90C 000A784C 80 C3 00 00 */ lwz r6, 0(r3) +/* 800AA910 000A7850 38 6D 80 38 */ addi r3, r13, GXTexMode0Ids@sda21 +/* 800AA914 000A7854 7C 03 E8 AE */ lbzx r0, r3, r29 +/* 800AA918 000A7858 38 6D 80 40 */ addi r3, r13, GXTexMode1Ids@sda21 +/* 800AA91C 000A785C 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AA920 000A7860 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f +/* 800AA924 000A7864 90 1C 00 00 */ stw r0, 0(r28) +/* 800AA928 000A7868 38 CD 80 50 */ addi r6, r13, GXTexImage1Ids@sda21 +/* 800AA92C 000A786C 7C 03 E8 AE */ lbzx r0, r3, r29 +/* 800AA930 000A7870 38 6D 80 60 */ addi r3, r13, GXTexImage3Ids@sda21 +/* 800AA934 000A7874 81 1C 00 04 */ lwz r8, 4(r28) +/* 800AA938 000A7878 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AA93C 000A787C 51 00 02 3E */ rlwimi r0, r8, 0, 8, 0x1f +/* 800AA940 000A7880 90 1C 00 04 */ stw r0, 4(r28) +/* 800AA944 000A7884 7C 07 E8 AE */ lbzx r0, r7, r29 +/* 800AA948 000A7888 81 1C 00 08 */ lwz r8, 8(r28) +/* 800AA94C 000A788C 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AA950 000A7890 51 00 02 3E */ rlwimi r0, r8, 0, 8, 0x1f +/* 800AA954 000A7894 90 1C 00 08 */ stw r0, 8(r28) +/* 800AA958 000A7898 7C 06 E8 AE */ lbzx r0, r6, r29 +/* 800AA95C 000A789C 80 E4 00 00 */ lwz r7, 0(r4) +/* 800AA960 000A78A0 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AA964 000A78A4 50 E0 02 3E */ rlwimi r0, r7, 0, 8, 0x1f +/* 800AA968 000A78A8 90 04 00 00 */ stw r0, 0(r4) +/* 800AA96C 000A78AC 7C 05 E8 AE */ lbzx r0, r5, r29 +/* 800AA970 000A78B0 80 C4 00 04 */ lwz r6, 4(r4) +/* 800AA974 000A78B4 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AA978 000A78B8 50 C0 02 3E */ rlwimi r0, r6, 0, 8, 0x1f +/* 800AA97C 000A78BC 90 04 00 04 */ stw r0, 4(r4) +/* 800AA980 000A78C0 7C 03 E8 AE */ lbzx r0, r3, r29 +/* 800AA984 000A78C4 80 BC 00 0C */ lwz r5, 0xc(r28) +/* 800AA988 000A78C8 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AA98C 000A78CC 50 A0 02 3E */ rlwimi r0, r5, 0, 8, 0x1f +/* 800AA990 000A78D0 90 1C 00 0C */ stw r0, 0xc(r28) +/* 800AA994 000A78D4 9B DF 80 00 */ stb r30, 0xCC008000@l(r31) +/* 800AA998 000A78D8 80 1C 00 00 */ lwz r0, 0(r28) +/* 800AA99C 000A78DC 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800AA9A0 000A78E0 9B DF 80 00 */ stb r30, -0x8000(r31) +/* 800AA9A4 000A78E4 80 1C 00 04 */ lwz r0, 4(r28) +/* 800AA9A8 000A78E8 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800AA9AC 000A78EC 9B DF 80 00 */ stb r30, -0x8000(r31) +/* 800AA9B0 000A78F0 80 1C 00 08 */ lwz r0, 8(r28) +/* 800AA9B4 000A78F4 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800AA9B8 000A78F8 9B DF 80 00 */ stb r30, -0x8000(r31) +/* 800AA9BC 000A78FC 80 04 00 00 */ lwz r0, 0(r4) +/* 800AA9C0 000A7900 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800AA9C4 000A7904 9B DF 80 00 */ stb r30, -0x8000(r31) +/* 800AA9C8 000A7908 80 04 00 04 */ lwz r0, 4(r4) +/* 800AA9CC 000A790C 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800AA9D0 000A7910 9B DF 80 00 */ stb r30, -0x8000(r31) +/* 800AA9D4 000A7914 80 1C 00 0C */ lwz r0, 0xc(r28) +/* 800AA9D8 000A7918 90 1F 80 00 */ stw r0, -0x8000(r31) +/* 800AA9DC 000A791C 88 1C 00 1F */ lbz r0, 0x1f(r28) +/* 800AA9E0 000A7920 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 800AA9E4 000A7924 40 82 00 3C */ bne lbl_800AAA20 +/* 800AA9E8 000A7928 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AA9EC 000A792C 80 7C 00 18 */ lwz r3, 0x18(r28) +/* 800AA9F0 000A7930 81 84 04 14 */ lwz r12, 0x414(r4) +/* 800AA9F4 000A7934 7D 88 03 A6 */ mtlr r12 +/* 800AA9F8 000A7938 4E 80 00 21 */ blrl +/* 800AA9FC 000A793C 38 8D 80 68 */ addi r4, r13, GXTexTlutIds@sda21 +/* 800AAA00 000A7940 80 A3 00 04 */ lwz r5, 4(r3) +/* 800AAA04 000A7944 7C 04 E8 AE */ lbzx r0, r4, r29 +/* 800AAA08 000A7948 54 00 C0 0E */ slwi r0, r0, 0x18 +/* 800AAA0C 000A794C 50 A0 02 3E */ rlwimi r0, r5, 0, 8, 0x1f +/* 800AAA10 000A7950 90 03 00 04 */ stw r0, 4(r3) +/* 800AAA14 000A7954 9B DF 80 00 */ stb r30, -0x8000(r31) +/* 800AAA18 000A7958 80 03 00 04 */ lwz r0, 4(r3) +/* 800AAA1C 000A795C 90 1F 80 00 */ stw r0, -0x8000(r31) +lbl_800AAA20: +/* 800AAA20 000A7960 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAA24 000A7964 57 A5 10 3A */ slwi r5, r29, 2 +/* 800AAA28 000A7968 80 9C 00 08 */ lwz r4, 8(r28) +/* 800AAA2C 000A796C 38 00 00 00 */ li r0, 0 +/* 800AAA30 000A7970 7C 63 2A 14 */ add r3, r3, r5 +/* 800AAA34 000A7974 90 83 04 5C */ stw r4, 0x45c(r3) +/* 800AAA38 000A7978 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAA3C 000A797C 80 9C 00 00 */ lwz r4, 0(r28) +/* 800AAA40 000A7980 7C 63 2A 14 */ add r3, r3, r5 +/* 800AAA44 000A7984 90 83 04 7C */ stw r4, 0x47c(r3) +/* 800AAA48 000A7988 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AAA4C 000A798C 80 64 04 F4 */ lwz r3, 0x4f4(r4) +/* 800AAA50 000A7990 60 63 00 01 */ ori r3, r3, 1 +/* 800AAA54 000A7994 90 64 04 F4 */ stw r3, 0x4f4(r4) +/* 800AAA58 000A7998 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAA5C 000A799C B0 03 00 02 */ sth r0, 2(r3) +/* 800AAA60 000A79A0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 800AAA64 000A79A4 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 800AAA68 000A79A8 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 800AAA6C 000A79AC 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 800AAA70 000A79B0 83 81 00 18 */ lwz r28, 0x18(r1) +/* 800AAA74 000A79B4 38 21 00 28 */ addi r1, r1, 0x28 +/* 800AAA78 000A79B8 7C 08 03 A6 */ mtlr r0 +/* 800AAA7C 000A79BC 4E 80 00 20 */ blr + +.global GXLoadTexObj +GXLoadTexObj: +/* 800AAA80 000A79C0 7C 08 02 A6 */ mflr r0 +/* 800AAA84 000A79C4 90 01 00 04 */ stw r0, 4(r1) +/* 800AAA88 000A79C8 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800AAA8C 000A79CC 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800AAA90 000A79D0 3B E4 00 00 */ addi r31, r4, 0 +/* 800AAA94 000A79D4 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800AAA98 000A79D8 3B C3 00 00 */ addi r30, r3, 0 +/* 800AAA9C 000A79DC 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAAA0 000A79E0 81 85 04 10 */ lwz r12, 0x410(r5) +/* 800AAAA4 000A79E4 7D 88 03 A6 */ mtlr r12 +/* 800AAAA8 000A79E8 4E 80 00 21 */ blrl +/* 800AAAAC 000A79EC 38 83 00 00 */ addi r4, r3, 0 +/* 800AAAB0 000A79F0 38 7E 00 00 */ addi r3, r30, 0 +/* 800AAAB4 000A79F4 38 BF 00 00 */ addi r5, r31, 0 +/* 800AAAB8 000A79F8 4B FF FE 21 */ bl GXLoadTexObjPreLoaded +/* 800AAABC 000A79FC 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 800AAAC0 000A7A00 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800AAAC4 000A7A04 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800AAAC8 000A7A08 38 21 00 18 */ addi r1, r1, 0x18 +/* 800AAACC 000A7A0C 7C 08 03 A6 */ mtlr r0 +/* 800AAAD0 000A7A10 4E 80 00 20 */ blr + +.global GXInitTlutObj +GXInitTlutObj: +/* 800AAAD4 000A7A14 38 00 00 00 */ li r0, 0 +/* 800AAAD8 000A7A18 90 03 00 00 */ stw r0, 0(r3) +/* 800AAADC 000A7A1C 54 A5 50 2A */ slwi r5, r5, 0xa +/* 800AAAE0 000A7A20 54 80 D9 FE */ rlwinm r0, r4, 0x1b, 7, 0x1f +/* 800AAAE4 000A7A24 80 E3 00 00 */ lwz r7, 0(r3) +/* 800AAAE8 000A7A28 54 E4 05 A6 */ rlwinm r4, r7, 0, 0x16, 0x13 +/* 800AAAEC 000A7A2C 7C 84 2B 78 */ or r4, r4, r5 +/* 800AAAF0 000A7A30 90 83 00 00 */ stw r4, 0(r3) +/* 800AAAF4 000A7A34 80 83 00 04 */ lwz r4, 4(r3) +/* 800AAAF8 000A7A38 54 84 00 14 */ rlwinm r4, r4, 0, 0, 0xa +/* 800AAAFC 000A7A3C 7C 80 03 78 */ or r0, r4, r0 +/* 800AAB00 000A7A40 90 03 00 04 */ stw r0, 4(r3) +/* 800AAB04 000A7A44 80 03 00 04 */ lwz r0, 4(r3) +/* 800AAB08 000A7A48 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800AAB0C 000A7A4C 64 00 64 00 */ oris r0, r0, 0x6400 +/* 800AAB10 000A7A50 90 03 00 04 */ stw r0, 4(r3) +/* 800AAB14 000A7A54 B0 C3 00 08 */ sth r6, 8(r3) +/* 800AAB18 000A7A58 4E 80 00 20 */ blr + +.global GXLoadTlut +GXLoadTlut: +/* 800AAB1C 000A7A5C 7C 08 02 A6 */ mflr r0 +/* 800AAB20 000A7A60 90 01 00 04 */ stw r0, 4(r1) +/* 800AAB24 000A7A64 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 800AAB28 000A7A68 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 800AAB2C 000A7A6C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 800AAB30 000A7A70 7C 7E 1B 78 */ mr r30, r3 +/* 800AAB34 000A7A74 38 64 00 00 */ addi r3, r4, 0 +/* 800AAB38 000A7A78 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAB3C 000A7A7C 81 85 04 14 */ lwz r12, 0x414(r5) +/* 800AAB40 000A7A80 7D 88 03 A6 */ mtlr r12 +/* 800AAB44 000A7A84 4E 80 00 21 */ blrl +/* 800AAB48 000A7A88 7C 7F 1B 78 */ mr r31, r3 +/* 800AAB4C 000A7A8C 48 00 0E 99 */ bl __GXFlushTextureState +/* 800AAB50 000A7A90 38 80 00 61 */ li r4, 0x61 +/* 800AAB54 000A7A94 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AAB58 000A7A98 98 83 80 00 */ stb r4, 0xCC008000@l(r3) +/* 800AAB5C 000A7A9C 80 1E 00 04 */ lwz r0, 4(r30) +/* 800AAB60 000A7AA0 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800AAB64 000A7AA4 98 83 80 00 */ stb r4, -0x8000(r3) +/* 800AAB68 000A7AA8 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AAB6C 000A7AAC 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800AAB70 000A7AB0 48 00 0E 75 */ bl __GXFlushTextureState +/* 800AAB74 000A7AB4 80 1F 00 00 */ lwz r0, 0(r31) +/* 800AAB78 000A7AB8 80 7E 00 00 */ lwz r3, 0(r30) +/* 800AAB7C 000A7ABC 54 00 05 BE */ clrlwi r0, r0, 0x16 +/* 800AAB80 000A7AC0 50 60 00 2A */ rlwimi r0, r3, 0, 0, 0x15 +/* 800AAB84 000A7AC4 90 1E 00 00 */ stw r0, 0(r30) +/* 800AAB88 000A7AC8 80 7E 00 00 */ lwz r3, 0(r30) +/* 800AAB8C 000A7ACC 80 1E 00 04 */ lwz r0, 4(r30) +/* 800AAB90 000A7AD0 90 7F 00 04 */ stw r3, 4(r31) +/* 800AAB94 000A7AD4 90 1F 00 08 */ stw r0, 8(r31) +/* 800AAB98 000A7AD8 80 1E 00 08 */ lwz r0, 8(r30) +/* 800AAB9C 000A7ADC 90 1F 00 0C */ stw r0, 0xc(r31) +/* 800AABA0 000A7AE0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 800AABA4 000A7AE4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 800AABA8 000A7AE8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 800AABAC 000A7AEC 38 21 00 20 */ addi r1, r1, 0x20 +/* 800AABB0 000A7AF0 7C 08 03 A6 */ mtlr r0 +/* 800AABB4 000A7AF4 4E 80 00 20 */ blr + +.global GXInitTexCacheRegion +GXInitTexCacheRegion: +/* 800AABB8 000A7AF8 2C 06 00 01 */ cmpwi r6, 1 +/* 800AABBC 000A7AFC 41 82 00 28 */ beq lbl_800AABE4 +/* 800AABC0 000A7B00 40 80 00 10 */ bge lbl_800AABD0 +/* 800AABC4 000A7B04 2C 06 00 00 */ cmpwi r6, 0 +/* 800AABC8 000A7B08 40 80 00 14 */ bge lbl_800AABDC +/* 800AABCC 000A7B0C 48 00 00 24 */ b lbl_800AABF0 +lbl_800AABD0: +/* 800AABD0 000A7B10 2C 06 00 03 */ cmpwi r6, 3 +/* 800AABD4 000A7B14 40 80 00 1C */ bge lbl_800AABF0 +/* 800AABD8 000A7B18 48 00 00 14 */ b lbl_800AABEC +lbl_800AABDC: +/* 800AABDC 000A7B1C 39 40 00 03 */ li r10, 3 +/* 800AABE0 000A7B20 48 00 00 10 */ b lbl_800AABF0 +lbl_800AABE4: +/* 800AABE4 000A7B24 39 40 00 04 */ li r10, 4 +/* 800AABE8 000A7B28 48 00 00 08 */ b lbl_800AABF0 +lbl_800AABEC: +/* 800AABEC 000A7B2C 39 40 00 05 */ li r10, 5 +lbl_800AABF0: +/* 800AABF0 000A7B30 38 00 00 00 */ li r0, 0 +/* 800AABF4 000A7B34 90 03 00 00 */ stw r0, 0(r3) +/* 800AABF8 000A7B38 54 A6 D9 7E */ srwi r6, r5, 5 +/* 800AABFC 000A7B3C 55 45 78 20 */ slwi r5, r10, 0xf +/* 800AAC00 000A7B40 81 23 00 00 */ lwz r9, 0(r3) +/* 800AAC04 000A7B44 55 40 90 1A */ slwi r0, r10, 0x12 +/* 800AAC08 000A7B48 2C 08 00 02 */ cmpwi r8, 2 +/* 800AAC0C 000A7B4C 55 29 00 20 */ rlwinm r9, r9, 0, 0, 0x10 +/* 800AAC10 000A7B50 7D 26 33 78 */ or r6, r9, r6 +/* 800AAC14 000A7B54 90 C3 00 00 */ stw r6, 0(r3) +/* 800AAC18 000A7B58 80 C3 00 00 */ lwz r6, 0(r3) +/* 800AAC1C 000A7B5C 54 C6 04 5A */ rlwinm r6, r6, 0, 0x11, 0xd +/* 800AAC20 000A7B60 7C C5 2B 78 */ or r5, r6, r5 +/* 800AAC24 000A7B64 90 A3 00 00 */ stw r5, 0(r3) +/* 800AAC28 000A7B68 80 A3 00 00 */ lwz r5, 0(r3) +/* 800AAC2C 000A7B6C 54 A5 03 94 */ rlwinm r5, r5, 0, 0xe, 0xa +/* 800AAC30 000A7B70 7C A0 03 78 */ or r0, r5, r0 +/* 800AAC34 000A7B74 90 03 00 00 */ stw r0, 0(r3) +/* 800AAC38 000A7B78 80 03 00 00 */ lwz r0, 0(r3) +/* 800AAC3C 000A7B7C 54 00 02 D2 */ rlwinm r0, r0, 0, 0xb, 9 +/* 800AAC40 000A7B80 90 03 00 00 */ stw r0, 0(r3) +/* 800AAC44 000A7B84 41 82 00 34 */ beq lbl_800AAC78 +/* 800AAC48 000A7B88 40 80 00 14 */ bge lbl_800AAC5C +/* 800AAC4C 000A7B8C 2C 08 00 00 */ cmpwi r8, 0 +/* 800AAC50 000A7B90 41 82 00 18 */ beq lbl_800AAC68 +/* 800AAC54 000A7B94 40 80 00 1C */ bge lbl_800AAC70 +/* 800AAC58 000A7B98 48 00 00 2C */ b lbl_800AAC84 +lbl_800AAC5C: +/* 800AAC5C 000A7B9C 2C 08 00 04 */ cmpwi r8, 4 +/* 800AAC60 000A7BA0 40 80 00 24 */ bge lbl_800AAC84 +/* 800AAC64 000A7BA4 48 00 00 1C */ b lbl_800AAC80 +lbl_800AAC68: +/* 800AAC68 000A7BA8 39 40 00 03 */ li r10, 3 +/* 800AAC6C 000A7BAC 48 00 00 18 */ b lbl_800AAC84 +lbl_800AAC70: +/* 800AAC70 000A7BB0 39 40 00 04 */ li r10, 4 +/* 800AAC74 000A7BB4 48 00 00 10 */ b lbl_800AAC84 +lbl_800AAC78: +/* 800AAC78 000A7BB8 39 40 00 05 */ li r10, 5 +/* 800AAC7C 000A7BBC 48 00 00 08 */ b lbl_800AAC84 +lbl_800AAC80: +/* 800AAC80 000A7BC0 39 40 00 00 */ li r10, 0 +lbl_800AAC84: +/* 800AAC84 000A7BC4 38 00 00 00 */ li r0, 0 +/* 800AAC88 000A7BC8 90 03 00 04 */ stw r0, 4(r3) +/* 800AAC8C 000A7BCC 54 E7 D9 7E */ srwi r7, r7, 5 +/* 800AAC90 000A7BD0 55 46 78 20 */ slwi r6, r10, 0xf +/* 800AAC94 000A7BD4 81 03 00 04 */ lwz r8, 4(r3) +/* 800AAC98 000A7BD8 55 45 90 1A */ slwi r5, r10, 0x12 +/* 800AAC9C 000A7BDC 38 00 00 01 */ li r0, 1 +/* 800AACA0 000A7BE0 55 08 00 20 */ rlwinm r8, r8, 0, 0, 0x10 +/* 800AACA4 000A7BE4 7D 07 3B 78 */ or r7, r8, r7 +/* 800AACA8 000A7BE8 90 E3 00 04 */ stw r7, 4(r3) +/* 800AACAC 000A7BEC 80 E3 00 04 */ lwz r7, 4(r3) +/* 800AACB0 000A7BF0 54 E7 04 5A */ rlwinm r7, r7, 0, 0x11, 0xd +/* 800AACB4 000A7BF4 7C E6 33 78 */ or r6, r7, r6 +/* 800AACB8 000A7BF8 90 C3 00 04 */ stw r6, 4(r3) +/* 800AACBC 000A7BFC 80 C3 00 04 */ lwz r6, 4(r3) +/* 800AACC0 000A7C00 54 C6 03 94 */ rlwinm r6, r6, 0, 0xe, 0xa +/* 800AACC4 000A7C04 7C C5 2B 78 */ or r5, r6, r5 +/* 800AACC8 000A7C08 90 A3 00 04 */ stw r5, 4(r3) +/* 800AACCC 000A7C0C 98 83 00 0C */ stb r4, 0xc(r3) +/* 800AACD0 000A7C10 98 03 00 0D */ stb r0, 0xd(r3) +/* 800AACD4 000A7C14 4E 80 00 20 */ blr + +.global GXInitTlutRegion +GXInitTlutRegion: +/* 800AACD8 000A7C18 38 00 00 00 */ li r0, 0 +/* 800AACDC 000A7C1C 90 03 00 00 */ stw r0, 0(r3) +/* 800AACE0 000A7C20 3C 04 FF F8 */ addis r0, r4, 0xfff8 +/* 800AACE4 000A7C24 54 04 BA 7E */ srwi r4, r0, 9 +/* 800AACE8 000A7C28 80 C3 00 00 */ lwz r6, 0(r3) +/* 800AACEC 000A7C2C 54 A0 50 2A */ slwi r0, r5, 0xa +/* 800AACF0 000A7C30 54 C5 00 2A */ rlwinm r5, r6, 0, 0, 0x15 +/* 800AACF4 000A7C34 7C A4 23 78 */ or r4, r5, r4 +/* 800AACF8 000A7C38 90 83 00 00 */ stw r4, 0(r3) +/* 800AACFC 000A7C3C 80 83 00 00 */ lwz r4, 0(r3) +/* 800AAD00 000A7C40 54 84 05 94 */ rlwinm r4, r4, 0, 0x16, 0xa +/* 800AAD04 000A7C44 7C 80 03 78 */ or r0, r4, r0 +/* 800AAD08 000A7C48 90 03 00 00 */ stw r0, 0(r3) +/* 800AAD0C 000A7C4C 80 03 00 00 */ lwz r0, 0(r3) +/* 800AAD10 000A7C50 54 00 02 3E */ clrlwi r0, r0, 8 +/* 800AAD14 000A7C54 64 00 65 00 */ oris r0, r0, 0x6500 +/* 800AAD18 000A7C58 90 03 00 00 */ stw r0, 0(r3) +/* 800AAD1C 000A7C5C 4E 80 00 20 */ blr + +.global GXInvalidateTexAll +GXInvalidateTexAll: +/* 800AAD20 000A7C60 7C 08 02 A6 */ mflr r0 +/* 800AAD24 000A7C64 90 01 00 04 */ stw r0, 4(r1) +/* 800AAD28 000A7C68 94 21 FF F8 */ stwu r1, -8(r1) +/* 800AAD2C 000A7C6C 48 00 0C B9 */ bl __GXFlushTextureState +/* 800AAD30 000A7C70 38 C0 00 61 */ li r6, 0x61 +/* 800AAD34 000A7C74 3C 60 66 00 */ lis r3, 0x66001000@ha +/* 800AAD38 000A7C78 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AAD3C 000A7C7C 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800AAD40 000A7C80 38 83 10 00 */ addi r4, r3, 0x66001000@l +/* 800AAD44 000A7C84 38 03 11 00 */ addi r0, r3, 0x1100 +/* 800AAD48 000A7C88 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800AAD4C 000A7C8C 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800AAD50 000A7C90 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AAD54 000A7C94 48 00 0C 91 */ bl __GXFlushTextureState +/* 800AAD58 000A7C98 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800AAD5C 000A7C9C 38 21 00 08 */ addi r1, r1, 8 +/* 800AAD60 000A7CA0 7C 08 03 A6 */ mtlr r0 +/* 800AAD64 000A7CA4 4E 80 00 20 */ blr + +.global GXSetTexRegionCallback +GXSetTexRegionCallback: +/* 800AAD68 000A7CA8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AAD6C 000A7CAC 84 04 04 10 */ lwzu r0, 0x410(r4) +/* 800AAD70 000A7CB0 90 64 00 00 */ stw r3, 0(r4) +/* 800AAD74 000A7CB4 7C 03 03 78 */ mr r3, r0 +/* 800AAD78 000A7CB8 4E 80 00 20 */ blr + +.global GXSetTlutRegionCallback +GXSetTlutRegionCallback: +/* 800AAD7C 000A7CBC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AAD80 000A7CC0 84 04 04 14 */ lwzu r0, 0x414(r4) +/* 800AAD84 000A7CC4 90 64 00 00 */ stw r3, 0(r4) +/* 800AAD88 000A7CC8 7C 03 03 78 */ mr r3, r0 +/* 800AAD8C 000A7CCC 4E 80 00 20 */ blr + +.global GXSetTexCoordScaleManually +GXSetTexCoordScaleManually: +/* 800AAD90 000A7CD0 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800AAD94 000A7CD4 38 00 00 01 */ li r0, 1 +/* 800AAD98 000A7CD8 54 84 06 3F */ clrlwi. r4, r4, 0x18 +/* 800AAD9C 000A7CDC 39 07 04 DC */ addi r8, r7, 0x4dc +/* 800AADA0 000A7CE0 80 E7 04 DC */ lwz r7, 0x4dc(r7) +/* 800AADA4 000A7CE4 7C 00 18 30 */ slw r0, r0, r3 +/* 800AADA8 000A7CE8 7C E7 00 78 */ andc r7, r7, r0 +/* 800AADAC 000A7CEC 7C 80 18 30 */ slw r0, r4, r3 +/* 800AADB0 000A7CF0 7C E0 03 78 */ or r0, r7, r0 +/* 800AADB4 000A7CF4 90 08 00 00 */ stw r0, 0(r8) +/* 800AADB8 000A7CF8 4D 82 00 20 */ beqlr +/* 800AADBC 000A7CFC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AADC0 000A7D00 54 68 10 3A */ slwi r8, r3, 2 +/* 800AADC4 000A7D04 38 05 FF FF */ addi r0, r5, -1 +/* 800AADC8 000A7D08 7C A4 42 14 */ add r5, r4, r8 +/* 800AADCC 000A7D0C 80 85 00 B8 */ lwz r4, 0xb8(r5) +/* 800AADD0 000A7D10 38 66 FF FF */ addi r3, r6, -1 +/* 800AADD4 000A7D14 38 E0 00 61 */ li r7, 0x61 +/* 800AADD8 000A7D18 54 84 00 1E */ rlwinm r4, r4, 0, 0, 0xf +/* 800AADDC 000A7D1C 50 04 04 3E */ rlwimi r4, r0, 0, 0x10, 0x1f +/* 800AADE0 000A7D20 90 85 00 B8 */ stw r4, 0xb8(r5) +/* 800AADE4 000A7D24 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800AADE8 000A7D28 38 00 00 00 */ li r0, 0 +/* 800AADEC 000A7D2C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AADF0 000A7D30 7C A4 42 14 */ add r5, r4, r8 +/* 800AADF4 000A7D34 80 85 00 D8 */ lwz r4, 0xd8(r5) +/* 800AADF8 000A7D38 54 84 00 1E */ rlwinm r4, r4, 0, 0, 0xf +/* 800AADFC 000A7D3C 50 64 04 3E */ rlwimi r4, r3, 0, 0x10, 0x1f +/* 800AAE00 000A7D40 90 85 00 D8 */ stw r4, 0xd8(r5) +/* 800AAE04 000A7D44 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAE08 000A7D48 98 E6 80 00 */ stb r7, 0xCC008000@l(r6) +/* 800AAE0C 000A7D4C 7C 85 42 14 */ add r4, r5, r8 +/* 800AAE10 000A7D50 80 64 00 B8 */ lwz r3, 0xb8(r4) +/* 800AAE14 000A7D54 90 66 80 00 */ stw r3, -0x8000(r6) +/* 800AAE18 000A7D58 98 E6 80 00 */ stb r7, -0x8000(r6) +/* 800AAE1C 000A7D5C 80 64 00 D8 */ lwz r3, 0xd8(r4) +/* 800AAE20 000A7D60 90 66 80 00 */ stw r3, -0x8000(r6) +/* 800AAE24 000A7D64 B0 05 00 02 */ sth r0, 2(r5) +/* 800AAE28 000A7D68 4E 80 00 20 */ blr + +.global GXSetTexCoordCylWrap +GXSetTexCoordCylWrap: +/* 800AAE2C 000A7D6C 80 0D 82 C8 */ lwz r0, gx@sda21(r13) +/* 800AAE30 000A7D70 54 68 10 3A */ slwi r8, r3, 2 +/* 800AAE34 000A7D74 54 84 89 DC */ rlwinm r4, r4, 0x11, 7, 0xe +/* 800AAE38 000A7D78 7C E0 42 14 */ add r7, r0, r8 +/* 800AAE3C 000A7D7C 80 C7 00 B8 */ lwz r6, 0xb8(r7) +/* 800AAE40 000A7D80 38 00 00 01 */ li r0, 1 +/* 800AAE44 000A7D84 7C 00 18 30 */ slw r0, r0, r3 +/* 800AAE48 000A7D88 54 C6 03 DA */ rlwinm r6, r6, 0, 0xf, 0xd +/* 800AAE4C 000A7D8C 7C C4 23 78 */ or r4, r6, r4 +/* 800AAE50 000A7D90 90 87 00 B8 */ stw r4, 0xb8(r7) +/* 800AAE54 000A7D94 54 A4 89 DC */ rlwinm r4, r5, 0x11, 7, 0xe +/* 800AAE58 000A7D98 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAE5C 000A7D9C 7C A3 42 14 */ add r5, r3, r8 +/* 800AAE60 000A7DA0 80 65 00 D8 */ lwz r3, 0xd8(r5) +/* 800AAE64 000A7DA4 54 63 03 DA */ rlwinm r3, r3, 0, 0xf, 0xd +/* 800AAE68 000A7DA8 7C 63 23 78 */ or r3, r3, r4 +/* 800AAE6C 000A7DAC 90 65 00 D8 */ stw r3, 0xd8(r5) +/* 800AAE70 000A7DB0 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800AAE74 000A7DB4 80 67 04 DC */ lwz r3, 0x4dc(r7) +/* 800AAE78 000A7DB8 7C 60 00 39 */ and. r0, r3, r0 +/* 800AAE7C 000A7DBC 4D 82 00 20 */ beqlr +/* 800AAE80 000A7DC0 38 C0 00 61 */ li r6, 0x61 +/* 800AAE84 000A7DC4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AAE88 000A7DC8 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800AAE8C 000A7DCC 7C 87 42 14 */ add r4, r7, r8 +/* 800AAE90 000A7DD0 38 00 00 00 */ li r0, 0 +/* 800AAE94 000A7DD4 80 64 00 B8 */ lwz r3, 0xb8(r4) +/* 800AAE98 000A7DD8 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800AAE9C 000A7DDC 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800AAEA0 000A7DE0 80 64 00 D8 */ lwz r3, 0xd8(r4) +/* 800AAEA4 000A7DE4 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800AAEA8 000A7DE8 B0 07 00 02 */ sth r0, 2(r7) +/* 800AAEAC 000A7DEC 4E 80 00 20 */ blr + +.global __SetSURegs +__SetSURegs: +/* 800AAEB0 000A7DF0 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAEB4 000A7DF4 54 80 10 3A */ slwi r0, r4, 2 +/* 800AAEB8 000A7DF8 54 69 10 3A */ slwi r9, r3, 2 +/* 800AAEBC 000A7DFC 7C 85 02 14 */ add r4, r5, r0 +/* 800AAEC0 000A7E00 7C 65 4A 14 */ add r3, r5, r9 +/* 800AAEC4 000A7E04 80 A3 04 5C */ lwz r5, 0x45c(r3) +/* 800AAEC8 000A7E08 38 E0 00 61 */ li r7, 0x61 +/* 800AAECC 000A7E0C 80 64 00 B8 */ lwz r3, 0xb8(r4) +/* 800AAED0 000A7E10 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800AAED4 000A7E14 54 63 00 1E */ rlwinm r3, r3, 0, 0, 0xf +/* 800AAED8 000A7E18 50 A3 05 BE */ rlwimi r3, r5, 0, 0x16, 0x1f +/* 800AAEDC 000A7E1C 90 64 00 B8 */ stw r3, 0xb8(r4) +/* 800AAEE0 000A7E20 38 60 00 00 */ li r3, 0 +/* 800AAEE4 000A7E24 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AAEE8 000A7E28 7D 04 02 14 */ add r8, r4, r0 +/* 800AAEEC 000A7E2C 80 88 00 D8 */ lwz r4, 0xd8(r8) +/* 800AAEF0 000A7E30 54 84 00 1E */ rlwinm r4, r4, 0, 0, 0xf +/* 800AAEF4 000A7E34 50 A4 B5 BE */ rlwimi r4, r5, 0x16, 0x16, 0x1f +/* 800AAEF8 000A7E38 90 88 00 D8 */ stw r4, 0xd8(r8) +/* 800AAEFC 000A7E3C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAF00 000A7E40 7C 85 4A 14 */ add r4, r5, r9 +/* 800AAF04 000A7E44 81 24 04 7C */ lwz r9, 0x47c(r4) +/* 800AAF08 000A7E48 7D 45 02 14 */ add r10, r5, r0 +/* 800AAF0C 000A7E4C 80 AA 00 B8 */ lwz r5, 0xb8(r10) +/* 800AAF10 000A7E50 55 24 F7 BE */ rlwinm r4, r9, 0x1e, 0x1e, 0x1f +/* 800AAF14 000A7E54 21 04 00 01 */ subfic r8, r4, 1 +/* 800AAF18 000A7E58 55 24 07 BE */ clrlwi r4, r9, 0x1e +/* 800AAF1C 000A7E5C 20 84 00 01 */ subfic r4, r4, 1 +/* 800AAF20 000A7E60 7C 84 00 34 */ cntlzw r4, r4 +/* 800AAF24 000A7E64 54 A5 04 1C */ rlwinm r5, r5, 0, 0x10, 0xe +/* 800AAF28 000A7E68 54 84 5A 1E */ rlwinm r4, r4, 0xb, 8, 0xf +/* 800AAF2C 000A7E6C 7C A4 23 78 */ or r4, r5, r4 +/* 800AAF30 000A7E70 90 8A 00 B8 */ stw r4, 0xb8(r10) +/* 800AAF34 000A7E74 7D 04 00 34 */ cntlzw r4, r8 +/* 800AAF38 000A7E78 54 84 5A 1E */ rlwinm r4, r4, 0xb, 8, 0xf +/* 800AAF3C 000A7E7C 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAF40 000A7E80 7D 05 02 14 */ add r8, r5, r0 +/* 800AAF44 000A7E84 80 A8 00 D8 */ lwz r5, 0xd8(r8) +/* 800AAF48 000A7E88 54 A5 04 1C */ rlwinm r5, r5, 0, 0x10, 0xe +/* 800AAF4C 000A7E8C 7C A4 23 78 */ or r4, r5, r4 +/* 800AAF50 000A7E90 90 88 00 D8 */ stw r4, 0xd8(r8) +/* 800AAF54 000A7E94 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AAF58 000A7E98 98 E6 80 00 */ stb r7, 0xCC008000@l(r6) +/* 800AAF5C 000A7E9C 7C 85 02 14 */ add r4, r5, r0 +/* 800AAF60 000A7EA0 80 04 00 B8 */ lwz r0, 0xb8(r4) +/* 800AAF64 000A7EA4 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800AAF68 000A7EA8 98 E6 80 00 */ stb r7, -0x8000(r6) +/* 800AAF6C 000A7EAC 80 04 00 D8 */ lwz r0, 0xd8(r4) +/* 800AAF70 000A7EB0 90 06 80 00 */ stw r0, -0x8000(r6) +/* 800AAF74 000A7EB4 B0 65 00 02 */ sth r3, 2(r5) +/* 800AAF78 000A7EB8 4E 80 00 20 */ blr + +.global __GXSetSUTexRegs +__GXSetSUTexRegs: +/* 800AAF7C 000A7EBC 7C 08 02 A6 */ mflr r0 +/* 800AAF80 000A7EC0 90 01 00 04 */ stw r0, 4(r1) +/* 800AAF84 000A7EC4 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 800AAF88 000A7EC8 BF 61 00 14 */ stmw r27, 0x14(r1) +/* 800AAF8C 000A7ECC 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAF90 000A7ED0 80 03 04 DC */ lwz r0, 0x4dc(r3) +/* 800AAF94 000A7ED4 28 00 00 FF */ cmplwi r0, 0xff +/* 800AAF98 000A7ED8 41 82 01 4C */ beq lbl_800AB0E4 +/* 800AAF9C 000A7EDC 80 03 02 04 */ lwz r0, 0x204(r3) +/* 800AAFA0 000A7EE0 3B E0 00 00 */ li r31, 0 +/* 800AAFA4 000A7EE4 54 03 B7 3E */ rlwinm r3, r0, 0x16, 0x1c, 0x1f +/* 800AAFA8 000A7EE8 3B C3 00 01 */ addi r30, r3, 1 +/* 800AAFAC 000A7EEC 54 1B 87 7E */ rlwinm r27, r0, 0x10, 0x1d, 0x1f +/* 800AAFB0 000A7EF0 48 00 00 A0 */ b lbl_800AB050 +lbl_800AAFB4: +/* 800AAFB4 000A7EF4 2C 1F 00 02 */ cmpwi r31, 2 +/* 800AAFB8 000A7EF8 41 82 00 4C */ beq lbl_800AB004 +/* 800AAFBC 000A7EFC 40 80 00 14 */ bge lbl_800AAFD0 +/* 800AAFC0 000A7F00 2C 1F 00 00 */ cmpwi r31, 0 +/* 800AAFC4 000A7F04 41 82 00 18 */ beq lbl_800AAFDC +/* 800AAFC8 000A7F08 40 80 00 28 */ bge lbl_800AAFF0 +/* 800AAFCC 000A7F0C 48 00 00 5C */ b lbl_800AB028 +lbl_800AAFD0: +/* 800AAFD0 000A7F10 2C 1F 00 04 */ cmpwi r31, 4 +/* 800AAFD4 000A7F14 40 80 00 54 */ bge lbl_800AB028 +/* 800AAFD8 000A7F18 48 00 00 40 */ b lbl_800AB018 +lbl_800AAFDC: +/* 800AAFDC 000A7F1C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAFE0 000A7F20 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AAFE4 000A7F24 54 1D 07 7E */ clrlwi r29, r0, 0x1d +/* 800AAFE8 000A7F28 54 1C EF 7E */ rlwinm r28, r0, 0x1d, 0x1d, 0x1f +/* 800AAFEC 000A7F2C 48 00 00 3C */ b lbl_800AB028 +lbl_800AAFF0: +/* 800AAFF0 000A7F30 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AAFF4 000A7F34 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AAFF8 000A7F38 54 1D D7 7E */ rlwinm r29, r0, 0x1a, 0x1d, 0x1f +/* 800AAFFC 000A7F3C 54 1C BF 7E */ rlwinm r28, r0, 0x17, 0x1d, 0x1f +/* 800AB000 000A7F40 48 00 00 28 */ b lbl_800AB028 +lbl_800AB004: +/* 800AB004 000A7F44 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB008 000A7F48 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AB00C 000A7F4C 54 1D A7 7E */ rlwinm r29, r0, 0x14, 0x1d, 0x1f +/* 800AB010 000A7F50 54 1C 8F 7E */ rlwinm r28, r0, 0x11, 0x1d, 0x1f +/* 800AB014 000A7F54 48 00 00 14 */ b lbl_800AB028 +lbl_800AB018: +/* 800AB018 000A7F58 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB01C 000A7F5C 80 03 01 20 */ lwz r0, 0x120(r3) +/* 800AB020 000A7F60 54 1D 77 7E */ rlwinm r29, r0, 0xe, 0x1d, 0x1f +/* 800AB024 000A7F64 54 1C 5F 7E */ rlwinm r28, r0, 0xb, 0x1d, 0x1f +lbl_800AB028: +/* 800AB028 000A7F68 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AB02C 000A7F6C 38 00 00 01 */ li r0, 1 +/* 800AB030 000A7F70 7C 00 E0 30 */ slw r0, r0, r28 +/* 800AB034 000A7F74 80 63 04 DC */ lwz r3, 0x4dc(r3) +/* 800AB038 000A7F78 7C 60 00 39 */ and. r0, r3, r0 +/* 800AB03C 000A7F7C 40 82 00 10 */ bne lbl_800AB04C +/* 800AB040 000A7F80 38 7D 00 00 */ addi r3, r29, 0 +/* 800AB044 000A7F84 38 9C 00 00 */ addi r4, r28, 0 +/* 800AB048 000A7F88 4B FF FE 69 */ bl __SetSURegs +lbl_800AB04C: +/* 800AB04C 000A7F8C 3B FF 00 01 */ addi r31, r31, 1 +lbl_800AB050: +/* 800AB050 000A7F90 7C 1F D8 40 */ cmplw r31, r27 +/* 800AB054 000A7F94 41 80 FF 60 */ blt lbl_800AAFB4 +/* 800AB058 000A7F98 3B E0 00 00 */ li r31, 0 +/* 800AB05C 000A7F9C 3B 7F 00 00 */ addi r27, r31, 0 +/* 800AB060 000A7FA0 48 00 00 7C */ b lbl_800AB0DC +lbl_800AB064: +/* 800AB064 000A7FA4 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AB068 000A7FA8 38 7B 04 9C */ addi r3, r27, 0x49c +/* 800AB06C 000A7FAC 57 E4 08 3A */ rlwinm r4, r31, 1, 0, 0x1d +/* 800AB070 000A7FB0 7C 65 18 2E */ lwzx r3, r5, r3 +/* 800AB074 000A7FB4 57 E0 07 FF */ clrlwi. r0, r31, 0x1f +/* 800AB078 000A7FB8 38 84 01 00 */ addi r4, r4, 0x100 +/* 800AB07C 000A7FBC 7C 85 22 14 */ add r4, r5, r4 +/* 800AB080 000A7FC0 54 7D 06 2C */ rlwinm r29, r3, 0, 0x18, 0x16 +/* 800AB084 000A7FC4 41 82 00 10 */ beq lbl_800AB094 +/* 800AB088 000A7FC8 80 04 00 00 */ lwz r0, 0(r4) +/* 800AB08C 000A7FCC 54 1C 8F 7E */ rlwinm r28, r0, 0x11, 0x1d, 0x1f +/* 800AB090 000A7FD0 48 00 00 0C */ b lbl_800AB09C +lbl_800AB094: +/* 800AB094 000A7FD4 80 04 00 00 */ lwz r0, 0(r4) +/* 800AB098 000A7FD8 54 1C EF 7E */ rlwinm r28, r0, 0x1d, 0x1d, 0x1f +lbl_800AB09C: +/* 800AB09C 000A7FDC 28 1D 00 FF */ cmplwi r29, 0xff +/* 800AB0A0 000A7FE0 41 82 00 34 */ beq lbl_800AB0D4 +/* 800AB0A4 000A7FE4 38 80 00 01 */ li r4, 1 +/* 800AB0A8 000A7FE8 80 65 04 DC */ lwz r3, 0x4dc(r5) +/* 800AB0AC 000A7FEC 7C 80 E0 30 */ slw r0, r4, r28 +/* 800AB0B0 000A7FF0 7C 60 00 39 */ and. r0, r3, r0 +/* 800AB0B4 000A7FF4 40 82 00 20 */ bne lbl_800AB0D4 +/* 800AB0B8 000A7FF8 80 65 04 E0 */ lwz r3, 0x4e0(r5) +/* 800AB0BC 000A7FFC 7C 80 F8 30 */ slw r0, r4, r31 +/* 800AB0C0 000A8000 7C 60 00 39 */ and. r0, r3, r0 +/* 800AB0C4 000A8004 41 82 00 10 */ beq lbl_800AB0D4 +/* 800AB0C8 000A8008 38 7D 00 00 */ addi r3, r29, 0 +/* 800AB0CC 000A800C 38 9C 00 00 */ addi r4, r28, 0 +/* 800AB0D0 000A8010 4B FF FD E1 */ bl __SetSURegs +lbl_800AB0D4: +/* 800AB0D4 000A8014 3B 7B 00 04 */ addi r27, r27, 4 +/* 800AB0D8 000A8018 3B FF 00 01 */ addi r31, r31, 1 +lbl_800AB0DC: +/* 800AB0DC 000A801C 7C 1F F0 40 */ cmplw r31, r30 +/* 800AB0E0 000A8020 41 80 FF 84 */ blt lbl_800AB064 +lbl_800AB0E4: +/* 800AB0E4 000A8024 BB 61 00 14 */ lmw r27, 0x14(r1) +/* 800AB0E8 000A8028 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 800AB0EC 000A802C 38 21 00 28 */ addi r1, r1, 0x28 +/* 800AB0F0 000A8030 7C 08 03 A6 */ mtlr r0 +/* 800AB0F4 000A8034 4E 80 00 20 */ blr + +.global __GXSetTmemConfig +__GXSetTmemConfig: +/* 800AB0F8 000A8038 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800AB0FC 000A803C 2C 03 00 01 */ cmpwi r3, 1 +/* 800AB100 000A8040 93 E1 00 14 */ stw r31, 0x14(r1) +/* 800AB104 000A8044 93 C1 00 10 */ stw r30, 0x10(r1) +/* 800AB108 000A8048 41 82 00 0C */ beq lbl_800AB114 +/* 800AB10C 000A804C 40 80 01 14 */ bge lbl_800AB220 +/* 800AB110 000A8050 48 00 01 10 */ b lbl_800AB220 +lbl_800AB114: +/* 800AB114 000A8054 38 00 00 61 */ li r0, 0x61 +/* 800AB118 000A8058 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AB11C 000A805C 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha +/* 800AB120 000A8060 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AB124 000A8064 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l +/* 800AB128 000A8068 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800AB12C 000A806C 3C 80 90 0E */ lis r4, 0x900DC000@ha +/* 800AB130 000A8070 3C E0 8D 0E */ lis r7, 0x8D0D8800@ha +/* 800AB134 000A8074 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB138 000A8078 38 84 C0 00 */ addi r4, r4, 0x900DC000@l +/* 800AB13C 000A807C 3C C0 91 0E */ lis r6, 0x910DC800@ha +/* 800AB140 000A8080 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800AB144 000A8084 3C A0 8E 0E */ lis r5, 0x8E0D9000@ha +/* 800AB148 000A8088 3C 80 92 0E */ lis r4, 0x920DD000@ha +/* 800AB14C 000A808C 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB150 000A8090 38 E7 88 00 */ addi r7, r7, 0x8D0D8800@l +/* 800AB154 000A8094 3F C0 8F 0E */ lis r30, 0x8F0D9800@ha +/* 800AB158 000A8098 90 E3 80 00 */ stw r7, -0x8000(r3) +/* 800AB15C 000A809C 3D 80 93 0E */ lis r12, 0x930DD800@ha +/* 800AB160 000A80A0 3D 60 AC 0E */ lis r11, 0xAC0DA000@ha +/* 800AB164 000A80A4 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB168 000A80A8 38 C6 C8 00 */ addi r6, r6, 0x910DC800@l +/* 800AB16C 000A80AC 3D 40 B0 0E */ lis r10, 0xB00DE000@ha +/* 800AB170 000A80B0 90 C3 80 00 */ stw r6, -0x8000(r3) +/* 800AB174 000A80B4 3D 20 AD 0E */ lis r9, 0xAD0DA800@ha +/* 800AB178 000A80B8 3D 00 B1 0E */ lis r8, 0xB10DE800@ha +/* 800AB17C 000A80BC 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB180 000A80C0 38 A5 90 00 */ addi r5, r5, 0x8E0D9000@l +/* 800AB184 000A80C4 3C E0 AE 0E */ lis r7, 0xAE0DB000@ha +/* 800AB188 000A80C8 90 A3 80 00 */ stw r5, -0x8000(r3) +/* 800AB18C 000A80CC 3C C0 B2 0E */ lis r6, 0xB20DF000@ha +/* 800AB190 000A80D0 3C A0 AF 0E */ lis r5, 0xAF0DB800@ha +/* 800AB194 000A80D4 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB198 000A80D8 3B E4 D0 00 */ addi r31, r4, 0x920DD000@l +/* 800AB19C 000A80DC 3C 80 B3 0E */ lis r4, 0xB30DF800@ha +/* 800AB1A0 000A80E0 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800AB1A4 000A80E4 3B DE 98 00 */ addi r30, r30, 0x8F0D9800@l +/* 800AB1A8 000A80E8 39 8C D8 00 */ addi r12, r12, 0x930DD800@l +/* 800AB1AC 000A80EC 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB1B0 000A80F0 39 6B A0 00 */ addi r11, r11, 0xAC0DA000@l +/* 800AB1B4 000A80F4 39 4A E0 00 */ addi r10, r10, 0xB00DE000@l +/* 800AB1B8 000A80F8 93 C3 80 00 */ stw r30, -0x8000(r3) +/* 800AB1BC 000A80FC 39 29 A8 00 */ addi r9, r9, 0xAD0DA800@l +/* 800AB1C0 000A8100 39 08 E8 00 */ addi r8, r8, 0xB10DE800@l +/* 800AB1C4 000A8104 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB1C8 000A8108 38 E7 B0 00 */ addi r7, r7, 0xAE0DB000@l +/* 800AB1CC 000A810C 38 C6 F0 00 */ addi r6, r6, 0xB20DF000@l +/* 800AB1D0 000A8110 91 83 80 00 */ stw r12, -0x8000(r3) +/* 800AB1D4 000A8114 38 A5 B8 00 */ addi r5, r5, 0xAF0DB800@l +/* 800AB1D8 000A8118 38 84 F8 00 */ addi r4, r4, 0xB30DF800@l +/* 800AB1DC 000A811C 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB1E0 000A8120 91 63 80 00 */ stw r11, -0x8000(r3) +/* 800AB1E4 000A8124 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB1E8 000A8128 91 43 80 00 */ stw r10, -0x8000(r3) +/* 800AB1EC 000A812C 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB1F0 000A8130 91 23 80 00 */ stw r9, -0x8000(r3) +/* 800AB1F4 000A8134 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB1F8 000A8138 91 03 80 00 */ stw r8, -0x8000(r3) +/* 800AB1FC 000A813C 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB200 000A8140 90 E3 80 00 */ stw r7, -0x8000(r3) +/* 800AB204 000A8144 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB208 000A8148 90 C3 80 00 */ stw r6, -0x8000(r3) +/* 800AB20C 000A814C 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB210 000A8150 90 A3 80 00 */ stw r5, -0x8000(r3) +/* 800AB214 000A8154 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB218 000A8158 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800AB21C 000A815C 48 00 01 0C */ b lbl_800AB328 +lbl_800AB220: +/* 800AB220 000A8160 38 00 00 61 */ li r0, 0x61 +/* 800AB224 000A8164 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AB228 000A8168 3C 80 8C 0E */ lis r4, 0x8C0D8000@ha +/* 800AB22C 000A816C 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AB230 000A8170 38 84 80 00 */ addi r4, r4, 0x8C0D8000@l +/* 800AB234 000A8174 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800AB238 000A8178 3C 80 90 0E */ lis r4, 0x900DC000@ha +/* 800AB23C 000A817C 3C E0 8D 0E */ lis r7, 0x8D0D8400@ha +/* 800AB240 000A8180 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB244 000A8184 38 84 C0 00 */ addi r4, r4, 0x900DC000@l +/* 800AB248 000A8188 3C C0 91 0E */ lis r6, 0x910DC400@ha +/* 800AB24C 000A818C 90 83 80 00 */ stw r4, -0x8000(r3) +/* 800AB250 000A8190 3C A0 8E 0E */ lis r5, 0x8E0D8800@ha +/* 800AB254 000A8194 3C 80 92 0E */ lis r4, 0x920DC800@ha +/* 800AB258 000A8198 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB25C 000A819C 38 E7 84 00 */ addi r7, r7, 0x8D0D8400@l +/* 800AB260 000A81A0 3F E0 8F 0E */ lis r31, 0x8F0D8C00@ha +/* 800AB264 000A81A4 90 E3 80 00 */ stw r7, -0x8000(r3) +/* 800AB268 000A81A8 3D 80 93 0E */ lis r12, 0x930DCC00@ha +/* 800AB26C 000A81AC 3D 60 AC 0E */ lis r11, 0xAC0D9000@ha +/* 800AB270 000A81B0 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB274 000A81B4 38 C6 C4 00 */ addi r6, r6, 0x910DC400@l +/* 800AB278 000A81B8 3D 40 B0 0E */ lis r10, 0xB00DD000@ha +/* 800AB27C 000A81BC 90 C3 80 00 */ stw r6, -0x8000(r3) +/* 800AB280 000A81C0 3D 20 AD 0E */ lis r9, 0xAD0D9400@ha +/* 800AB284 000A81C4 3D 00 B1 0E */ lis r8, 0xB10DD400@ha +/* 800AB288 000A81C8 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB28C 000A81CC 38 A5 88 00 */ addi r5, r5, 0x8E0D8800@l +/* 800AB290 000A81D0 3C E0 AE 0E */ lis r7, 0xAE0D9800@ha +/* 800AB294 000A81D4 90 A3 80 00 */ stw r5, -0x8000(r3) +/* 800AB298 000A81D8 3C C0 B2 0E */ lis r6, 0xB20DD800@ha +/* 800AB29C 000A81DC 3C A0 AF 0E */ lis r5, 0xAF0D9C00@ha +/* 800AB2A0 000A81E0 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB2A4 000A81E4 3B C4 C8 00 */ addi r30, r4, 0x920DC800@l +/* 800AB2A8 000A81E8 3C 80 B3 0E */ lis r4, 0xB30DDC00@ha +/* 800AB2AC 000A81EC 93 C3 80 00 */ stw r30, -0x8000(r3) +/* 800AB2B0 000A81F0 3B FF 8C 00 */ addi r31, r31, 0x8F0D8C00@l +/* 800AB2B4 000A81F4 39 8C CC 00 */ addi r12, r12, 0x930DCC00@l +/* 800AB2B8 000A81F8 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB2BC 000A81FC 39 6B 90 00 */ addi r11, r11, 0xAC0D9000@l +/* 800AB2C0 000A8200 39 4A D0 00 */ addi r10, r10, 0xB00DD000@l +/* 800AB2C4 000A8204 93 E3 80 00 */ stw r31, -0x8000(r3) +/* 800AB2C8 000A8208 39 29 94 00 */ addi r9, r9, 0xAD0D9400@l +/* 800AB2CC 000A820C 39 08 D4 00 */ addi r8, r8, 0xB10DD400@l +/* 800AB2D0 000A8210 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB2D4 000A8214 38 E7 98 00 */ addi r7, r7, 0xAE0D9800@l +/* 800AB2D8 000A8218 38 C6 D8 00 */ addi r6, r6, 0xB20DD800@l +/* 800AB2DC 000A821C 91 83 80 00 */ stw r12, -0x8000(r3) +/* 800AB2E0 000A8220 38 A5 9C 00 */ addi r5, r5, 0xAF0D9C00@l +/* 800AB2E4 000A8224 38 84 DC 00 */ addi r4, r4, 0xB30DDC00@l +/* 800AB2E8 000A8228 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB2EC 000A822C 91 63 80 00 */ stw r11, -0x8000(r3) +/* 800AB2F0 000A8230 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB2F4 000A8234 91 43 80 00 */ stw r10, -0x8000(r3) +/* 800AB2F8 000A8238 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB2FC 000A823C 91 23 80 00 */ stw r9, -0x8000(r3) +/* 800AB300 000A8240 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB304 000A8244 91 03 80 00 */ stw r8, -0x8000(r3) +/* 800AB308 000A8248 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB30C 000A824C 90 E3 80 00 */ stw r7, -0x8000(r3) +/* 800AB310 000A8250 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB314 000A8254 90 C3 80 00 */ stw r6, -0x8000(r3) +/* 800AB318 000A8258 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB31C 000A825C 90 A3 80 00 */ stw r5, -0x8000(r3) +/* 800AB320 000A8260 98 03 80 00 */ stb r0, -0x8000(r3) +/* 800AB324 000A8264 90 83 80 00 */ stw r4, -0x8000(r3) +lbl_800AB328: +/* 800AB328 000A8268 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 800AB32C 000A826C 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 800AB330 000A8270 38 21 00 18 */ addi r1, r1, 0x18 +/* 800AB334 000A8274 4E 80 00 20 */ blr + +.section .data, "wa" # 0x803A8380 - 0x803E6000 +"@92": + .4byte lbl_800AA1FC + .4byte lbl_800AA208 + .4byte lbl_800AA208 + .4byte lbl_800AA214 + .4byte lbl_800AA214 + .4byte lbl_800AA214 + .4byte lbl_800AA214 + .4byte lbl_800AA220 + .4byte lbl_800AA1FC + .4byte lbl_800AA208 + .4byte lbl_800AA214 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA1FC + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA208 + .4byte lbl_800AA220 + .4byte lbl_800AA214 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA214 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA1FC + .4byte lbl_800AA220 + .4byte lbl_800AA208 + .4byte lbl_800AA214 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA208 + .4byte lbl_800AA208 + .4byte lbl_800AA208 + .4byte lbl_800AA208 + .4byte lbl_800AA214 + .4byte lbl_800AA214 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA1FC + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA220 + .4byte lbl_800AA208 + .4byte lbl_800AA208 + .4byte lbl_800AA220 + .4byte lbl_800AA214 +"@133": + .4byte lbl_800AA350 + .4byte lbl_800AA35C + .4byte lbl_800AA35C + .4byte lbl_800AA368 + .4byte lbl_800AA368 + .4byte lbl_800AA368 + .4byte lbl_800AA368 + .4byte lbl_800AA374 + .4byte lbl_800AA350 + .4byte lbl_800AA35C + .4byte lbl_800AA368 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA350 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA35C + .4byte lbl_800AA374 + .4byte lbl_800AA368 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA368 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA350 + .4byte lbl_800AA374 + .4byte lbl_800AA35C + .4byte lbl_800AA368 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA35C + .4byte lbl_800AA35C + .4byte lbl_800AA35C + .4byte lbl_800AA35C + .4byte lbl_800AA368 + .4byte lbl_800AA368 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA350 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA374 + .4byte lbl_800AA35C + .4byte lbl_800AA35C + .4byte lbl_800AA374 + .4byte lbl_800AA368 +"@168": + .4byte lbl_800AA5A0 + .4byte lbl_800AA5B4 + .4byte lbl_800AA5B4 + .4byte lbl_800AA5C8 + .4byte lbl_800AA5C8 + .4byte lbl_800AA5C8 + .4byte lbl_800AA5DC + .4byte lbl_800AA604 + .4byte lbl_800AA5A0 + .4byte lbl_800AA5B4 + .4byte lbl_800AA5C8 + .4byte lbl_800AA604 + .4byte lbl_800AA604 + .4byte lbl_800AA604 + .4byte lbl_800AA5F0 + +.section .sdata, "wa" # 0x80408AC0 - 0x804097C0 +GX2HWFiltConv: + .4byte 0x00040105 + .4byte 0x02060000 + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@164": + .4byte 0x41800000 + .4byte 0 +"@166": + .4byte 0x43300000 + .4byte 0 +"@192": + .4byte 0xC0800000 +"@193": + .4byte 0x40800000 +"@194": + .4byte 0x407F5C29 +"@195": + .4byte 0x42000000 +"@196": + .4byte 0 +"@197": + .4byte 0x41200000 diff --git a/asm/Dolphin/gx/GXTransform.s b/asm/Dolphin/gx/GXTransform.s new file mode 100644 index 0000000..6fd845a --- /dev/null +++ b/asm/Dolphin/gx/GXTransform.s @@ -0,0 +1,608 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80005600 - 0x8036FBA0 +.global GXProject +GXProject: +/* 800AD3E0 000AA320 C0 83 00 00 */ lfs f4, 0(r3) +/* 800AD3E4 000AA324 C0 03 00 04 */ lfs f0, 4(r3) +/* 800AD3E8 000AA328 C0 C3 00 10 */ lfs f6, 0x10(r3) +/* 800AD3EC 000AA32C ED 44 00 72 */ fmuls f10, f4, f1 +/* 800AD3F0 000AA330 C0 A3 00 14 */ lfs f5, 0x14(r3) +/* 800AD3F4 000AA334 ED 20 00 B2 */ fmuls f9, f0, f2 +/* 800AD3F8 000AA338 C0 83 00 20 */ lfs f4, 0x20(r3) +/* 800AD3FC 000AA33C C0 03 00 24 */ lfs f0, 0x24(r3) +/* 800AD400 000AA340 C1 63 00 08 */ lfs f11, 8(r3) +/* 800AD404 000AA344 EC E6 00 72 */ fmuls f7, f6, f1 +/* 800AD408 000AA348 EC C5 00 B2 */ fmuls f6, f5, f2 +/* 800AD40C 000AA34C C1 03 00 18 */ lfs f8, 0x18(r3) +/* 800AD410 000AA350 C0 A3 00 28 */ lfs f5, 0x28(r3) +/* 800AD414 000AA354 EC 84 00 72 */ fmuls f4, f4, f1 +/* 800AD418 000AA358 EC 40 00 B2 */ fmuls f2, f0, f2 +/* 800AD41C 000AA35C ED 6B 00 F2 */ fmuls f11, f11, f3 +/* 800AD420 000AA360 C0 22 8B B0 */ lfs f1, "@14"@sda21(r2) +/* 800AD424 000AA364 ED 2A 48 2A */ fadds f9, f10, f9 +/* 800AD428 000AA368 C0 04 00 00 */ lfs f0, 0(r4) +/* 800AD42C 000AA36C ED 08 00 F2 */ fmuls f8, f8, f3 +/* 800AD430 000AA370 EC C7 30 2A */ fadds f6, f7, f6 +/* 800AD434 000AA374 C1 43 00 0C */ lfs f10, 0xc(r3) +/* 800AD438 000AA378 ED 2B 48 2A */ fadds f9, f11, f9 +/* 800AD43C 000AA37C C0 E3 00 1C */ lfs f7, 0x1c(r3) +/* 800AD440 000AA380 EC C8 30 2A */ fadds f6, f8, f6 +/* 800AD444 000AA384 EC 65 00 F2 */ fmuls f3, f5, f3 +/* 800AD448 000AA388 C0 A3 00 2C */ lfs f5, 0x2c(r3) +/* 800AD44C 000AA38C EC 44 10 2A */ fadds f2, f4, f2 +/* 800AD450 000AA390 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 800AD454 000AA394 ED 0A 48 2A */ fadds f8, f10, f9 +/* 800AD458 000AA398 EC 03 10 2A */ fadds f0, f3, f2 +/* 800AD45C 000AA39C EC E7 30 2A */ fadds f7, f7, f6 +/* 800AD460 000AA3A0 ED 25 00 2A */ fadds f9, f5, f0 +/* 800AD464 000AA3A4 40 82 00 4C */ bne lbl_800AD4B0 +/* 800AD468 000AA3A8 FC 00 48 50 */ fneg f0, f9 +/* 800AD46C 000AA3AC C0 22 8B B4 */ lfs f1, "@15"@sda21(r2) +/* 800AD470 000AA3B0 C0 C4 00 04 */ lfs f6, 4(r4) +/* 800AD474 000AA3B4 C0 A4 00 08 */ lfs f5, 8(r4) +/* 800AD478 000AA3B8 EC 01 00 24 */ fdivs f0, f1, f0 +/* 800AD47C 000AA3BC C0 84 00 0C */ lfs f4, 0xc(r4) +/* 800AD480 000AA3C0 C0 64 00 10 */ lfs f3, 0x10(r4) +/* 800AD484 000AA3C4 C0 24 00 14 */ lfs f1, 0x14(r4) +/* 800AD488 000AA3C8 C0 44 00 18 */ lfs f2, 0x18(r4) +/* 800AD48C 000AA3CC EC 29 00 72 */ fmuls f1, f9, f1 +/* 800AD490 000AA3D0 EC C8 01 B2 */ fmuls f6, f8, f6 +/* 800AD494 000AA3D4 EC A9 01 72 */ fmuls f5, f9, f5 +/* 800AD498 000AA3D8 EC 87 01 32 */ fmuls f4, f7, f4 +/* 800AD49C 000AA3DC EC 69 00 F2 */ fmuls f3, f9, f3 +/* 800AD4A0 000AA3E0 EC C6 28 2A */ fadds f6, f6, f5 +/* 800AD4A4 000AA3E4 EC E2 08 2A */ fadds f7, f2, f1 +/* 800AD4A8 000AA3E8 EC 64 18 2A */ fadds f3, f4, f3 +/* 800AD4AC 000AA3EC 48 00 00 38 */ b lbl_800AD4E4 +lbl_800AD4B0: +/* 800AD4B0 000AA3F0 C0 44 00 04 */ lfs f2, 4(r4) +/* 800AD4B4 000AA3F4 C0 24 00 0C */ lfs f1, 0xc(r4) +/* 800AD4B8 000AA3F8 C0 04 00 14 */ lfs f0, 0x14(r4) +/* 800AD4BC 000AA3FC EC A8 00 B2 */ fmuls f5, f8, f2 +/* 800AD4C0 000AA400 C0 C4 00 08 */ lfs f6, 8(r4) +/* 800AD4C4 000AA404 EC 67 00 72 */ fmuls f3, f7, f1 +/* 800AD4C8 000AA408 C0 84 00 10 */ lfs f4, 0x10(r4) +/* 800AD4CC 000AA40C EC 29 00 32 */ fmuls f1, f9, f0 +/* 800AD4D0 000AA410 C0 44 00 18 */ lfs f2, 0x18(r4) +/* 800AD4D4 000AA414 EC C6 28 2A */ fadds f6, f6, f5 +/* 800AD4D8 000AA418 EC 64 18 2A */ fadds f3, f4, f3 +/* 800AD4DC 000AA41C C0 02 8B B4 */ lfs f0, "@15"@sda21(r2) +/* 800AD4E0 000AA420 EC E2 08 2A */ fadds f7, f2, f1 +lbl_800AD4E4: +/* 800AD4E4 000AA424 C0 85 00 08 */ lfs f4, 8(r5) +/* 800AD4E8 000AA428 FC 20 18 50 */ fneg f1, f3 +/* 800AD4EC 000AA42C C0 A2 8B B8 */ lfs f5, "@16"@sda21(r2) +/* 800AD4F0 000AA430 EC 46 01 32 */ fmuls f2, f6, f4 +/* 800AD4F4 000AA434 C0 65 00 00 */ lfs f3, 0(r5) +/* 800AD4F8 000AA438 EC 84 01 72 */ fmuls f4, f4, f5 +/* 800AD4FC 000AA43C EC 42 01 72 */ fmuls f2, f2, f5 +/* 800AD500 000AA440 EC 40 00 B2 */ fmuls f2, f0, f2 +/* 800AD504 000AA444 EC 43 10 2A */ fadds f2, f3, f2 +/* 800AD508 000AA448 EC 44 10 2A */ fadds f2, f4, f2 +/* 800AD50C 000AA44C D0 46 00 00 */ stfs f2, 0(r6) +/* 800AD510 000AA450 C0 65 00 0C */ lfs f3, 0xc(r5) +/* 800AD514 000AA454 C0 45 00 04 */ lfs f2, 4(r5) +/* 800AD518 000AA458 EC 21 00 F2 */ fmuls f1, f1, f3 +/* 800AD51C 000AA45C EC 63 01 72 */ fmuls f3, f3, f5 +/* 800AD520 000AA460 EC 21 01 72 */ fmuls f1, f1, f5 +/* 800AD524 000AA464 EC 20 00 72 */ fmuls f1, f0, f1 +/* 800AD528 000AA468 EC 22 08 2A */ fadds f1, f2, f1 +/* 800AD52C 000AA46C EC 23 08 2A */ fadds f1, f3, f1 +/* 800AD530 000AA470 D0 27 00 00 */ stfs f1, 0(r7) +/* 800AD534 000AA474 C0 45 00 14 */ lfs f2, 0x14(r5) +/* 800AD538 000AA478 C0 25 00 10 */ lfs f1, 0x10(r5) +/* 800AD53C 000AA47C EC 22 08 28 */ fsubs f1, f2, f1 +/* 800AD540 000AA480 EC 27 00 72 */ fmuls f1, f7, f1 +/* 800AD544 000AA484 EC 00 00 72 */ fmuls f0, f0, f1 +/* 800AD548 000AA488 EC 02 00 2A */ fadds f0, f2, f0 +/* 800AD54C 000AA48C D0 08 00 00 */ stfs f0, 0(r8) +/* 800AD550 000AA490 4E 80 00 20 */ blr + +.global GXSetProjection +GXSetProjection: +/* 800AD554 000AA494 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800AD558 000AA498 2C 04 00 01 */ cmpwi r4, 1 +/* 800AD55C 000AA49C 90 85 04 20 */ stw r4, 0x420(r5) +/* 800AD560 000AA4A0 C0 03 00 00 */ lfs f0, 0(r3) +/* 800AD564 000AA4A4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD568 000AA4A8 D0 04 04 24 */ stfs f0, 0x424(r4) +/* 800AD56C 000AA4AC C0 03 00 14 */ lfs f0, 0x14(r3) +/* 800AD570 000AA4B0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD574 000AA4B4 D0 04 04 2C */ stfs f0, 0x42c(r4) +/* 800AD578 000AA4B8 C0 03 00 28 */ lfs f0, 0x28(r3) +/* 800AD57C 000AA4BC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD580 000AA4C0 D0 04 04 34 */ stfs f0, 0x434(r4) +/* 800AD584 000AA4C4 C0 03 00 2C */ lfs f0, 0x2c(r3) +/* 800AD588 000AA4C8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD58C 000AA4CC D0 04 04 38 */ stfs f0, 0x438(r4) +/* 800AD590 000AA4D0 40 82 00 20 */ bne lbl_800AD5B0 +/* 800AD594 000AA4D4 C0 03 00 0C */ lfs f0, 0xc(r3) +/* 800AD598 000AA4D8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD59C 000AA4DC D0 04 04 28 */ stfs f0, 0x428(r4) +/* 800AD5A0 000AA4E0 C0 03 00 1C */ lfs f0, 0x1c(r3) +/* 800AD5A4 000AA4E4 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD5A8 000AA4E8 D0 03 04 30 */ stfs f0, 0x430(r3) +/* 800AD5AC 000AA4EC 48 00 00 1C */ b lbl_800AD5C8 +lbl_800AD5B0: +/* 800AD5B0 000AA4F0 C0 03 00 08 */ lfs f0, 8(r3) +/* 800AD5B4 000AA4F4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD5B8 000AA4F8 D0 04 04 28 */ stfs f0, 0x428(r4) +/* 800AD5BC 000AA4FC C0 03 00 18 */ lfs f0, 0x18(r3) +/* 800AD5C0 000AA500 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD5C4 000AA504 D0 03 04 30 */ stfs f0, 0x430(r3) +lbl_800AD5C8: +/* 800AD5C8 000AA508 38 00 00 10 */ li r0, 0x10 +/* 800AD5CC 000AA50C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD5D0 000AA510 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD5D4 000AA514 3C 60 00 06 */ lis r3, 0x00061020@ha +/* 800AD5D8 000AA518 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AD5DC 000AA51C 38 03 10 20 */ addi r0, r3, 0x00061020@l +/* 800AD5E0 000AA520 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AD5E4 000AA524 38 00 00 01 */ li r0, 1 +/* 800AD5E8 000AA528 C0 04 04 24 */ lfs f0, 0x424(r4) +/* 800AD5EC 000AA52C D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD5F0 000AA530 C0 04 04 28 */ lfs f0, 0x428(r4) +/* 800AD5F4 000AA534 D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD5F8 000AA538 C0 04 04 2C */ lfs f0, 0x42c(r4) +/* 800AD5FC 000AA53C D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD600 000AA540 C0 04 04 30 */ lfs f0, 0x430(r4) +/* 800AD604 000AA544 D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD608 000AA548 C0 04 04 34 */ lfs f0, 0x434(r4) +/* 800AD60C 000AA54C D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD610 000AA550 C0 04 04 38 */ lfs f0, 0x438(r4) +/* 800AD614 000AA554 D0 05 80 00 */ stfs f0, -0x8000(r5) +/* 800AD618 000AA558 80 64 04 20 */ lwz r3, 0x420(r4) +/* 800AD61C 000AA55C 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800AD620 000AA560 B0 04 00 02 */ sth r0, 2(r4) +/* 800AD624 000AA564 4E 80 00 20 */ blr + +.global GXGetProjectionv +GXGetProjectionv: +/* 800AD628 000AA568 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 800AD62C 000AA56C 3C 00 43 30 */ lis r0, 0x4330 +/* 800AD630 000AA570 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD634 000AA574 C8 22 8B C0 */ lfd f1, "@24"@sda21(r2) +/* 800AD638 000AA578 80 84 04 20 */ lwz r4, 0x420(r4) +/* 800AD63C 000AA57C 90 81 00 14 */ stw r4, 0x14(r1) +/* 800AD640 000AA580 90 01 00 10 */ stw r0, 0x10(r1) +/* 800AD644 000AA584 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 800AD648 000AA588 EC 00 08 28 */ fsubs f0, f0, f1 +/* 800AD64C 000AA58C D0 03 00 00 */ stfs f0, 0(r3) +/* 800AD650 000AA590 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD654 000AA594 C0 04 04 24 */ lfs f0, 0x424(r4) +/* 800AD658 000AA598 D0 03 00 04 */ stfs f0, 4(r3) +/* 800AD65C 000AA59C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD660 000AA5A0 C0 04 04 28 */ lfs f0, 0x428(r4) +/* 800AD664 000AA5A4 D0 03 00 08 */ stfs f0, 8(r3) +/* 800AD668 000AA5A8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD66C 000AA5AC C0 04 04 2C */ lfs f0, 0x42c(r4) +/* 800AD670 000AA5B0 D0 03 00 0C */ stfs f0, 0xc(r3) +/* 800AD674 000AA5B4 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD678 000AA5B8 C0 04 04 30 */ lfs f0, 0x430(r4) +/* 800AD67C 000AA5BC D0 03 00 10 */ stfs f0, 0x10(r3) +/* 800AD680 000AA5C0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD684 000AA5C4 C0 04 04 34 */ lfs f0, 0x434(r4) +/* 800AD688 000AA5C8 D0 03 00 14 */ stfs f0, 0x14(r3) +/* 800AD68C 000AA5CC 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD690 000AA5D0 C0 04 04 38 */ lfs f0, 0x438(r4) +/* 800AD694 000AA5D4 D0 03 00 18 */ stfs f0, 0x18(r3) +/* 800AD698 000AA5D8 38 21 00 18 */ addi r1, r1, 0x18 +/* 800AD69C 000AA5DC 4E 80 00 20 */ blr + +.global WriteMTXPS4x3 +WriteMTXPS4x3: +/* 800AD6A0 000AA5E0 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0 +/* 800AD6A4 000AA5E4 E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0 +/* 800AD6A8 000AA5E8 E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0 +/* 800AD6AC 000AA5EC E0 63 00 18 */ psq_l f3, 24(r3), 0, qr0 +/* 800AD6B0 000AA5F0 E0 83 00 20 */ psq_l f4, 32(r3), 0, qr0 +/* 800AD6B4 000AA5F4 E0 A3 00 28 */ psq_l f5, 40(r3), 0, qr0 +/* 800AD6B8 000AA5F8 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 +/* 800AD6BC 000AA5FC F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 +/* 800AD6C0 000AA600 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 +/* 800AD6C4 000AA604 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 +/* 800AD6C8 000AA608 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0 +/* 800AD6CC 000AA60C F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0 +/* 800AD6D0 000AA610 4E 80 00 20 */ blr + +.global WriteMTXPS3x3from3x4 +WriteMTXPS3x3from3x4: +/* 800AD6D4 000AA614 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0 +/* 800AD6D8 000AA618 C0 23 00 08 */ lfs f1, 8(r3) +/* 800AD6DC 000AA61C E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0 +/* 800AD6E0 000AA620 C0 63 00 18 */ lfs f3, 0x18(r3) +/* 800AD6E4 000AA624 E0 83 00 20 */ psq_l f4, 32(r3), 0, qr0 +/* 800AD6E8 000AA628 C0 A3 00 28 */ lfs f5, 0x28(r3) +/* 800AD6EC 000AA62C F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 +/* 800AD6F0 000AA630 D0 24 00 00 */ stfs f1, 0(r4) +/* 800AD6F4 000AA634 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 +/* 800AD6F8 000AA638 D0 64 00 00 */ stfs f3, 0(r4) +/* 800AD6FC 000AA63C F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0 +/* 800AD700 000AA640 D0 A4 00 00 */ stfs f5, 0(r4) +/* 800AD704 000AA644 4E 80 00 20 */ blr + +.global WriteMTXPS4x2 +WriteMTXPS4x2: +/* 800AD708 000AA648 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0 +/* 800AD70C 000AA64C E0 23 00 08 */ psq_l f1, 8(r3), 0, qr0 +/* 800AD710 000AA650 E0 43 00 10 */ psq_l f2, 16(r3), 0, qr0 +/* 800AD714 000AA654 E0 63 00 18 */ psq_l f3, 24(r3), 0, qr0 +/* 800AD718 000AA658 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0 +/* 800AD71C 000AA65C F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0 +/* 800AD720 000AA660 F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0 +/* 800AD724 000AA664 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0 +/* 800AD728 000AA668 4E 80 00 20 */ blr + +.global GXLoadPosMtxImm +GXLoadPosMtxImm: +/* 800AD72C 000AA66C 7C 08 02 A6 */ mflr r0 +/* 800AD730 000AA670 90 01 00 04 */ stw r0, 4(r1) +/* 800AD734 000AA674 94 21 FF F8 */ stwu r1, -8(r1) +/* 800AD738 000AA678 38 C0 00 10 */ li r6, 0x10 +/* 800AD73C 000AA67C 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD740 000AA680 54 80 10 3A */ slwi r0, r4, 2 +/* 800AD744 000AA684 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800AD748 000AA688 64 00 00 0B */ oris r0, r0, 0xb +/* 800AD74C 000AA68C 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AD750 000AA690 38 85 80 00 */ addi r4, r5, -32768 +/* 800AD754 000AA694 4B FF FF 4D */ bl WriteMTXPS4x3 +/* 800AD758 000AA698 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800AD75C 000AA69C 38 21 00 08 */ addi r1, r1, 8 +/* 800AD760 000AA6A0 7C 08 03 A6 */ mtlr r0 +/* 800AD764 000AA6A4 4E 80 00 20 */ blr + +.global GXLoadPosMtxIndx +GXLoadPosMtxIndx: +/* 800AD768 000AA6A8 54 80 10 3A */ slwi r0, r4, 2 +/* 800AD76C 000AA6AC 54 00 05 1E */ rlwinm r0, r0, 0, 0x14, 0xf +/* 800AD770 000AA6B0 60 05 B0 00 */ ori r5, r0, 0xb000 +/* 800AD774 000AA6B4 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 800AD778 000AA6B8 38 00 00 20 */ li r0, 0x20 +/* 800AD77C 000AA6BC 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AD780 000AA6C0 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AD784 000AA6C4 54 A5 04 3E */ clrlwi r5, r5, 0x10 +/* 800AD788 000AA6C8 54 80 80 1E */ slwi r0, r4, 0x10 +/* 800AD78C 000AA6CC 7C A0 03 78 */ or r0, r5, r0 +/* 800AD790 000AA6D0 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800AD794 000AA6D4 4E 80 00 20 */ blr + +.global GXLoadNrmMtxImm +GXLoadNrmMtxImm: +/* 800AD798 000AA6D8 7C 08 02 A6 */ mflr r0 +/* 800AD79C 000AA6DC 90 01 00 04 */ stw r0, 4(r1) +/* 800AD7A0 000AA6E0 94 21 FF F8 */ stwu r1, -8(r1) +/* 800AD7A4 000AA6E4 1C 84 00 03 */ mulli r4, r4, 3 +/* 800AD7A8 000AA6E8 38 04 04 00 */ addi r0, r4, 0x400 +/* 800AD7AC 000AA6EC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD7B0 000AA6F0 38 C0 00 10 */ li r6, 0x10 +/* 800AD7B4 000AA6F4 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800AD7B8 000AA6F8 64 00 00 08 */ oris r0, r0, 8 +/* 800AD7BC 000AA6FC 38 85 80 00 */ addi r4, r5, -32768 +/* 800AD7C0 000AA700 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AD7C4 000AA704 4B FF FF 11 */ bl WriteMTXPS3x3from3x4 +/* 800AD7C8 000AA708 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800AD7CC 000AA70C 38 21 00 08 */ addi r1, r1, 8 +/* 800AD7D0 000AA710 7C 08 03 A6 */ mtlr r0 +/* 800AD7D4 000AA714 4E 80 00 20 */ blr + +.global GXLoadNrmMtxIndx3x3 +GXLoadNrmMtxIndx3x3: +/* 800AD7D8 000AA718 1C 84 00 03 */ mulli r4, r4, 3 +/* 800AD7DC 000AA71C 38 04 04 00 */ addi r0, r4, 0x400 +/* 800AD7E0 000AA720 54 00 05 1E */ rlwinm r0, r0, 0, 0x14, 0xf +/* 800AD7E4 000AA724 60 05 80 00 */ ori r5, r0, 0x8000 +/* 800AD7E8 000AA728 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 800AD7EC 000AA72C 38 00 00 28 */ li r0, 0x28 +/* 800AD7F0 000AA730 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 800AD7F4 000AA734 98 03 80 00 */ stb r0, 0xCC008000@l(r3) +/* 800AD7F8 000AA738 54 A5 04 3E */ clrlwi r5, r5, 0x10 +/* 800AD7FC 000AA73C 54 80 80 1E */ slwi r0, r4, 0x10 +/* 800AD800 000AA740 7C A0 03 78 */ or r0, r5, r0 +/* 800AD804 000AA744 90 03 80 00 */ stw r0, -0x8000(r3) +/* 800AD808 000AA748 4E 80 00 20 */ blr + +.global GXSetCurrentMtx +GXSetCurrentMtx: +/* 800AD80C 000AA74C 7C 08 02 A6 */ mflr r0 +/* 800AD810 000AA750 90 01 00 04 */ stw r0, 4(r1) +/* 800AD814 000AA754 94 21 FF F8 */ stwu r1, -8(r1) +/* 800AD818 000AA758 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800AD81C 000AA75C 38 84 00 80 */ addi r4, r4, 0x80 +/* 800AD820 000AA760 80 04 00 00 */ lwz r0, 0(r4) +/* 800AD824 000AA764 54 00 00 32 */ rlwinm r0, r0, 0, 0, 0x19 +/* 800AD828 000AA768 7C 00 1B 78 */ or r0, r0, r3 +/* 800AD82C 000AA76C 90 04 00 00 */ stw r0, 0(r4) +/* 800AD830 000AA770 38 60 00 00 */ li r3, 0 +/* 800AD834 000AA774 48 00 03 41 */ bl __GXSetMatrixIndex +/* 800AD838 000AA778 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800AD83C 000AA77C 38 21 00 08 */ addi r1, r1, 8 +/* 800AD840 000AA780 7C 08 03 A6 */ mtlr r0 +/* 800AD844 000AA784 4E 80 00 20 */ blr + +.global GXLoadTexMtxImm +GXLoadTexMtxImm: +/* 800AD848 000AA788 7C 08 02 A6 */ mflr r0 +/* 800AD84C 000AA78C 90 01 00 04 */ stw r0, 4(r1) +/* 800AD850 000AA790 94 21 FF F8 */ stwu r1, -8(r1) +/* 800AD854 000AA794 28 04 00 40 */ cmplwi r4, 0x40 +/* 800AD858 000AA798 41 80 00 14 */ blt lbl_800AD86C +/* 800AD85C 000AA79C 38 04 FF C0 */ addi r0, r4, -64 +/* 800AD860 000AA7A0 54 04 10 3A */ slwi r4, r0, 2 +/* 800AD864 000AA7A4 38 E4 05 00 */ addi r7, r4, 0x500 +/* 800AD868 000AA7A8 48 00 00 08 */ b lbl_800AD870 +lbl_800AD86C: +/* 800AD86C 000AA7AC 54 87 10 3A */ slwi r7, r4, 2 +lbl_800AD870: +/* 800AD870 000AA7B0 2C 05 00 01 */ cmpwi r5, 1 +/* 800AD874 000AA7B4 40 82 00 0C */ bne lbl_800AD880 +/* 800AD878 000AA7B8 38 80 00 08 */ li r4, 8 +/* 800AD87C 000AA7BC 48 00 00 08 */ b lbl_800AD884 +lbl_800AD880: +/* 800AD880 000AA7C0 38 80 00 0C */ li r4, 0xc +lbl_800AD884: +/* 800AD884 000AA7C4 38 04 FF FF */ addi r0, r4, -1 +/* 800AD888 000AA7C8 54 00 80 1E */ slwi r0, r0, 0x10 +/* 800AD88C 000AA7CC 38 C0 00 10 */ li r6, 0x10 +/* 800AD890 000AA7D0 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800AD894 000AA7D4 98 C4 80 00 */ stb r6, 0xCC008000@l(r4) +/* 800AD898 000AA7D8 7C E0 03 78 */ or r0, r7, r0 +/* 800AD89C 000AA7DC 2C 05 00 00 */ cmpwi r5, 0 +/* 800AD8A0 000AA7E0 90 04 80 00 */ stw r0, -0x8000(r4) +/* 800AD8A4 000AA7E4 40 82 00 10 */ bne lbl_800AD8B4 +/* 800AD8A8 000AA7E8 38 84 80 00 */ addi r4, r4, -32768 +/* 800AD8AC 000AA7EC 4B FF FD F5 */ bl WriteMTXPS4x3 +/* 800AD8B0 000AA7F0 48 00 00 0C */ b lbl_800AD8BC +lbl_800AD8B4: +/* 800AD8B4 000AA7F4 38 84 80 00 */ addi r4, r4, -32768 +/* 800AD8B8 000AA7F8 4B FF FE 51 */ bl WriteMTXPS4x2 +lbl_800AD8BC: +/* 800AD8BC 000AA7FC 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800AD8C0 000AA800 38 21 00 08 */ addi r1, r1, 8 +/* 800AD8C4 000AA804 7C 08 03 A6 */ mtlr r0 +/* 800AD8C8 000AA808 4E 80 00 20 */ blr + +.global GXSetViewportJitter +GXSetViewportJitter: +/* 800AD8CC 000AA80C 7C 08 02 A6 */ mflr r0 +/* 800AD8D0 000AA810 90 01 00 04 */ stw r0, 4(r1) +/* 800AD8D4 000AA814 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 800AD8D8 000AA818 DB E1 00 58 */ stfd f31, 0x58(r1) +/* 800AD8DC 000AA81C DB C1 00 50 */ stfd f30, 0x50(r1) +/* 800AD8E0 000AA820 DB A1 00 48 */ stfd f29, 0x48(r1) +/* 800AD8E4 000AA824 DB 81 00 40 */ stfd f28, 0x40(r1) +/* 800AD8E8 000AA828 DB 61 00 38 */ stfd f27, 0x38(r1) +/* 800AD8EC 000AA82C DB 41 00 30 */ stfd f26, 0x30(r1) +/* 800AD8F0 000AA830 28 03 00 00 */ cmplwi r3, 0 +/* 800AD8F4 000AA834 40 82 00 0C */ bne lbl_800AD900 +/* 800AD8F8 000AA838 C0 02 8B B8 */ lfs f0, "@16"@sda21(r2) +/* 800AD8FC 000AA83C EC 42 00 28 */ fsubs f2, f2, f0 +lbl_800AD900: +/* 800AD900 000AA840 C1 62 8B B8 */ lfs f11, "@16"@sda21(r2) +/* 800AD904 000AA844 FD 40 20 50 */ fneg f10, f4 +/* 800AD908 000AA848 C0 02 8B CC */ lfs f0, "@64"@sda21(r2) +/* 800AD90C 000AA84C C1 22 8B C8 */ lfs f9, "@63"@sda21(r2) +/* 800AD910 000AA850 EF E3 02 F2 */ fmuls f31, f3, f11 +/* 800AD914 000AA854 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD918 000AA858 EC E4 02 F2 */ fmuls f7, f4, f11 +/* 800AD91C 000AA85C D0 23 04 3C */ stfs f1, 0x43c(r3) +/* 800AD920 000AA860 ED 01 F8 2A */ fadds f8, f1, f31 +/* 800AD924 000AA864 EF C0 01 B2 */ fmuls f30, f0, f6 +/* 800AD928 000AA868 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD92C 000AA86C EC 22 38 2A */ fadds f1, f2, f7 +/* 800AD930 000AA870 D0 43 04 40 */ stfs f2, 0x440(r3) +/* 800AD934 000AA874 EC 00 01 72 */ fmuls f0, f0, f5 +/* 800AD938 000AA878 EF AA 02 F2 */ fmuls f29, f10, f11 +/* 800AD93C 000AA87C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD940 000AA880 EF 69 40 2A */ fadds f27, f9, f8 +/* 800AD944 000AA884 D0 63 04 44 */ stfs f3, 0x444(r3) +/* 800AD948 000AA888 EF 49 08 2A */ fadds f26, f9, f1 +/* 800AD94C 000AA88C EF 9E 00 28 */ fsubs f28, f30, f0 +/* 800AD950 000AA890 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD954 000AA894 D0 83 04 48 */ stfs f4, 0x448(r3) +/* 800AD958 000AA898 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD95C 000AA89C D0 A3 04 4C */ stfs f5, 0x44c(r3) +/* 800AD960 000AA8A0 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD964 000AA8A4 D0 C3 04 50 */ stfs f6, 0x450(r3) +/* 800AD968 000AA8A8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD96C 000AA8AC 88 03 04 54 */ lbz r0, 0x454(r3) +/* 800AD970 000AA8B0 28 00 00 00 */ cmplwi r0, 0 +/* 800AD974 000AA8B4 41 82 00 10 */ beq lbl_800AD984 +/* 800AD978 000AA8B8 FC 20 28 90 */ fmr f1, f5 +/* 800AD97C 000AA8BC C0 43 04 58 */ lfs f2, 0x458(r3) +/* 800AD980 000AA8C0 4B FF F9 ED */ bl __GXSetRange +lbl_800AD984: +/* 800AD984 000AA8C4 38 00 00 10 */ li r0, 0x10 +/* 800AD988 000AA8C8 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800AD98C 000AA8CC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800AD990 000AA8D0 3C 80 00 05 */ lis r4, 0x0005101A@ha +/* 800AD994 000AA8D4 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800AD998 000AA8D8 38 04 10 1A */ addi r0, r4, 0x0005101A@l +/* 800AD99C 000AA8DC 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800AD9A0 000AA8E0 38 00 00 01 */ li r0, 1 +/* 800AD9A4 000AA8E4 D3 E5 80 00 */ stfs f31, -0x8000(r5) +/* 800AD9A8 000AA8E8 D3 A5 80 00 */ stfs f29, -0x8000(r5) +/* 800AD9AC 000AA8EC D3 85 80 00 */ stfs f28, -0x8000(r5) +/* 800AD9B0 000AA8F0 D3 65 80 00 */ stfs f27, -0x8000(r5) +/* 800AD9B4 000AA8F4 D3 45 80 00 */ stfs f26, -0x8000(r5) +/* 800AD9B8 000AA8F8 D3 C5 80 00 */ stfs f30, -0x8000(r5) +/* 800AD9BC 000AA8FC B0 03 00 02 */ sth r0, 2(r3) +/* 800AD9C0 000AA900 80 01 00 64 */ lwz r0, 0x64(r1) +/* 800AD9C4 000AA904 CB E1 00 58 */ lfd f31, 0x58(r1) +/* 800AD9C8 000AA908 CB C1 00 50 */ lfd f30, 0x50(r1) +/* 800AD9CC 000AA90C CB A1 00 48 */ lfd f29, 0x48(r1) +/* 800AD9D0 000AA910 CB 81 00 40 */ lfd f28, 0x40(r1) +/* 800AD9D4 000AA914 CB 61 00 38 */ lfd f27, 0x38(r1) +/* 800AD9D8 000AA918 CB 41 00 30 */ lfd f26, 0x30(r1) +/* 800AD9DC 000AA91C 38 21 00 60 */ addi r1, r1, 0x60 +/* 800AD9E0 000AA920 7C 08 03 A6 */ mtlr r0 +/* 800AD9E4 000AA924 4E 80 00 20 */ blr + +.global GXSetViewport +GXSetViewport: +/* 800AD9E8 000AA928 7C 08 02 A6 */ mflr r0 +/* 800AD9EC 000AA92C 90 01 00 04 */ stw r0, 4(r1) +/* 800AD9F0 000AA930 94 21 FF F8 */ stwu r1, -8(r1) +/* 800AD9F4 000AA934 38 60 00 01 */ li r3, 1 +/* 800AD9F8 000AA938 4B FF FE D5 */ bl GXSetViewportJitter +/* 800AD9FC 000AA93C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 800ADA00 000AA940 38 21 00 08 */ addi r1, r1, 8 +/* 800ADA04 000AA944 7C 08 03 A6 */ mtlr r0 +/* 800ADA08 000AA948 4E 80 00 20 */ blr + +.global GXGetViewportv +GXGetViewportv: +/* 800ADA0C 000AA94C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADA10 000AA950 C0 04 04 3C */ lfs f0, 0x43c(r4) +/* 800ADA14 000AA954 D0 03 00 00 */ stfs f0, 0(r3) +/* 800ADA18 000AA958 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADA1C 000AA95C C0 04 04 40 */ lfs f0, 0x440(r4) +/* 800ADA20 000AA960 D0 03 00 04 */ stfs f0, 4(r3) +/* 800ADA24 000AA964 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADA28 000AA968 C0 04 04 44 */ lfs f0, 0x444(r4) +/* 800ADA2C 000AA96C D0 03 00 08 */ stfs f0, 8(r3) +/* 800ADA30 000AA970 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADA34 000AA974 C0 04 04 48 */ lfs f0, 0x448(r4) +/* 800ADA38 000AA978 D0 03 00 0C */ stfs f0, 0xc(r3) +/* 800ADA3C 000AA97C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADA40 000AA980 C0 04 04 4C */ lfs f0, 0x44c(r4) +/* 800ADA44 000AA984 D0 03 00 10 */ stfs f0, 0x10(r3) +/* 800ADA48 000AA988 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADA4C 000AA98C C0 04 04 50 */ lfs f0, 0x450(r4) +/* 800ADA50 000AA990 D0 03 00 14 */ stfs f0, 0x14(r3) +/* 800ADA54 000AA994 4E 80 00 20 */ blr + +.global GXSetScissor +GXSetScissor: +/* 800ADA58 000AA998 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800ADA5C 000AA99C 39 03 01 56 */ addi r8, r3, 0x156 +/* 800ADA60 000AA9A0 38 05 FF FF */ addi r0, r5, -1 +/* 800ADA64 000AA9A4 38 A7 00 F8 */ addi r5, r7, 0xf8 +/* 800ADA68 000AA9A8 80 65 00 00 */ lwz r3, 0(r5) +/* 800ADA6C 000AA9AC 7C 08 02 14 */ add r0, r8, r0 +/* 800ADA70 000AA9B0 38 84 01 56 */ addi r4, r4, 0x156 +/* 800ADA74 000AA9B4 54 63 00 28 */ rlwinm r3, r3, 0, 0, 0x14 +/* 800ADA78 000AA9B8 7C 63 23 78 */ or r3, r3, r4 +/* 800ADA7C 000AA9BC 90 65 00 00 */ stw r3, 0(r5) +/* 800ADA80 000AA9C0 38 66 FF FF */ addi r3, r6, -1 +/* 800ADA84 000AA9C4 55 07 60 26 */ slwi r7, r8, 0xc +/* 800ADA88 000AA9C8 80 AD 82 C8 */ lwz r5, gx@sda21(r13) +/* 800ADA8C 000AA9CC 7C 84 1A 14 */ add r4, r4, r3 +/* 800ADA90 000AA9D0 54 03 60 26 */ slwi r3, r0, 0xc +/* 800ADA94 000AA9D4 39 05 00 F8 */ addi r8, r5, 0xf8 +/* 800ADA98 000AA9D8 80 08 00 00 */ lwz r0, 0(r8) +/* 800ADA9C 000AA9DC 38 C0 00 61 */ li r6, 0x61 +/* 800ADAA0 000AA9E0 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADAA4 000AA9E4 54 00 05 10 */ rlwinm r0, r0, 0, 0x14, 8 +/* 800ADAA8 000AA9E8 7C 00 3B 78 */ or r0, r0, r7 +/* 800ADAAC 000AA9EC 90 08 00 00 */ stw r0, 0(r8) +/* 800ADAB0 000AA9F0 38 00 00 00 */ li r0, 0 +/* 800ADAB4 000AA9F4 80 ED 82 C8 */ lwz r7, gx@sda21(r13) +/* 800ADAB8 000AA9F8 39 07 00 FC */ addi r8, r7, 0xfc +/* 800ADABC 000AA9FC 80 E8 00 00 */ lwz r7, 0(r8) +/* 800ADAC0 000AAA00 54 E7 00 28 */ rlwinm r7, r7, 0, 0, 0x14 +/* 800ADAC4 000AAA04 7C E4 23 78 */ or r4, r7, r4 +/* 800ADAC8 000AAA08 90 88 00 00 */ stw r4, 0(r8) +/* 800ADACC 000AAA0C 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADAD0 000AAA10 38 E4 00 FC */ addi r7, r4, 0xfc +/* 800ADAD4 000AAA14 80 87 00 00 */ lwz r4, 0(r7) +/* 800ADAD8 000AAA18 54 84 05 10 */ rlwinm r4, r4, 0, 0x14, 8 +/* 800ADADC 000AAA1C 7C 83 1B 78 */ or r3, r4, r3 +/* 800ADAE0 000AAA20 90 67 00 00 */ stw r3, 0(r7) +/* 800ADAE4 000AAA24 98 C5 80 00 */ stb r6, 0xCC008000@l(r5) +/* 800ADAE8 000AAA28 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADAEC 000AAA2C 80 64 00 F8 */ lwz r3, 0xf8(r4) +/* 800ADAF0 000AAA30 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADAF4 000AAA34 98 C5 80 00 */ stb r6, -0x8000(r5) +/* 800ADAF8 000AAA38 80 64 00 FC */ lwz r3, 0xfc(r4) +/* 800ADAFC 000AAA3C 90 65 80 00 */ stw r3, -0x8000(r5) +/* 800ADB00 000AAA40 B0 04 00 02 */ sth r0, 2(r4) +/* 800ADB04 000AAA44 4E 80 00 20 */ blr + +.global GXSetScissorBoxOffset +GXSetScissorBoxOffset: +/* 800ADB08 000AAA48 38 A3 01 56 */ addi r5, r3, 0x156 +/* 800ADB0C 000AAA4C 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ADB10 000AAA50 38 04 01 56 */ addi r0, r4, 0x156 +/* 800ADB14 000AAA54 54 A4 F8 7E */ srwi r4, r5, 1 +/* 800ADB18 000AAA58 54 00 F8 7E */ srwi r0, r0, 1 +/* 800ADB1C 000AAA5C 54 84 05 96 */ rlwinm r4, r4, 0, 0x16, 0xb +/* 800ADB20 000AAA60 54 00 50 2A */ slwi r0, r0, 0xa +/* 800ADB24 000AAA64 7C 80 03 78 */ or r0, r4, r0 +/* 800ADB28 000AAA68 54 05 02 3E */ clrlwi r5, r0, 8 +/* 800ADB2C 000AAA6C 38 00 00 61 */ li r0, 0x61 +/* 800ADB30 000AAA70 3C 80 CC 01 */ lis r4, 0xCC008000@ha +/* 800ADB34 000AAA74 98 04 80 00 */ stb r0, 0xCC008000@l(r4) +/* 800ADB38 000AAA78 64 A5 59 00 */ oris r5, r5, 0x5900 +/* 800ADB3C 000AAA7C 38 00 00 00 */ li r0, 0 +/* 800ADB40 000AAA80 90 A4 80 00 */ stw r5, -0x8000(r4) +/* 800ADB44 000AAA84 B0 03 00 02 */ sth r0, 2(r3) +/* 800ADB48 000AAA88 4E 80 00 20 */ blr + +.global GXSetClipMode +GXSetClipMode: +/* 800ADB4C 000AAA8C 38 00 00 10 */ li r0, 0x10 +/* 800ADB50 000AAA90 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADB54 000AAA94 3C C0 CC 01 */ lis r6, 0xCC008000@ha +/* 800ADB58 000AAA98 98 06 80 00 */ stb r0, 0xCC008000@l(r6) +/* 800ADB5C 000AAA9C 38 A0 10 05 */ li r5, 0x1005 +/* 800ADB60 000AAAA0 38 00 00 01 */ li r0, 1 +/* 800ADB64 000AAAA4 90 A6 80 00 */ stw r5, -0x8000(r6) +/* 800ADB68 000AAAA8 90 66 80 00 */ stw r3, -0x8000(r6) +/* 800ADB6C 000AAAAC B0 04 00 02 */ sth r0, 2(r4) +/* 800ADB70 000AAAB0 4E 80 00 20 */ blr + +.global __GXSetMatrixIndex +__GXSetMatrixIndex: +/* 800ADB74 000AAAB4 2C 03 00 05 */ cmpwi r3, 5 +/* 800ADB78 000AAAB8 40 80 00 3C */ bge lbl_800ADBB4 +/* 800ADB7C 000AAABC 38 00 00 08 */ li r0, 8 +/* 800ADB80 000AAAC0 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADB84 000AAAC4 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADB88 000AAAC8 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADB8C 000AAACC 38 00 00 30 */ li r0, 0x30 +/* 800ADB90 000AAAD0 38 60 00 10 */ li r3, 0x10 +/* 800ADB94 000AAAD4 98 05 80 00 */ stb r0, -0x8000(r5) +/* 800ADB98 000AAAD8 38 00 10 18 */ li r0, 0x1018 +/* 800ADB9C 000AAADC 80 84 00 80 */ lwz r4, 0x80(r4) +/* 800ADBA0 000AAAE0 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800ADBA4 000AAAE4 98 65 80 00 */ stb r3, -0x8000(r5) +/* 800ADBA8 000AAAE8 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADBAC 000AAAEC 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800ADBB0 000AAAF0 48 00 00 38 */ b lbl_800ADBE8 +lbl_800ADBB4: +/* 800ADBB4 000AAAF4 38 00 00 08 */ li r0, 8 +/* 800ADBB8 000AAAF8 80 8D 82 C8 */ lwz r4, gx@sda21(r13) +/* 800ADBBC 000AAAFC 3C A0 CC 01 */ lis r5, 0xCC008000@ha +/* 800ADBC0 000AAB00 98 05 80 00 */ stb r0, 0xCC008000@l(r5) +/* 800ADBC4 000AAB04 38 00 00 40 */ li r0, 0x40 +/* 800ADBC8 000AAB08 38 60 00 10 */ li r3, 0x10 +/* 800ADBCC 000AAB0C 98 05 80 00 */ stb r0, -0x8000(r5) +/* 800ADBD0 000AAB10 38 00 10 19 */ li r0, 0x1019 +/* 800ADBD4 000AAB14 80 84 00 84 */ lwz r4, 0x84(r4) +/* 800ADBD8 000AAB18 90 85 80 00 */ stw r4, -0x8000(r5) +/* 800ADBDC 000AAB1C 98 65 80 00 */ stb r3, -0x8000(r5) +/* 800ADBE0 000AAB20 90 05 80 00 */ stw r0, -0x8000(r5) +/* 800ADBE4 000AAB24 90 85 80 00 */ stw r4, -0x8000(r5) +lbl_800ADBE8: +/* 800ADBE8 000AAB28 80 6D 82 C8 */ lwz r3, gx@sda21(r13) +/* 800ADBEC 000AAB2C 38 00 00 01 */ li r0, 1 +/* 800ADBF0 000AAB30 B0 03 00 02 */ sth r0, 2(r3) +/* 800ADBF4 000AAB34 4E 80 00 20 */ blr + +.section .sdata2, "a" # 0x8040B460 - 0x80414020 +.balign 8 +"@14": + .4byte 0 +"@15": + .4byte 0x3F800000 +"@16": + .4byte 0x3F000000 + .4byte 0 +"@24": + .4byte 0x43300000 + .4byte 0 +"@63": + .4byte 0x43AB0000 +"@64": + .4byte 0x4B7FFFFF |