mirror of https://github.com/zeldaret/tp.git
commit
912a14e57d
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ struct JAISoundChild {
|
|||
/* 802A2B28 */ void mixOut(JASTrack*);
|
||||
/* 802A2B7C */ void calc();
|
||||
|
||||
JAISoundChild() { init(); }
|
||||
|
||||
/* 0x00 */ JAISoundParamsMove mMove;
|
||||
/* 0x50 */ JASSoundParams mParams;
|
||||
}; // Size: 0x64
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef JAISTREAM_H
|
||||
#define JAISTREAM_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JAISound.h"
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
|
||||
#endif /* JAISTREAM_H */
|
||||
|
|
|
|||
|
|
@ -1,14 +1,125 @@
|
|||
#ifndef JASHEAPCTRL_H
|
||||
#define JASHEAPCTRL_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "dolphin/os/OSInterrupt.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
class JASDisposer;
|
||||
|
||||
class JASHeap {
|
||||
/* 80290140 */ JASHeap(JASDisposer*);
|
||||
/* 802901AC */ void initRootHeap(void*, u32);
|
||||
/* 8029021C */ void alloc(JASHeap*, u32);
|
||||
/* 802903F4 */ void allocTail(JASHeap*, u32);
|
||||
/* 802904E4 */ void free();
|
||||
/* 80290608 */ void insertChild(JASHeap*, JASHeap*, void*, u32, bool);
|
||||
/* 802906F0 */ void getTailHeap();
|
||||
/* 8029077C */ void getTailOffset();
|
||||
/* 802907E0 */ void getCurOffset();
|
||||
/* 80290B54 */ ~JASHeap();
|
||||
|
||||
/* 0x00 */ JSUTree<JASHeap> mTree;
|
||||
/* 0x1C */ OSMutex mMutex;
|
||||
/* 0x34 */ JASDisposer* mDisposer;
|
||||
/* 0x38 */ int field_0x38;
|
||||
/* 0x3c */ int field_0x3c;
|
||||
/* 0x40 */ void* field_0x40;
|
||||
};
|
||||
|
||||
struct JASGenericMemPool {
|
||||
/* 80290848 */ JASGenericMemPool();
|
||||
/* 80290860 */ ~JASGenericMemPool();
|
||||
/* 802908C8 */ void newMemPool(u32, int);
|
||||
/* 80290948 */ void alloc(u32);
|
||||
/* 80290948 */ void* alloc(u32);
|
||||
/* 80290994 */ void free(void*, u32);
|
||||
|
||||
/* 0x00 */ void* field_0x0;
|
||||
/* 0x04 */ int freeMemCount;
|
||||
/* 0x08 */ int totalMemCount;
|
||||
/* 0x0C */ int field_0xc;
|
||||
|
||||
};
|
||||
|
||||
namespace JASThreadingModel {
|
||||
template <typename A0>
|
||||
struct InterruptsDisable {
|
||||
struct Lock {
|
||||
Lock(const A0& param_0) { field_0x0 = OSDisableInterrupts(); }
|
||||
~Lock() { OSRestoreInterrupts(field_0x0); }
|
||||
|
||||
BOOL field_0x0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class JASMemPool : public JASGenericMemPool {
|
||||
public:
|
||||
void newMemPool(int param_0) { JASGenericMemPool::newMemPool(sizeof(T), param_0); }
|
||||
void* alloc(u32 n) { return JASGenericMemPool::alloc(n); }
|
||||
void free(void* ptr, u32 n) { JASGenericMemPool::free(ptr, n); }
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class JASPoolAllocObject : public T {
|
||||
public:
|
||||
static void* operator new(size_t n) {
|
||||
JASMemPool<T>* memPool = getMemPool();
|
||||
return memPool->alloc(n);
|
||||
}
|
||||
static void operator delete(void* ptr, size_t n) {
|
||||
JASMemPool<T>* memPool_ = getMemPool();
|
||||
memPool_->free(ptr, n);
|
||||
}
|
||||
static void newMemPool(int param_0) {
|
||||
JASMemPool<T>* memPool_ = getMemPool();
|
||||
memPool_->newMemPool(param_0);
|
||||
}
|
||||
|
||||
private:
|
||||
static JASMemPool<T>* getMemPool() {
|
||||
static JASMemPool<T> memPool_;
|
||||
return &memPool_;
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class JASMemPool_MultiThreaded : public JASGenericMemPool {
|
||||
public:
|
||||
void newMemPool(int param_0) {
|
||||
JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
|
||||
JASGenericMemPool::newMemPool(sizeof(T), param_0);
|
||||
}
|
||||
|
||||
void* alloc(size_t count) {
|
||||
JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
|
||||
return JASGenericMemPool::alloc(count);
|
||||
}
|
||||
|
||||
void free(void* ptr, u32 param_1) {
|
||||
JASThreadingModel::InterruptsDisable<JASMemPool_MultiThreaded<T> >::Lock lock(*this);
|
||||
JASGenericMemPool::free(ptr, param_1);
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class JASPoolAllocObject_MultiThreaded : public T {
|
||||
public:
|
||||
static void* operator new(size_t n) {
|
||||
JASMemPool_MultiThreaded<T>* memPool_ = getMemPool();
|
||||
return memPool_->alloc(n);
|
||||
}
|
||||
static void operator delete(void* ptr, size_t n) {
|
||||
JASMemPool_MultiThreaded<T>* memPool_ = getMemPool();
|
||||
memPool_->free(ptr, n);
|
||||
}
|
||||
|
||||
private:
|
||||
static JASMemPool_MultiThreaded<T>* getMemPool() {
|
||||
static JASMemPool_MultiThreaded<T> memPool_;
|
||||
return &memPool_;
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* JASHEAPCTRL_H */
|
||||
|
|
|
|||
|
|
@ -30,12 +30,23 @@ struct JASChannel {
|
|||
};
|
||||
|
||||
struct JASTrack {
|
||||
enum Status {
|
||||
STATUS_FREE,
|
||||
STATUS_RUN,
|
||||
};
|
||||
|
||||
struct TChannelMgr {
|
||||
/* 802930DC */ TChannelMgr(JASTrack*);
|
||||
/* 80293148 */ void init();
|
||||
/* 802931B0 */ void releaseAll();
|
||||
/* 80293220 */ void noteOff(u32, u16);
|
||||
/* 802932A0 */ void setPauseFlag(bool);
|
||||
|
||||
/* 0x00 */ JASChannel* field_0x0[8];
|
||||
/* 0x20 */ u8 field_0x20[0x18]; // JASChannelParams
|
||||
/* 0x38 */ short field_0x38[8];
|
||||
/* 0x48 */ JASSoundParams* field_0x48;
|
||||
/* 0x4c */ JASTrack* field_0x4c;
|
||||
};
|
||||
|
||||
struct TList {
|
||||
|
|
@ -47,6 +58,10 @@ struct JASTrack {
|
|||
|
||||
struct MoveParam_ {
|
||||
/* 802932C8 */ MoveParam_();
|
||||
|
||||
/* 0x00 */ f32 field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ int field_0x8;
|
||||
};
|
||||
|
||||
/* 80291228 */ JASTrack();
|
||||
|
|
@ -109,9 +124,53 @@ struct JASTrack {
|
|||
static u8 sTrackList[16];
|
||||
|
||||
int getChannelMgrCount() { return channelMgrCount; }
|
||||
u8 getStatus() const { return mStatus; }
|
||||
JASTrack* getChild(u32 index) { return field_0x130[index]; }
|
||||
void setAutoDelete(bool param_0) {
|
||||
field_0x216 = (param_0 << 4) | field_0x216 & ~0x10;
|
||||
}
|
||||
|
||||
/* 0x000 */ u8 field_0x0[0x1d0];
|
||||
/* 0x000 */ u8 field_0x0[0x5c]; // JASSeqCtrl
|
||||
/* 0x05C */ u8 field_0x5c[0x24]; // JASTrackPort
|
||||
/* 0x080 */ u8 field_0x80[0x1c]; // JASRegisterParam
|
||||
/* 0x09C */ MoveParam_ field_0x9c[6];
|
||||
/* 0x0e4 */ u8 mOscParam[0x30]; // JASOscillator::Data[2]
|
||||
/* 0x114 */ u8 field_0x114[0x18]; // JASOscillator::Point[4]
|
||||
/* 0x12C */ JASTrack* mParent;
|
||||
/* 0x130 */ JASTrack* field_0x130[16];
|
||||
/* 0x170 */ TChannelMgr* field_0x170[4];
|
||||
/* 0x180 */ TChannelMgr field_0x180;
|
||||
/* 0x1D0 */ int channelMgrCount;
|
||||
/* 0x1D4 */ void* field_0x1d4;
|
||||
/* 0x1D8 */ f32 field_0x1d8;
|
||||
/* 0x1DC */ f32 field_0x1dc;
|
||||
/* 0x1E0 */ f32 field_0x1e0;
|
||||
/* 0x1E4 */ f32 field_0x1e4;
|
||||
/* 0x1E8 */ f32 field_0x1e8;
|
||||
/* 0x1EC */ f32 field_0x1ec;
|
||||
/* 0x1F0 */ u16 field_0x1f0;
|
||||
/* 0x1F2 */ u16 field_0x1f2;
|
||||
/* 0x1F4 */ short field_0x1f4[8];
|
||||
/* 0x204 */ short field_0x204[8];
|
||||
/* 0x214 */ char field_0x214;
|
||||
/* 0x215 */ u8 mStatus;
|
||||
/* 0x216 */ u8 field_0x216;
|
||||
/* 0x218 */ f32 field_0x218;
|
||||
/* 0x21C */ f32 field_0x21c;
|
||||
/* 0x220 */ u32 field_0x220;
|
||||
/* 0x224 */ short field_0x224;
|
||||
/* 0x226 */ u16 field_0x226;
|
||||
/* 0x228 */ u16 field_0x228;
|
||||
/* 0x22A */ s8 field_0x22a;
|
||||
/* 0x22B */ char field_0x22b;
|
||||
/* 0x22C */ short field_0x22c;
|
||||
/* 0x22E */ short field_0x22e;
|
||||
/* 0x230 */ char field_0x230;
|
||||
/* 0x231 */ char field_0x231;
|
||||
/* 0x232 */ char field_0x232;
|
||||
/* 0x233 */ char field_0x233;
|
||||
/* 0x234 */ u16 field_0x234[6];
|
||||
/* 0x240 */ u8 field_0x240[0x08]; // TLinkListNode
|
||||
};
|
||||
|
||||
struct JASDefaultBankTable : public JASGlobalInstance<JASDefaultBankTable> {
|
||||
|
|
|
|||
|
|
@ -358,11 +358,11 @@ extern "C" extern void* __vt__11J2DIndBlock[14];
|
|||
extern "C" extern GXColor j2dDefaultColInfo;
|
||||
extern "C" extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
|
||||
extern "C" extern u16 j2dDefaultIndTexOrderNull[1 + 1 /* padding */];
|
||||
extern "C" extern u8 j2dDefaultTevColor[8];
|
||||
extern "C" extern J2DGXColorS10 j2dDefaultTevColor;
|
||||
extern "C" extern u8 j2dDefaultIndTexCoordScaleInfo[2 + 2 /* padding */];
|
||||
extern "C" extern u32 j2dDefaultTevKColor;
|
||||
extern "C" extern GXColor j2dDefaultTevKColor;
|
||||
extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode;
|
||||
extern "C" extern u32 j2dDefaultTevSwapModeTable;
|
||||
extern "C" extern J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable;
|
||||
extern "C" extern u8 data_804561A4;
|
||||
extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo;
|
||||
extern "C" extern u8 data_804561AC;
|
||||
|
|
@ -771,6 +771,29 @@ J2DTevBlock1::~J2DTevBlock1() {
|
|||
}
|
||||
|
||||
/* 802EBA50-802EBC0C 2E6390 01BC+00 1/0 0/0 0/0 .text initialize__12J2DTevBlock1Fv */
|
||||
// inlines
|
||||
#ifdef NONMATCHING
|
||||
void J2DTevBlock1::initialize() {
|
||||
mTexNo[0] = -1;
|
||||
mFontNo = -1;
|
||||
mTevOrder[0].setTevOrderInfo(j2dDefaultTevOrderInfoNull);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevColor[i] = j2dDefaultTevColor;
|
||||
}
|
||||
mTevStage[0].setStageNo(0);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevKColor[i] = j2dDefaultTevKColor;
|
||||
}
|
||||
mTevKColorSel[0] = -1;
|
||||
mTevKAlphaSel[0] = -1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevSwapModeTable[i].setTevSwapModeTableInfo(j2dDefaultTevSwapModeTable);
|
||||
}
|
||||
mIndTevStage[0].setIndTevStageInfo(j2dDefaultIndTevStageInfo);
|
||||
mPalette[0] = NULL;
|
||||
mFont = NULL;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -780,6 +803,7 @@ extern "C" asm void initialize__12J2DTevBlock1Fv() {
|
|||
#include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock1Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802EBC0C-802EBCC0 2E654C 00B4+00 1/0 0/0 0/0 .text prepareTexture__12J2DTevBlock1FUc
|
||||
*/
|
||||
|
|
@ -1526,6 +1550,42 @@ J2DTevBlock4::~J2DTevBlock4() {
|
|||
}
|
||||
|
||||
/* 802EDAC4-802EDD34 2E8404 0270+00 1/0 0/0 0/0 .text initialize__12J2DTevBlock4Fv */
|
||||
// inlines
|
||||
#ifdef NONMATCHING
|
||||
void J2DTevBlock4::initialize() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTexNo[i] = -1;
|
||||
}
|
||||
mFontNo = -1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevOrder[i].setTevOrderInfo(j2dDefaultTevOrderInfoNull);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevColor[i] = j2dDefaultTevColor;
|
||||
}
|
||||
mTevStageNum = 1;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevStage[i].setStageNo(i);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevKColor[i] = j2dDefaultTevKColor;
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevKColorSel[i] = -1;
|
||||
mTevKAlphaSel[i] = -1;
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTevSwapModeTable[i].setTevSwapModeTableInfo(j2dDefaultTevSwapModeTable);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mIndTevStage[i].setIndTevStageInfo(j2dDefaultIndTevStageInfo);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mPalette[i] = NULL;
|
||||
}
|
||||
mFont = NULL;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -1535,6 +1595,7 @@ extern "C" asm void initialize__12J2DTevBlock4Fv() {
|
|||
#include "asm/JSystem/J2DGraph/J2DMatBlock/initialize__12J2DTevBlock4Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802EDD34-802EDE04 2E8674 00D0+00 1/0 0/0 0/0 .text prepareTexture__12J2DTevBlock4FUc
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,32 +4,10 @@
|
|||
//
|
||||
|
||||
#include "JSystem/J3DU/J3DUDL.h"
|
||||
#include "dol2asm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DShapeMtx {
|
||||
/* 80273E08 */ bool getUseMtxNum() const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" bool getUseMtxNum__11J3DShapeMtxCFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80273E08-80273E10 26E748 0008+00 0/0 4/0 0/0 .text getUseMtxNum__11J3DShapeMtxCFv */
|
||||
bool J3DShapeMtx::getUseMtxNum() const {
|
||||
return true;
|
||||
u32 J3DShapeMtx::getUseMtxNum() const {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,12 @@
|
|||
// Translation Unit: JAISe
|
||||
//
|
||||
|
||||
#include "JSystem/JAudio2/JAISe.h"
|
||||
//#include "JSystem/JAudio2/JAISe.h"
|
||||
#include "JSystem/JAudio2/JAIAudience.h"
|
||||
//#include "JSystem/JAudio2/JAISeMgr.h"
|
||||
#include "JSystem/JAudio2/JAISound.h"
|
||||
#include "JSystem/JAudio2/JASTrack.h"
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
|
@ -11,58 +16,6 @@
|
|||
// Types:
|
||||
//
|
||||
|
||||
struct JSUPtrLink {
|
||||
/* 802DBDFC */ JSUPtrLink(void*);
|
||||
};
|
||||
|
||||
struct JGeometry {
|
||||
template <typename A1>
|
||||
struct TVec3 {};
|
||||
/* TVec3<f32> */
|
||||
struct TVec3__template0 {};
|
||||
};
|
||||
|
||||
struct JASSoundParams {};
|
||||
|
||||
struct JASTrack {
|
||||
/* 80291228 */ JASTrack();
|
||||
/* 80291444 */ void setChannelMgrCount(u32);
|
||||
/* 802915D4 */ void init();
|
||||
/* 802919F4 */ void assignExtBuffer(u32, JASSoundParams*);
|
||||
/* 80291A08 */ void setSeqData(void*, u32);
|
||||
/* 80291A28 */ void startSeq();
|
||||
/* 80291A78 */ void stopSeq();
|
||||
/* 802927A0 */ void mute(bool);
|
||||
/* 80292A3C */ void pause(bool);
|
||||
/* 80292B8C */ void setTempoRate(f32);
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JAISoundStrategyMgr {};
|
||||
/* JAISoundStrategyMgr<JAISe> */
|
||||
struct JAISoundStrategyMgr__template0 {};
|
||||
|
||||
struct JAISoundParams {
|
||||
/* 802A2280 */ void mixOutAll(JASSoundParams const&, JASSoundParams*, f32);
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct JAISoundActivity {};
|
||||
|
||||
struct JAIAudience {};
|
||||
|
||||
struct JAISound {
|
||||
/* 802A22F8 */ JAISound();
|
||||
/* 802A2328 */ void start_JAISound_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
|
||||
/* 802A25E0 */ bool asSeq();
|
||||
/* 802A25E8 */ bool asStream();
|
||||
/* 802A25F0 */ void die_JAISound_();
|
||||
/* 802A266C */ void increasePrepareCount_JAISound_();
|
||||
/* 802A26B8 */ void calc_JAISound_();
|
||||
/* 802A29DC */ void initTrack_JAISound_(JASTrack*);
|
||||
};
|
||||
|
||||
struct JAISeMgr {};
|
||||
|
||||
struct JAISe {
|
||||
|
|
@ -72,17 +25,17 @@ struct JAISe {
|
|||
/* 8029F250 */ void startTrack_(JASSoundParams const&);
|
||||
/* 8029F304 */ void JAISeCategoryMgr_mixOut_(bool, JASSoundParams const&, JAISoundActivity);
|
||||
/* 8029F4CC */ void JAISeCategoryMgr_calc_();
|
||||
/* 8029F5C8 */ void JAISound_tryDie_();
|
||||
/* 8029F5C8 */ bool JAISound_tryDie_();
|
||||
/* 8029F650 */ void JAISeMgr_startID_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
|
||||
/* 8029F6D8 */ bool getNumChild() const;
|
||||
/* 8029F6E0 */ bool getChild(int);
|
||||
/* 8029F6E8 */ void releaseChild(int);
|
||||
/* 8029F6EC */ void prepare_getSeqData_();
|
||||
/* 8029F6EC */ bool prepare_getSeqData_();
|
||||
/* 8029F78C */ void prepare_();
|
||||
/* 8029F84C */ void getTrack();
|
||||
/* 8029F854 */ void getChildTrack(int);
|
||||
/* 8029F864 */ void asSe();
|
||||
/* 8029F868 */ void getTempoMgr();
|
||||
/* 8029F84C */ JASTrack* getTrack();
|
||||
/* 8029F854 */ JASTrack* getChildTrack(int);
|
||||
/* 8029F864 */ JAISe* asSe();
|
||||
/* 8029F868 */ JAITempoMgr* getTempoMgr();
|
||||
};
|
||||
|
||||
//
|
||||
|
|
@ -191,6 +144,14 @@ SECTION_SDATA2 static f32 lit_628 = 0.5f;
|
|||
|
||||
/* 8029F03C-8029F0F8 29997C 00BC+00 0/0 1/1 0/0 .text
|
||||
* __ct__5JAISeFP8JAISeMgrP27JAISoundStrategyMgr<5JAISe>Ul */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
JAISe::JAISe(JAISeMgr* param_0, JAISoundStrategyMgr<JAISe>* param_1, u32 param_2) : JSULink<JAISe>(this) {
|
||||
inner_.mSoundStrategyMgr = param_1;
|
||||
inner_.seMgr = param_0;
|
||||
inner_.mProperPriority = param_2;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -199,9 +160,29 @@ asm JAISe::JAISe(JAISeMgr* param_0, JAISoundStrategyMgr<JAISe>* param_1, u32 par
|
|||
#include "asm/JSystem/JAudio2/JAISe/func_8029F03C.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F0F8-8029F214 299A38 011C+00 1/1 0/0 0/0 .text mixOut___5JAISeFRC14JASSoundParams
|
||||
*/
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::mixOut_(JASSoundParams const& param_0) {
|
||||
inner_.track.setTempoRate(inner_.mTempoMgr.getTempo());
|
||||
JASSoundParams stackParams;
|
||||
params.mixOutAll(param_0, &stackParams, fader.getIntensity());
|
||||
if (inner_.field_0x278) {
|
||||
inner_.field_0x278->virtual4(this, stackParams);
|
||||
}
|
||||
if (audible_) {
|
||||
int maxChannels = audience_->getMaxChannels();
|
||||
for (int i = 0; i < maxChannels; i++) {
|
||||
audience_->mixChannelOut(stackParams, audible_, i);
|
||||
}
|
||||
} else {
|
||||
inner_.mSoundParams = stackParams;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -210,8 +191,23 @@ asm void JAISe::mixOut_(JASSoundParams const& param_0) {
|
|||
#include "asm/JSystem/JAudio2/JAISe/mixOut___5JAISeFRC14JASSoundParams.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F214-8029F250 299B54 003C+00 1/1 0/0 0/0 .text stopTrack___5JAISeFv */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::stopTrack_() {
|
||||
switch (inner_.track.getStatus()) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
inner_.track.stopSeq();
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -220,8 +216,27 @@ asm void JAISe::stopTrack_() {
|
|||
#include "asm/JSystem/JAudio2/JAISe/stopTrack___5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F250-8029F304 299B90 00B4+00 1/1 0/0 0/0 .text startTrack___5JAISeFRC14JASSoundParams */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::startTrack_(JASSoundParams const& param_0) {
|
||||
if (inner_.track.getStatus() == 2) {
|
||||
inner_.track.init();
|
||||
}
|
||||
if (audible_) {
|
||||
initTrack_JAISound_(&inner_.track);
|
||||
} else {
|
||||
params.mixOutAll(param_0, &inner_.mSoundParams, fader.getIntensity());
|
||||
inner_.track.setChannelMgrCount(1);
|
||||
inner_.track.assignExtBuffer(0, &inner_.mSoundParams);
|
||||
}
|
||||
inner_.field_0x26c = 1;
|
||||
inner_.track.setSeqData(inner_.mSeqData.field_0x0, inner_.mSeqData.field_0x4);
|
||||
inner_.track.startSeq();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -230,6 +245,7 @@ asm void JAISe::startTrack_(JASSoundParams const& param_0) {
|
|||
#include "asm/JSystem/JAudio2/JAISe/startTrack___5JAISeFRC14JASSoundParams.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455784-80455788 003D84 0004+00 2/2 0/0 0/0 .sdata2 @736 */
|
||||
|
|
@ -237,6 +253,43 @@ SECTION_SDATA2 static f32 lit_736 = 1.0f / 100.0f;
|
|||
|
||||
/* 8029F304-8029F4CC 299C44 01C8+00 0/0 1/1 0/0 .text
|
||||
* JAISeCategoryMgr_mixOut___5JAISeFbRC14JASSoundParams16JAISoundActivity */
|
||||
// isStopping inline
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::JAISeCategoryMgr_mixOut_(bool param_0, JASSoundParams const& param_1, JAISoundActivity param_2) {
|
||||
mixOut_(param_1);
|
||||
if (isStopping()) {
|
||||
stopTrack_();
|
||||
} else if (param_0) {
|
||||
if (status_.isPlaying()) {
|
||||
if (inner_.field_0x26c) {
|
||||
switch (inner_.track.getStatus()) {
|
||||
case 2:
|
||||
if (status_.field_0x1.flags.flag1) {
|
||||
startTrack_(param_1);
|
||||
} else {
|
||||
stop_JAISound_();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
inner_.track.pause(status_.isPaused() || param_2.field_0x0.flags.flag2);
|
||||
inner_.track.mute(status_.isMute() || param_2.field_0x0.flags.flag1);
|
||||
}
|
||||
} else {
|
||||
startTrack_(param_1);
|
||||
}
|
||||
}
|
||||
} else if (status_.field_0x1.flags.flag1) {
|
||||
if (status_.field_0x1.flags.flag3) {
|
||||
inner_.track.pause(true);
|
||||
} else {
|
||||
stopTrack_();
|
||||
}
|
||||
} else {
|
||||
stopTrack_();
|
||||
stop_JAISound_();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -246,8 +299,26 @@ asm void JAISe::JAISeCategoryMgr_mixOut_(bool param_0, JASSoundParams const& par
|
|||
#include "asm/JSystem/JAudio2/JAISe/JAISeCategoryMgr_mixOut___5JAISeFbRC14JASSoundParams16JAISoundActivity.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F4CC-8029F5C8 299E0C 00FC+00 0/0 1/1 0/0 .text JAISeCategoryMgr_calc___5JAISeFv */
|
||||
// isStopping inline
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::JAISeCategoryMgr_calc_() {
|
||||
prepare_();
|
||||
if (calc_JAISound_()) {
|
||||
inner_.mTempoMgr.calc();
|
||||
if (inner_.field_0x278) {
|
||||
inner_.field_0x278->virtual3(this);
|
||||
}
|
||||
}
|
||||
if (isStopping() || mPriority == -1) {
|
||||
inner_.mPriority = -1;
|
||||
} else {
|
||||
inner_.mPriority = inner_.mProperPriority + mPriority;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -256,19 +327,51 @@ asm void JAISe::JAISeCategoryMgr_calc_() {
|
|||
#include "asm/JSystem/JAudio2/JAISe/JAISeCategoryMgr_calc___5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F5C8-8029F650 299F08 0088+00 2/1 0/0 0/0 .text JAISound_tryDie___5JAISeFv */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
bool JAISe::JAISound_tryDie_() {
|
||||
switch (inner_.track.getStatus()) {
|
||||
case 0:
|
||||
case 2:
|
||||
if (inner_.field_0x278) {
|
||||
inner_.mSoundStrategyMgr->virtual4(inner_.field_0x278);
|
||||
inner_.field_0x278 = NULL;
|
||||
}
|
||||
die_JAISound_();
|
||||
return true;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISe::JAISound_tryDie_() {
|
||||
asm bool JAISe::JAISound_tryDie_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISe/JAISound_tryDie___5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F650-8029F6D8 299F90 0088+00 0/0 1/1 0/0 .text
|
||||
* JAISeMgr_startID___5JAISeF10JAISoundIDPCQ29JGeometry8TVec3<f>P11JAIAudience */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::JAISeMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1, JAIAudience* param_2) {
|
||||
start_JAISound_(param_0, param_1, param_2);
|
||||
inner_.field_0x26c = 0;
|
||||
if (inner_.mSoundStrategyMgr) {
|
||||
inner_.field_0x278 = inner_.mSoundStrategyMgr->virtual3(param_0);
|
||||
} else {
|
||||
inner_.field_0x278 = NULL;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -278,6 +381,7 @@ asm void JAISe::JAISeMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> cons
|
|||
#include "asm/JSystem/JAudio2/JAISe/func_8029F650.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F6D8-8029F6E0 29A018 0008+00 2/1 0/0 0/0 .text getNumChild__5JAISeCFv */
|
||||
bool JAISe::getNumChild() const {
|
||||
|
|
@ -295,16 +399,61 @@ void JAISe::releaseChild(int param_0) {
|
|||
}
|
||||
|
||||
/* 8029F6EC-8029F78C 29A02C 00A0+00 1/1 0/0 0/0 .text prepare_getSeqData___5JAISeFv */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
bool JAISe::prepare_getSeqData_() {
|
||||
switch (inner_.seMgr->getSeqDataMgr()->getSeqData(soundID, &inner_.mSeqData)) {
|
||||
case 0:
|
||||
status_.state.unk = 2;
|
||||
return false;
|
||||
case 1:
|
||||
increasePrepareCount_JAISound_();
|
||||
return false;
|
||||
case 2:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISe::prepare_getSeqData_() {
|
||||
asm bool JAISe::prepare_getSeqData_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISe/prepare_getSeqData___5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F78C-8029F84C 29A0CC 00C0+00 1/1 0/0 0/0 .text prepare___5JAISeFv */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
void JAISe::prepare_() {
|
||||
switch (status_.state.unk) {
|
||||
case 6:
|
||||
break;
|
||||
case 2:
|
||||
stop_JAISound_();
|
||||
break;
|
||||
case 0:
|
||||
if (prepare_getSeqData_()) {
|
||||
status_.state.unk = 5;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (prepare_getSeqData_()) {
|
||||
status_.state.unk = 3;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
status_.state.unk = 5;
|
||||
break;
|
||||
case 3:
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -313,41 +462,63 @@ asm void JAISe::prepare_() {
|
|||
#include "asm/JSystem/JAudio2/JAISe/prepare___5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F84C-8029F854 29A18C 0008+00 2/1 0/0 0/0 .text getTrack__5JAISeFv */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
JASTrack* JAISe::getTrack() {
|
||||
return &inner_.track;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISe::getTrack() {
|
||||
asm JASTrack* JAISe::getTrack() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISe/getTrack__5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F854-8029F864 29A194 0010+00 2/1 0/0 0/0 .text getChildTrack__5JAISeFi */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
JASTrack* JAISe::getChildTrack(int param_0) {
|
||||
return inner_.track.getChild(param_0);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISe::getChildTrack(int param_0) {
|
||||
asm JASTrack* JAISe::getChildTrack(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISe/getChildTrack__5JAISeFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F864-8029F868 29A1A4 0004+00 2/1 0/0 0/0 .text asSe__5JAISeFv */
|
||||
void JAISe::asSe() {
|
||||
/* empty function */
|
||||
JAISe* JAISe::asSe() {
|
||||
return this;
|
||||
}
|
||||
|
||||
/* 8029F868-8029F870 29A1A8 0008+00 2/1 0/0 0/0 .text getTempoMgr__5JAISeFv */
|
||||
// multiple inheritance thunks
|
||||
#ifdef NONMATCHING
|
||||
JAITempoMgr* JAISe::getTempoMgr() {
|
||||
return &inner_.mTempoMgr;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISe::getTempoMgr() {
|
||||
asm JAITempoMgr* JAISe::getTempoMgr() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISe/getTempoMgr__5JAISeFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029F870-8029F878 29A1B0 0008+00 1/0 0/0 0/0 .text @16@JAISound_tryDie___5JAISeFv */
|
||||
#pragma push
|
||||
|
|
|
|||
|
|
@ -10,17 +10,6 @@
|
|||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool {};
|
||||
/* JASMemPool<JAISe> */
|
||||
struct JASMemPool__template0 {
|
||||
/* 8029FC34 */ void func_8029FC34(void* _this);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -4,123 +4,17 @@
|
|||
//
|
||||
|
||||
#include "JSystem/JAudio2/JAISeq.h"
|
||||
#include "JSystem/JAudio2/JAIAudience.h"
|
||||
#include "JSystem/JAudio2/JAISeqMgr.h"
|
||||
#include "JSystem/JAudio2/JAISoundChild.h"
|
||||
#include "JSystem/JAudio2/JASAudioReseter.h" // JASCriticalSection
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JSUPtrLink {
|
||||
/* 802DBDFC */ JSUPtrLink(void*);
|
||||
};
|
||||
|
||||
struct JGeometry {
|
||||
template <typename A1>
|
||||
struct TVec3 {};
|
||||
/* TVec3<f32> */
|
||||
struct TVec3__template0 {};
|
||||
};
|
||||
|
||||
struct JASSoundParams {};
|
||||
|
||||
struct JASTrack {
|
||||
/* 80291228 */ JASTrack();
|
||||
/* 8029131C */ ~JASTrack();
|
||||
/* 80291444 */ void setChannelMgrCount(u32);
|
||||
/* 802919F4 */ void assignExtBuffer(u32, JASSoundParams*);
|
||||
/* 80291A08 */ void setSeqData(void*, u32);
|
||||
/* 80291A28 */ void startSeq();
|
||||
/* 80291A78 */ void stopSeq();
|
||||
/* 80291B8C */ void connectChild(u32, JASTrack*);
|
||||
/* 802927A0 */ void mute(bool);
|
||||
/* 80292A3C */ void pause(bool);
|
||||
/* 80292B8C */ void setTempoRate(f32);
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool_MultiThreaded {};
|
||||
/* JASMemPool_MultiThreaded<JASTrack> */
|
||||
struct JASMemPool_MultiThreaded__template0 {
|
||||
/* 802932E0 */ void func_802932E0(void* _this);
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool {};
|
||||
/* JASMemPool<JAISoundChild> */
|
||||
struct JASMemPool__template1 {
|
||||
/* 802A1268 */ void func_802A1268(void* _this);
|
||||
};
|
||||
|
||||
struct JASGenericMemPool {
|
||||
/* 80290848 */ JASGenericMemPool();
|
||||
/* 80290860 */ ~JASGenericMemPool();
|
||||
/* 80290948 */ void alloc(u32);
|
||||
/* 80290994 */ void free(void*, u32);
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JAISoundStrategyMgr {};
|
||||
/* JAISoundStrategyMgr<JAISeq> */
|
||||
struct JAISoundStrategyMgr__template1 {};
|
||||
|
||||
struct JAISoundParams {
|
||||
/* 802A2280 */ void mixOutAll(JASSoundParams const&, JASSoundParams*, f32);
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct JAISoundChild {
|
||||
/* 802A2AB0 */ void init();
|
||||
/* 802A2B28 */ void mixOut(JASTrack*);
|
||||
/* 802A2B7C */ void calc();
|
||||
};
|
||||
|
||||
struct JAISoundActivity {};
|
||||
|
||||
struct JAIAudience {};
|
||||
|
||||
struct JAISound {
|
||||
/* 802A22F8 */ JAISound();
|
||||
/* 802A2328 */ void start_JAISound_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
|
||||
/* 802A25D8 */ bool asSe();
|
||||
/* 802A25E8 */ bool asStream();
|
||||
/* 802A25F0 */ void die_JAISound_();
|
||||
/* 802A266C */ void increasePrepareCount_JAISound_();
|
||||
/* 802A26B8 */ void calc_JAISound_();
|
||||
/* 802A29DC */ void initTrack_JAISound_(JASTrack*);
|
||||
};
|
||||
|
||||
struct JAISeqMgr {};
|
||||
|
||||
struct JAISeq {
|
||||
/* 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 */ void prepare_getSeqData_();
|
||||
/* 802A0F90 */ void prepare_(JASSoundParams const&, JAISoundActivity);
|
||||
/* 802A108C */ void JAISeqMgr_calc_();
|
||||
/* 802A1180 */ void die_();
|
||||
/* 802A12BC */ void JAISound_tryDie_();
|
||||
/* 802A1348 */ void mixOut_(JASSoundParams const&, JAISoundActivity);
|
||||
/* 802A14FC */ void JAISeqMgr_mixOut_(JASSoundParams const&, JAISoundActivity);
|
||||
/* 802A1570 */ s32 getNumChild() const;
|
||||
/* 802A1578 */ void getChild(int);
|
||||
/* 802A165C */ void releaseChild(int);
|
||||
/* 802A1728 */ void getTrack();
|
||||
/* 802A1730 */ void getChildTrack(int);
|
||||
/* 802A1768 */ void asSeq();
|
||||
/* 802A176C */ void getTempoMgr();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void func_802A0A6C();
|
||||
extern "C" static bool func_802A0A6C(JASTrack*);
|
||||
extern "C" void func_802A0A8C();
|
||||
extern "C" void func_802A0B64();
|
||||
extern "C" void playSeqData___6JAISeqFRC14JASSoundParams16JAISoundActivity();
|
||||
|
|
@ -176,8 +70,6 @@ extern "C" void mixOut__13JAISoundChildFP8JASTrack();
|
|||
extern "C" void calc__13JAISoundChildFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ct__10JSUPtrLinkFPv();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_26();
|
||||
|
|
@ -199,26 +91,22 @@ extern "C" extern u8 data_80451318[8];
|
|||
|
||||
/* 802A0A6C-802A0A8C 29B3AC 0020+00 1/1 0/0 0/0 .text
|
||||
* JASTrack_isFreeOrStopped__20@unnamed@JAISeq_cpp@FP8JASTrack */
|
||||
// instruction order
|
||||
#ifdef NONMATCHING
|
||||
static bool func_802A0A6C(JASTrack* track) {
|
||||
u8 status = track->getStatus();
|
||||
return status == 0 || status == 2;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_802A0A6C() {
|
||||
static asm bool func_802A0A6C(JASTrack*) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/func_802A0A6C.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C98D8-803C98F4 -00001 001C+00 1/1 0/0 0/0 .data @852 */
|
||||
SECTION_DATA static void* lit_852[7] = {
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0x68),
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0x9C),
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0x44),
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0xE0),
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0xB8),
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0xD8),
|
||||
(void*)(((char*)prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity) + 0xE0),
|
||||
};
|
||||
#endif
|
||||
|
||||
/* 803C98F4-803C9928 026A14 0030+04 1/1 2/2 0/0 .data __vt__6JAISeq */
|
||||
SECTION_DATA extern void* __vt__6JAISeq[12 + 1 /* padding */] = {
|
||||
|
|
@ -234,8 +122,6 @@ SECTION_DATA extern void* __vt__6JAISeq[12 + 1 /* padding */] = {
|
|||
(void*)getChildTrack__6JAISeqFi,
|
||||
(void*)getTempoMgr__6JAISeqFv,
|
||||
(void*)JAISound_tryDie___6JAISeqFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80455798-8045579C 003D98 0004+00 3/3 0/0 0/0 .sdata2 @642 */
|
||||
|
|
@ -258,6 +144,17 @@ SECTION_SDATA2 static f32 lit_644[1 + 1 /* padding */] = {
|
|||
|
||||
/* 802A0A8C-802A0B64 29B3CC 00D8+00 0/0 2/1 0/0 .text
|
||||
* __ct__6JAISeqFP9JAISeqMgrP28JAISoundStrategyMgr<6JAISeq> */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
JAISeq::JAISeq(JAISeqMgr* param_0, JAISoundStrategyMgr<JAISeq>* param_1) : JSULink<JAISeq>(this) {
|
||||
inner_.seqMgr = param_0;
|
||||
inner_.strategyMgr = param_1;
|
||||
inner_.mSoundParams.init();
|
||||
for (int i = 0; i < 32; i++) {
|
||||
inner_.mSoundChild[i] = NULL;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -266,35 +163,62 @@ asm JAISeq::JAISeq(JAISeqMgr* param_0, JAISoundStrategyMgr<JAISeq>* param_1) {
|
|||
#include "asm/JSystem/JAudio2/JAISeq/func_802A0A8C.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A0B64-802A0C04 29B4A4 00A0+00 0/0 1/1 0/0 .text
|
||||
* JAISeqMgr_startID___6JAISeqF10JAISoundIDPCQ29JGeometry8TVec3<f>P11JAIAudienceii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::JAISeqMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1,
|
||||
JAIAudience* param_2, int param_3, int param_4) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/func_802A0B64.s"
|
||||
void JAISeq::JAISeqMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1, JAIAudience* param_2, int param_3, int param_4) {
|
||||
inner_.field_0x39c = param_3;
|
||||
reserveChildTracks_(param_4);
|
||||
start_JAISound_(param_0, param_1, param_2);
|
||||
if (inner_.strategyMgr) {
|
||||
field_0x3a8 = inner_.strategyMgr->virtual3(param_0);
|
||||
} else {
|
||||
field_0x3a8 = NULL;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A0C04-802A0CA4 29B544 00A0+00 1/1 0/0 0/0 .text
|
||||
* playSeqData___6JAISeqFRC14JASSoundParams16JAISoundActivity */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::playSeqData_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/playSeqData___6JAISeqFRC14JASSoundParams16JAISoundActivity.s"
|
||||
void JAISeq::playSeqData_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
inner_.outputTrack.setSeqData(inner_.mSeqData.field_0x0, inner_.mSeqData.field_0x4);
|
||||
if (audible_) {
|
||||
initTrack_JAISound_(&inner_.outputTrack);
|
||||
} else {
|
||||
inner_.outputTrack.setChannelMgrCount(1);
|
||||
inner_.outputTrack.assignExtBuffer(0, &inner_.mSoundParams);
|
||||
}
|
||||
mixOut_(param_0, param_1);
|
||||
inner_.outputTrack.startSeq();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434098-804340A4 060DB8 000C+00 1/1 0/0 0/0 .bss @716 */
|
||||
static u8 lit_716[12];
|
||||
|
||||
/* 802A0CA4-802A0E48 29B5E4 01A4+00 1/1 0/0 0/0 .text reserveChildTracks___6JAISeqFi */
|
||||
// setAutoDelete inline, operator new?
|
||||
#ifdef NONMATCHING
|
||||
void JAISeq::reserveChildTracks_(int param_0) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
JASTrack* track = new JASPoolAllocObject_MultiThreaded<JASTrack>();
|
||||
if (track) {
|
||||
track->setAutoDelete(true);
|
||||
inner_.outputTrack.connectChild(i, track);
|
||||
for (int j = 0; j < 16; j++) {
|
||||
if (i * 16 + j >= param_0) {
|
||||
continue;
|
||||
}
|
||||
JASTrack* track2 = new JASPoolAllocObject_MultiThreaded<JASTrack>();
|
||||
if (track2) {
|
||||
track2->setAutoDelete(true);
|
||||
track->connectChild(j, track2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -303,39 +227,96 @@ asm void JAISeq::reserveChildTracks_(int param_0) {
|
|||
#include "asm/JSystem/JAudio2/JAISeq/reserveChildTracks___6JAISeqFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A0E48-802A0EDC 29B788 0094+00 1/1 0/0 0/0 .text releaseChildTracks___6JAISeqFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::releaseChildTracks_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/releaseChildTracks___6JAISeqFv.s"
|
||||
void JAISeq::releaseChildTracks_() {
|
||||
for (u32 i = 0; i < 2; i++) {
|
||||
JASTrack* track = inner_.outputTrack.getChild(i);
|
||||
if (track) {
|
||||
for (u32 j = 0; j < 16; j++) {
|
||||
JASTrack* track2 = track->getChild(j);
|
||||
if (track2) {
|
||||
delete track2;
|
||||
}
|
||||
}
|
||||
delete track;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A0EDC-802A0F90 29B81C 00B4+00 1/1 0/0 0/0 .text prepare_getSeqData___6JAISeqFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::prepare_getSeqData_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/prepare_getSeqData___6JAISeqFv.s"
|
||||
bool JAISeq::prepare_getSeqData_() {
|
||||
JAISoundID id(soundID);
|
||||
if (id.isAnonymous()) {
|
||||
return true;
|
||||
}
|
||||
JAISeqDataMgr* seqDataMgr = inner_.seqMgr->getSeqDataMgr();
|
||||
switch (seqDataMgr->getSeqData(id, &inner_.mSeqData)) {
|
||||
case 0:
|
||||
status_.state.unk = 2;
|
||||
break;
|
||||
case 1:
|
||||
increasePrepareCount_JAISound_();
|
||||
return false;
|
||||
case 2:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A0F90-802A108C 29B8D0 00FC+00 2/1 0/0 0/0 .text
|
||||
* prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::prepare_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/prepare___6JAISeqFRC14JASSoundParams16JAISoundActivity.s"
|
||||
bool JAISeq::prepare_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
switch (status_.state.unk) {
|
||||
case 6:
|
||||
break;
|
||||
case 2:
|
||||
stop_JAISound_();
|
||||
break;
|
||||
case 0:
|
||||
if (prepare_getSeqData_()) {
|
||||
status_.state.unk = 5;
|
||||
playSeqData_(param_0, param_1);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (prepare_getSeqData_()) {
|
||||
status_.state.unk = 3;
|
||||
}
|
||||
return false;
|
||||
case 4:
|
||||
status_.state.unk = 5;
|
||||
playSeqData_(param_0, param_1);
|
||||
return true;
|
||||
case 5:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 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_();
|
||||
return;
|
||||
}
|
||||
if (calc_JAISound_()) {
|
||||
inner_.mTempoMgr.calc();
|
||||
for (int i = 0; i < 32; i++) {
|
||||
if (inner_.mSoundChild[i]) {
|
||||
inner_.mSoundChild[i]->calc();
|
||||
}
|
||||
}
|
||||
if (field_0x3a8) {
|
||||
field_0x3a8->virtual3(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -344,6 +325,7 @@ asm void JAISeq::JAISeqMgr_calc_() {
|
|||
#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 */
|
||||
|
|
@ -355,6 +337,23 @@ extern u8 data_804340B0[16];
|
|||
u8 data_804340B0[16];
|
||||
|
||||
/* 802A1180-802A1268 29BAC0 00E8+00 2/2 0/0 0/0 .text die___6JAISeqFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void JAISeq::die_() {
|
||||
for (int i = 0; i < 32; i++) {
|
||||
if (inner_.mSoundChild[i]) {
|
||||
delete inner_.mSoundChild[i];
|
||||
inner_.mSoundChild[i] = NULL;
|
||||
}
|
||||
}
|
||||
if (field_0x3a8) {
|
||||
inner_.strategyMgr->virtual4(field_0x3a8);
|
||||
field_0x3a8 = NULL;
|
||||
}
|
||||
releaseChildTracks_();
|
||||
die_JAISound_();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -363,6 +362,7 @@ asm void JAISeq::die_() {
|
|||
#include "asm/JSystem/JAudio2/JAISeq/die___6JAISeqFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A1268-802A12BC 29BBA8 0054+00 3/3 4/4 0/0 .text __dt__27JASMemPool<13JAISoundChild>Fv */
|
||||
#pragma push
|
||||
|
|
@ -375,17 +375,61 @@ extern "C" asm void func_802A1268(void* _this) {
|
|||
#pragma pop
|
||||
|
||||
/* 802A12BC-802A1348 29BBFC 008C+00 1/0 0/0 0/0 .text JAISound_tryDie___6JAISeqFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
bool JAISeq::JAISound_tryDie_() {
|
||||
if (func_802A0A6C(&inner_.outputTrack)) {
|
||||
die_();
|
||||
return true;
|
||||
}
|
||||
fader.forceOut();
|
||||
status_.state.flags.flag1 = 1;
|
||||
JASCriticalSection cs;
|
||||
inner_.outputTrack.stopSeq();
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::JAISound_tryDie_() {
|
||||
asm bool JAISeq::JAISound_tryDie_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/JAISound_tryDie___6JAISeqFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A1348-802A14FC 29BC88 01B4+00 2/2 0/0 0/0 .text
|
||||
* mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void JAISeq::mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
inner_.outputTrack.setTempoRate(inner_.mTempoMgr.getTempo());
|
||||
inner_.outputTrack.mute(param_1.field_0x0.flags.flag1 || status_.isMute());
|
||||
inner_.outputTrack.pause(param_1.field_0x0.flags.flag2 || status_.isPaused());
|
||||
JASSoundParams stackParams;
|
||||
params.mixOutAll(param_0, &stackParams, fader.getIntensity());
|
||||
if (field_0x3a8) {
|
||||
field_0x3a8->virtual4(this, stackParams);
|
||||
}
|
||||
if (audible_) {
|
||||
int maxChannels = audience_->getMaxChannels();
|
||||
for (int i = 0; i < maxChannels; i++) {
|
||||
audience_->mixChannelOut(stackParams, audible_, i);
|
||||
}
|
||||
} else {
|
||||
inner_.mSoundParams = stackParams;
|
||||
for (int i = 0; i < 32; i++) {
|
||||
if (inner_.mSoundChild[i]) {
|
||||
JASTrack* track = JAISeq::getChildTrack(i);
|
||||
if (track) {
|
||||
inner_.mSoundChild[i]->mixOut(track);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -394,17 +438,15 @@ asm void JAISeq::mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1
|
|||
#include "asm/JSystem/JAudio2/JAISeq/mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A14FC-802A1570 29BE3C 0074+00 0/0 1/1 0/0 .text
|
||||
* JAISeqMgr_mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::JAISeqMgr_mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/JAISeqMgr_mixOut___6JAISeqFRC14JASSoundParams16JAISoundActivity.s"
|
||||
void JAISeq::JAISeqMgr_mixOut_(JASSoundParams const& param_0, JAISoundActivity param_1) {
|
||||
if (prepare_(param_0, param_1) && inner_.outputTrack.getStatus() == 1) {
|
||||
mixOut_(param_0, param_1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A1570-802A1578 29BEB0 0008+00 1/0 0/0 0/0 .text getNumChild__6JAISeqCFv */
|
||||
s32 JAISeq::getNumChild() const {
|
||||
|
|
@ -412,16 +454,43 @@ s32 JAISeq::getNumChild() const {
|
|||
}
|
||||
|
||||
/* 802A1578-802A165C 29BEB8 00E4+00 1/0 0/0 0/0 .text getChild__6JAISeqFi */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
JAISoundChild* JAISeq::getChild(int index) {
|
||||
if (inner_.mSoundChild[index]) {
|
||||
return inner_.mSoundChild[index];
|
||||
}
|
||||
inner_.mSoundChild[index] = new JASPoolAllocObject<JAISoundChild>();
|
||||
if (!inner_.mSoundChild[index]) {
|
||||
return NULL;
|
||||
}
|
||||
return inner_.mSoundChild[index];
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::getChild(int param_0) {
|
||||
asm JAISoundChild* JAISeq::getChild(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/getChild__6JAISeqFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A165C-802A1728 29BF9C 00CC+00 1/0 0/0 0/0 .text releaseChild__6JAISeqFi */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void JAISeq::releaseChild(int param_0) {
|
||||
if (inner_.outputTrack.getStatus() == 1 && inner_.mSoundChild[param_0]) {
|
||||
JASTrack* track = getChildTrack(param_0);
|
||||
if (track) {
|
||||
track->assignExtBuffer(0, NULL);
|
||||
}
|
||||
delete inner_.mSoundChild[param_0];
|
||||
inner_.mSoundChild[param_0] = NULL;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -430,38 +499,30 @@ asm void JAISeq::releaseChild(int param_0) {
|
|||
#include "asm/JSystem/JAudio2/JAISeq/releaseChild__6JAISeqFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A1728-802A1730 29C068 0008+00 1/0 0/0 0/0 .text getTrack__6JAISeqFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::getTrack() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/getTrack__6JAISeqFv.s"
|
||||
JASTrack* JAISeq::getTrack() {
|
||||
return &inner_.outputTrack;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A1730-802A1768 29C070 0038+00 2/1 0/0 0/0 .text getChildTrack__6JAISeqFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::getChildTrack(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/getChildTrack__6JAISeqFi.s"
|
||||
JASTrack* JAISeq::getChildTrack(int param_0) {
|
||||
u32 tmp = u32(param_0) >> 4;
|
||||
JASTrack* track = inner_.outputTrack.getChild(tmp);
|
||||
if (track) {
|
||||
JASTrack* track2 = track->getChild(param_0 - (tmp << 4));
|
||||
return track2;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A1768-802A176C 29C0A8 0004+00 1/0 0/0 0/0 .text asSeq__6JAISeqFv */
|
||||
void JAISeq::asSeq() {
|
||||
/* empty function */
|
||||
JAISeq* JAISeq::asSeq() {
|
||||
return this;
|
||||
}
|
||||
|
||||
/* 802A176C-802A1774 29C0AC 0008+00 1/0 0/0 0/0 .text getTempoMgr__6JAISeqFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISeq::getTempoMgr() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISeq/getTempoMgr__6JAISeqFv.s"
|
||||
JAITempoMgr* JAISeq::getTempoMgr() {
|
||||
return &inner_.mTempoMgr;
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
|||
|
|
@ -253,18 +253,18 @@ void JAISound::stop() {
|
|||
}
|
||||
|
||||
/* 802A25D8-802A25E0 29CF18 0008+00 1/0 2/0 0/0 .text asSe__8JAISoundFv */
|
||||
bool JAISound::asSe() {
|
||||
return false;
|
||||
JAISe* JAISound::asSe() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 802A25E0-802A25E8 29CF20 0008+00 1/0 2/0 0/0 .text asSeq__8JAISoundFv */
|
||||
bool JAISound::asSeq() {
|
||||
return false;
|
||||
JAISeq* JAISound::asSeq() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 802A25E8-802A25F0 29CF28 0008+00 1/0 2/0 0/0 .text asStream__8JAISoundFv */
|
||||
bool JAISound::asStream() {
|
||||
return false;
|
||||
JAIStream* JAISound::asStream() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 802A25F0-802A266C 29CF30 007C+00 0/0 3/3 0/0 .text die_JAISound___8JAISoundFv */
|
||||
|
|
|
|||
|
|
@ -11,26 +11,6 @@
|
|||
// Types:
|
||||
//
|
||||
|
||||
struct JSUPtrLink {
|
||||
/* 802DBDFC */ JSUPtrLink(void*);
|
||||
};
|
||||
|
||||
struct JGeometry {
|
||||
template <typename A1>
|
||||
struct TVec3 {};
|
||||
/* TVec3<f32> */
|
||||
struct TVec3__template0 {};
|
||||
};
|
||||
|
||||
struct JASSoundParams {};
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool {};
|
||||
/* JASMemPool<JAISoundChild> */
|
||||
struct JASMemPool__template1 {
|
||||
/* 802A1268 */ void func_802A1268(void* _this);
|
||||
};
|
||||
|
||||
struct JASGenericMemPool {
|
||||
/* 80290848 */ JASGenericMemPool();
|
||||
/* 80290948 */ void alloc(u32);
|
||||
|
|
@ -49,17 +29,8 @@ struct JASAramStream {
|
|||
|
||||
struct JAIStreamMgr {};
|
||||
|
||||
struct JAISoundActivity {};
|
||||
|
||||
template <typename A0>
|
||||
struct JAISoundStrategyMgr {};
|
||||
/* JAISoundStrategyMgr<JAIStream> */
|
||||
struct JAISoundStrategyMgr__template2 {};
|
||||
|
||||
struct JAIAudience {};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct JAIStream {
|
||||
/* 802A3104 */ JAIStream(JAIStreamMgr*, JAISoundStrategyMgr<JAIStream>*);
|
||||
/* 802A319C */ void JAIStreamMgr_startID_(JAISoundID, s32, JGeometry::TVec3<f32> const*,
|
||||
|
|
@ -74,14 +45,10 @@ struct JAIStream {
|
|||
/* 802A3948 */ s32 getNumChild() const;
|
||||
/* 802A3950 */ void getChild(int);
|
||||
/* 802A3A24 */ void releaseChild(int);
|
||||
/* 802A3ABC */ bool getTrack();
|
||||
/* 802A3AC4 */ bool getChildTrack(int);
|
||||
/* 802A3ACC */ void asStream();
|
||||
/* 802A3AD0 */ bool getTempoMgr();
|
||||
};
|
||||
|
||||
struct JAISoundParams {
|
||||
/* 802A2280 */ void mixOutAll(JASSoundParams const&, JASSoundParams*, f32);
|
||||
/* 802A3ABC */ JASTrack* getTrack();
|
||||
/* 802A3AC4 */ JASTrack* getChildTrack(int);
|
||||
/* 802A3ACC */ JAIStream* asStream();
|
||||
/* 802A3AD0 */ JAITempoMgr* getTempoMgr();
|
||||
};
|
||||
|
||||
struct JAISoundChild {
|
||||
|
|
@ -89,16 +56,6 @@ struct JAISoundChild {
|
|||
/* 802A2B7C */ void calc();
|
||||
};
|
||||
|
||||
struct JAISound {
|
||||
/* 802A22F8 */ JAISound();
|
||||
/* 802A2328 */ void start_JAISound_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
|
||||
/* 802A25D8 */ bool asSe();
|
||||
/* 802A25E0 */ bool asSeq();
|
||||
/* 802A25F0 */ void die_JAISound_();
|
||||
/* 802A266C */ void increasePrepareCount_JAISound_();
|
||||
/* 802A26B8 */ void calc_JAISound_();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
@ -333,21 +290,21 @@ asm void JAIStream::releaseChild(int param_0) {
|
|||
#pragma pop
|
||||
|
||||
/* 802A3ABC-802A3AC4 29E3FC 0008+00 1/0 0/0 0/0 .text getTrack__9JAIStreamFv */
|
||||
bool JAIStream::getTrack() {
|
||||
return false;
|
||||
JASTrack* JAIStream::getTrack() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 802A3AC4-802A3ACC 29E404 0008+00 1/0 0/0 0/0 .text getChildTrack__9JAIStreamFi */
|
||||
bool JAIStream::getChildTrack(int param_0) {
|
||||
return false;
|
||||
JASTrack* JAIStream::getChildTrack(int param_0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 802A3ACC-802A3AD0 29E40C 0004+00 1/0 0/0 0/0 .text asStream__9JAIStreamFv */
|
||||
void JAIStream::asStream() {
|
||||
/* empty function */
|
||||
JAIStream* JAIStream::asStream() {
|
||||
return this;
|
||||
}
|
||||
|
||||
/* 802A3AD0-802A3AD8 29E410 0008+00 1/0 0/0 0/0 .text getTempoMgr__9JAIStreamFv */
|
||||
bool JAIStream::getTempoMgr() {
|
||||
return false;
|
||||
JAITempoMgr* JAIStream::getTempoMgr() {
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,18 +11,6 @@
|
|||
// Types:
|
||||
//
|
||||
|
||||
struct JSUPtrLink {
|
||||
/* 802DBDFC */ JSUPtrLink(void*);
|
||||
/* 802DBE14 */ ~JSUPtrLink();
|
||||
};
|
||||
|
||||
struct JSUPtrList {
|
||||
/* 802DBEAC */ ~JSUPtrList();
|
||||
/* 802DBF14 */ void initiate();
|
||||
/* 802DC094 */ void insert(JSUPtrLink*, JSUPtrLink*);
|
||||
/* 802DC15C */ void remove(JSUPtrLink*);
|
||||
};
|
||||
|
||||
struct JKRSolidHeap {};
|
||||
|
||||
struct JKRHeap {
|
||||
|
|
@ -50,19 +38,6 @@ struct JASDisposer {
|
|||
/* 80290BCC */ void onDispose();
|
||||
};
|
||||
|
||||
struct JASHeap {
|
||||
/* 80290140 */ JASHeap(JASDisposer*);
|
||||
/* 802901AC */ void initRootHeap(void*, u32);
|
||||
/* 8029021C */ void alloc(JASHeap*, u32);
|
||||
/* 802903F4 */ void allocTail(JASHeap*, u32);
|
||||
/* 802904E4 */ void free();
|
||||
/* 80290608 */ void insertChild(JASHeap*, JASHeap*, void*, u32, bool);
|
||||
/* 802906F0 */ void getTailHeap();
|
||||
/* 8029077C */ void getTailOffset();
|
||||
/* 802907E0 */ void getCurOffset();
|
||||
/* 80290B54 */ ~JASHeap();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
@ -109,9 +84,6 @@ extern "C" void __dt__10JSUPtrListFv();
|
|||
extern "C" void initiate__10JSUPtrListFv();
|
||||
extern "C" void insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink();
|
||||
extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
|
||||
extern "C" void OSInitMutex();
|
||||
extern "C" void OSLockMutex();
|
||||
extern "C" void OSUnlockMutex();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
|
|
@ -131,7 +103,7 @@ extern "C" u8 sSystemHeap__7JKRHeap[4];
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASHeap::JASHeap(JASDisposer* param_0) {
|
||||
asm JASHeap::JASHeap(JASDisposer* param_0) : mTree(this) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASHeapCtrl/__ct__7JASHeapFP11JASDisposer.s"
|
||||
}
|
||||
|
|
@ -259,7 +231,7 @@ asm void JASGenericMemPool::newMemPool(u32 param_0, int param_1) {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASGenericMemPool::alloc(u32 param_0) {
|
||||
asm void* JASGenericMemPool::alloc(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASHeapCtrl/alloc__17JASGenericMemPoolFUl.s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,29 +82,10 @@ struct JASResArcLoader {
|
|||
/* 80290C04 */ void getResMaxSize(JKRArchive const*);
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool {};
|
||||
/* JASMemPool<Z2SoundHandlePool> */
|
||||
struct JASMemPool__template4 {
|
||||
/* 802AB200 */ void func_802AB200(void* _this);
|
||||
};
|
||||
|
||||
/* JASMemPool<Z2Audible> */
|
||||
struct JASMemPool__template5 {
|
||||
/* 802BD288 */ void func_802BD288(void* _this);
|
||||
};
|
||||
|
||||
struct JASKernel {
|
||||
/* 80290B08 */ void getAramHeap();
|
||||
};
|
||||
|
||||
struct JASHeap {
|
||||
/* 8029021C */ void alloc(JASHeap*, u32);
|
||||
/* 802904E4 */ void free();
|
||||
/* 80290B54 */ ~JASHeap();
|
||||
/* 802A4A5C */ void __defctor();
|
||||
};
|
||||
|
||||
struct JASAramStream {
|
||||
static u8 sBlockSize[4];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -51,8 +51,6 @@ struct JAUSoundTable {
|
|||
/* 802A7160 */ void getTypeID(JAISoundID) const;
|
||||
};
|
||||
|
||||
struct JASHeap {};
|
||||
|
||||
struct JASWaveArc {
|
||||
/* 8029A4C0 */ void load(JASHeap*);
|
||||
/* 8029A580 */ void loadTail(JASHeap*);
|
||||
|
|
|
|||
|
|
@ -4,76 +4,64 @@
|
|||
//
|
||||
|
||||
#include "d/d_vib_pattern.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/d_vibration.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dVibration_c {
|
||||
static u8 const MS_patt[88];
|
||||
static u8 const CS_patt[88];
|
||||
static u8 const MQ_patt[80];
|
||||
static u8 const CQ_patt[80];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" u8 const MS_patt__12dVibration_c[88];
|
||||
extern "C" u8 const CS_patt__12dVibration_c[88];
|
||||
extern "C" u8 const MQ_patt__12dVibration_c[80];
|
||||
extern "C" u8 const CQ_patt__12dVibration_c[80];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037A620-8037A678 006C80 0058+00 0/0 1/1 0/0 .rodata MS_patt__12dVibration_c */
|
||||
SECTION_RODATA u8 const dVibration_c::MS_patt[88] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xE8, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xF6,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
|
||||
0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xC0, 0x00, 0x00, 0x00,
|
||||
const dVibration_pattern dVibration_c::MS_patt[11] = {
|
||||
{0x0000, 0x0000, 0x00000000},
|
||||
{0x0000, 0x0003, 0xC0000000},
|
||||
{0x0000, 0x0004, 0xE0000000},
|
||||
{0x0000, 0x0006, 0xE8000000},
|
||||
{0x0000, 0x0007, 0xEC000000},
|
||||
{0x0000, 0x0008, 0xF6000000},
|
||||
{0x0000, 0x0009, 0xFB000000},
|
||||
{0x0000, 0x000A, 0xF6800000},
|
||||
{0x0000, 0x000B, 0xFB400000},
|
||||
{0x0000, 0x0008, 0xC2000000},
|
||||
{0x0000, 0x0002, 0xC0000000},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8037A620, &dVibration_c::MS_patt);
|
||||
|
||||
/* 8037A678-8037A6D0 006CD8 0058+00 0/0 1/1 0/0 .rodata CS_patt__12dVibration_c */
|
||||
SECTION_RODATA u8 const dVibration_c::CS_patt[88] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x04, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xE8, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xF6,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
|
||||
0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x08, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xC0, 0x00, 0x00, 0x00,
|
||||
const dVibration_pattern dVibration_c::CS_patt[11] = {
|
||||
{0x0000, 0x0000, 0x00000000},
|
||||
{0x0000, 0x0003, 0xC0000000},
|
||||
{0x0000, 0x0004, 0xE0000000},
|
||||
{0x0000, 0x0006, 0xE8000000},
|
||||
{0x0000, 0x0007, 0xEC000000},
|
||||
{0x0000, 0x0008, 0xF6000000},
|
||||
{0x0000, 0x0009, 0xFB000000},
|
||||
{0x0000, 0x000A, 0xF6800000},
|
||||
{0x0000, 0x000B, 0xFB400000},
|
||||
{0x0000, 0x0008, 0xC2000000},
|
||||
{0x0000, 0x0002, 0xC0000000},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8037A678, &dVibration_c::CS_patt);
|
||||
|
||||
/* 8037A6D0-8037A720 006D30 0050+00 0/0 1/1 0/0 .rodata MQ_patt__12dVibration_c */
|
||||
SECTION_RODATA u8 const dVibration_c::MQ_patt[80] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x10, 0x20, 0x20, 0x20,
|
||||
0x00, 0x01, 0x00, 0x20, 0x42, 0x10, 0x42, 0x08, 0x00, 0x02, 0x00, 0x20, 0x22, 0x22, 0x22, 0x22,
|
||||
0x00, 0x02, 0x00, 0x20, 0x22, 0x49, 0x22, 0x49, 0x00, 0x03, 0x00, 0x20, 0x52, 0x52, 0x52, 0x52,
|
||||
0x00, 0x03, 0x00, 0x20, 0x4A, 0x94, 0xAA, 0x95, 0x00, 0x04, 0x00, 0x20, 0x36, 0x55, 0x56, 0x55,
|
||||
0x00, 0x04, 0x00, 0x20, 0x6B, 0x6D, 0x6B, 0x6D, 0x00, 0x01, 0x00, 0x1B, 0x20, 0x20, 0x10, 0x00,
|
||||
const dVibration_pattern dVibration_c::MQ_patt[10] = {
|
||||
{0x0000, 0x0000, 0x00000000},
|
||||
{0x0001, 0x0020, 0x10202020},
|
||||
{0x0001, 0x0020, 0x42104208},
|
||||
{0x0002, 0x0020, 0x22222222},
|
||||
{0x0002, 0x0020, 0x22492249},
|
||||
{0x0003, 0x0020, 0x52525252},
|
||||
{0x0003, 0x0020, 0x4A94AA95},
|
||||
{0x0004, 0x0020, 0x36555655},
|
||||
{0x0004, 0x0020, 0x6B6D6B6D},
|
||||
{0x0001, 0x001B, 0x20201000},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8037A6D0, &dVibration_c::MQ_patt);
|
||||
|
||||
/* 8037A720-8037A770 006D80 0050+00 0/0 1/1 0/0 .rodata CQ_patt__12dVibration_c */
|
||||
SECTION_RODATA u8 const dVibration_c::CQ_patt[80] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x10, 0x20, 0x20, 0x20,
|
||||
0x00, 0x01, 0x00, 0x20, 0x42, 0x10, 0x42, 0x08, 0x00, 0x02, 0x00, 0x20, 0x22, 0x22, 0x22, 0x22,
|
||||
0x00, 0x02, 0x00, 0x20, 0x22, 0x49, 0x22, 0x49, 0x00, 0x03, 0x00, 0x20, 0x52, 0x52, 0x52, 0x52,
|
||||
0x00, 0x03, 0x00, 0x20, 0x4A, 0x94, 0xAA, 0x95, 0x00, 0x04, 0x00, 0x20, 0x36, 0x55, 0x56, 0x55,
|
||||
0x00, 0x04, 0x00, 0x20, 0x6B, 0x6D, 0x6B, 0x6D, 0x00, 0x00, 0x00, 0x1B, 0x20, 0x20, 0x10, 0x00,
|
||||
const dVibration_pattern dVibration_c::CQ_patt[10] = {
|
||||
{0x0000, 0x0000, 0x00000000},
|
||||
{0x0001, 0x0020, 0x10202020},
|
||||
{0x0001, 0x0020, 0x42104208},
|
||||
{0x0002, 0x0020, 0x22222222},
|
||||
{0x0002, 0x0020, 0x22492249},
|
||||
{0x0003, 0x0020, 0x52525252},
|
||||
{0x0003, 0x0020, 0x4A94AA95},
|
||||
{0x0004, 0x0020, 0x36555655},
|
||||
{0x0004, 0x0020, 0x6B6D6B6D},
|
||||
{0x0000, 0x001B, 0x20201000},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8037A720, &dVibration_c::CQ_patt);
|
||||
|
|
|
|||
Loading…
Reference in New Issue