mirror of https://github.com/zeldaret/tp.git
m_Do_lib OK (#278)
This commit is contained in:
parent
b70f57ea41
commit
d5f5d4c3b3
|
|
@ -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 | 24.311561% | 874376 | 3596544
|
||||
.text | 24.340478% | 875416 | 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 | 32.290921% | 1298312 | 4020672
|
||||
Total | 32.316787% | 1299352 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 32.290921% | 1298312 | 4020672
|
||||
main.dol | 32.316787% | 1299352 | 4020672
|
||||
RELs | 33.179309% | 3815728 | 11500324
|
||||
Total | 32.949174% | 5114040 | 15520996
|
||||
Total | 32.955875% | 5115080 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
lbl_800154EC:
|
||||
/* 800154EC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 800154F0 7C 08 02 A6 */ mflr r0
|
||||
/* 800154F4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 800154F8 7C 60 1B 78 */ mr r0, r3
|
||||
/* 800154FC 7C 85 23 78 */ mr r5, r4
|
||||
/* 80015500 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80015504 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80015508 80 63 61 B0 */ lwz r3, 0x61b0(r3)
|
||||
/* 8001550C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80015510 40 82 00 18 */ bne lbl_80015528
|
||||
/* 80015514 C0 02 81 84 */ lfs f0, lit_3784(r2)
|
||||
/* 80015518 D0 05 00 00 */ stfs f0, 0(r5)
|
||||
/* 8001551C D0 05 00 04 */ stfs f0, 4(r5)
|
||||
/* 80015520 D0 05 00 08 */ stfs f0, 8(r5)
|
||||
/* 80015524 48 00 00 10 */ b lbl_80015534
|
||||
lbl_80015528:
|
||||
/* 80015528 38 63 01 40 */ addi r3, r3, 0x140
|
||||
/* 8001552C 7C 04 03 78 */ mr r4, r0
|
||||
/* 80015530 48 33 18 3D */ bl PSMTXMultVec
|
||||
lbl_80015534:
|
||||
/* 80015534 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80015538 7C 08 03 A6 */ mtlr r0
|
||||
/* 8001553C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80015540 4E 80 00 20 */ blr
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
lbl_80015310:
|
||||
/* 80015310 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80015314 7C 08 02 A6 */ mflr r0
|
||||
/* 80015318 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 8001531C 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80015320 48 34 CE BD */ bl _savegpr_29
|
||||
/* 80015324 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80015328 7C 9E 23 78 */ mr r30, r4
|
||||
/* 8001532C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80015330 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80015334 80 7F 61 B0 */ lwz r3, 0x61b0(r31)
|
||||
/* 80015338 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8001533C 40 82 00 18 */ bne lbl_80015354
|
||||
/* 80015340 C0 02 81 84 */ lfs f0, lit_3784(r2)
|
||||
/* 80015344 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 80015348 D0 1E 00 04 */ stfs f0, 4(r30)
|
||||
/* 8001534C D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 80015350 48 00 01 84 */ b lbl_800154D4
|
||||
lbl_80015354:
|
||||
/* 80015354 38 63 01 A0 */ addi r3, r3, 0x1a0
|
||||
/* 80015358 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8001535C 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80015360 48 33 1A 0D */ bl PSMTXMultVec
|
||||
/* 80015364 80 7F 61 B0 */ lwz r3, 0x61b0(r31)
|
||||
/* 80015368 C0 83 01 DC */ lfs f4, 0x1dc(r3)
|
||||
/* 8001536C C0 3D 00 08 */ lfs f1, 8(r29)
|
||||
/* 80015370 C0 03 01 D8 */ lfs f0, 0x1d8(r3)
|
||||
/* 80015374 EC 61 00 32 */ fmuls f3, f1, f0
|
||||
/* 80015378 C0 3D 00 00 */ lfs f1, 0(r29)
|
||||
/* 8001537C C0 03 01 D0 */ lfs f0, 0x1d0(r3)
|
||||
/* 80015380 EC 41 00 32 */ fmuls f2, f1, f0
|
||||
/* 80015384 C0 3D 00 04 */ lfs f1, 4(r29)
|
||||
/* 80015388 C0 03 01 D4 */ lfs f0, 0x1d4(r3)
|
||||
/* 8001538C EC 01 00 32 */ fmuls f0, f1, f0
|
||||
/* 80015390 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 80015394 EC 03 00 2A */ fadds f0, f3, f0
|
||||
/* 80015398 EC 44 00 2A */ fadds f2, f4, f0
|
||||
/* 8001539C C0 21 00 10 */ lfs f1, 0x10(r1)
|
||||
/* 800153A0 C0 02 81 84 */ lfs f0, lit_3784(r2)
|
||||
/* 800153A4 FC 01 00 40 */ fcmpo cr0, f1, f0
|
||||
/* 800153A8 4C 41 13 82 */ cror 2, 1, 2
|
||||
/* 800153AC 40 82 00 08 */ bne lbl_800153B4
|
||||
/* 800153B0 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
lbl_800153B4:
|
||||
/* 800153B4 C0 02 81 84 */ lfs f0, lit_3784(r2)
|
||||
/* 800153B8 FC 02 00 40 */ fcmpo cr0, f2, f0
|
||||
/* 800153BC 4C 40 13 82 */ cror 2, 0, 2
|
||||
/* 800153C0 40 82 00 3C */ bne lbl_800153FC
|
||||
/* 800153C4 FC 00 10 00 */ fcmpu cr0, f0, f2
|
||||
/* 800153C8 40 82 00 18 */ bne lbl_800153E0
|
||||
/* 800153CC C0 22 81 88 */ lfs f1, lit_3785(r2)
|
||||
/* 800153D0 C0 01 00 10 */ lfs f0, 0x10(r1)
|
||||
/* 800153D4 EC 01 00 32 */ fmuls f0, f1, f0
|
||||
/* 800153D8 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
/* 800153DC 48 00 00 18 */ b lbl_800153F4
|
||||
lbl_800153E0:
|
||||
/* 800153E0 C0 21 00 10 */ lfs f1, 0x10(r1)
|
||||
/* 800153E4 C0 02 81 8C */ lfs f0, lit_3786(r2)
|
||||
/* 800153E8 EC 00 10 24 */ fdivs f0, f0, f2
|
||||
/* 800153EC EC 01 00 32 */ fmuls f0, f1, f0
|
||||
/* 800153F0 D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
lbl_800153F4:
|
||||
/* 800153F4 C0 62 81 88 */ lfs f3, lit_3785(r2)
|
||||
/* 800153F8 48 00 00 18 */ b lbl_80015410
|
||||
lbl_800153FC:
|
||||
/* 800153FC C0 02 81 8C */ lfs f0, lit_3786(r2)
|
||||
/* 80015400 EC 60 10 24 */ fdivs f3, f0, f2
|
||||
/* 80015404 C0 01 00 10 */ lfs f0, 0x10(r1)
|
||||
/* 80015408 EC 00 00 F2 */ fmuls f0, f0, f3
|
||||
/* 8001540C D0 1E 00 08 */ stfs f0, 8(r30)
|
||||
lbl_80015410:
|
||||
/* 80015410 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80015414 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80015418 80 63 61 AC */ lwz r3, 0x61ac(r3)
|
||||
/* 8001541C C0 02 81 84 */ lfs f0, lit_3784(r2)
|
||||
/* 80015420 C0 23 00 00 */ lfs f1, 0(r3)
|
||||
/* 80015424 FC 00 08 00 */ fcmpu cr0, f0, f1
|
||||
/* 80015428 41 82 00 2C */ beq lbl_80015454
|
||||
/* 8001542C C0 42 81 8C */ lfs f2, lit_3786(r2)
|
||||
/* 80015430 C0 02 81 90 */ lfs f0, lit_3787(r2)
|
||||
/* 80015434 EC 20 00 72 */ fmuls f1, f0, f1
|
||||
/* 80015438 C0 03 00 08 */ lfs f0, 8(r3)
|
||||
/* 8001543C EC 01 00 2A */ fadds f0, f1, f0
|
||||
/* 80015440 EC 22 00 32 */ fmuls f1, f2, f0
|
||||
/* 80015444 C0 02 81 94 */ lfs f0, lit_3788(r2)
|
||||
/* 80015448 EC 81 00 28 */ fsubs f4, f1, f0
|
||||
/* 8001544C C0 C2 81 98 */ lfs f6, lit_3789(r2)
|
||||
/* 80015450 48 00 00 0C */ b lbl_8001545C
|
||||
lbl_80015454:
|
||||
/* 80015454 FC 80 08 90 */ fmr f4, f1
|
||||
/* 80015458 C0 C3 00 08 */ lfs f6, 8(r3)
|
||||
lbl_8001545C:
|
||||
/* 8001545C C0 02 81 84 */ lfs f0, lit_3784(r2)
|
||||
/* 80015460 C0 23 00 04 */ lfs f1, 4(r3)
|
||||
/* 80015464 FC 00 08 00 */ fcmpu cr0, f0, f1
|
||||
/* 80015468 41 82 00 2C */ beq lbl_80015494
|
||||
/* 8001546C C0 42 81 8C */ lfs f2, lit_3786(r2)
|
||||
/* 80015470 C0 02 81 90 */ lfs f0, lit_3787(r2)
|
||||
/* 80015474 EC 20 00 72 */ fmuls f1, f0, f1
|
||||
/* 80015478 C0 03 00 0C */ lfs f0, 0xc(r3)
|
||||
/* 8001547C EC 01 00 2A */ fadds f0, f1, f0
|
||||
/* 80015480 EC 22 00 32 */ fmuls f1, f2, f0
|
||||
/* 80015484 C0 02 81 9C */ lfs f0, lit_3790(r2)
|
||||
/* 80015488 EC A1 00 28 */ fsubs f5, f1, f0
|
||||
/* 8001548C C0 E2 81 A0 */ lfs f7, lit_3791(r2)
|
||||
/* 80015490 48 00 00 0C */ b lbl_8001549C
|
||||
lbl_80015494:
|
||||
/* 80015494 FC A0 08 90 */ fmr f5, f1
|
||||
/* 80015498 C0 E3 00 0C */ lfs f7, 0xc(r3)
|
||||
lbl_8001549C:
|
||||
/* 8001549C C0 42 81 8C */ lfs f2, lit_3786(r2)
|
||||
/* 800154A0 C0 01 00 08 */ lfs f0, 8(r1)
|
||||
/* 800154A4 EC 00 00 F2 */ fmuls f0, f0, f3
|
||||
/* 800154A8 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 800154AC EC 06 00 32 */ fmuls f0, f6, f0
|
||||
/* 800154B0 EC 04 00 2A */ fadds f0, f4, f0
|
||||
/* 800154B4 D0 1E 00 00 */ stfs f0, 0(r30)
|
||||
/* 800154B8 C0 21 00 0C */ lfs f1, 0xc(r1)
|
||||
/* 800154BC FC 00 18 50 */ fneg f0, f3
|
||||
/* 800154C0 EC 01 00 32 */ fmuls f0, f1, f0
|
||||
/* 800154C4 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 800154C8 EC 07 00 32 */ fmuls f0, f7, f0
|
||||
/* 800154CC EC 05 00 2A */ fadds f0, f5, f0
|
||||
/* 800154D0 D0 1E 00 04 */ stfs f0, 4(r30)
|
||||
lbl_800154D4:
|
||||
/* 800154D4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 800154D8 48 34 CD 51 */ bl _restgpr_29
|
||||
/* 800154DC 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 800154E0 7C 08 03 A6 */ mtlr r0
|
||||
/* 800154E4 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 800154E8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
lbl_8001513C:
|
||||
/* 8001513C 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 80015140 7C 08 02 A6 */ mflr r0
|
||||
/* 80015144 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 80015148 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 8001514C 48 34 D0 91 */ bl _savegpr_29
|
||||
/* 80015150 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80015154 7C 9D 23 78 */ mr r29, r4
|
||||
/* 80015158 7C BE 2B 78 */ mr r30, r5
|
||||
/* 8001515C 88 03 00 08 */ lbz r0, 8(r3)
|
||||
/* 80015160 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80015164 41 82 00 54 */ beq lbl_800151B8
|
||||
/* 80015168 7C C3 33 78 */ mr r3, r6
|
||||
/* 8001516C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80015170 7C 9F 02 14 */ add r4, r31, r0
|
||||
/* 80015174 88 BF 00 09 */ lbz r5, 9(r31)
|
||||
/* 80015178 A0 DF 00 0A */ lhz r6, 0xa(r31)
|
||||
/* 8001517C 48 34 92 ED */ bl GXInitTlutObj
|
||||
/* 80015180 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 80015184 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80015188 80 1F 00 1C */ lwz r0, 0x1c(r31)
|
||||
/* 8001518C 7C 9F 02 14 */ add r4, r31, r0
|
||||
/* 80015190 A0 BF 00 02 */ lhz r5, 2(r31)
|
||||
/* 80015194 A0 DF 00 04 */ lhz r6, 4(r31)
|
||||
/* 80015198 88 FF 00 00 */ lbz r7, 0(r31)
|
||||
/* 8001519C 89 1F 00 06 */ lbz r8, 6(r31)
|
||||
/* 800151A0 89 3F 00 07 */ lbz r9, 7(r31)
|
||||
/* 800151A4 88 1F 00 18 */ lbz r0, 0x18(r31)
|
||||
/* 800151A8 20 00 00 01 */ subfic r0, r0, 1
|
||||
/* 800151AC 54 0A 0F FE */ srwi r10, r0, 0x1f
|
||||
/* 800151B0 48 34 8E DD */ bl GXInitTexObjCI
|
||||
/* 800151B4 48 00 00 34 */ b lbl_800151E8
|
||||
lbl_800151B8:
|
||||
/* 800151B8 7F A3 EB 78 */ mr r3, r29
|
||||
/* 800151BC 80 1F 00 1C */ lwz r0, 0x1c(r31)
|
||||
/* 800151C0 7C 9F 02 14 */ add r4, r31, r0
|
||||
/* 800151C4 A0 BF 00 02 */ lhz r5, 2(r31)
|
||||
/* 800151C8 A0 DF 00 04 */ lhz r6, 4(r31)
|
||||
/* 800151CC 88 FF 00 00 */ lbz r7, 0(r31)
|
||||
/* 800151D0 89 1F 00 06 */ lbz r8, 6(r31)
|
||||
/* 800151D4 89 3F 00 07 */ lbz r9, 7(r31)
|
||||
/* 800151D8 88 1F 00 18 */ lbz r0, 0x18(r31)
|
||||
/* 800151DC 20 00 00 01 */ subfic r0, r0, 1
|
||||
/* 800151E0 54 0A 0F FE */ srwi r10, r0, 0x1f
|
||||
/* 800151E4 48 34 8C 5D */ bl GXInitTexObj
|
||||
lbl_800151E8:
|
||||
/* 800151E8 7F A3 EB 78 */ mr r3, r29
|
||||
/* 800151EC 88 9F 00 14 */ lbz r4, 0x14(r31)
|
||||
/* 800151F0 88 BF 00 15 */ lbz r5, 0x15(r31)
|
||||
/* 800151F4 C0 42 81 70 */ lfs f2, lit_3634(r2)
|
||||
/* 800151F8 88 1F 00 16 */ lbz r0, 0x16(r31)
|
||||
/* 800151FC 7C 00 07 74 */ extsb r0, r0
|
||||
/* 80015200 C8 82 81 78 */ lfd f4, lit_3638(r2)
|
||||
/* 80015204 6C 00 80 00 */ xoris r0, r0, 0x8000
|
||||
/* 80015208 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8001520C 3C C0 43 30 */ lis r6, 0x4330
|
||||
/* 80015210 90 C1 00 10 */ stw r6, 0x10(r1)
|
||||
/* 80015214 C8 01 00 10 */ lfd f0, 0x10(r1)
|
||||
/* 80015218 EC 00 20 28 */ fsubs f0, f0, f4
|
||||
/* 8001521C EC 22 00 32 */ fmuls f1, f2, f0
|
||||
/* 80015220 88 1F 00 17 */ lbz r0, 0x17(r31)
|
||||
/* 80015224 7C 00 07 74 */ extsb r0, r0
|
||||
/* 80015228 6C 00 80 00 */ xoris r0, r0, 0x8000
|
||||
/* 8001522C 90 01 00 1C */ stw r0, 0x1c(r1)
|
||||
/* 80015230 90 C1 00 18 */ stw r6, 0x18(r1)
|
||||
/* 80015234 C8 01 00 18 */ lfd f0, 0x18(r1)
|
||||
/* 80015238 EC 00 20 28 */ fsubs f0, f0, f4
|
||||
/* 8001523C EC 42 00 32 */ fmuls f2, f2, f0
|
||||
/* 80015240 C0 62 81 74 */ lfs f3, lit_3635(r2)
|
||||
/* 80015244 A8 1F 00 1A */ lha r0, 0x1a(r31)
|
||||
/* 80015248 6C 00 80 00 */ xoris r0, r0, 0x8000
|
||||
/* 8001524C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80015250 90 C1 00 20 */ stw r6, 0x20(r1)
|
||||
/* 80015254 C8 01 00 20 */ lfd f0, 0x20(r1)
|
||||
/* 80015258 EC 00 20 28 */ fsubs f0, f0, f4
|
||||
/* 8001525C EC 63 00 32 */ fmuls f3, f3, f0
|
||||
/* 80015260 88 DF 00 12 */ lbz r6, 0x12(r31)
|
||||
/* 80015264 88 FF 00 11 */ lbz r7, 0x11(r31)
|
||||
/* 80015268 89 1F 00 13 */ lbz r8, 0x13(r31)
|
||||
/* 8001526C 48 34 8E 69 */ bl GXInitTexObjLOD
|
||||
/* 80015270 88 7F 00 08 */ lbz r3, 8(r31)
|
||||
/* 80015274 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 80015278 48 34 CF B1 */ bl _restgpr_29
|
||||
/* 8001527C 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 80015280 7C 08 03 A6 */ mtlr r0
|
||||
/* 80015284 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 80015288 4E 80 00 20 */ blr
|
||||
|
|
@ -2800,6 +2800,14 @@ inline view_class* dComIfGd_getView() {
|
|||
return g_dComIfG_gameInfo.drawlist.getView();
|
||||
}
|
||||
|
||||
inline Mtx44* dComIfGd_getProjViewMtx() {
|
||||
return &(((camera_class*)g_dComIfG_gameInfo.drawlist.getView())->mProjViewMtx);
|
||||
}
|
||||
|
||||
inline view_port_class* dComIfGd_getViewport() {
|
||||
return g_dComIfG_gameInfo.drawlist.getViewport();
|
||||
}
|
||||
|
||||
inline MtxP dComIfGd_getViewRotMtx() {
|
||||
return ((camera_process_class*)g_dComIfG_gameInfo.drawlist.getView())->mViewMtxNoTrans;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -331,6 +331,10 @@ public:
|
|||
mPeekZ.newData(param_0, param_1, param_2);
|
||||
}
|
||||
|
||||
view_port_class* getViewport() {
|
||||
return mViewport;
|
||||
}
|
||||
|
||||
static void offWipe() { mWipe = 0; }
|
||||
static f32 getWipeRate() { return mWipeRate; }
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
class camera_process_class : public view_class {
|
||||
public:
|
||||
/* 0x170 */ Mtx mInvViewMtx;
|
||||
/* 0x1A0 */ Mtx44 field_0x1a0;
|
||||
/* 0x1A0 */ Mtx44 mProjViewMtx;
|
||||
/* 0x1E0 */ Mtx mViewMtxNoTrans;
|
||||
/* 0x210 */ create_tag_class mCreateTag;
|
||||
/* 0x224 */ leafdraw_method_class* mpMtd;
|
||||
|
|
|
|||
|
|
@ -22,9 +22,9 @@ struct mDoLib_clipper {
|
|||
static f32 mFovyRate;
|
||||
};
|
||||
|
||||
void mDoLib_project(Vec* param_0, Vec* param_1);
|
||||
bool mDoLib_setResTimgObj(ResTIMG const* res, GXTexObj* o_texObj, u32 param_2,
|
||||
void mDoLib_project(Vec* src, Vec* dst);
|
||||
u8 mDoLib_setResTimgObj(ResTIMG const* res, GXTexObj* o_texObj, u32 tlut_name,
|
||||
GXTlutObj* o_tlutObj);
|
||||
void mDoLib_pos2camera(Vec* param_0, Vec* param_1);
|
||||
void mDoLib_pos2camera(Vec* src, Vec* dst);
|
||||
|
||||
#endif /* M_DO_M_DO_LIB_H */
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@ inline void cMtx_ZrotM(Mtx mtx, s16 z) {
|
|||
mDoMtx_ZrotM(mtx, z);
|
||||
}
|
||||
|
||||
inline void cMtx_multVec(Mtx mtx, const Vec* src, Vec* dst) {
|
||||
mDoMtx_multVec(mtx, src, dst);
|
||||
}
|
||||
|
||||
inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) {
|
||||
param_1->x = param_0[0][3];
|
||||
|
|
@ -83,7 +86,9 @@ public:
|
|||
static void multVec(const Vec* a, Vec* b) { PSMTXMultVec(now, a, b); }
|
||||
static void multVecSR(const Vec* a, Vec* b) { PSMTXMultVecSR(now, a, b); }
|
||||
static void multVecZero(Vec* v) { mDoMtx_multVecZero(now, v); }
|
||||
static void multVecArray(const Vec* src, Vec* dst, u32 count) { PSMTXMultVecArray(now, src, dst, count); }
|
||||
static void multVecArray(const Vec* src, Vec* dst, u32 count) {
|
||||
PSMTXMultVecArray(now, src, dst, count);
|
||||
}
|
||||
static void XYZrotS(s16 x, s16 y, s16 z) { mDoMtx_XYZrotS(now, x, y, z); }
|
||||
static void XYZrotM(s16 x, s16 y, s16 z) { mDoMtx_XYZrotM(now, x, y, z); }
|
||||
static void ZXYrotS(s16 x, s16 y, s16 z) { mDoMtx_ZXYrotS(now, x, y, z); }
|
||||
|
|
|
|||
|
|
@ -398,7 +398,7 @@ void dScnName_c::setView() {
|
|||
mCamera.mViewMtxNoTrans[1][3] = tmp_0;
|
||||
mCamera.mViewMtxNoTrans[2][3] = tmp_0;
|
||||
PSMTXCopy(mCamera.mViewMtx, j3dSys.mViewMtx);
|
||||
mDoMtx_concatProjView(mCamera.mProjMtx, mCamera.mViewMtx, mCamera.field_0x1a0);
|
||||
mDoMtx_concatProjView(mCamera.mProjMtx, mCamera.mViewMtx, mCamera.mProjViewMtx);
|
||||
}
|
||||
|
||||
/* 80258BC8-80258C5C 253508 0094+00 1/1 0/0 0/0 .text execute__10dScnName_cFv */
|
||||
|
|
|
|||
|
|
@ -1,89 +1,40 @@
|
|||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: m_Do/m_Do_lib
|
||||
//
|
||||
/**
|
||||
* m_Do_lib.cpp
|
||||
* View and Projection Matrix Helper Functions
|
||||
*/
|
||||
|
||||
#include "m_Do/m_Do_lib.h"
|
||||
#include "JSystem/JMath/JMATrigonometric.h"
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj();
|
||||
extern "C" void setup__14mDoLib_clipperFffff();
|
||||
extern "C" void mDoLib_project__FP3VecP3Vec();
|
||||
extern "C" void mDoLib_pos2camera__FP3VecP3Vec();
|
||||
extern "C" void __sinit_m_Do_lib_cpp();
|
||||
extern "C" void __dt__11J3DUClipperFv();
|
||||
extern "C" u8 mClipper__14mDoLib_clipper[92];
|
||||
extern "C" f32 mSystemFar__14mDoLib_clipper;
|
||||
extern "C" f32 mFovyRate__14mDoLib_clipper;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void init__11J3DUClipperFv();
|
||||
extern "C" void calcViewFrustum__11J3DUClipperFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451B70-80451B74 000170 0004+00 1/1 0/0 0/0 .sdata2 @3634 */
|
||||
SECTION_SDATA2 static f32 lit_3634 = 0.125f;
|
||||
|
||||
/* 80451B74-80451B78 000174 0004+00 1/1 0/0 0/0 .sdata2 @3635 */
|
||||
SECTION_SDATA2 static f32 lit_3635 = 1.0f / 100.0f;
|
||||
|
||||
/* 80451B78-80451B80 000178 0008+00 1/1 0/0 0/0 .sdata2 @3638 */
|
||||
SECTION_SDATA2 static f64 lit_3638 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8001513C-8001528C 00FA7C 0150+00 0/0 3/3 2/2 .text
|
||||
* mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj */
|
||||
#ifdef NONMATCHING
|
||||
bool mDoLib_setResTimgObj(ResTIMG const* res, _GXTexObj* o_texObj, u32 param_2,
|
||||
_GXTlutObj* o_tlutObj) {
|
||||
if (res->indexTexture) {
|
||||
GXInitTlutObj(o_tlutObj, (void*)(res + res->paletteOffset), (GXTlutFmt)res->colorFormat,
|
||||
res->numColors);
|
||||
GXInitTexObjCI(o_texObj, (void*)(res + res->imageOffset), res->width, res->height,
|
||||
(GXCITexFmt)res->format, (GXTexWrapMode)res->wrapS,
|
||||
(GXTexWrapMode)res->wrapT, 1 - res->mipmapCount, param_2);
|
||||
} else {
|
||||
GXInitTexObj(o_texObj, (void*)(res + res->imageOffset), res->width, res->height,
|
||||
(GXTexFmt)res->format, (GXTexWrapMode)res->wrapS, (GXTexWrapMode)res->wrapT,
|
||||
(s32)1 - res->mipmapCount);
|
||||
}
|
||||
GXInitTexObjLOD(o_texObj, (GXTexFilter)res->minFilter, (GXTexFilter)res->magFilter,
|
||||
(f32)res->minLOD * 0.125f, (f32)res->maxLOD * 0.125f, (f32)res->LODBias * 0.01f,
|
||||
(s32)res->biasClamp, (s32)res->doEdgeLOD, (GXAnisotropy)res->maxAnisotropy);
|
||||
u8 mDoLib_setResTimgObj(ResTIMG const* res, _GXTexObj* o_texObj, u32 tlut_name,
|
||||
_GXTlutObj* o_tlutObj) {
|
||||
ResTIMG* _res = (ResTIMG*)res;
|
||||
|
||||
return res->indexTexture;
|
||||
if (_res->indexTexture) {
|
||||
GXInitTlutObj(o_tlutObj, (void*)((u8*)_res + _res->paletteOffset),
|
||||
(GXTlutFmt)_res->colorFormat, _res->numColors);
|
||||
GXInitTexObjCI(o_texObj, (void*)((u8*)_res + _res->imageOffset), _res->width, _res->height,
|
||||
(GXCITexFmt)_res->format, (GXTexWrapMode)_res->wrapS,
|
||||
(GXTexWrapMode)_res->wrapT, _res->mipmapCount > 1, tlut_name);
|
||||
} else {
|
||||
GXInitTexObj(o_texObj, (void*)((u8*)_res + _res->imageOffset), _res->width, _res->height,
|
||||
(GXTexFmt)_res->format, (GXTexWrapMode)_res->wrapS, (GXTexWrapMode)_res->wrapT,
|
||||
_res->mipmapCount > 1);
|
||||
}
|
||||
GXInitTexObjLOD(o_texObj, (GXTexFilter)_res->minFilter, (GXTexFilter)_res->magFilter,
|
||||
(f32)_res->minLOD * 0.125f, (f32)_res->maxLOD * 0.125f,
|
||||
(f32)_res->LODBias * 0.01f, (s32)_res->biasClamp, (s32)_res->doEdgeLOD,
|
||||
(GXAnisotropy)_res->maxAnisotropy);
|
||||
|
||||
return _res->indexTexture;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool mDoLib_setResTimgObj(ResTIMG const* param_0, _GXTexObj* param_1, u32 param_2,
|
||||
_GXTlutObj* param_3) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_lib/mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803DD8E4-803DD940 00A604 005C+00 2/2 5/5 5/5 .bss mClipper__14mDoLib_clipper */
|
||||
J3DUClipper mDoLib_clipper::mClipper;
|
||||
|
|
@ -94,9 +45,6 @@ f32 mDoLib_clipper::mSystemFar;
|
|||
/* 80450C74-80450C78 000174 0004+00 1/1 1/1 0/0 .sbss mFovyRate__14mDoLib_clipper */
|
||||
f32 mDoLib_clipper::mFovyRate;
|
||||
|
||||
/* 80451B80-80451B84 000180 0004+00 1/1 0/0 0/0 .sdata2 @3739 */
|
||||
SECTION_SDATA2 static f32 lit_3739 = 182.04444885253906f;
|
||||
|
||||
/* 8001528C-80015310 00FBCC 0084+00 0/0 1/1 0/0 .text setup__14mDoLib_clipperFffff */
|
||||
void mDoLib_clipper::setup(f32 fovy, f32 aspect, f32 near, f32 far) {
|
||||
mClipper.setFovy(fovy);
|
||||
|
|
@ -111,56 +59,70 @@ void mDoLib_clipper::setup(f32 fovy, f32 aspect, f32 near, f32 far) {
|
|||
mFovyRate = cM_scos(tmp) / cM_ssin(tmp);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451B84-80451B88 000184 0004+00 2/2 0/0 0/0 .sdata2 @3784 */
|
||||
SECTION_SDATA2 static u8 lit_3784[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80451B88-80451B8C 000188 0004+00 1/1 0/0 0/0 .sdata2 @3785 */
|
||||
SECTION_SDATA2 static f32 lit_3785 = 500000.0f;
|
||||
|
||||
/* 80451B8C-80451B90 00018C 0004+00 1/1 0/0 0/0 .sdata2 @3786 */
|
||||
SECTION_SDATA2 static f32 lit_3786 = 0.5f;
|
||||
|
||||
/* 80451B90-80451B94 000190 0004+00 1/1 0/0 0/0 .sdata2 @3787 */
|
||||
SECTION_SDATA2 static f32 lit_3787 = 2.0f;
|
||||
|
||||
/* 80451B94-80451B98 000194 0004+00 1/1 0/0 0/0 .sdata2 @3788 */
|
||||
SECTION_SDATA2 static f32 lit_3788 = 304.0f;
|
||||
|
||||
/* 80451B98-80451B9C 000198 0004+00 1/1 0/0 0/0 .sdata2 @3789 */
|
||||
SECTION_SDATA2 static f32 lit_3789 = 608.0f;
|
||||
|
||||
/* 80451B9C-80451BA0 00019C 0004+00 1/1 0/0 0/0 .sdata2 @3790 */
|
||||
SECTION_SDATA2 static f32 lit_3790 = 224.0f;
|
||||
|
||||
/* 80451BA0-80451BA8 0001A0 0004+04 1/1 0/0 0/0 .sdata2 @3791 */
|
||||
SECTION_SDATA2 static f32 lit_3791[1 + 1 /* padding */] = {
|
||||
448.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80015310-800154EC 00FC50 01DC+00 0/0 21/21 23/23 .text mDoLib_project__FP3VecP3Vec */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoLib_project(Vec* param_0, Vec* param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_lib/mDoLib_project__FP3VecP3Vec.s"
|
||||
void mDoLib_project(Vec* src, Vec* dst) {
|
||||
if (dComIfGd_getView() == NULL) {
|
||||
dst->x = 0.0f;
|
||||
dst->y = 0.0f;
|
||||
dst->z = 0.0f;
|
||||
return;
|
||||
}
|
||||
Mtx44* projMtx = dComIfGd_getProjViewMtx();
|
||||
Vec multVec;
|
||||
cMtx_multVec(*projMtx, src, &multVec);
|
||||
|
||||
float calcFloat = (src->x * (*dComIfGd_getProjViewMtx())[3][0]) +
|
||||
(src->y * (*dComIfGd_getProjViewMtx())[3][1]) +
|
||||
(src->z * (*dComIfGd_getProjViewMtx())[3][2]) +
|
||||
(*dComIfGd_getProjViewMtx())[3][3];
|
||||
if (multVec.z >= 0.0f) {
|
||||
multVec.z = 0.0f;
|
||||
}
|
||||
float f3;
|
||||
if (calcFloat <= 0.0f) {
|
||||
if (calcFloat == 0.0f) {
|
||||
dst->z = multVec.z * 500000.0f;
|
||||
} else {
|
||||
dst->z = multVec.z * (0.5f / calcFloat);
|
||||
}
|
||||
f3 = 500000.0f;
|
||||
} else {
|
||||
f3 = 0.5f / calcFloat;
|
||||
dst->z = multVec.z * f3;
|
||||
}
|
||||
|
||||
view_port_class* viewPort = dComIfGd_getViewport();
|
||||
float xOffset;
|
||||
float yOffset;
|
||||
float xSize;
|
||||
float ySize;
|
||||
if (viewPort->mXOrig != 0.0f) {
|
||||
xOffset = (0.5f * ((2.0f * viewPort->mXOrig) + viewPort->mWidth)) - 304.0f;
|
||||
xSize = 608.0f;
|
||||
} else {
|
||||
xOffset = viewPort->mXOrig;
|
||||
xSize = viewPort->mWidth;
|
||||
}
|
||||
|
||||
if (viewPort->mYOrig != 0.0f) {
|
||||
yOffset = (0.5f * ((2.0f * viewPort->mYOrig) + viewPort->mHeight)) - 224.0f;
|
||||
ySize = 448.0f;
|
||||
} else {
|
||||
yOffset = viewPort->mYOrig;
|
||||
ySize = viewPort->mHeight;
|
||||
}
|
||||
|
||||
dst->x = ((0.5f + (multVec.x * f3)) * xSize) + xOffset;
|
||||
dst->y = ((0.5f + (multVec.y * (-f3))) * ySize) + yOffset;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800154EC-80015544 00FE2C 0058+00 0/0 2/2 9/9 .text mDoLib_pos2camera__FP3VecP3Vec */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoLib_pos2camera(Vec* param_0, Vec* param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_lib/mDoLib_pos2camera__FP3VecP3Vec.s"
|
||||
void mDoLib_pos2camera(Vec* src, Vec* dst) {
|
||||
if (dComIfGd_getView() == NULL) {
|
||||
dst->x = 0.0f;
|
||||
dst->y = 0.0f;
|
||||
dst->z = 0.0f;
|
||||
return;
|
||||
}
|
||||
cMtx_multVec(dComIfGd_getView()->mViewMtx, src, dst);
|
||||
}
|
||||
#pragma pop
|
||||
Loading…
Reference in New Issue