Merge branch 'master' of https://github.com/zeldaret/tp into work11

This commit is contained in:
Trueffeloot
2023-07-10 12:03:27 +02:00
52 changed files with 593 additions and 2070 deletions
+4 -4
View File
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 28.125334% | 1011540 | 3596544
.text | 28.299278% | 1017796 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 35.702390% | 1435476 | 4020672
Total | 35.857986% | 1441732 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 35.702390% | 1435476 | 4020672
main.dol | 35.857986% | 1441732 | 4020672
RELs | 33.847533% | 3892576 | 11500324
Total | 34.328029% | 5328052 | 15520996
Total | 34.368336% | 5334308 | 15520996
## RELs
+4 -2
View File
@@ -1,5 +1,7 @@
# The Legend of Zelda: Twilight Princess
# The Legend of Zelda: Twilight Princess ![Code Progress] ![Dol Progress] ![Rels Progress]
[Code Progress]: https://img.shields.io/endpoint?label=Code&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Ftwilightprincess%2Fgcn_usa%2Fdefault%2F%3Fmode%3Dshield%26measure%3Dcode
[Dol Progress]: https://img.shields.io/endpoint?label=Dol&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Ftwilightprincess%2Fgcn_usa%2Fdefault%2F%3Fmode%3Dshield%26measure%3Ddol
[Rels Progress]: https://img.shields.io/endpoint?label=Rels&url=https%3A%2F%2Fprogress.deco.mp%2Fdata%2Ftwilightprincess%2Fgcn_usa%2Fdefault%2F%3Fmode%3Dshield%26measure%3Drels
This repo contains a WIP decompilation of The Legend of Zelda: Twilight Princess (GCN USA).
<!--ts-->
@@ -1,26 +0,0 @@
lbl_80316A54:
/* 80316A54 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316A58 7C 08 02 A6 */ mflr r0
/* 80316A5C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316A60 3C A0 80 43 */ lis r5, j3dSys@ha /* 0x80434AC8@ha */
/* 80316A64 38 A5 4A C8 */ addi r5, r5, j3dSys@l /* 0x80434AC8@l */
/* 80316A68 80 05 00 34 */ lwz r0, 0x34(r5)
/* 80316A6C 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 80316A70 41 82 00 1C */ beq lbl_80316A8C
/* 80316A74 80 63 00 28 */ lwz r3, 0x28(r3)
/* 80316A78 81 83 00 00 */ lwz r12, 0(r3)
/* 80316A7C 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80316A80 7D 89 03 A6 */ mtctr r12
/* 80316A84 4E 80 04 21 */ bctrl
/* 80316A88 48 00 00 18 */ b lbl_80316AA0
lbl_80316A8C:
/* 80316A8C 80 63 00 28 */ lwz r3, 0x28(r3)
/* 80316A90 81 83 00 00 */ lwz r12, 0(r3)
/* 80316A94 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316A98 7D 89 03 A6 */ mtctr r12
/* 80316A9C 4E 80 04 21 */ bctrl
lbl_80316AA0:
/* 80316AA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316AA4 7C 08 03 A6 */ mtlr r0
/* 80316AA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80316AAC 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_80316100:
/* 80316100 38 A0 00 00 */ li r5, 0
/* 80316104 2C 03 00 00 */ cmpwi r3, 0
/* 80316108 41 82 00 2C */ beq lbl_80316134
/* 8031610C 40 80 00 18 */ bge lbl_80316124
/* 80316110 3C 80 80 00 */ lis r4, 0x8000 /* 0x80000001@ha */
/* 80316114 38 04 00 01 */ addi r0, r4, 0x0001 /* 0x80000001@l */
/* 80316118 7C 03 00 00 */ cmpw r3, r0
/* 8031611C 40 80 00 2C */ bge lbl_80316148
/* 80316120 48 00 00 24 */ b lbl_80316144
lbl_80316124:
/* 80316124 3C 00 40 00 */ lis r0, 0x4000
/* 80316128 7C 03 00 00 */ cmpw r3, r0
/* 8031612C 41 82 00 10 */ beq lbl_8031613C
/* 80316130 48 00 00 18 */ b lbl_80316148
lbl_80316134:
/* 80316134 38 A0 00 20 */ li r5, 0x20
/* 80316138 48 00 00 10 */ b lbl_80316148
lbl_8031613C:
/* 8031613C 38 A0 00 4C */ li r5, 0x4c
/* 80316140 48 00 00 08 */ b lbl_80316148
lbl_80316144:
/* 80316144 38 A0 00 28 */ li r5, 0x28
lbl_80316148:
/* 80316148 7C A3 2B 78 */ mr r3, r5
/* 8031614C 4E 80 00 20 */ blr
@@ -1,6 +0,0 @@
lbl_803161C4:
/* 803161C4 2C 03 00 00 */ cmpwi r3, 0
/* 803161C8 38 60 00 04 */ li r3, 4
/* 803161CC 4D 82 00 20 */ beqlr
/* 803161D0 38 60 00 7C */ li r3, 0x7c
/* 803161D4 4E 80 00 20 */ blr
@@ -1,32 +0,0 @@
lbl_803161D8:
/* 803161D8 38 A0 00 00 */ li r5, 0
/* 803161DC 28 03 00 00 */ cmplwi r3, 0
/* 803161E0 40 82 00 34 */ bne lbl_80316214
/* 803161E4 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 803161E8 41 82 00 0C */ beq lbl_803161F4
/* 803161EC 38 A0 00 04 */ li r5, 4
/* 803161F0 48 00 00 48 */ b lbl_80316238
lbl_803161F4:
/* 803161F4 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 803161F8 41 82 00 0C */ beq lbl_80316204
/* 803161FC 38 A0 00 04 */ li r5, 4
/* 80316200 48 00 00 38 */ b lbl_80316238
lbl_80316204:
/* 80316204 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
/* 80316208 41 82 00 30 */ beq lbl_80316238
/* 8031620C 38 A0 00 04 */ li r5, 4
/* 80316210 48 00 00 28 */ b lbl_80316238
lbl_80316214:
/* 80316214 3C 03 F0 00 */ addis r0, r3, 0xf000
/* 80316218 28 00 00 00 */ cmplwi r0, 0
/* 8031621C 40 82 00 0C */ bne lbl_80316228
/* 80316220 38 A0 00 40 */ li r5, 0x40
/* 80316224 48 00 00 14 */ b lbl_80316238
lbl_80316228:
/* 80316228 3C 03 E0 00 */ addis r0, r3, 0xe000
/* 8031622C 28 00 00 00 */ cmplwi r0, 0
/* 80316230 40 82 00 08 */ bne lbl_80316238
/* 80316234 38 A0 00 10 */ li r5, 0x10
lbl_80316238:
/* 80316238 7C A3 2B 78 */ mr r3, r5
/* 8031623C 4E 80 00 20 */ blr
@@ -1,23 +0,0 @@
lbl_8031617C:
/* 8031617C 38 00 00 00 */ li r0, 0
/* 80316180 2C 03 00 01 */ cmpwi r3, 1
/* 80316184 41 81 00 0C */ bgt lbl_80316190
/* 80316188 38 00 00 1C */ li r0, 0x1c
/* 8031618C 48 00 00 30 */ b lbl_803161BC
lbl_80316190:
/* 80316190 2C 03 00 02 */ cmpwi r3, 2
/* 80316194 40 82 00 0C */ bne lbl_803161A0
/* 80316198 38 00 00 6C */ li r0, 0x6c
/* 8031619C 48 00 00 20 */ b lbl_803161BC
lbl_803161A0:
/* 803161A0 2C 03 00 04 */ cmpwi r3, 4
/* 803161A4 41 81 00 0C */ bgt lbl_803161B0
/* 803161A8 38 00 00 94 */ li r0, 0x94
/* 803161AC 48 00 00 10 */ b lbl_803161BC
lbl_803161B0:
/* 803161B0 2C 03 00 10 */ cmpwi r3, 0x10
/* 803161B4 41 81 00 08 */ bgt lbl_803161BC
/* 803161B8 38 00 01 74 */ li r0, 0x174
lbl_803161BC:
/* 803161BC 7C 03 03 78 */ mr r3, r0
/* 803161C0 4E 80 00 20 */ blr
@@ -1,14 +0,0 @@
lbl_80316150:
/* 80316150 3C 00 08 00 */ lis r0, 0x800
/* 80316154 7C 03 00 00 */ cmpw r3, r0
/* 80316158 41 82 00 14 */ beq lbl_8031616C
/* 8031615C 40 80 00 18 */ bge lbl_80316174
/* 80316160 2C 03 00 00 */ cmpwi r3, 0
/* 80316164 41 82 00 10 */ beq lbl_80316174
/* 80316168 48 00 00 0C */ b lbl_80316174
lbl_8031616C:
/* 8031616C 38 60 00 6C */ li r3, 0x6c
/* 80316170 4E 80 00 20 */ blr
lbl_80316174:
/* 80316174 38 60 00 6C */ li r3, 0x6c
/* 80316178 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_80316E70:
/* 80316E70 80 83 00 20 */ lwz r4, 0x20(r3)
/* 80316E74 54 80 00 03 */ rlwinm. r0, r4, 0, 0, 1
/* 80316E78 4C 82 00 20 */ bnelr
/* 80316E7C 64 80 80 00 */ oris r0, r4, 0x8000
/* 80316E80 90 03 00 20 */ stw r0, 0x20(r3)
/* 80316E84 38 00 00 00 */ li r0, 0
/* 80316E88 90 03 00 3C */ stw r0, 0x3c(r3)
/* 80316E8C 4E 80 00 20 */ blr
@@ -1,44 +0,0 @@
lbl_80316D68:
/* 80316D68 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316D6C 7C 08 02 A6 */ mflr r0
/* 80316D70 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316D74 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316D78 93 C1 00 08 */ stw r30, 8(r1)
/* 80316D7C 7C 7E 1B 78 */ mr r30, r3
/* 80316D80 7C 9F 23 78 */ mr r31, r4
/* 80316D84 80 63 00 24 */ lwz r3, 0x24(r3)
/* 80316D88 80 84 00 24 */ lwz r4, 0x24(r4)
/* 80316D8C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316D90 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80316D94 7D 89 03 A6 */ mtctr r12
/* 80316D98 4E 80 04 21 */ bctrl
/* 80316D9C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316DA0 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 80316DA4 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DA8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DAC 7D 89 03 A6 */ mtctr r12
/* 80316DB0 4E 80 04 21 */ bctrl
/* 80316DB4 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 80316DB8 80 9F 00 2C */ lwz r4, 0x2c(r31)
/* 80316DBC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DC0 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DC4 7D 89 03 A6 */ mtctr r12
/* 80316DC8 4E 80 04 21 */ bctrl
/* 80316DCC 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 80316DD0 80 9F 00 30 */ lwz r4, 0x30(r31)
/* 80316DD4 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DD8 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DDC 7D 89 03 A6 */ mtctr r12
/* 80316DE0 4E 80 04 21 */ bctrl
/* 80316DE4 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 80316DE8 80 9F 00 34 */ lwz r4, 0x34(r31)
/* 80316DEC 81 83 00 00 */ lwz r12, 0(r3)
/* 80316DF0 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316DF4 7D 89 03 A6 */ mtctr r12
/* 80316DF8 4E 80 04 21 */ bctrl
/* 80316DFC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316E00 83 C1 00 08 */ lwz r30, 8(r1)
/* 80316E04 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316E08 7C 08 03 A6 */ mtlr r0
/* 80316E0C 38 21 00 10 */ addi r1, r1, 0x10
/* 80316E10 4E 80 00 20 */ blr
@@ -1,46 +0,0 @@
lbl_80316290:
/* 80316290 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80316294 7C 08 02 A6 */ mflr r0
/* 80316298 90 01 00 24 */ stw r0, 0x24(r1)
/* 8031629C 39 61 00 20 */ addi r11, r1, 0x20
/* 803162A0 48 04 BF 3D */ bl _savegpr_29
/* 803162A4 7C 7D 1B 78 */ mr r29, r3
/* 803162A8 80 63 00 28 */ lwz r3, 0x28(r3)
/* 803162AC 81 83 00 00 */ lwz r12, 0(r3)
/* 803162B0 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 803162B4 7D 89 03 A6 */ mtctr r12
/* 803162B8 4E 80 04 21 */ bctrl
/* 803162BC 7C 7F 1B 78 */ mr r31, r3
/* 803162C0 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 803162C4 81 83 00 00 */ lwz r12, 0(r3)
/* 803162C8 81 8C 00 30 */ lwz r12, 0x30(r12)
/* 803162CC 7D 89 03 A6 */ mtctr r12
/* 803162D0 4E 80 04 21 */ bctrl
/* 803162D4 7C 7E 1B 78 */ mr r30, r3
/* 803162D8 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 803162DC 81 83 00 00 */ lwz r12, 0(r3)
/* 803162E0 81 8C 00 44 */ lwz r12, 0x44(r12)
/* 803162E4 7D 89 03 A6 */ mtctr r12
/* 803162E8 4E 80 04 21 */ bctrl
/* 803162EC 7F FF 1A 14 */ add r31, r31, r3
/* 803162F0 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 803162F4 81 83 00 00 */ lwz r12, 0(r3)
/* 803162F8 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 803162FC 7D 89 03 A6 */ mtctr r12
/* 80316300 4E 80 04 21 */ bctrl
/* 80316304 7F FF 1A 14 */ add r31, r31, r3
/* 80316308 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 8031630C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316310 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 80316314 7D 89 03 A6 */ mtctr r12
/* 80316318 4E 80 04 21 */ bctrl
/* 8031631C 7C 7F 1A 14 */ add r3, r31, r3
/* 80316320 38 03 00 1F */ addi r0, r3, 0x1f
/* 80316324 7C 1E 02 14 */ add r0, r30, r0
/* 80316328 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
/* 8031632C 39 61 00 20 */ addi r11, r1, 0x20
/* 80316330 48 04 BE F9 */ bl _restgpr_29
/* 80316334 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80316338 7C 08 03 A6 */ mtlr r0
/* 8031633C 38 21 00 20 */ addi r1, r1, 0x20
/* 80316340 4E 80 00 20 */ blr
@@ -1,137 +0,0 @@
lbl_803157A0:
/* 803157A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803157A4 7C 08 02 A6 */ mflr r0
/* 803157A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 803157AC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803157B0 93 C1 00 08 */ stw r30, 8(r1)
/* 803157B4 38 A0 00 00 */ li r5, 0
/* 803157B8 2C 03 00 00 */ cmpwi r3, 0
/* 803157BC 41 82 00 2C */ beq lbl_803157E8
/* 803157C0 40 80 00 18 */ bge lbl_803157D8
/* 803157C4 3C 80 80 00 */ lis r4, 0x8000 /* 0x80000001@ha */
/* 803157C8 38 04 00 01 */ addi r0, r4, 0x0001 /* 0x80000001@l */
/* 803157CC 7C 03 00 00 */ cmpw r3, r0
/* 803157D0 40 80 01 B4 */ bge lbl_80315984
/* 803157D4 48 00 01 10 */ b lbl_803158E4
lbl_803157D8:
/* 803157D8 3C 00 40 00 */ lis r0, 0x4000
/* 803157DC 7C 03 00 00 */ cmpw r3, r0
/* 803157E0 41 82 00 78 */ beq lbl_80315858
/* 803157E4 48 00 01 A0 */ b lbl_80315984
lbl_803157E8:
/* 803157E8 38 60 00 20 */ li r3, 0x20
/* 803157EC 4B FB 94 61 */ bl __nw__FUl
/* 803157F0 7C 7F 1B 79 */ or. r31, r3, r3
/* 803157F4 41 82 00 5C */ beq lbl_80315850
/* 803157F8 3C 60 80 3D */ lis r3, __vt__13J3DColorBlock@ha /* 0x803CDEA0@ha */
/* 803157FC 38 03 DE A0 */ addi r0, r3, __vt__13J3DColorBlock@l /* 0x803CDEA0@l */
/* 80315800 90 1F 00 00 */ stw r0, 0(r31)
/* 80315804 3C 60 80 3D */ lis r3, __vt__21J3DColorBlockLightOff@ha /* 0x803CEA34@ha */
/* 80315808 38 03 EA 34 */ addi r0, r3, __vt__21J3DColorBlockLightOff@l /* 0x803CEA34@l */
/* 8031580C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315810 38 7F 00 04 */ addi r3, r31, 4
/* 80315814 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315818 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 8031581C 38 A0 00 00 */ li r5, 0
/* 80315820 38 C0 00 04 */ li r6, 4
/* 80315824 38 E0 00 02 */ li r7, 2
/* 80315828 48 04 C5 39 */ bl __construct_array
/* 8031582C 38 7F 00 0E */ addi r3, r31, 0xe
/* 80315830 3C 80 80 01 */ lis r4, __ct__12J3DColorChanFv@ha /* 0x8000E47C@ha */
/* 80315834 38 84 E4 7C */ addi r4, r4, __ct__12J3DColorChanFv@l /* 0x8000E47C@l */
/* 80315838 38 A0 00 00 */ li r5, 0
/* 8031583C 38 C0 00 02 */ li r6, 2
/* 80315840 38 E0 00 04 */ li r7, 4
/* 80315844 48 04 C5 1D */ bl __construct_array
/* 80315848 7F E3 FB 78 */ mr r3, r31
/* 8031584C 48 00 1C 31 */ bl initialize__21J3DColorBlockLightOffFv
lbl_80315850:
/* 80315850 7F E5 FB 78 */ mr r5, r31
/* 80315854 48 00 01 30 */ b lbl_80315984
lbl_80315858:
/* 80315858 38 60 00 4C */ li r3, 0x4c
/* 8031585C 4B FB 93 F1 */ bl __nw__FUl
/* 80315860 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315864 41 82 00 78 */ beq lbl_803158DC
/* 80315868 3C 60 80 3D */ lis r3, __vt__13J3DColorBlock@ha /* 0x803CDEA0@ha */
/* 8031586C 38 03 DE A0 */ addi r0, r3, __vt__13J3DColorBlock@l /* 0x803CDEA0@l */
/* 80315870 90 1F 00 00 */ stw r0, 0(r31)
/* 80315874 3C 60 80 3D */ lis r3, __vt__20J3DColorBlockLightOn@ha /* 0x803CE678@ha */
/* 80315878 38 03 E6 78 */ addi r0, r3, __vt__20J3DColorBlockLightOn@l /* 0x803CE678@l */
/* 8031587C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315880 38 7F 00 04 */ addi r3, r31, 4
/* 80315884 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315888 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 8031588C 38 A0 00 00 */ li r5, 0
/* 80315890 38 C0 00 04 */ li r6, 4
/* 80315894 38 E0 00 02 */ li r7, 2
/* 80315898 48 04 C4 C9 */ bl __construct_array
/* 8031589C 38 7F 00 0C */ addi r3, r31, 0xc
/* 803158A0 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 803158A4 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 803158A8 38 A0 00 00 */ li r5, 0
/* 803158AC 38 C0 00 04 */ li r6, 4
/* 803158B0 38 E0 00 02 */ li r7, 2
/* 803158B4 48 04 C4 AD */ bl __construct_array
/* 803158B8 38 7F 00 16 */ addi r3, r31, 0x16
/* 803158BC 3C 80 80 01 */ lis r4, __ct__12J3DColorChanFv@ha /* 0x8000E47C@ha */
/* 803158C0 38 84 E4 7C */ addi r4, r4, __ct__12J3DColorChanFv@l /* 0x8000E47C@l */
/* 803158C4 38 A0 00 00 */ li r5, 0
/* 803158C8 38 C0 00 02 */ li r6, 2
/* 803158CC 38 E0 00 04 */ li r7, 4
/* 803158D0 48 04 C4 91 */ bl __construct_array
/* 803158D4 7F E3 FB 78 */ mr r3, r31
/* 803158D8 48 00 1C A9 */ bl initialize__20J3DColorBlockLightOnFv
lbl_803158DC:
/* 803158DC 7F E5 FB 78 */ mr r5, r31
/* 803158E0 48 00 00 A4 */ b lbl_80315984
lbl_803158E4:
/* 803158E4 38 60 00 28 */ li r3, 0x28
/* 803158E8 4B FB 93 65 */ bl __nw__FUl
/* 803158EC 7C 7F 1B 79 */ or. r31, r3, r3
/* 803158F0 41 82 00 90 */ beq lbl_80315980
/* 803158F4 7F FE FB 78 */ mr r30, r31
/* 803158F8 3C 60 80 3D */ lis r3, __vt__13J3DColorBlock@ha /* 0x803CDEA0@ha */
/* 803158FC 38 03 DE A0 */ addi r0, r3, __vt__13J3DColorBlock@l /* 0x803CDEA0@l */
/* 80315900 90 1F 00 00 */ stw r0, 0(r31)
/* 80315904 3C 60 80 3D */ lis r3, __vt__21J3DColorBlockLightOff@ha /* 0x803CEA34@ha */
/* 80315908 38 03 EA 34 */ addi r0, r3, __vt__21J3DColorBlockLightOff@l /* 0x803CEA34@l */
/* 8031590C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315910 38 7F 00 04 */ addi r3, r31, 4
/* 80315914 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315918 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 8031591C 38 A0 00 00 */ li r5, 0
/* 80315920 38 C0 00 04 */ li r6, 4
/* 80315924 38 E0 00 02 */ li r7, 2
/* 80315928 48 04 C4 39 */ bl __construct_array
/* 8031592C 38 7F 00 0E */ addi r3, r31, 0xe
/* 80315930 3C 80 80 01 */ lis r4, __ct__12J3DColorChanFv@ha /* 0x8000E47C@ha */
/* 80315934 38 84 E4 7C */ addi r4, r4, __ct__12J3DColorChanFv@l /* 0x8000E47C@l */
/* 80315938 38 A0 00 00 */ li r5, 0
/* 8031593C 38 C0 00 02 */ li r6, 2
/* 80315940 38 E0 00 04 */ li r7, 4
/* 80315944 48 04 C4 1D */ bl __construct_array
/* 80315948 7F E3 FB 78 */ mr r3, r31
/* 8031594C 48 00 1B 31 */ bl initialize__21J3DColorBlockLightOffFv
/* 80315950 3C 60 80 3D */ lis r3, __vt__22J3DColorBlockAmbientOn@ha /* 0x803CE708@ha */
/* 80315954 38 03 E7 08 */ addi r0, r3, __vt__22J3DColorBlockAmbientOn@l /* 0x803CE708@l */
/* 80315958 90 1E 00 00 */ stw r0, 0(r30)
/* 8031595C 38 7E 00 20 */ addi r3, r30, 0x20
/* 80315960 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315964 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 80315968 38 A0 00 00 */ li r5, 0
/* 8031596C 38 C0 00 04 */ li r6, 4
/* 80315970 38 E0 00 02 */ li r7, 2
/* 80315974 48 04 C3 ED */ bl __construct_array
/* 80315978 7F C3 F3 78 */ mr r3, r30
/* 8031597C 48 00 1B 61 */ bl initialize__22J3DColorBlockAmbientOnFv
lbl_80315980:
/* 80315980 7F E5 FB 78 */ mr r5, r31
lbl_80315984:
/* 80315984 7C A3 2B 78 */ mr r3, r5
/* 80315988 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8031598C 83 C1 00 08 */ lwz r30, 8(r1)
/* 80315990 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315994 7C 08 03 A6 */ mtlr r0
/* 80315998 38 21 00 10 */ addi r1, r1, 0x10
/* 8031599C 4E 80 00 20 */ blr
@@ -1,62 +0,0 @@
lbl_80315E78:
/* 80315E78 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315E7C 7C 08 02 A6 */ mflr r0
/* 80315E80 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315E84 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80315E88 2C 03 00 00 */ cmpwi r3, 0
/* 80315E8C 41 82 00 98 */ beq lbl_80315F24
/* 80315E90 38 60 00 7C */ li r3, 0x7c
/* 80315E94 4B FB 8D B9 */ bl __nw__FUl
/* 80315E98 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315E9C 41 82 00 80 */ beq lbl_80315F1C
/* 80315EA0 3C 60 80 3D */ lis r3, __vt__11J3DIndBlock@ha /* 0x803CDDE8@ha */
/* 80315EA4 38 03 DD E8 */ addi r0, r3, __vt__11J3DIndBlock@l /* 0x803CDDE8@l */
/* 80315EA8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315EAC 3C 60 80 3D */ lis r3, __vt__15J3DIndBlockFull@ha /* 0x803CE90C@ha */
/* 80315EB0 38 03 E9 0C */ addi r0, r3, __vt__15J3DIndBlockFull@l /* 0x803CE90C@l */
/* 80315EB4 90 1F 00 00 */ stw r0, 0(r31)
/* 80315EB8 38 7F 00 05 */ addi r3, r31, 5
/* 80315EBC 3C 80 80 01 */ lis r4, __ct__14J3DIndTexOrderFv@ha /* 0x8000E128@ha */
/* 80315EC0 38 84 E1 28 */ addi r4, r4, __ct__14J3DIndTexOrderFv@l /* 0x8000E128@l */
/* 80315EC4 38 A0 00 00 */ li r5, 0
/* 80315EC8 38 C0 00 04 */ li r6, 4
/* 80315ECC 38 E0 00 04 */ li r7, 4
/* 80315ED0 48 04 BE 91 */ bl __construct_array
/* 80315ED4 38 7F 00 18 */ addi r3, r31, 0x18
/* 80315ED8 3C 80 80 01 */ lis r4, __ct__12J3DIndTexMtxFv@ha /* 0x8000E0F0@ha */
/* 80315EDC 38 84 E0 F0 */ addi r4, r4, __ct__12J3DIndTexMtxFv@l /* 0x8000E0F0@l */
/* 80315EE0 3C A0 80 01 */ lis r5, __dt__12J3DIndTexMtxFv@ha /* 0x8000E064@ha */
/* 80315EE4 38 A5 E0 64 */ addi r5, r5, __dt__12J3DIndTexMtxFv@l /* 0x8000E064@l */
/* 80315EE8 38 C0 00 1C */ li r6, 0x1c
/* 80315EEC 38 E0 00 03 */ li r7, 3
/* 80315EF0 48 04 BE 71 */ bl __construct_array
/* 80315EF4 38 7F 00 6C */ addi r3, r31, 0x6c
/* 80315EF8 3C 80 80 01 */ lis r4, __ct__19J3DIndTexCoordScaleFv@ha /* 0x8000E0E4@ha */
/* 80315EFC 38 84 E0 E4 */ addi r4, r4, __ct__19J3DIndTexCoordScaleFv@l /* 0x8000E0E4@l */
/* 80315F00 3C A0 80 01 */ lis r5, __dt__19J3DIndTexCoordScaleFv@ha /* 0x8000E024@ha */
/* 80315F04 38 A5 E0 24 */ addi r5, r5, __dt__19J3DIndTexCoordScaleFv@l /* 0x8000E024@l */
/* 80315F08 38 C0 00 04 */ li r6, 4
/* 80315F0C 38 E0 00 04 */ li r7, 4
/* 80315F10 48 04 BE 51 */ bl __construct_array
/* 80315F14 7F E3 FB 78 */ mr r3, r31
/* 80315F18 48 00 1C 11 */ bl initialize__15J3DIndBlockFullFv
lbl_80315F1C:
/* 80315F1C 7F E3 FB 78 */ mr r3, r31
/* 80315F20 48 00 00 2C */ b lbl_80315F4C
lbl_80315F24:
/* 80315F24 38 60 00 04 */ li r3, 4
/* 80315F28 4B FB 8D 25 */ bl __nw__FUl
/* 80315F2C 28 03 00 00 */ cmplwi r3, 0
/* 80315F30 41 82 00 1C */ beq lbl_80315F4C
/* 80315F34 3C 80 80 3D */ lis r4, __vt__11J3DIndBlock@ha /* 0x803CDDE8@ha */
/* 80315F38 38 04 DD E8 */ addi r0, r4, __vt__11J3DIndBlock@l /* 0x803CDDE8@l */
/* 80315F3C 90 03 00 00 */ stw r0, 0(r3)
/* 80315F40 3C 80 80 3D */ lis r4, __vt__15J3DIndBlockNull@ha /* 0x803CDD9C@ha */
/* 80315F44 38 04 DD 9C */ addi r0, r4, __vt__15J3DIndBlockNull@l /* 0x803CDD9C@l */
/* 80315F48 90 03 00 00 */ stw r0, 0(r3)
lbl_80315F4C:
/* 80315F4C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80315F50 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315F54 7C 08 03 A6 */ mtlr r0
/* 80315F58 38 21 00 10 */ addi r1, r1, 0x10
/* 80315F5C 4E 80 00 20 */ blr
@@ -1,230 +0,0 @@
lbl_80315B04:
/* 80315B04 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315B08 7C 08 02 A6 */ mflr r0
/* 80315B0C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315B10 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80315B14 38 00 00 00 */ li r0, 0
/* 80315B18 2C 03 00 01 */ cmpwi r3, 1
/* 80315B1C 41 81 00 90 */ bgt lbl_80315BAC
/* 80315B20 38 60 00 1C */ li r3, 0x1c
/* 80315B24 4B FB 91 29 */ bl __nw__FUl
/* 80315B28 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315B2C 41 82 00 78 */ beq lbl_80315BA4
/* 80315B30 3C 60 80 3D */ lis r3, __vt__11J3DTevBlock@ha /* 0x803CE958@ha */
/* 80315B34 38 03 E9 58 */ addi r0, r3, __vt__11J3DTevBlock@l /* 0x803CE958@l */
/* 80315B38 90 1F 00 00 */ stw r0, 0(r31)
/* 80315B3C 3C 60 80 3D */ lis r3, __vt__12J3DTevBlock1@ha /* 0x803CE37C@ha */
/* 80315B40 38 03 E3 7C */ addi r0, r3, __vt__12J3DTevBlock1@l /* 0x803CE37C@l */
/* 80315B44 90 1F 00 00 */ stw r0, 0(r31)
/* 80315B48 38 7F 00 0A */ addi r3, r31, 0xa
/* 80315B4C 3C 80 80 01 */ lis r4, __ct__11J3DTevOrderFv@ha /* 0x8000E140@ha */
/* 80315B50 38 84 E1 40 */ addi r4, r4, __ct__11J3DTevOrderFv@l /* 0x8000E140@l */
/* 80315B54 38 A0 00 00 */ li r5, 0
/* 80315B58 38 C0 00 04 */ li r6, 4
/* 80315B5C 38 E0 00 01 */ li r7, 1
/* 80315B60 48 04 C2 01 */ bl __construct_array
/* 80315B64 38 7F 00 0E */ addi r3, r31, 0xe
/* 80315B68 3C 80 80 01 */ lis r4, __ct__11J3DTevStageFv@ha /* 0x8000E230@ha */
/* 80315B6C 38 84 E2 30 */ addi r4, r4, __ct__11J3DTevStageFv@l /* 0x8000E230@l */
/* 80315B70 38 A0 00 00 */ li r5, 0
/* 80315B74 38 C0 00 08 */ li r6, 8
/* 80315B78 38 E0 00 01 */ li r7, 1
/* 80315B7C 48 04 C1 E5 */ bl __construct_array
/* 80315B80 38 7F 00 18 */ addi r3, r31, 0x18
/* 80315B84 3C 80 80 01 */ lis r4, __ct__14J3DIndTevStageFv@ha /* 0x8000E14C@ha */
/* 80315B88 38 84 E1 4C */ addi r4, r4, __ct__14J3DIndTevStageFv@l /* 0x8000E14C@l */
/* 80315B8C 38 A0 00 00 */ li r5, 0
/* 80315B90 38 C0 00 04 */ li r6, 4
/* 80315B94 38 E0 00 01 */ li r7, 1
/* 80315B98 48 04 C1 C9 */ bl __construct_array
/* 80315B9C 7F E3 FB 78 */ mr r3, r31
/* 80315BA0 48 00 1C 49 */ bl initialize__12J3DTevBlock1Fv
lbl_80315BA4:
/* 80315BA4 7F E0 FB 78 */ mr r0, r31
/* 80315BA8 48 00 02 B8 */ b lbl_80315E60
lbl_80315BAC:
/* 80315BAC 2C 03 00 02 */ cmpwi r3, 2
/* 80315BB0 40 82 00 E4 */ bne lbl_80315C94
/* 80315BB4 38 60 00 6C */ li r3, 0x6c
/* 80315BB8 4B FB 90 95 */ bl __nw__FUl
/* 80315BBC 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315BC0 41 82 00 CC */ beq lbl_80315C8C
/* 80315BC4 3C 60 80 3D */ lis r3, __vt__11J3DTevBlock@ha /* 0x803CE958@ha */
/* 80315BC8 38 03 E9 58 */ addi r0, r3, __vt__11J3DTevBlock@l /* 0x803CE958@l */
/* 80315BCC 90 1F 00 00 */ stw r0, 0(r31)
/* 80315BD0 3C 60 80 3D */ lis r3, __vt__12J3DTevBlock2@ha /* 0x803CE2A0@ha */
/* 80315BD4 38 03 E2 A0 */ addi r0, r3, __vt__12J3DTevBlock2@l /* 0x803CE2A0@l */
/* 80315BD8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315BDC 38 7F 00 0C */ addi r3, r31, 0xc
/* 80315BE0 3C 80 80 01 */ lis r4, __ct__11J3DTevOrderFv@ha /* 0x8000E140@ha */
/* 80315BE4 38 84 E1 40 */ addi r4, r4, __ct__11J3DTevOrderFv@l /* 0x8000E140@l */
/* 80315BE8 38 A0 00 00 */ li r5, 0
/* 80315BEC 38 C0 00 04 */ li r6, 4
/* 80315BF0 38 E0 00 02 */ li r7, 2
/* 80315BF4 48 04 C1 6D */ bl __construct_array
/* 80315BF8 38 7F 00 14 */ addi r3, r31, 0x14
/* 80315BFC 3C 80 80 01 */ lis r4, __ct__13J3DGXColorS10Fv@ha /* 0x8000E460@ha */
/* 80315C00 38 84 E4 60 */ addi r4, r4, __ct__13J3DGXColorS10Fv@l /* 0x8000E460@l */
/* 80315C04 38 A0 00 00 */ li r5, 0
/* 80315C08 38 C0 00 08 */ li r6, 8
/* 80315C0C 38 E0 00 04 */ li r7, 4
/* 80315C10 48 04 C1 51 */ bl __construct_array
/* 80315C14 38 7F 00 35 */ addi r3, r31, 0x35
/* 80315C18 3C 80 80 01 */ lis r4, __ct__11J3DTevStageFv@ha /* 0x8000E230@ha */
/* 80315C1C 38 84 E2 30 */ addi r4, r4, __ct__11J3DTevStageFv@l /* 0x8000E230@l */
/* 80315C20 38 A0 00 00 */ li r5, 0
/* 80315C24 38 C0 00 08 */ li r6, 8
/* 80315C28 38 E0 00 02 */ li r7, 2
/* 80315C2C 48 04 C1 35 */ bl __construct_array
/* 80315C30 38 7F 00 45 */ addi r3, r31, 0x45
/* 80315C34 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315C38 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 80315C3C 38 A0 00 00 */ li r5, 0
/* 80315C40 38 C0 00 04 */ li r6, 4
/* 80315C44 38 E0 00 04 */ li r7, 4
/* 80315C48 48 04 C1 19 */ bl __construct_array
/* 80315C4C 38 7F 00 59 */ addi r3, r31, 0x59
/* 80315C50 3C 80 80 01 */ lis r4, __ct__19J3DTevSwapModeTableFv@ha /* 0x8000E134@ha */
/* 80315C54 38 84 E1 34 */ addi r4, r4, __ct__19J3DTevSwapModeTableFv@l /* 0x8000E134@l */
/* 80315C58 38 A0 00 00 */ li r5, 0
/* 80315C5C 38 C0 00 01 */ li r6, 1
/* 80315C60 38 E0 00 04 */ li r7, 4
/* 80315C64 48 04 C0 FD */ bl __construct_array
/* 80315C68 38 7F 00 60 */ addi r3, r31, 0x60
/* 80315C6C 3C 80 80 01 */ lis r4, __ct__14J3DIndTevStageFv@ha /* 0x8000E14C@ha */
/* 80315C70 38 84 E1 4C */ addi r4, r4, __ct__14J3DIndTevStageFv@l /* 0x8000E14C@l */
/* 80315C74 38 A0 00 00 */ li r5, 0
/* 80315C78 38 C0 00 04 */ li r6, 4
/* 80315C7C 38 E0 00 02 */ li r7, 2
/* 80315C80 48 04 C0 E1 */ bl __construct_array
/* 80315C84 7F E3 FB 78 */ mr r3, r31
/* 80315C88 48 00 1B 89 */ bl initialize__12J3DTevBlock2Fv
lbl_80315C8C:
/* 80315C8C 7F E0 FB 78 */ mr r0, r31
/* 80315C90 48 00 01 D0 */ b lbl_80315E60
lbl_80315C94:
/* 80315C94 2C 03 00 04 */ cmpwi r3, 4
/* 80315C98 41 81 00 E4 */ bgt lbl_80315D7C
/* 80315C9C 38 60 00 94 */ li r3, 0x94
/* 80315CA0 4B FB 8F AD */ bl __nw__FUl
/* 80315CA4 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315CA8 41 82 00 CC */ beq lbl_80315D74
/* 80315CAC 3C 60 80 3D */ lis r3, __vt__11J3DTevBlock@ha /* 0x803CE958@ha */
/* 80315CB0 38 03 E9 58 */ addi r0, r3, __vt__11J3DTevBlock@l /* 0x803CE958@l */
/* 80315CB4 90 1F 00 00 */ stw r0, 0(r31)
/* 80315CB8 3C 60 80 3D */ lis r3, __vt__12J3DTevBlock4@ha /* 0x803CE1C4@ha */
/* 80315CBC 38 03 E1 C4 */ addi r0, r3, __vt__12J3DTevBlock4@l /* 0x803CE1C4@l */
/* 80315CC0 90 1F 00 00 */ stw r0, 0(r31)
/* 80315CC4 38 7F 00 10 */ addi r3, r31, 0x10
/* 80315CC8 3C 80 80 01 */ lis r4, __ct__11J3DTevOrderFv@ha /* 0x8000E140@ha */
/* 80315CCC 38 84 E1 40 */ addi r4, r4, __ct__11J3DTevOrderFv@l /* 0x8000E140@l */
/* 80315CD0 38 A0 00 00 */ li r5, 0
/* 80315CD4 38 C0 00 04 */ li r6, 4
/* 80315CD8 38 E0 00 04 */ li r7, 4
/* 80315CDC 48 04 C0 85 */ bl __construct_array
/* 80315CE0 38 7F 00 21 */ addi r3, r31, 0x21
/* 80315CE4 3C 80 80 01 */ lis r4, __ct__11J3DTevStageFv@ha /* 0x8000E230@ha */
/* 80315CE8 38 84 E2 30 */ addi r4, r4, __ct__11J3DTevStageFv@l /* 0x8000E230@l */
/* 80315CEC 38 A0 00 00 */ li r5, 0
/* 80315CF0 38 C0 00 08 */ li r6, 8
/* 80315CF4 38 E0 00 04 */ li r7, 4
/* 80315CF8 48 04 C0 69 */ bl __construct_array
/* 80315CFC 38 7F 00 42 */ addi r3, r31, 0x42
/* 80315D00 3C 80 80 01 */ lis r4, __ct__13J3DGXColorS10Fv@ha /* 0x8000E460@ha */
/* 80315D04 38 84 E4 60 */ addi r4, r4, __ct__13J3DGXColorS10Fv@l /* 0x8000E460@l */
/* 80315D08 38 A0 00 00 */ li r5, 0
/* 80315D0C 38 C0 00 08 */ li r6, 8
/* 80315D10 38 E0 00 04 */ li r7, 4
/* 80315D14 48 04 C0 4D */ bl __construct_array
/* 80315D18 38 7F 00 62 */ addi r3, r31, 0x62
/* 80315D1C 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315D20 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 80315D24 38 A0 00 00 */ li r5, 0
/* 80315D28 38 C0 00 04 */ li r6, 4
/* 80315D2C 38 E0 00 04 */ li r7, 4
/* 80315D30 48 04 C0 31 */ bl __construct_array
/* 80315D34 38 7F 00 7A */ addi r3, r31, 0x7a
/* 80315D38 3C 80 80 01 */ lis r4, __ct__19J3DTevSwapModeTableFv@ha /* 0x8000E134@ha */
/* 80315D3C 38 84 E1 34 */ addi r4, r4, __ct__19J3DTevSwapModeTableFv@l /* 0x8000E134@l */
/* 80315D40 38 A0 00 00 */ li r5, 0
/* 80315D44 38 C0 00 01 */ li r6, 1
/* 80315D48 38 E0 00 04 */ li r7, 4
/* 80315D4C 48 04 C0 15 */ bl __construct_array
/* 80315D50 38 7F 00 80 */ addi r3, r31, 0x80
/* 80315D54 3C 80 80 01 */ lis r4, __ct__14J3DIndTevStageFv@ha /* 0x8000E14C@ha */
/* 80315D58 38 84 E1 4C */ addi r4, r4, __ct__14J3DIndTevStageFv@l /* 0x8000E14C@l */
/* 80315D5C 38 A0 00 00 */ li r5, 0
/* 80315D60 38 C0 00 04 */ li r6, 4
/* 80315D64 38 E0 00 04 */ li r7, 4
/* 80315D68 48 04 BF F9 */ bl __construct_array
/* 80315D6C 7F E3 FB 78 */ mr r3, r31
/* 80315D70 48 00 1B 7D */ bl initialize__12J3DTevBlock4Fv
lbl_80315D74:
/* 80315D74 7F E0 FB 78 */ mr r0, r31
/* 80315D78 48 00 00 E8 */ b lbl_80315E60
lbl_80315D7C:
/* 80315D7C 2C 03 00 10 */ cmpwi r3, 0x10
/* 80315D80 41 81 00 E0 */ bgt lbl_80315E60
/* 80315D84 38 60 01 74 */ li r3, 0x174
/* 80315D88 4B FB 8E C5 */ bl __nw__FUl
/* 80315D8C 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315D90 41 82 00 CC */ beq lbl_80315E5C
/* 80315D94 3C 60 80 3D */ lis r3, __vt__11J3DTevBlock@ha /* 0x803CE958@ha */
/* 80315D98 38 03 E9 58 */ addi r0, r3, __vt__11J3DTevBlock@l /* 0x803CE958@l */
/* 80315D9C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315DA0 3C 60 80 3D */ lis r3, __vt__13J3DTevBlock16@ha /* 0x803CE0E8@ha */
/* 80315DA4 38 03 E0 E8 */ addi r0, r3, __vt__13J3DTevBlock16@l /* 0x803CE0E8@l */
/* 80315DA8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315DAC 38 7F 00 18 */ addi r3, r31, 0x18
/* 80315DB0 3C 80 80 01 */ lis r4, __ct__11J3DTevOrderFv@ha /* 0x8000E140@ha */
/* 80315DB4 38 84 E1 40 */ addi r4, r4, __ct__11J3DTevOrderFv@l /* 0x8000E140@l */
/* 80315DB8 38 A0 00 00 */ li r5, 0
/* 80315DBC 38 C0 00 04 */ li r6, 4
/* 80315DC0 38 E0 00 10 */ li r7, 0x10
/* 80315DC4 48 04 BF 9D */ bl __construct_array
/* 80315DC8 38 7F 00 59 */ addi r3, r31, 0x59
/* 80315DCC 3C 80 80 01 */ lis r4, __ct__11J3DTevStageFv@ha /* 0x8000E230@ha */
/* 80315DD0 38 84 E2 30 */ addi r4, r4, __ct__11J3DTevStageFv@l /* 0x8000E230@l */
/* 80315DD4 38 A0 00 00 */ li r5, 0
/* 80315DD8 38 C0 00 08 */ li r6, 8
/* 80315DDC 38 E0 00 10 */ li r7, 0x10
/* 80315DE0 48 04 BF 81 */ bl __construct_array
/* 80315DE4 38 7F 00 DA */ addi r3, r31, 0xda
/* 80315DE8 3C 80 80 01 */ lis r4, __ct__13J3DGXColorS10Fv@ha /* 0x8000E460@ha */
/* 80315DEC 38 84 E4 60 */ addi r4, r4, __ct__13J3DGXColorS10Fv@l /* 0x8000E460@l */
/* 80315DF0 38 A0 00 00 */ li r5, 0
/* 80315DF4 38 C0 00 08 */ li r6, 8
/* 80315DF8 38 E0 00 04 */ li r7, 4
/* 80315DFC 48 04 BF 65 */ bl __construct_array
/* 80315E00 38 7F 00 FA */ addi r3, r31, 0xfa
/* 80315E04 3C 80 80 01 */ lis r4, __ct__10J3DGXColorFv@ha /* 0x8000E538@ha */
/* 80315E08 38 84 E5 38 */ addi r4, r4, __ct__10J3DGXColorFv@l /* 0x8000E538@l */
/* 80315E0C 38 A0 00 00 */ li r5, 0
/* 80315E10 38 C0 00 04 */ li r6, 4
/* 80315E14 38 E0 00 04 */ li r7, 4
/* 80315E18 48 04 BF 49 */ bl __construct_array
/* 80315E1C 38 7F 01 2A */ addi r3, r31, 0x12a
/* 80315E20 3C 80 80 01 */ lis r4, __ct__19J3DTevSwapModeTableFv@ha /* 0x8000E134@ha */
/* 80315E24 38 84 E1 34 */ addi r4, r4, __ct__19J3DTevSwapModeTableFv@l /* 0x8000E134@l */
/* 80315E28 38 A0 00 00 */ li r5, 0
/* 80315E2C 38 C0 00 01 */ li r6, 1
/* 80315E30 38 E0 00 04 */ li r7, 4
/* 80315E34 48 04 BF 2D */ bl __construct_array
/* 80315E38 38 7F 01 30 */ addi r3, r31, 0x130
/* 80315E3C 3C 80 80 01 */ lis r4, __ct__14J3DIndTevStageFv@ha /* 0x8000E14C@ha */
/* 80315E40 38 84 E1 4C */ addi r4, r4, __ct__14J3DIndTevStageFv@l /* 0x8000E14C@l */
/* 80315E44 38 A0 00 00 */ li r5, 0
/* 80315E48 38 C0 00 04 */ li r6, 4
/* 80315E4C 38 E0 00 10 */ li r7, 0x10
/* 80315E50 48 04 BF 11 */ bl __construct_array
/* 80315E54 7F E3 FB 78 */ mr r3, r31
/* 80315E58 48 00 1B A9 */ bl initialize__13J3DTevBlock16Fv
lbl_80315E5C:
/* 80315E5C 7F E0 FB 78 */ mr r0, r31
lbl_80315E60:
/* 80315E60 7C 03 03 78 */ mr r3, r0
/* 80315E64 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80315E68 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315E6C 7C 08 03 A6 */ mtlr r0
/* 80315E70 38 21 00 10 */ addi r1, r1, 0x10
/* 80315E74 4E 80 00 20 */ blr
@@ -1,95 +0,0 @@
lbl_803159A0:
/* 803159A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803159A4 7C 08 02 A6 */ mflr r0
/* 803159A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 803159AC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803159B0 93 C1 00 08 */ stw r30, 8(r1)
/* 803159B4 3C 00 08 00 */ lis r0, 0x800
/* 803159B8 7C 03 00 00 */ cmpw r3, r0
/* 803159BC 41 82 00 14 */ beq lbl_803159D0
/* 803159C0 40 80 00 A0 */ bge lbl_80315A60
/* 803159C4 2C 03 00 00 */ cmpwi r3, 0
/* 803159C8 41 82 00 98 */ beq lbl_80315A60
/* 803159CC 48 00 00 94 */ b lbl_80315A60
lbl_803159D0:
/* 803159D0 38 60 00 6C */ li r3, 0x6c
/* 803159D4 4B FB 92 79 */ bl __nw__FUl
/* 803159D8 7C 7F 1B 79 */ or. r31, r3, r3
/* 803159DC 41 82 00 7C */ beq lbl_80315A58
/* 803159E0 7F FE FB 78 */ mr r30, r31
/* 803159E4 3C 60 80 3D */ lis r3, __vt__14J3DTexGenBlock@ha /* 0x803CDE34@ha */
/* 803159E8 38 03 DE 34 */ addi r0, r3, __vt__14J3DTexGenBlock@l /* 0x803CDE34@l */
/* 803159EC 90 1F 00 00 */ stw r0, 0(r31)
/* 803159F0 3C 60 80 3D */ lis r3, __vt__21J3DTexGenBlockPatched@ha /* 0x803CE60C@ha */
/* 803159F4 38 03 E6 0C */ addi r0, r3, __vt__21J3DTexGenBlockPatched@l /* 0x803CE60C@l */
/* 803159F8 90 1F 00 00 */ stw r0, 0(r31)
/* 803159FC 38 7F 00 08 */ addi r3, r31, 8
/* 80315A00 3C 80 80 01 */ lis r4, __ct__11J3DTexCoordFv@ha /* 0x8000E464@ha */
/* 80315A04 38 84 E4 64 */ addi r4, r4, __ct__11J3DTexCoordFv@l /* 0x8000E464@l */
/* 80315A08 38 A0 00 00 */ li r5, 0
/* 80315A0C 38 C0 00 06 */ li r6, 6
/* 80315A10 38 E0 00 08 */ li r7, 8
/* 80315A14 48 04 C3 4D */ bl __construct_array
/* 80315A18 7F E3 FB 78 */ mr r3, r31
/* 80315A1C 48 00 1C 29 */ bl initialize__21J3DTexGenBlockPatchedFv
/* 80315A20 3C 60 80 3D */ lis r3, __vt__15J3DTexGenBlock4@ha /* 0x803CE5A0@ha */
/* 80315A24 38 03 E5 A0 */ addi r0, r3, __vt__15J3DTexGenBlock4@l /* 0x803CE5A0@l */
/* 80315A28 90 1E 00 00 */ stw r0, 0(r30)
/* 80315A2C 3C 60 80 3A */ lis r3, j3dDefaultNBTScaleInfo@ha /* 0x803A1FE8@ha */
/* 80315A30 8C 03 1F E8 */ lbzu r0, j3dDefaultNBTScaleInfo@l(r3) /* 0x803A1FE8@l */
/* 80315A34 98 1E 00 5C */ stb r0, 0x5c(r30)
/* 80315A38 C0 03 00 04 */ lfs f0, 4(r3)
/* 80315A3C D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 80315A40 C0 03 00 08 */ lfs f0, 8(r3)
/* 80315A44 D0 1E 00 64 */ stfs f0, 0x64(r30)
/* 80315A48 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80315A4C D0 1E 00 68 */ stfs f0, 0x68(r30)
/* 80315A50 7F C3 F3 78 */ mr r3, r30
/* 80315A54 48 00 1C 21 */ bl initialize__15J3DTexGenBlock4Fv
lbl_80315A58:
/* 80315A58 7F E3 FB 78 */ mr r3, r31
/* 80315A5C 48 00 00 90 */ b lbl_80315AEC
lbl_80315A60:
/* 80315A60 38 60 00 6C */ li r3, 0x6c
/* 80315A64 4B FB 91 E9 */ bl __nw__FUl
/* 80315A68 7C 7F 1B 79 */ or. r31, r3, r3
/* 80315A6C 41 82 00 7C */ beq lbl_80315AE8
/* 80315A70 7F FE FB 78 */ mr r30, r31
/* 80315A74 3C 60 80 3D */ lis r3, __vt__14J3DTexGenBlock@ha /* 0x803CDE34@ha */
/* 80315A78 38 03 DE 34 */ addi r0, r3, __vt__14J3DTexGenBlock@l /* 0x803CDE34@l */
/* 80315A7C 90 1F 00 00 */ stw r0, 0(r31)
/* 80315A80 3C 60 80 3D */ lis r3, __vt__21J3DTexGenBlockPatched@ha /* 0x803CE60C@ha */
/* 80315A84 38 03 E6 0C */ addi r0, r3, __vt__21J3DTexGenBlockPatched@l /* 0x803CE60C@l */
/* 80315A88 90 1F 00 00 */ stw r0, 0(r31)
/* 80315A8C 38 7E 00 08 */ addi r3, r30, 8
/* 80315A90 3C 80 80 01 */ lis r4, __ct__11J3DTexCoordFv@ha /* 0x8000E464@ha */
/* 80315A94 38 84 E4 64 */ addi r4, r4, __ct__11J3DTexCoordFv@l /* 0x8000E464@l */
/* 80315A98 38 A0 00 00 */ li r5, 0
/* 80315A9C 38 C0 00 06 */ li r6, 6
/* 80315AA0 38 E0 00 08 */ li r7, 8
/* 80315AA4 48 04 C2 BD */ bl __construct_array
/* 80315AA8 7F C3 F3 78 */ mr r3, r30
/* 80315AAC 48 00 1B 99 */ bl initialize__21J3DTexGenBlockPatchedFv
/* 80315AB0 3C 60 80 3D */ lis r3, __vt__19J3DTexGenBlockBasic@ha /* 0x803CE534@ha */
/* 80315AB4 38 03 E5 34 */ addi r0, r3, __vt__19J3DTexGenBlockBasic@l /* 0x803CE534@l */
/* 80315AB8 90 1F 00 00 */ stw r0, 0(r31)
/* 80315ABC 3C 60 80 3A */ lis r3, j3dDefaultNBTScaleInfo@ha /* 0x803A1FE8@ha */
/* 80315AC0 8C 03 1F E8 */ lbzu r0, j3dDefaultNBTScaleInfo@l(r3) /* 0x803A1FE8@l */
/* 80315AC4 98 1F 00 5C */ stb r0, 0x5c(r31)
/* 80315AC8 C0 03 00 04 */ lfs f0, 4(r3)
/* 80315ACC D0 1F 00 60 */ stfs f0, 0x60(r31)
/* 80315AD0 C0 03 00 08 */ lfs f0, 8(r3)
/* 80315AD4 D0 1F 00 64 */ stfs f0, 0x64(r31)
/* 80315AD8 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80315ADC D0 1F 00 68 */ stfs f0, 0x68(r31)
/* 80315AE0 7F E3 FB 78 */ mr r3, r31
/* 80315AE4 48 00 1B C1 */ bl initialize__19J3DTexGenBlockBasicFv
lbl_80315AE8:
/* 80315AE8 7F E3 FB 78 */ mr r3, r31
lbl_80315AEC:
/* 80315AEC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80315AF0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80315AF4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315AF8 7C 08 03 A6 */ mtlr r0
/* 80315AFC 38 21 00 10 */ addi r1, r1, 0x10
/* 80315B00 4E 80 00 20 */ blr
@@ -1,132 +0,0 @@
lbl_803167D8:
/* 803167D8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803167DC 7C 08 02 A6 */ mflr r0
/* 803167E0 90 01 00 24 */ stw r0, 0x24(r1)
/* 803167E4 39 61 00 20 */ addi r11, r1, 0x20
/* 803167E8 48 04 B9 ED */ bl _savegpr_27
/* 803167EC 7C 7D 1B 78 */ mr r29, r3
/* 803167F0 7C 9E 23 78 */ mr r30, r4
/* 803167F4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 803167F8 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
/* 803167FC 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80316800 80 83 00 28 */ lwz r4, 0x28(r3)
/* 80316804 80 04 00 20 */ lwz r0, 0x20(r4)
/* 80316808 28 00 00 00 */ cmplwi r0, 0
/* 8031680C 41 82 01 B8 */ beq lbl_803169C4
/* 80316810 4B FF C2 15 */ bl beginDiff__12J3DMatPacketFv
/* 80316814 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 80316818 7F C4 F3 78 */ mr r4, r30
/* 8031681C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316820 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316824 7D 89 03 A6 */ mtctr r12
/* 80316828 4E 80 04 21 */ bctrl
/* 8031682C 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 80316830 7F C4 F3 78 */ mr r4, r30
/* 80316834 81 83 00 00 */ lwz r12, 0(r3)
/* 80316838 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8031683C 7D 89 03 A6 */ mtctr r12
/* 80316840 4E 80 04 21 */ bctrl
/* 80316844 80 7D 00 34 */ lwz r3, 0x34(r29)
/* 80316848 7F C4 F3 78 */ mr r4, r30
/* 8031684C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316850 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 80316854 7D 89 03 A6 */ mtctr r12
/* 80316858 4E 80 04 21 */ bctrl
/* 8031685C 57 C0 01 8D */ rlwinm. r0, r30, 0, 6, 6
/* 80316860 41 82 01 2C */ beq lbl_8031698C
/* 80316864 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 80316868 81 83 00 00 */ lwz r12, 0(r3)
/* 8031686C 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 80316870 7D 89 03 A6 */ mtctr r12
/* 80316874 4E 80 04 21 */ bctrl
/* 80316878 7C 7B 1B 78 */ mr r27, r3
/* 8031687C 80 7D 00 2C */ lwz r3, 0x2c(r29)
/* 80316880 81 83 00 00 */ lwz r12, 0(r3)
/* 80316884 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80316888 7D 89 03 A6 */ mtctr r12
/* 8031688C 4E 80 04 21 */ bctrl
/* 80316890 7C 7C 1B 78 */ mr r28, r3
/* 80316894 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80316898 81 83 00 00 */ lwz r12, 0(r3)
/* 8031689C 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 803168A0 7D 89 03 A6 */ mtctr r12
/* 803168A4 4E 80 04 21 */ bctrl
/* 803168A8 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 803168AC 7F 84 E3 78 */ mr r4, r28
/* 803168B0 7F 65 DB 78 */ mr r5, r27
/* 803168B4 4B FF 69 5D */ bl J3DGDSetGenMode_3Param__FUcUcUc
/* 803168B8 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 803168BC 81 83 00 00 */ lwz r12, 0(r3)
/* 803168C0 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 803168C4 7D 89 03 A6 */ mtctr r12
/* 803168C8 4E 80 04 21 */ bctrl
/* 803168CC 38 C0 00 10 */ li r6, 0x10
/* 803168D0 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803168D4 80 85 00 08 */ lwz r4, 8(r5)
/* 803168D8 38 04 00 01 */ addi r0, r4, 1
/* 803168DC 90 05 00 08 */ stw r0, 8(r5)
/* 803168E0 98 C4 00 00 */ stb r6, 0(r4)
/* 803168E4 38 E0 00 00 */ li r7, 0
/* 803168E8 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803168EC 80 85 00 08 */ lwz r4, 8(r5)
/* 803168F0 38 04 00 01 */ addi r0, r4, 1
/* 803168F4 90 05 00 08 */ stw r0, 8(r5)
/* 803168F8 98 E4 00 00 */ stb r7, 0(r4)
/* 803168FC 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316900 80 85 00 08 */ lwz r4, 8(r5)
/* 80316904 38 04 00 01 */ addi r0, r4, 1
/* 80316908 90 05 00 08 */ stw r0, 8(r5)
/* 8031690C 98 E4 00 00 */ stb r7, 0(r4)
/* 80316910 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316914 80 85 00 08 */ lwz r4, 8(r5)
/* 80316918 38 04 00 01 */ addi r0, r4, 1
/* 8031691C 90 05 00 08 */ stw r0, 8(r5)
/* 80316920 98 C4 00 00 */ stb r6, 0(r4)
/* 80316924 38 C0 00 3F */ li r6, 0x3f
/* 80316928 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 8031692C 80 85 00 08 */ lwz r4, 8(r5)
/* 80316930 38 04 00 01 */ addi r0, r4, 1
/* 80316934 90 05 00 08 */ stw r0, 8(r5)
/* 80316938 98 C4 00 00 */ stb r6, 0(r4)
/* 8031693C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316940 80 85 00 08 */ lwz r4, 8(r5)
/* 80316944 38 04 00 01 */ addi r0, r4, 1
/* 80316948 90 05 00 08 */ stw r0, 8(r5)
/* 8031694C 98 E4 00 00 */ stb r7, 0(r4)
/* 80316950 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316954 80 85 00 08 */ lwz r4, 8(r5)
/* 80316958 38 04 00 01 */ addi r0, r4, 1
/* 8031695C 90 05 00 08 */ stw r0, 8(r5)
/* 80316960 98 E4 00 00 */ stb r7, 0(r4)
/* 80316964 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316968 80 85 00 08 */ lwz r4, 8(r5)
/* 8031696C 38 04 00 01 */ addi r0, r4, 1
/* 80316970 90 05 00 08 */ stw r0, 8(r5)
/* 80316974 98 E4 00 00 */ stb r7, 0(r4)
/* 80316978 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 8031697C 80 85 00 08 */ lwz r4, 8(r5)
/* 80316980 38 04 00 01 */ addi r0, r4, 1
/* 80316984 90 05 00 08 */ stw r0, 8(r5)
/* 80316988 98 64 00 00 */ stb r3, 0(r4)
lbl_8031698C:
/* 8031698C 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80316990 7F C4 F3 78 */ mr r4, r30
/* 80316994 81 83 00 00 */ lwz r12, 0(r3)
/* 80316998 81 8C 00 24 */ lwz r12, 0x24(r12)
/* 8031699C 7D 89 03 A6 */ mtctr r12
/* 803169A0 4E 80 04 21 */ bctrl
/* 803169A4 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 803169A8 7F C4 F3 78 */ mr r4, r30
/* 803169AC 81 83 00 00 */ lwz r12, 0(r3)
/* 803169B0 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 803169B4 7D 89 03 A6 */ mtctr r12
/* 803169B8 4E 80 04 21 */ bctrl
/* 803169BC 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 803169C0 4B FF C0 8D */ bl endDiff__12J3DMatPacketFv
lbl_803169C4:
/* 803169C4 39 61 00 20 */ addi r11, r1, 0x20
/* 803169C8 48 04 B8 59 */ bl _restgpr_27
/* 803169CC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803169D0 7C 08 03 A6 */ mtlr r0
/* 803169D4 38 21 00 20 */ addi r1, r1, 0x20
/* 803169D8 4E 80 00 20 */ blr
@@ -1,21 +0,0 @@
lbl_80316240:
/* 80316240 38 A0 00 00 */ li r5, 0
/* 80316244 90 A3 00 08 */ stw r5, 8(r3)
/* 80316248 90 A3 00 04 */ stw r5, 4(r3)
/* 8031624C 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80316250 38 00 00 01 */ li r0, 1
/* 80316254 90 03 00 10 */ stw r0, 0x10(r3)
/* 80316258 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */
/* 8031625C 38 04 FF FF */ addi r0, r4, 0xFFFF /* 0x0000FFFF@l */
/* 80316260 B0 03 00 14 */ sth r0, 0x14(r3)
/* 80316264 90 A3 00 18 */ stw r5, 0x18(r3)
/* 80316268 90 A3 00 20 */ stw r5, 0x20(r3)
/* 8031626C 90 A3 00 24 */ stw r5, 0x24(r3)
/* 80316270 90 A3 00 28 */ stw r5, 0x28(r3)
/* 80316274 90 A3 00 2C */ stw r5, 0x2c(r3)
/* 80316278 90 A3 00 30 */ stw r5, 0x30(r3)
/* 8031627C 90 A3 00 34 */ stw r5, 0x34(r3)
/* 80316280 90 A3 00 38 */ stw r5, 0x38(r3)
/* 80316284 90 A3 00 3C */ stw r5, 0x3c(r3)
/* 80316288 90 A3 00 48 */ stw r5, 0x48(r3)
/* 8031628C 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_80317044:
/* 80317044 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80317048 7C 08 02 A6 */ mflr r0
/* 8031704C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80317050 4B FF F1 F1 */ bl initialize__11J3DMaterialFv
/* 80317054 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80317058 7C 08 03 A6 */ mtlr r0
/* 8031705C 38 21 00 10 */ addi r1, r1, 0x10
/* 80317060 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_80316FB8:
/* 80316FB8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316FBC 7C 08 02 A6 */ mflr r0
/* 80316FC0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316FC4 4B FF F2 7D */ bl initialize__11J3DMaterialFv
/* 80316FC8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316FCC 7C 08 03 A6 */ mtlr r0
/* 80316FD0 38 21 00 10 */ addi r1, r1, 0x10
/* 80316FD4 4E 80 00 20 */ blr
@@ -1,27 +0,0 @@
lbl_803166DC:
/* 803166DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803166E0 7C 08 02 A6 */ mflr r0
/* 803166E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 803166E8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803166EC 7C 7F 1B 78 */ mr r31, r3
/* 803166F0 80 03 00 10 */ lwz r0, 0x10(r3)
/* 803166F4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 803166F8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 803166FC 90 03 00 54 */ stw r0, 0x54(r3)
/* 80316700 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80316704 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80316708 40 82 00 24 */ bne lbl_8031672C
/* 8031670C 80 7F 00 48 */ lwz r3, 0x48(r31)
/* 80316710 4B FF BF 09 */ bl callDL__17J3DDisplayListObjCFv
/* 80316714 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80316718 81 83 00 00 */ lwz r12, 0(r3)
/* 8031671C 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 80316720 7D 89 03 A6 */ mtctr r12
/* 80316724 4E 80 04 21 */ bctrl
/* 80316728 48 00 DA 39 */ bl loadNBTScale__FR11J3DNBTScale
lbl_8031672C:
/* 8031672C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316730 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316734 7C 08 03 A6 */ mtlr r0
/* 80316738 38 21 00 10 */ addi r1, r1, 0x10
/* 8031673C 4E 80 00 20 */ blr
@@ -1,22 +0,0 @@
lbl_8031668C:
/* 8031668C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316690 7C 08 02 A6 */ mflr r0
/* 80316694 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316698 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8031669C 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */
/* 803166A0 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */
/* 803166A4 90 04 00 54 */ stw r0, 0x54(r4)
/* 803166A8 80 04 00 34 */ lwz r0, 0x34(r4)
/* 803166AC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803166B0 40 82 00 1C */ bne lbl_803166CC
/* 803166B4 80 63 00 28 */ lwz r3, 0x28(r3)
/* 803166B8 81 83 00 00 */ lwz r12, 0(r3)
/* 803166BC 81 8C 00 5C */ lwz r12, 0x5c(r12)
/* 803166C0 7D 89 03 A6 */ mtctr r12
/* 803166C4 4E 80 04 21 */ bctrl
/* 803166C8 48 00 DA 99 */ bl loadNBTScale__FR11J3DNBTScale
lbl_803166CC:
/* 803166CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803166D0 7C 08 03 A6 */ mtlr r0
/* 803166D4 38 21 00 10 */ addi r1, r1, 0x10
/* 803166D8 4E 80 00 20 */ blr
@@ -1,8 +0,0 @@
lbl_8031706C:
/* 8031706C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80317070 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80317074 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80317078 90 03 00 54 */ stw r0, 0x54(r3)
/* 8031707C 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80317080 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80317084 4E 80 00 20 */ blr
@@ -1,8 +0,0 @@
lbl_80316FE0:
/* 80316FE0 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80316FE4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80316FE8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80316FEC 90 03 00 54 */ stw r0, 0x54(r3)
/* 80316FF0 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80316FF4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80316FF8 4E 80 00 20 */ blr
@@ -1,20 +0,0 @@
lbl_80316620:
/* 80316620 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316624 7C 08 02 A6 */ mflr r0
/* 80316628 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031662C 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */
/* 80316630 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */
/* 80316634 80 A4 00 3C */ lwz r5, 0x3c(r4)
/* 80316638 80 05 00 10 */ lwz r0, 0x10(r5)
/* 8031663C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80316640 40 82 00 18 */ bne lbl_80316658
/* 80316644 80 03 00 20 */ lwz r0, 0x20(r3)
/* 80316648 90 05 00 34 */ stw r0, 0x34(r5)
/* 8031664C 80 84 00 3C */ lwz r4, 0x3c(r4)
/* 80316650 80 84 00 20 */ lwz r4, 0x20(r4)
/* 80316654 4B FF FC F1 */ bl makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj
lbl_80316658:
/* 80316658 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031665C 7C 08 03 A6 */ mtlr r0
/* 80316660 38 21 00 10 */ addi r1, r1, 0x10
/* 80316664 4E 80 00 20 */ blr
@@ -1,184 +0,0 @@
lbl_80316344:
/* 80316344 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80316348 7C 08 02 A6 */ mflr r0
/* 8031634C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80316350 39 61 00 20 */ addi r11, r1, 0x20
/* 80316354 48 04 BE 7D */ bl _savegpr_26
/* 80316358 7C 7E 1B 78 */ mr r30, r3
/* 8031635C 7C 9F 23 78 */ mr r31, r4
/* 80316360 7F E3 FB 78 */ mr r3, r31
/* 80316364 4B FF C2 E1 */ bl beginDL__17J3DDisplayListObjFv
/* 80316368 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 8031636C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316370 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 80316374 7D 89 03 A6 */ mtctr r12
/* 80316378 4E 80 04 21 */ bctrl
/* 8031637C 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 80316380 81 83 00 00 */ lwz r12, 0(r3)
/* 80316384 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316388 7D 89 03 A6 */ mtctr r12
/* 8031638C 4E 80 04 21 */ bctrl
/* 80316390 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 80316394 81 83 00 00 */ lwz r12, 0(r3)
/* 80316398 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8031639C 7D 89 03 A6 */ mtctr r12
/* 803163A0 4E 80 04 21 */ bctrl
/* 803163A4 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 803163A8 81 83 00 00 */ lwz r12, 0(r3)
/* 803163AC 81 8C 00 78 */ lwz r12, 0x78(r12)
/* 803163B0 7D 89 03 A6 */ mtctr r12
/* 803163B4 4E 80 04 21 */ bctrl
/* 803163B8 54 7A 06 3E */ clrlwi r26, r3, 0x18
/* 803163BC 80 7E 00 30 */ lwz r3, 0x30(r30)
/* 803163C0 81 83 00 00 */ lwz r12, 0(r3)
/* 803163C4 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 803163C8 7D 89 03 A6 */ mtctr r12
/* 803163CC 4E 80 04 21 */ bctrl
/* 803163D0 7C 7B 1B 78 */ mr r27, r3
/* 803163D4 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 803163D8 81 83 00 00 */ lwz r12, 0(r3)
/* 803163DC 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 803163E0 7D 89 03 A6 */ mtctr r12
/* 803163E4 4E 80 04 21 */ bctrl
/* 803163E8 7C 7C 1B 78 */ mr r28, r3
/* 803163EC 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 803163F0 81 83 00 00 */ lwz r12, 0(r3)
/* 803163F4 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 803163F8 7D 89 03 A6 */ mtctr r12
/* 803163FC 4E 80 04 21 */ bctrl
/* 80316400 7C 7D 1B 78 */ mr r29, r3
/* 80316404 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316408 81 83 00 00 */ lwz r12, 0(r3)
/* 8031640C 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80316410 7D 89 03 A6 */ mtctr r12
/* 80316414 4E 80 04 21 */ bctrl
/* 80316418 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8031641C 7F A4 EB 78 */ mr r4, r29
/* 80316420 7F 85 E3 78 */ mr r5, r28
/* 80316424 7F 66 DB 78 */ mr r6, r27
/* 80316428 7F 47 D3 78 */ mr r7, r26
/* 8031642C 4B FF 6C 6D */ bl J3DGDSetGenMode__FUcUcUcUc11_GXCullMode
/* 80316430 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316434 81 83 00 00 */ lwz r12, 0(r3)
/* 80316438 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8031643C 7D 89 03 A6 */ mtctr r12
/* 80316440 4E 80 04 21 */ bctrl
/* 80316444 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 80316448 81 83 00 00 */ lwz r12, 0(r3)
/* 8031644C 81 8C 00 08 */ lwz r12, 8(r12)
/* 80316450 7D 89 03 A6 */ mtctr r12
/* 80316454 4E 80 04 21 */ bctrl
/* 80316458 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 8031645C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316460 81 8C 00 58 */ lwz r12, 0x58(r12)
/* 80316464 7D 89 03 A6 */ mtctr r12
/* 80316468 4E 80 04 21 */ bctrl
/* 8031646C 38 C0 00 10 */ li r6, 0x10
/* 80316470 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316474 80 85 00 08 */ lwz r4, 8(r5)
/* 80316478 38 04 00 01 */ addi r0, r4, 1
/* 8031647C 90 05 00 08 */ stw r0, 8(r5)
/* 80316480 98 C4 00 00 */ stb r6, 0(r4)
/* 80316484 38 E0 00 00 */ li r7, 0
/* 80316488 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 8031648C 80 85 00 08 */ lwz r4, 8(r5)
/* 80316490 38 04 00 01 */ addi r0, r4, 1
/* 80316494 90 05 00 08 */ stw r0, 8(r5)
/* 80316498 98 E4 00 00 */ stb r7, 0(r4)
/* 8031649C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803164A0 80 85 00 08 */ lwz r4, 8(r5)
/* 803164A4 38 04 00 01 */ addi r0, r4, 1
/* 803164A8 90 05 00 08 */ stw r0, 8(r5)
/* 803164AC 98 E4 00 00 */ stb r7, 0(r4)
/* 803164B0 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803164B4 80 85 00 08 */ lwz r4, 8(r5)
/* 803164B8 38 04 00 01 */ addi r0, r4, 1
/* 803164BC 90 05 00 08 */ stw r0, 8(r5)
/* 803164C0 98 C4 00 00 */ stb r6, 0(r4)
/* 803164C4 38 C0 00 09 */ li r6, 9
/* 803164C8 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803164CC 80 85 00 08 */ lwz r4, 8(r5)
/* 803164D0 38 04 00 01 */ addi r0, r4, 1
/* 803164D4 90 05 00 08 */ stw r0, 8(r5)
/* 803164D8 98 C4 00 00 */ stb r6, 0(r4)
/* 803164DC 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803164E0 80 85 00 08 */ lwz r4, 8(r5)
/* 803164E4 38 04 00 01 */ addi r0, r4, 1
/* 803164E8 90 05 00 08 */ stw r0, 8(r5)
/* 803164EC 98 E4 00 00 */ stb r7, 0(r4)
/* 803164F0 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803164F4 80 85 00 08 */ lwz r4, 8(r5)
/* 803164F8 38 04 00 01 */ addi r0, r4, 1
/* 803164FC 90 05 00 08 */ stw r0, 8(r5)
/* 80316500 98 E4 00 00 */ stb r7, 0(r4)
/* 80316504 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316508 80 85 00 08 */ lwz r4, 8(r5)
/* 8031650C 38 04 00 01 */ addi r0, r4, 1
/* 80316510 90 05 00 08 */ stw r0, 8(r5)
/* 80316514 98 E4 00 00 */ stb r7, 0(r4)
/* 80316518 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 8031651C 80 85 00 08 */ lwz r4, 8(r5)
/* 80316520 38 04 00 01 */ addi r0, r4, 1
/* 80316524 90 05 00 08 */ stw r0, 8(r5)
/* 80316528 98 64 00 00 */ stb r3, 0(r4)
/* 8031652C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80316530 81 83 00 00 */ lwz r12, 0(r3)
/* 80316534 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80316538 7D 89 03 A6 */ mtctr r12
/* 8031653C 4E 80 04 21 */ bctrl
/* 80316540 38 C0 00 10 */ li r6, 0x10
/* 80316544 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316548 80 85 00 08 */ lwz r4, 8(r5)
/* 8031654C 38 04 00 01 */ addi r0, r4, 1
/* 80316550 90 05 00 08 */ stw r0, 8(r5)
/* 80316554 98 C4 00 00 */ stb r6, 0(r4)
/* 80316558 38 E0 00 00 */ li r7, 0
/* 8031655C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316560 80 85 00 08 */ lwz r4, 8(r5)
/* 80316564 38 04 00 01 */ addi r0, r4, 1
/* 80316568 90 05 00 08 */ stw r0, 8(r5)
/* 8031656C 98 E4 00 00 */ stb r7, 0(r4)
/* 80316570 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316574 80 85 00 08 */ lwz r4, 8(r5)
/* 80316578 38 04 00 01 */ addi r0, r4, 1
/* 8031657C 90 05 00 08 */ stw r0, 8(r5)
/* 80316580 98 E4 00 00 */ stb r7, 0(r4)
/* 80316584 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 80316588 80 85 00 08 */ lwz r4, 8(r5)
/* 8031658C 38 04 00 01 */ addi r0, r4, 1
/* 80316590 90 05 00 08 */ stw r0, 8(r5)
/* 80316594 98 C4 00 00 */ stb r6, 0(r4)
/* 80316598 38 C0 00 3F */ li r6, 0x3f
/* 8031659C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803165A0 80 85 00 08 */ lwz r4, 8(r5)
/* 803165A4 38 04 00 01 */ addi r0, r4, 1
/* 803165A8 90 05 00 08 */ stw r0, 8(r5)
/* 803165AC 98 C4 00 00 */ stb r6, 0(r4)
/* 803165B0 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803165B4 80 85 00 08 */ lwz r4, 8(r5)
/* 803165B8 38 04 00 01 */ addi r0, r4, 1
/* 803165BC 90 05 00 08 */ stw r0, 8(r5)
/* 803165C0 98 E4 00 00 */ stb r7, 0(r4)
/* 803165C4 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803165C8 80 85 00 08 */ lwz r4, 8(r5)
/* 803165CC 38 04 00 01 */ addi r0, r4, 1
/* 803165D0 90 05 00 08 */ stw r0, 8(r5)
/* 803165D4 98 E4 00 00 */ stb r7, 0(r4)
/* 803165D8 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803165DC 80 85 00 08 */ lwz r4, 8(r5)
/* 803165E0 38 04 00 01 */ addi r0, r4, 1
/* 803165E4 90 05 00 08 */ stw r0, 8(r5)
/* 803165E8 98 E4 00 00 */ stb r7, 0(r4)
/* 803165EC 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13)
/* 803165F0 80 85 00 08 */ lwz r4, 8(r5)
/* 803165F4 38 04 00 01 */ addi r0, r4, 1
/* 803165F8 90 05 00 08 */ stw r0, 8(r5)
/* 803165FC 98 64 00 00 */ stb r3, 0(r4)
/* 80316600 7F E3 FB 78 */ mr r3, r31
/* 80316604 4B FF C0 95 */ bl endDL__17J3DDisplayListObjFv
/* 80316608 39 61 00 20 */ addi r11, r1, 0x20
/* 8031660C 48 04 BC 11 */ bl _restgpr_26
/* 80316610 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80316614 7C 08 03 A6 */ mtlr r0
/* 80316618 38 21 00 20 */ addi r1, r1, 0x20
/* 8031661C 4E 80 00 20 */ blr
@@ -1,10 +0,0 @@
lbl_80316668:
/* 80316668 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031666C 7C 08 02 A6 */ mflr r0
/* 80316670 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316674 80 83 00 48 */ lwz r4, 0x48(r3)
/* 80316678 4B FF FC CD */ bl makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj
/* 8031667C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316680 7C 08 03 A6 */ mtlr r0
/* 80316684 38 21 00 10 */ addi r1, r1, 0x10
/* 80316688 4E 80 00 20 */ blr
@@ -1,42 +0,0 @@
lbl_80316E90:
/* 80316E90 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316E94 7C 08 02 A6 */ mflr r0
/* 80316E98 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316E9C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316EA0 93 C1 00 08 */ stw r30, 8(r1)
/* 80316EA4 7C 7E 1B 78 */ mr r30, r3
/* 80316EA8 7C 9F 23 78 */ mr r31, r4
/* 80316EAC 80 03 00 48 */ lwz r0, 0x48(r3)
/* 80316EB0 28 00 00 00 */ cmplwi r0, 0
/* 80316EB4 40 82 00 54 */ bne lbl_80316F08
/* 80316EB8 38 60 00 10 */ li r3, 0x10
/* 80316EBC 4B FB 7D 91 */ bl __nw__FUl
/* 80316EC0 28 03 00 00 */ cmplwi r3, 0
/* 80316EC4 41 82 00 18 */ beq lbl_80316EDC
/* 80316EC8 38 00 00 00 */ li r0, 0
/* 80316ECC 90 03 00 00 */ stw r0, 0(r3)
/* 80316ED0 90 03 00 04 */ stw r0, 4(r3)
/* 80316ED4 90 03 00 08 */ stw r0, 8(r3)
/* 80316ED8 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80316EDC:
/* 80316EDC 90 7E 00 48 */ stw r3, 0x48(r30)
/* 80316EE0 80 7E 00 48 */ lwz r3, 0x48(r30)
/* 80316EE4 28 03 00 00 */ cmplwi r3, 0
/* 80316EE8 40 82 00 0C */ bne lbl_80316EF4
/* 80316EEC 38 60 00 04 */ li r3, 4
/* 80316EF0 48 00 00 1C */ b lbl_80316F0C
lbl_80316EF4:
/* 80316EF4 7F E4 FB 78 */ mr r4, r31
/* 80316EF8 4B FF B5 91 */ bl newDisplayList__17J3DDisplayListObjFUl
/* 80316EFC 2C 03 00 00 */ cmpwi r3, 0
/* 80316F00 41 82 00 08 */ beq lbl_80316F08
/* 80316F04 48 00 00 08 */ b lbl_80316F0C
lbl_80316F08:
/* 80316F08 38 60 00 00 */ li r3, 0
lbl_80316F0C:
/* 80316F0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316F10 83 C1 00 08 */ lwz r30, 8(r1)
/* 80316F14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316F18 7C 08 03 A6 */ mtlr r0
/* 80316F1C 38 21 00 10 */ addi r1, r1, 0x10
/* 80316F20 4E 80 00 20 */ blr
@@ -1,42 +0,0 @@
lbl_80316F24:
/* 80316F24 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316F28 7C 08 02 A6 */ mflr r0
/* 80316F2C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316F30 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316F34 93 C1 00 08 */ stw r30, 8(r1)
/* 80316F38 7C 7E 1B 78 */ mr r30, r3
/* 80316F3C 7C 9F 23 78 */ mr r31, r4
/* 80316F40 80 03 00 48 */ lwz r0, 0x48(r3)
/* 80316F44 28 00 00 00 */ cmplwi r0, 0
/* 80316F48 40 82 00 54 */ bne lbl_80316F9C
/* 80316F4C 38 60 00 10 */ li r3, 0x10
/* 80316F50 4B FB 7C FD */ bl __nw__FUl
/* 80316F54 28 03 00 00 */ cmplwi r3, 0
/* 80316F58 41 82 00 18 */ beq lbl_80316F70
/* 80316F5C 38 00 00 00 */ li r0, 0
/* 80316F60 90 03 00 00 */ stw r0, 0(r3)
/* 80316F64 90 03 00 04 */ stw r0, 4(r3)
/* 80316F68 90 03 00 08 */ stw r0, 8(r3)
/* 80316F6C 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80316F70:
/* 80316F70 90 7E 00 48 */ stw r3, 0x48(r30)
/* 80316F74 80 7E 00 48 */ lwz r3, 0x48(r30)
/* 80316F78 28 03 00 00 */ cmplwi r3, 0
/* 80316F7C 40 82 00 0C */ bne lbl_80316F88
/* 80316F80 38 60 00 04 */ li r3, 4
/* 80316F84 48 00 00 1C */ b lbl_80316FA0
lbl_80316F88:
/* 80316F88 7F E4 FB 78 */ mr r4, r31
/* 80316F8C 4B FF B5 7D */ bl newSingleDisplayList__17J3DDisplayListObjFUl
/* 80316F90 2C 03 00 00 */ cmpwi r3, 0
/* 80316F94 41 82 00 08 */ beq lbl_80316F9C
/* 80316F98 48 00 00 08 */ b lbl_80316FA0
lbl_80316F9C:
/* 80316F9C 38 60 00 00 */ li r3, 0
lbl_80316FA0:
/* 80316FA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80316FA4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80316FA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316FAC 7C 08 03 A6 */ mtlr r0
/* 80316FB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80316FB4 4E 80 00 20 */ blr
@@ -1,39 +0,0 @@
lbl_80316740:
/* 80316740 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316744 7C 08 02 A6 */ mflr r0
/* 80316748 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031674C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80316750 93 C1 00 08 */ stw r30, 8(r1)
/* 80316754 7C 7E 1B 78 */ mr r30, r3
/* 80316758 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8031675C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80316760 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
/* 80316764 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80316768 90 03 00 34 */ stw r0, 0x34(r3)
/* 8031676C 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 80316770 80 63 00 20 */ lwz r3, 0x20(r3)
/* 80316774 4B FF BF 81 */ bl beginPatch__17J3DDisplayListObjFv
/* 80316778 80 7E 00 2C */ lwz r3, 0x2c(r30)
/* 8031677C 81 83 00 00 */ lwz r12, 0(r3)
/* 80316780 81 8C 00 28 */ lwz r12, 0x28(r12)
/* 80316784 7D 89 03 A6 */ mtctr r12
/* 80316788 4E 80 04 21 */ bctrl
/* 8031678C 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 80316790 81 83 00 00 */ lwz r12, 0(r3)
/* 80316794 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 80316798 7D 89 03 A6 */ mtctr r12
/* 8031679C 4E 80 04 21 */ bctrl
/* 803167A0 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 803167A4 81 83 00 00 */ lwz r12, 0(r3)
/* 803167A8 81 8C 00 20 */ lwz r12, 0x20(r12)
/* 803167AC 7D 89 03 A6 */ mtctr r12
/* 803167B0 4E 80 04 21 */ bctrl
/* 803167B4 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 803167B8 80 63 00 20 */ lwz r3, 0x20(r3)
/* 803167BC 4B FF BF 59 */ bl endPatch__17J3DDisplayListObjFv
/* 803167C0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803167C4 83 C1 00 08 */ lwz r30, 8(r1)
/* 803167C8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803167CC 7C 08 03 A6 */ mtlr r0
/* 803167D0 38 21 00 10 */ addi r1, r1, 0x10
/* 803167D4 4E 80 00 20 */ blr
@@ -1,25 +0,0 @@
lbl_80316E14:
/* 80316E14 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80316E18 7C 08 02 A6 */ mflr r0
/* 80316E1C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80316E20 80 83 00 20 */ lwz r4, 0x20(r3)
/* 80316E24 7C 80 20 F8 */ nor r0, r4, r4
/* 80316E28 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 80316E2C 40 82 00 34 */ bne lbl_80316E60
/* 80316E30 54 80 00 7E */ clrlwi r0, r4, 1
/* 80316E34 90 03 00 20 */ stw r0, 0x20(r3)
/* 80316E38 80 83 00 38 */ lwz r4, 0x38(r3)
/* 80316E3C 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80316E40 90 03 00 10 */ stw r0, 0x10(r3)
/* 80316E44 80 83 00 38 */ lwz r4, 0x38(r3)
/* 80316E48 80 04 00 18 */ lwz r0, 0x18(r4)
/* 80316E4C 90 03 00 18 */ stw r0, 0x18(r3)
/* 80316E50 38 00 00 00 */ li r0, 0
/* 80316E54 90 03 00 3C */ stw r0, 0x3c(r3)
/* 80316E58 80 83 00 38 */ lwz r4, 0x38(r3)
/* 80316E5C 4B FF FF 0D */ bl copy__11J3DMaterialFP11J3DMaterial
lbl_80316E60:
/* 80316E60 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80316E64 7C 08 03 A6 */ mtlr r0
/* 80316E68 38 21 00 10 */ addi r1, r1, 0x10
/* 80316E6C 4E 80 00 20 */ blr
@@ -1,7 +0,0 @@
lbl_80316AB0:
/* 80316AB0 80 83 00 08 */ lwz r4, 8(r3)
/* 80316AB4 80 03 00 40 */ lwz r0, 0x40(r3)
/* 80316AB8 90 04 00 40 */ stw r0, 0x40(r4)
/* 80316ABC 80 03 00 44 */ lwz r0, 0x44(r3)
/* 80316AC0 90 04 00 44 */ stw r0, 0x44(r4)
/* 80316AC4 4E 80 00 20 */ blr
@@ -1,137 +0,0 @@
lbl_80312BD4:
/* 80312BD4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80312BD8 7C 08 02 A6 */ mflr r0
/* 80312BDC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80312BE0 39 61 00 20 */ addi r11, r1, 0x20
/* 80312BE4 48 04 F5 F5 */ bl _savegpr_28
/* 80312BE8 7C 7D 1B 78 */ mr r29, r3
/* 80312BEC 7C 9E 23 78 */ mr r30, r4
/* 80312BF0 3B E0 00 00 */ li r31, 0
/* 80312BF4 38 60 00 00 */ li r3, 0
/* 80312BF8 3C 80 80 3D */ lis r4, sDifferedRegister@ha /* 0x803CD900@ha */
/* 80312BFC 38 A4 D9 00 */ addi r5, r4, sDifferedRegister@l /* 0x803CD900@l */
/* 80312C00 3C 80 80 3D */ lis r4, sSizeOfDiffered@ha /* 0x803CD920@ha */
/* 80312C04 38 84 D9 20 */ addi r4, r4, sSizeOfDiffered@l /* 0x803CD920@l */
/* 80312C08 38 00 00 08 */ li r0, 8
/* 80312C0C 7C 09 03 A6 */ mtctr r0
lbl_80312C10:
/* 80312C10 7C 05 18 2E */ lwzx r0, r5, r3
/* 80312C14 7F C0 00 39 */ and. r0, r30, r0
/* 80312C18 41 82 00 0C */ beq lbl_80312C24
/* 80312C1C 7C 04 18 2E */ lwzx r0, r4, r3
/* 80312C20 7F FF 02 14 */ add r31, r31, r0
lbl_80312C24:
/* 80312C24 38 63 00 04 */ addi r3, r3, 4
/* 80312C28 42 00 FF E8 */ bdnz lbl_80312C10
/* 80312C2C 57 C0 E7 3E */ rlwinm r0, r30, 0x1c, 0x1c, 0x1f
/* 80312C30 1C 00 00 48 */ mulli r0, r0, 0x48
/* 80312C34 7F FF 02 14 */ add r31, r31, r0
/* 80312C38 57 DC C7 3F */ rlwinm. r28, r30, 0x18, 0x1c, 0x1f
/* 80312C3C 41 82 00 4C */ beq lbl_80312C88
/* 80312C40 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80312C44 80 63 00 04 */ lwz r3, 4(r3)
/* 80312C48 80 63 00 28 */ lwz r3, 0x28(r3)
/* 80312C4C 81 83 00 00 */ lwz r12, 0(r3)
/* 80312C50 81 8C 00 40 */ lwz r12, 0x40(r12)
/* 80312C54 7D 89 03 A6 */ mtctr r12
/* 80312C58 4E 80 04 21 */ bctrl
/* 80312C5C 7C 1C 18 40 */ cmplw r28, r3
/* 80312C60 40 81 00 08 */ ble lbl_80312C68
/* 80312C64 7F 83 E3 78 */ mr r3, r28
lbl_80312C68:
/* 80312C68 57 C0 04 E7 */ rlwinm. r0, r30, 0, 0x13, 0x13
/* 80312C6C 41 82 00 14 */ beq lbl_80312C80
/* 80312C70 1C 03 00 3D */ mulli r0, r3, 0x3d
/* 80312C74 7F E0 FA 14 */ add r31, r0, r31
/* 80312C78 3B FF 00 0A */ addi r31, r31, 0xa
/* 80312C7C 48 00 00 0C */ b lbl_80312C88
lbl_80312C80:
/* 80312C80 1C 03 00 35 */ mulli r0, r3, 0x35
/* 80312C84 7F FF 02 14 */ add r31, r31, r0
lbl_80312C88:
/* 80312C88 57 DC 87 3F */ rlwinm. r28, r30, 0x10, 0x1c, 0x1f
/* 80312C8C 41 82 00 90 */ beq lbl_80312D1C
/* 80312C90 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80312C94 80 63 00 04 */ lwz r3, 4(r3)
/* 80312C98 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 80312C9C 81 83 00 00 */ lwz r12, 0(r3)
/* 80312CA0 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80312CA4 7D 89 03 A6 */ mtctr r12
/* 80312CA8 4E 80 04 21 */ bctrl
/* 80312CAC 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80312CB0 28 00 00 08 */ cmplwi r0, 8
/* 80312CB4 40 81 00 0C */ ble lbl_80312CC0
/* 80312CB8 38 60 00 08 */ li r3, 8
/* 80312CBC 48 00 00 20 */ b lbl_80312CDC
lbl_80312CC0:
/* 80312CC0 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80312CC4 80 63 00 04 */ lwz r3, 4(r3)
/* 80312CC8 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 80312CCC 81 83 00 00 */ lwz r12, 0(r3)
/* 80312CD0 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80312CD4 7D 89 03 A6 */ mtctr r12
/* 80312CD8 4E 80 04 21 */ bctrl
lbl_80312CDC:
/* 80312CDC 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80312CE0 7C 1C 00 40 */ cmplw r28, r0
/* 80312CE4 7C 03 03 78 */ mr r3, r0
/* 80312CE8 40 81 00 08 */ ble lbl_80312CF0
/* 80312CEC 7F 83 E3 78 */ mr r3, r28
lbl_80312CF0:
/* 80312CF0 57 C0 01 4B */ rlwinm. r0, r30, 0, 5, 5
/* 80312CF4 41 82 00 20 */ beq lbl_80312D14
/* 80312CF8 1C 83 00 37 */ mulli r4, r3, 0x37
/* 80312CFC 38 03 00 01 */ addi r0, r3, 1
/* 80312D00 54 00 F8 7E */ srwi r0, r0, 1
/* 80312D04 1C 00 00 37 */ mulli r0, r0, 0x37
/* 80312D08 7C 84 02 14 */ add r4, r4, r0
/* 80312D0C 7F FF 22 14 */ add r31, r31, r4
/* 80312D10 48 00 00 0C */ b lbl_80312D1C
lbl_80312D14:
/* 80312D14 1C 03 00 37 */ mulli r0, r3, 0x37
/* 80312D18 7F FF 02 14 */ add r31, r31, r0
lbl_80312D1C:
/* 80312D1C 57 DC 67 3F */ rlwinm. r28, r30, 0xc, 0x1c, 0x1f
/* 80312D20 41 82 00 7C */ beq lbl_80312D9C
/* 80312D24 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80312D28 80 63 00 04 */ lwz r3, 4(r3)
/* 80312D2C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 80312D30 81 83 00 00 */ lwz r12, 0(r3)
/* 80312D34 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80312D38 7D 89 03 A6 */ mtctr r12
/* 80312D3C 4E 80 04 21 */ bctrl
/* 80312D40 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80312D44 28 00 00 08 */ cmplwi r0, 8
/* 80312D48 40 81 00 0C */ ble lbl_80312D54
/* 80312D4C 38 60 00 08 */ li r3, 8
/* 80312D50 48 00 00 20 */ b lbl_80312D70
lbl_80312D54:
/* 80312D54 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80312D58 80 63 00 04 */ lwz r3, 4(r3)
/* 80312D5C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 80312D60 81 83 00 00 */ lwz r12, 0(r3)
/* 80312D64 81 8C 00 98 */ lwz r12, 0x98(r12)
/* 80312D68 7D 89 03 A6 */ mtctr r12
/* 80312D6C 4E 80 04 21 */ bctrl
lbl_80312D70:
/* 80312D70 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80312D74 7C 1C 00 40 */ cmplw r28, r0
/* 80312D78 7C 03 03 78 */ mr r3, r0
/* 80312D7C 40 81 00 08 */ ble lbl_80312D84
/* 80312D80 7F 83 E3 78 */ mr r3, r28
lbl_80312D84:
/* 80312D84 1C 03 00 0A */ mulli r0, r3, 0xa
/* 80312D88 7F FF 02 14 */ add r31, r31, r0
/* 80312D8C 57 C0 01 09 */ rlwinm. r0, r30, 0, 4, 4
/* 80312D90 41 82 00 0C */ beq lbl_80312D9C
/* 80312D94 1C 03 00 05 */ mulli r0, r3, 5
/* 80312D98 7F FF 02 14 */ add r31, r31, r0
lbl_80312D9C:
/* 80312D9C 38 1F 00 1F */ addi r0, r31, 0x1f
/* 80312DA0 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
/* 80312DA4 39 61 00 20 */ addi r11, r1, 0x20
/* 80312DA8 48 04 F4 7D */ bl _restgpr_28
/* 80312DAC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80312DB0 7C 08 03 A6 */ mtlr r0
/* 80312DB4 38 21 00 20 */ addi r1, r1, 0x20
/* 80312DB8 4E 80 00 20 */ blr
@@ -1,78 +0,0 @@
lbl_80312E08:
/* 80312E08 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80312E0C 7C 08 02 A6 */ mflr r0
/* 80312E10 90 01 00 14 */ stw r0, 0x14(r1)
/* 80312E14 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80312E18 7C 7F 1B 78 */ mr r31, r3
/* 80312E1C 80 63 00 38 */ lwz r3, 0x38(r3)
/* 80312E20 38 63 00 88 */ addi r3, r3, 0x88
/* 80312E24 4B FF E2 49 */ bl setArray__15J3DVertexBufferCFv
/* 80312E28 80 9F 00 38 */ lwz r4, 0x38(r31)
/* 80312E2C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80312E30 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80312E34 90 83 00 38 */ stw r4, 0x38(r3)
/* 80312E38 93 E3 00 40 */ stw r31, 0x40(r3)
/* 80312E3C 80 04 00 08 */ lwz r0, 8(r4)
/* 80312E40 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f
/* 80312E44 98 0D 90 31 */ stb r0, struct_804515B0+0x1(r13)
/* 80312E48 80 04 00 08 */ lwz r0, 8(r4)
/* 80312E4C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80312E50 41 82 00 18 */ beq lbl_80312E68
/* 80312E54 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80312E58 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80312E5C 60 00 00 04 */ ori r0, r0, 4
/* 80312E60 90 03 00 0C */ stw r0, 0xc(r3)
/* 80312E64 48 00 00 14 */ b lbl_80312E78
lbl_80312E68:
/* 80312E68 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80312E6C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80312E70 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80312E74 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80312E78:
/* 80312E78 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80312E7C 80 03 00 08 */ lwz r0, 8(r3)
/* 80312E80 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80312E84 41 82 00 24 */ beq lbl_80312EA8
/* 80312E88 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80312E8C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80312E90 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f
/* 80312E94 40 82 00 14 */ bne lbl_80312EA8
/* 80312E98 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80312E9C 60 00 00 08 */ ori r0, r0, 8
/* 80312EA0 90 03 00 0C */ stw r0, 0xc(r3)
/* 80312EA4 48 00 00 14 */ b lbl_80312EB8
lbl_80312EA8:
/* 80312EA8 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80312EAC 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80312EB0 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80312EB4 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80312EB8:
/* 80312EB8 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80312EBC 38 03 00 30 */ addi r0, r3, 0x30
/* 80312EC0 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 80312EC4 90 04 00 60 */ stw r0, 0x60(r4)
/* 80312EC8 80 03 00 04 */ lwz r0, 4(r3)
/* 80312ECC 90 04 00 54 */ stw r0, 0x54(r4)
/* 80312ED0 80 03 00 18 */ lwz r0, 0x18(r3)
/* 80312ED4 90 04 00 58 */ stw r0, 0x58(r4)
/* 80312ED8 88 04 00 34 */ lbz r0, 0x34(r4)
/* 80312EDC 28 00 00 00 */ cmplwi r0, 0
/* 80312EE0 40 82 00 10 */ bne lbl_80312EF0
/* 80312EE4 80 03 00 20 */ lwz r0, 0x20(r3)
/* 80312EE8 90 04 00 5C */ stw r0, 0x5c(r4)
/* 80312EEC 48 00 00 18 */ b lbl_80312F04
lbl_80312EF0:
/* 80312EF0 80 04 00 64 */ lwz r0, 0x64(r4)
/* 80312EF4 80 63 00 28 */ lwz r3, 0x28(r3)
/* 80312EF8 54 00 10 3A */ slwi r0, r0, 2
/* 80312EFC 7C 03 00 2E */ lwzx r0, r3, r0
/* 80312F00 90 04 00 5C */ stw r0, 0x5c(r4)
lbl_80312F04:
/* 80312F04 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 80312F08 80 63 00 04 */ lwz r3, 4(r3)
/* 80312F0C 48 01 31 ED */ bl syncJ3DSysFlags__12J3DModelDataCFv
/* 80312F10 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80312F14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80312F18 7C 08 03 A6 */ mtlr r0
/* 80312F1C 38 21 00 10 */ addi r1, r1, 0x10
/* 80312F20 4E 80 00 20 */ blr
@@ -1,114 +0,0 @@
lbl_8031544C:
/* 8031544C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80315450 7C 08 02 A6 */ mflr r0
/* 80315454 90 01 00 24 */ stw r0, 0x24(r1)
/* 80315458 39 61 00 20 */ addi r11, r1, 0x20
/* 8031545C 48 04 CD 79 */ bl _savegpr_27
/* 80315460 7C 7F 1B 78 */ mr r31, r3
/* 80315464 80 0D 90 50 */ lwz r0, sOldVcdVatCmd__8J3DShape(r13)
/* 80315468 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8031546C 7C 00 18 40 */ cmplw r0, r3
/* 80315470 41 82 00 14 */ beq lbl_80315484
/* 80315474 38 80 00 C0 */ li r4, 0xc0
/* 80315478 48 04 AA 79 */ bl GXCallDisplayList
/* 8031547C 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 80315480 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13)
lbl_80315484:
/* 80315484 88 0D 90 54 */ lbz r0, data_804515D4(r13)
/* 80315488 28 00 00 00 */ cmplwi r0, 0
/* 8031548C 41 82 00 60 */ beq lbl_803154EC
/* 80315490 88 1F 00 48 */ lbz r0, 0x48(r31)
/* 80315494 28 00 00 00 */ cmplwi r0, 0
/* 80315498 40 82 00 54 */ bne lbl_803154EC
/* 8031549C 80 BF 00 40 */ lwz r5, 0x40(r31)
/* 803154A0 38 80 00 08 */ li r4, 8
/* 803154A4 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */
/* 803154A8 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */
/* 803154AC 38 00 00 30 */ li r0, 0x30
/* 803154B0 98 03 80 00 */ stb r0, -0x8000(r3)
/* 803154B4 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 803154B8 80 DF 00 44 */ lwz r6, 0x44(r31)
/* 803154BC 98 83 80 00 */ stb r4, -0x8000(r3)
/* 803154C0 38 00 00 40 */ li r0, 0x40
/* 803154C4 98 03 80 00 */ stb r0, -0x8000(r3)
/* 803154C8 90 C3 80 00 */ stw r6, -0x8000(r3)
/* 803154CC 38 00 00 10 */ li r0, 0x10
/* 803154D0 98 03 80 00 */ stb r0, -0x8000(r3)
/* 803154D4 38 00 00 01 */ li r0, 1
/* 803154D8 B0 03 80 00 */ sth r0, -0x8000(r3)
/* 803154DC 38 00 10 18 */ li r0, 0x1018
/* 803154E0 B0 03 80 00 */ sth r0, -0x8000(r3)
/* 803154E4 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 803154E8 90 C3 80 00 */ stw r6, -0x8000(r3)
lbl_803154EC:
/* 803154EC 7F E3 FB 78 */ mr r3, r31
/* 803154F0 4B FF FE A9 */ bl setArrayAndBindPipeline__8J3DShapeCFv
/* 803154F4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803154F8 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 803154FC 40 82 00 6C */ bne lbl_80315568
/* 80315500 88 0D 90 31 */ lbz r0, struct_804515B0+0x1(r13)
/* 80315504 28 00 00 00 */ cmplwi r0, 0
/* 80315508 41 82 00 08 */ beq lbl_80315510
/* 8031550C 4B FF DB 9D */ bl resetMtxLoadCache__11J3DShapeMtxFv
lbl_80315510:
/* 80315510 A3 DF 00 0A */ lhz r30, 0xa(r31)
/* 80315514 3B 60 00 00 */ li r27, 0
/* 80315518 83 BF 00 38 */ lwz r29, 0x38(r31)
/* 8031551C 83 FF 00 3C */ lwz r31, 0x3c(r31)
/* 80315520 48 00 00 38 */ b lbl_80315558
lbl_80315524:
/* 80315524 57 7C 13 BA */ rlwinm r28, r27, 2, 0xe, 0x1d
/* 80315528 7C 7D E0 2E */ lwzx r3, r29, r28
/* 8031552C 28 03 00 00 */ cmplwi r3, 0
/* 80315530 41 82 00 14 */ beq lbl_80315544
/* 80315534 81 83 00 00 */ lwz r12, 0(r3)
/* 80315538 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 8031553C 7D 89 03 A6 */ mtctr r12
/* 80315540 4E 80 04 21 */ bctrl
lbl_80315544:
/* 80315544 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80315548 28 03 00 00 */ cmplwi r3, 0
/* 8031554C 41 82 00 08 */ beq lbl_80315554
/* 80315550 4B FF F5 85 */ bl draw__12J3DShapeDrawCFv
lbl_80315554:
/* 80315554 3B 7B 00 01 */ addi r27, r27, 1
lbl_80315558:
/* 80315558 57 60 04 3E */ clrlwi r0, r27, 0x10
/* 8031555C 7C 00 F0 40 */ cmplw r0, r30
/* 80315560 41 80 FF C4 */ blt lbl_80315524
/* 80315564 48 00 00 64 */ b lbl_803155C8
lbl_80315568:
/* 80315568 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8031556C 3B C3 4A C8 */ addi r30, r3, j3dSys@l /* 0x80434AC8@l */
/* 80315570 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 80315574 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80315578 38 80 00 00 */ li r4, 0
/* 8031557C 4B FF A5 65 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
/* 80315580 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 80315584 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80315588 38 80 00 00 */ li r4, 0
/* 8031558C 4B FF A5 D5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl
/* 80315590 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80315594 3B 60 00 00 */ li r27, 0
/* 80315598 83 DF 00 3C */ lwz r30, 0x3c(r31)
/* 8031559C 54 1F 04 3E */ clrlwi r31, r0, 0x10
/* 803155A0 48 00 00 1C */ b lbl_803155BC
lbl_803155A4:
/* 803155A4 57 60 13 BA */ rlwinm r0, r27, 2, 0xe, 0x1d
/* 803155A8 7C 7E 00 2E */ lwzx r3, r30, r0
/* 803155AC 28 03 00 00 */ cmplwi r3, 0
/* 803155B0 41 82 00 08 */ beq lbl_803155B8
/* 803155B4 4B FF F5 21 */ bl draw__12J3DShapeDrawCFv
lbl_803155B8:
/* 803155B8 3B 7B 00 01 */ addi r27, r27, 1
lbl_803155BC:
/* 803155BC 57 60 04 3E */ clrlwi r0, r27, 0x10
/* 803155C0 7C 00 F8 40 */ cmplw r0, r31
/* 803155C4 41 80 FF E0 */ blt lbl_803155A4
lbl_803155C8:
/* 803155C8 39 61 00 20 */ addi r11, r1, 0x20
/* 803155CC 48 04 CC 55 */ bl _restgpr_27
/* 803155D0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803155D4 7C 08 03 A6 */ mtlr r0
/* 803155D8 38 21 00 20 */ addi r1, r1, 0x20
/* 803155DC 4E 80 00 20 */ blr
+35
View File
@@ -3,6 +3,33 @@
#include "dolphin/types.h"
#include "dolphin/gx/GX.h"
#include "dolphin/gd/GDBase.h"
inline void J3DGDWrite_u8(u8 param) {
__GDWrite(param);
}
inline void J3DGDWrite_u16(u16 param) {
__GDWrite((param & 0xffff) >> 8);
__GDWrite(param & 0xff);
}
inline void J3DGDWrite_u32(u32 param) {
__GDWrite((param >> 24) & 0xff);
__GDWrite((param >> 16) & 0xff);
__GDWrite((param >> 8) & 0xff);
__GDWrite(param & 0xff);
}
inline void J3DGDWriteXFCmd(u16 param_1, u32 param_2) {
J3DGDWrite_u8(0x10);
J3DGDWrite_u16(0);
J3DGDWrite_u16(param_1);
J3DGDWrite_u32(param_2);
}
void J3DGDSetGenMode(u8 texGenNum, u8 colorChanNum, u8 tevStageNum, u8 IndTexStageNum, _GXCullMode cullMode);
void J3DGDSetGenMode_3Param(u8 texGenNum, u8 tevStageNum, u8 indTexStageNum);
static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) {
GFX_FIFO(u8) = cmd;
@@ -10,4 +37,12 @@ static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) {
GFX_FIFO(u16) = addr;
}
inline void J3DGDSetNumChans(u8 numChans) {
J3DGDWriteXFCmd(0x1009, numChans);
}
inline void J3DGDSetNumTexGens(u8 numTexGens) {
J3DGDWriteXFCmd(0x103f, numTexGens);
}
#endif /* J3DGD_H */
+87 -8
View File
@@ -27,9 +27,16 @@ struct J3DNBTScaleInfo {
}; // Size: 0x10
struct J3DNBTScale : public J3DNBTScaleInfo {
J3DNBTScale() {}
J3DNBTScale(J3DNBTScaleInfo const& info) {
mbHasScale = info.mbHasScale;
mScale = info.mScale;
}
Vec* getScale() { return &mScale; }
};
extern const J3DNBTScaleInfo j3dDefaultNBTScaleInfo;
class J3DTexGenBlock {
public:
/* 80317354 */ virtual void reset(J3DTexGenBlock*);
@@ -61,6 +68,9 @@ public:
class J3DTexGenBlockPatched : public J3DTexGenBlock {
public:
J3DTexGenBlockPatched() {
initialize();
}
/* 80317644 */ void initialize();
/* 80320084 */ virtual void reset(J3DTexGenBlock*);
@@ -88,13 +98,16 @@ public:
private:
/* 0x04 */ u32 mTexGenNum;
/* 0x08 */ J3DTexCoord mTexCoord[9];
/* 0x08 */ J3DTexCoord mTexCoord[8];
/* 0x38 */ J3DTexMtx* mTexMtx[8];
/* 0x58 */ u32 mTexMtxOffset;
}; // Size: 0x5C
class J3DTexGenBlockBasic : public J3DTexGenBlockPatched {
public:
J3DTexGenBlockBasic() : mNBTScale(j3dDefaultNBTScaleInfo) {
initialize();
}
/* 803176A4 */ void initialize();
/* 803202DC */ virtual void reset(J3DTexGenBlock*);
@@ -113,6 +126,9 @@ private:
class J3DTexGenBlock4 : public J3DTexGenBlockPatched {
public:
J3DTexGenBlock4() : mNBTScale(j3dDefaultNBTScaleInfo) {
initialize();
}
/* 80317674 */ void initialize();
/* 803201A0 */ virtual void reset(J3DTexGenBlock*);
@@ -193,6 +209,9 @@ private:
class J3DTevBlockPatched : public J3DTevBlock {
public:
J3DTevBlockPatched() {
initialize();
}
/* 803176E0 */ void initialize();
/* 80320418 */ virtual void reset(J3DTevBlock*);
@@ -257,6 +276,9 @@ class J3DTevBlockNull : public J3DTevBlock {
class J3DTevBlock4 : public J3DTevBlock {
public:
J3DTevBlock4() {
initialize();
}
/* 803178EC */ void initialize();
/* 8032098C */ virtual void reset(J3DTevBlock*);
@@ -327,6 +349,9 @@ private:
class J3DTevBlock2 : public J3DTevBlock {
public:
J3DTevBlock2() {
initialize();
}
/* 80317810 */ void initialize();
/* 803206AC */ virtual void reset(J3DTevBlock*);
@@ -397,6 +422,9 @@ private:
class J3DTevBlock16 : public J3DTevBlock {
public:
J3DTevBlock16() {
initialize();
}
/* 80317A00 */ void initialize();
/* 80320E24 */ virtual void reset(J3DTevBlock*);
@@ -467,6 +495,9 @@ private:
class J3DTevBlock1 : public J3DTevBlock {
public:
J3DTevBlock1() {
initialize();
}
/* 803177E8 */ void initialize();
/* 803205D4 */ virtual void reset(J3DTevBlock*);
@@ -509,18 +540,32 @@ private:
/* 0x18 */ J3DIndTevStage mIndTevStage[1];
}; // Size: 0x1C
extern const u16 j3dDefaultZModeID;
struct J3DZMode {
J3DZMode() {
mZModeID = j3dDefaultZModeID;
}
/* 0x0 */ u16 mZModeID;
};
struct J3DBlendInfo {
void operator=(J3DBlendInfo const& other) {
*(int*)&mType = *(int*)&other.mType;
}
/* 0x0 */ u8 mType;
/* 0x1 */ u8 mSrcFactor;
/* 0x2 */ u8 mDstFactor;
/* 0x3 */ u8 mOp;
};
struct J3DBlend : public J3DBlendInfo {};
extern const J3DBlendInfo j3dDefaultBlendInfo;
struct J3DBlend : public J3DBlendInfo {
J3DBlend() {
*(J3DBlendInfo*)this = j3dDefaultBlendInfo;
}
};
struct J3DFogInfo {
/* 80325800 */ void operator=(J3DFogInfo const&);
@@ -539,7 +584,12 @@ struct J3DFogInfo {
/* 0x18 */ u16 field_0x18[10];
}; // Size: 0x2C
extern const J3DFogInfo j3dDefaultFogInfo;
struct J3DFog : public J3DFogInfo {
J3DFog() {
*getFogInfo() = j3dDefaultFogInfo;
}
J3DFogInfo* getFogInfo() { return (J3DFogInfo*)this; }
};
@@ -548,15 +598,22 @@ struct J3DAlphaCompInfo {
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 mRef0;
/* 0x3 */ u8 mRef1;
/* 0x4 */ u8 field_0x4;
};
extern const J3DAlphaCompInfo j3dDefaultAlphaCmpID;
struct J3DAlphaComp: public J3DAlphaCompInfo {
J3DAlphaComp() {
*(u16*)&field_0x0 = *(u16*)&j3dDefaultAlphaCmpID.field_0x0;
mRef0 = 0;
mRef1 = 0;
}
void setAlphaCompInfo(J3DAlphaCompInfo *param_1) {
mRef0 = param_1->field_0x1;
mRef1 = param_1->field_0x4;
u32 p1_mref1 = param_1->mRef1;
*(u16*)&field_0x0 = calcAlphaCmpID(param_1->field_0x0, param_1->mRef0, p1_mref1);
mRef0 = param_1[0].field_0x1;
mRef1 = param_1[1].field_0x0;
u32 p1_mref1 = param_1[0].mRef1;
*(u16*)&field_0x0 = calcAlphaCmpID(param_1[0].field_0x0, param_1[0].mRef0, p1_mref1);
}
}; // Size: 0x4
@@ -619,6 +676,9 @@ public:
class J3DPEBlockFull : public J3DPEBlock {
public:
J3DPEBlockFull() {
initialize();
}
/* 80317B58 */ void initialize();
/* 8032129C */ virtual void reset(J3DPEBlock*);
@@ -663,6 +723,9 @@ private:
class J3DPEBlockFogOff : public J3DPEBlock {
public:
J3DPEBlockFogOff() {
initialize();
}
/* 80317B34 */ void initialize();
/* 803211B4 */ virtual void reset(J3DPEBlock*);
@@ -702,6 +765,8 @@ struct J3DIndTexCoordScale {
/* 0x0 */ u8 mScaleS;
/* 0x1 */ u8 mScaleT;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
};
struct J3DIndTexMtx {
@@ -717,13 +782,15 @@ struct J3DIndTexOrder {
/* 0x0 */ u8 mMap;
/* 0x1 */ u8 mCoord;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
};
class J3DIndBlock {
public:
/* 8031734C */ virtual void reset(J3DIndBlock*);
virtual void load() = 0;
virtual void diff(u32) = 0;
virtual void load() = 0;
/* 80317314 */ virtual s32 countDLSize();
virtual u32 getType() = 0;
/* 8000E0A0 */ virtual void setIndTexStageNum(u8);
@@ -742,6 +809,9 @@ public:
class J3DIndBlockFull : public J3DIndBlock {
public:
J3DIndBlockFull() {
initialize();
}
/* 80317B28 */ void initialize();
/* 803210B0 */ virtual void reset(J3DIndBlock*);
@@ -838,6 +908,9 @@ public:
class J3DColorBlockLightOn : public J3DColorBlock {
public:
J3DColorBlockLightOn() {
initialize();
}
/* 80317580 */ void initialize();
/* 803187F4 */ virtual void load();
@@ -888,6 +961,9 @@ private:
class J3DColorBlockLightOff : public J3DColorBlock {
public:
J3DColorBlockLightOff() {
initialize();
}
/* 8031747C */ void initialize();
/* 80317C0C */ virtual void load();
@@ -929,6 +1005,9 @@ private:
class J3DColorBlockAmbientOn : public J3DColorBlockLightOff {
public:
J3DColorBlockAmbientOn() {
initialize();
}
/* 803174DC */ void initialize();
/* 8031816C */ virtual void load();
+12 -10
View File
@@ -14,16 +14,16 @@ class J3DMaterialAnm;
class J3DMaterial {
public:
/* 803157A0 */ void createColorBlock(u32);
/* 803159A0 */ void createTexGenBlock(u32);
/* 80315B04 */ void createTevBlock(int);
/* 80315E78 */ void createIndBlock(int);
/* 80315F60 */ void createPEBlock(u32, u32);
/* 80316100 */ void calcSizeColorBlock(u32);
/* 80316150 */ void calcSizeTexGenBlock(u32);
/* 8031617C */ void calcSizeTevBlock(int);
/* 803161C4 */ void calcSizeIndBlock(int);
/* 803161D8 */ void calcSizePEBlock(u32, u32);
/* 803157A0 */ static J3DColorBlock* createColorBlock(u32);
/* 803159A0 */ static J3DTexGenBlock* createTexGenBlock(u32);
/* 80315B04 */ static J3DTevBlock* createTevBlock(int);
/* 80315E78 */ static J3DIndBlock* createIndBlock(int);
/* 80315F60 */ static J3DPEBlock* createPEBlock(u32, u32);
/* 80316100 */ static u32 calcSizeColorBlock(u32);
/* 80316150 */ static u32 calcSizeTexGenBlock(u32);
/* 8031617C */ static u32 calcSizeTevBlock(int);
/* 803161C4 */ static u32 calcSizeIndBlock(int);
/* 803161D8 */ static u32 calcSizePEBlock(u32, u32);
/* 80316240 */ void initialize();
/* 80316290 */ u32 countDLSize();
/* 80316344 */ void makeDisplayList_private(J3DDisplayListObj*);
@@ -70,6 +70,8 @@ public:
bool isDrawModeOpaTexEdge() { return (mMaterialMode & 3) == 0; }
J3DPEBlock* getPEBlock() { return mPEBlock; }
void onInvalid() { mInvalid = 1; }
u32 getTexGenNum() const { return mTexGenBlock->getTexGenNum(); }
u8 getTevStageNum() const { return mTevBlock->getTevStageNum(); }
void setTevColor(u32 i, const J3DGXColorS10* i_color) { mTevBlock->setTevColor(i, i_color); }
void setTevKColor(u32 i, const J3DGXColor* i_color) { mTevBlock->setTevKColor(i, i_color); }
+46
View File
@@ -18,6 +18,48 @@ class J3DTexMtx;
class J3DTexMtxObj;
class J3DTexture;
inline u32 getDiffFlag_LightObjNum(u32 param_1) {
return (param_1 & 0xf0) >> 4;
}
inline u32 getDiffFlag_TexGenNum(u32 param_1) {
return (param_1 & 0xf00) >> 8;
}
inline int calcDifferedBufferSize_TexMtxSize(int param_1) {
return param_1 * 0x35;
}
inline int calcDifferedBufferSize_TexGenSize(int param_1) {
return param_1 * 0x3d + 10;
}
inline u32 getDiffFlag_TexNoNum(u32 param_1) {
return (param_1 & 0xf0000) >> 0x10;
}
inline int calcDifferedBufferSize_TexNoSize(int param_1) {
return param_1 * 0x37;
}
inline u32 calcDifferedBufferSize_TexNoAndTexCoordScaleSize(u32 param_1) {
u32 res = param_1 * 0x37;
res += ((param_1 + 1) >> 1) * 0x37;
return res;
}
inline u32 getDiffFlag_TevStageNum(u32 param_1) {
return (param_1 & 0xf00000) >> 0x14;
}
inline int calcDifferedBufferSize_TevStageSize(int param_1) {
return param_1 * 10;
}
inline int calcDifferedBufferSize_TevStageDirectSize(int param_1) {
return param_1 * 5;
}
class J3DDisplayListObj {
public:
J3DDisplayListObj() {
@@ -90,6 +132,9 @@ public:
J3DDisplayListObj* getDisplayListObj() const { return mpDisplayListObj; }
void setDisplayListObj(J3DDisplayListObj* pObj) { mpDisplayListObj = pObj; }
void beginPatch() { mpDisplayListObj->beginPatch(); }
void endPatch() { mpDisplayListObj->endPatch(); }
void callDL() const { getDisplayListObj()->callDL(); }
enum {
@@ -153,6 +198,7 @@ public:
void setInitShapePacket(J3DShapePacket* packet) { mpInitShapePacket = packet; }
void setMaterialAnmID(J3DMaterialAnm* materialAnm) { mpMaterialAnm = materialAnm; }
bool isChanged() const { return mDiffFlag & 0x80000000; }
bool isEnabled_Diff() const { return mpInitShapePacket->getDisplayListObj() != NULL; }
virtual ~J3DMatPacket();
virtual int entry(J3DDrawBuffer*);
+7
View File
@@ -42,6 +42,12 @@ public:
GFX_FIFO(u32) = getMtxIdxRegA();
GFX_FIFO(u32) = getMtxIdxRegB();
}
void setCurrentTexMtx(u8 param_1, u8 param_2, u8 param_3, u8 param_4,
u8 param_5, u8 param_6, u8 param_7, u8 param_8) {
mMtxIdxRegA = ((param_1 & 0xff) << 6) | (param_2 << 0xc)| (param_3 << 0x12) | (param_4 << 0x18);
mMtxIdxRegB = (param_5) | param_6 << 6 | param_7 << 0xc | param_8 << 0x12;
}
};
class J3DMaterial;
@@ -94,6 +100,7 @@ public:
void show() { offFlag(J3DShpFlag_Visible); }
void hide() { onFlag(J3DShpFlag_Visible); }
void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; }
void setCurrentMtx(J3DCurrentMtx& mtx) { mCurrentMtx = mtx; }
void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; }
void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; }
void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; }
+6 -3
View File
@@ -28,7 +28,10 @@ public:
static J3DTexMtxObj* sTexMtxObj;
};
extern u8 struct_804515B0[4];
extern u8 struct_804515B0;
extern u8 struct_804515B1;
extern u8 struct_804515B2;
extern u8 struct_804515B3;
class J3DShapeMtx {
public:
@@ -57,8 +60,8 @@ public:
static u32 sTexMtxLoadType;
static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; }
static void setLODFlag(u8 flag) { struct_804515B0[1] = flag; }
static u8 getLODFlag() { return struct_804515B0[1]; }
static void setLODFlag(u8 flag) { struct_804515B1 = flag; }
static u8 getLODFlag() { return struct_804515B1; }
static void resetMtxLoadCache();
private:
+2
View File
@@ -90,6 +90,7 @@ struct J3DSys {
void setModel(J3DModel* pModel) { mModel = pModel; }
void setShapePacket(J3DShapePacket* pPacket) { mShapePacket = pPacket; }
void setMatPacket(J3DMatPacket* pPacket) { mMatPacket = pPacket; }
J3DMatPacket* getMatPacket() { return mMatPacket; }
void setMaterialMode(u32 mode) { mMaterialMode = mode; }
void setTexture(J3DTexture* pTex) { mTexture = pTex; }
@@ -134,6 +135,7 @@ struct J3DSys {
static u16 sTexCoordScaleTable[32];
};
extern u32 j3dDefaultViewNo;
extern J3DSys j3dSys;
#endif /* J3DSYS_H */
+3
View File
@@ -66,4 +66,7 @@ struct J3DTevSwapModeTable {
struct J3DTevSwapModeInfo {};
struct J3DNBTScale;
void loadNBTScale(J3DNBTScale& param_0);
#endif /* J3DTEVS_H */
@@ -82,6 +82,9 @@ struct J3DTexCoord : public J3DTexCoordInfo {
*(J3DTexCoordInfo*)this = *param_1;
}
u8 getTexGenMtx() { return mTexGenMtx & 0xff; }
u16 getTexMtxReg() { return mTexMtxReg & 0xff; }
void resetTexMtxReg() {
mTexMtxReg = mTexGenMtx;
}
+4
View File
@@ -20,6 +20,10 @@ inline void GDSetCurrent(GDLObj* obj) {
__GDCurrentDL = obj;
}
inline void __GDWrite(u8 data) {
*__GDCurrentDL->ptr++ = data;
}
inline u32 GDGetGDLObjOffset(GDLObj* obj) {
return (u32)(obj->ptr - obj->start);
}
+2 -3
View File
@@ -63,7 +63,6 @@ extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
extern "C" extern u8 __GDCurrentDL[4];
//
// Declarations:
@@ -82,7 +81,7 @@ SECTION_SDATA static u8 cm2hw[4] = {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DGDSetGenMode(u8 param_0, u8 param_1, u8 param_2, u8 param_3, _GXCullMode param_4) {
asm void J3DGDSetGenMode(u8 texGenNum, u8 colorChanNum, u8 tevStageNum, u8 IndTexStageNum, _GXCullMode cullMode) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DGD/J3DGDSetGenMode__FUcUcUcUc11_GXCullMode.s"
}
@@ -92,7 +91,7 @@ asm void J3DGDSetGenMode(u8 param_0, u8 param_1, u8 param_2, u8 param_3, _GXCull
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DGDSetGenMode_3Param(u8 param_0, u8 param_1, u8 param_2) {
asm void J3DGDSetGenMode_3Param(u8 texGenNum, u8 tevStageNum, u8 indTexStageNum) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DGD/J3DGDSetGenMode_3Param__FUcUcUc.s"
}
+306 -214
View File
@@ -4,6 +4,7 @@
//
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphBase/J3DGD.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -211,8 +212,6 @@ extern "C" void _restgpr_24();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
extern "C" extern u8 const j3dDefaultFogInfo[44];
extern "C" extern u8 const j3dDefaultNBTScaleInfo[16];
extern "C" extern void* __vt__14J3DPEBlockFull[31];
extern "C" extern void* __vt__16J3DPEBlockFogOff[31];
extern "C" extern void* __vt__13J3DTevBlock16[55];
@@ -230,9 +229,6 @@ extern "C" extern void* __vt__13J3DPEBlockOpa[31];
extern "C" extern void* __vt__15J3DIndBlockFull[19];
extern "C" extern void* __vt__11J3DTevBlock[55];
extern "C" extern void* __vt__21J3DColorBlockLightOff[36 + 1 /* padding */];
extern "C" extern u32 j3dDefaultBlendInfo;
extern "C" extern u16 j3dDefaultAlphaCmpID;
extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */];
//
// Declarations:
@@ -441,202 +437,280 @@ SECTION_DATA extern void* __vt__13J3DColorBlock[36] = {
/* 803157A0-803159A0 3100E0 0200+00 0/0 3/3 0/0 .text createColorBlock__11J3DMaterialFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::createColorBlock(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/createColorBlock__11J3DMaterialFUl.s"
J3DColorBlock* J3DMaterial::createColorBlock(u32 param_0) {
J3DColorBlock* rv = NULL;
switch (param_0) {
case 0:
rv = new J3DColorBlockLightOff();
break;
case 0x40000000:
rv = new J3DColorBlockLightOn();
break;
case 0x80000000:
rv = new J3DColorBlockAmbientOn();
break;
}
return rv;
}
#pragma pop
/* 803159A0-80315B04 3102E0 0164+00 0/0 2/2 0/0 .text createTexGenBlock__11J3DMaterialFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::createTexGenBlock(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/createTexGenBlock__11J3DMaterialFUl.s"
J3DTexGenBlock* J3DMaterial::createTexGenBlock(u32 param_0) {
switch (param_0) {
case 0x8000000:
return new J3DTexGenBlock4();
case 0:
default:
return new J3DTexGenBlockBasic();
}
}
#pragma pop
/* 80315B04-80315E78 310444 0374+00 0/0 2/2 0/0 .text createTevBlock__11J3DMaterialFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::createTevBlock(int param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/createTevBlock__11J3DMaterialFi.s"
J3DTevBlock* J3DMaterial::createTevBlock(int param_0) {
J3DTevBlock* rv = NULL;
if (param_0 <= 1) {
rv = new J3DTevBlock1();
} else if (param_0 == 2) {
rv = new J3DTevBlock2();
} else if (param_0 <= 4) {
rv = new J3DTevBlock4();
} else if (param_0 <= 16) {
rv = new J3DTevBlock16();
}
return rv;
}
#pragma pop
/* 80315E78-80315F60 3107B8 00E8+00 0/0 3/3 0/0 .text createIndBlock__11J3DMaterialFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::createIndBlock(int param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/createIndBlock__11J3DMaterialFi.s"
J3DIndBlock* J3DMaterial::createIndBlock(int param_0) {
if (param_0 != 0) {
return new J3DIndBlockFull();
}
return new J3DIndBlockNull();
}
#pragma pop
/* 80315F60-80316100 3108A0 01A0+00 0/0 3/3 0/0 .text createPEBlock__11J3DMaterialFUlUl
*/
// rv is in r5 for some reason
#ifdef NONMATCHING
J3DPEBlock* J3DMaterial::createPEBlock(u32 param_0, u32 param_1) {
J3DPEBlock* rv = NULL;
if (param_0 == 0) {
if (param_1 & 1) {
return new J3DPEBlockOpa();
} else if (param_1 & 2) {
return new J3DPEBlockTexEdge();
} else if (param_1 & 4) {
return new J3DPEBlockXlu();
}
}
if (param_0 == 0x10000000) {
rv = new J3DPEBlockFull();
} else if (param_0 == 0x20000000) {
rv = new J3DPEBlockFogOff();
}
return rv;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::createPEBlock(u32 param_0, u32 param_1) {
asm J3DPEBlock* J3DMaterial::createPEBlock(u32 param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/createPEBlock__11J3DMaterialFUlUl.s"
}
#pragma pop
#endif
/* 80316100-80316150 310A40 0050+00 0/0 2/2 0/0 .text calcSizeColorBlock__11J3DMaterialFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::calcSizeColorBlock(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcSizeColorBlock__11J3DMaterialFUl.s"
u32 J3DMaterial::calcSizeColorBlock(u32 param_0) {
u32 rv = 0;
switch (param_0) {
case 0:
rv = sizeof(J3DColorBlockLightOff);
break;
case 0x40000000:
rv = sizeof(J3DColorBlockLightOn);
break;
case 0x80000000:
rv = sizeof(J3DColorBlockAmbientOn);
break;
}
return rv;
}
#pragma pop
/* 80316150-8031617C 310A90 002C+00 0/0 1/1 0/0 .text calcSizeTexGenBlock__11J3DMaterialFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::calcSizeTexGenBlock(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcSizeTexGenBlock__11J3DMaterialFUl.s"
u32 J3DMaterial::calcSizeTexGenBlock(u32 param_0) {
switch (param_0) {
case 0x8000000:
return sizeof(J3DTexGenBlock4);
case 0:
default:
return sizeof(J3DTexGenBlockBasic);
}
}
#pragma pop
/* 8031617C-803161C4 310ABC 0048+00 0/0 1/1 0/0 .text calcSizeTevBlock__11J3DMaterialFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::calcSizeTevBlock(int param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcSizeTevBlock__11J3DMaterialFi.s"
u32 J3DMaterial::calcSizeTevBlock(int param_0) {
u32 rv = 0;
if (param_0 <= 1) {
rv = sizeof(J3DTevBlock1);
} else if (param_0 == 2) {
rv = sizeof(J3DTevBlock2);
} else if (param_0 <= 4) {
rv = sizeof(J3DTevBlock4);
} else if (param_0 <= 16) {
rv = sizeof(J3DTevBlock16);
}
return rv;
}
#pragma pop
/* 803161C4-803161D8 310B04 0014+00 0/0 2/2 0/0 .text calcSizeIndBlock__11J3DMaterialFi
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::calcSizeIndBlock(int param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcSizeIndBlock__11J3DMaterialFi.s"
u32 J3DMaterial::calcSizeIndBlock(int param_0) {
if (param_0 != 0) {
return sizeof(J3DIndBlockFull);
}
return sizeof(J3DIndBlockNull);
}
#pragma pop
/* 803161D8-80316240 310B18 0068+00 0/0 2/2 0/0 .text calcSizePEBlock__11J3DMaterialFUlUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::calcSizePEBlock(u32 param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcSizePEBlock__11J3DMaterialFUlUl.s"
u32 J3DMaterial::calcSizePEBlock(u32 param_0, u32 param_1) {
u32 rv = 0;
if (param_0 == 0) {
if (param_1 & 1) {
rv = sizeof(J3DPEBlockOpa);
} else if (param_1 & 2) {
rv = sizeof(J3DPEBlockTexEdge);
} else if (param_1 & 4) {
rv = sizeof(J3DPEBlockXlu);
}
}
else if (param_0 == 0x10000000) {
rv = sizeof(J3DPEBlockFull);
} else if (param_0 == 0x20000000) {
rv = sizeof(J3DPEBlockFogOff);
}
return rv;
}
#pragma pop
/* 80316240-80316290 310B80 0050+00 2/2 5/5 0/0 .text initialize__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::initialize() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/initialize__11J3DMaterialFv.s"
void J3DMaterial::initialize() {
mShape = NULL;
mNext = NULL;
mJoint = NULL;
mMaterialMode = 1;
mIndex = -1;
mInvalid = 0;
mDiffFlag = 0;
mColorBlock = NULL;
mTexGenBlock = NULL;
mTevBlock = NULL;
mIndBlock = NULL;
mPEBlock = NULL;
mpOrigMaterial = NULL;
mMaterialAnm = NULL;
mSharedDLObj = NULL;
}
#pragma pop
/* 80316290-80316344 310BD0 00B4+00 0/0 2/2 0/0 .text countDLSize__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DMaterial::countDLSize() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/countDLSize__11J3DMaterialFv.s"
u32 J3DMaterial::countDLSize() {
return (mColorBlock->countDLSize() + mTexGenBlock->countDLSize() + mTevBlock->countDLSize() +
mIndBlock->countDLSize() + mPEBlock->countDLSize() + 31) & ~0x1f;
}
#pragma pop
/* 80316344-80316620 310C84 02DC+00 2/2 0/0 0/0 .text
* makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj.s"
void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* param_0) {
param_0->beginDL();
mTevBlock->load();
mIndBlock->load();
mPEBlock->load();
J3DGDSetGenMode(mTexGenBlock->getTexGenNum(), mColorBlock->getColorChanNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum(), (GXCullMode)(u8)mColorBlock->getCullMode());
mTexGenBlock->load();
mColorBlock->load();
J3DGDSetNumChans(mColorBlock->getColorChanNum());
J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum());
param_0->endDL();
}
#pragma pop
/* 80316620-80316668 310F60 0048+00 1/0 0/0 0/0 .text makeDisplayList__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::makeDisplayList() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/makeDisplayList__11J3DMaterialFv.s"
void J3DMaterial::makeDisplayList() {
if (!j3dSys.getMatPacket()->isLocked()) {
j3dSys.getMatPacket()->mDiffFlag = mDiffFlag;
makeDisplayList_private(j3dSys.getMatPacket()->getDisplayListObj());
}
}
#pragma pop
/* 80316668-8031668C 310FA8 0024+00 1/0 0/0 0/0 .text makeSharedDisplayList__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::makeSharedDisplayList() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/makeSharedDisplayList__11J3DMaterialFv.s"
void J3DMaterial::makeSharedDisplayList() {
makeDisplayList_private(mSharedDLObj);
}
#pragma pop
/* 8031668C-803166DC 310FCC 0050+00 1/0 0/0 0/0 .text load__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::load() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/load__11J3DMaterialFv.s"
void J3DMaterial::load() {
j3dSys.setMaterialMode(mMaterialMode);
if (!j3dSys.checkFlag(2)) {
loadNBTScale(*mTexGenBlock->getNBTScale());
}
}
#pragma pop
/* 803166DC-80316740 31101C 0064+00 1/0 0/0 0/0 .text loadSharedDL__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::loadSharedDL() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__11J3DMaterialFv.s"
void J3DMaterial::loadSharedDL() {
j3dSys.setMaterialMode(mMaterialMode);
if (!j3dSys.checkFlag(2)) {
mSharedDLObj->callDL();
loadNBTScale(*mTexGenBlock->getNBTScale());
}
}
#pragma pop
/* 80316740-803167D8 311080 0098+00 2/0 0/0 0/0 .text patch__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::patch() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/patch__11J3DMaterialFv.s"
void J3DMaterial::patch() {
j3dSys.getMatPacket()->mDiffFlag = mDiffFlag;
j3dSys.getMatPacket()->beginPatch();
mTevBlock->patch();
mColorBlock->patch();
mTexGenBlock->patch();
j3dSys.getMatPacket()->endPatch();
}
#pragma pop
/* 803167D8-803169DC 311118 0204+00 2/0 0/0 0/0 .text diff__11J3DMaterialFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::diff(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/diff__11J3DMaterialFUl.s"
void J3DMaterial::diff(u32 param_0) {
if (j3dSys.getMatPacket()->isEnabled_Diff()) {
j3dSys.getMatPacket()->beginDiff();
mTevBlock->diff(param_0);
mIndBlock->diff(param_0);
mPEBlock->diff(param_0);
if (param_0 & 0x2000000) {
J3DGDSetGenMode_3Param(mTexGenBlock->getTexGenNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum());
J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum());
}
mTexGenBlock->diff(param_0);
mColorBlock->diff(param_0);
j3dSys.getMatPacket()->endDiff();
}
}
#pragma pop
/* 803169DC-80316A54 31131C 0078+00 2/0 0/0 0/0 .text calc__11J3DMaterialFPA4_Cf */
// Matches but changes order of TU vtables (?!)
#ifdef NONMATCHING
void J3DMaterial::calc(f32 const (*param_0)[4]) {
if (j3dSys.checkFlag(0x40000000)) {
mTexGenBlock->calcPostTexMtx(param_0);
} else {
mTexGenBlock->calc(param_0);
}
calcCurrentMtx();
setCurrentMtx();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -646,28 +720,51 @@ extern "C" asm void calc__11J3DMaterialFPA4_Cf() {
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calc__11J3DMaterialFPA4_Cf.s"
}
#pragma pop
#endif
/* 80316A54-80316AB0 311394 005C+00 3/0 0/0 0/0 .text calcDiffTexMtx__11J3DMaterialFPA4_Cf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::calcDiffTexMtx(f32 const (*param_0)[4]) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcDiffTexMtx__11J3DMaterialFPA4_Cf.s"
void J3DMaterial::calcDiffTexMtx(f32 const (*param_0)[4]) {
if (j3dSys.checkFlag(0x40000000)) {
mTexGenBlock->calcPostTexMtxWithoutViewMtx(param_0);
} else {
mTexGenBlock->calcWithoutViewMtx(param_0);
}
}
#pragma pop
/* 80316AB0-80316AC8 3113F0 0018+00 1/1 1/1 0/0 .text setCurrentMtx__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::setCurrentMtx() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/setCurrentMtx__11J3DMaterialFv.s"
void J3DMaterial::setCurrentMtx() {
mShape->setCurrentMtx(mCurrentMtx);
}
#pragma pop
/* 80316AC8-80316D68 311408 02A0+00 1/1 0/0 0/0 .text calcCurrentMtx__11J3DMaterialFv */
// Issues with setCurrentTexMtx
#ifdef NONMATCHING
void J3DMaterial::calcCurrentMtx() {
if (!j3dSys.checkFlag(0x40000000)) {
mCurrentMtx.setCurrentTexMtx(
mTexGenBlock->getTexCoord(0)->getTexGenMtx(),
mTexGenBlock->getTexCoord(1)->getTexGenMtx(),
mTexGenBlock->getTexCoord(2)->getTexGenMtx(),
mTexGenBlock->getTexCoord(3)->getTexGenMtx(),
mTexGenBlock->getTexCoord(4)->getTexGenMtx(),
mTexGenBlock->getTexCoord(5)->getTexGenMtx(),
mTexGenBlock->getTexCoord(6)->getTexGenMtx(),
mTexGenBlock->getTexCoord(7)->getTexGenMtx()
);
} else {
mCurrentMtx.setCurrentTexMtx(
mTexGenBlock->getTexCoord(0)->getTexMtxReg(),
mTexGenBlock->getTexCoord(1)->getTexMtxReg(),
mTexGenBlock->getTexCoord(2)->getTexMtxReg(),
mTexGenBlock->getTexCoord(3)->getTexMtxReg(),
mTexGenBlock->getTexCoord(4)->getTexMtxReg(),
mTexGenBlock->getTexCoord(5)->getTexMtxReg(),
mTexGenBlock->getTexCoord(6)->getTexMtxReg(),
mTexGenBlock->getTexCoord(7)->getTexMtxReg()
);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -676,72 +773,83 @@ asm void J3DMaterial::calcCurrentMtx() {
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calcCurrentMtx__11J3DMaterialFv.s"
}
#pragma pop
#endif
/* 80316D68-80316E14 3116A8 00AC+00 1/1 0/0 0/0 .text copy__11J3DMaterialFP11J3DMaterial
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::copy(J3DMaterial* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/copy__11J3DMaterialFP11J3DMaterial.s"
void J3DMaterial::copy(J3DMaterial* param_0) {
mColorBlock->reset(param_0->mColorBlock);
mTexGenBlock->reset(param_0->mTexGenBlock);
mTevBlock->reset(param_0->mTevBlock);
mIndBlock->reset(param_0->mIndBlock);
mPEBlock->reset(param_0->mPEBlock);
}
#pragma pop
/* 80316E14-80316E70 311754 005C+00 1/0 0/0 0/0 .text reset__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::reset() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/reset__11J3DMaterialFv.s"
void J3DMaterial::reset() {
if ((~mDiffFlag & 0x80000000) == 0) {
mDiffFlag &= ~0x80000000;
mMaterialMode = mpOrigMaterial->mMaterialMode;
mInvalid = mpOrigMaterial->mInvalid;
mMaterialAnm = NULL;
copy(mpOrigMaterial);
}
}
#pragma pop
/* 80316E70-80316E90 3117B0 0020+00 1/0 0/0 0/0 .text change__11J3DMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DMaterial::change() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/change__11J3DMaterialFv.s"
void J3DMaterial::change() {
if ((mDiffFlag & 0xc0000000) == 0) {
mDiffFlag |= 0x80000000;
mMaterialAnm = NULL;
}
}
#pragma pop
/* 80316E90-80316F24 3117D0 0094+00 0/0 2/2 0/0 .text newSharedDisplayList__11J3DMaterialFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 J3DMaterial::newSharedDisplayList(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/newSharedDisplayList__11J3DMaterialFUl.s"
s32 J3DMaterial::newSharedDisplayList(u32 param_0) {
if (mSharedDLObj == NULL) {
mSharedDLObj = new J3DDisplayListObj();
if (mSharedDLObj == NULL) {
return 4;
}
s32 res = mSharedDLObj->newDisplayList(param_0);
switch (res) {
case kJ3DError_Success:
break;
default:
return res;
}
}
return 0;
}
#pragma pop
/* 80316F24-80316FB8 311864 0094+00 0/0 2/2 0/0 .text newSingleSharedDisplayList__11J3DMaterialFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/newSingleSharedDisplayList__11J3DMaterialFUl.s"
s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) {
if (mSharedDLObj == NULL) {
mSharedDLObj = new J3DDisplayListObj();
if (mSharedDLObj == NULL) {
return 4;
}
s32 res = mSharedDLObj->newSingleDisplayList(param_0);
switch (res) {
case kJ3DError_Success:
break;
default:
return res;
}
}
return 0;
}
#pragma pop
/* 80316FB8-80316FD8 3118F8 0020+00 0/0 1/1 0/0 .text initialize__18J3DPatchedMaterialFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DPatchedMaterial::initialize() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/initialize__18J3DPatchedMaterialFv.s"
void J3DPatchedMaterial::initialize() {
J3DMaterial::initialize();
}
#pragma pop
/* 80316FD8-80316FDC 311918 0004+00 1/0 0/0 0/0 .text makeDisplayList__18J3DPatchedMaterialFv */
extern "C" asm void makeDisplayList__18J3DPatchedMaterialFv() {
//void J3DPatchedMaterial::makeDisplayList() {
/* empty function */
}
@@ -752,14 +860,12 @@ void J3DPatchedMaterial::makeSharedDisplayList() {
}
/* 80316FE0-80316FFC 311920 001C+00 1/0 0/0 0/0 .text load__18J3DPatchedMaterialFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DPatchedMaterial::load() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/load__18J3DPatchedMaterialFv.s"
void J3DPatchedMaterial::load() {
j3dSys.setMaterialMode(mMaterialMode);
if (j3dSys.checkFlag(2)) {
return;
}
}
#pragma pop
/* 80316FFC-8031703C 31193C 0040+00 1/0 0/0 0/0 .text loadSharedDL__18J3DPatchedMaterialFv */
void J3DPatchedMaterial::loadSharedDL() {
@@ -780,14 +886,9 @@ void J3DPatchedMaterial::change() {
/* 80317044-80317064 311984 0020+00 0/0 1/1 0/0 .text initialize__17J3DLockedMaterialFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DLockedMaterial::initialize() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/initialize__17J3DLockedMaterialFv.s"
void J3DLockedMaterial::initialize() {
J3DMaterial::initialize();
}
#pragma pop
/* 80317064-80317068 3119A4 0004+00 1/0 0/0 0/0 .text makeDisplayList__17J3DLockedMaterialFv */
void J3DLockedMaterial::makeDisplayList() {
@@ -801,21 +902,12 @@ void J3DLockedMaterial::makeSharedDisplayList() {
}
/* 8031706C-80317088 3119AC 001C+00 1/0 0/0 0/0 .text load__17J3DLockedMaterialFv */
#ifdef NONMATCHING
void J3DLockedMaterial::load() {
j3dSys.setMaterialMode(mMaterialMode);
// some extra dead code after? wtf?
if (j3dSys.checkFlag(2)) {
return;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DLockedMaterial::load() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DMaterial/load__17J3DLockedMaterialFv.s"
}
#pragma pop
#endif
/* 80317088-803170C8 3119C8 0040+00 1/0 0/0 0/0 .text loadSharedDL__17J3DLockedMaterialFv
*/
+63 -78
View File
@@ -24,64 +24,10 @@
// Forward References:
//
extern "C" void newDisplayList__17J3DDisplayListObjFUl();
extern "C" void newSingleDisplayList__17J3DDisplayListObjFUl();
extern "C" void single_To_Double__17J3DDisplayListObjFv();
extern "C" void setSingleDisplayList__17J3DDisplayListObjFPvUl();
extern "C" void swapBuffer__17J3DDisplayListObjFv();
extern "C" void callDL__17J3DDisplayListObjCFv();
extern "C" void beginDL__17J3DDisplayListObjFv();
extern "C" void endDL__17J3DDisplayListObjFv();
extern "C" void beginPatch__17J3DDisplayListObjFv();
extern "C" void endPatch__17J3DDisplayListObjFv();
extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer();
extern "C" void addChildPacket__9J3DPacketFP9J3DPacket();
extern "C" void __ct__13J3DDrawPacketFv();
extern "C" void __dt__13J3DDrawPacketFv();
extern "C" void newDisplayList__13J3DDrawPacketFUl();
extern "C" void newSingleDisplayList__13J3DDrawPacketFUl();
extern "C" void draw__13J3DDrawPacketFv();
extern "C" void __ct__12J3DMatPacketFv();
extern "C" void __dt__12J3DMatPacketFv();
extern "C" void addShapePacket__12J3DMatPacketFP14J3DShapePacket();
extern "C" void beginDiff__12J3DMatPacketFv();
extern "C" void endDiff__12J3DMatPacketFv();
extern "C" void isSame__12J3DMatPacketCFP12J3DMatPacket();
extern "C" void draw__12J3DMatPacketFv();
extern "C" void __ct__14J3DShapePacketFv();
extern "C" void __dt__14J3DShapePacketFv();
extern "C" void calcDifferedBufferSize__14J3DShapePacketFUl();
extern "C" void newDifferedDisplayList__14J3DShapePacketFUl();
extern "C" void prepareDraw__14J3DShapePacketCFv();
extern "C" void draw__14J3DShapePacketFv();
extern "C" void drawFast__14J3DShapePacketFv();
extern "C" void draw__9J3DPacketFv();
extern "C" void entry__12J3DMatPacketFP13J3DDrawBuffer();
extern "C" u8 sGDLObj__17J3DDisplayListObj[16];
extern "C" u8 sInterruptFlag__17J3DDisplayListObj[4 + 4 /* padding */];
//
// External References:
//
extern "C" void __dt__9J3DPacketFv();
extern "C" void* __nw__FUl();
extern "C" void* __nwa__FUli();
extern "C" void __dl__FPv();
extern "C" void setArray__15J3DVertexBufferCFv();
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
extern "C" void syncJ3DSysFlags__12J3DModelDataCFv();
extern "C" void GDFlushCurrToMem();
extern "C" void GDPadCurr32();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" u8 sortFuncTable__13J3DDrawBuffer[72];
extern "C" extern u8 struct_804515B0[4];
extern "C" u8 sTexGenBlock__17J3DDifferedTexMtx[4];
extern "C" u8 sTexMtxObj__17J3DDifferedTexMtx[4];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
// Declarations:
//
@@ -324,14 +270,63 @@ J3DShapePacket::~J3DShapePacket() {}
/* 80312BD4-80312DBC 30D514 01E8+00 1/1 0/0 0/0 .text calcDifferedBufferSize__14J3DShapePacketFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 J3DShapePacket::calcDifferedBufferSize(u32 flag) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DPacket/calcDifferedBufferSize__14J3DShapePacketFUl.s"
u32 J3DShapePacket::calcDifferedBufferSize(u32 flag) {
int iVar5 = 0;
for (int i = 0; i < 8; i++) {
if ((flag & sDifferedRegister[i]) != 0) {
iVar5 += sSizeOfDiffered[i];
}
}
iVar5 += getDiffFlag_LightObjNum(flag) * 0x48;
u32 uVar2 = getDiffFlag_TexGenNum(flag);
if (uVar2 != 0) {
u32 local_4c = mpShape->getMaterial()->getTexGenNum();
if (uVar2 > local_4c) {
local_4c = uVar2;
}
if ((flag & 0x1000)) {
iVar5 += calcDifferedBufferSize_TexGenSize(local_4c);
} else {
iVar5 += calcDifferedBufferSize_TexMtxSize(local_4c);
}
}
uVar2 = getDiffFlag_TexNoNum(flag);
if (uVar2 != 0) {
u8 local_58;
if (mpShape->getMaterial()->getTevStageNum() > 8) {
local_58 = 8;
} else {
local_58 = mpShape->getMaterial()->getTevStageNum();
}
u32 local_50 = local_58;
local_50 = uVar2 > local_50 ? uVar2 : local_50;
if ((flag & 0x4000000)) {
iVar5 += calcDifferedBufferSize_TexNoAndTexCoordScaleSize(local_50);
} else {
iVar5 += calcDifferedBufferSize_TexNoSize(local_50);
}
}
uVar2 = getDiffFlag_TevStageNum(flag);
if (uVar2 != 0) {
u8 local_58;
if (mpShape->getMaterial()->getTevStageNum() > 8) {
local_58 = 8;
} else {
local_58 = mpShape->getMaterial()->getTevStageNum();
}
u32 local_50 = local_58;
local_50 = uVar2 > local_50 ? uVar2 : local_50;
iVar5 += calcDifferedBufferSize_TevStageSize(local_50);
if (flag & 0x8000000) {
iVar5 += calcDifferedBufferSize_TevStageDirectSize(local_50);
}
}
return (iVar5 + 0x1f) & ~0x1f;
}
#pragma pop
/* 80312DBC-80312E08 30D6FC 004C+00 0/0 1/1 0/0 .text newDifferedDisplayList__14J3DShapePacketFUl
*/
@@ -349,7 +344,6 @@ J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) {
}
/* 80312E08-80312F24 30D748 011C+00 2/2 0/0 0/0 .text prepareDraw__14J3DShapePacketCFv */
#if defined NONMATCHING
void J3DShapePacket::prepareDraw() const {
mpModel->getVertexBuffer()->setArray();
j3dSys.setModel(mpModel);
@@ -364,34 +358,25 @@ void J3DShapePacket::prepareDraw() const {
mpShape->offFlag(J3DShpFlag_SkinPosCpu);
}
if (mpModel->checkFlag(J3DMdlFlag_SkinNrmCpu) && !mpShape->checkFlag(J3DShpFlag_EnableLod)) {
if (mpModel->checkFlag(J3DMdlFlag_SkinNrmCpu) && mpShape->checkFlag(J3DShpFlag_EnableLod) == false) {
mpShape->onFlag(J3DShpFlag_SkinNrmCpu);
} else {
mpShape->offFlag(J3DShpFlag_SkinNrmCpu);
}
mpShape->setCurrentViewNoPtr(mpMtxBuffer->getCurrentViewNoPtr());
mpShape->setScaleFlagArray(mpMtxBuffer->getScaleFlagArray());
mpShape->setDrawMtx(mpMtxBuffer->getDrawMtxPtrPtr());
J3DMtxBuffer* buffer = mpMtxBuffer;
mpShape->setCurrentViewNoPtr(buffer->getCurrentViewNoPtr());
mpShape->setScaleFlagArray(buffer->getScaleFlagArray());
mpShape->setDrawMtx(buffer->getDrawMtxPtrPtr());
if (!mpShape->getNBTFlag()) {
mpShape->setNrmMtx(mpMtxBuffer->getNrmMtxPtrPtr());
mpShape->setNrmMtx(buffer->getNrmMtxPtrPtr());
} else {
mpShape->setNrmMtx(mpMtxBuffer->getBumpMtxPtrPtr()[mpShape->getBumpMtxOffset()]);
mpShape->setNrmMtx(buffer->getBumpMtxPtrPtr()[mpShape->getBumpMtxOffset()]);
}
mpModel->getModelData()->syncJ3DSysFlags();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DShapePacket::prepareDraw() const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DPacket/prepareDraw__14J3DShapePacketCFv.s"
}
#pragma pop
#endif
/* 80312F24-80312FBC 30D864 0098+00 1/0 0/0 0/0 .text draw__14J3DShapePacketFv */
void J3DShapePacket::draw() {
+1 -53
View File
@@ -17,26 +17,6 @@
// Forward References:
//
extern "C" void initialize__8J3DShapeFv();
extern "C" void addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl();
extern "C" void addTexMtxIndexInVcd__8J3DShapeF7_GXAttr();
extern "C" void calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f();
extern "C" void countBumpMtxNum__8J3DShapeCFv();
extern "C" static void J3DLoadCPCmd__FUcUl();
extern "C" static void J3DLoadArrayBasePtr__F7_GXAttrPv();
extern "C" void loadVtxArray__8J3DShapeCFv();
extern "C" void isSameVcdVatCmd__8J3DShapeFP8J3DShape();
extern "C" void makeVtxArrayCmd__8J3DShapeFv();
extern "C" void makeVcdVatCmd__8J3DShapeFv();
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
extern "C" void setArrayAndBindPipeline__8J3DShapeCFv();
extern "C" void drawFast__8J3DShapeCFv();
extern "C" void draw__8J3DShapeCFv();
extern "C" void simpleDraw__8J3DShapeCFv();
extern "C" void simpleDrawCache__8J3DShapeCFv();
extern "C" extern void* __vt__8J3DShape[6];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
// External References:
//
@@ -45,25 +25,6 @@ void J3DGDSetVtxAttrFmtv(_GXVtxFmt, GXVtxAttrFmtList const*, bool);
void J3DFifoLoadPosMtxImm(Mtx, u32);
void J3DFifoLoadNrmMtxImm(Mtx, u32);
extern "C" void* __nwa__FUl();
extern "C" void J3DGDSetVtxAttrFmtv__F9_GXVtxFmtPC17_GXVtxAttrFmtListb();
extern "C" void J3DFifoLoadPosMtxImm__FPA4_fUl();
extern "C" void J3DFifoLoadNrmMtxImm__FPA4_fUl();
extern "C" void resetMtxLoadCache__11J3DShapeMtxFv();
extern "C" void addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl();
extern "C" void draw__12J3DShapeDrawCFv();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern u32 j3dDefaultViewNo;
extern "C" u32 sCurrentPipeline__11J3DShapeMtx;
extern "C" u32 sCurrentScaleFlag__11J3DShapeMtx;
extern "C" extern u8 struct_804515B0[4];
extern "C" u32 sTexMtxLoadType__11J3DShapeMtx;
//
// Declarations:
//
@@ -340,13 +301,12 @@ void J3DShape::setArrayAndBindPipeline() const {
J3DShapeMtx::sCurrentScaleFlag = mScaleFlagArray;
// The below struct_804515B0 is actually a continuation of sCurrentScaleFlag, I believe?
// Also, there seems to be an extra entry in the array that's only there in DEBUG builds.
struct_804515B0[0] = mHasNBT;
struct_804515B0 = mHasNBT;
data_804515D4[0] = mHasPNMTXIdx;
J3DShapeMtx::sTexMtxLoadType = getTexMtxLoadType();
}
/* 8031544C-803155E0 30FD8C 0194+00 1/0 0/0 0/0 .text drawFast__8J3DShapeCFv */
#ifdef NONMATCHING
void J3DShape::drawFast() const {
if (sOldVcdVatCmd != mVcdVatCmd) {
GXCallDisplayList(mVcdVatCmd, kVcdVatDLSize);
@@ -376,18 +336,6 @@ void J3DShape::drawFast() const {
getShapeDraw(i)->draw();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DShape::drawFast() const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DShape/drawFast__8J3DShapeCFv.s"
}
#pragma pop
#endif
/* 803155E0-80315628 30FF20 0048+00 1/0 0/0 0/0 .text draw__8J3DShapeCFv */
void J3DShape::draw() const {
+4 -2
View File
@@ -355,8 +355,10 @@ u8* J3DShapeMtx::sCurrentScaleFlag;
/* 804515B0-804515B4 -00001 0004+00 5/5 3/3 0/0 .sbss None */
/* 804515B0 0001+00 data_804515B0 None */
/* 804515B1 0003+00 data_804515B1 None */
extern u8 struct_804515B0[4];
u8 struct_804515B0[4];
u8 struct_804515B0;
u8 struct_804515B1;
u8 struct_804515B2;
u8 struct_804515B3;
/* 804515B4-804515B8 000AB4 0004+00 4/4 1/1 0/0 .sbss sTexMtxLoadType__11J3DShapeMtx */
u32 J3DShapeMtx::sTexMtxLoadType;
+1 -2
View File
@@ -400,5 +400,4 @@ void J3DSys::reinitPixelProc() {
/* ############################################################################################## */
/* 80451598-804515A0 000A98 0004+04 0/0 1/1 0/0 .sbss j3dDefaultViewNo */
extern u8 j3dDefaultViewNo[4 + 4 /* padding */];
u8 j3dDefaultViewNo[4 + 4 /* padding */];
u32 j3dDefaultViewNo;
-4
View File
@@ -27,10 +27,6 @@ void GDFlushCurrToMem(void) {
DCFlushRange(__GDCurrentDL->start, __GDCurrentDL->length);
}
static inline void __GDWrite(u8 data) {
*__GDCurrentDL->ptr++ = data;
}
/* 80360FDC-803610D4 35B91C 00F8+00 0/0 2/2 0/0 .text GDPadCurr32 */
void GDPadCurr32(void) {
u32 i = ((u32)__GDCurrentDL->ptr & 31);
+3 -3
View File
@@ -292,8 +292,8 @@ SECTION_SDATA static J3DTevOrderInfo l_tevOrderInfo = {
};
/* 80451DF0-80451DF8 0003F0 0008+00 1/1 0/0 0/0 .sdata2 l_alphaCompInfo$3775 */
SECTION_SDATA2 static J3DAlphaCompInfo l_alphaCompInfo = {
0x04, 0x80, 0x00, 0x03, 0xFF,
SECTION_SDATA2 static J3DAlphaCompInfo l_alphaCompInfo[2] = {
{0x04, 0x80, 0x00, 0x03}, {0xFF, 0, 0, 0},
};
/* 8003A840-8003AACC 035180 028C+00 1/1 0/0 0/0 .text addWarpMaterial__FP12J3DModelData
@@ -328,7 +328,7 @@ static void addWarpMaterial(J3DModelData* param_1) {
pShape->addTexMtxIndexInVcd(attr);
J3DPEBlock* peBlock = pMaterial->getPEBlock();
J3DAlphaComp* alphaComp = peBlock->getAlphaComp();
alphaComp->setAlphaCompInfo(&l_alphaCompInfo);
alphaComp->setAlphaCompInfo(l_alphaCompInfo);
peBlock->setZCompLoc((u8)0);
}
}