Various Matches and Improvements (#1889)

This commit is contained in:
hatal175 2023-08-20 18:11:10 +03:00 committed by GitHub
parent 42c47c82a7
commit cf0b47a5ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 145 additions and 566 deletions

View File

@ -1,69 +0,0 @@
lbl_802A108C:
/* 802A108C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A1090 7C 08 02 A6 */ mflr r0
/* 802A1094 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A1098 39 61 00 20 */ addi r11, r1, 0x20
/* 802A109C 48 0C 11 41 */ bl _savegpr_29
/* 802A10A0 7C 7D 1B 78 */ mr r29, r3
/* 802A10A4 88 03 02 BD */ lbz r0, 0x2bd(r3)
/* 802A10A8 28 00 00 02 */ cmplwi r0, 2
/* 802A10AC 41 82 00 1C */ beq lbl_802A10C8
/* 802A10B0 88 1D 02 BD */ lbz r0, 0x2bd(r29)
/* 802A10B4 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 802A10B8 40 82 00 1C */ bne lbl_802A10D4
/* 802A10BC 88 1D 00 1E */ lbz r0, 0x1e(r29)
/* 802A10C0 28 00 00 02 */ cmplwi r0, 2
/* 802A10C4 40 82 00 10 */ bne lbl_802A10D4
lbl_802A10C8:
/* 802A10C8 7F A3 EB 78 */ mr r3, r29
/* 802A10CC 48 00 00 B5 */ bl die___6JAISeqFv
/* 802A10D0 48 00 00 98 */ b lbl_802A1168
lbl_802A10D4:
/* 802A10D4 7F A3 EB 78 */ mr r3, r29
/* 802A10D8 48 00 15 E1 */ bl calc_JAISound___8JAISoundFv
/* 802A10DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A10E0 41 82 00 88 */ beq lbl_802A1168
/* 802A10E4 C0 3D 03 70 */ lfs f1, 0x370(r29)
/* 802A10E8 80 7D 03 7C */ lwz r3, 0x37c(r29)
/* 802A10EC 28 03 00 01 */ cmplwi r3, 1
/* 802A10F0 40 81 00 18 */ ble lbl_802A1108
/* 802A10F4 38 03 FF FF */ addi r0, r3, -1
/* 802A10F8 90 1D 03 7C */ stw r0, 0x37c(r29)
/* 802A10FC C0 1D 03 74 */ lfs f0, 0x374(r29)
/* 802A1100 EC 21 00 2A */ fadds f1, f1, f0
/* 802A1104 48 00 00 14 */ b lbl_802A1118
lbl_802A1108:
/* 802A1108 40 82 00 10 */ bne lbl_802A1118
/* 802A110C 38 00 00 00 */ li r0, 0
/* 802A1110 90 1D 03 7C */ stw r0, 0x37c(r29)
/* 802A1114 C0 3D 03 78 */ lfs f1, 0x378(r29)
lbl_802A1118:
/* 802A1118 D0 3D 03 70 */ stfs f1, 0x370(r29)
/* 802A111C 3B C0 00 00 */ li r30, 0
/* 802A1120 3B E0 00 00 */ li r31, 0
lbl_802A1124:
/* 802A1124 38 1F 02 F0 */ addi r0, r31, 0x2f0
/* 802A1128 7C 7D 00 2E */ lwzx r3, r29, r0
/* 802A112C 28 03 00 00 */ cmplwi r3, 0
/* 802A1130 41 82 00 08 */ beq lbl_802A1138
/* 802A1134 48 00 1A 49 */ bl calc__13JAISoundChildFv
lbl_802A1138:
/* 802A1138 3B DE 00 01 */ addi r30, r30, 1
/* 802A113C 2C 1E 00 20 */ cmpwi r30, 0x20
/* 802A1140 3B FF 00 04 */ addi r31, r31, 4
/* 802A1144 41 80 FF E0 */ blt lbl_802A1124
/* 802A1148 80 7D 03 A8 */ lwz r3, 0x3a8(r29)
/* 802A114C 28 03 00 00 */ cmplwi r3, 0
/* 802A1150 41 82 00 18 */ beq lbl_802A1168
/* 802A1154 7F A4 EB 78 */ mr r4, r29
/* 802A1158 81 83 00 00 */ lwz r12, 0(r3)
/* 802A115C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802A1160 7D 89 03 A6 */ mtctr r12
/* 802A1164 4E 80 04 21 */ bctrl
lbl_802A1168:
/* 802A1168 39 61 00 20 */ addi r11, r1, 0x20
/* 802A116C 48 0C 10 BD */ bl _restgpr_29
/* 802A1170 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A1174 7C 08 03 A6 */ mtlr r0
/* 802A1178 38 21 00 20 */ addi r1, r1, 0x20
/* 802A117C 4E 80 00 20 */ blr

View File

@ -1,79 +0,0 @@
lbl_80079CC4:
/* 80079CC4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80079CC8 7C 08 02 A6 */ mflr r0
/* 80079CCC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80079CD0 39 61 00 20 */ addi r11, r1, 0x20
/* 80079CD4 48 2E 85 05 */ bl _savegpr_28
/* 80079CD8 7C 7D 1B 78 */ mr r29, r3
/* 80079CDC 7C 9E 23 78 */ mr r30, r4
/* 80079CE0 80 83 00 A0 */ lwz r4, 0xa0(r3)
/* 80079CE4 80 04 00 24 */ lwz r0, 0x24(r4)
/* 80079CE8 1F FE 00 34 */ mulli r31, r30, 0x34
/* 80079CEC 7C 80 FA 14 */ add r4, r0, r31
/* 80079CF0 A0 84 00 2E */ lhz r4, 0x2e(r4)
/* 80079CF4 28 04 FF FF */ cmplwi r4, 0xffff
/* 80079CF8 41 82 00 68 */ beq lbl_80079D60
/* 80079CFC 4B FF FE E1 */ bl MakeNodeTreeRp__4cBgWFi
/* 80079D00 80 9D 00 AC */ lwz r4, 0xac(r29)
/* 80079D04 80 7D 00 A0 */ lwz r3, 0xa0(r29)
/* 80079D08 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80079D0C 7C 60 FA 14 */ add r3, r0, r31
/* 80079D10 A0 03 00 2E */ lhz r0, 0x2e(r3)
/* 80079D14 1C 00 00 1C */ mulli r0, r0, 0x1c
/* 80079D18 7C 84 02 14 */ add r4, r4, r0
/* 80079D1C 80 1D 00 A8 */ lwz r0, 0xa8(r29)
/* 80079D20 57 DC 28 34 */ slwi r28, r30, 5
/* 80079D24 38 7C 00 04 */ addi r3, r28, 4
/* 80079D28 7C 60 1A 14 */ add r3, r0, r3
/* 80079D2C 48 1F 50 79 */ bl SetMin__8cM3dGAabFRC4cXyz
/* 80079D30 80 BD 00 AC */ lwz r5, 0xac(r29)
/* 80079D34 80 7D 00 A0 */ lwz r3, 0xa0(r29)
/* 80079D38 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80079D3C 7C 60 FA 14 */ add r3, r0, r31
/* 80079D40 A0 03 00 2E */ lhz r0, 0x2e(r3)
/* 80079D44 1C 60 00 1C */ mulli r3, r0, 0x1c
/* 80079D48 38 83 00 0C */ addi r4, r3, 0xc
/* 80079D4C 7C 85 22 14 */ add r4, r5, r4
/* 80079D50 80 1D 00 A8 */ lwz r0, 0xa8(r29)
/* 80079D54 38 7C 00 04 */ addi r3, r28, 4
/* 80079D58 7C 60 1A 14 */ add r3, r0, r3
/* 80079D5C 48 1F 50 89 */ bl SetMax__8cM3dGAabFRC4cXyz
lbl_80079D60:
/* 80079D60 80 7D 00 A0 */ lwz r3, 0xa0(r29)
/* 80079D64 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80079D68 7C 60 FA 14 */ add r3, r0, r31
/* 80079D6C A3 E3 00 28 */ lhz r31, 0x28(r3)
/* 80079D70 57 DE 28 34 */ slwi r30, r30, 5
lbl_80079D74:
/* 80079D74 3C 1F 00 00 */ addis r0, r31, 0
/* 80079D78 28 00 FF FF */ cmplwi r0, 0xffff
/* 80079D7C 41 82 00 5C */ beq lbl_80079DD8
/* 80079D80 7F A3 EB 78 */ mr r3, r29
/* 80079D84 7F E4 FB 78 */ mr r4, r31
/* 80079D88 4B FF FF 3D */ bl MakeNodeTreeGrpRp__4cBgWFi
/* 80079D8C 80 1D 00 A8 */ lwz r0, 0xa8(r29)
/* 80079D90 57 FC 28 34 */ slwi r28, r31, 5
/* 80079D94 38 9C 00 04 */ addi r4, r28, 4
/* 80079D98 7C 80 22 14 */ add r4, r0, r4
/* 80079D9C 38 7E 00 04 */ addi r3, r30, 4
/* 80079DA0 7C 60 1A 14 */ add r3, r0, r3
/* 80079DA4 48 1F 50 01 */ bl SetMin__8cM3dGAabFRC4cXyz
/* 80079DA8 80 1D 00 A8 */ lwz r0, 0xa8(r29)
/* 80079DAC 38 9C 00 10 */ addi r4, r28, 0x10
/* 80079DB0 7C 80 22 14 */ add r4, r0, r4
/* 80079DB4 38 7E 00 04 */ addi r3, r30, 4
/* 80079DB8 7C 60 1A 14 */ add r3, r0, r3
/* 80079DBC 48 1F 50 29 */ bl SetMax__8cM3dGAabFRC4cXyz
/* 80079DC0 80 7D 00 A0 */ lwz r3, 0xa0(r29)
/* 80079DC4 80 83 00 24 */ lwz r4, 0x24(r3)
/* 80079DC8 1C 7F 00 34 */ mulli r3, r31, 0x34
/* 80079DCC 38 03 00 26 */ addi r0, r3, 0x26
/* 80079DD0 7F E4 02 2E */ lhzx r31, r4, r0
/* 80079DD4 4B FF FF A0 */ b lbl_80079D74
lbl_80079DD8:
/* 80079DD8 39 61 00 20 */ addi r11, r1, 0x20
/* 80079DDC 48 2E 84 49 */ bl _restgpr_28
/* 80079DE0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80079DE4 7C 08 03 A6 */ mtlr r0
/* 80079DE8 38 21 00 20 */ addi r1, r1, 0x20
/* 80079DEC 4E 80 00 20 */ blr

View File

@ -1,72 +0,0 @@
lbl_80079DF0:
/* 80079DF0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80079DF4 7C 08 02 A6 */ mflr r0
/* 80079DF8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80079DFC 39 61 00 20 */ addi r11, r1, 0x20
/* 80079E00 48 2E 83 DD */ bl _savegpr_29
/* 80079E04 7C 7F 1B 78 */ mr r31, r3
/* 80079E08 80 03 00 9C */ lwz r0, 0x9c(r3)
/* 80079E0C 28 00 00 00 */ cmplwi r0, 0
/* 80079E10 40 82 00 4C */ bne lbl_80079E5C
/* 80079E14 38 C0 00 00 */ li r6, 0
/* 80079E18 38 60 00 00 */ li r3, 0
/* 80079E1C 80 BF 00 A0 */ lwz r5, 0xa0(r31)
/* 80079E20 80 05 00 20 */ lwz r0, 0x20(r5)
/* 80079E24 7C 09 03 A6 */ mtctr r0
/* 80079E28 2C 00 00 00 */ cmpwi r0, 0
/* 80079E2C 40 81 00 A8 */ ble lbl_80079ED4
lbl_80079E30:
/* 80079E30 80 85 00 24 */ lwz r4, 0x24(r5)
/* 80079E34 38 03 00 24 */ addi r0, r3, 0x24
/* 80079E38 7C 04 02 2E */ lhzx r0, r4, r0
/* 80079E3C 28 00 FF FF */ cmplwi r0, 0xffff
/* 80079E40 40 82 00 0C */ bne lbl_80079E4C
/* 80079E44 B0 DF 00 92 */ sth r6, 0x92(r31)
/* 80079E48 48 00 00 8C */ b lbl_80079ED4
lbl_80079E4C:
/* 80079E4C 38 C6 00 01 */ addi r6, r6, 1
/* 80079E50 38 63 00 34 */ addi r3, r3, 0x34
/* 80079E54 42 00 FF DC */ bdnz lbl_80079E30
/* 80079E58 48 00 00 7C */ b lbl_80079ED4
lbl_80079E5C:
/* 80079E5C 3B A0 00 00 */ li r29, 0
/* 80079E60 3B C0 00 00 */ li r30, 0
/* 80079E64 48 00 00 1C */ b lbl_80079E80
lbl_80079E68:
/* 80079E68 80 1F 00 A8 */ lwz r0, 0xa8(r31)
/* 80079E6C 38 7E 00 04 */ addi r3, r30, 4
/* 80079E70 7C 60 1A 14 */ add r3, r0, r3
/* 80079E74 48 1F 4E 85 */ bl ClearForMinMax__8cM3dGAabFv
/* 80079E78 3B BD 00 01 */ addi r29, r29, 1
/* 80079E7C 3B DE 00 20 */ addi r30, r30, 0x20
lbl_80079E80:
/* 80079E80 80 DF 00 A0 */ lwz r6, 0xa0(r31)
/* 80079E84 80 06 00 20 */ lwz r0, 0x20(r6)
/* 80079E88 7C 1D 00 00 */ cmpw r29, r0
/* 80079E8C 41 80 FF DC */ blt lbl_80079E68
/* 80079E90 38 80 00 00 */ li r4, 0
/* 80079E94 38 60 00 00 */ li r3, 0
/* 80079E98 7C 09 03 A6 */ mtctr r0
/* 80079E9C 2C 00 00 00 */ cmpwi r0, 0
/* 80079EA0 40 81 00 34 */ ble lbl_80079ED4
lbl_80079EA4:
/* 80079EA4 80 A6 00 24 */ lwz r5, 0x24(r6)
/* 80079EA8 38 03 00 24 */ addi r0, r3, 0x24
/* 80079EAC 7C 05 02 2E */ lhzx r0, r5, r0
/* 80079EB0 28 00 FF FF */ cmplwi r0, 0xffff
/* 80079EB4 40 82 00 14 */ bne lbl_80079EC8
/* 80079EB8 B0 9F 00 92 */ sth r4, 0x92(r31)
/* 80079EBC 7F E3 FB 78 */ mr r3, r31
/* 80079EC0 4B FF FE 05 */ bl MakeNodeTreeGrpRp__4cBgWFi
/* 80079EC4 48 00 00 10 */ b lbl_80079ED4
lbl_80079EC8:
/* 80079EC8 38 84 00 01 */ addi r4, r4, 1
/* 80079ECC 38 63 00 34 */ addi r3, r3, 0x34
/* 80079ED0 42 00 FF D4 */ bdnz lbl_80079EA4
lbl_80079ED4:
/* 80079ED4 39 61 00 20 */ addi r11, r1, 0x20
/* 80079ED8 48 2E 83 51 */ bl _restgpr_29
/* 80079EDC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80079EE0 7C 08 03 A6 */ mtlr r0
/* 80079EE4 38 21 00 20 */ addi r1, r1, 0x20
/* 80079EE8 4E 80 00 20 */ blr

View File

@ -1,42 +0,0 @@
lbl_801ADE00:
/* 801ADE00 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801ADE04 7C 08 02 A6 */ mflr r0
/* 801ADE08 90 01 00 44 */ stw r0, 0x44(r1)
/* 801ADE0C 4B EA 96 D5 */ bl dKyw_wether_init__Fv
/* 801ADE10 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 801ADE14 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 801ADE18 38 63 4E 00 */ addi r3, r3, 0x4e00
/* 801ADE1C 3C 80 80 39 */ lis r4, d_d_kyeff__stringBase0@ha /* 0x80394F38@ha */
/* 801ADE20 38 84 4F 38 */ addi r4, r4, d_d_kyeff__stringBase0@l /* 0x80394F38@l */
/* 801ADE24 48 1B AB 71 */ bl strcmp
/* 801ADE28 2C 03 00 00 */ cmpwi r3, 0
/* 801ADE2C 40 82 00 60 */ bne lbl_801ADE8C
/* 801ADE30 48 19 48 CD */ bl OSGetTime
/* 801ADE34 38 A1 00 08 */ addi r5, r1, 8
/* 801ADE38 48 19 4B 3D */ bl OSTicksToCalendarTime
/* 801ADE3C C0 02 A4 5C */ lfs f0, lit_3805(r2)
/* 801ADE40 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 801ADE44 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
/* 801ADE48 D0 03 0E 48 */ stfs f0, 0xe48(r3)
/* 801ADE4C C0 02 A4 58 */ lfs f0, lit_3804(r2)
/* 801ADE50 D0 03 0E 4C */ stfs f0, 0xe4c(r3)
/* 801ADE54 D0 03 0E 50 */ stfs f0, 0xe50(r3)
/* 801ADE58 C0 02 A4 68 */ lfs f0, lit_3843(r2)
/* 801ADE5C D0 03 0E 58 */ stfs f0, 0xe58(r3)
/* 801ADE60 C0 42 A4 6C */ lfs f2, lit_3844(r2)
/* 801ADE64 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801ADE68 C8 22 A4 60 */ lfd f1, lit_3812(r2)
/* 801ADE6C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 801ADE70 90 01 00 34 */ stw r0, 0x34(r1)
/* 801ADE74 3C 00 43 30 */ lis r0, 0x4330
/* 801ADE78 90 01 00 30 */ stw r0, 0x30(r1)
/* 801ADE7C C8 01 00 30 */ lfd f0, 0x30(r1)
/* 801ADE80 EC 00 08 28 */ fsubs f0, f0, f1
/* 801ADE84 EC 02 00 32 */ fmuls f0, f2, f0
/* 801ADE88 D0 03 12 44 */ stfs f0, 0x1244(r3)
lbl_801ADE8C:
/* 801ADE8C 38 60 00 04 */ li r3, 4
/* 801ADE90 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801ADE94 7C 08 03 A6 */ mtlr r0
/* 801ADE98 38 21 00 40 */ addi r1, r1, 0x40
/* 801ADE9C 4E 80 00 20 */ blr

View File

@ -1,25 +0,0 @@
lbl_8009C8D8:
/* 8009C8D8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8009C8DC 7C 08 02 A6 */ mflr r0
/* 8009C8E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8009C8E4 7C 68 1B 78 */ mr r8, r3
/* 8009C8E8 7C 87 23 78 */ mr r7, r4
/* 8009C8EC 80 6D 8A 20 */ lwz r3, m_myObj__10dMdl_mng_c(r13)
/* 8009C8F0 28 03 00 00 */ cmplwi r3, 0
/* 8009C8F4 40 82 00 0C */ bne lbl_8009C900
/* 8009C8F8 38 60 00 00 */ li r3, 0
/* 8009C8FC 48 00 00 24 */ b lbl_8009C920
lbl_8009C900:
/* 8009C900 1C A5 04 04 */ mulli r5, r5, 0x404
/* 8009C904 3C 80 80 3F */ lis r4, mStatus__20dStage_roomControl_c@ha /* 0x803F6094@ha */
/* 8009C908 38 04 60 94 */ addi r0, r4, mStatus__20dStage_roomControl_c@l /* 0x803F6094@l */
/* 8009C90C 7C 80 2A 14 */ add r4, r0, r5
/* 8009C910 38 C4 00 6C */ addi r6, r4, 0x6c
/* 8009C914 7D 04 43 78 */ mr r4, r8
/* 8009C918 7C E5 3B 78 */ mr r5, r7
/* 8009C91C 4B FF FE 09 */ bl entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c
lbl_8009C920:
/* 8009C920 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8009C924 7C 08 03 A6 */ mtlr r0
/* 8009C928 38 21 00 10 */ addi r1, r1, 0x10
/* 8009C92C 4E 80 00 20 */ blr

View File

@ -1,28 +0,0 @@
lbl_80C5FD40:
/* 80C5FD40 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80C5FD44 7C 08 02 A6 */ mflr r0
/* 80C5FD48 90 01 00 14 */ stw r0, 0x14(r1)
/* 80C5FD4C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80C5FD50 7C 7F 1B 78 */ mr r31, r3
/* 80C5FD54 3C 60 80 C6 */ lis r3, d_a_obj_lv4PoGate__stringBase0@ha /* 0x80C60848@ha */
/* 80C5FD58 38 63 08 48 */ addi r3, r3, d_a_obj_lv4PoGate__stringBase0@l /* 0x80C60848@l */
/* 80C5FD5C 38 80 00 04 */ li r4, 4
/* 80C5FD60 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 80C5FD64 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80C5FD68 3C A5 00 02 */ addis r5, r5, 2
/* 80C5FD6C 38 C0 00 80 */ li r6, 0x80
/* 80C5FD70 38 A5 C2 F8 */ addi r5, r5, -15624
/* 80C5FD74 4B 3D C5 79 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
/* 80C5FD78 3C 80 00 08 */ lis r4, 8
/* 80C5FD7C 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */
/* 80C5FD80 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */
/* 80C5FD84 4B 3B 4E D1 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl
/* 80C5FD88 90 7F 05 A8 */ stw r3, 0x5a8(r31)
/* 80C5FD8C 80 7F 05 A8 */ lwz r3, 0x5a8(r31)
/* 80C5FD90 30 03 FF FF */ addic r0, r3, -1
/* 80C5FD94 7C 60 19 10 */ subfe r3, r0, r3
/* 80C5FD98 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80C5FD9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80C5FDA0 7C 08 03 A6 */ mtlr r0
/* 80C5FDA4 38 21 00 10 */ addi r1, r1, 0x10
/* 80C5FDA8 4E 80 00 20 */ blr

View File

@ -114,6 +114,10 @@ public:
memPool_->free(ptr, n);
}
static void newMemPool(int n) {
getMemPool()->newMemPool(n);
}
private:
static JASMemPool_MultiThreaded<T>* getMemPool() {
static JASMemPool_MultiThreaded<T> memPool_;

View File

@ -148,7 +148,7 @@ struct JASTrack {
/* 0x1F4 */ short field_0x1f4[8];
/* 0x204 */ short field_0x204[8];
/* 0x214 */ char field_0x214;
/* 0x215 */ u8 mStatus;
/* 0x215 */ volatile u8 mStatus;
/* 0x216 */ struct {
u8 flag0 : 1;
u8 flag1 : 1;

View File

@ -81,7 +81,7 @@ struct dzb_tree_data {
struct dzb_g_data {
/* 0x00 */ u8 field_0x0[0x24 - 0x0];
/* 0x24 */ u16 field_0x24;
/* 0x26 */ u8 field_0x26[0x28 - 0x26];
/* 0x26 */ u16 field_0x26;
/* 0x28 */ u16 field_0x28;
/* 0x2A */ u16 field_0x2a;
/* 0x2C */ u8 field_0x2c[0x2E - 0x2C];
@ -208,6 +208,7 @@ public:
bool ChkNoCalcVtx() { return field_0x88 & 2; }
bool ChkFlush() { return field_0x91 & 8; }
void SetLock() { field_0x88 |= 0x80; }
bool ChkRoofRegist() { return field_0x91 & 4;}
public:
/* 0x18 */ MtxP pm_base;

View File

@ -42,7 +42,7 @@ public:
/* 8009C6DC */ dMdl_c* search(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C724 */ dMdl_c* entry(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C8D8 */ dMdl_c* entry(J3DModelData*, u16, int);
/* 8009C8D8 */ static dMdl_c* entry(J3DModelData*, u16, int);
/* 8009C7AC */ static void create();
/* 8009C864 */ void remove();
/* 8009C8C0 */ static void reset();

View File

@ -5,6 +5,22 @@
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_hostIO.h"
class daLv4PoGate_HIO_c : public mDoHIO_entry_c {
public:
/* 80C5FBEC */ daLv4PoGate_HIO_c();
/* 80C60758 */ virtual ~daLv4PoGate_HIO_c() {};
/* 0x04 */ f32 mOpenSpeed;
/* 0x08 */ f32 mCloseStep1Speed;
/* 0x0C */ f32 mCloseStep2Speed;
/* 0x10 */ f32 mCloseStep1Amount;
/* 0x14 */ f32 mCloseStep2Amount;
/* 0x18 */ u8 mCloseStep1Wait;
/* 0x19 */ u8 mCloseStep2Wait;
/* 0x1C */ f32 mCloseStep3Speed;
/* 0x20 */ f32 mCloseStep3Max;
/* 0x24 */ u8 mShockStrength;
};
class daLv4PoGate_c : public dBgS_MoveBgActor {
public:
@ -55,21 +71,4 @@ public:
/* 0x5B8 */ u8 mCloseWaitTime;
};
class daLv4PoGate_HIO_c : public mDoHIO_entry_c {
public:
/* 80C5FBEC */ daLv4PoGate_HIO_c();
/* 80C60758 */ virtual ~daLv4PoGate_HIO_c();
/* 0x04 */ f32 mOpenSpeed;
/* 0x08 */ f32 mCloseStep1Speed;
/* 0x0C */ f32 mCloseStep2Speed;
/* 0x10 */ f32 mCloseStep1Amount;
/* 0x14 */ f32 mCloseStep2Amount;
/* 0x18 */ u8 mCloseStep1Wait;
/* 0x19 */ u8 mCloseStep2Wait;
/* 0x1C */ f32 mCloseStep3Speed;
/* 0x20 */ f32 mCloseStep3Max;
/* 0x24 */ u8 mShockStrength;
};
#endif /* D_A_OBJ_LV4POGATE_H */

View File

@ -6,6 +6,7 @@
#include "JSystem/JAudio2/JAISeq.h"
#include "JSystem/JAudio2/JAISeqMgr.h"
#include "JSystem/JAudio2/JASAudioReseter.h" // JASCriticalSection
#include "JSystem/JAudio2/JAISoundChild.h"
#include "dol2asm.h"
//
@ -295,8 +296,6 @@ bool JAISeq::prepare_(JASSoundParams const& param_0, JAISoundActivity param_1) {
}
/* 802A108C-802A1180 29B9CC 00F4+00 0/0 1/1 0/0 .text JAISeqMgr_calc___6JAISeqFv */
// missing instruction
#ifdef NONMATCHING
void JAISeq::JAISeqMgr_calc_() {
if (inner_.outputTrack.getStatus() == 2 || (inner_.outputTrack.getStatus() == 0 && status_.state.unk == 2)) {
die_();
@ -314,16 +313,6 @@ void JAISeq::JAISeqMgr_calc_() {
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISeq::JAISeqMgr_calc_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISeq/JAISeqMgr_calc___6JAISeqFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 804340A4-804340B0 060DC4 000C+00 3/3 0/0 0/0 .bss @896 */

View File

@ -4,6 +4,9 @@
//
#include "JSystem/JAudio2/JASAudioThread.h"
#include "JSystem/JAudio2/JASDriverIF.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dol2asm.h"
#include "dolphin/os/OS.h"
#include "dolphin/dsp/dsp.h"
@ -17,18 +20,12 @@ struct JASProbe {
/* 80290F24 */ static void stop(s32);
};
template <typename A0>
struct JASMemPool {};
/* JASMemPool_MultiThreaded<JASChannel> */
struct JASMemPool_MultiThreaded__template2 {
/* 802978DC */ void func_802978DC(void* _this);
};
struct JASGenericMemPool {
/* 80290848 */ JASGenericMemPool();
/* 802908C8 */ static void newMemPool(u32, int);
};
struct JASDsp {
/* 8029D958 */ static void boot(void (*)(void*));
@ -85,7 +82,6 @@ extern "C" u8 sSystemHeap__7JKRHeap[4];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
extern "C" extern u8 __OSReport_disable;
extern JKRHeap* JASDram;
//
// Declarations:
//
@ -139,27 +135,12 @@ private:
BOOL mInterrupts;
};
class JASChannel {};
template <class T>
class JASMemPool_MultiThreaded {
public:
static void newMemPool(int param_1) {
Lock lock;
JASGenericMemPool::newMemPool(0x108, param_1);
}
};
template <class T>
class JASPoolAllocObject_MultiThreaded {
public:
static void newMemPool(int param_1) {
JASMemPool_MultiThreaded<T>::newMemPool(param_1);
}
class JASChannel {
u8 filler[0x108];
};
/* 8029CDEC-8029CF68 29772C 017C+00 1/0 0/0 0/0 .text run__14JASAudioThreadFv */
// JASPoolAllocObject_MultiThreaded is complex
// Maybe location of JASPoolAllocObject_MultiThreaded<JASChannel>
#ifdef NONMATCHING
void* JASAudioThread::run() {
i_OSInitFastCast();

View File

@ -187,6 +187,7 @@ asm daNPC_TR_HIO_c::daNPC_TR_HIO_c() {
#endif
/* 80B25A54-80B25B78 000134 0124+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */
// regalloc
#ifdef NONMATCHING
static int nodeCallBack(J3DJoint* p_joint, int param_1) {
if (param_1 == 0) {
@ -201,8 +202,7 @@ static int nodeCallBack(J3DJoint* p_joint, int param_1) {
} else if (jointNo >= 1 && jointNo <= 3) {
mDoMtx_YrotM(*calc_mtx, npc_tr->field_0x5f2[jointNo - 1] + (s16)(npc_tr->field_0x5f8));
}
PSMTXCopy(*calc_mtx, sysModel->i_getAnmMtx(jointNo));
sysModel->setAnmMtx(jointNo, *calc_mtx);
PSMTXCopy(*calc_mtx, j3dSys.mCurrentMtx);
}

View File

@ -93,15 +93,13 @@ public:
fopAcM_SetupActor(this, daObjCatDoor_c);
int phase_state = dComIfG_resLoad(&mPhaseReq, l_arcName);
if (phase_state != cPhs_COMPLEATE_e) {
return phase_state;
if (phase_state == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x2520)) {
phase_state = cPhs_ERROR_e;
} else {
create_init();
}
}
if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x2520)) {
return cPhs_ERROR_e;
}
create_init();
return phase_state;
}
@ -321,10 +319,10 @@ COMPILER_STRIP_GATE(0x80BC49D4, &lit_3864);
/* 80BC4848-80BC49AC 000608 0164+00 1/0 0/0 0/0 .text daObjCatDoor_Create__FP10fopAc_ac_c
*/
#ifdef NONMATCHING // inverted conditional branch
static void daObjCatDoor_Create(fopAc_ac_c* i_this) {
#ifdef NONMATCHING // literals + register init order
static int daObjCatDoor_Create(fopAc_ac_c* i_this) {
fopAcM_GetID(i_this);
static_cast<daObjCatDoor_c*>(i_this)->create();
return static_cast<daObjCatDoor_c*>(i_this)->create();
}
#else
#pragma push

View File

@ -7,31 +7,15 @@
#include "JSystem/JKernel/JKRHeap.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "dol2asm.h"
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void CreateHeap__13daLv4PoGate_cFv();
extern "C" bool Create__16dBgS_MoveBgActorFv();
extern "C" void Execute__13daLv4PoGate_cFPPA3_A4_f();
extern "C" void Draw__13daLv4PoGate_cFv();
extern "C" void Delete__13daLv4PoGate_cFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" extern char const* const d_a_obj_lv4PoGate__stringBase0;
SECTION_DATA extern void* __vt__13daLv4PoGate_c[10];
/* 80C60854-80C60860 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80C60860-80C60874 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push
#pragma force_active on
// unused data ?
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
@ -39,7 +23,6 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
0x3FE00000,
0x00000000,
};
#pragma pop
/* 80C5FBEC-80C5FC5C 0000EC 0070+00 1/1 0/0 0/0 .text __ct__17daLv4PoGate_HIO_cFv */
daLv4PoGate_HIO_c::daLv4PoGate_HIO_c() {
@ -65,16 +48,7 @@ void daLv4PoGate_c::setBaseMtx() {
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
}
/* ############################################################################################## */
/* 80C60848-80C60848 000044 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80C60848 = "L4R02Gate";
#pragma pop
/* 80C5FD40-80C5FDAC 000240 006C+00 1/0 0/0 0/0 .text CreateHeap__13daLv4PoGate_cFv */
// vtable ordering issue
#ifdef NONMATCHING
int daLv4PoGate_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("L4R02Gate", 4);
@ -85,17 +59,6 @@ int daLv4PoGate_c::CreateHeap() {
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm int daLv4PoGate_c::CreateHeap() {
extern "C" asm void CreateHeap__13daLv4PoGate_cFv() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv4PoGate/d_a_obj_lv4PoGate/CreateHeap__13daLv4PoGate_cFv.s"
}
#pragma pop
#endif
/* 80C5FDAC-80C5FEDC 0002AC 0130+00 1/1 0/0 0/0 .text create__13daLv4PoGate_cFv */
int daLv4PoGate_c::create() {
@ -340,9 +303,6 @@ static int daLv4PoGate_Create(fopAc_ac_c* i_this) {
return static_cast<daLv4PoGate_c*>(i_this)->create();
}
/* 80C60758-80C607B4 000C58 005C+00 2/1 0/0 0/0 .text __dt__17daLv4PoGate_HIO_cFv */
daLv4PoGate_HIO_c::~daLv4PoGate_HIO_c() {}
/* 80C6091C-80C6093C -00001 0020+00 1/0 0/0 0/0 .data l_daLv4PoGate_Method */
static actor_method_class l_daLv4PoGate_Method = {
(process_method_func)daLv4PoGate_Create, (process_method_func)daLv4PoGate_Delete,
@ -367,17 +327,3 @@ extern actor_process_profile_definition g_profile_Obj_Lv4PoGate = {
0,
14,
};
/* 80C6096C-80C60994 000118 0028+00 1/1 0/0 0/0 .data __vt__13daLv4PoGate_c */
SECTION_DATA extern void* __vt__13daLv4PoGate_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__13daLv4PoGate_cFv,
(void*)Create__16dBgS_MoveBgActorFv,
(void*)Execute__13daLv4PoGate_cFPPA3_A4_f,
(void*)Draw__13daLv4PoGate_cFv,
(void*)Delete__13daLv4PoGate_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};

View File

@ -572,6 +572,50 @@ void cBgW::BlckConnect(u16* param_0, int* param_1, int param_2) {
}
/* 800797BC-8007998C 0740FC 01D0+00 2/0 1/0 0/0 .text ClassifyPlane__4cBgWFv */
// stack, G_CM3D_F_ABS_MIN is loaded outside of loop
#ifdef NONMATCHING
void cBgW::ClassifyPlane() {
if (pm_vtx_tbl == NULL) {
return;
}
for (int i = 0; i < pm_bgd->m_b_num; i++) {
int local_2c = pm_bgd->m_b_tbl[i].field_0x0;
int uVar4;
if (i != pm_bgd->m_b_num - 1) {
uVar4 = pm_bgd->m_b_tbl[i + 1].field_0x0 - 1;
} else {
uVar4 = pm_bgd->m_t_num - 1;
}
field_0xa4[i].field_0x0 = 0xffff;
field_0xa4[i].field_0x2 = 0xffff;
field_0xa4[i].field_0x4 = 0xffff;
int local_30;
int local_34;
int local_38 = 0xffff;
local_34 = 0xffff;
local_30 = 0xffff;
for (int uVar3 = local_2c; uVar3 <= uVar4; uVar3++) {
f32 dVar8 = pm_tri[uVar3].m_plane.i_GetNP()->y;
if (!cM3d_IsZero(pm_tri[uVar3].m_plane.i_GetNP()->x) ||
!cM3d_IsZero(dVar8) || !cM3d_IsZero(pm_tri[uVar3].m_plane.i_GetNP()->z)) {
if (cBgW_CheckBGround(dVar8)) {
BlckConnect(&field_0xa4[i].field_0x4, &local_38, uVar3);
} else {
if (cBgW_CheckBRoof(dVar8)) {
if (!ChkRoofRegist()) {
BlckConnect(&field_0xa4[i].field_0x0, &local_30, uVar3);
}
} else {
BlckConnect(&field_0xa4[i].field_0x2, &local_34, uVar3);
}
}
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -580,6 +624,7 @@ asm void cBgW::ClassifyPlane() {
#include "asm/d/bg/d_bg_w/ClassifyPlane__4cBgWFv.s"
}
#pragma pop
#endif
/* 8007998C-800799E0 0742CC 0054+00 1/1 0/0 0/0 .text MakeBlckTransMinMax__4cBgWFP4cXyzP4cXyz */
void cBgW::MakeBlckTransMinMax(cXyz* param_0, cXyz* param_1) {
@ -706,41 +751,45 @@ void cBgW::MakeNodeTreeRp(int param_0) {
}
/* 80079CC4-80079DF0 074604 012C+00 1/1 0/0 0/0 .text MakeNodeTreeGrpRp__4cBgWFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cBgW::MakeNodeTreeGrpRp(int param_0) {
nofralloc
#include "asm/d/bg/d_bg_w/MakeNodeTreeGrpRp__4cBgWFi.s"
}
#pragma pop
/* void cBgW::MakeNodeTreeGrpRp(int param_0) {
//u16 tmp = pm_bgd->m_g_tbl[param_0].field_0x2e;
void cBgW::MakeNodeTreeGrpRp(int param_0) {
if (pm_bgd->m_g_tbl[param_0].field_0x2e != 0xFFFF) {
MakeNodeTreeRp(pm_bgd->m_g_tbl[param_0].field_0x2e);
pm_node_tree[param_0].SetMin(pm_grp[pm_bgd->m_g_tbl[param_0].field_0x2e].mMin);
pm_node_tree[param_0].SetMax(pm_grp[pm_bgd->m_g_tbl[param_0].field_0x2e].mMax);
pm_grp[param_0].m_aab.SetMin(*pm_node_tree[pm_bgd->m_g_tbl[param_0].field_0x2e].GetMinP());
pm_grp[param_0].m_aab.SetMax(*pm_node_tree[pm_bgd->m_g_tbl[param_0].field_0x2e].GetMaxP());
}
u16 tmp2 = pm_bgd->m_g_tbl[param_0].field_0x28;
while (tmp2 != 0xFFFF) {
s32 tmp2 = pm_bgd->m_g_tbl[param_0].field_0x28;
while (true) {
if (tmp2 == 0xFFFF) break;
MakeNodeTreeGrpRp(tmp2);
pm_grp[param_0].SetMin(pm_grp[tmp2].mMin);
pm_grp[param_0].SetMax(pm_node_tree[tmp2].mMax);
pm_grp[param_0].m_aab.SetMin(*pm_grp[tmp2].m_aab.GetMinP());
pm_grp[param_0].m_aab.SetMax(*pm_grp[tmp2].m_aab.GetMaxP());
tmp2 = pm_bgd->m_g_tbl[tmp2].field_0x26;
}
} */
}
/* 80079DF0-80079EEC 074730 00FC+00 2/2 0/0 0/0 .text MakeNodeTree__4cBgWFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cBgW::MakeNodeTree() {
nofralloc
#include "asm/d/bg/d_bg_w/MakeNodeTree__4cBgWFv.s"
void cBgW::MakeNodeTree() {
if (pm_vtx_tbl == NULL) {
for (int i = 0; i < pm_bgd->m_g_num; i++) {
if (pm_bgd->m_g_tbl[i].field_0x24 == 0xffff) {
field_0x92 = i;
return;
}
}
} else {
for (int i = 0; i < pm_bgd->m_g_num; i++) {
pm_grp[i].m_aab.ClearForMinMax();
}
for (int i = 0; i < pm_bgd->m_g_num; i++) {
if (pm_bgd->m_g_tbl[i].field_0x24 == 0xffff) {
field_0x92 = i;
MakeNodeTreeGrpRp(i);
return;
}
}
}
}
#pragma pop
/* 80079EEC-80079F38 07482C 004C+00 2/0 1/0 0/0 .text ChkMemoryError__4cBgWFv */
bool cBgW::ChkMemoryError() {

View File

@ -2618,7 +2618,7 @@ int addBombCount(u8 i_bombType, u8 i_addNum) {
return 0;
} else {
dComIfGs_setEmptyBombBagItemIn(i_bombType, i_addNum, true);
i_addNum -= (int)dComIfGs_getBombMax(i_bombType);
i_addNum = i_addNum - dComIfGs_getBombMax(i_bombType);
}
} else {
if (dComIfGs_getBombMax(bombType[bombIdx]) >= var_r22 + i_addNum) {
@ -2626,7 +2626,7 @@ int addBombCount(u8 i_bombType, u8 i_addNum) {
return 0;
} else {
dComIfGp_setItemBombNumCount(bombIdx, i_addNum);
i_addNum -= (int)dComIfGs_getBombMax(bombType[bombIdx]) - var_r22;
i_addNum = i_addNum - (dComIfGs_getBombMax(bombType[bombIdx]) - var_r22);
}
}

View File

@ -7,10 +7,6 @@
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/kankyo/d_kankyo_wether.h"
#include "dol2asm.h"
extern "C" extern char const* const d_d_kyeff__stringBase0;
extern "C" void dKyw_wether_init__Fv();
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
void dKankyo_DayProc() {
@ -47,30 +43,20 @@ static int dKyeff_Delete(dKyeff_c* i_this) {
return 1;
}
/* ############################################################################################## */
/* 80453E58-80453E5C 002458 0004+00 1/1 0/0 0/0 .sdata2 @3804 */
SECTION_SDATA2 static u8 lit_3804[4] = {
0x00,
0x00,
0x00,
0x00,
};
// Helper functions to set float literal order
static f32 dummyLiteralOrder() {
return 0.0f;
}
/* 80453E5C-80453E60 00245C 0004+00 1/1 0/0 0/0 .sdata2 @3805 */
SECTION_SDATA2 static f32 lit_3805 = 1.0f;
static f32 dummyLiteralOrder2() {
return 1.0f;
}
/* 80453E60-80453E68 002460 0008+00 1/1 0/0 0/0 .sdata2 @3812 */
SECTION_SDATA2 static f64 lit_3812 = 4503601774854144.0 /* cast s32 to float */;
/* 80453E68-80453E6C 002468 0004+00 1/1 0/0 0/0 .sdata2 @3843 */
SECTION_SDATA2 static f32 lit_3843 = 7.0f / 10.0f;
/* 80453E6C-80453E70 00246C 0004+00 1/1 0/0 0/0 .sdata2 @3844 */
SECTION_SDATA2 static f32 lit_3844 = 15.0f;
static f32 dummyLiteralOrder3(s32 hours) {
return hours;
}
/* 801ADE00-801ADEA0 1A8740 00A0+00 1/0 0/0 0/0 .text dKyeff_Create__FP12kankyo_class */
// float data
#ifdef NONMATCHING
static int dKyeff_Create(kankyo_class* i_this) {
OSCalendarTime time;
@ -84,16 +70,6 @@ static int dKyeff_Create(kankyo_class* i_this) {
return cPhs_COMPLEATE_e;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm int dKyeff_Create(kankyo_class* i_this) {
nofralloc
#include "asm/d/d_kyeff/dKyeff_Create__FP12kankyo_class.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803BC158-803BC16C -00001 0014+00 1/0 0/0 0/0 .data l_dKyeff_Method */

View File

@ -170,30 +170,26 @@ s16 CSTControl::getAngleStick() {
u8 STControl::checkTrigger() {
field_0x0d = mDirectionTrig;
f32 stickValue = getValueStick();
s16 stickAngle_ = getAngleStick();
s16 stickAngle = getAngleStick();
u8 var_r6 = 0;
s16 temp_r7 = 0x2000 - field_0x26 >> 1;
if (!cM3d_IsZero(stickValue)) {
int stickAngle = stickAngle_;
s16 temp_r4 = field_0x22;
int temp_r3 = temp_r4 + temp_r7;
if (stickAngle < temp_r3 - 0x7000) {
if (stickAngle < field_0x22 + temp_r7 - 0x7000) {
var_r6 |= TRIG_UP;
} else if (stickAngle < (temp_r4 - 0x5000) - temp_r7) {
} else if (stickAngle < (field_0x22 - 0x5000) - temp_r7) {
var_r6 |= TRIG_UP_LEFT;
} else if (stickAngle < temp_r3 - 0x3000) {
} else if (stickAngle < field_0x22 + temp_r7 - 0x3000) {
var_r6 |= TRIG_LEFT;
} else if (stickAngle < (temp_r4 - 0x1000) - temp_r7) {
} else if (stickAngle < (field_0x22 - 0x1000) - temp_r7) {
var_r6 |= TRIG_DOWN_LEFT;
} else if (stickAngle < temp_r3 + 0x1000) {
} else if (stickAngle < field_0x22 + temp_r7 + 0x1000) {
var_r6 |= TRIG_DOWN;
} else if (stickAngle < (temp_r4 + 0x3000) - temp_r7) {
} else if (stickAngle < (field_0x22 + 0x3000) - temp_r7) {
var_r6 |= TRIG_DOWN_RIGHT;
} else if (stickAngle < temp_r3 + 0x5000) {
} else if (stickAngle < field_0x22 + temp_r7 + 0x5000) {
var_r6 |= TRIG_RIGHT;
} else if (stickAngle < (temp_r4 + 0x7000) - temp_r7) {
} else if (stickAngle < (field_0x22 + 0x7000) - temp_r7) {
var_r6 |= TRIG_UP_RIGHT;
} else {
var_r6 |= TRIG_UP;
@ -207,9 +203,8 @@ u8 STControl::checkTrigger() {
mDirectionTrig &= ~var_r6;
}
u8 temp_r3_2 = mDirectionTrig;
if (temp_r3_2 != field_0x0d) {
if (temp_r3_2 == 0) {
if (mDirectionTrig != field_0x0d) {
if (mDirectionTrig == 0) {
field_0x22 = 0;
} else if ((stickAngle & 0x1FFF) > 0x1000) {
field_0x22 = field_0x24;

View File

@ -7,48 +7,16 @@
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void draw__6dMdl_cFv();
extern "C" void create__6dMdl_cFP12J3DModelDataUsP12dKy_tevstr_c();
extern "C" void entryObj__6dMdl_cFP10dMdl_obj_c();
extern "C" void search__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c();
extern "C" void entry__10dMdl_mng_cFP12J3DModelDataUsP12dKy_tevstr_c();
extern "C" void create__10dMdl_mng_cFv();
extern "C" void __dt__6dMdl_cFv();
extern "C" void remove__10dMdl_mng_cFv();
extern "C" void reset__10dMdl_mng_cFv();
extern "C" void entry__10dMdl_mng_cFP12J3DModelDataUsi();
extern "C" void __ct__6dMdl_cFv();
extern "C" u8 m_myObj__10dMdl_mng_c[4 + 4 /* padding */];
//
// External References:
//
extern "C" void dKy_setLight_nowroom_actor__FP12dKy_tevstr_c();
extern "C" void dKy_setLight_again__Fv();
extern "C" void dKy_GxFog_tevstr_set__FP12dKy_tevstr_c();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer();
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" extern void* __vt__9J3DPacket[5];
extern "C" u8 mStatus__20dStage_roomControl_c[65792];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
// Declarations:
//
@ -166,25 +134,13 @@ void dMdl_mng_c::reset() {
}
/* 8009C8D8-8009C930 097218 0058+00 0/0 0/0 4/4 .text entry__10dMdl_mng_cFP12J3DModelDataUsi */
// missing mr instructions
#ifdef NONMATCHING
dMdl_c* dMdl_mng_c::entry(J3DModelData* i_modelData, u16 i_materialId, int i_roomNo) {
if (m_myObj == NULL) {
return NULL;
}
return entry(i_modelData, i_materialId, dComIfGp_roomControl_getTevStr(i_roomNo));
dKy_tevstr_c* tevstr = dComIfGp_roomControl_getTevStr(i_roomNo);
return m_myObj->entry(i_modelData, i_materialId, tevstr);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMdl_c* dMdl_mng_c::entry(J3DModelData* param_0, u16 param_1, int param_2) {
nofralloc
#include "asm/d/d_model/entry__10dMdl_mng_cFP12J3DModelDataUsi.s"
}
#pragma pop
#endif
/* 8009C930-8009C964 097270 0034+00 1/1 0/0 0/0 .text __ct__6dMdl_cFv */
dMdl_c::dMdl_c() {