Merge pull request #379 from Jcw87/JAISeq

JAISeq, JAISe, and others
This commit is contained in:
hatal175
2023-07-21 14:08:32 +03:00
committed by GitHub
34 changed files with 1050 additions and 846 deletions
+4 -4
View File
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 29.223610% | 1051040 | 3596544
.text | 29.253861% | 1052128 | 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 | 36.684813% | 1474976 | 4020672
Total | 36.711873% | 1476064 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 36.684813% | 1474976 | 4020672
main.dol | 36.711873% | 1476064 | 4020672
RELs | 33.883741% | 3896740 | 11500324
Total | 34.609351% | 5371716 | 15520996
Total | 34.616361% | 5372804 | 15520996
## RELs
@@ -1,31 +0,0 @@
lbl_802A14FC:
/* 802A14FC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A1500 7C 08 02 A6 */ mflr r0
/* 802A1504 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A1508 39 61 00 20 */ addi r11, r1, 0x20
/* 802A150C 48 0C 0C D1 */ bl _savegpr_29
/* 802A1510 7C 7D 1B 78 */ mr r29, r3
/* 802A1514 7C 9E 23 78 */ mr r30, r4
/* 802A1518 7C BF 2B 78 */ mr r31, r5
/* 802A151C 88 05 00 00 */ lbz r0, 0(r5)
/* 802A1520 98 01 00 0C */ stb r0, 0xc(r1)
/* 802A1524 38 A1 00 0C */ addi r5, r1, 0xc
/* 802A1528 4B FF FA 69 */ bl prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity
/* 802A152C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A1530 41 82 00 28 */ beq lbl_802A1558
/* 802A1534 88 1D 02 BD */ lbz r0, 0x2bd(r29)
/* 802A1538 28 00 00 01 */ cmplwi r0, 1
/* 802A153C 40 82 00 1C */ bne lbl_802A1558
/* 802A1540 88 1F 00 00 */ lbz r0, 0(r31)
/* 802A1544 98 01 00 08 */ stb r0, 8(r1)
/* 802A1548 7F A3 EB 78 */ mr r3, r29
/* 802A154C 7F C4 F3 78 */ mr r4, r30
/* 802A1550 38 A1 00 08 */ addi r5, r1, 8
/* 802A1554 4B FF FD F5 */ bl mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity
lbl_802A1558:
/* 802A1558 39 61 00 20 */ addi r11, r1, 0x20
/* 802A155C 48 0C 0C CD */ bl _restgpr_29
/* 802A1560 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A1564 7C 08 03 A6 */ mtlr r0
/* 802A1568 38 21 00 20 */ addi r1, r1, 0x20
/* 802A156C 4E 80 00 20 */ blr
@@ -1,43 +0,0 @@
lbl_802A0B64:
/* 802A0B64 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A0B68 7C 08 02 A6 */ mflr r0
/* 802A0B6C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A0B70 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0B74 48 0C 16 65 */ bl _savegpr_28
/* 802A0B78 7C 7C 1B 78 */ mr r28, r3
/* 802A0B7C 7C 9D 23 78 */ mr r29, r4
/* 802A0B80 7C BE 2B 78 */ mr r30, r5
/* 802A0B84 7C DF 33 78 */ mr r31, r6
/* 802A0B88 90 E3 03 9C */ stw r7, 0x39c(r3)
/* 802A0B8C 7D 04 43 78 */ mr r4, r8
/* 802A0B90 48 00 01 15 */ bl reserveChildTracks___6JAISeqFi
/* 802A0B94 80 1D 00 00 */ lwz r0, 0(r29)
/* 802A0B98 90 01 00 0C */ stw r0, 0xc(r1)
/* 802A0B9C 7F 83 E3 78 */ mr r3, r28
/* 802A0BA0 38 81 00 0C */ addi r4, r1, 0xc
/* 802A0BA4 7F C5 F3 78 */ mr r5, r30
/* 802A0BA8 7F E6 FB 78 */ mr r6, r31
/* 802A0BAC 48 00 17 7D */ bl func_802A2328
/* 802A0BB0 80 1C 03 A4 */ lwz r0, 0x3a4(r28)
/* 802A0BB4 28 00 00 00 */ cmplwi r0, 0
/* 802A0BB8 41 82 00 2C */ beq lbl_802A0BE4
/* 802A0BBC 80 1D 00 00 */ lwz r0, 0(r29)
/* 802A0BC0 90 01 00 08 */ stw r0, 8(r1)
/* 802A0BC4 80 7C 03 A4 */ lwz r3, 0x3a4(r28)
/* 802A0BC8 38 81 00 08 */ addi r4, r1, 8
/* 802A0BCC 81 83 00 00 */ lwz r12, 0(r3)
/* 802A0BD0 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802A0BD4 7D 89 03 A6 */ mtctr r12
/* 802A0BD8 4E 80 04 21 */ bctrl
/* 802A0BDC 90 7C 03 A8 */ stw r3, 0x3a8(r28)
/* 802A0BE0 48 00 00 0C */ b lbl_802A0BEC
lbl_802A0BE4:
/* 802A0BE4 38 00 00 00 */ li r0, 0
/* 802A0BE8 90 1C 03 A8 */ stw r0, 0x3a8(r28)
lbl_802A0BEC:
/* 802A0BEC 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0BF0 48 0C 16 35 */ bl _restgpr_28
/* 802A0BF4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A0BF8 7C 08 03 A6 */ mtlr r0
/* 802A0BFC 38 21 00 20 */ addi r1, r1, 0x20
/* 802A0C00 4E 80 00 20 */ blr
@@ -1,16 +0,0 @@
lbl_802A1730:
/* 802A1730 54 85 E1 3E */ srwi r5, r4, 4
/* 802A1734 54 80 F0 BA */ rlwinm r0, r4, 0x1e, 2, 0x1d
/* 802A1738 7C 63 02 14 */ add r3, r3, r0
/* 802A173C 80 63 01 D8 */ lwz r3, 0x1d8(r3)
/* 802A1740 28 03 00 00 */ cmplwi r3, 0
/* 802A1744 41 82 00 1C */ beq lbl_802A1760
/* 802A1748 54 A0 20 36 */ slwi r0, r5, 4
/* 802A174C 7C 00 20 50 */ subf r0, r0, r4
/* 802A1750 54 00 10 3A */ slwi r0, r0, 2
/* 802A1754 7C 63 02 14 */ add r3, r3, r0
/* 802A1758 80 63 01 30 */ lwz r3, 0x130(r3)
/* 802A175C 4E 80 00 20 */ blr
lbl_802A1760:
/* 802A1760 38 60 00 00 */ li r3, 0
/* 802A1764 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_802A176C:
/* 802A176C 38 63 03 70 */ addi r3, r3, 0x370
/* 802A1770 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_802A1728:
/* 802A1728 38 63 00 A8 */ addi r3, r3, 0xa8
/* 802A172C 4E 80 00 20 */ blr
@@ -1,43 +0,0 @@
lbl_802A0C04:
/* 802A0C04 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A0C08 7C 08 02 A6 */ mflr r0
/* 802A0C0C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A0C10 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0C14 48 0C 15 C9 */ bl _savegpr_29
/* 802A0C18 7C 7D 1B 78 */ mr r29, r3
/* 802A0C1C 7C 9E 23 78 */ mr r30, r4
/* 802A0C20 7C BF 2B 78 */ mr r31, r5
/* 802A0C24 38 7D 00 A8 */ addi r3, r29, 0xa8
/* 802A0C28 80 9D 03 94 */ lwz r4, 0x394(r29)
/* 802A0C2C 80 BD 03 98 */ lwz r5, 0x398(r29)
/* 802A0C30 4B FF 0D D9 */ bl setSeqData__8JASTrackFPvUl
/* 802A0C34 80 1D 00 08 */ lwz r0, 8(r29)
/* 802A0C38 28 00 00 00 */ cmplwi r0, 0
/* 802A0C3C 41 82 00 14 */ beq lbl_802A0C50
/* 802A0C40 7F A3 EB 78 */ mr r3, r29
/* 802A0C44 38 9D 00 A8 */ addi r4, r29, 0xa8
/* 802A0C48 48 00 1D 95 */ bl initTrack_JAISound___8JAISoundFP8JASTrack
/* 802A0C4C 48 00 00 20 */ b lbl_802A0C6C
lbl_802A0C50:
/* 802A0C50 38 7D 00 A8 */ addi r3, r29, 0xa8
/* 802A0C54 38 80 00 01 */ li r4, 1
/* 802A0C58 4B FF 07 ED */ bl setChannelMgrCount__8JASTrackFUl
/* 802A0C5C 38 7D 00 A8 */ addi r3, r29, 0xa8
/* 802A0C60 38 80 00 00 */ li r4, 0
/* 802A0C64 38 BD 03 80 */ addi r5, r29, 0x380
/* 802A0C68 4B FF 0D 8D */ bl assignExtBuffer__8JASTrackFUlP14JASSoundParams
lbl_802A0C6C:
/* 802A0C6C 88 1F 00 00 */ lbz r0, 0(r31)
/* 802A0C70 98 01 00 08 */ stb r0, 8(r1)
/* 802A0C74 7F A3 EB 78 */ mr r3, r29
/* 802A0C78 7F C4 F3 78 */ mr r4, r30
/* 802A0C7C 38 A1 00 08 */ addi r5, r1, 8
/* 802A0C80 48 00 06 C9 */ bl mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity
/* 802A0C84 38 7D 00 A8 */ addi r3, r29, 0xa8
/* 802A0C88 4B FF 0D A1 */ bl startSeq__8JASTrackFv
/* 802A0C8C 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0C90 48 0C 15 99 */ bl _restgpr_29
/* 802A0C94 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A0C98 7C 08 03 A6 */ mtlr r0
/* 802A0C9C 38 21 00 20 */ addi r1, r1, 0x20
/* 802A0CA0 4E 80 00 20 */ blr
@@ -1,67 +0,0 @@
lbl_802A0F90:
/* 802A0F90 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A0F94 7C 08 02 A6 */ mflr r0
/* 802A0F98 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A0F9C 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0FA0 48 0C 12 3D */ bl _savegpr_29
/* 802A0FA4 7C 7F 1B 78 */ mr r31, r3
/* 802A0FA8 7C 9D 23 78 */ mr r29, r4
/* 802A0FAC 7C BE 2B 78 */ mr r30, r5
/* 802A0FB0 88 03 00 1E */ lbz r0, 0x1e(r3)
/* 802A0FB4 28 00 00 06 */ cmplwi r0, 6
/* 802A0FB8 41 81 00 B8 */ bgt lbl_802A1070
/* 802A0FBC 3C A0 80 3D */ lis r5, lit_852@ha /* 0x803C98D8@ha */
/* 802A0FC0 38 A5 98 D8 */ addi r5, r5, lit_852@l /* 0x803C98D8@l */
/* 802A0FC4 54 00 10 3A */ slwi r0, r0, 2
/* 802A0FC8 7C 05 00 2E */ lwzx r0, r5, r0
/* 802A0FCC 7C 09 03 A6 */ mtctr r0
/* 802A0FD0 4E 80 04 20 */ bctr
/* 802A0FD4 38 60 00 00 */ li r3, 0
/* 802A0FD8 88 1F 00 1F */ lbz r0, 0x1f(r31)
/* 802A0FDC 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 802A0FE0 98 1F 00 1F */ stb r0, 0x1f(r31)
/* 802A0FE4 38 60 00 01 */ li r3, 1
/* 802A0FE8 88 1F 00 1F */ lbz r0, 0x1f(r31)
/* 802A0FEC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 802A0FF0 98 1F 00 1F */ stb r0, 0x1f(r31)
/* 802A0FF4 48 00 00 7C */ b lbl_802A1070
/* 802A0FF8 4B FF FE E5 */ bl prepare_getSeqData___6JAISeqFv
/* 802A0FFC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A1000 41 82 00 70 */ beq lbl_802A1070
/* 802A1004 38 00 00 05 */ li r0, 5
/* 802A1008 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 802A100C 88 1E 00 00 */ lbz r0, 0(r30)
/* 802A1010 98 01 00 0C */ stb r0, 0xc(r1)
/* 802A1014 7F E3 FB 78 */ mr r3, r31
/* 802A1018 7F A4 EB 78 */ mr r4, r29
/* 802A101C 38 A1 00 0C */ addi r5, r1, 0xc
/* 802A1020 4B FF FB E5 */ bl playSeqData___6JAISeqFRC14JASSoundParams16JAISoundActivity
/* 802A1024 38 60 00 01 */ li r3, 1
/* 802A1028 48 00 00 4C */ b lbl_802A1074
/* 802A102C 4B FF FE B1 */ bl prepare_getSeqData___6JAISeqFv
/* 802A1030 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A1034 41 82 00 0C */ beq lbl_802A1040
/* 802A1038 38 00 00 03 */ li r0, 3
/* 802A103C 98 1F 00 1E */ stb r0, 0x1e(r31)
lbl_802A1040:
/* 802A1040 38 60 00 00 */ li r3, 0
/* 802A1044 48 00 00 30 */ b lbl_802A1074
/* 802A1048 38 00 00 05 */ li r0, 5
/* 802A104C 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 802A1050 88 1E 00 00 */ lbz r0, 0(r30)
/* 802A1054 98 01 00 08 */ stb r0, 8(r1)
/* 802A1058 38 A1 00 08 */ addi r5, r1, 8
/* 802A105C 4B FF FB A9 */ bl playSeqData___6JAISeqFRC14JASSoundParams16JAISoundActivity
/* 802A1060 38 60 00 01 */ li r3, 1
/* 802A1064 48 00 00 10 */ b lbl_802A1074
/* 802A1068 38 60 00 01 */ li r3, 1
/* 802A106C 48 00 00 08 */ b lbl_802A1074
lbl_802A1070:
/* 802A1070 38 60 00 00 */ li r3, 0
lbl_802A1074:
/* 802A1074 39 61 00 20 */ addi r11, r1, 0x20
/* 802A1078 48 0C 11 B1 */ bl _restgpr_29
/* 802A107C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A1080 7C 08 03 A6 */ mtlr r0
/* 802A1084 38 21 00 20 */ addi r1, r1, 0x20
/* 802A1088 4E 80 00 20 */ blr
@@ -1,53 +0,0 @@
lbl_802A0EDC:
/* 802A0EDC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A0EE0 7C 08 02 A6 */ mflr r0
/* 802A0EE4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A0EE8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802A0EEC 7C 7F 1B 78 */ mr r31, r3
/* 802A0EF0 80 83 00 18 */ lwz r4, 0x18(r3)
/* 802A0EF4 90 81 00 0C */ stw r4, 0xc(r1)
/* 802A0EF8 3C 04 00 01 */ addis r0, r4, 1
/* 802A0EFC 28 00 FF FF */ cmplwi r0, 0xffff
/* 802A0F00 40 82 00 0C */ bne lbl_802A0F0C
/* 802A0F04 38 60 00 01 */ li r3, 1
/* 802A0F08 48 00 00 74 */ b lbl_802A0F7C
lbl_802A0F0C:
/* 802A0F0C 80 7F 03 A0 */ lwz r3, 0x3a0(r31)
/* 802A0F10 80 63 00 0C */ lwz r3, 0xc(r3)
/* 802A0F14 90 81 00 08 */ stw r4, 8(r1)
/* 802A0F18 38 81 00 08 */ addi r4, r1, 8
/* 802A0F1C 38 BF 03 94 */ addi r5, r31, 0x394
/* 802A0F20 81 83 00 00 */ lwz r12, 0(r3)
/* 802A0F24 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802A0F28 7D 89 03 A6 */ mtctr r12
/* 802A0F2C 4E 80 04 21 */ bctrl
/* 802A0F30 2C 03 00 01 */ cmpwi r3, 1
/* 802A0F34 41 82 00 2C */ beq lbl_802A0F60
/* 802A0F38 40 80 00 10 */ bge lbl_802A0F48
/* 802A0F3C 2C 03 00 00 */ cmpwi r3, 0
/* 802A0F40 40 80 00 14 */ bge lbl_802A0F54
/* 802A0F44 48 00 00 34 */ b lbl_802A0F78
lbl_802A0F48:
/* 802A0F48 2C 03 00 03 */ cmpwi r3, 3
/* 802A0F4C 40 80 00 2C */ bge lbl_802A0F78
/* 802A0F50 48 00 00 20 */ b lbl_802A0F70
lbl_802A0F54:
/* 802A0F54 38 00 00 02 */ li r0, 2
/* 802A0F58 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 802A0F5C 48 00 00 1C */ b lbl_802A0F78
lbl_802A0F60:
/* 802A0F60 7F E3 FB 78 */ mr r3, r31
/* 802A0F64 48 00 17 09 */ bl increasePrepareCount_JAISound___8JAISoundFv
/* 802A0F68 38 60 00 00 */ li r3, 0
/* 802A0F6C 48 00 00 10 */ b lbl_802A0F7C
lbl_802A0F70:
/* 802A0F70 38 60 00 01 */ li r3, 1
/* 802A0F74 48 00 00 08 */ b lbl_802A0F7C
lbl_802A0F78:
/* 802A0F78 38 60 00 00 */ li r3, 0
lbl_802A0F7C:
/* 802A0F7C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802A0F80 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A0F84 7C 08 03 A6 */ mtlr r0
/* 802A0F88 38 21 00 20 */ addi r1, r1, 0x20
/* 802A0F8C 4E 80 00 20 */ blr
@@ -1,42 +0,0 @@
lbl_802A0E48:
/* 802A0E48 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A0E4C 7C 08 02 A6 */ mflr r0
/* 802A0E50 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A0E54 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0E58 48 0C 13 79 */ bl _savegpr_26
/* 802A0E5C 7C 7A 1B 78 */ mr r26, r3
/* 802A0E60 3B 80 00 00 */ li r28, 0
/* 802A0E64 3B E0 00 00 */ li r31, 0
lbl_802A0E68:
/* 802A0E68 38 1F 01 D8 */ addi r0, r31, 0x1d8
/* 802A0E6C 7F BA 00 2E */ lwzx r29, r26, r0
/* 802A0E70 28 1D 00 00 */ cmplwi r29, 0
/* 802A0E74 41 82 00 40 */ beq lbl_802A0EB4
/* 802A0E78 3B 60 00 00 */ li r27, 0
/* 802A0E7C 3B C0 00 00 */ li r30, 0
lbl_802A0E80:
/* 802A0E80 38 1E 01 30 */ addi r0, r30, 0x130
/* 802A0E84 7C 7D 00 2E */ lwzx r3, r29, r0
/* 802A0E88 28 03 00 00 */ cmplwi r3, 0
/* 802A0E8C 41 82 00 0C */ beq lbl_802A0E98
/* 802A0E90 38 80 00 01 */ li r4, 1
/* 802A0E94 4B FF 04 89 */ bl __dt__8JASTrackFv
lbl_802A0E98:
/* 802A0E98 3B 7B 00 01 */ addi r27, r27, 1
/* 802A0E9C 28 1B 00 10 */ cmplwi r27, 0x10
/* 802A0EA0 3B DE 00 04 */ addi r30, r30, 4
/* 802A0EA4 41 80 FF DC */ blt lbl_802A0E80
/* 802A0EA8 7F A3 EB 78 */ mr r3, r29
/* 802A0EAC 38 80 00 01 */ li r4, 1
/* 802A0EB0 4B FF 04 6D */ bl __dt__8JASTrackFv
lbl_802A0EB4:
/* 802A0EB4 3B 9C 00 01 */ addi r28, r28, 1
/* 802A0EB8 28 1C 00 02 */ cmplwi r28, 2
/* 802A0EBC 3B FF 00 04 */ addi r31, r31, 4
/* 802A0EC0 41 80 FF A8 */ blt lbl_802A0E68
/* 802A0EC4 39 61 00 20 */ addi r11, r1, 0x20
/* 802A0EC8 48 0C 13 55 */ bl _restgpr_26
/* 802A0ECC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A0ED0 7C 08 03 A6 */ mtlr r0
/* 802A0ED4 38 21 00 20 */ addi r1, r1, 0x20
/* 802A0ED8 4E 80 00 20 */ blr
+10
View File
@@ -16,6 +16,16 @@ struct ResTLUT;
struct J2DGXColorS10 : public GXColorS10 {
/* 802F1B90 */ J2DGXColorS10();
/*
J2DGXColorS10& operator=(const GXColorS10& other) {
r = other.r;
g = other.g;
b = other.b;
a = other.a;
return *this;
}
*/
};
struct J2DTevSwapModeInfo;
+48 -19
View File
@@ -124,11 +124,31 @@ private:
/* 0x0 */ J2DIndTexCoordScaleInfo mInfo;
}; // Size: 0x2
struct J2DIndTevStageInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
/* 0x6 */ u8 field_0x6;
/* 0x7 */ u8 field_0x7;
/* 0x8 */ int field_0x8;
};
inline u32 J2DCalcIndTevStage(J2DIndTevStageInfo info) {
return (info.field_0x8 << 22) | (info.field_0x7 << 21) | (info.field_0x6 << 20) |
(info.field_0x3 << 16) | (info.field_0x5 << 11) | (info.field_0x4 << 8) |
(info.field_0x2 << 4) | (info.field_0x1 << 2) | info.field_0x0;
}
class J2DIndTevStage {
public:
/* 802EA044 */ void load(u8);
/* 802F18A0 */ J2DIndTevStage();
void setIndTevStageInfo(const J2DIndTevStageInfo& info) { mFlags = J2DCalcIndTevStage(info); }
private:
/* 0x0 */ u32 mFlags;
@@ -143,24 +163,6 @@ private:
GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); }
};
struct J2DIndTevStageInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
/* 0x6 */ u8 field_0x6;
/* 0x7 */ u8 field_0x7;
/* 0x8 */ int field_0x8;
};
inline u32 J2DCalcIndTevStage(J2DIndTevStageInfo info) {
return (info.field_0x8 << 22) | (info.field_0x7 << 21) | (info.field_0x6 << 20) |
(info.field_0x3 << 16) | (info.field_0x5 << 11) | (info.field_0x4 << 8) |
(info.field_0x2 << 4) | (info.field_0x1 << 2) | info.field_0x0;
}
struct J2DTexCoordInfo {
/* 0x0 */ u8 mTexGenType;
/* 0x1 */ u8 mTexGenSrc;
@@ -191,18 +193,26 @@ struct J2DTevOrderInfo {
/* 0x0 */ u8 mTexCoord;
/* 0x1 */ u8 mTexMap;
/* 0x2 */ u8 mColor;
/* 0x3 */ u8 field_0x3;
J2DTevOrderInfo& operator=(const J2DTevOrderInfo& other) {
mTexCoord = other.mTexCoord;
mTexMap = other.mTexMap;
mColor = other.mColor;
return *this;
}
};
class J2DTevOrder {
public:
/* 802F1B70 */ J2DTevOrder();
void setTevOrderInfo(const J2DTevOrderInfo& info) {mTevOrderInfo = info; }
GXChannelID getColor() const { return (GXChannelID)mTevOrderInfo.mColor; }
GXTexMapID getTexMap() const { return (GXTexMapID)mTevOrderInfo.mTexMap; }
GXTexCoordID getTexCoord() const { return (GXTexCoordID)mTevOrderInfo.mTexCoord; }
/* 0x0 */ J2DTevOrderInfo mTevOrderInfo;
/* 0x4 */ u8 field_0x4;
};
struct J2DTevStageInfo {
@@ -240,6 +250,11 @@ public:
/* 802F1940 */ J2DTevStage();
/* 802F19A8 */ void setTevStageInfo(J2DTevStageInfo const&);
void setStageNo(u32 param_0) {
field_0x0 = (param_0 << 1) - 0x40;
field_0x4 = (param_0 << 1) - 0x3f;
}
void setTevSwapModeInfo(const J2DTevSwapModeInfo& swapInfo) {
setTexSel(swapInfo.field_0x1);
setRasSel(swapInfo.field_0x0);
@@ -358,10 +373,24 @@ private:
/* 0x7 */ u8 field_0x7;
};
struct J2DTevSwapModeTableInfo {
/* 0x0 */ u8 field_0x0;
/* 0x1 */ u8 field_0x1;
/* 0x2 */ u8 field_0x2;
/* 0x3 */ u8 field_0x3;
};
inline u8 J2DCalcTevSwapTable(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
return (param_0 << 6) + (param_1 << 4) + (param_2 << 2) + param_3;
}
class J2DTevSwapModeTable {
public:
/* 802F1934 */ J2DTevSwapModeTable();
void setTevSwapModeTableInfo(const J2DTevSwapModeTableInfo& info) {
field_0x0 = J2DCalcTevSwapTable(info.field_0x0, info.field_0x1, info.field_0x2, info.field_0x3);
}
u8 getR() { return field_0x0 >> 6 & 3; }
u8 getG() { return field_0x0 >> 4 & 3; }
u8 getB() { return field_0x0 >> 2 & 3; }
+8 -1
View File
@@ -1,14 +1,21 @@
#ifndef JAIAUDIBLE_H
#define JAIAUDIBLE_H
#include "JSystem/JGeometry.h"
#include "dolphin/types.h"
struct JASSoundParams;
struct JAIAudible {
class JAIAudible {
public:
virtual ~JAIAudible();
virtual JASSoundParams* getOuterParams(int) = 0;
virtual void calc() = 0;
JGeometry::TVec3<float>& getPos() { return mPos; }
void setPos(const JGeometry::TVec3<float>& other) { mPos.set(other); }
/* 0x04 */ JGeometry::TVec3<float> mPos;
};
#endif /* JAIAUDIBLE_H */
+51 -1
View File
@@ -1,6 +1,56 @@
#ifndef JAISE_H
#define JAISE_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JSupport/JSUList.h"
class JAISeMgr;
class JAISe : public JSULink<JAISe>, public JAISound {
public:
class TInner {
public:
TInner() : mSeqData(NULL, 0) {}
/* 0x000 */ u32 mProperPriority;
/* 0x004 */ u32 mPriority;
/* 0x008 */ JASSoundParams mSoundParams;
/* 0x01c */ JASTrack track;
/* 0x264 */ JAISeqData mSeqData;
/* 0x26c */ u8 field_0x26c;
/* 0x270 */ JAISeMgr* seMgr;
/* 0x274 */ JAISoundStrategyMgr<JAISe>* mSoundStrategyMgr;
/* 0x278 */ JAISoundStrategyMgr__unknown<JAISe>* field_0x278;
/* 0x27c */ JAITempoMgr mTempoMgr;
};
/* 8029F6D8 */ virtual bool getNumChild() const;
/* 8029F6E0 */ virtual bool getChild(int);
/* 8029F6E8 */ virtual void releaseChild(int);
/* 8029F84C */ virtual JASTrack* getTrack();
/* 8029F854 */ virtual JASTrack* getChildTrack(int);
/* 8029F864 */ virtual JAISe* asSe();
/* 8029F868 */ virtual JAITempoMgr* getTempoMgr();
/* 8029F5C8 */ virtual bool JAISound_tryDie_();
/* 8029F03C */ JAISe(JAISeMgr*, JAISoundStrategyMgr<JAISe>*, u32);
/* 8029F0F8 */ void mixOut_(JASSoundParams const&);
/* 8029F214 */ void stopTrack_();
/* 8029F250 */ void startTrack_(JASSoundParams const&);
/* 8029F304 */ void JAISeCategoryMgr_mixOut_(bool, JASSoundParams const&, JAISoundActivity);
/* 8029F4CC */ void JAISeCategoryMgr_calc_();
/* 8029F650 */ void JAISeMgr_startID_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
/* 8029F6EC */ bool prepare_getSeqData_();
/* 8029F78C */ void prepare_();
JAISeqData* getSeqData() { return &inner_.mSeqData; }
u32 JAISeCategoryMgr_getProperPriority_() const { return inner_.mProperPriority; }
u32 JAISeCategoryMgr_getPriority_() const { return inner_.mPriority; }
bool isFarAway() const { return mPriority == -1; }
/* 0x0ac */ TInner inner_;
};
#endif /* JAISE_H */
+2 -22
View File
@@ -1,6 +1,7 @@
#ifndef JAISEMGR_H
#define JAISEMGR_H
#include "JSystem/JAudio2/JAISe.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JAISoundParams.h"
@@ -27,28 +28,6 @@ struct JAISeCategoryArrangement {
class JAISeMgr;
struct JAISePlaceHolder {
u8 field_0x0[0x10];
};
struct JAISe : public JAISePlaceHolder, public JAISound {
/* 8029F03C */ JAISe(JAISeMgr*, JAISoundStrategyMgr<JAISe>*, u32);
/* 8029F304 */ void JAISeCategoryMgr_mixOut_(bool, JASSoundParams const&, JAISoundActivity);
/* 8029F4CC */ void JAISeCategoryMgr_calc_();
/* 8029F650 */ void JAISeMgr_startID_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
JAISeqData* getSeqData() { return &mSeqData; }
u32 JAISeCategoryMgr_getProperPriority_() const { return mProperPriority; }
u32 JAISeCategoryMgr_getPriority_() const { return mPriority;}
bool isFarAway() const { return mPriority == -1; }
/* 0x0aa */ u8 field_0x0[2];
/* 0x0ac */ u32 mProperPriority;
/* 0x0b0 */ u32 mPriority;
/* 0x0b4 */ u8 field_0xb4[0x25c];
/* 0x310 */ JAISeqData mSeqData;
};
class JAISeCategoryMgr : public JAISeqDataUser {
public:
/* 8029F9C4 */ void JAISeMgr_calc_();
@@ -117,6 +96,7 @@ public:
}
return mAudience;
}
JAISeqDataMgr* getSeqDataMgr() { return mSeqDataMgr; }
private:
/* 0x008 */ JAIAudience* mAudience;
+50 -1
View File
@@ -1,6 +1,55 @@
#ifndef JAISEQ_H
#define JAISEQ_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JSupport/JSUList.h"
class JAISeqMgr;
class JAISoundChild;
class JAISeq : public JAISound, JSULink<JAISeq> {
public:
class TInner {
public:
TInner() : mSeqData(NULL, 0) {}
/* 0x000 */ JASTrack outputTrack;
/* 0x248 */ JASPoolAllocObject<JAISoundChild>* mSoundChild[32];
/* 0x2C8 */ JAITempoMgr mTempoMgr;
/* 0x2D8 */ JASSoundParams mSoundParams;
/* 0x2EC */ JAISeqData mSeqData;
/* 0x2F4 */ s32 field_0x39c;
/* 0x2F8 */ JAISeqMgr* seqMgr;
/* 0x2FC */ JAISoundStrategyMgr<JAISeq>* strategyMgr;
};
/* 802A1570 */ virtual s32 getNumChild() const;
/* 802A1578 */ virtual JAISoundChild* getChild(int);
/* 802A165C */ virtual void releaseChild(int);
/* 802A1768 */ virtual JAISeq* asSeq();
/* 802A1728 */ virtual JASTrack* getTrack();
/* 802A1730 */ virtual JASTrack* getChildTrack(int);
/* 802A176C */ virtual JAITempoMgr* getTempoMgr();
/* 802A12BC */ virtual bool JAISound_tryDie_();
/* 802A0A8C */ JAISeq(JAISeqMgr*, JAISoundStrategyMgr<JAISeq>*);
/* 802A0B64 */ void JAISeqMgr_startID_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*,
int, int);
/* 802A0C04 */ void playSeqData_(JASSoundParams const&, JAISoundActivity);
/* 802A0CA4 */ void reserveChildTracks_(int);
/* 802A0E48 */ void releaseChildTracks_();
/* 802A0EDC */ bool prepare_getSeqData_();
/* 802A0F90 */ bool prepare_(JASSoundParams const&, JAISoundActivity);
/* 802A108C */ void JAISeqMgr_calc_();
/* 802A1180 */ void die_();
/* 802A1348 */ void mixOut_(JASSoundParams const&, JAISoundActivity);
/* 802A14FC */ void JAISeqMgr_mixOut_(JASSoundParams const&, JAISoundActivity);
/* 0x0a8 */ TInner inner_;
/* 0x3A8 */ JAISoundStrategyMgr__unknown<JAISeq>* field_0x3a8;
};
#endif /* JAISEQ_H */
+9 -4
View File
@@ -5,16 +5,21 @@
#include "dolphin/types.h"
struct JAISeqData {
/* 0x00 */ u32 field_0x0;
JAISeqData(void* param_0, u32 param_1) {
field_0x0 = param_0;
field_0x4 = param_1;
}
/* 0x00 */ void* field_0x0;
/* 0x04 */ u32 field_0x4;
};
struct JAISeqDataRegion {
bool intersects(JAISeqData& seqData) const {
if (field_0x0 + field_0x4 < seqData.field_0x0) {
if (field_0x0 + field_0x4 < (u32)seqData.field_0x0) {
return false;
}
if (seqData.field_0x0 + seqData.field_0x4 < field_0x0) {
if ((u32)seqData.field_0x0 + seqData.field_0x4 < field_0x0) {
return false;
}
return true;
@@ -33,7 +38,7 @@ struct JAISeqDataUser {
struct JAISeqDataMgr {
virtual ~JAISeqDataMgr();
virtual void getSeqData(JAISoundID, JAISeqData*) = 0;
virtual int getSeqData(JAISoundID, JAISeqData*) = 0;
virtual int releaseSeqData() = 0;
virtual void setSeqDataUser(JAISeqDataUser*) = 0;
};
+5 -3
View File
@@ -27,11 +27,13 @@ public:
/* 802A1804 */ virtual bool isUsingSeqData(JAISeqDataRegion const&);
/* 802A1870 */ virtual int releaseSeqData(JAISeqDataRegion const&);
JAISeqDataMgr* getSeqDataMgr() { return seqDataMgr_; }
private:
/* 0x04 */ JAISoundActivity mActivity;
/* 0x08 */ void* field_0x8;
/* 0x0C */ JAIAudience* mAudience;
/* 0x10 */ JAISeqDataMgr* seqDataMgr_;
/* 0x08 */ JAIAudience* mAudience;
/* 0x0C */ JAISeqDataMgr* seqDataMgr_;
/* 0x10 */ void* field_0x10;
/* 0x14 */ JAISoundParamsMove mMove;
/* 0x64 */ JSUList<JAISeq> mSeqList;
/* 0x70 */ int field_0x70;
+58 -14
View File
@@ -53,12 +53,13 @@ struct JAISoundStatus_ {
inline bool isPlaying() { return state.unk == 5; }
inline bool isMute() { return field_0x0.flags.mute; }
inline bool isPaused() { return field_0x0.flags.paused; }
/* 0x0 */ union {
u8 value;
struct {
u8 flag1 : 1;
u8 mute : 1;
u8 paused : 1;
u8 flag3 : 1;
u8 flag4 : 1;
@@ -120,13 +121,24 @@ struct JAISoundFader {
return false;
}
inline void calc() { mIntensity = mTransition.apply(mIntensity); }
f32 getIntensity() { return mIntensity; }
/* 0x00 */ f32 mIntensity;
/* 0x04 */ JAISoundParamsTransition::TTransition mTransition;
}; // Size: 0x10
template <typename A0>
struct JAISoundStrategyMgr__unknown {
virtual void virtual2();
virtual void virtual3(A0*);
virtual void virtual4(A0*, const JASSoundParams&);
};
template <typename A0>
struct JAISoundStrategyMgr {};
struct JAISoundStrategyMgr {
virtual void virtual2();
virtual JAISoundStrategyMgr__unknown<A0>* virtual3(JAISoundID);
virtual void virtual4(JAISoundStrategyMgr__unknown<A0>*);
};
/* JAISoundStrategyMgr<JAISe> */
struct JAISoundStrategyMgr__template0 {};
/* JAISoundStrategyMgr<JAISeq> */
@@ -136,14 +148,46 @@ struct JAISoundStrategyMgr__template2 {};
class JAISoundActivity {
public:
void init() { field_0x0 = 0; }
void init() { field_0x0.value = 0; }
/* 0x0 */ u8 field_0x0;
/* 0x0 */ union {
u8 value;
struct {
u8 flag1 : 1;
u8 flag2 : 1;
u8 flag3 : 1;
u8 flag4 : 1;
u8 flag5 : 1;
u8 flag6 : 1;
u8 flag7 : 1;
u8 flag8 : 1;
} flags;
} field_0x0;
};
class JAITempoMgr {
public:
/* 0x00 */ f32 mTempo;
/* 0x04 */ JAISoundParamsTransition::TTransition field_0x4;
JAITempoMgr() { init(); }
void init() { setTempo(1.0f); }
void setTempo(f32 param_0) {
mTempo = param_0;
field_0x4.zero();
}
f32 getTempo() { return mTempo; }
void calc() { mTempo = field_0x4.apply(mTempo); }
};
class JAISoundHandle;
class JAIAudible;
class JAIAudience;
class JAISe;
class JAISeq;
class JAISoundChild;
class JAIStream;
class JAITempoMgr;
class JAISound {
public:
/* 802A21A0 */ void releaseHandle();
@@ -160,15 +204,15 @@ public:
/* 802A26B8 */ bool calc_JAISound_();
/* 802A29DC */ void initTrack_JAISound_(JASTrack*);
virtual void getNumChild() = 0;
virtual void getChild() = 0;
virtual void releaseChild() = 0;
/* 802A25D8 */ virtual bool asSe();
/* 802A25E0 */ virtual bool asSeq();
/* 802A25E8 */ virtual bool asStream();
virtual void getTrack() = 0;
virtual void getChildTrack() = 0;
virtual void getTempoMgr() = 0;
virtual s32 getNumChild() const = 0;
virtual JAISoundChild* getChild(int) = 0;
virtual void releaseChild(int) = 0;
/* 802A25D8 */ virtual JAISe* asSe();
/* 802A25E0 */ virtual JAISeq* asSeq();
/* 802A25E8 */ virtual JAIStream* asStream();
virtual JASTrack* getTrack() = 0;
virtual JASTrack* getChildTrack(int) = 0;
virtual JAITempoMgr* getTempoMgr() = 0;
virtual bool JAISound_tryDie_() = 0;
JAISoundID getID() const;
@@ -200,7 +244,7 @@ public:
/* 0x18 */ JAISoundID soundID;
/* 0x1C */ JAISoundStatus_ status_;
/* 0x24 */ JAISoundFader fader;
/* 0x34 */ s32 mPriority;
/* 0x34 */ u32 mPriority;
/* 0x38 */ s32 mCount;
/* 0x3C */ JAISoundParams params;
}; // Size: 0x98
+2
View File
@@ -11,6 +11,8 @@ struct JAISoundChild {
/* 802A2B28 */ void mixOut(JASTrack*);
/* 802A2B7C */ void calc();
JAISoundChild() { init(); }
/* 0x00 */ JAISoundParamsMove mMove;
/* 0x50 */ JASSoundParams mParams;
}; // Size: 0x64

Some files were not shown because too many files have changed in this diff Show More