donut-decomp/asm/libnw4r_g3d/g3d_basic.s

233 lines
11 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global CalcTexMtx_Basic__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34bRCQ34nw4r3g3d6TexSrtQ44nw4r3g3d6TexSrt4Flag
CalcTexMtx_Basic__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34bRCQ34nw4r3g3d6TexSrtQ44nw4r3g3d6TexSrt4Flag:
/* 800E6A10 000E2850 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 800E6A14 000E2854 7C 08 02 A6 */ mflr r0
/* 800E6A18 000E2858 90 01 00 54 */ stw r0, 0x54(r1)
/* 800E6A1C 000E285C 54 C0 FF 7E */ extrwi r0, r6, 3, 28
/* 800E6A20 000E2860 28 00 00 07 */ cmplwi r0, 0x7
/* 800E6A24 000E2864 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 800E6A28 000E2868 7C BF 2B 78 */ mr r31, r5
/* 800E6A2C 000E286C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 800E6A30 000E2870 7C 9E 23 78 */ mr r30, r4
/* 800E6A34 000E2874 93 A1 00 44 */ stw r29, 0x44(r1)
/* 800E6A38 000E2878 7C 7D 1B 78 */ mr r29, r3
/* 800E6A3C 000E287C 40 82 00 0C */ bne lbl_800E6A48
/* 800E6A40 000E2880 38 60 00 00 */ li r3, 0x0
/* 800E6A44 000E2884 48 00 01 0C */ b lbl_800E6B50
.global lbl_800E6A48
lbl_800E6A48:
/* 800E6A48 000E2888 C0 25 00 08 */ lfs f1, 0x8(r5)
/* 800E6A4C 000E288C 38 61 00 0C */ addi r3, r1, 0xc
/* 800E6A50 000E2890 C0 02 90 F0 */ lfs f0, "@7058"@sda21(r2)
/* 800E6A54 000E2894 38 81 00 08 */ addi r4, r1, 0x8
/* 800E6A58 000E2898 EC 20 00 72 */ fmuls f1, f0, f1
/* 800E6A5C 000E289C 48 01 81 35 */ bl SinCosFIdx__Q24nw4r4mathFPfPff
/* 800E6A60 000E28A0 2C 1E 00 00 */ cmpwi r30, 0x0
/* 800E6A64 000E28A4 41 82 00 74 */ beq lbl_800E6AD8
/* 800E6A68 000E28A8 C0 FF 00 00 */ lfs f7, 0x0(r31)
/* 800E6A6C 000E28AC C0 01 00 08 */ lfs f0, 0x8(r1)
/* 800E6A70 000E28B0 C0 DF 00 04 */ lfs f6, 0x4(r31)
/* 800E6A74 000E28B4 EC 07 00 32 */ fmuls f0, f7, f0
/* 800E6A78 000E28B8 C0 62 90 F4 */ lfs f3, "@7059"@sda21(r2)
/* 800E6A7C 000E28BC FC A0 30 50 */ fneg f5, f6
/* 800E6A80 000E28C0 C0 5F 00 0C */ lfs f2, 0xc(r31)
/* 800E6A84 000E28C4 D0 1D 00 00 */ stfs f0, 0x0(r29)
/* 800E6A88 000E28C8 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 800E6A8C 000E28CC C0 81 00 0C */ lfs f4, 0xc(r1)
/* 800E6A90 000E28D0 C0 02 90 F8 */ lfs f0, "@7060"@sda21(r2)
/* 800E6A94 000E28D4 EC 85 01 32 */ fmuls f4, f5, f4
/* 800E6A98 000E28D8 D0 7D 00 08 */ stfs f3, 0x8(r29)
/* 800E6A9C 000E28DC D0 9D 00 04 */ stfs f4, 0x4(r29)
/* 800E6AA0 000E28E0 D0 5D 00 0C */ stfs f2, 0xc(r29)
/* 800E6AA4 000E28E4 C0 41 00 0C */ lfs f2, 0xc(r1)
/* 800E6AA8 000E28E8 EC 47 00 B2 */ fmuls f2, f7, f2
/* 800E6AAC 000E28EC D0 5D 00 10 */ stfs f2, 0x10(r29)
/* 800E6AB0 000E28F0 C0 41 00 08 */ lfs f2, 0x8(r1)
/* 800E6AB4 000E28F4 EC 46 00 B2 */ fmuls f2, f6, f2
/* 800E6AB8 000E28F8 D0 7D 00 18 */ stfs f3, 0x18(r29)
/* 800E6ABC 000E28FC D0 5D 00 14 */ stfs f2, 0x14(r29)
/* 800E6AC0 000E2900 D0 3D 00 1C */ stfs f1, 0x1c(r29)
/* 800E6AC4 000E2904 D0 7D 00 20 */ stfs f3, 0x20(r29)
/* 800E6AC8 000E2908 D0 7D 00 24 */ stfs f3, 0x24(r29)
/* 800E6ACC 000E290C D0 1D 00 28 */ stfs f0, 0x28(r29)
/* 800E6AD0 000E2910 D0 7D 00 2C */ stfs f3, 0x2c(r29)
/* 800E6AD4 000E2914 48 00 00 78 */ b lbl_800E6B4C
.global lbl_800E6AD8
lbl_800E6AD8:
/* 800E6AD8 000E2918 C0 5F 00 04 */ lfs f2, 0x4(r31)
/* 800E6ADC 000E291C 7F A4 EB 78 */ mr r4, r29
/* 800E6AE0 000E2920 C0 A2 90 F4 */ lfs f5, "@7059"@sda21(r2)
/* 800E6AE4 000E2924 7F A5 EB 78 */ mr r5, r29
/* 800E6AE8 000E2928 FC 20 10 50 */ fneg f1, f2
/* 800E6AEC 000E292C C0 61 00 08 */ lfs f3, 0x8(r1)
/* 800E6AF0 000E2930 C1 1F 00 00 */ lfs f8, 0x0(r31)
/* 800E6AF4 000E2934 38 61 00 10 */ addi r3, r1, 0x10
/* 800E6AF8 000E2938 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 800E6AFC 000E293C EC 42 00 F2 */ fmuls f2, f2, f3
/* 800E6B00 000E2940 EC E8 00 F2 */ fmuls f7, f8, f3
/* 800E6B04 000E2944 C0 9F 00 0C */ lfs f4, 0xc(r31)
/* 800E6B08 000E2948 EC C1 00 32 */ fmuls f6, f1, f0
/* 800E6B0C 000E294C C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 800E6B10 000E2950 EC 68 00 32 */ fmuls f3, f8, f0
/* 800E6B14 000E2954 C0 02 90 F8 */ lfs f0, "@7060"@sda21(r2)
/* 800E6B18 000E2958 D0 E1 00 10 */ stfs f7, 0x10(r1)
/* 800E6B1C 000E295C D0 C1 00 14 */ stfs f6, 0x14(r1)
/* 800E6B20 000E2960 D0 A1 00 18 */ stfs f5, 0x18(r1)
/* 800E6B24 000E2964 D0 81 00 1C */ stfs f4, 0x1c(r1)
/* 800E6B28 000E2968 D0 61 00 20 */ stfs f3, 0x20(r1)
/* 800E6B2C 000E296C D0 41 00 24 */ stfs f2, 0x24(r1)
/* 800E6B30 000E2970 D0 A1 00 28 */ stfs f5, 0x28(r1)
/* 800E6B34 000E2974 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 800E6B38 000E2978 D0 A1 00 30 */ stfs f5, 0x30(r1)
/* 800E6B3C 000E297C D0 A1 00 34 */ stfs f5, 0x34(r1)
/* 800E6B40 000E2980 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 800E6B44 000E2984 D0 A1 00 3C */ stfs f5, 0x3c(r1)
/* 800E6B48 000E2988 4B F4 9A 09 */ bl PSMTXConcat
.global lbl_800E6B4C
lbl_800E6B4C:
/* 800E6B4C 000E298C 38 60 00 01 */ li r3, 0x1
.global lbl_800E6B50
lbl_800E6B50:
/* 800E6B50 000E2990 80 01 00 54 */ lwz r0, 0x54(r1)
/* 800E6B54 000E2994 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 800E6B58 000E2998 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 800E6B5C 000E299C 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 800E6B60 000E29A0 7C 08 03 A6 */ mtlr r0
/* 800E6B64 000E29A4 38 21 00 50 */ addi r1, r1, 0x50
/* 800E6B68 000E29A8 4E 80 00 20 */ blr
/* 800E6B6C 000E29AC 00 00 00 00 */ .4byte 0x00000000
.global CalcWorldMtx_Basic__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34PQ34nw4r4math4VEC3PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3UlPCQ34nw4r3g3d12ChrAnmResult
CalcWorldMtx_Basic__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34PQ34nw4r4math4VEC3PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3UlPCQ34nw4r3g3d12ChrAnmResult:
/* 800E6B70 000E29B0 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 800E6B74 000E29B4 7C 08 02 A6 */ mflr r0
/* 800E6B78 000E29B8 90 01 00 64 */ stw r0, 0x64(r1)
/* 800E6B7C 000E29BC 39 61 00 60 */ addi r11, r1, 0x60
/* 800E6B80 000E29C0 4B F2 07 B9 */ bl lbl_80007338
/* 800E6B84 000E29C4 83 E8 00 00 */ lwz r31, 0x0(r8)
/* 800E6B88 000E29C8 7C 7A 1B 78 */ mr r26, r3
/* 800E6B8C 000E29CC 7C 9B 23 78 */ mr r27, r4
/* 800E6B90 000E29D0 7C BC 2B 78 */ mr r28, r5
/* 800E6B94 000E29D4 57 E0 07 BD */ rlwinm. r0, r31, 0, 30, 30
/* 800E6B98 000E29D8 7C FD 3B 78 */ mr r29, r7
/* 800E6B9C 000E29DC 7D 1E 43 78 */ mr r30, r8
/* 800E6BA0 000E29E0 40 82 00 0C */ bne lbl_800E6BAC
/* 800E6BA4 000E29E4 57 E0 07 7B */ rlwinm. r0, r31, 0, 29, 29
/* 800E6BA8 000E29E8 41 82 00 30 */ beq lbl_800E6BD8
.global lbl_800E6BAC
lbl_800E6BAC:
/* 800E6BAC 000E29EC 54 E0 00 43 */ rlwinm. r0, r7, 0, 1, 1
/* 800E6BB0 000E29F0 41 82 00 14 */ beq lbl_800E6BC4
/* 800E6BB4 000E29F4 7F 83 E3 78 */ mr r3, r28
/* 800E6BB8 000E29F8 7F 44 D3 78 */ mr r4, r26
/* 800E6BBC 000E29FC 4B F4 99 55 */ bl PSMTXCopy
/* 800E6BC0 000E2A00 48 00 00 B4 */ b lbl_800E6C74
.global lbl_800E6BC4
lbl_800E6BC4:
/* 800E6BC4 000E2A04 7F 43 D3 78 */ mr r3, r26
/* 800E6BC8 000E2A08 7F 84 E3 78 */ mr r4, r28
/* 800E6BCC 000E2A0C 7C C5 33 78 */ mr r5, r6
/* 800E6BD0 000E2A10 48 01 82 81 */ bl MTX34Scale__Q24nw4r4mathFPQ34nw4r4math5MTX34PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3
/* 800E6BD4 000E2A14 48 00 00 A0 */ b lbl_800E6C74
.global lbl_800E6BD8
lbl_800E6BD8:
/* 800E6BD8 000E2A18 57 E0 06 B5 */ rlwinm. r0, r31, 0, 26, 26
/* 800E6BDC 000E2A1C 41 82 00 60 */ beq lbl_800E6C3C
/* 800E6BE0 000E2A20 54 E0 00 43 */ rlwinm. r0, r7, 0, 1, 1
/* 800E6BE4 000E2A24 41 82 00 2C */ beq lbl_800E6C10
/* 800E6BE8 000E2A28 C0 48 00 48 */ lfs f2, 0x48(r8)
/* 800E6BEC 000E2A2C 7F 84 E3 78 */ mr r4, r28
/* 800E6BF0 000E2A30 C0 28 00 38 */ lfs f1, 0x38(r8)
/* 800E6BF4 000E2A34 38 A1 00 08 */ addi r5, r1, 0x8
/* 800E6BF8 000E2A38 C0 08 00 28 */ lfs f0, 0x28(r8)
/* 800E6BFC 000E2A3C D0 01 00 08 */ stfs f0, 0x8(r1)
/* 800E6C00 000E2A40 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 800E6C04 000E2A44 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 800E6C08 000E2A48 48 01 82 A9 */ bl MTX34Trans__Q24nw4r4mathFPQ34nw4r4math5MTX34PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3
/* 800E6C0C 000E2A4C 48 00 00 68 */ b lbl_800E6C74
.global lbl_800E6C10
lbl_800E6C10:
/* 800E6C10 000E2A50 C0 26 00 00 */ lfs f1, 0x0(r6)
/* 800E6C14 000E2A54 38 68 00 1C */ addi r3, r8, 0x1c
/* 800E6C18 000E2A58 C0 46 00 04 */ lfs f2, 0x4(r6)
/* 800E6C1C 000E2A5C 38 81 00 18 */ addi r4, r1, 0x18
/* 800E6C20 000E2A60 C0 66 00 08 */ lfs f3, 0x8(r6)
/* 800E6C24 000E2A64 4B F4 9F FD */ bl PSMTXScaleApply
/* 800E6C28 000E2A68 7F 83 E3 78 */ mr r3, r28
/* 800E6C2C 000E2A6C 7F 45 D3 78 */ mr r5, r26
/* 800E6C30 000E2A70 38 81 00 18 */ addi r4, r1, 0x18
/* 800E6C34 000E2A74 4B F4 99 1D */ bl PSMTXConcat
/* 800E6C38 000E2A78 48 00 00 3C */ b lbl_800E6C74
.global lbl_800E6C3C
lbl_800E6C3C:
/* 800E6C3C 000E2A7C 54 E0 00 43 */ rlwinm. r0, r7, 0, 1, 1
/* 800E6C40 000E2A80 41 82 00 18 */ beq lbl_800E6C58
/* 800E6C44 000E2A84 7F 83 E3 78 */ mr r3, r28
/* 800E6C48 000E2A88 7F 45 D3 78 */ mr r5, r26
/* 800E6C4C 000E2A8C 38 88 00 1C */ addi r4, r8, 0x1c
/* 800E6C50 000E2A90 4B F4 99 01 */ bl PSMTXConcat
/* 800E6C54 000E2A94 48 00 00 20 */ b lbl_800E6C74
.global lbl_800E6C58
lbl_800E6C58:
/* 800E6C58 000E2A98 7F 84 E3 78 */ mr r4, r28
/* 800E6C5C 000E2A9C 7C C5 33 78 */ mr r5, r6
/* 800E6C60 000E2AA0 48 01 81 F1 */ bl MTX34Scale__Q24nw4r4mathFPQ34nw4r4math5MTX34PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3
/* 800E6C64 000E2AA4 7F 43 D3 78 */ mr r3, r26
/* 800E6C68 000E2AA8 7F 45 D3 78 */ mr r5, r26
/* 800E6C6C 000E2AAC 38 9E 00 1C */ addi r4, r30, 0x1c
/* 800E6C70 000E2AB0 4B F4 98 E1 */ bl PSMTXConcat
.global lbl_800E6C74
lbl_800E6C74:
/* 800E6C74 000E2AB4 57 E0 07 39 */ rlwinm. r0, r31, 0, 28, 28
/* 800E6C78 000E2AB8 41 82 00 1C */ beq lbl_800E6C94
/* 800E6C7C 000E2ABC C0 02 90 F8 */ lfs f0, "@7060"@sda21(r2)
/* 800E6C80 000E2AC0 67 A4 40 00 */ oris r4, r29, 0x4000
/* 800E6C84 000E2AC4 D0 1B 00 08 */ stfs f0, 0x8(r27)
/* 800E6C88 000E2AC8 D0 1B 00 04 */ stfs f0, 0x4(r27)
/* 800E6C8C 000E2ACC D0 1B 00 00 */ stfs f0, 0x0(r27)
/* 800E6C90 000E2AD0 48 00 00 20 */ b lbl_800E6CB0
.global lbl_800E6C94
lbl_800E6C94:
/* 800E6C94 000E2AD4 C0 1E 00 04 */ lfs f0, 0x4(r30)
/* 800E6C98 000E2AD8 57 A4 00 BE */ clrlwi r4, r29, 2
/* 800E6C9C 000E2ADC D0 1B 00 00 */ stfs f0, 0x0(r27)
/* 800E6CA0 000E2AE0 C0 1E 00 08 */ lfs f0, 0x8(r30)
/* 800E6CA4 000E2AE4 D0 1B 00 04 */ stfs f0, 0x4(r27)
/* 800E6CA8 000E2AE8 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 800E6CAC 000E2AEC D0 1B 00 08 */ stfs f0, 0x8(r27)
.global lbl_800E6CB0
lbl_800E6CB0:
/* 800E6CB0 000E2AF0 57 E0 06 F7 */ rlwinm. r0, r31, 0, 27, 27
/* 800E6CB4 000E2AF4 54 83 01 3E */ clrlwi r3, r4, 4
/* 800E6CB8 000E2AF8 41 82 00 08 */ beq lbl_800E6CC0
/* 800E6CBC 000E2AFC 64 83 10 00 */ oris r3, r4, 0x1000
.global lbl_800E6CC0
lbl_800E6CC0:
/* 800E6CC0 000E2B00 39 61 00 60 */ addi r11, r1, 0x60
/* 800E6CC4 000E2B04 4B F2 06 C1 */ bl lbl_80007384
/* 800E6CC8 000E2B08 80 01 00 64 */ lwz r0, 0x64(r1)
/* 800E6CCC 000E2B0C 7C 08 03 A6 */ mtlr r0
/* 800E6CD0 000E2B10 38 21 00 60 */ addi r1, r1, 0x60
/* 800E6CD4 000E2B14 4E 80 00 20 */ blr
/* 800E6CD8 000E2B18 00 00 00 00 */ .4byte 0x00000000
/* 800E6CDC 000E2B1C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .sdata2, "wa" # 0x8055DF80 - 0x805643C0 ; 0x00006440
.global "@7058"
"@7058":
.4byte 0x3F360B61
.global "@7059"
"@7059":
.4byte 0
.global "@7060"
"@7060":
.4byte 0x3F800000
.4byte 0