tp/asm/d/d_drawlist/func_8005312C.s

332 lines
14 KiB
ArmAsm

lbl_8005312C:
/* 8005312C 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 80053130 7C 08 02 A6 */ mflr r0
/* 80053134 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 80053138 DB E1 00 C0 */ stfd f31, 0xc0(r1)
/* 8005313C F3 E1 00 C8 */ psq_st f31, 200(r1), 0, 0 /* qr0 */
/* 80053140 DB C1 00 B0 */ stfd f30, 0xb0(r1)
/* 80053144 F3 C1 00 B8 */ psq_st f30, 184(r1), 0, 0 /* qr0 */
/* 80053148 39 61 00 B0 */ addi r11, r1, 0xb0
/* 8005314C 48 30 F0 79 */ bl _savegpr_23
/* 80053150 7C 77 1B 78 */ mr r23, r3
/* 80053154 AB E3 00 48 */ lha r31, 0x48(r3)
/* 80053158 AB C3 00 4A */ lha r30, 0x4a(r3)
/* 8005315C C0 42 86 30 */ lfs f2, lit_4360(r2)
/* 80053160 C8 22 86 20 */ lfd f1, lit_4079(r2)
/* 80053164 6F E0 80 00 */ xoris r0, r31, 0x8000
/* 80053168 90 01 00 14 */ stw r0, 0x14(r1)
/* 8005316C 3C 60 43 30 */ lis r3, 0x4330
/* 80053170 90 61 00 10 */ stw r3, 0x10(r1)
/* 80053174 C8 01 00 10 */ lfd f0, 0x10(r1)
/* 80053178 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005317C EC 02 00 2A */ fadds f0, f2, f0
/* 80053180 FC 00 00 1E */ fctiwz f0, f0
/* 80053184 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 80053188 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 8005318C 6F C0 80 00 */ xoris r0, r30, 0x8000
/* 80053190 90 01 00 24 */ stw r0, 0x24(r1)
/* 80053194 90 61 00 20 */ stw r3, 0x20(r1)
/* 80053198 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 8005319C EC 00 08 28 */ fsubs f0, f0, f1
/* 800531A0 EC 02 00 2A */ fadds f0, f2, f0
/* 800531A4 FC 00 00 1E */ fctiwz f0, f0
/* 800531A8 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 800531AC 83 81 00 2C */ lwz r28, 0x2c(r1)
/* 800531B0 38 77 00 50 */ addi r3, r23, 0x50
/* 800531B4 48 30 B0 85 */ bl GXGetTexObjWidth
/* 800531B8 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 800531BC C8 22 86 18 */ lfd f1, lit_4076(r2)
/* 800531C0 90 01 00 34 */ stw r0, 0x34(r1)
/* 800531C4 3C 00 43 30 */ lis r0, 0x4330
/* 800531C8 90 01 00 30 */ stw r0, 0x30(r1)
/* 800531CC C8 01 00 30 */ lfd f0, 0x30(r1)
/* 800531D0 EC 40 08 28 */ fsubs f2, f0, f1
/* 800531D4 C0 22 86 30 */ lfs f1, lit_4360(r2)
/* 800531D8 C0 17 00 0C */ lfs f0, 0xc(r23)
/* 800531DC EC 01 00 32 */ fmuls f0, f1, f0
/* 800531E0 EF E0 10 24 */ fdivs f31, f0, f2
/* 800531E4 38 77 00 50 */ addi r3, r23, 0x50
/* 800531E8 48 30 B0 61 */ bl GXGetTexObjHeight
/* 800531EC 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 800531F0 C8 22 86 18 */ lfd f1, lit_4076(r2)
/* 800531F4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 800531F8 3C 60 43 30 */ lis r3, 0x4330
/* 800531FC 90 61 00 38 */ stw r3, 0x38(r1)
/* 80053200 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 80053204 EC 40 08 28 */ fsubs f2, f0, f1
/* 80053208 C0 22 86 30 */ lfs f1, lit_4360(r2)
/* 8005320C C0 17 00 10 */ lfs f0, 0x10(r23)
/* 80053210 EC 01 00 32 */ fmuls f0, f1, f0
/* 80053214 EF C0 10 24 */ fdivs f30, f0, f2
/* 80053218 A8 17 00 7C */ lha r0, 0x7c(r23)
/* 8005321C C8 22 86 20 */ lfd f1, lit_4079(r2)
/* 80053220 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80053224 90 01 00 44 */ stw r0, 0x44(r1)
/* 80053228 90 61 00 40 */ stw r3, 0x40(r1)
/* 8005322C C8 01 00 40 */ lfd f0, 0x40(r1)
/* 80053230 EC 00 08 28 */ fsubs f0, f0, f1
/* 80053234 EC 00 07 F2 */ fmuls f0, f0, f31
/* 80053238 FC 00 00 1E */ fctiwz f0, f0
/* 8005323C D8 01 00 48 */ stfd f0, 0x48(r1)
/* 80053240 83 61 00 4C */ lwz r27, 0x4c(r1)
/* 80053244 A8 17 00 7E */ lha r0, 0x7e(r23)
/* 80053248 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8005324C 90 01 00 54 */ stw r0, 0x54(r1)
/* 80053250 90 61 00 50 */ stw r3, 0x50(r1)
/* 80053254 C8 01 00 50 */ lfd f0, 0x50(r1)
/* 80053258 EC 00 08 28 */ fsubs f0, f0, f1
/* 8005325C EC 00 07 B2 */ fmuls f0, f0, f30
/* 80053260 FC 00 00 1E */ fctiwz f0, f0
/* 80053264 D8 01 00 58 */ stfd f0, 0x58(r1)
/* 80053268 83 41 00 5C */ lwz r26, 0x5c(r1)
/* 8005326C 38 77 00 1C */ addi r3, r23, 0x1c
/* 80053270 48 30 AF C9 */ bl GXGetTexObjWidth
/* 80053274 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 80053278 C8 22 86 18 */ lfd f1, lit_4076(r2)
/* 8005327C 90 01 00 64 */ stw r0, 0x64(r1)
/* 80053280 3C 00 43 30 */ lis r0, 0x4330
/* 80053284 90 01 00 60 */ stw r0, 0x60(r1)
/* 80053288 C8 01 00 60 */ lfd f0, 0x60(r1)
/* 8005328C EC 00 08 28 */ fsubs f0, f0, f1
/* 80053290 EC 1F 00 32 */ fmuls f0, f31, f0
/* 80053294 FC 00 00 1E */ fctiwz f0, f0
/* 80053298 D8 01 00 68 */ stfd f0, 0x68(r1)
/* 8005329C 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 800532A0 7C 1B 02 14 */ add r0, r27, r0
/* 800532A4 7C 19 07 34 */ extsh r25, r0
/* 800532A8 38 77 00 1C */ addi r3, r23, 0x1c
/* 800532AC 48 30 AF 9D */ bl GXGetTexObjHeight
/* 800532B0 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 800532B4 C8 22 86 18 */ lfd f1, lit_4076(r2)
/* 800532B8 90 01 00 74 */ stw r0, 0x74(r1)
/* 800532BC 3C 00 43 30 */ lis r0, 0x4330
/* 800532C0 90 01 00 70 */ stw r0, 0x70(r1)
/* 800532C4 C8 01 00 70 */ lfd f0, 0x70(r1)
/* 800532C8 EC 00 08 28 */ fsubs f0, f0, f1
/* 800532CC EC 1E 00 32 */ fmuls f0, f30, f0
/* 800532D0 FC 00 00 1E */ fctiwz f0, f0
/* 800532D4 D8 01 00 78 */ stfd f0, 0x78(r1)
/* 800532D8 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 800532DC 7C 1A 02 14 */ add r0, r26, r0
/* 800532E0 7C 18 07 34 */ extsh r24, r0
/* 800532E4 38 60 00 00 */ li r3, 0
/* 800532E8 38 80 00 09 */ li r4, 9
/* 800532EC 38 A0 00 01 */ li r5, 1
/* 800532F0 38 C0 00 03 */ li r6, 3
/* 800532F4 38 E0 00 00 */ li r7, 0
/* 800532F8 48 30 82 CD */ bl GXSetVtxAttrFmt
/* 800532FC 38 60 00 00 */ li r3, 0
/* 80053300 38 80 00 0D */ li r4, 0xd
/* 80053304 38 A0 00 01 */ li r5, 1
/* 80053308 38 C0 00 03 */ li r6, 3
/* 8005330C 38 E0 00 08 */ li r7, 8
/* 80053310 48 30 82 B5 */ bl GXSetVtxAttrFmt
/* 80053314 38 60 00 00 */ li r3, 0
/* 80053318 38 80 00 0E */ li r4, 0xe
/* 8005331C 38 A0 00 01 */ li r5, 1
/* 80053320 38 C0 00 03 */ li r6, 3
/* 80053324 38 E0 00 08 */ li r7, 8
/* 80053328 48 30 82 9D */ bl GXSetVtxAttrFmt
/* 8005332C 48 30 82 61 */ bl GXClearVtxDesc
/* 80053330 38 60 00 09 */ li r3, 9
/* 80053334 38 80 00 01 */ li r4, 1
/* 80053338 48 30 7B 81 */ bl GXSetVtxDesc
/* 8005333C 38 60 00 0D */ li r3, 0xd
/* 80053340 38 80 00 01 */ li r4, 1
/* 80053344 48 30 7B 75 */ bl GXSetVtxDesc
/* 80053348 38 60 00 0E */ li r3, 0xe
/* 8005334C 38 80 00 01 */ li r4, 1
/* 80053350 48 30 7B 69 */ bl GXSetVtxDesc
/* 80053354 38 77 00 1C */ addi r3, r23, 0x1c
/* 80053358 38 80 00 00 */ li r4, 0
/* 8005335C 48 30 B0 B9 */ bl GXLoadTexObj
/* 80053360 88 17 00 4C */ lbz r0, 0x4c(r23)
/* 80053364 28 00 00 00 */ cmplwi r0, 0
/* 80053368 41 82 00 18 */ beq lbl_80053380
/* 8005336C 38 77 00 1C */ addi r3, r23, 0x1c
/* 80053370 48 30 AF 21 */ bl GXGetTexObjTlut
/* 80053374 7C 64 1B 78 */ mr r4, r3
/* 80053378 38 77 00 3C */ addi r3, r23, 0x3c
/* 8005337C 48 30 B1 25 */ bl GXLoadTlut
lbl_80053380:
/* 80053380 38 77 00 50 */ addi r3, r23, 0x50
/* 80053384 38 80 00 01 */ li r4, 1
/* 80053388 48 30 B0 8D */ bl GXLoadTexObj
/* 8005338C 88 17 00 80 */ lbz r0, 0x80(r23)
/* 80053390 28 00 00 00 */ cmplwi r0, 0
/* 80053394 41 82 00 18 */ beq lbl_800533AC
/* 80053398 38 77 00 50 */ addi r3, r23, 0x50
/* 8005339C 48 30 AE F5 */ bl GXGetTexObjTlut
/* 800533A0 7C 64 1B 78 */ mr r4, r3
/* 800533A4 38 77 00 70 */ addi r3, r23, 0x70
/* 800533A8 48 30 B0 F9 */ bl GXLoadTlut
lbl_800533AC:
/* 800533AC 38 60 00 00 */ li r3, 0
/* 800533B0 48 30 A7 81 */ bl GXSetNumChans
/* 800533B4 80 17 00 14 */ lwz r0, 0x14(r23)
/* 800533B8 90 01 00 0C */ stw r0, 0xc(r1)
/* 800533BC 38 60 00 01 */ li r3, 1
/* 800533C0 38 81 00 0C */ addi r4, r1, 0xc
/* 800533C4 48 30 BF B9 */ bl GXSetTevColor
/* 800533C8 80 17 00 18 */ lwz r0, 0x18(r23)
/* 800533CC 90 01 00 08 */ stw r0, 8(r1)
/* 800533D0 38 60 00 02 */ li r3, 2
/* 800533D4 38 81 00 08 */ addi r4, r1, 8
/* 800533D8 48 30 BF A5 */ bl GXSetTevColor
/* 800533DC 38 60 00 02 */ li r3, 2
/* 800533E0 48 30 8A 1D */ bl GXSetNumTexGens
/* 800533E4 38 60 00 00 */ li r3, 0
/* 800533E8 38 80 00 01 */ li r4, 1
/* 800533EC 38 A0 00 04 */ li r5, 4
/* 800533F0 38 C0 00 3C */ li r6, 0x3c
/* 800533F4 38 E0 00 00 */ li r7, 0
/* 800533F8 39 00 00 7D */ li r8, 0x7d
/* 800533FC 48 30 87 81 */ bl GXSetTexCoordGen2
/* 80053400 38 60 00 01 */ li r3, 1
/* 80053404 38 80 00 01 */ li r4, 1
/* 80053408 38 A0 00 05 */ li r5, 5
/* 8005340C 38 C0 00 3C */ li r6, 0x3c
/* 80053410 38 E0 00 00 */ li r7, 0
/* 80053414 39 00 00 7D */ li r8, 0x7d
/* 80053418 48 30 87 65 */ bl GXSetTexCoordGen2
/* 8005341C 38 60 00 02 */ li r3, 2
/* 80053420 48 30 C4 71 */ bl GXSetNumTevStages
/* 80053424 38 60 00 00 */ li r3, 0
/* 80053428 38 80 00 00 */ li r4, 0
/* 8005342C 38 A0 00 00 */ li r5, 0
/* 80053430 38 C0 00 FF */ li r6, 0xff
/* 80053434 48 30 C2 C1 */ bl GXSetTevOrder
/* 80053438 38 60 00 00 */ li r3, 0
/* 8005343C 38 80 00 04 */ li r4, 4
/* 80053440 38 A0 00 02 */ li r5, 2
/* 80053444 38 C0 00 08 */ li r6, 8
/* 80053448 38 E0 00 0F */ li r7, 0xf
/* 8005344C 48 30 BD D9 */ bl GXSetTevColorIn
/* 80053450 38 60 00 00 */ li r3, 0
/* 80053454 38 80 00 00 */ li r4, 0
/* 80053458 38 A0 00 00 */ li r5, 0
/* 8005345C 38 C0 00 00 */ li r6, 0
/* 80053460 38 E0 00 01 */ li r7, 1
/* 80053464 39 00 00 00 */ li r8, 0
/* 80053468 48 30 BE 45 */ bl GXSetTevColorOp
/* 8005346C 38 60 00 00 */ li r3, 0
/* 80053470 38 80 00 02 */ li r4, 2
/* 80053474 38 A0 00 01 */ li r5, 1
/* 80053478 38 C0 00 04 */ li r6, 4
/* 8005347C 38 E0 00 07 */ li r7, 7
/* 80053480 48 30 BD E9 */ bl GXSetTevAlphaIn
/* 80053484 38 60 00 00 */ li r3, 0
/* 80053488 38 80 00 00 */ li r4, 0
/* 8005348C 38 A0 00 00 */ li r5, 0
/* 80053490 38 C0 00 00 */ li r6, 0
/* 80053494 38 E0 00 01 */ li r7, 1
/* 80053498 39 00 00 00 */ li r8, 0
/* 8005349C 48 30 BE 79 */ bl GXSetTevAlphaOp
/* 800534A0 38 60 00 01 */ li r3, 1
/* 800534A4 38 80 00 01 */ li r4, 1
/* 800534A8 38 A0 00 01 */ li r5, 1
/* 800534AC 38 C0 00 FF */ li r6, 0xff
/* 800534B0 48 30 C2 45 */ bl GXSetTevOrder
/* 800534B4 38 60 00 01 */ li r3, 1
/* 800534B8 38 80 00 0F */ li r4, 0xf
/* 800534BC 38 A0 00 08 */ li r5, 8
/* 800534C0 38 C0 00 00 */ li r6, 0
/* 800534C4 38 E0 00 0F */ li r7, 0xf
/* 800534C8 48 30 BD 5D */ bl GXSetTevColorIn
/* 800534CC 38 60 00 01 */ li r3, 1
/* 800534D0 38 80 00 00 */ li r4, 0
/* 800534D4 38 A0 00 00 */ li r5, 0
/* 800534D8 38 C0 00 00 */ li r6, 0
/* 800534DC 38 E0 00 01 */ li r7, 1
/* 800534E0 39 00 00 00 */ li r8, 0
/* 800534E4 48 30 BD C9 */ bl GXSetTevColorOp
/* 800534E8 38 60 00 01 */ li r3, 1
/* 800534EC 38 80 00 07 */ li r4, 7
/* 800534F0 38 A0 00 04 */ li r5, 4
/* 800534F4 38 C0 00 00 */ li r6, 0
/* 800534F8 38 E0 00 07 */ li r7, 7
/* 800534FC 48 30 BD 6D */ bl GXSetTevAlphaIn
/* 80053500 38 60 00 01 */ li r3, 1
/* 80053504 38 80 00 00 */ li r4, 0
/* 80053508 38 A0 00 00 */ li r5, 0
/* 8005350C 38 C0 00 00 */ li r6, 0
/* 80053510 38 E0 00 01 */ li r7, 1
/* 80053514 39 00 00 00 */ li r8, 0
/* 80053518 48 30 BD FD */ bl GXSetTevAlphaOp
/* 8005351C 38 60 00 04 */ li r3, 4
/* 80053520 38 80 00 00 */ li r4, 0
/* 80053524 38 A0 00 01 */ li r5, 1
/* 80053528 38 C0 00 04 */ li r6, 4
/* 8005352C 38 E0 00 00 */ li r7, 0
/* 80053530 48 30 C0 F5 */ bl GXSetAlphaCompare
/* 80053534 38 60 00 01 */ li r3, 1
/* 80053538 38 80 00 04 */ li r4, 4
/* 8005353C 38 A0 00 05 */ li r5, 5
/* 80053540 38 C0 00 0F */ li r6, 0xf
/* 80053544 48 30 C6 AD */ bl GXSetBlendMode
/* 80053548 3C 60 80 3A */ lis r3, g_mDoMtx_identity@ha /* 0x803A2FD8@ha */
/* 8005354C 38 63 2F D8 */ addi r3, r3, g_mDoMtx_identity@l /* 0x803A2FD8@l */
/* 80053550 38 80 00 00 */ li r4, 0
/* 80053554 48 30 CC F9 */ bl GXLoadPosMtxImm
/* 80053558 38 60 00 00 */ li r3, 0
/* 8005355C 48 30 CD 91 */ bl GXSetCurrentMtx
/* 80053560 38 60 00 80 */ li r3, 0x80
/* 80053564 38 80 00 00 */ li r4, 0
/* 80053568 38 A0 00 04 */ li r5, 4
/* 8005356C 48 30 91 F9 */ bl GXBegin
/* 80053570 A8 77 00 06 */ lha r3, 6(r23)
/* 80053574 A8 17 00 04 */ lha r0, 4(r23)
/* 80053578 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */
/* 8005357C B0 05 80 00 */ sth r0, 0x8000(r5) /* 0xCC008000@l */
/* 80053580 B0 65 80 00 */ sth r3, -0x8000(r5)
/* 80053584 38 80 00 00 */ li r4, 0
/* 80053588 B0 85 80 00 */ sth r4, -0x8000(r5)
/* 8005358C B3 E5 80 00 */ sth r31, -0x8000(r5)
/* 80053590 B3 C5 80 00 */ sth r30, -0x8000(r5)
/* 80053594 B3 65 80 00 */ sth r27, -0x8000(r5)
/* 80053598 B3 45 80 00 */ sth r26, -0x8000(r5)
/* 8005359C A8 77 00 06 */ lha r3, 6(r23)
/* 800535A0 A8 17 00 08 */ lha r0, 8(r23)
/* 800535A4 B0 05 80 00 */ sth r0, -0x8000(r5)
/* 800535A8 B0 65 80 00 */ sth r3, -0x8000(r5)
/* 800535AC B0 85 80 00 */ sth r4, -0x8000(r5)
/* 800535B0 B3 A5 80 00 */ sth r29, -0x8000(r5)
/* 800535B4 B3 C5 80 00 */ sth r30, -0x8000(r5)
/* 800535B8 B3 25 80 00 */ sth r25, -0x8000(r5)
/* 800535BC B3 45 80 00 */ sth r26, -0x8000(r5)
/* 800535C0 A8 77 00 0A */ lha r3, 0xa(r23)
/* 800535C4 A8 17 00 08 */ lha r0, 8(r23)
/* 800535C8 B0 05 80 00 */ sth r0, -0x8000(r5)
/* 800535CC B0 65 80 00 */ sth r3, -0x8000(r5)
/* 800535D0 B0 85 80 00 */ sth r4, -0x8000(r5)
/* 800535D4 B3 A5 80 00 */ sth r29, -0x8000(r5)
/* 800535D8 B3 85 80 00 */ sth r28, -0x8000(r5)
/* 800535DC B3 25 80 00 */ sth r25, -0x8000(r5)
/* 800535E0 B3 05 80 00 */ sth r24, -0x8000(r5)
/* 800535E4 A8 77 00 0A */ lha r3, 0xa(r23)
/* 800535E8 A8 17 00 04 */ lha r0, 4(r23)
/* 800535EC B0 05 80 00 */ sth r0, -0x8000(r5)
/* 800535F0 B0 65 80 00 */ sth r3, -0x8000(r5)
/* 800535F4 B0 85 80 00 */ sth r4, -0x8000(r5)
/* 800535F8 B3 E5 80 00 */ sth r31, -0x8000(r5)
/* 800535FC B3 85 80 00 */ sth r28, -0x8000(r5)
/* 80053600 B3 65 80 00 */ sth r27, -0x8000(r5)
/* 80053604 B3 05 80 00 */ sth r24, -0x8000(r5)
/* 80053608 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8005360C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80053610 80 63 5F 50 */ lwz r3, 0x5f50(r3)
/* 80053614 81 83 00 00 */ lwz r12, 0(r3)
/* 80053618 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 8005361C 7D 89 03 A6 */ mtctr r12
/* 80053620 4E 80 04 21 */ bctrl
/* 80053624 E3 E1 00 C8 */ psq_l f31, 200(r1), 0, 0 /* qr0 */
/* 80053628 CB E1 00 C0 */ lfd f31, 0xc0(r1)
/* 8005362C E3 C1 00 B8 */ psq_l f30, 184(r1), 0, 0 /* qr0 */
/* 80053630 CB C1 00 B0 */ lfd f30, 0xb0(r1)
/* 80053634 39 61 00 B0 */ addi r11, r1, 0xb0
/* 80053638 48 30 EB D9 */ bl _restgpr_23
/* 8005363C 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 80053640 7C 08 03 A6 */ mtlr r0
/* 80053644 38 21 00 D0 */ addi r1, r1, 0xd0
/* 80053648 4E 80 00 20 */ blr