mirror of https://github.com/zeldaret/tp.git
J3DShape / J3DShapeDraw: More OK
This commit is contained in:
parent
f1f9cc713d
commit
9bee853ab4
|
|
@ -1,73 +0,0 @@
|
|||
lbl_80314BB8:
|
||||
/* 80314BB8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80314BBC 7C 08 02 A6 */ mflr r0
|
||||
/* 80314BC0 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 80314BC4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80314BC8 48 04 D6 0D */ bl _savegpr_27
|
||||
/* 80314BCC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80314BD0 3C 60 80 3A */ lis r3, lit_697@ha /* 0x803A1E98@ha */
|
||||
/* 80314BD4 38 C3 1E 98 */ addi r6, r3, lit_697@l /* 0x803A1E98@l */
|
||||
/* 80314BD8 80 66 00 00 */ lwz r3, 0(r6)
|
||||
/* 80314BDC 80 06 00 04 */ lwz r0, 4(r6)
|
||||
/* 80314BE0 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 80314BE4 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 80314BE8 80 66 00 08 */ lwz r3, 8(r6)
|
||||
/* 80314BEC 80 06 00 0C */ lwz r0, 0xc(r6)
|
||||
/* 80314BF0 90 61 00 10 */ stw r3, 0x10(r1)
|
||||
/* 80314BF4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80314BF8 38 C0 FF FF */ li r6, -1
|
||||
/* 80314BFC 38 E0 FF FF */ li r7, -1
|
||||
/* 80314C00 39 00 00 00 */ li r8, 0
|
||||
/* 80314C04 39 20 00 00 */ li r9, 0
|
||||
/* 80314C08 81 5F 00 30 */ lwz r10, 0x30(r31)
|
||||
/* 80314C0C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80314C10 48 00 00 3C */ b lbl_80314C4C
|
||||
lbl_80314C14:
|
||||
/* 80314C14 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80314C18 40 82 00 08 */ bne lbl_80314C20
|
||||
/* 80314C1C 7D 06 43 78 */ mr r6, r8
|
||||
lbl_80314C20:
|
||||
/* 80314C20 7C 04 00 00 */ cmpw r4, r0
|
||||
/* 80314C24 40 80 00 14 */ bge lbl_80314C38
|
||||
/* 80314C28 55 20 06 3F */ clrlwi. r0, r9, 0x18
|
||||
/* 80314C2C 40 82 00 0C */ bne lbl_80314C38
|
||||
/* 80314C30 7D 07 43 78 */ mr r7, r8
|
||||
/* 80314C34 39 20 00 01 */ li r9, 1
|
||||
lbl_80314C38:
|
||||
/* 80314C38 80 0A 00 04 */ lwz r0, 4(r10)
|
||||
/* 80314C3C 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80314C40 7C 03 00 2E */ lwzx r0, r3, r0
|
||||
/* 80314C44 7D 08 02 14 */ add r8, r8, r0
|
||||
/* 80314C48 39 4A 00 08 */ addi r10, r10, 8
|
||||
lbl_80314C4C:
|
||||
/* 80314C4C 80 0A 00 00 */ lwz r0, 0(r10)
|
||||
/* 80314C50 2C 00 00 FF */ cmpwi r0, 0xff
|
||||
/* 80314C54 40 82 FF C0 */ bne lbl_80314C14
|
||||
/* 80314C58 2C 06 FF FF */ cmpwi r6, -1
|
||||
/* 80314C5C 41 82 00 48 */ beq lbl_80314CA4
|
||||
/* 80314C60 3B 60 00 00 */ li r27, 0
|
||||
/* 80314C64 7C BE 2B 78 */ mr r30, r5
|
||||
/* 80314C68 7C FD 3B 78 */ mr r29, r7
|
||||
/* 80314C6C 7D 1C 43 78 */ mr r28, r8
|
||||
/* 80314C70 48 00 00 24 */ b lbl_80314C94
|
||||
lbl_80314C74:
|
||||
/* 80314C74 80 7F 00 3C */ lwz r3, 0x3c(r31)
|
||||
/* 80314C78 57 60 13 BA */ rlwinm r0, r27, 2, 0xe, 0x1d
|
||||
/* 80314C7C 7C 63 00 2E */ lwzx r3, r3, r0
|
||||
/* 80314C80 7F 84 E3 78 */ mr r4, r28
|
||||
/* 80314C84 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80314C88 7F C6 F3 78 */ mr r6, r30
|
||||
/* 80314C8C 4B FF FC E9 */ bl addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl
|
||||
/* 80314C90 3B 7B 00 01 */ addi r27, r27, 1
|
||||
lbl_80314C94:
|
||||
/* 80314C94 57 63 04 3E */ clrlwi r3, r27, 0x10
|
||||
/* 80314C98 A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 80314C9C 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80314CA0 41 80 FF D4 */ blt lbl_80314C74
|
||||
lbl_80314CA4:
|
||||
/* 80314CA4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80314CA8 48 04 D5 79 */ bl _restgpr_27
|
||||
/* 80314CAC 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80314CB0 7C 08 03 A6 */ mtlr r0
|
||||
/* 80314CB4 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80314CB8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
lbl_80314B48:
|
||||
/* 80314B48 38 A0 00 00 */ li r5, 0
|
||||
/* 80314B4C 90 A3 00 04 */ stw r5, 4(r3)
|
||||
/* 80314B50 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */
|
||||
/* 80314B54 38 04 FF FF */ addi r0, r4, 0xFFFF /* 0x0000FFFF@l */
|
||||
/* 80314B58 B0 03 00 08 */ sth r0, 8(r3)
|
||||
/* 80314B5C B0 A3 00 0A */ sth r5, 0xa(r3)
|
||||
/* 80314B60 90 A3 00 0C */ stw r5, 0xc(r3)
|
||||
/* 80314B64 C0 02 C9 A0 */ lfs f0, lit_687(r2)
|
||||
/* 80314B68 D0 03 00 10 */ stfs f0, 0x10(r3)
|
||||
/* 80314B6C D0 03 00 14 */ stfs f0, 0x14(r3)
|
||||
/* 80314B70 D0 03 00 18 */ stfs f0, 0x18(r3)
|
||||
/* 80314B74 D0 03 00 1C */ stfs f0, 0x1c(r3)
|
||||
/* 80314B78 D0 03 00 20 */ stfs f0, 0x20(r3)
|
||||
/* 80314B7C D0 03 00 24 */ stfs f0, 0x24(r3)
|
||||
/* 80314B80 D0 03 00 28 */ stfs f0, 0x28(r3)
|
||||
/* 80314B84 90 A3 00 30 */ stw r5, 0x30(r3)
|
||||
/* 80314B88 90 A3 00 38 */ stw r5, 0x38(r3)
|
||||
/* 80314B8C 90 A3 00 3C */ stw r5, 0x3c(r3)
|
||||
/* 80314B90 90 A3 00 4C */ stw r5, 0x4c(r3)
|
||||
/* 80314B94 90 A3 00 50 */ stw r5, 0x50(r3)
|
||||
/* 80314B98 90 A3 00 54 */ stw r5, 0x54(r3)
|
||||
/* 80314B9C 90 A3 00 58 */ stw r5, 0x58(r3)
|
||||
/* 80314BA0 90 A3 00 5C */ stw r5, 0x5c(r3)
|
||||
/* 80314BA4 38 0D 90 18 */ la r0, j3dDefaultViewNo(r13) /* 80451598-_SDA_BASE_ */
|
||||
/* 80314BA8 90 03 00 60 */ stw r0, 0x60(r3)
|
||||
/* 80314BAC 98 A3 00 34 */ stb r5, 0x34(r3)
|
||||
/* 80314BB0 98 A3 00 48 */ stb r5, 0x48(r3)
|
||||
/* 80314BB4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
lbl_80315300:
|
||||
/* 80315300 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80315304 7C 08 02 A6 */ mflr r0
|
||||
/* 80315308 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8031530C 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80315310 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80315314 80 0D 90 50 */ lwz r0, sOldVcdVatCmd__8J3DShape(r13)
|
||||
/* 80315318 80 63 00 2C */ lwz r3, 0x2c(r3)
|
||||
/* 8031531C 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80315320 41 82 00 14 */ beq lbl_80315334
|
||||
/* 80315324 38 80 00 C0 */ li r4, 0xc0
|
||||
/* 80315328 48 04 AB C9 */ bl GXCallDisplayList
|
||||
/* 8031532C 80 1F 00 2C */ lwz r0, 0x2c(r31)
|
||||
/* 80315330 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13)
|
||||
lbl_80315334:
|
||||
/* 80315334 80 BF 00 40 */ lwz r5, 0x40(r31)
|
||||
/* 80315338 38 80 00 08 */ li r4, 8
|
||||
/* 8031533C 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */
|
||||
/* 80315340 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */
|
||||
/* 80315344 38 00 00 30 */ li r0, 0x30
|
||||
/* 80315348 98 03 80 00 */ stb r0, -0x8000(r3)
|
||||
/* 8031534C 90 A3 80 00 */ stw r5, -0x8000(r3)
|
||||
/* 80315350 80 DF 00 44 */ lwz r6, 0x44(r31)
|
||||
/* 80315354 98 83 80 00 */ stb r4, -0x8000(r3)
|
||||
/* 80315358 38 00 00 40 */ li r0, 0x40
|
||||
/* 8031535C 98 03 80 00 */ stb r0, -0x8000(r3)
|
||||
/* 80315360 90 C3 80 00 */ stw r6, -0x8000(r3)
|
||||
/* 80315364 38 00 00 10 */ li r0, 0x10
|
||||
/* 80315368 98 03 80 00 */ stb r0, -0x8000(r3)
|
||||
/* 8031536C 38 00 00 01 */ li r0, 1
|
||||
/* 80315370 B0 03 80 00 */ sth r0, -0x8000(r3)
|
||||
/* 80315374 38 00 10 18 */ li r0, 0x1018
|
||||
/* 80315378 B0 03 80 00 */ sth r0, -0x8000(r3)
|
||||
/* 8031537C 90 A3 80 00 */ stw r5, -0x8000(r3)
|
||||
/* 80315380 90 C3 80 00 */ stw r6, -0x8000(r3)
|
||||
/* 80315384 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80315388 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8031538C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80315390 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80315394 4E 80 00 20 */ blr
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
lbl_80314F98:
|
||||
/* 80314F98 94 21 FF A0 */ stwu r1, -0x60(r1)
|
||||
/* 80314F9C 7C 08 02 A6 */ mflr r0
|
||||
/* 80314FA0 90 01 00 64 */ stw r0, 0x64(r1)
|
||||
/* 80314FA4 39 61 00 60 */ addi r11, r1, 0x60
|
||||
/* 80314FA8 48 04 D2 2D */ bl _savegpr_27
|
||||
/* 80314FAC 80 83 00 4C */ lwz r4, 0x4c(r3)
|
||||
/* 80314FB0 80 84 00 14 */ lwz r4, 0x14(r4)
|
||||
/* 80314FB4 38 A0 00 00 */ li r5, 0
|
||||
/* 80314FB8 39 00 00 00 */ li r8, 0
|
||||
/* 80314FBC 38 E1 00 14 */ addi r7, r1, 0x14
|
||||
/* 80314FC0 38 C1 00 08 */ addi r6, r1, 8
|
||||
/* 80314FC4 38 00 00 0C */ li r0, 0xc
|
||||
/* 80314FC8 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80314FCC:
|
||||
/* 80314FCC 99 06 00 00 */ stb r8, 0(r6)
|
||||
/* 80314FD0 7D 07 29 2E */ stwx r8, r7, r5
|
||||
/* 80314FD4 38 A5 00 04 */ addi r5, r5, 4
|
||||
/* 80314FD8 38 C6 00 01 */ addi r6, r6, 1
|
||||
/* 80314FDC 42 00 FF F0 */ bdnz lbl_80314FCC
|
||||
/* 80314FE0 48 00 01 90 */ b lbl_80315170
|
||||
lbl_80314FE4:
|
||||
/* 80314FE4 2C 07 00 0A */ cmpwi r7, 0xa
|
||||
/* 80314FE8 41 82 00 8C */ beq lbl_80315074
|
||||
/* 80314FEC 40 80 00 10 */ bge lbl_80314FFC
|
||||
/* 80314FF0 2C 07 00 09 */ cmpwi r7, 9
|
||||
/* 80314FF4 40 80 00 1C */ bge lbl_80315010
|
||||
/* 80314FF8 48 00 01 74 */ b lbl_8031516C
|
||||
lbl_80314FFC:
|
||||
/* 80314FFC 2C 07 00 15 */ cmpwi r7, 0x15
|
||||
/* 80315000 40 80 01 6C */ bge lbl_8031516C
|
||||
/* 80315004 2C 07 00 0D */ cmpwi r7, 0xd
|
||||
/* 80315008 40 80 01 0C */ bge lbl_80315114
|
||||
/* 8031500C 48 00 00 CC */ b lbl_803150D8
|
||||
lbl_80315010:
|
||||
/* 80315010 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 80315014 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 80315018 40 82 00 18 */ bne lbl_80315030
|
||||
/* 8031501C 38 C0 00 0C */ li r6, 0xc
|
||||
/* 80315020 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80315024 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 80315028 7C C5 01 AE */ stbx r6, r5, r0
|
||||
/* 8031502C 48 00 00 14 */ b lbl_80315040
|
||||
lbl_80315030:
|
||||
/* 80315030 38 C0 00 06 */ li r6, 6
|
||||
/* 80315034 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80315038 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 8031503C 7C C5 01 AE */ stbx r6, r5, r0
|
||||
lbl_80315040:
|
||||
/* 80315040 80 E3 00 4C */ lwz r7, 0x4c(r3)
|
||||
/* 80315044 81 07 00 18 */ lwz r8, 0x18(r7)
|
||||
/* 80315048 80 04 00 00 */ lwz r0, 0(r4)
|
||||
/* 8031504C 54 06 10 3A */ slwi r6, r0, 2
|
||||
/* 80315050 38 A1 00 14 */ addi r5, r1, 0x14
|
||||
/* 80315054 38 06 FF DC */ addi r0, r6, -36
|
||||
/* 80315058 7D 05 01 2E */ stwx r8, r5, r0
|
||||
/* 8031505C 88 04 00 0C */ lbz r0, 0xc(r4)
|
||||
/* 80315060 98 07 00 4C */ stb r0, 0x4c(r7)
|
||||
/* 80315064 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 80315068 80 A3 00 4C */ lwz r5, 0x4c(r3)
|
||||
/* 8031506C 90 05 00 50 */ stw r0, 0x50(r5)
|
||||
/* 80315070 48 00 00 FC */ b lbl_8031516C
|
||||
lbl_80315074:
|
||||
/* 80315074 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 80315078 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8031507C 40 82 00 18 */ bne lbl_80315094
|
||||
/* 80315080 38 C0 00 0C */ li r6, 0xc
|
||||
/* 80315084 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80315088 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 8031508C 7C C5 01 AE */ stbx r6, r5, r0
|
||||
/* 80315090 48 00 00 14 */ b lbl_803150A4
|
||||
lbl_80315094:
|
||||
/* 80315094 38 C0 00 06 */ li r6, 6
|
||||
/* 80315098 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 8031509C 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 803150A0 7C C5 01 AE */ stbx r6, r5, r0
|
||||
lbl_803150A4:
|
||||
/* 803150A4 80 E3 00 4C */ lwz r7, 0x4c(r3)
|
||||
/* 803150A8 81 07 00 1C */ lwz r8, 0x1c(r7)
|
||||
/* 803150AC 80 04 00 00 */ lwz r0, 0(r4)
|
||||
/* 803150B0 54 06 10 3A */ slwi r6, r0, 2
|
||||
/* 803150B4 38 A1 00 14 */ addi r5, r1, 0x14
|
||||
/* 803150B8 38 06 FF DC */ addi r0, r6, -36
|
||||
/* 803150BC 7D 05 01 2E */ stwx r8, r5, r0
|
||||
/* 803150C0 88 04 00 0C */ lbz r0, 0xc(r4)
|
||||
/* 803150C4 98 07 00 54 */ stb r0, 0x54(r7)
|
||||
/* 803150C8 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 803150CC 80 A3 00 4C */ lwz r5, 0x4c(r3)
|
||||
/* 803150D0 90 05 00 58 */ stw r0, 0x58(r5)
|
||||
/* 803150D4 48 00 00 98 */ b lbl_8031516C
|
||||
lbl_803150D8:
|
||||
/* 803150D8 38 C0 00 04 */ li r6, 4
|
||||
/* 803150DC 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 803150E0 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 803150E4 7C C5 01 AE */ stbx r6, r5, r0
|
||||
/* 803150E8 80 C3 00 4C */ lwz r6, 0x4c(r3)
|
||||
/* 803150EC 81 04 00 00 */ lwz r8, 0(r4)
|
||||
/* 803150F0 38 08 FF F5 */ addi r0, r8, -11
|
||||
/* 803150F4 54 05 15 BA */ rlwinm r5, r0, 2, 0x16, 0x1d
|
||||
/* 803150F8 38 05 00 24 */ addi r0, r5, 0x24
|
||||
/* 803150FC 7C E6 00 2E */ lwzx r7, r6, r0
|
||||
/* 80315100 55 06 10 3A */ slwi r6, r8, 2
|
||||
/* 80315104 38 A1 00 14 */ addi r5, r1, 0x14
|
||||
/* 80315108 38 06 FF DC */ addi r0, r6, -36
|
||||
/* 8031510C 7C E5 01 2E */ stwx r7, r5, r0
|
||||
/* 80315110 48 00 00 5C */ b lbl_8031516C
|
||||
lbl_80315114:
|
||||
/* 80315114 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 80315118 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8031511C 40 82 00 18 */ bne lbl_80315134
|
||||
/* 80315120 38 C0 00 08 */ li r6, 8
|
||||
/* 80315124 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80315128 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 8031512C 7C C5 01 AE */ stbx r6, r5, r0
|
||||
/* 80315130 48 00 00 14 */ b lbl_80315144
|
||||
lbl_80315134:
|
||||
/* 80315134 38 C0 00 04 */ li r6, 4
|
||||
/* 80315138 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 8031513C 38 07 FF F7 */ addi r0, r7, -9
|
||||
/* 80315140 7C C5 01 AE */ stbx r6, r5, r0
|
||||
lbl_80315144:
|
||||
/* 80315144 80 C3 00 4C */ lwz r6, 0x4c(r3)
|
||||
/* 80315148 81 04 00 00 */ lwz r8, 0(r4)
|
||||
/* 8031514C 38 08 FF F3 */ addi r0, r8, -13
|
||||
/* 80315150 54 05 15 BA */ rlwinm r5, r0, 2, 0x16, 0x1d
|
||||
/* 80315154 38 05 00 2C */ addi r0, r5, 0x2c
|
||||
/* 80315158 7C E6 00 2E */ lwzx r7, r6, r0
|
||||
/* 8031515C 55 06 10 3A */ slwi r6, r8, 2
|
||||
/* 80315160 38 A1 00 14 */ addi r5, r1, 0x14
|
||||
/* 80315164 38 06 FF DC */ addi r0, r6, -36
|
||||
/* 80315168 7C E5 01 2E */ stwx r7, r5, r0
|
||||
lbl_8031516C:
|
||||
/* 8031516C 38 84 00 10 */ addi r4, r4, 0x10
|
||||
lbl_80315170:
|
||||
/* 80315170 80 E4 00 00 */ lwz r7, 0(r4)
|
||||
/* 80315174 2C 07 00 FF */ cmpwi r7, 0xff
|
||||
/* 80315178 40 82 FE 6C */ bne lbl_80314FE4
|
||||
/* 8031517C 80 A3 00 30 */ lwz r5, 0x30(r3)
|
||||
/* 80315180 38 00 00 00 */ li r0, 0
|
||||
/* 80315184 98 03 00 48 */ stb r0, 0x48(r3)
|
||||
/* 80315188 48 00 00 5C */ b lbl_803151E4
|
||||
lbl_8031518C:
|
||||
/* 8031518C 2C 04 00 19 */ cmpwi r4, 0x19
|
||||
/* 80315190 40 82 00 34 */ bne lbl_803151C4
|
||||
/* 80315194 80 05 00 04 */ lwz r0, 4(r5)
|
||||
/* 80315198 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8031519C 41 82 00 28 */ beq lbl_803151C4
|
||||
/* 803151A0 38 00 00 01 */ li r0, 1
|
||||
/* 803151A4 98 03 00 34 */ stb r0, 0x34(r3)
|
||||
/* 803151A8 88 01 00 09 */ lbz r0, 9(r1)
|
||||
/* 803151AC 1C 00 00 03 */ mulli r0, r0, 3
|
||||
/* 803151B0 98 01 00 09 */ stb r0, 9(r1)
|
||||
/* 803151B4 80 83 00 4C */ lwz r4, 0x4c(r3)
|
||||
/* 803151B8 80 04 00 20 */ lwz r0, 0x20(r4)
|
||||
/* 803151BC 90 01 00 18 */ stw r0, 0x18(r1)
|
||||
/* 803151C0 48 00 00 20 */ b lbl_803151E0
|
||||
lbl_803151C4:
|
||||
/* 803151C4 2C 04 00 00 */ cmpwi r4, 0
|
||||
/* 803151C8 40 82 00 18 */ bne lbl_803151E0
|
||||
/* 803151CC 80 05 00 04 */ lwz r0, 4(r5)
|
||||
/* 803151D0 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 803151D4 41 82 00 0C */ beq lbl_803151E0
|
||||
/* 803151D8 38 00 00 01 */ li r0, 1
|
||||
/* 803151DC 98 03 00 48 */ stb r0, 0x48(r3)
|
||||
lbl_803151E0:
|
||||
/* 803151E0 38 A5 00 08 */ addi r5, r5, 8
|
||||
lbl_803151E4:
|
||||
/* 803151E4 80 85 00 00 */ lwz r4, 0(r5)
|
||||
/* 803151E8 2C 04 00 FF */ cmpwi r4, 0xff
|
||||
/* 803151EC 40 82 FF A0 */ bne lbl_8031518C
|
||||
/* 803151F0 3B 60 00 00 */ li r27, 0
|
||||
/* 803151F4 3B A0 00 00 */ li r29, 0
|
||||
/* 803151F8 3B 81 00 14 */ addi r28, r1, 0x14
|
||||
/* 803151FC 3B C1 00 08 */ addi r30, r1, 8
|
||||
/* 80315200 7F DF F3 78 */ mr r31, r30
|
||||
lbl_80315204:
|
||||
/* 80315204 7C 9C E8 2E */ lwzx r4, r28, r29
|
||||
/* 80315208 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 8031520C 41 82 00 14 */ beq lbl_80315220
|
||||
/* 80315210 38 7B 00 09 */ addi r3, r27, 9
|
||||
/* 80315214 88 BE 00 00 */ lbz r5, 0(r30)
|
||||
/* 80315218 48 04 C4 E9 */ bl GDSetArray
|
||||
/* 8031521C 48 00 00 14 */ b lbl_80315230
|
||||
lbl_80315220:
|
||||
/* 80315220 38 7B 00 09 */ addi r3, r27, 9
|
||||
/* 80315224 38 80 00 00 */ li r4, 0
|
||||
/* 80315228 88 BF 00 00 */ lbz r5, 0(r31)
|
||||
/* 8031522C 48 04 C6 E1 */ bl GDSetArrayRaw
|
||||
lbl_80315230:
|
||||
/* 80315230 3B 7B 00 01 */ addi r27, r27, 1
|
||||
/* 80315234 28 1B 00 0C */ cmplwi r27, 0xc
|
||||
/* 80315238 3B FF 00 01 */ addi r31, r31, 1
|
||||
/* 8031523C 3B DE 00 01 */ addi r30, r30, 1
|
||||
/* 80315240 3B BD 00 04 */ addi r29, r29, 4
|
||||
/* 80315244 41 80 FF C0 */ blt lbl_80315204
|
||||
/* 80315248 39 61 00 60 */ addi r11, r1, 0x60
|
||||
/* 8031524C 48 04 CF D5 */ bl _restgpr_27
|
||||
/* 80315250 80 01 00 64 */ lwz r0, 0x64(r1)
|
||||
/* 80315254 7C 08 03 A6 */ mtlr r0
|
||||
/* 80315258 38 21 00 60 */ addi r1, r1, 0x60
|
||||
/* 8031525C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
lbl_80314924:
|
||||
/* 80314924 38 A0 00 00 */ li r5, 0
|
||||
/* 80314928 80 C3 00 08 */ lwz r6, 8(r3)
|
||||
/* 8031492C 7C C7 33 78 */ mr r7, r6
|
||||
/* 80314930 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 80314934 48 00 00 2C */ b lbl_80314960
|
||||
lbl_80314938:
|
||||
/* 80314938 88 07 00 00 */ lbz r0, 0(r7)
|
||||
/* 8031493C 28 00 00 A0 */ cmplwi r0, 0xa0
|
||||
/* 80314940 41 82 00 0C */ beq lbl_8031494C
|
||||
/* 80314944 28 00 00 98 */ cmplwi r0, 0x98
|
||||
/* 80314948 40 82 00 24 */ bne lbl_8031496C
|
||||
lbl_8031494C:
|
||||
/* 8031494C A0 07 00 01 */ lhz r0, 1(r7)
|
||||
/* 80314950 7C A5 02 14 */ add r5, r5, r0
|
||||
/* 80314954 7C 04 01 D6 */ mullw r0, r4, r0
|
||||
/* 80314958 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 8031495C 38 E7 00 03 */ addi r7, r7, 3
|
||||
lbl_80314960:
|
||||
/* 80314960 7C 06 38 50 */ subf r0, r6, r7
|
||||
/* 80314964 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80314968 41 80 FF D0 */ blt lbl_80314938
|
||||
lbl_8031496C:
|
||||
/* 8031496C 7C A3 2B 78 */ mr r3, r5
|
||||
/* 80314970 4E 80 00 20 */ blr
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
lbl_8031396C:
|
||||
/* 8031396C 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 80313970 7C 08 02 A6 */ mflr r0
|
||||
/* 80313974 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 80313978 93 E1 00 3C */ stw r31, 0x3c(r1)
|
||||
/* 8031397C 93 C1 00 38 */ stw r30, 0x38(r1)
|
||||
/* 80313980 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80313984 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 80313988 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 8031398C 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 80313990 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313994 80 9F 01 04 */ lwz r4, 0x104(r31)
|
||||
/* 80313998 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
||||
/* 8031399C 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 803139A0 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 803139A4 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 803139A8 48 03 2B 3D */ bl PSMTXConcat
|
||||
/* 803139AC 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13)
|
||||
/* 803139B0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803139B4 41 82 00 0C */ beq lbl_803139C0
|
||||
/* 803139B8 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 803139BC 4B FF F8 71 */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf
|
||||
lbl_803139C0:
|
||||
/* 803139C0 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 803139C4 1F DE 00 03 */ mulli r30, r30, 3
|
||||
/* 803139C8 7F C4 F3 78 */ mr r4, r30
|
||||
/* 803139CC 4B FF C1 15 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
|
||||
/* 803139D0 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 803139D4 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 803139D8 7F C4 F3 78 */ mr r4, r30
|
||||
/* 803139DC 4B FF C1 85 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl
|
||||
/* 803139E0 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13)
|
||||
/* 803139E4 28 00 20 00 */ cmplwi r0, 0x2000
|
||||
/* 803139E8 40 82 00 14 */ bne lbl_803139FC
|
||||
/* 803139EC 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 803139F0 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 803139F4 38 9E 00 1E */ addi r4, r30, 0x1e
|
||||
/* 803139F8 4B FF C2 41 */ bl J3DFifoLoadNrmMtxToTexMtx__FPA4_fUl
|
||||
lbl_803139FC:
|
||||
/* 803139FC 83 E1 00 3C */ lwz r31, 0x3c(r1)
|
||||
/* 80313A00 83 C1 00 38 */ lwz r30, 0x38(r1)
|
||||
/* 80313A04 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 80313A08 7C 08 03 A6 */ mtlr r0
|
||||
/* 80313A0C 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 80313A10 4E 80 00 20 */ blr
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
lbl_803138C8:
|
||||
/* 803138C8 94 21 FF B0 */ stwu r1, -0x50(r1)
|
||||
/* 803138CC 7C 08 02 A6 */ mflr r0
|
||||
/* 803138D0 90 01 00 54 */ stw r0, 0x54(r1)
|
||||
/* 803138D4 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 803138D8 48 04 E9 01 */ bl _savegpr_28
|
||||
/* 803138DC 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 803138E0 7C 9D 23 78 */ mr r29, r4
|
||||
/* 803138E4 7C BE 2B 78 */ mr r30, r5
|
||||
/* 803138E8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 803138EC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 803138F0 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 803138F4 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 803138F8 80 9F 01 04 */ lwz r4, 0x104(r31)
|
||||
/* 803138FC 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
||||
/* 80313900 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80313904 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 80313908 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 8031390C 48 03 2B D9 */ bl PSMTXConcat
|
||||
/* 80313910 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13)
|
||||
/* 80313914 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80313918 41 82 00 0C */ beq lbl_80313924
|
||||
/* 8031391C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313920 4B FF F9 0D */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf
|
||||
lbl_80313924:
|
||||
/* 80313924 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 80313928 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 8031392C 1C 9D 00 03 */ mulli r4, r29, 3
|
||||
/* 80313930 4B FF C1 B1 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
|
||||
/* 80313934 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80313938 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8031393C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80313940 38 C1 00 08 */ addi r6, r1, 8
|
||||
/* 80313944 81 9C 00 00 */ lwz r12, 0(r28)
|
||||
/* 80313948 81 8C 00 24 */ lwz r12, 0x24(r12)
|
||||
/* 8031394C 7D 89 03 A6 */ mtctr r12
|
||||
/* 80313950 4E 80 04 21 */ bctrl
|
||||
/* 80313954 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 80313958 48 04 E8 CD */ bl _restgpr_28
|
||||
/* 8031395C 80 01 00 54 */ lwz r0, 0x54(r1)
|
||||
/* 80313960 7C 08 03 A6 */ mtlr r0
|
||||
/* 80313964 38 21 00 50 */ addi r1, r1, 0x50
|
||||
/* 80313968 4E 80 00 20 */ blr
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
lbl_80313A14:
|
||||
/* 80313A14 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 80313A18 7C 08 02 A6 */ mflr r0
|
||||
/* 80313A1C 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 80313A20 93 E1 00 3C */ stw r31, 0x3c(r1)
|
||||
/* 80313A24 93 C1 00 38 */ stw r30, 0x38(r1)
|
||||
/* 80313A28 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80313A2C 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13)
|
||||
/* 80313A30 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80313A34 41 82 00 34 */ beq lbl_80313A68
|
||||
/* 80313A38 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 80313A3C 38 83 4A C8 */ addi r4, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 80313A40 80 64 00 40 */ lwz r3, 0x40(r4)
|
||||
/* 80313A44 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313A48 80 84 01 04 */ lwz r4, 0x104(r4)
|
||||
/* 80313A4C 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
||||
/* 80313A50 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80313A54 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 80313A58 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80313A5C 48 03 2A 89 */ bl PSMTXConcat
|
||||
/* 80313A60 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313A64 4B FF F7 C9 */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf
|
||||
lbl_80313A68:
|
||||
/* 80313A68 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 80313A6C 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 80313A70 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 80313A74 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313A78 1F DE 00 03 */ mulli r30, r30, 3
|
||||
/* 80313A7C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80313A80 4B FF C0 61 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
|
||||
/* 80313A84 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 80313A88 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313A8C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80313A90 4B FF C0 D1 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl
|
||||
/* 80313A94 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13)
|
||||
/* 80313A98 28 00 20 00 */ cmplwi r0, 0x2000
|
||||
/* 80313A9C 40 82 00 14 */ bne lbl_80313AB0
|
||||
/* 80313AA0 80 7F 00 40 */ lwz r3, 0x40(r31)
|
||||
/* 80313AA4 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313AA8 38 9E 00 1E */ addi r4, r30, 0x1e
|
||||
/* 80313AAC 4B FF C1 8D */ bl J3DFifoLoadNrmMtxToTexMtx__FPA4_fUl
|
||||
lbl_80313AB0:
|
||||
/* 80313AB0 83 E1 00 3C */ lwz r31, 0x3c(r1)
|
||||
/* 80313AB4 83 C1 00 38 */ lwz r30, 0x38(r1)
|
||||
/* 80313AB8 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 80313ABC 7C 08 03 A6 */ mtlr r0
|
||||
/* 80313AC0 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 80313AC4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
lbl_80313AC8:
|
||||
/* 80313AC8 94 21 FF B0 */ stwu r1, -0x50(r1)
|
||||
/* 80313ACC 7C 08 02 A6 */ mflr r0
|
||||
/* 80313AD0 90 01 00 54 */ stw r0, 0x54(r1)
|
||||
/* 80313AD4 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 80313AD8 48 04 E7 05 */ bl _savegpr_29
|
||||
/* 80313ADC 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80313AE0 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80313AE4 7C BF 2B 78 */ mr r31, r5
|
||||
/* 80313AE8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 80313AEC 38 83 4A C8 */ addi r4, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 80313AF0 80 64 00 40 */ lwz r3, 0x40(r4)
|
||||
/* 80313AF4 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313AF8 80 84 01 04 */ lwz r4, 0x104(r4)
|
||||
/* 80313AFC 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
||||
/* 80313B00 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80313B04 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 80313B08 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80313B0C 48 03 29 D9 */ bl PSMTXConcat
|
||||
/* 80313B10 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 80313B14 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 80313B18 80 63 00 38 */ lwz r3, 0x38(r3)
|
||||
/* 80313B1C 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 80313B20 80 63 00 3C */ lwz r3, 0x3c(r3)
|
||||
/* 80313B24 57 E0 04 3E */ clrlwi r0, r31, 0x10
|
||||
/* 80313B28 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80313B2C 7C 83 02 14 */ add r4, r3, r0
|
||||
/* 80313B30 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313B34 7C 65 1B 78 */ mr r5, r3
|
||||
/* 80313B38 48 03 29 AD */ bl PSMTXConcat
|
||||
/* 80313B3C 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13)
|
||||
/* 80313B40 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80313B44 41 82 00 0C */ beq lbl_80313B50
|
||||
/* 80313B48 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313B4C 4B FF F6 E1 */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf
|
||||
lbl_80313B50:
|
||||
/* 80313B50 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313B54 1C 9E 00 03 */ mulli r4, r30, 3
|
||||
/* 80313B58 4B FF BF 89 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
|
||||
/* 80313B5C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80313B60 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80313B64 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80313B68 38 C1 00 08 */ addi r6, r1, 8
|
||||
/* 80313B6C 81 9D 00 00 */ lwz r12, 0(r29)
|
||||
/* 80313B70 81 8C 00 24 */ lwz r12, 0x24(r12)
|
||||
/* 80313B74 7D 89 03 A6 */ mtctr r12
|
||||
/* 80313B78 4E 80 04 21 */ bctrl
|
||||
/* 80313B7C 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 80313B80 48 04 E6 A9 */ bl _restgpr_29
|
||||
/* 80313B84 80 01 00 54 */ lwz r0, 0x54(r1)
|
||||
/* 80313B88 7C 08 03 A6 */ mtlr r0
|
||||
/* 80313B8C 38 21 00 50 */ addi r1, r1, 0x50
|
||||
/* 80313B90 4E 80 00 20 */ blr
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
lbl_80313828:
|
||||
/* 80313828 94 21 FF B0 */ stwu r1, -0x50(r1)
|
||||
/* 8031382C 7C 08 02 A6 */ mflr r0
|
||||
/* 80313830 90 01 00 54 */ stw r0, 0x54(r1)
|
||||
/* 80313834 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 80313838 48 04 E9 A5 */ bl _savegpr_29
|
||||
/* 8031383C 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80313840 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80313844 7C BF 2B 78 */ mr r31, r5
|
||||
/* 80313848 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
|
||||
/* 8031384C 38 83 4A C8 */ addi r4, r3, j3dSys@l /* 0x80434AC8@l */
|
||||
/* 80313850 80 64 00 40 */ lwz r3, 0x40(r4)
|
||||
/* 80313854 80 63 00 30 */ lwz r3, 0x30(r3)
|
||||
/* 80313858 80 84 01 04 */ lwz r4, 0x104(r4)
|
||||
/* 8031385C 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
||||
/* 80313860 1C 00 00 30 */ mulli r0, r0, 0x30
|
||||
/* 80313864 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 80313868 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 8031386C 48 03 2C 79 */ bl PSMTXConcat
|
||||
/* 80313870 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13)
|
||||
/* 80313874 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80313878 41 82 00 0C */ beq lbl_80313884
|
||||
/* 8031387C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313880 4B FF F9 AD */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf
|
||||
lbl_80313884:
|
||||
/* 80313884 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80313888 1C 9E 00 03 */ mulli r4, r30, 3
|
||||
/* 8031388C 4B FF C2 55 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
|
||||
/* 80313890 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80313894 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80313898 7F E5 FB 78 */ mr r5, r31
|
||||
/* 8031389C 38 C1 00 08 */ addi r6, r1, 8
|
||||
/* 803138A0 81 9D 00 00 */ lwz r12, 0(r29)
|
||||
/* 803138A4 81 8C 00 24 */ lwz r12, 0x24(r12)
|
||||
/* 803138A8 7D 89 03 A6 */ mtctr r12
|
||||
/* 803138AC 4E 80 04 21 */ bctrl
|
||||
/* 803138B0 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 803138B4 48 04 E9 75 */ bl _restgpr_29
|
||||
/* 803138B8 80 01 00 54 */ lwz r0, 0x54(r1)
|
||||
/* 803138BC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803138C0 38 21 00 50 */ addi r1, r1, 0x50
|
||||
/* 803138C4 4E 80 00 20 */ blr
|
||||
|
|
@ -90,6 +90,9 @@ public:
|
|||
inline J3DMaterial* getMaterial() const { return mMaterial; }
|
||||
inline u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
|
||||
inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
|
||||
inline u32 getMtxGroupNum() const { return mMtxGroupNum; }
|
||||
inline J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; }
|
||||
inline J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; }
|
||||
static void resetVcdVatCache() { sOldVcdVatCmd = NULL; }
|
||||
|
||||
static void* sOldVcdVatCmd;
|
||||
|
|
|
|||
|
|
@ -5,13 +5,16 @@
|
|||
|
||||
class J3DShapeDraw {
|
||||
public:
|
||||
/* 80314924 */ void countVertex(u32);
|
||||
/* 80314924 */ u32 countVertex(u32);
|
||||
/* 80314974 */ void addTexMtxIndexInDL(u32, u32, u32);
|
||||
/* 80314ABC */ J3DShapeDraw(u8 const*, u32);
|
||||
/* 80314AD4 */ void draw() const;
|
||||
|
||||
/* 80314B00 */ virtual ~J3DShapeDraw();
|
||||
|
||||
u8* getDisplayList() const { return (u8*)mDisplayList; }
|
||||
u32 getDisplayListSize() const { return mDisplayListSize; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ u32 mDisplayListSize;
|
||||
/* 0x08 */ void* mDisplayList;
|
||||
|
|
|
|||
|
|
@ -21,17 +21,19 @@ public:
|
|||
J3DVertexData();
|
||||
|
||||
void* getVtxPosArray() const { return mVtxPosArray; }
|
||||
|
||||
void* getVtxNrmArray() const { return mVtxNrmArray; }
|
||||
|
||||
_GXColor* getVtxColorArray(u8 idx) const { return mVtxColorArray[idx]; }
|
||||
|
||||
GXColor* getVtxColorArray(u8 idx) const { return mVtxColorArray[idx]; }
|
||||
void* getVtxTexCoordArray(u8 idx) const { return mVtxTexCoordArray[idx]; }
|
||||
void* getVtxNBTArray() const { return mVtxNBTArray; }
|
||||
u32 getNrmNum() const { return mNrmNum; }
|
||||
|
||||
u32 getVtxNum() const { return mVtxNum; }
|
||||
|
||||
GXVtxAttrFmtList* getVtxAttrFmtList() { return mVtxAttrFmtList; }
|
||||
|
||||
void setVtxPosFrac(u8 frac) { mVtxPosFrac = frac; }
|
||||
void setVtxPosType(GXCompType type) { mVtxPosType = type; }
|
||||
void setVtxNrmFrac(u8 frac) { mVtxNrmFrac = frac; }
|
||||
void setVtxNrmType(GXCompType type) { mVtxNrmType = type; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ u32 mVtxNum;
|
||||
/* 0x04 */ u32 mNrmNum;
|
||||
|
|
|
|||
|
|
@ -85,13 +85,6 @@ typedef struct _GXTexRegion {
|
|||
/* 0x00 */ u8 dummy[0x10];
|
||||
} GXTexRegion; // Size: 0x10
|
||||
|
||||
typedef struct _GXVtxAttrFmtList {
|
||||
/* 0x00 */ u32 mAttrib; // GXAttr
|
||||
/* 0x04 */ u32 mCompCnt; // GXCompCnt
|
||||
/* 0x08 */ u32 mCompType; // GXCompType
|
||||
/* 0x0C */ u8 mCompShift;
|
||||
} GXVtxAttrFmtList; // Size: 0x10
|
||||
|
||||
typedef enum _GXPrimitive {
|
||||
/* 0x80 */ GX_QUADS = 0x80,
|
||||
/* 0x90 */ GX_TRIANGLES = 0x90,
|
||||
|
|
@ -830,6 +823,13 @@ typedef struct _GXVtxDescList {
|
|||
/* 0x4 */ GXAttrType type;
|
||||
} GXVtxDescList; // Size: 0x08
|
||||
|
||||
typedef struct _GXVtxAttrFmtList {
|
||||
/* 0x00 */ GXAttr mAttrib;
|
||||
/* 0x04 */ GXCompCnt mCompCnt;
|
||||
/* 0x08 */ GXCompType mCompType;
|
||||
/* 0x0C */ u8 mCompShift;
|
||||
} GXVtxAttrFmtList; // Size: 0x10
|
||||
|
||||
typedef enum _GXFBClamp {
|
||||
/* 0x0 */ GX_CLAMP_NONE,
|
||||
/* 0x1 */ GX_CLAMP_TOP,
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ extern "C" void _savegpr_29();
|
|||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 j3dDefaultViewNo[4 + 4 /* padding */];
|
||||
extern "C" extern u32 j3dDefaultViewNo;
|
||||
extern "C" u32 sCurrentPipeline__11J3DShapeMtx;
|
||||
extern "C" u32 sCurrentScaleFlag__11J3DShapeMtx;
|
||||
extern "C" extern u8 struct_804515B0[4];
|
||||
|
|
@ -72,32 +72,38 @@ enum {
|
|||
kVcdVatDLSize = 0xC0,
|
||||
};
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804563A0-804563A8 0049A0 0004+04 1/1 0/0 0/0 .sdata2 @687 */
|
||||
SECTION_SDATA2 static f32 lit_687[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80314B48-80314BB8 30F488 0070+00 0/0 1/1 0/0 .text initialize__8J3DShapeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::initialize() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/initialize__8J3DShapeFv.s"
|
||||
void J3DShape::initialize() {
|
||||
mMaterial = NULL;
|
||||
mIndex = -1;
|
||||
mMtxGroupNum = 0;
|
||||
mFlags = 0;
|
||||
mRadius = 0.0f;
|
||||
mMin.x = 0.0f;
|
||||
mMin.y = 0.0f;
|
||||
mMin.z = 0.0f;
|
||||
mMax.x = 0.0f;
|
||||
mMax.y = 0.0f;
|
||||
mMax.z = 0.0f;
|
||||
mVtxDesc = NULL;
|
||||
mShapeMtx = NULL;
|
||||
mShapeDraw = NULL;
|
||||
mVertexData = NULL;
|
||||
mDrawMtxData = NULL;
|
||||
mScaleFlagArray = NULL;
|
||||
mDrawMtx = NULL;
|
||||
mNrmMtx = NULL;
|
||||
mCurrentViewNo = &j3dDefaultViewNo;
|
||||
mHasNBT = false;
|
||||
mHasPNMTXIdx = false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80314BB8-80314CBC 30F4F8 0104+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl */
|
||||
#ifdef NONMATCHING
|
||||
void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 param_1) {
|
||||
void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 valueBase) {
|
||||
u32 kSize[] = { 0, 1, 1, 2 };
|
||||
|
||||
s32 pnmtxidxOffs = -1;
|
||||
s32 attrOffs = -1;
|
||||
u32 stride = 0;
|
||||
s32 stride = 0;
|
||||
bool found = false;
|
||||
|
||||
for (GXVtxDescList* vtxDesc = mVtxDesc; vtxDesc->attr != GX_VA_NULL; vtxDesc++) {
|
||||
|
|
@ -115,28 +121,9 @@ void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 param_1) {
|
|||
if (pnmtxidxOffs == -1)
|
||||
return;
|
||||
|
||||
for (u16 i = 0; i < mMtxGroupNum; i++)
|
||||
mShapeDraw[i]->addTexMtxIndexInDL(stride, attrOffs, param_1);
|
||||
for (u16 i = 0; i < getMtxGroupNum(); i++)
|
||||
getShapeDraw(i)->addTexMtxIndexInDL(stride, attrOffs, (s32)valueBase);
|
||||
}
|
||||
#else
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A1E98-803A1EA8 02E4F8 0010+00 1/1 0/0 0/0 .rodata @697 */
|
||||
SECTION_RODATA static u8 const lit_697[16] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A1E98, &lit_697);
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::addTexMtxIndexInDL(_GXAttr param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* 80314CBC-80314DA8 30F5FC 00EC+00 0/0 1/1 0/0 .text addTexMtxIndexInVcd__8J3DShapeF7_GXAttr */
|
||||
void J3DShape::addTexMtxIndexInVcd(GXAttr attr) {
|
||||
|
|
@ -177,15 +164,15 @@ void J3DShape::addTexMtxIndexInVcd(GXAttr attr) {
|
|||
/* 80314DA8-80314E28 30F6E8 0080+00 0/0 1/1 0/0 .text
|
||||
* calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f */
|
||||
void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) {
|
||||
for (u16 i = 0; i < mMtxGroupNum; i++)
|
||||
mShapeMtx[i]->calcNBTScale(param_0, param_1, param_2);
|
||||
for (u16 i = 0; i < getMtxGroupNum(); i++)
|
||||
getShapeMtx(i)->calcNBTScale(param_0, param_1, param_2);
|
||||
}
|
||||
|
||||
/* 80314E28-80314E98 30F768 0070+00 0/0 1/1 0/0 .text countBumpMtxNum__8J3DShapeCFv */
|
||||
u32 J3DShape::countBumpMtxNum() const {
|
||||
u32 num = 0;
|
||||
for (u16 i = 0; i < mMtxGroupNum; i++)
|
||||
num += mShapeMtx[i]->getUseMtxNum();
|
||||
for (u16 i = 0; i < getMtxGroupNum(); i++)
|
||||
num += getShapeMtx(i)->getUseMtxNum();
|
||||
return num;
|
||||
}
|
||||
|
||||
|
|
@ -222,14 +209,87 @@ bool J3DShape::isSameVcdVatCmd(J3DShape* other) {
|
|||
}
|
||||
|
||||
/* 80314F98-80315260 30F8D8 02C8+00 1/1 0/0 0/0 .text makeVtxArrayCmd__8J3DShapeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::makeVtxArrayCmd() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/makeVtxArrayCmd__8J3DShapeFv.s"
|
||||
void J3DShape::makeVtxArrayCmd() {
|
||||
GXVtxAttrFmtList *vtxAttr = mVertexData->getVtxAttrFmtList();
|
||||
|
||||
u8 stride[0x0C];
|
||||
void* array[0x0C];
|
||||
for (u32 i = 0; i < 0x0C; i++) {
|
||||
stride[i] = 0;
|
||||
array[i] = 0;
|
||||
}
|
||||
|
||||
for (; vtxAttr->mAttrib != GX_VA_NULL; vtxAttr++) {
|
||||
switch (vtxAttr->mAttrib) {
|
||||
case GX_VA_POS:
|
||||
{
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxPosArray();
|
||||
mVertexData->setVtxPosFrac(vtxAttr->mCompShift);
|
||||
mVertexData->setVtxPosType((GXCompType) vtxAttr->mCompType);
|
||||
}
|
||||
break;
|
||||
case GX_VA_NRM:
|
||||
{
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxNrmArray();
|
||||
mVertexData->setVtxNrmFrac(vtxAttr->mCompShift);
|
||||
mVertexData->setVtxNrmType((GXCompType) vtxAttr->mCompType);
|
||||
}
|
||||
break;
|
||||
case GX_VA_CLR0:
|
||||
case GX_VA_CLR1:
|
||||
{
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxColorArray(vtxAttr->mAttrib - GX_VA_CLR0);
|
||||
}
|
||||
break;
|
||||
case GX_VA_TEX0:
|
||||
case GX_VA_TEX1:
|
||||
case GX_VA_TEX2:
|
||||
case GX_VA_TEX3:
|
||||
case GX_VA_TEX4:
|
||||
case GX_VA_TEX5:
|
||||
case GX_VA_TEX6:
|
||||
case GX_VA_TEX7:
|
||||
{
|
||||
if (vtxAttr->mCompType == GX_F32)
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x08;
|
||||
else
|
||||
stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04;
|
||||
array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxTexCoordArray(vtxAttr->mAttrib - GX_VA_TEX0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
GXVtxDescList* vtxDesc = mVtxDesc;
|
||||
mHasPNMTXIdx = false;
|
||||
for (; vtxDesc->attr != GX_VA_NULL; vtxDesc++) {
|
||||
if (vtxDesc->attr == GX_VA_NBT && vtxDesc->type != GX_NONE) {
|
||||
mHasNBT = true;
|
||||
stride[GX_VA_NRM - GX_VA_POS] *= 3;
|
||||
array[GX_VA_NRM - GX_VA_POS] = mVertexData->getVtxNBTArray();
|
||||
} else if (vtxDesc->attr == GX_VA_PNMTXIDX && vtxDesc->type != GX_NONE) {
|
||||
mHasPNMTXIdx = true;
|
||||
}
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < 0x0C; i++) {
|
||||
if (array[i] != 0)
|
||||
GDSetArray((GXAttr)(i + GX_VA_POS), array[i], stride[i]);
|
||||
else
|
||||
GDSetArrayRaw((GXAttr)(i + GX_VA_POS), NULL, stride[i]);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804515C8-804515CC 000AC8 0004+00 1/1 0/0 0/0 .sbss sInterruptFlag$903 */
|
||||
|
|
@ -264,14 +324,14 @@ void J3DShape::makeVcdVatCmd() {
|
|||
void* J3DShape::sOldVcdVatCmd;
|
||||
|
||||
/* 80315300-80315398 30FC40 0098+00 2/2 6/6 3/3 .text loadPreDrawSetting__8J3DShapeCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::loadPreDrawSetting() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/loadPreDrawSetting__8J3DShapeCFv.s"
|
||||
void J3DShape::loadPreDrawSetting() const {
|
||||
if (sOldVcdVatCmd != mVcdVatCmd) {
|
||||
GXCallDisplayList(mVcdVatCmd, kVcdVatDLSize);
|
||||
sOldVcdVatCmd = mVcdVatCmd;
|
||||
}
|
||||
|
||||
mCurrentMtx.load();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804515D4-804515D8 000AD4 0004+00 3/3 0/0 0/0 .sbss None */
|
||||
|
|
@ -308,18 +368,18 @@ void J3DShape::drawFast() const {
|
|||
if (J3DShapeMtx::getLODFlag() != 0)
|
||||
J3DShapeMtx::resetMtxLoadCache();
|
||||
|
||||
for (u16 n = mMtxGroupNum, i = 0; i < n; i++) {
|
||||
if (mShapeMtx[i] != NULL)
|
||||
mShapeMtx[i]->load();
|
||||
if (mShapeDraw[i] != NULL)
|
||||
mShapeDraw[i]->draw();
|
||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) {
|
||||
if (getShapeMtx(i) != NULL)
|
||||
getShapeMtx(i)->load();
|
||||
if (getShapeDraw(i) != NULL)
|
||||
getShapeDraw(i)->draw();
|
||||
}
|
||||
} else {
|
||||
J3DFifoLoadPosMtxImm(*j3dSys.mShapePacket->getBaseMtxPtr(), GX_PNMTX0);
|
||||
J3DFifoLoadNrmMtxImm(*j3dSys.mShapePacket->getBaseMtxPtr(), GX_PNMTX0);
|
||||
for (u16 n = mMtxGroupNum, i = 0; i < n; i++)
|
||||
if (mShapeDraw[i] != NULL)
|
||||
mShapeDraw[i]->draw();
|
||||
J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0);
|
||||
J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0);
|
||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++)
|
||||
if (getShapeDraw(i) != NULL)
|
||||
getShapeDraw(i)->draw();
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
@ -348,9 +408,9 @@ void J3DShape::simpleDraw() const {
|
|||
loadPreDrawSetting();
|
||||
J3DShapeMtx::setCurrentPipeline(getPipeline());
|
||||
loadVtxArray();
|
||||
for (u16 n = mMtxGroupNum, i = 0; i < n; i++) {
|
||||
if (mShapeDraw[i] != NULL) {
|
||||
mShapeDraw[i]->draw();
|
||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) {
|
||||
if (getShapeDraw(i) != NULL) {
|
||||
getShapeDraw(i)->draw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -366,7 +426,7 @@ void J3DShape::simpleDrawCache() const {
|
|||
mCurrentMtx.load();
|
||||
|
||||
loadVtxArray();
|
||||
for (u16 n = mMtxGroupNum, i = 0; i < n; i++)
|
||||
if (mShapeDraw[i] != NULL)
|
||||
mShapeDraw[i]->draw();
|
||||
for (u16 n = getMtxGroupNum(), i = 0; i < n; i++)
|
||||
if (getShapeDraw(i) != NULL)
|
||||
getShapeDraw(i)->draw();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,46 +4,85 @@
|
|||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DShapeDraw.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void countVertex__12J3DShapeDrawFUl();
|
||||
extern "C" void addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl();
|
||||
extern "C" void __ct__12J3DShapeDrawFPCUcUl();
|
||||
extern "C" void draw__12J3DShapeDrawCFv();
|
||||
extern "C" void __dt__12J3DShapeDrawFv();
|
||||
#include "MSL_C/MSL_Common/Src/string.h"
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
SECTION_INIT void memcpy();
|
||||
extern "C" void countVertex__12J3DShapeDrawFUl();
|
||||
extern "C" void* __nwa__FUli();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void DCStoreRange();
|
||||
extern "C" void _savegpr_18();
|
||||
extern "C" void _restgpr_18();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80314924-80314974 30F264 0050+00 1/1 0/0 0/0 .text countVertex__12J3DShapeDrawFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeDraw::countVertex(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/countVertex__12J3DShapeDrawFUl.s"
|
||||
u32 J3DShapeDraw::countVertex(u32 stride) {
|
||||
u32 count = 0;
|
||||
u32 dlStart = (u32)getDisplayList();
|
||||
for (u8* dl = (u8*)dlStart; ((u32)dl - dlStart) < getDisplayListSize();) {
|
||||
if (*dl != 0xA0 && *dl != 0x98)
|
||||
break;
|
||||
u16 vtxNum = *((u16*)(dl + 1));
|
||||
count += vtxNum;
|
||||
dl += stride * vtxNum;
|
||||
dl += 3;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#ifdef NONMATCHING
|
||||
/* 80314974-80314ABC 30F2B4 0148+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl */
|
||||
void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) {
|
||||
u32 byteNum = countVertex(stride);
|
||||
u32 newSize = ALIGN_NEXT(mDisplayListSize + byteNum, 0x20);
|
||||
u8* newDLStart = new (0x20) u8[newSize];
|
||||
u8* oldDLStart = getDisplayList();
|
||||
u8* oldDL = oldDLStart;
|
||||
u8* newDL = newDLStart;
|
||||
for (; (oldDL - oldDLStart) < mDisplayListSize;) {
|
||||
// Copy command
|
||||
u8 h = *oldDL;
|
||||
*newDL++ = h;
|
||||
|
||||
if (h != 0xA0 && h != 0x98)
|
||||
break;
|
||||
|
||||
// Copy count
|
||||
// regalloc (I suspect there's a way to shove this in a u16 temp without an mr)
|
||||
u32 vtxNum = *((u16*)(oldDL + 1));
|
||||
*((u16*)newDL) = vtxNum;
|
||||
newDL += 2;
|
||||
|
||||
for (s32 i = 0; i < (u16)vtxNum; i++) {
|
||||
// mul arg swap
|
||||
u8* oldDLVtx = (&oldDL[stride * i + 3]);
|
||||
u8 pnmtxidx = *oldDLVtx;
|
||||
memcpy(newDL, oldDLVtx, attrOffs);
|
||||
u8* newDL1 = &newDL[attrOffs];
|
||||
*newDL1++ = valueBase + pnmtxidx;
|
||||
memcpy(newDL1, oldDLVtx + attrOffs, stride - attrOffs);
|
||||
newDL = newDL1 + (stride - attrOffs);
|
||||
}
|
||||
|
||||
oldDL += stride * vtxNum;
|
||||
oldDL += 3;
|
||||
}
|
||||
|
||||
u32 realSize = ALIGN_NEXT((u32)newDL - (u32)newDLStart, 0x20);
|
||||
for (; (newDL - newDLStart) < newSize; newDL++)
|
||||
*newDL = 0;
|
||||
mDisplayListSize = realSize;
|
||||
mDisplayList = newDLStart;
|
||||
DCStoreRange(newDLStart, mDisplayListSize);
|
||||
}
|
||||
#else
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -53,6 +92,8 @@ asm void J3DShapeDraw::addTexMtxIndexInDL(u32 param_0, u32 param_1, u32 param_2)
|
|||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* 80314ABC-80314AD4 30F3FC 0018+00 0/0 1/1 0/0 .text __ct__12J3DShapeDrawFPCUcUl */
|
||||
J3DShapeDraw::J3DShapeDraw(u8 const* displayList, u32 displayListSize) {
|
||||
mDisplayList = (void*)displayList;
|
||||
|
|
|
|||
Loading…
Reference in New Issue