From af265612c1e714a3f135c23f426b72952926fc40 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Mon, 24 Apr 2023 15:31:32 -0700 Subject: [PATCH] J3DAnimation (#320) --- Progress.md | 18 +- .../J3DAnimation/__ct__14J3DAnmColorKeyFv.s | 22 -- .../J3DAnimation/__ct__15J3DAnmColorFullFv.s | 22 -- .../__ct__17J3DAnmVtxColorKeyFv.s | 25 -- .../__ct__18J3DAnmVtxColorFullFv.s | 25 -- ...ialID__15J3DAnmTevRegKeyFP12J3DModelData.s | 10 - ...alID__16J3DAnmTexPatternFP12J3DModelData.s | 10 - ...__16J3DAnmTexPatternFP16J3DMaterialTable.s | 43 --- ...D__19J3DAnmTextureSRTKeyFP12J3DModelData.s | 10 - ...9J3DAnmTextureSRTKeyFP16J3DMaterialTable.s | 78 ------ .../JSystem/J3DGraphAnimator/J3DAnimation.h | 8 +- .../JSystem/J3DGraphAnimator/J3DAnimation.cpp | 259 +++++++++++++----- 12 files changed, 209 insertions(+), 321 deletions(-) delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__14J3DAnmColorKeyFv.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__15J3DAnmColorFullFv.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__17J3DAnmVtxColorKeyFv.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__18J3DAnmVtxColorFullFv.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData.s delete mode 100644 asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable.s diff --git a/Progress.md b/Progress.md index 16f3aa6111a..51ec17cccd0 100644 --- a/Progress.md +++ b/Progress.md @@ -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 | 26.564836% | 955416 | 3596544 +.text | 26.589526% | 956304 | 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 | 34.306504% | 1379352 | 4020672 +Total | 34.328590% | 1380240 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 34.306504% | 1379352 | 4020672 -RELs | 33.448623% | 3846700 | 11500324 -Total | 33.670855% | 5226052 | 15520996 +main.dol | 34.328590% | 1380240 | 4020672 +RELs | 33.511543% | 3853936 | 11500324 +Total | 33.723197% | 5234176 | 15520996 ## RELs @@ -173,7 +173,7 @@ d_a_e_yd_leaf | 54.022989% | 1128 | 2088 d_a_e_yg | 28.386013% | 7436 | 26196 d_a_e_yh | 26.277603% | 9996 | 38040 d_a_e_yk | 31.079076% | 5864 | 18868 -d_a_e_ym | 20.062370% | 13896 | 69264 +d_a_e_ym | 24.174174% | 16744 | 69264 d_a_e_ym_tag | 100.000000% | 1088 | 1088 d_a_e_ymb | 23.798093% | 14672 | 61652 d_a_e_yr | 27.591936% | 9964 | 36112 @@ -539,7 +539,7 @@ d_a_obj_maki | 45.531587% | 2364 | 5192 d_a_obj_master_sword | 43.575419% | 2808 | 6444 d_a_obj_mato | 37.093023% | 2552 | 6880 d_a_obj_metalbox | 50.268097% | 1500 | 2984 -d_a_obj_mgate | 47.398844% | 1968 | 4152 +d_a_obj_mgate | 100.000000% | 4152 | 4152 d_a_obj_mhole | 35.548173% | 2140 | 6020 d_a_obj_mie | 34.891676% | 3672 | 10524 d_a_obj_mirror_6pole | 49.656751% | 1736 | 3496 @@ -656,7 +656,7 @@ d_a_obj_twGate | 57.395498% | 2856 | 4976 d_a_obj_udoor | 49.156627% | 1632 | 3320 d_a_obj_usaku | 55.081301% | 1084 | 1968 d_a_obj_vground | 44.817927% | 1280 | 2856 -d_a_obj_volcball | 34.010759% | 4552 | 13384 +d_a_obj_volcball | 50.478183% | 6756 | 13384 d_a_obj_volcbom | 32.897713% | 5236 | 15916 d_a_obj_warp_kbrg | 34.066524% | 5080 | 14912 d_a_obj_warp_obrg | 34.784076% | 4124 | 11856 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.448623% | 3846700 | 11500324 +Total | 33.511543% | 3853936 | 11500324 diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__14J3DAnmColorKeyFv.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__14J3DAnmColorKeyFv.s deleted file mode 100644 index 180b8378be8..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__14J3DAnmColorKeyFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8032AB00: -/* 8032AB00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032AB04 7C 08 02 A6 */ mflr r0 -/* 8032AB08 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032AB0C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8032AB10 7C 7F 1B 78 */ mr r31, r3 -/* 8032AB14 4B FF FD 15 */ bl __ct__11J3DAnmColorFv -/* 8032AB18 3C 60 80 3D */ lis r3, __vt__14J3DAnmColorKey@ha /* 0x803CED70@ha */ -/* 8032AB1C 38 03 ED 70 */ addi r0, r3, __vt__14J3DAnmColorKey@l /* 0x803CED70@l */ -/* 8032AB20 90 1F 00 00 */ stw r0, 0(r31) -/* 8032AB24 38 00 00 00 */ li r0, 0 -/* 8032AB28 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 8032AB2C 90 1F 00 30 */ stw r0, 0x30(r31) -/* 8032AB30 90 1F 00 34 */ stw r0, 0x34(r31) -/* 8032AB34 90 1F 00 38 */ stw r0, 0x38(r31) -/* 8032AB38 90 1F 00 3C */ stw r0, 0x3c(r31) -/* 8032AB3C 7F E3 FB 78 */ mr r3, r31 -/* 8032AB40 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8032AB44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032AB48 7C 08 03 A6 */ mtlr r0 -/* 8032AB4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032AB50 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__15J3DAnmColorFullFv.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__15J3DAnmColorFullFv.s deleted file mode 100644 index 2ed608ed44a..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__15J3DAnmColorFullFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8032A93C: -/* 8032A93C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032A940 7C 08 02 A6 */ mflr r0 -/* 8032A944 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032A948 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8032A94C 7C 7F 1B 78 */ mr r31, r3 -/* 8032A950 4B FF FE D9 */ bl __ct__11J3DAnmColorFv -/* 8032A954 3C 60 80 3D */ lis r3, __vt__15J3DAnmColorFull@ha /* 0x803CED84@ha */ -/* 8032A958 38 03 ED 84 */ addi r0, r3, __vt__15J3DAnmColorFull@l /* 0x803CED84@l */ -/* 8032A95C 90 1F 00 00 */ stw r0, 0(r31) -/* 8032A960 38 00 00 00 */ li r0, 0 -/* 8032A964 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 8032A968 90 1F 00 30 */ stw r0, 0x30(r31) -/* 8032A96C 90 1F 00 34 */ stw r0, 0x34(r31) -/* 8032A970 90 1F 00 38 */ stw r0, 0x38(r31) -/* 8032A974 90 1F 00 3C */ stw r0, 0x3c(r31) -/* 8032A978 7F E3 FB 78 */ mr r3, r31 -/* 8032A97C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8032A980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032A984 7C 08 03 A6 */ mtlr r0 -/* 8032A988 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032A98C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__17J3DAnmVtxColorKeyFv.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__17J3DAnmVtxColorKeyFv.s deleted file mode 100644 index 74ec3daf5a9..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__17J3DAnmVtxColorKeyFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_8032A4E0: -/* 8032A4E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032A4E4 7C 08 02 A6 */ mflr r0 -/* 8032A4E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032A4EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8032A4F0 7C 7F 1B 78 */ mr r31, r3 -/* 8032A4F4 4B FF FD A9 */ bl __ct__14J3DAnmVtxColorFv -/* 8032A4F8 3C 60 80 3D */ lis r3, __vt__17J3DAnmVtxColorKey@ha /* 0x803CEDAC@ha */ -/* 8032A4FC 38 03 ED AC */ addi r0, r3, __vt__17J3DAnmVtxColorKey@l /* 0x803CEDAC@l */ -/* 8032A500 90 1F 00 00 */ stw r0, 0(r31) -/* 8032A504 38 60 00 00 */ li r3, 0 -/* 8032A508 7C 64 1B 78 */ mr r4, r3 -/* 8032A50C 38 00 00 02 */ li r0, 2 -/* 8032A510 7C 09 03 A6 */ mtctr r0 -lbl_8032A514: -/* 8032A514 38 03 00 18 */ addi r0, r3, 0x18 -/* 8032A518 7C 9F 01 2E */ stwx r4, r31, r0 -/* 8032A51C 38 63 00 04 */ addi r3, r3, 4 -/* 8032A520 42 00 FF F4 */ bdnz lbl_8032A514 -/* 8032A524 7F E3 FB 78 */ mr r3, r31 -/* 8032A528 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8032A52C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032A530 7C 08 03 A6 */ mtlr r0 -/* 8032A534 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032A538 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__18J3DAnmVtxColorFullFv.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__18J3DAnmVtxColorFullFv.s deleted file mode 100644 index 587c37e3bf3..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__18J3DAnmVtxColorFullFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_8032A30C: -/* 8032A30C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032A310 7C 08 02 A6 */ mflr r0 -/* 8032A314 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032A318 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8032A31C 7C 7F 1B 78 */ mr r31, r3 -/* 8032A320 4B FF FF 7D */ bl __ct__14J3DAnmVtxColorFv -/* 8032A324 3C 60 80 3D */ lis r3, __vt__18J3DAnmVtxColorFull@ha /* 0x803CEDC0@ha */ -/* 8032A328 38 03 ED C0 */ addi r0, r3, __vt__18J3DAnmVtxColorFull@l /* 0x803CEDC0@l */ -/* 8032A32C 90 1F 00 00 */ stw r0, 0(r31) -/* 8032A330 38 60 00 00 */ li r3, 0 -/* 8032A334 7C 64 1B 78 */ mr r4, r3 -/* 8032A338 38 00 00 02 */ li r0, 2 -/* 8032A33C 7C 09 03 A6 */ mtctr r0 -lbl_8032A340: -/* 8032A340 38 03 00 18 */ addi r0, r3, 0x18 -/* 8032A344 7C 9F 01 2E */ stwx r4, r31, r0 -/* 8032A348 38 63 00 04 */ addi r3, r3, 4 -/* 8032A34C 42 00 FF F4 */ bdnz lbl_8032A340 -/* 8032A350 7F E3 FB 78 */ mr r3, r31 -/* 8032A354 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8032A358 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032A35C 7C 08 03 A6 */ mtlr r0 -/* 8032A360 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032A364 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData.s deleted file mode 100644 index 01712c66083..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8032B87C: -/* 8032B87C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032B880 7C 08 02 A6 */ mflr r0 -/* 8032B884 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032B888 38 84 00 58 */ addi r4, r4, 0x58 -/* 8032B88C 4B FF FE F5 */ bl searchUpdateMaterialID__15J3DAnmTevRegKeyFP16J3DMaterialTable -/* 8032B890 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032B894 7C 08 03 A6 */ mtlr r0 -/* 8032B898 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032B89C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData.s deleted file mode 100644 index ee0095583e8..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8032B09C: -/* 8032B09C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032B0A0 7C 08 02 A6 */ mflr r0 -/* 8032B0A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032B0A8 38 84 00 58 */ addi r4, r4, 0x58 -/* 8032B0AC 4B FF FF 59 */ bl searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable -/* 8032B0B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032B0B4 7C 08 03 A6 */ mtlr r0 -/* 8032B0B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032B0BC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable.s deleted file mode 100644 index 65e283bea36..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_8032B004: -/* 8032B004 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8032B008 7C 08 02 A6 */ mflr r0 -/* 8032B00C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8032B010 39 61 00 20 */ addi r11, r1, 0x20 -/* 8032B014 48 03 71 C5 */ bl _savegpr_28 -/* 8032B018 7C 7C 1B 78 */ mr r28, r3 -/* 8032B01C 7C 9D 23 78 */ mr r29, r4 -/* 8032B020 3B C0 00 00 */ li r30, 0 -/* 8032B024 48 00 00 50 */ b lbl_8032B074 -lbl_8032B028: -/* 8032B028 83 FD 00 0C */ lwz r31, 0xc(r29) -/* 8032B02C 38 7C 00 1C */ addi r3, r28, 0x1c -/* 8032B030 7F C4 F3 78 */ mr r4, r30 -/* 8032B034 4B FB 3A C5 */ bl getName__10JUTNameTabCFUs -/* 8032B038 7C 64 1B 78 */ mr r4, r3 -/* 8032B03C 7F E3 FB 78 */ mr r3, r31 -/* 8032B040 4B FB 3A 19 */ bl getIndex__10JUTNameTabCFPCc -/* 8032B044 2C 03 FF FF */ cmpwi r3, -1 -/* 8032B048 41 82 00 14 */ beq lbl_8032B05C -/* 8032B04C 80 9C 00 18 */ lwz r4, 0x18(r28) -/* 8032B050 57 C0 0B FC */ rlwinm r0, r30, 1, 0xf, 0x1e -/* 8032B054 7C 64 03 2E */ sthx r3, r4, r0 -/* 8032B058 48 00 00 18 */ b lbl_8032B070 -lbl_8032B05C: -/* 8032B05C 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 8032B060 38 83 FF FF */ addi r4, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 8032B064 80 7C 00 18 */ lwz r3, 0x18(r28) -/* 8032B068 57 C0 0B FC */ rlwinm r0, r30, 1, 0xf, 0x1e -/* 8032B06C 7C 83 03 2E */ sthx r4, r3, r0 -lbl_8032B070: -/* 8032B070 3B DE 00 01 */ addi r30, r30, 1 -lbl_8032B074: -/* 8032B074 57 C3 04 3E */ clrlwi r3, r30, 0x10 -/* 8032B078 A0 1C 00 16 */ lhz r0, 0x16(r28) -/* 8032B07C 7C 03 00 40 */ cmplw r3, r0 -/* 8032B080 41 80 FF A8 */ blt lbl_8032B028 -/* 8032B084 39 61 00 20 */ addi r11, r1, 0x20 -/* 8032B088 48 03 71 9D */ bl _restgpr_28 -/* 8032B08C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8032B090 7C 08 03 A6 */ mtlr r0 -/* 8032B094 38 21 00 20 */ addi r1, r1, 0x20 -/* 8032B098 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData.s deleted file mode 100644 index 8472ed90ada..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8032B1D4: -/* 8032B1D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8032B1D8 7C 08 02 A6 */ mflr r0 -/* 8032B1DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032B1E0 38 84 00 58 */ addi r4, r4, 0x58 -/* 8032B1E4 4B FF FE DD */ bl searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable -/* 8032B1E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8032B1EC 7C 08 03 A6 */ mtlr r0 -/* 8032B1F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032B1F4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable.s b/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable.s deleted file mode 100644 index f48b3bef5c8..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable.s +++ /dev/null @@ -1,78 +0,0 @@ -lbl_8032B0C0: -/* 8032B0C0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8032B0C4 7C 08 02 A6 */ mflr r0 -/* 8032B0C8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8032B0CC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8032B0D0 48 03 71 09 */ bl _savegpr_28 -/* 8032B0D4 7C 7E 1B 78 */ mr r30, r3 -/* 8032B0D8 7C 9F 23 78 */ mr r31, r4 -/* 8032B0DC 3B 80 00 00 */ li r28, 0 -/* 8032B0E0 48 00 00 50 */ b lbl_8032B130 -lbl_8032B0E4: -/* 8032B0E4 83 BF 00 0C */ lwz r29, 0xc(r31) -/* 8032B0E8 38 7E 00 30 */ addi r3, r30, 0x30 -/* 8032B0EC 7F 84 E3 78 */ mr r4, r28 -/* 8032B0F0 4B FB 3A 09 */ bl getName__10JUTNameTabCFUs -/* 8032B0F4 7C 64 1B 78 */ mr r4, r3 -/* 8032B0F8 7F A3 EB 78 */ mr r3, r29 -/* 8032B0FC 4B FB 39 5D */ bl getIndex__10JUTNameTabCFPCc -/* 8032B100 2C 03 FF FF */ cmpwi r3, -1 -/* 8032B104 41 82 00 14 */ beq lbl_8032B118 -/* 8032B108 80 9E 00 2C */ lwz r4, 0x2c(r30) -/* 8032B10C 57 80 0B FC */ rlwinm r0, r28, 1, 0xf, 0x1e -/* 8032B110 7C 64 03 2E */ sthx r3, r4, r0 -/* 8032B114 48 00 00 18 */ b lbl_8032B12C -lbl_8032B118: -/* 8032B118 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 8032B11C 38 83 FF FF */ addi r4, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 8032B120 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 8032B124 57 80 0B FC */ rlwinm r0, r28, 1, 0xf, 0x1e -/* 8032B128 7C 83 03 2E */ sthx r4, r3, r0 -lbl_8032B12C: -/* 8032B12C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_8032B130: -/* 8032B130 57 84 04 3E */ clrlwi r4, r28, 0x10 -/* 8032B134 A0 7E 00 14 */ lhz r3, 0x14(r30) -/* 8032B138 38 00 00 03 */ li r0, 3 -/* 8032B13C 7C 03 03 D6 */ divw r0, r3, r0 -/* 8032B140 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8032B144 7C 04 00 40 */ cmplw r4, r0 -/* 8032B148 41 80 FF 9C */ blt lbl_8032B0E4 -/* 8032B14C 3B 80 00 00 */ li r28, 0 -/* 8032B150 48 00 00 50 */ b lbl_8032B1A0 -lbl_8032B154: -/* 8032B154 83 BF 00 0C */ lwz r29, 0xc(r31) -/* 8032B158 38 7E 00 64 */ addi r3, r30, 0x64 -/* 8032B15C 7F 84 E3 78 */ mr r4, r28 -/* 8032B160 4B FB 39 99 */ bl getName__10JUTNameTabCFUs -/* 8032B164 7C 64 1B 78 */ mr r4, r3 -/* 8032B168 7F A3 EB 78 */ mr r3, r29 -/* 8032B16C 4B FB 38 ED */ bl getIndex__10JUTNameTabCFPCc -/* 8032B170 2C 03 FF FF */ cmpwi r3, -1 -/* 8032B174 41 82 00 14 */ beq lbl_8032B188 -/* 8032B178 80 9E 00 60 */ lwz r4, 0x60(r30) -/* 8032B17C 57 80 0B FC */ rlwinm r0, r28, 1, 0xf, 0x1e -/* 8032B180 7C 64 03 2E */ sthx r3, r4, r0 -/* 8032B184 48 00 00 18 */ b lbl_8032B19C -lbl_8032B188: -/* 8032B188 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 8032B18C 38 83 FF FF */ addi r4, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 8032B190 80 7E 00 60 */ lwz r3, 0x60(r30) -/* 8032B194 57 80 0B FC */ rlwinm r0, r28, 1, 0xf, 0x1e -/* 8032B198 7C 83 03 2E */ sthx r4, r3, r0 -lbl_8032B19C: -/* 8032B19C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_8032B1A0: -/* 8032B1A0 57 84 04 3E */ clrlwi r4, r28, 0x10 -/* 8032B1A4 A0 7E 00 4A */ lhz r3, 0x4a(r30) -/* 8032B1A8 38 00 00 03 */ li r0, 3 -/* 8032B1AC 7C 03 03 D6 */ divw r0, r3, r0 -/* 8032B1B0 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8032B1B4 7C 04 00 40 */ cmplw r4, r0 -/* 8032B1B8 41 80 FF 9C */ blt lbl_8032B154 -/* 8032B1BC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8032B1C0 48 03 70 65 */ bl _restgpr_28 -/* 8032B1C4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8032B1C8 7C 08 03 A6 */ mtlr r0 -/* 8032B1CC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8032B1D0 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h index a9835b58580..5fe848fe8ac 100644 --- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h +++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h @@ -394,7 +394,7 @@ private: /* 0x54 */ int field_0x54; /* 0x58 */ int field_0x58; /* 0x5C */ u8 field_0x5c[4]; - /* 0x60 */ u16 field_0x60[2]; + /* 0x60 */ u16* field_0x60; /* 0x64 */ JUTNameTab field_0x64; /* 0x74 */ u8 field_0x74[4]; /* 0x78 */ u32 mTexMtxCalcType; @@ -415,7 +415,7 @@ private: /* 0x10 */ void* mAnmTable; /* 0x14 */ u16 field_0x14; /* 0x16 */ u16 mUpdateMaterialNum; - /* 0x18 */ void* field_0x18; + /* 0x18 */ u16* field_0x18; /* 0x1C */ JUTNameTab field_0x1c; }; // Size: 0x2C @@ -448,9 +448,9 @@ private: /* 0x1C */ u16 field_0x1c; /* 0x1E */ u16 field_0x1e; /* 0x20 */ u16* mCRegUpdateMaterialID; - /* 0x24 */ u8 field_0x24[0x34 - 0x24]; + /* 0x24 */ JUTNameTab field_0x24; /* 0x34 */ u16* mKRegUpdateMaterialID; - /* 0x38 */ u8 field_0x38[0x48 - 0x38]; + /* 0x38 */ JUTNameTab field_0x38; /* 0x48 */ void* field_0x48; /* 0x4C */ void* field_0x4c; /* 0x50 */ int field_0x50; diff --git a/libs/JSystem/J3DGraphAnimator/J3DAnimation.cpp b/libs/JSystem/J3DGraphAnimator/J3DAnimation.cpp index 06d359ec414..d9a14fcc3b0 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DAnimation.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DAnimation.cpp @@ -270,6 +270,77 @@ asm int J3DFrameCtrl::checkPass(f32 pass_frame) { #endif /* 803289CC-80328E40 32330C 0474+00 0/0 3/3 0/0 .text update__12J3DFrameCtrlFv */ +// matches with literals +#ifdef NONMATCHING +void J3DFrameCtrl::update() { + mState = 0; + mFrame += mRate; + switch (mAttribute) { + case 0: + if (mFrame < mStart) { + mFrame = mStart; + mRate = 0.0f; + mState |= 1; + } + if (mFrame >= mEnd) { + mFrame = mEnd - 0.001f; + mRate = 0.0f; + mState |= 1; + } + break; + case 1: + if (mFrame < mStart) { + mFrame = mStart; + mRate = 0.0f; + mState |= 1; + } + if (mFrame >= mEnd) { + mFrame = mStart; + mRate = 0.0f; + mState |= 1; + } + break; + case 2: + while (mFrame < mStart) { + mState |= 2; + if (mLoop - mStart <= 0.0f) { + break; + } + mFrame += mLoop - mStart; + } + while (mFrame >= mEnd) { + mState |= 2; + if (mEnd - mLoop <= 0.0f) { + break; + } + mFrame -= mEnd - mLoop; + } + break; + case 3: + if (mFrame >= mEnd) { + mFrame = mEnd - (mFrame - mEnd); + mRate = -mRate; + } + if (mFrame < mStart) { + mFrame = mStart - (mFrame - mStart); + mRate = 0.0f; + mState |= 1; + } + break; + case 4: + if (mFrame >= mEnd - 1.0f) { + mFrame = (mEnd - 1.0f) - (mFrame - (mEnd - 1.0f)); + mRate = -mRate; + } + if (mFrame < mStart) { + mFrame = mStart - (mFrame - mStart); + mRate = -mRate; + mState |= 2; + } + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -278,6 +349,7 @@ asm void J3DFrameCtrl::update() { #include "asm/JSystem/J3DGraphAnimator/J3DAnimation/update__12J3DFrameCtrlFv.s" } #pragma pop +#endif /* 80328E40-80328E90 323780 0050+00 0/0 3/3 0/0 .text __ct__15J3DAnmTransformFsPfPsPf */ // matches with literals @@ -456,6 +528,29 @@ SECTION_DATA extern void* __vt__19J3DAnmTextureSRTKey[4] = { }; /* 80329E5C-80329F14 32479C 00B8+00 0/0 2/2 0/0 .text __ct__19J3DAnmTextureSRTKeyFv */ +// matches with literals +#ifdef NONMATCHING +J3DAnmTextureSRTKey::J3DAnmTextureSRTKey() : J3DAnmBase(0) { + field_0xc = 0; + field_0x1a = 0; + field_0x18 = 0; + field_0x16 = 0; + field_0x14 = 0; + field_0x10 = 0; + field_0x24 = 0; + field_0x1c = 0; + field_0x20 = 0; + field_0x48 = 0; + field_0x46 = 0; + field_0x44 = 0; + field_0x4a = 0; + field_0x58 = 0; + field_0x54 = 0; + field_0x4c = 0; + field_0x50 = 0; + mTexMtxCalcType = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -464,6 +559,7 @@ asm J3DAnmTextureSRTKey::J3DAnmTextureSRTKey() { #include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__19J3DAnmTextureSRTKeyFv.s" } #pragma pop +#endif /* 80329F14-8032A184 324854 0270+00 0/0 1/1 0/0 .text * calcTransform__19J3DAnmTextureSRTKeyCFfUsP17J3DTextureSRTInfo */ @@ -500,6 +596,17 @@ asm f32 J3DAnmClusterKey::getWeight(u16 param_0) const { #pragma pop /* 8032A29C-8032A30C 324BDC 0070+00 2/2 0/0 0/0 .text __ct__14J3DAnmVtxColorFv */ +// matches with literals +#ifdef NONMATCHING +J3DAnmVtxColor::J3DAnmVtxColor() : J3DAnmBase(0) { + for (int i = 0; i < 2; i++) { + mAnmTableNum[i] = 0; + } + for (int i = 0; i < 2; i++) { + mAnmVtxColorIndexData[i] = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -508,16 +615,14 @@ asm J3DAnmVtxColor::J3DAnmVtxColor() { #include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__14J3DAnmVtxColorFv.s" } #pragma pop +#endif /* 8032A30C-8032A368 324C4C 005C+00 0/0 1/1 0/0 .text __ct__18J3DAnmVtxColorFullFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DAnmVtxColorFull::J3DAnmVtxColorFull() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__18J3DAnmVtxColorFullFv.s" +J3DAnmVtxColorFull::J3DAnmVtxColorFull() { + for (int i = 0; i < 2; i++) { + field_0x18[i] = 0; + } } -#pragma pop /* 8032A368-8032A4E0 324CA8 0178+00 1/0 0/0 0/0 .text * getColor__18J3DAnmVtxColorFullCFUcUsP8_GXColor */ @@ -531,14 +636,11 @@ asm void J3DAnmVtxColorFull::getColor(u8 param_0, u16 param_1, _GXColor* param_2 #pragma pop /* 8032A4E0-8032A53C 324E20 005C+00 0/0 1/1 0/0 .text __ct__17J3DAnmVtxColorKeyFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DAnmVtxColorKey::J3DAnmVtxColorKey() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__17J3DAnmVtxColorKeyFv.s" +J3DAnmVtxColorKey::J3DAnmVtxColorKey() { + for (int i = 0; i < 2; i++) { + field_0x18[i] = 0; + } } -#pragma pop /* ############################################################################################## */ /* 80456458-8045645C 004A58 0004+00 3/3 0/0 0/0 .sdata2 @1499 */ @@ -556,6 +658,10 @@ asm void J3DAnmVtxColorKey::getColor(u8 param_0, u16 param_1, _GXColor* param_2) #pragma pop /* 8032A828-8032A8A4 325168 007C+00 2/2 0/0 0/0 .text __ct__11J3DAnmColorFv */ +// matches with literals +#ifdef NONMATCHING +J3DAnmColor::J3DAnmColor() : J3DAnmBase(0), field_0xc(0), field_0xe(0), field_0x10(0), field_0x12(0), mUpdateMaterialNum(0), mUpdateMaterialID(NULL) {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -564,6 +670,7 @@ asm J3DAnmColor::J3DAnmColor() { #include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__11J3DAnmColorFv.s" } #pragma pop +#endif /* 8032A8A4-8032A93C 3251E4 0098+00 0/0 1/1 0/0 .text * searchUpdateMaterialID__11J3DAnmColorFP16J3DMaterialTable */ @@ -577,14 +684,13 @@ asm void J3DAnmColor::searchUpdateMaterialID(J3DMaterialTable* param_0) { #pragma pop /* 8032A93C-8032A990 32527C 0054+00 0/0 1/1 0/0 .text __ct__15J3DAnmColorFullFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DAnmColorFull::J3DAnmColorFull() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__15J3DAnmColorFullFv.s" +J3DAnmColorFull::J3DAnmColorFull() { + field_0x2c = 0; + field_0x30 = 0; + field_0x34 = 0; + field_0x38 = 0; + field_0x3c = 0; } -#pragma pop /* 8032A990-8032AB00 3252D0 0170+00 1/0 0/0 0/0 .text getColor__15J3DAnmColorFullCFUsP8_GXColor */ #pragma push @@ -597,14 +703,13 @@ asm void J3DAnmColorFull::getColor(u16 param_0, _GXColor* param_1) const { #pragma pop /* 8032AB00-8032AB54 325440 0054+00 0/0 1/1 0/0 .text __ct__14J3DAnmColorKeyFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DAnmColorKey::J3DAnmColorKey() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__14J3DAnmColorKeyFv.s" +J3DAnmColorKey::J3DAnmColorKey() { + field_0x2c = 0; + field_0x30 = 0; + field_0x34 = 0; + field_0x38 = 0; + field_0x3c = 0; } -#pragma pop /* 8032AB54-8032AE18 325494 02C4+00 1/0 0/0 0/0 .text getColor__14J3DAnmColorKeyCFUsP8_GXColor */ #pragma push @@ -617,6 +722,31 @@ asm void J3DAnmColorKey::getColor(u16 param_0, _GXColor* param_1) const { #pragma pop /* 8032AE18-8032AED8 325758 00C0+00 0/0 1/1 0/0 .text __ct__15J3DAnmTevRegKeyFv */ +// matches with literals +#ifdef NONMATCHING +J3DAnmTevRegKey::J3DAnmTevRegKey() : J3DAnmBase(0) { + mKRegUpdateMaterialNum = 0; + mCRegUpdateMaterialNum = 0; + field_0x16 = 0; + field_0x14 = 0; + field_0x12 = 0; + field_0x10 = 0; + field_0x1e = 0; + field_0x1c = 0; + field_0x1a = 0; + field_0x18 = 0; + mKRegUpdateMaterialID = 0; + mCRegUpdateMaterialID = 0; + field_0x5c = 0; + field_0x58 = 0; + field_0x54 = 0; + field_0x50 = 0; + field_0x6c = 0; + field_0x68 = 0; + field_0x64 = 0; + field_0x60 = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -625,8 +755,13 @@ asm J3DAnmTevRegKey::J3DAnmTevRegKey() { #include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__15J3DAnmTevRegKeyFv.s" } #pragma pop +#endif /* 8032AED8-8032AF50 325818 0078+00 0/0 2/2 0/0 .text __ct__16J3DAnmTexPatternFv */ +// matches with literals +#if NONMATCHING +J3DAnmTexPattern::J3DAnmTexPattern() : J3DAnmBase(0), field_0xc(NULL), mAnmTable(NULL), field_0x14(0), mUpdateMaterialNum(0), field_0x18(NULL) {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -635,6 +770,7 @@ asm J3DAnmTexPattern::J3DAnmTexPattern() { #include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__ct__16J3DAnmTexPatternFv.s" } #pragma pop +#endif /* 8032AF50-8032B004 325890 00B4+00 0/0 1/1 72/72 .text getTexNo__16J3DAnmTexPatternCFUsPUs */ #pragma push @@ -648,47 +784,49 @@ asm void J3DAnmTexPattern::getTexNo(u16 param_0, u16* param_1) const { /* 8032B004-8032B09C 325944 0098+00 1/1 1/1 0/0 .text * searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DAnmTexPattern::searchUpdateMaterialID(J3DMaterialTable* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP16J3DMaterialTable.s" +void J3DAnmTexPattern::searchUpdateMaterialID(J3DMaterialTable* param_0) { + for (u16 i = 0; i < mUpdateMaterialNum; i++) { + s32 r3 = param_0->getMaterialName()->getIndex(field_0x1c.getName(i)); + if (r3 != -1) { + field_0x18[i] = r3; + } else { + field_0x18[i] = -1; + } + } } -#pragma pop /* 8032B09C-8032B0C0 3259DC 0024+00 0/0 4/4 1/1 .text * searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DAnmTexPattern::searchUpdateMaterialID(J3DModelData* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__16J3DAnmTexPatternFP12J3DModelData.s" +void J3DAnmTexPattern::searchUpdateMaterialID(J3DModelData* param_0) { + searchUpdateMaterialID(¶m_0->getMaterialTable()); } -#pragma pop /* 8032B0C0-8032B1D4 325A00 0114+00 1/1 1/1 0/0 .text * searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP16J3DMaterialTable.s" +void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DMaterialTable* param_0) { + for (u16 i = 0; i < u16(field_0x14 / 3); i++) { + s32 r3 = param_0->getMaterialName()->getIndex(field_0x30.getName(i)); + if (r3 != -1) { + mUpdateMaterialID[i] = r3; + } else { + mUpdateMaterialID[i] = -1; + } + } + for (u16 i = 0; i < u16(field_0x4a / 3); i++) { + s32 r3 = param_0->getMaterialName()->getIndex(field_0x64.getName(i)); + if (r3 != -1) { + field_0x60[i] = r3; + } else { + field_0x60[i] = -1; + } + } } -#pragma pop /* 8032B1D4-8032B1F8 325B14 0024+00 0/0 8/8 6/6 .text * searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DModelData* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData.s" +void J3DAnmTextureSRTKey::searchUpdateMaterialID(J3DModelData* param_0) { + searchUpdateMaterialID(¶m_0->getMaterialTable()); } -#pragma pop /* ############################################################################################## */ /* 8045645C-80456460 004A5C 0004+00 1/1 0/0 0/0 .sdata2 @1817 */ @@ -736,14 +874,9 @@ asm void J3DAnmTevRegKey::searchUpdateMaterialID(J3DMaterialTable* param_0) { /* 8032B87C-8032B8A0 3261BC 0024+00 0/0 9/9 4/4 .text * searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DAnmTevRegKey::searchUpdateMaterialID(J3DModelData* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData.s" +void J3DAnmTevRegKey::searchUpdateMaterialID(J3DModelData* param_0) { + searchUpdateMaterialID(¶m_0->getMaterialTable()); } -#pragma pop /* 8032B8A0-8032BAD4 3261E0 0234+00 6/6 0/0 0/0 .text * J3DGetKeyFrameInterpolation__FfP18J3DAnmKeyTableBasePs */