mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 15:01:53 -04:00
JASVoiceBank, JASBasicWaveBank, JASBank, JAUSeqCollection (#1924)
* JASVoiceBank OK * JASBasicWaveBank * JASBank * JAUSeqCollection
This commit is contained in:
-44
@@ -1,44 +0,0 @@
|
||||
lbl_8029883C:
|
||||
/* 8029883C 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80298840 7C 08 02 A6 */ mflr r0
|
||||
/* 80298844 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 80298848 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 8029884C 48 0C 99 81 */ bl _savegpr_25
|
||||
/* 80298850 7C 79 1B 78 */ mr r25, r3
|
||||
/* 80298854 7C 9A 23 78 */ mr r26, r4
|
||||
/* 80298858 38 79 00 04 */ addi r3, r25, 4
|
||||
/* 8029885C 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 80298860 48 0A 67 E1 */ bl OSLockMutex
|
||||
/* 80298864 3B 60 00 00 */ li r27, 0
|
||||
/* 80298868 3B 9A 00 04 */ addi r28, r26, 4
|
||||
/* 8029886C 3B A0 00 00 */ li r29, 0
|
||||
/* 80298870 3B CD 8C F8 */ la r30, mNoLoad__16JASBasicWaveBank(r13) /* 80451278-_SDA_BASE_ */
|
||||
/* 80298874 3B E0 FF FF */ li r31, -1
|
||||
/* 80298878 48 00 00 38 */ b lbl_802988B0
|
||||
lbl_8029887C:
|
||||
/* 8029887C 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80298880 7F 64 DB 78 */ mr r4, r27
|
||||
/* 80298884 48 00 02 D1 */ bl getWaveID__Q216JASBasicWaveBank10TWaveGroupCFi
|
||||
/* 80298888 1C 63 00 2C */ mulli r3, r3, 0x2c
|
||||
/* 8029888C 80 19 00 1C */ lwz r0, 0x1c(r25)
|
||||
/* 80298890 7C 60 1A 14 */ add r3, r0, r3
|
||||
/* 80298894 80 03 00 28 */ lwz r0, 0x28(r3)
|
||||
/* 80298898 7C 00 E0 40 */ cmplw r0, r28
|
||||
/* 8029889C 40 82 00 10 */ bne lbl_802988AC
|
||||
/* 802988A0 93 A3 00 28 */ stw r29, 0x28(r3)
|
||||
/* 802988A4 93 C3 00 24 */ stw r30, 0x24(r3)
|
||||
/* 802988A8 93 E3 00 0C */ stw r31, 0xc(r3)
|
||||
lbl_802988AC:
|
||||
/* 802988AC 3B 7B 00 01 */ addi r27, r27, 1
|
||||
lbl_802988B0:
|
||||
/* 802988B0 A0 1A 00 7C */ lhz r0, 0x7c(r26)
|
||||
/* 802988B4 7C 1B 00 40 */ cmplw r27, r0
|
||||
/* 802988B8 41 80 FF C4 */ blt lbl_8029887C
|
||||
/* 802988BC 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 802988C0 48 0A 68 5D */ bl OSUnlockMutex
|
||||
/* 802988C4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 802988C8 48 0C 99 51 */ bl _restgpr_25
|
||||
/* 802988CC 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 802988D0 7C 08 03 A6 */ mtlr r0
|
||||
/* 802988D4 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 802988D8 4E 80 00 20 */ blr
|
||||
@@ -1,45 +0,0 @@
|
||||
lbl_80298910:
|
||||
/* 80298910 81 03 00 1C */ lwz r8, 0x1c(r3)
|
||||
/* 80298914 54 C0 04 3E */ clrlwi r0, r6, 0x10
|
||||
/* 80298918 1D 60 00 2C */ mulli r11, r0, 0x2c
|
||||
/* 8029891C 39 4B 00 04 */ addi r10, r11, 4
|
||||
/* 80298920 7D 48 52 14 */ add r10, r8, r10
|
||||
/* 80298924 88 07 00 00 */ lbz r0, 0(r7)
|
||||
/* 80298928 98 0A 00 00 */ stb r0, 0(r10)
|
||||
/* 8029892C 88 07 00 01 */ lbz r0, 1(r7)
|
||||
/* 80298930 98 0A 00 01 */ stb r0, 1(r10)
|
||||
/* 80298934 88 07 00 02 */ lbz r0, 2(r7)
|
||||
/* 80298938 98 0A 00 02 */ stb r0, 2(r10)
|
||||
/* 8029893C C0 07 00 04 */ lfs f0, 4(r7)
|
||||
/* 80298940 D0 0A 00 04 */ stfs f0, 4(r10)
|
||||
/* 80298944 81 27 00 08 */ lwz r9, 8(r7)
|
||||
/* 80298948 91 2A 00 08 */ stw r9, 8(r10)
|
||||
/* 8029894C 80 07 00 0C */ lwz r0, 0xc(r7)
|
||||
/* 80298950 90 0A 00 0C */ stw r0, 0xc(r10)
|
||||
/* 80298954 80 07 00 10 */ lwz r0, 0x10(r7)
|
||||
/* 80298958 90 0A 00 10 */ stw r0, 0x10(r10)
|
||||
/* 8029895C 80 07 00 14 */ lwz r0, 0x14(r7)
|
||||
/* 80298960 90 0A 00 14 */ stw r0, 0x14(r10)
|
||||
/* 80298964 80 07 00 18 */ lwz r0, 0x18(r7)
|
||||
/* 80298968 90 0A 00 18 */ stw r0, 0x18(r10)
|
||||
/* 8029896C A8 07 00 1C */ lha r0, 0x1c(r7)
|
||||
/* 80298970 B0 0A 00 1C */ sth r0, 0x1c(r10)
|
||||
/* 80298974 A8 07 00 1E */ lha r0, 0x1e(r7)
|
||||
/* 80298978 B0 0A 00 1E */ sth r0, 0x1e(r10)
|
||||
/* 8029897C 80 07 00 20 */ lwz r0, 0x20(r7)
|
||||
/* 80298980 90 0A 00 20 */ stw r0, 0x20(r10)
|
||||
/* 80298984 39 0D 8C F8 */ la r8, mNoLoad__16JASBasicWaveBank(r13) /* 80451278-_SDA_BASE_ */
|
||||
/* 80298988 80 03 00 1C */ lwz r0, 0x1c(r3)
|
||||
/* 8029898C 7C E0 5A 14 */ add r7, r0, r11
|
||||
/* 80298990 91 07 00 24 */ stw r8, 0x24(r7)
|
||||
/* 80298994 38 E0 FF FF */ li r7, -1
|
||||
/* 80298998 80 03 00 1C */ lwz r0, 0x1c(r3)
|
||||
/* 8029899C 7C 60 5A 14 */ add r3, r0, r11
|
||||
/* 802989A0 90 E3 00 0C */ stw r7, 0xc(r3)
|
||||
/* 802989A4 80 64 00 78 */ lwz r3, 0x78(r4)
|
||||
/* 802989A8 54 A5 18 38 */ slwi r5, r5, 3
|
||||
/* 802989AC 7C C3 2B 2E */ sthx r6, r3, r5
|
||||
/* 802989B0 80 04 00 78 */ lwz r0, 0x78(r4)
|
||||
/* 802989B4 7C 60 2A 14 */ add r3, r0, r5
|
||||
/* 802989B8 91 23 00 04 */ stw r9, 4(r3)
|
||||
/* 802989BC 4E 80 00 20 */ blr
|
||||
@@ -1,11 +0,0 @@
|
||||
lbl_80298640:
|
||||
/* 80298640 A0 03 00 26 */ lhz r0, 0x26(r3)
|
||||
/* 80298644 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80298648 41 80 00 0C */ blt lbl_80298654
|
||||
/* 8029864C 38 60 00 00 */ li r3, 0
|
||||
/* 80298650 4E 80 00 20 */ blr
|
||||
lbl_80298654:
|
||||
/* 80298654 80 63 00 20 */ lwz r3, 0x20(r3)
|
||||
/* 80298658 54 80 38 30 */ slwi r0, r4, 7
|
||||
/* 8029865C 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 80298660 4E 80 00 20 */ blr
|
||||
@@ -1,15 +0,0 @@
|
||||
lbl_802988DC:
|
||||
/* 802988DC A0 03 00 24 */ lhz r0, 0x24(r3)
|
||||
/* 802988E0 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 802988E4 41 80 00 0C */ blt lbl_802988F0
|
||||
/* 802988E8 38 60 00 00 */ li r3, 0
|
||||
/* 802988EC 4E 80 00 20 */ blr
|
||||
lbl_802988F0:
|
||||
/* 802988F0 80 63 00 1C */ lwz r3, 0x1c(r3)
|
||||
/* 802988F4 1C 04 00 2C */ mulli r0, r4, 0x2c
|
||||
/* 802988F8 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 802988FC 80 03 00 28 */ lwz r0, 0x28(r3)
|
||||
/* 80298900 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80298904 4C 82 00 20 */ bnelr
|
||||
/* 80298908 38 60 00 00 */ li r3, 0
|
||||
/* 8029890C 4E 80 00 20 */ blr
|
||||
@@ -1,5 +0,0 @@
|
||||
lbl_80298B54:
|
||||
/* 80298B54 80 63 00 78 */ lwz r3, 0x78(r3)
|
||||
/* 80298B58 54 80 18 38 */ slwi r0, r4, 3
|
||||
/* 80298B5C 7C 63 02 2E */ lhzx r3, r3, r0
|
||||
/* 80298B60 4E 80 00 20 */ blr
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
lbl_80298B64:
|
||||
/* 80298B64 80 83 00 28 */ lwz r4, 0x28(r3)
|
||||
/* 80298B68 80 84 00 38 */ lwz r4, 0x38(r4)
|
||||
/* 80298B6C 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80298B70 40 82 00 0C */ bne lbl_80298B7C
|
||||
/* 80298B74 38 60 00 00 */ li r3, 0
|
||||
/* 80298B78 4E 80 00 20 */ blr
|
||||
lbl_80298B7C:
|
||||
/* 80298B7C 80 03 00 0C */ lwz r0, 0xc(r3)
|
||||
/* 80298B80 7C 64 02 14 */ add r3, r4, r0
|
||||
/* 80298B84 4E 80 00 20 */ blr
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
lbl_80298B2C:
|
||||
/* 80298B2C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80298B30 7C 08 02 A6 */ mflr r0
|
||||
/* 80298B34 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80298B38 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80298B3C 80 63 00 74 */ lwz r3, 0x74(r3)
|
||||
/* 80298B40 4B FF FC FD */ bl decWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup
|
||||
/* 80298B44 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80298B48 7C 08 03 A6 */ mtlr r0
|
||||
/* 80298B4C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80298B50 4E 80 00 20 */ blr
|
||||
@@ -1,11 +0,0 @@
|
||||
lbl_80298B04:
|
||||
/* 80298B04 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80298B08 7C 08 02 A6 */ mflr r0
|
||||
/* 80298B0C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80298B10 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80298B14 80 63 00 74 */ lwz r3, 0x74(r3)
|
||||
/* 80298B18 4B FF FC 79 */ bl incWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup
|
||||
/* 80298B1C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80298B20 7C 08 03 A6 */ mtlr r0
|
||||
/* 80298B24 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80298B28 4E 80 00 20 */ blr
|
||||
@@ -1,46 +0,0 @@
|
||||
lbl_80298664:
|
||||
/* 80298664 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80298668 7C 08 02 A6 */ mflr r0
|
||||
/* 8029866C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80298670 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80298674 48 0C 9B 69 */ bl _savegpr_29
|
||||
/* 80298678 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 8029867C 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80298680 7C BF 2B 78 */ mr r31, r5
|
||||
/* 80298684 80 63 00 20 */ lwz r3, 0x20(r3)
|
||||
/* 80298688 3C 80 80 2A */ lis r4, __dt__Q216JASBasicWaveBank10TWaveGroupFv@ha /* 0x80298A0C@ha */
|
||||
/* 8029868C 38 84 8A 0C */ addi r4, r4, __dt__Q216JASBasicWaveBank10TWaveGroupFv@l /* 0x80298A0C@l */
|
||||
/* 80298690 48 0C 95 DD */ bl __destroy_new_array
|
||||
/* 80298694 B3 DD 00 26 */ sth r30, 0x26(r29)
|
||||
/* 80298698 57 C3 38 30 */ slwi r3, r30, 7
|
||||
/* 8029869C 38 63 00 10 */ addi r3, r3, 0x10
|
||||
/* 802986A0 7F E4 FB 78 */ mr r4, r31
|
||||
/* 802986A4 38 A0 00 00 */ li r5, 0
|
||||
/* 802986A8 48 03 66 69 */ bl __nwa__FUlP7JKRHeapi
|
||||
/* 802986AC 3C 80 80 2A */ lis r4, __ct__Q216JASBasicWaveBank10TWaveGroupFv@ha /* 0x802989C0@ha */
|
||||
/* 802986B0 38 84 89 C0 */ addi r4, r4, __ct__Q216JASBasicWaveBank10TWaveGroupFv@l /* 0x802989C0@l */
|
||||
/* 802986B4 3C A0 80 2A */ lis r5, __dt__Q216JASBasicWaveBank10TWaveGroupFv@ha /* 0x80298A0C@ha */
|
||||
/* 802986B8 38 A5 8A 0C */ addi r5, r5, __dt__Q216JASBasicWaveBank10TWaveGroupFv@l /* 0x80298A0C@l */
|
||||
/* 802986BC 38 C0 00 80 */ li r6, 0x80
|
||||
/* 802986C0 7F C7 F3 78 */ mr r7, r30
|
||||
/* 802986C4 48 0C 98 51 */ bl __construct_new_array
|
||||
/* 802986C8 90 7D 00 20 */ stw r3, 0x20(r29)
|
||||
/* 802986CC 38 A0 00 00 */ li r5, 0
|
||||
/* 802986D0 38 60 00 00 */ li r3, 0
|
||||
/* 802986D4 48 00 00 18 */ b lbl_802986EC
|
||||
lbl_802986D8:
|
||||
/* 802986D8 80 9D 00 20 */ lwz r4, 0x20(r29)
|
||||
/* 802986DC 38 03 00 74 */ addi r0, r3, 0x74
|
||||
/* 802986E0 7F A4 01 2E */ stwx r29, r4, r0
|
||||
/* 802986E4 38 A5 00 01 */ addi r5, r5, 1
|
||||
/* 802986E8 38 63 00 80 */ addi r3, r3, 0x80
|
||||
lbl_802986EC:
|
||||
/* 802986EC A0 1D 00 26 */ lhz r0, 0x26(r29)
|
||||
/* 802986F0 7C 05 00 00 */ cmpw r5, r0
|
||||
/* 802986F4 41 80 FF E4 */ blt lbl_802986D8
|
||||
/* 802986F8 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 802986FC 48 0C 9B 2D */ bl _restgpr_29
|
||||
/* 80298700 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80298704 7C 08 03 A6 */ mtlr r0
|
||||
/* 80298708 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8029870C 4E 80 00 20 */ blr
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
lbl_80298A84:
|
||||
/* 80298A84 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80298A88 7C 08 02 A6 */ mflr r0
|
||||
/* 80298A8C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80298A90 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80298A94 48 0C 97 49 */ bl _savegpr_29
|
||||
/* 80298A98 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80298A9C 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80298AA0 7C BF 2B 78 */ mr r31, r5
|
||||
/* 80298AA4 80 63 00 78 */ lwz r3, 0x78(r3)
|
||||
/* 80298AA8 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80298AAC 41 82 00 0C */ beq lbl_80298AB8
|
||||
/* 80298AB0 38 63 FF F0 */ addi r3, r3, -16
|
||||
/* 80298AB4 48 03 62 AD */ bl __dla__FPv
|
||||
lbl_80298AB8:
|
||||
/* 80298AB8 B3 DD 00 7C */ sth r30, 0x7c(r29)
|
||||
/* 80298ABC 57 C3 18 38 */ slwi r3, r30, 3
|
||||
/* 80298AC0 38 63 00 10 */ addi r3, r3, 0x10
|
||||
/* 80298AC4 7F E4 FB 78 */ mr r4, r31
|
||||
/* 80298AC8 38 A0 00 00 */ li r5, 0
|
||||
/* 80298ACC 48 03 62 45 */ bl __nwa__FUlP7JKRHeapi
|
||||
/* 80298AD0 3C 80 80 2A */ lis r4, __ct__Q216JASBasicWaveBank14TGroupWaveInfoFv@ha /* 0x80298C4C@ha */
|
||||
/* 80298AD4 38 84 8C 4C */ addi r4, r4, __ct__Q216JASBasicWaveBank14TGroupWaveInfoFv@l /* 0x80298C4C@l */
|
||||
/* 80298AD8 38 A0 00 00 */ li r5, 0
|
||||
/* 80298ADC 38 C0 00 08 */ li r6, 8
|
||||
/* 80298AE0 7F C7 F3 78 */ mr r7, r30
|
||||
/* 80298AE4 48 0C 94 31 */ bl __construct_new_array
|
||||
/* 80298AE8 90 7D 00 78 */ stw r3, 0x78(r29)
|
||||
/* 80298AEC 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80298AF0 48 0C 97 39 */ bl _restgpr_29
|
||||
/* 80298AF4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80298AF8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80298AFC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80298B00 4E 80 00 20 */ blr
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
lbl_80298710:
|
||||
/* 80298710 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80298714 7C 08 02 A6 */ mflr r0
|
||||
/* 80298718 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8029871C 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80298720 48 0C 9A BD */ bl _savegpr_29
|
||||
/* 80298724 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80298728 7C 9E 23 78 */ mr r30, r4
|
||||
/* 8029872C 7C BF 2B 78 */ mr r31, r5
|
||||
/* 80298730 80 63 00 1C */ lwz r3, 0x1c(r3)
|
||||
/* 80298734 3C 80 80 2A */ lis r4, __dt__Q216JASBasicWaveBank11TWaveHandleFv@ha /* 0x802985E4@ha */
|
||||
/* 80298738 38 84 85 E4 */ addi r4, r4, __dt__Q216JASBasicWaveBank11TWaveHandleFv@l /* 0x802985E4@l */
|
||||
/* 8029873C 48 0C 95 31 */ bl __destroy_new_array
|
||||
/* 80298740 1C 7E 00 2C */ mulli r3, r30, 0x2c
|
||||
/* 80298744 38 63 00 10 */ addi r3, r3, 0x10
|
||||
/* 80298748 7F E4 FB 78 */ mr r4, r31
|
||||
/* 8029874C 38 A0 00 00 */ li r5, 0
|
||||
/* 80298750 48 03 65 C1 */ bl __nwa__FUlP7JKRHeapi
|
||||
/* 80298754 3C 80 80 2A */ lis r4, __ct__Q216JASBasicWaveBank11TWaveHandleFv@ha /* 0x80298C18@ha */
|
||||
/* 80298758 38 84 8C 18 */ addi r4, r4, __ct__Q216JASBasicWaveBank11TWaveHandleFv@l /* 0x80298C18@l */
|
||||
/* 8029875C 3C A0 80 2A */ lis r5, __dt__Q216JASBasicWaveBank11TWaveHandleFv@ha /* 0x802985E4@ha */
|
||||
/* 80298760 38 A5 85 E4 */ addi r5, r5, __dt__Q216JASBasicWaveBank11TWaveHandleFv@l /* 0x802985E4@l */
|
||||
/* 80298764 38 C0 00 2C */ li r6, 0x2c
|
||||
/* 80298768 7F C7 F3 78 */ mr r7, r30
|
||||
/* 8029876C 48 0C 97 A9 */ bl __construct_new_array
|
||||
/* 80298770 90 7D 00 1C */ stw r3, 0x1c(r29)
|
||||
/* 80298774 B3 DD 00 24 */ sth r30, 0x24(r29)
|
||||
/* 80298778 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8029877C 48 0C 9A AD */ bl _restgpr_29
|
||||
/* 80298780 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80298784 7C 08 03 A6 */ mtlr r0
|
||||
/* 80298788 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8029878C 4E 80 00 20 */ blr
|
||||
@@ -1,26 +0,0 @@
|
||||
lbl_80297FAC:
|
||||
/* 80297FAC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80297FB0 7C 08 02 A6 */ mflr r0
|
||||
/* 80297FB4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80297FB8 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80297FBC 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 80297FC0 41 82 00 30 */ beq lbl_80297FF0
|
||||
/* 80297FC4 3C 60 80 3C */ lis r3, __vt__12JASVoiceBank@ha /* 0x803C76D0@ha */
|
||||
/* 80297FC8 38 03 76 D0 */ addi r0, r3, __vt__12JASVoiceBank@l /* 0x803C76D0@l */
|
||||
/* 80297FCC 90 1F 00 00 */ stw r0, 0(r31)
|
||||
/* 80297FD0 41 82 00 10 */ beq lbl_80297FE0
|
||||
/* 80297FD4 3C 60 80 3C */ lis r3, __vt__7JASBank@ha /* 0x803C76BC@ha */
|
||||
/* 80297FD8 38 03 76 BC */ addi r0, r3, __vt__7JASBank@l /* 0x803C76BC@l */
|
||||
/* 80297FDC 90 1F 00 00 */ stw r0, 0(r31)
|
||||
lbl_80297FE0:
|
||||
/* 80297FE0 7C 80 07 35 */ extsh. r0, r4
|
||||
/* 80297FE4 40 81 00 0C */ ble lbl_80297FF0
|
||||
/* 80297FE8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80297FEC 48 03 6D 51 */ bl __dl__FPv
|
||||
lbl_80297FF0:
|
||||
/* 80297FF0 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80297FF4 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80297FF8 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80297FFC 7C 08 03 A6 */ mtlr r0
|
||||
/* 80298000 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80298004 4E 80 00 20 */ blr
|
||||
@@ -1,16 +0,0 @@
|
||||
lbl_80297F74:
|
||||
/* 80297F74 2C 04 00 00 */ cmpwi r4, 0
|
||||
/* 80297F78 40 80 00 0C */ bge lbl_80297F84
|
||||
/* 80297F7C 38 60 00 00 */ li r3, 0
|
||||
/* 80297F80 4E 80 00 20 */ blr
|
||||
lbl_80297F84:
|
||||
/* 80297F84 3C 60 80 3A */ lis r3, sOscData__12JASVoiceBank@ha /* 0x8039B1B8@ha */
|
||||
/* 80297F88 38 03 B1 B8 */ addi r0, r3, sOscData__12JASVoiceBank@l /* 0x8039B1B8@l */
|
||||
/* 80297F8C 90 0D 8C E8 */ stw r0, sOscTable__12JASVoiceBank(r13)
|
||||
/* 80297F90 B0 87 00 1A */ sth r4, 0x1a(r7)
|
||||
/* 80297F94 38 00 00 01 */ li r0, 1
|
||||
/* 80297F98 98 07 00 1D */ stb r0, 0x1d(r7)
|
||||
/* 80297F9C 38 0D 8C E8 */ la r0, sOscTable__12JASVoiceBank(r13) /* 80451268-_SDA_BASE_ */
|
||||
/* 80297FA0 90 07 00 14 */ stw r0, 0x14(r7)
|
||||
/* 80297FA4 38 60 00 01 */ li r3, 1
|
||||
/* 80297FA8 4E 80 00 20 */ blr
|
||||
@@ -1,4 +0,0 @@
|
||||
lbl_80298008:
|
||||
/* 80298008 3C 60 56 4F */ lis r3, 0x564F /* 0x564F4943@ha */
|
||||
/* 8029800C 38 63 49 43 */ addi r3, r3, 0x4943 /* 0x564F4943@l */
|
||||
/* 80298010 4E 80 00 20 */ blr
|
||||
@@ -1,4 +0,0 @@
|
||||
lbl_802A66A0:
|
||||
/* 802A66A0 38 00 00 00 */ li r0, 0
|
||||
/* 802A66A4 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 802A66A8 4E 80 00 20 */ blr
|
||||
@@ -1,22 +0,0 @@
|
||||
lbl_802A677C:
|
||||
/* 802A677C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802A6780 7C 08 02 A6 */ mflr r0
|
||||
/* 802A6784 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802A6788 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802A678C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802A6790 3C 60 80 3D */ lis r3, __vt__13JAISeqDataMgr@ha /* 0x803C9928@ha */
|
||||
/* 802A6794 38 03 99 28 */ addi r0, r3, __vt__13JAISeqDataMgr@l /* 0x803C9928@l */
|
||||
/* 802A6798 90 1F 00 00 */ stw r0, 0(r31)
|
||||
/* 802A679C 38 7F 00 04 */ addi r3, r31, 4
|
||||
/* 802A67A0 4B FF FF 01 */ bl __ct__16JAUSeqCollectionFv
|
||||
/* 802A67A4 3C 60 80 3D */ lis r3, __vt__27JAUSeqDataMgr_SeqCollection@ha /* 0x803C9B38@ha */
|
||||
/* 802A67A8 38 03 9B 38 */ addi r0, r3, __vt__27JAUSeqDataMgr_SeqCollection@l /* 0x803C9B38@l */
|
||||
/* 802A67AC 90 1F 00 00 */ stw r0, 0(r31)
|
||||
/* 802A67B0 38 00 00 00 */ li r0, 0
|
||||
/* 802A67B4 90 1F 00 14 */ stw r0, 0x14(r31)
|
||||
/* 802A67B8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802A67BC 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802A67C0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802A67C4 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A67C8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802A67CC 4E 80 00 20 */ blr
|
||||
@@ -1,26 +0,0 @@
|
||||
lbl_802A6894:
|
||||
/* 802A6894 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802A6898 7C 08 02 A6 */ mflr r0
|
||||
/* 802A689C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802A68A0 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 802A68A4 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802A68A8 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 802A68AC 7C 9F 23 78 */ mr r31, r4
|
||||
/* 802A68B0 41 82 00 28 */ beq lbl_802A68D8
|
||||
/* 802A68B4 3C 80 80 3D */ lis r4, __vt__27JAUSeqDataMgr_SeqCollection@ha /* 0x803C9B38@ha */
|
||||
/* 802A68B8 38 04 9B 38 */ addi r0, r4, __vt__27JAUSeqDataMgr_SeqCollection@l /* 0x803C9B38@l */
|
||||
/* 802A68BC 90 1E 00 00 */ stw r0, 0(r30)
|
||||
/* 802A68C0 38 80 00 00 */ li r4, 0
|
||||
/* 802A68C4 4B FF AE F9 */ bl __dt__13JAISeqDataMgrFv
|
||||
/* 802A68C8 7F E0 07 35 */ extsh. r0, r31
|
||||
/* 802A68CC 40 81 00 0C */ ble lbl_802A68D8
|
||||
/* 802A68D0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802A68D4 48 02 84 69 */ bl __dl__FPv
|
||||
lbl_802A68D8:
|
||||
/* 802A68D8 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802A68DC 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802A68E0 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 802A68E4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802A68E8 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A68EC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802A68F0 4E 80 00 20 */ blr
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
lbl_802A67DC:
|
||||
/* 802A67DC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 802A67E0 7C 08 02 A6 */ mflr r0
|
||||
/* 802A67E4 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 802A67E8 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 802A67EC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802A67F0 80 03 00 14 */ lwz r0, 0x14(r3)
|
||||
/* 802A67F4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 802A67F8 41 82 00 2C */ beq lbl_802A6824
|
||||
/* 802A67FC 38 7F 00 04 */ addi r3, r31, 4
|
||||
/* 802A6800 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 802A6804 4B FF FF 51 */ bl getSeqDataRegion__16JAUSeqCollectionFP16JAISeqDataRegion
|
||||
/* 802A6808 80 7F 00 14 */ lwz r3, 0x14(r31)
|
||||
/* 802A680C 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 802A6810 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 802A6814 81 8C 00 10 */ lwz r12, 0x10(r12)
|
||||
/* 802A6818 7D 89 03 A6 */ mtctr r12
|
||||
/* 802A681C 4E 80 04 21 */ bctrl
|
||||
/* 802A6820 48 00 00 08 */ b lbl_802A6828
|
||||
lbl_802A6824:
|
||||
/* 802A6824 38 60 00 02 */ li r3, 2
|
||||
lbl_802A6828:
|
||||
/* 802A6828 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 802A682C 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 802A6830 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A6834 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 802A6838 4E 80 00 20 */ blr
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
lbl_802A67D0:
|
||||
/* 802A67D0 90 83 00 14 */ stw r4, 0x14(r3)
|
||||
/* 802A67D4 38 60 00 01 */ li r3, 1
|
||||
/* 802A67D8 4E 80 00 20 */ blr
|
||||
@@ -37,9 +37,9 @@ struct JAISeqDataUser {
|
||||
|
||||
struct JAISeqDataMgr {
|
||||
virtual ~JAISeqDataMgr();
|
||||
virtual int getSeqData(JAISoundID, JAISeqData*) = 0;
|
||||
virtual s32 getSeqData(JAISoundID, JAISeqData*) = 0;
|
||||
virtual int releaseSeqData() = 0;
|
||||
virtual void setSeqDataUser(JAISeqDataUser*) = 0;
|
||||
virtual bool setSeqDataUser(JAISeqDataUser*) = 0;
|
||||
};
|
||||
|
||||
#endif /* JAISEQDATAMGR_H */
|
||||
|
||||
@@ -3,4 +3,31 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class JASChannel;
|
||||
class JASInstParam;
|
||||
class JASWaveBank;
|
||||
|
||||
namespace JASDsp {
|
||||
class TChannel;
|
||||
}
|
||||
|
||||
class JASBank {
|
||||
public:
|
||||
JASBank() { mWaveBank = NULL; }
|
||||
virtual ~JASBank() {};
|
||||
virtual bool getInstParam(int, int, int, JASInstParam*) const = 0;
|
||||
virtual u32 getType() const = 0;
|
||||
|
||||
JASWaveBank* getWaveBank() const { return mWaveBank; }
|
||||
void assignWaveBank(JASWaveBank* param_0) { mWaveBank = param_0; }
|
||||
|
||||
/* 80297930 */ static JASChannel* noteOn(JASBank const*, int, u8, u8, u16,
|
||||
void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
/* 80297C40 */ static JASChannel* noteOnOsc(int, u8, u8, u16,
|
||||
void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
|
||||
private:
|
||||
/* 0x04 */ JASWaveBank* mWaveBank;
|
||||
};
|
||||
|
||||
#endif /* JASBANK_H */
|
||||
|
||||
@@ -1,6 +1,85 @@
|
||||
#ifndef JASBASICWAVEBANK_H
|
||||
#define JASBASICWAVEBANK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASWaveArcLoader.h"
|
||||
#include "JSystem/JAudio2/JASWaveInfo.h"
|
||||
#include "dolphin/os/OSMutex.h"
|
||||
|
||||
class JASWaveHandle {
|
||||
public:
|
||||
/* virtual */ ~JASWaveHandle() {};
|
||||
//virtual const JASWaveInfo* getWaveInfo() const = 0;
|
||||
//virtual int getWavePtr() const = 0;
|
||||
|
||||
void* vtable;
|
||||
};
|
||||
|
||||
class JASWaveBank {
|
||||
public:
|
||||
/* 80298B88 */ /* virtual */ ~JASWaveBank() {};
|
||||
//virtual JASWaveHandle* getWaveHandle(u32) const = 0;
|
||||
//virtual JASWaveArc* getWaveArc(u32) = 0;
|
||||
//virtual u32 getArcCount() const = 0;
|
||||
|
||||
void* vtable;
|
||||
};
|
||||
|
||||
struct JASBasicWaveBank : public JASWaveBank {
|
||||
struct TWaveHandle : public JASWaveHandle {
|
||||
/* 802985E4 */ ~TWaveHandle();
|
||||
/* 80298B64 */ int getWavePtr() const;
|
||||
/* 80298C18 */ TWaveHandle() { mHeap = NULL; }
|
||||
/* 80298C64 */ const JASWaveInfo* getWaveInfo() const { return &field_0x4; }
|
||||
|
||||
/* 0x04 */ JASWaveInfo field_0x4;
|
||||
/* 0x28 */ JASHeap* mHeap;
|
||||
};
|
||||
|
||||
struct TGroupWaveInfo {
|
||||
/* 80298C4C */ TGroupWaveInfo() {
|
||||
field_0x0 = 0xffff;
|
||||
field_0x4 = -1;
|
||||
}
|
||||
|
||||
/* 0x00 */ u16 field_0x0;
|
||||
/* 0x04 */ int field_0x4;
|
||||
};
|
||||
|
||||
struct TWaveGroup {
|
||||
/* 802989C0 */ TWaveGroup();
|
||||
/* 80298A0C */ ~TWaveGroup();
|
||||
/* 80298A84 */ void setWaveCount(u32, JKRHeap*);
|
||||
/* 80298B04 */ void onLoadDone();
|
||||
/* 80298B2C */ void onEraseDone();
|
||||
/* 80298B54 */ u32 getWaveID(int) const;
|
||||
|
||||
/* 0x00 */ JASWaveArc base;
|
||||
/* 0x74 */ JASBasicWaveBank* mBank;
|
||||
/* 0x78 */ TGroupWaveInfo* mCtrlWaveArray;
|
||||
/* 0x7C */ u16 mWaveCount;
|
||||
|
||||
u32 getWaveCount() const { return mWaveCount; }
|
||||
};
|
||||
|
||||
/* 802984F8 */ JASBasicWaveBank();
|
||||
/* 80298558 */ ~JASBasicWaveBank();
|
||||
/* 80298640 */ TWaveGroup* getWaveGroup(u32);
|
||||
/* 80298664 */ void setGroupCount(u32, JKRHeap*);
|
||||
/* 80298710 */ void setWaveTableSize(u32, JKRHeap*);
|
||||
/* 80298790 */ void incWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
||||
/* 8029883C */ void decWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
||||
/* 802988DC */ JASWaveHandle* getWaveHandle(u32) const;
|
||||
/* 80298910 */ void setWaveInfo(JASBasicWaveBank::TWaveGroup*, int, u16, JASWaveInfo const&);
|
||||
/* 80298C6C */ JASWaveArc* getWaveArc(u32 param_0); // { return getWaveGroup(param_0); }
|
||||
/* 80298C8C */ u32 getArcCount() const { return mGroupCount; }
|
||||
|
||||
/* 0x04 */ OSMutex field_0x4;
|
||||
/* 0x1C */ TWaveHandle* mWaveTable;
|
||||
/* 0x20 */ TWaveGroup* mWaveGroupArray;
|
||||
/* 0x24 */ u16 mHandleCount;
|
||||
/* 0x26 */ u16 mGroupCount;
|
||||
|
||||
static u8 mNoLoad[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
#endif /* JASBASICWAVEBANK_H */
|
||||
|
||||
@@ -1,6 +1,128 @@
|
||||
#ifndef JASCHANNEL_H
|
||||
#define JASCHANNEL_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASHeapCtrl.h"
|
||||
#include "JSystem/JAudio2/JASLfo.h"
|
||||
#include "JSystem/JAudio2/JASOscillator.h"
|
||||
#include "JSystem/JAudio2/JASSoundParams.h"
|
||||
#include "JSystem/JAudio2/JASWaveInfo.h"
|
||||
#include "dolphin/os/OSMessage.h"
|
||||
|
||||
class JASDSPChannel;
|
||||
|
||||
namespace JASDsp {
|
||||
struct TChannel;
|
||||
}
|
||||
|
||||
class JASChannelParams {
|
||||
public:
|
||||
JASChannelParams() {
|
||||
field_0x0 = 1.0f;
|
||||
field_0x4 = 1.0f;
|
||||
field_0x8 = 0.0f;
|
||||
field_0xc = 0.5f;
|
||||
field_0x10 = 0.0f;
|
||||
field_0x14 = 0.0f;
|
||||
}
|
||||
void init() {
|
||||
field_0x0 = 1.0f;
|
||||
field_0x4 = 1.0f;
|
||||
field_0x8 = 0.0f;
|
||||
field_0xc = 0.5f;
|
||||
field_0x10 = 0.0f;
|
||||
field_0x14 = 0.0f;
|
||||
}
|
||||
|
||||
f32 field_0x0;
|
||||
f32 field_0x4;
|
||||
f32 field_0x8;
|
||||
f32 field_0xc;
|
||||
f32 field_0x10;
|
||||
f32 field_0x14;
|
||||
};
|
||||
|
||||
class JASChannel : public JASPoolAllocObject_MultiThreaded<JASChannel> {
|
||||
public:
|
||||
struct PanVector {};
|
||||
|
||||
/* 8029A800 */ JASChannel(void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
/* 8029A918 */ ~JASChannel();
|
||||
/* 8029A9F0 */ int play();
|
||||
/* 8029AA60 */ void playForce();
|
||||
/* 8029AAD0 */ void release(u16);
|
||||
/* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*);
|
||||
/* 8029AB98 */ void setMixConfig(u32, u16);
|
||||
/* 8029ABA8 */ void calcEffect(JASChannel::PanVector const*);
|
||||
/* 8029ABC0 */ void calcPan(JASChannel::PanVector const*);
|
||||
/* 8029ABEC */ void effectOsc(u32, JASOscillator::EffectParams*);
|
||||
/* 8029ACD4 */ void setKeySweepTarget(s32, u32);
|
||||
/* 8029AD38 */ void updateEffectorParam(JASDsp::TChannel*, u16*,
|
||||
JASOscillator::EffectParams const&);
|
||||
/* 8029AF78 */ static void dspUpdateCallback(u32, JASDsp::TChannel*, void*);
|
||||
/* 8029B004 */ void initialUpdateDSPChannel(JASDsp::TChannel*);
|
||||
/* 8029B324 */ void updateDSPChannel(JASDsp::TChannel*);
|
||||
/* 8029B6A0 */ void updateAutoMixer(JASDsp::TChannel*, f32, f32, f32, f32);
|
||||
/* 8029B7D8 */ void updateMixer(f32, f32, f32, f32, u16*);
|
||||
/* 8029BBFC */ void free();
|
||||
/* 8029BC0C */ static void initBankDisposeMsgQueue();
|
||||
/* 8029BC48 */ static void receiveBankDisposeMsg();
|
||||
/* 8029BCC0 */ void checkBankDispose() const;
|
||||
|
||||
void setPauseFlag(bool param_0) { mPauseFlag = param_0; }
|
||||
void setUpdateTimer(u32 param_0) { mUpdateTimer = param_0; }
|
||||
void setBankDisposeID(const void* param_0) { mBankDisposeID = param_0; }
|
||||
void setDirectRelease(u16 param_0) { field_0x1c[0].setDirectRelease(param_0); }
|
||||
void setVibrate(f32 param_0, f32 param_1) {
|
||||
mVibrate.setDepth(param_0);
|
||||
mVibrate.setPitch(param_1);
|
||||
}
|
||||
void setVibrateDelay(u16 param_0) { mVibrate.setDelay(param_0); }
|
||||
void setTremolo(f32 param_0, f32 param_1) {
|
||||
mTremolo.setDepth(param_0);
|
||||
mTremolo.setPitch(param_1);
|
||||
}
|
||||
void setTremoloDelay(u16 param_0) { mTremolo.setDelay(param_0); }
|
||||
void setPriority(u16 param_0) { mPriority = param_0; }
|
||||
void setParams(const JASChannelParams& param_0) { mParams = param_0; }
|
||||
void setInitVolume(f32 param_0) { field_0xb4.mVolume = param_0; }
|
||||
void setInitFxmix(f32 param_0) { field_0xb4.mFxMix = param_0; }
|
||||
void setInitPitch(f32 param_0) { field_0xb4.mPitch = param_0; }
|
||||
void setInitPan(f32 param_0) { field_0xb4.mPan = param_0; }
|
||||
void setInitDolby(f32 param_0) { field_0xb4.mDolby = param_0; }
|
||||
void setKey(s32 param_0) { mKey = param_0; }
|
||||
void setVelocity(u32 param_0) { mVelocity = param_0; }
|
||||
void setSkipSamples(u32 param_0) { mSkipSamples = param_0; }
|
||||
|
||||
/* 0x00 */ int mStatus;
|
||||
/* 0x04 */ bool mPauseFlag;
|
||||
/* 0x08 */ JASDSPChannel* mDspCh;
|
||||
/* 0x0C */ void* field_0xc;
|
||||
/* 0x10 */ void* field_0x10;
|
||||
/* 0x14 */ u32 mUpdateTimer;
|
||||
/* 0x18 */ const void* mBankDisposeID;
|
||||
/* 0x1C */ JASOscillator field_0x1c[2];
|
||||
/* 0x5C */ JASLfo mVibrate;
|
||||
/* 0x74 */ JASLfo mTremolo;
|
||||
/* 0x8C */ u16 field_0x8c[6];
|
||||
/* 0x98 */ short mPriority;
|
||||
/* 0x9C */ JASChannelParams mParams;
|
||||
/* 0xB4 */ JASSoundParams field_0xb4;
|
||||
/* 0xC8 */ s16 mKey;
|
||||
/* 0xCA */ u16 mVelocity;
|
||||
/* 0xCC */ f32 field_0xcc;
|
||||
/* 0xD0 */ f32 field_0xd0;
|
||||
/* 0xD4 */ u32 field_0xd4;
|
||||
/* 0xD8 */ u32 mSkipSamples;
|
||||
struct {
|
||||
u32 field_0x0;
|
||||
JASWaveInfo field_0x4;
|
||||
} field_0xdc;
|
||||
int field_0x104;
|
||||
|
||||
static OSMessageQueue sBankDisposeMsgQ;
|
||||
static OSMessage sBankDisposeMsg[16];
|
||||
static u32 sBankDisposeList[16];
|
||||
static u32 sBankDisposeListSize;
|
||||
};
|
||||
|
||||
#endif /* JASCHANNEL_H */
|
||||
|
||||
@@ -9,6 +9,10 @@ struct JASLfo {
|
||||
/* 8029BDD8 */ void incCounter(f32);
|
||||
/* 8029BE2C */ void resetCounter();
|
||||
|
||||
void setDepth(f32 param_0) { mDepth = param_0; }
|
||||
void setPitch(f32 param_0) { mPitch = param_0; }
|
||||
void setDelay(u16 param_0) { mDelay = param_0; }
|
||||
|
||||
static void updateFreeRun(f32 param_0) { sFreeRunLfo.incCounter(param_0); }
|
||||
|
||||
static JASLfo sFreeRunLfo;
|
||||
@@ -16,9 +20,9 @@ struct JASLfo {
|
||||
/* 0x00 */ u32 field_0x0;
|
||||
/* 0x04 */ u32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xC;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ u16 field_0x14;
|
||||
/* 0x0C */ f32 mDepth;
|
||||
/* 0x10 */ f32 mPitch;
|
||||
/* 0x14 */ u16 mDelay;
|
||||
/* 0x16 */ u16 field_0x16;
|
||||
};
|
||||
|
||||
|
||||
@@ -6,12 +6,14 @@
|
||||
|
||||
struct JASOscillator {
|
||||
struct Point {};
|
||||
|
||||
|
||||
struct EffectParams {};
|
||||
|
||||
struct Data {
|
||||
/* 0x00 */ u32 _00;
|
||||
/* 0x04 */ f32 _04;
|
||||
/* 0x08 */ short* _08;
|
||||
/* 0x0C */ short* _0C;
|
||||
/* 0x08 */ const short* _08;
|
||||
/* 0x0C */ const short* _0C;
|
||||
/* 0x10 */ f32 _10;
|
||||
/* 0x14 */ f32 _14;
|
||||
};
|
||||
@@ -25,6 +27,7 @@ struct JASOscillator {
|
||||
void update();
|
||||
void updateCurrentValue(f32 param_0);
|
||||
|
||||
void setDirectRelease(u16 param_0) { mDirectRelease = param_0; }
|
||||
void stop() {
|
||||
_1C = 0;
|
||||
}
|
||||
@@ -35,7 +38,7 @@ struct JASOscillator {
|
||||
/* 0x0C */ f32 _0C;
|
||||
/* 0x10 */ f32 _10;
|
||||
/* 0x14 */ u16 _14;
|
||||
/* 0x16 */ u16 _16;
|
||||
/* 0x16 */ u16 mDirectRelease;
|
||||
/* 0x18 */ u8 _18;
|
||||
/* 0x1A */ u16 _1A;
|
||||
/* 0x1C */ int _1C;
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
#ifndef JASVOICEBANK_H
|
||||
#define JASVOICEBANK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASBank.h"
|
||||
#include "JSystem/JAudio2/JASOscillator.h"
|
||||
|
||||
class JASVoiceBank : public JASBank {
|
||||
public:
|
||||
/* 80297F74 */ virtual bool getInstParam(int, int, int, JASInstParam*) const;
|
||||
/* 80297FAC */ virtual ~JASVoiceBank();
|
||||
/* 80298008 */ virtual u32 getType() const;
|
||||
|
||||
static const JASOscillator::Data sOscData;
|
||||
static JASOscillator::Data* sOscTable;
|
||||
};
|
||||
|
||||
#endif /* JASVOICEBANK_H */
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct JASWaveInfo {
|
||||
JASWaveInfo() {
|
||||
field_0x01 = 0x3c;
|
||||
field_0x20 = one;
|
||||
}
|
||||
|
||||
/* 0x00 */ u8 field_0x00;
|
||||
/* 0x01 */ u8 field_0x01;
|
||||
/* 0x02 */ u8 field_0x02;
|
||||
/* 0x04 */ int field_0x04;
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ int field_0x08;
|
||||
/* 0x0C */ int field_0x0c;
|
||||
/* 0x10 */ u32 field_0x10;
|
||||
@@ -15,7 +20,7 @@ struct JASWaveInfo {
|
||||
/* 0x18 */ int field_0x18;
|
||||
/* 0x1C */ s16 field_0x1c;
|
||||
/* 0x1E */ s16 field_0x1e;
|
||||
/* 0x20 */ void* field_0x20;
|
||||
/* 0x20 */ const void* field_0x20;
|
||||
|
||||
static u32 one[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
@@ -1,6 +1,35 @@
|
||||
#ifndef JAUSEQCOLLECTION_H
|
||||
#define JAUSEQCOLLECTION_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JAISeqDataMgr.h"
|
||||
|
||||
class JAISeqData;
|
||||
class JAISeqDataRegion;
|
||||
|
||||
class JAUSeqCollection {
|
||||
public:
|
||||
/* 802A66A0 */ JAUSeqCollection();
|
||||
/* 802A66AC */ void init(void const*);
|
||||
/* 802A66FC */ bool getSeqData(int, int, JAISeqData*);
|
||||
/* 802A6754 */ void getSeqDataRegion(JAISeqDataRegion*);
|
||||
|
||||
bool isValid() { return field_0x8; }
|
||||
|
||||
/* 0x00 */ u16 field_0x0;
|
||||
/* 0x04 */ const u32* field_0x4;
|
||||
/* 0x08 */ const void* field_0x8;
|
||||
/* 0x0C */ int field_0xc;
|
||||
};
|
||||
|
||||
class JAUSeqDataMgr_SeqCollection : JAISeqDataMgr, JAUSeqCollection {
|
||||
public:
|
||||
/* 802A677C */ JAUSeqDataMgr_SeqCollection();
|
||||
/* 802A67D0 */ bool setSeqDataUser(JAISeqDataUser*);
|
||||
/* 802A67DC */ int releaseSeqData();
|
||||
/* 802A683C */ s32 getSeqData(JAISoundID, JAISeqData*);
|
||||
/* 802A6894 */ ~JAUSeqDataMgr_SeqCollection();
|
||||
|
||||
/* 0x14 */ JAISeqDataUser* user_;
|
||||
};
|
||||
|
||||
#endif /* JAUSEQCOLLECTION_H */
|
||||
|
||||
@@ -4,49 +4,16 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASBank.h"
|
||||
#include "JSystem/JAudio2/JASAiCtrl.h"
|
||||
#include "JSystem/JAudio2/JASBasicInst.h"
|
||||
#include "JSystem/JAudio2/JASBasicWaveBank.h"
|
||||
#include "JSystem/JAudio2/JASChannel.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JASOscillator {
|
||||
struct Data {};
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool_MultiThreaded {};
|
||||
/* JASMemPool_MultiThreaded<JASChannel> */
|
||||
struct JASMemPool_MultiThreaded__template2 {
|
||||
/* 802978DC */ void func_802978DC(void* _this);
|
||||
};
|
||||
|
||||
struct JASGenericMemPool {
|
||||
/* 80290848 */ JASGenericMemPool();
|
||||
/* 80290948 */ void alloc(u32);
|
||||
};
|
||||
|
||||
struct JASDsp {
|
||||
struct TChannel {};
|
||||
};
|
||||
|
||||
struct JASDriver {
|
||||
/* 8029C9E8 */ void getDacRate();
|
||||
};
|
||||
|
||||
struct JASChannel {
|
||||
/* 8029A800 */ JASChannel(void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
/* 8029A9F0 */ void play();
|
||||
/* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*);
|
||||
};
|
||||
|
||||
struct JASBank {
|
||||
/* 80297930 */ void noteOn(JASBank const*, int, u8, u8, u16,
|
||||
void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
/* 80297C40 */ void noteOnOsc(int, u8, u8, u16,
|
||||
void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -65,8 +32,6 @@ extern "C" void __ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv();
|
||||
extern "C" void play__10JASChannelFv();
|
||||
extern "C" void setOscInit__10JASChannelFUlPCQ213JASOscillator4Data();
|
||||
extern "C" void getDacRate__9JASDriverFv();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_23();
|
||||
extern "C" void _savegpr_25();
|
||||
@@ -99,34 +64,88 @@ SECTION_SDATA2 static f32 lit_250 = 0.5f;
|
||||
|
||||
/* 80297930-80297C40 292270 0310+00 0/0 1/1 0/0 .text
|
||||
* noteOn__7JASBankFPC7JASBankiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv */
|
||||
// vtables for JASWaveBank, JASWaveHandle
|
||||
#ifdef NONMATCHING
|
||||
JASChannel* JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, u8 param_3, u16 param_4,
|
||||
void (*param_5)(u32, JASChannel*, JASDsp::TChannel*, void*),
|
||||
void* param_6) {
|
||||
if (param_1 >= 0xf0) {
|
||||
return noteOnOsc(param_1 - 0xf0, param_2, param_3, param_4, param_5, param_6);
|
||||
}
|
||||
if (!param_0) {
|
||||
return NULL;
|
||||
}
|
||||
JASInstParam stack_60;
|
||||
if (!param_0->getInstParam(param_1, param_2, param_3, &stack_60)) {
|
||||
return NULL;
|
||||
}
|
||||
JASWaveBank* waveBank = param_0->getWaveBank();
|
||||
if (!waveBank) {
|
||||
return NULL;
|
||||
}
|
||||
JASWaveHandle* waveHandle = waveBank->getWaveHandle(stack_60.field_0x1a);
|
||||
if (!waveHandle) {
|
||||
return NULL;
|
||||
}
|
||||
const JASWaveInfo* waveInfo = waveHandle->getWaveInfo();
|
||||
if (!waveInfo) {
|
||||
return NULL;
|
||||
}
|
||||
int wavePtr = waveHandle->getWavePtr();
|
||||
if (!wavePtr) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
JASChannel* channel = new JASChannel(param_5, param_6);
|
||||
if (!channel) {
|
||||
return NULL;
|
||||
}
|
||||
channel->setPriority(param_4);
|
||||
channel->field_0xdc.field_0x4 = *waveInfo;
|
||||
channel->field_0x104 = wavePtr;
|
||||
channel->field_0xdc.field_0x0 = stack_60.field_0x1c;
|
||||
channel->setBankDisposeID(param_0);
|
||||
channel->setInitPitch(stack_60.mPitch * (waveInfo->field_0x04 / JASDriver::getDacRate()));
|
||||
if (stack_60.field_0x1e == 0) {
|
||||
channel->setKey(param_2 - waveInfo->field_0x01);
|
||||
}
|
||||
channel->setInitVolume(stack_60.mVolume);
|
||||
channel->setVelocity(param_3);
|
||||
channel->setInitPan(stack_60.mPan);
|
||||
channel->setInitFxmix(stack_60.mFxMix);
|
||||
channel->setInitDolby(stack_60.mDolby);
|
||||
for (u32 i = 0; i < stack_60.field_0x1d; i++) {
|
||||
channel->setOscInit(i, stack_60.field_0x14[i]);
|
||||
}
|
||||
channel->setDirectRelease(stack_60.field_0x18);
|
||||
if (!channel->play()) {
|
||||
return NULL;
|
||||
}
|
||||
return channel;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, u8 param_3, u16 param_4,
|
||||
asm JASChannel* JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, u8 param_3, u16 param_4,
|
||||
void (*param_5)(u32, JASChannel*, JASDsp::TChannel*, void*),
|
||||
void* param_6) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBank/noteOn__7JASBankFPC7JASBankiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039B190-8039B19C 0277F0 000C+00 1/0 0/0 0/0 .rodata OSC_RELEASE_TABLE$260 */
|
||||
SECTION_RODATA static u8 const OSC_RELEASE_TABLE[12] = {
|
||||
0x00, 0x01, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||
SECTION_RODATA static s16 const OSC_RELEASE_TABLE[6] = {
|
||||
0x0001, 0x000A, 0x0000, 0x000F, 0x0000, 0x0000,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8039B190, &OSC_RELEASE_TABLE);
|
||||
|
||||
/* 8039B19C-8039B1B8 -00001 0018+04 1/1 0/0 0/0 .rodata OSC_ENV$261 */
|
||||
SECTION_RODATA static void* const OSC_ENV[6 + 1 /* padding */] = {
|
||||
(void*)NULL,
|
||||
(void*)0x3F800000,
|
||||
(void*)NULL,
|
||||
(void*)&OSC_RELEASE_TABLE,
|
||||
(void*)0x3F800000,
|
||||
(void*)NULL,
|
||||
/* padding */
|
||||
NULL,
|
||||
SECTION_RODATA static const JASOscillator::Data OSC_ENV = {
|
||||
0, 1.0f, NULL, OSC_RELEASE_TABLE, 1.0f, 0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8039B19C, &OSC_ENV);
|
||||
|
||||
@@ -135,13 +154,36 @@ SECTION_SDATA2 static f32 lit_290 = 16736.015625f;
|
||||
|
||||
/* 80297C40-80297D78 292580 0138+00 1/1 0/0 0/0 .text
|
||||
* noteOnOsc__7JASBankFiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv */
|
||||
// wild ~JASMemPool_MultiThreaded<JASChannel> destructor appeared!
|
||||
#ifdef NONMATCHING
|
||||
JASChannel* JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
|
||||
void (*param_4)(u32, JASChannel*, JASDsp::TChannel*, void*),
|
||||
void* param_5) {
|
||||
JASChannel* channel = new JASChannel(param_4, param_5);
|
||||
if (!channel) {
|
||||
return NULL;
|
||||
}
|
||||
channel->setPriority(param_3);
|
||||
channel->field_0x104 = param_0;
|
||||
channel->field_0xdc.field_0x0 = 2;
|
||||
channel->setInitPitch(16736.02f / JASDriver::getDacRate());
|
||||
channel->setKey(param_1 - channel->field_0xdc.field_0x4.field_0x01);
|
||||
channel->setVelocity(param_2);
|
||||
channel->setOscInit(0, &OSC_ENV);
|
||||
if (!channel->play()) {
|
||||
return NULL;
|
||||
}
|
||||
return channel;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
|
||||
asm JASChannel* JASBank::noteOnOsc(int param_0, u8 param_1, u8 param_2, u16 param_3,
|
||||
void (*param_4)(u32, JASChannel*, JASDsp::TChannel*, void*),
|
||||
void* param_5) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBank/noteOnOsc__7JASBankFiUcUcUsPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
@@ -4,68 +4,15 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASBasicWaveBank.h"
|
||||
#include "JSystem/JAudio2/JASMutex.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JKRHeap {};
|
||||
|
||||
struct JASWaveInfo {
|
||||
static u32 one[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
struct JASWaveHandle {
|
||||
/* 80298BD0 */ ~JASWaveHandle();
|
||||
};
|
||||
|
||||
struct JASWaveBank {
|
||||
/* 80298B88 */ ~JASWaveBank();
|
||||
};
|
||||
|
||||
struct JASWaveArc {
|
||||
/* 8029A13C */ JASWaveArc();
|
||||
/* 8029A1B4 */ ~JASWaveArc();
|
||||
/* 8029A664 */ void onDispose();
|
||||
};
|
||||
|
||||
struct JASBasicWaveBank {
|
||||
struct TWaveHandle {
|
||||
/* 802985E4 */ ~TWaveHandle();
|
||||
/* 80298B64 */ void getWavePtr() const;
|
||||
/* 80298C18 */ TWaveHandle();
|
||||
/* 80298C64 */ void getWaveInfo() const;
|
||||
};
|
||||
|
||||
struct TWaveGroup {
|
||||
/* 802989C0 */ TWaveGroup();
|
||||
/* 80298A0C */ ~TWaveGroup();
|
||||
/* 80298A84 */ void setWaveCount(u32, JKRHeap*);
|
||||
/* 80298B04 */ void onLoadDone();
|
||||
/* 80298B2C */ void onEraseDone();
|
||||
/* 80298B54 */ void getWaveID(int) const;
|
||||
};
|
||||
|
||||
struct TGroupWaveInfo {
|
||||
/* 80298C4C */ TGroupWaveInfo();
|
||||
};
|
||||
|
||||
/* 802984F8 */ JASBasicWaveBank();
|
||||
/* 80298558 */ ~JASBasicWaveBank();
|
||||
/* 80298640 */ void getWaveGroup(u32);
|
||||
/* 80298664 */ void setGroupCount(u32, JKRHeap*);
|
||||
/* 80298710 */ void setWaveTableSize(u32, JKRHeap*);
|
||||
/* 80298790 */ void incWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
||||
/* 8029883C */ void decWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
||||
/* 802988DC */ void getWaveHandle(u32) const;
|
||||
/* 80298910 */ void setWaveInfo(JASBasicWaveBank::TWaveGroup*, int, u16, JASWaveInfo const&);
|
||||
/* 80298C6C */ void getWaveArc(u32);
|
||||
/* 80298C8C */ void getArcCount() const;
|
||||
|
||||
static u8 mNoLoad[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -107,9 +54,6 @@ extern "C" void onDispose__10JASWaveArcFv();
|
||||
extern "C" void* __nwa__FUlP7JKRHeapi();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __dla__FPv();
|
||||
extern "C" void OSInitMutex();
|
||||
extern "C" void OSLockMutex();
|
||||
extern "C" void OSUnlockMutex();
|
||||
extern "C" void __destroy_new_array();
|
||||
extern "C" void __construct_new_array();
|
||||
extern "C" void _savegpr_25();
|
||||
@@ -170,6 +114,16 @@ SECTION_DATA extern void* __vt__11JASWaveBank[6] = {
|
||||
};
|
||||
|
||||
/* 802984F8-80298558 292E38 0060+00 0/0 1/1 0/0 .text __ct__16JASBasicWaveBankFv */
|
||||
// vtable order
|
||||
#ifdef NONMATCHING
|
||||
JASBasicWaveBank::JASBasicWaveBank() {
|
||||
mWaveTable = NULL;
|
||||
mWaveGroupArray = NULL;
|
||||
mHandleCount = 0;
|
||||
mGroupCount = 0;
|
||||
OSInitMutex(&field_0x4);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -178,8 +132,16 @@ asm JASBasicWaveBank::JASBasicWaveBank() {
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__ct__16JASBasicWaveBankFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80298558-802985E4 292E98 008C+00 1/0 0/0 0/0 .text __dt__16JASBasicWaveBankFv */
|
||||
// vtable order
|
||||
#ifdef NONMATCHING
|
||||
JASBasicWaveBank::~JASBasicWaveBank() {
|
||||
delete[] mWaveTable;
|
||||
delete[] mWaveGroupArray;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -188,8 +150,13 @@ asm JASBasicWaveBank::~JASBasicWaveBank() {
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__dt__16JASBasicWaveBankFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802985E4-80298640 292F24 005C+00 3/2 0/0 0/0 .text __dt__Q216JASBasicWaveBank11TWaveHandleFv */
|
||||
// vtable order
|
||||
#ifdef NONMATCHING
|
||||
JASBasicWaveBank::TWaveHandle::~TWaveHandle() {}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -198,42 +165,54 @@ asm JASBasicWaveBank::TWaveHandle::~TWaveHandle() {
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__dt__Q216JASBasicWaveBank11TWaveHandleFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80298640-80298664 292F80 0024+00 1/1 1/1 0/0 .text getWaveGroup__16JASBasicWaveBankFUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::getWaveGroup(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getWaveGroup__16JASBasicWaveBankFUl.s"
|
||||
JASBasicWaveBank::TWaveGroup* JASBasicWaveBank::getWaveGroup(u32 param_0) {
|
||||
if (param_0 >= mGroupCount) {
|
||||
return NULL;
|
||||
}
|
||||
return mWaveGroupArray + param_0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298664-80298710 292FA4 00AC+00 0/0 1/1 0/0 .text
|
||||
* setGroupCount__16JASBasicWaveBankFUlP7JKRHeap */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::setGroupCount(u32 param_0, JKRHeap* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/setGroupCount__16JASBasicWaveBankFUlP7JKRHeap.s"
|
||||
void JASBasicWaveBank::setGroupCount(u32 param_0, JKRHeap* param_1) {
|
||||
delete[] mWaveGroupArray;
|
||||
mGroupCount = param_0;
|
||||
mWaveGroupArray = new(param_1, 0) TWaveGroup[param_0];
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0x3e, mWaveGroupArray != 0);
|
||||
for (int i = 0; i < mGroupCount; i++) {
|
||||
mWaveGroupArray[i].mBank = this;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298710-80298790 293050 0080+00 0/0 1/1 0/0 .text
|
||||
* setWaveTableSize__16JASBasicWaveBankFUlP7JKRHeap */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::setWaveTableSize(u32 param_0, JKRHeap* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/setWaveTableSize__16JASBasicWaveBankFUlP7JKRHeap.s"
|
||||
void JASBasicWaveBank::setWaveTableSize(u32 param_0, JKRHeap* param_1) {
|
||||
delete[] mWaveTable;
|
||||
mWaveTable = new(param_1, 0) TWaveHandle[param_0];
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp",0x5c, mWaveTable != 0);
|
||||
mHandleCount = param_0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298790-8029883C 2930D0 00AC+00 1/1 0/0 0/0 .text
|
||||
* incWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup */
|
||||
// instruction order
|
||||
#ifdef NONMATCHING
|
||||
void JASBasicWaveBank::incWaveTable(JASBasicWaveBank::TWaveGroup const* param_0) {
|
||||
JASMutexLock lock(&field_0x4);
|
||||
for (u32 i = 0; i < param_0->getWaveCount(); i++) {
|
||||
TWaveHandle* handle = mWaveTable + param_0->getWaveID(i);
|
||||
if (!handle->mHeap) {
|
||||
handle->mHeap = ¶m_0->base.mHeap;
|
||||
handle->field_0x4.field_0x20 = ¶m_0->base._48;
|
||||
handle->field_0x4.field_0x08 = param_0->mCtrlWaveArray[i].field_0x4;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -242,6 +221,7 @@ asm void JASBasicWaveBank::incWaveTable(JASBasicWaveBank::TWaveGroup const* para
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/incWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451278-80451280 000778 0004+04 2/2 0/0 0/0 .sbss mNoLoad__16JASBasicWaveBank */
|
||||
@@ -249,38 +229,52 @@ u8 JASBasicWaveBank::mNoLoad[4 + 4 /* padding */];
|
||||
|
||||
/* 8029883C-802988DC 29317C 00A0+00 1/1 0/0 0/0 .text
|
||||
* decWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::decWaveTable(JASBasicWaveBank::TWaveGroup const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/decWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup.s"
|
||||
void JASBasicWaveBank::decWaveTable(JASBasicWaveBank::TWaveGroup const* param_0) {
|
||||
JASMutexLock lock(&field_0x4);
|
||||
for (u32 i = 0; i < param_0->getWaveCount(); i++) {
|
||||
TWaveHandle* handle = mWaveTable + param_0->getWaveID(i);
|
||||
if (handle->mHeap == ¶m_0->base.mHeap) {
|
||||
handle->mHeap = NULL;
|
||||
handle->field_0x4.field_0x20 = mNoLoad;
|
||||
handle->field_0x4.field_0x08 = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802988DC-80298910 29321C 0034+00 1/0 0/0 0/0 .text getWaveHandle__16JASBasicWaveBankCFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::getWaveHandle(u32 param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getWaveHandle__16JASBasicWaveBankCFUl.s"
|
||||
JASWaveHandle* JASBasicWaveBank::getWaveHandle(u32 param_0) const {
|
||||
if (param_0 >= mHandleCount) {
|
||||
return NULL;
|
||||
}
|
||||
if (!mWaveTable[param_0].mHeap) {
|
||||
return NULL;
|
||||
}
|
||||
return mWaveTable + param_0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298910-802989C0 293250 00B0+00 0/0 1/1 0/0 .text
|
||||
* setWaveInfo__16JASBasicWaveBankFPQ216JASBasicWaveBank10TWaveGroupiUsRC11JASWaveInfo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::setWaveInfo(JASBasicWaveBank::TWaveGroup* param_0, int param_1,
|
||||
u16 param_2, JASWaveInfo const& param_3) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/func_80298910.s"
|
||||
void JASBasicWaveBank::setWaveInfo(JASBasicWaveBank::TWaveGroup* wgrp, int index,
|
||||
u16 param_2, JASWaveInfo const& param_3) {
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0xcc, wgrp);
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0xcd, index < wgrp->mWaveCount);
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0xce, index >= 0);
|
||||
mWaveTable[param_2].field_0x4 = param_3;
|
||||
mWaveTable[param_2].field_0x4.field_0x20 = mNoLoad;
|
||||
mWaveTable[param_2].field_0x4.field_0x08 = -1;
|
||||
wgrp->mCtrlWaveArray[index].field_0x0 = param_2;
|
||||
wgrp->mCtrlWaveArray[index].field_0x4 = param_3.field_0x08;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802989C0-80298A0C 293300 004C+00 1/1 0/0 0/0 .text __ct__Q216JASBasicWaveBank10TWaveGroupFv */
|
||||
// vtable order
|
||||
#ifdef NONMATCHING
|
||||
JASBasicWaveBank::TWaveGroup::TWaveGroup() {
|
||||
mBank = NULL;
|
||||
mCtrlWaveArray = NULL;
|
||||
mWaveCount = 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -289,8 +283,15 @@ asm JASBasicWaveBank::TWaveGroup::TWaveGroup() {
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__ct__Q216JASBasicWaveBank10TWaveGroupFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80298A0C-80298A84 29334C 0078+00 3/2 0/0 0/0 .text __dt__Q216JASBasicWaveBank10TWaveGroupFv */
|
||||
// vtable order
|
||||
#ifdef NONMATCHING
|
||||
JASBasicWaveBank::TWaveGroup::~TWaveGroup() {
|
||||
delete[] mCtrlWaveArray;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -299,67 +300,57 @@ asm JASBasicWaveBank::TWaveGroup::~TWaveGroup() {
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__dt__Q216JASBasicWaveBank10TWaveGroupFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80298A84-80298B04 2933C4 0080+00 0/0 1/1 0/0 .text
|
||||
* setWaveCount__Q216JASBasicWaveBank10TWaveGroupFUlP7JKRHeap */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::TWaveGroup::setWaveCount(u32 param_0, JKRHeap* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/setWaveCount__Q216JASBasicWaveBank10TWaveGroupFUlP7JKRHeap.s"
|
||||
void JASBasicWaveBank::TWaveGroup::setWaveCount(u32 param_0, JKRHeap* param_1) {
|
||||
delete[] mCtrlWaveArray;
|
||||
mWaveCount = param_0;
|
||||
mCtrlWaveArray = new(param_1, 0) TGroupWaveInfo[param_0];
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0xff, mCtrlWaveArray != 0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298B04-80298B2C 293444 0028+00 1/0 0/0 0/0 .text
|
||||
* onLoadDone__Q216JASBasicWaveBank10TWaveGroupFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::TWaveGroup::onLoadDone() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/onLoadDone__Q216JASBasicWaveBank10TWaveGroupFv.s"
|
||||
void JASBasicWaveBank::TWaveGroup::onLoadDone() {
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0x11e, mBank);
|
||||
mBank->incWaveTable(this);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298B2C-80298B54 29346C 0028+00 1/0 0/0 0/0 .text
|
||||
* onEraseDone__Q216JASBasicWaveBank10TWaveGroupFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::TWaveGroup::onEraseDone() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/onEraseDone__Q216JASBasicWaveBank10TWaveGroupFv.s"
|
||||
void JASBasicWaveBank::TWaveGroup::onEraseDone() {
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0x124, mBank);
|
||||
mBank->decWaveTable(this);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
|
||||
/* 80298B54-80298B64 293494 0010+00 2/2 0/0 0/0 .text
|
||||
* getWaveID__Q216JASBasicWaveBank10TWaveGroupCFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::TWaveGroup::getWaveID(int param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getWaveID__Q216JASBasicWaveBank10TWaveGroupCFi.s"
|
||||
u32 JASBasicWaveBank::TWaveGroup::getWaveID(int index) const {
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0x12a, index < mWaveCount);
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 299, index >= 0);
|
||||
return mCtrlWaveArray[index].field_0x0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298B64-80298B88 2934A4 0024+00 1/0 0/0 0/0 .text
|
||||
* getWavePtr__Q216JASBasicWaveBank11TWaveHandleCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::TWaveHandle::getWavePtr() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getWavePtr__Q216JASBasicWaveBank11TWaveHandleCFv.s"
|
||||
int JASBasicWaveBank::TWaveHandle::getWavePtr() const {
|
||||
JUT_ASSERT("JASBasicWaveBank.cpp", 0x139, mHeap);
|
||||
void* base = mHeap->getBase();
|
||||
if (base == 0) {
|
||||
return 0;
|
||||
}
|
||||
return (int)base + field_0x4.field_0x08;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80298B88-80298BD0 2934C8 0048+00 1/0 0/0 0/0 .text __dt__11JASWaveBankFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASWaveBank::~JASWaveBank() {
|
||||
// asm JASWaveBank::~JASWaveBank() {
|
||||
asm void __dt__11JASWaveBankFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__dt__11JASWaveBankFv.s"
|
||||
}
|
||||
@@ -369,7 +360,8 @@ asm JASWaveBank::~JASWaveBank() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASWaveHandle::~JASWaveHandle() {
|
||||
// asm JASWaveHandle::~JASWaveHandle() {
|
||||
asm void __dt__13JASWaveHandleFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__dt__13JASWaveHandleFv.s"
|
||||
}
|
||||
@@ -379,7 +371,8 @@ asm JASWaveHandle::~JASWaveHandle() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASBasicWaveBank::TWaveHandle::TWaveHandle() {
|
||||
// asm JASBasicWaveBank::TWaveHandle::TWaveHandle() {
|
||||
asm void __ct__Q216JASBasicWaveBank11TWaveHandleFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__ct__Q216JASBasicWaveBank11TWaveHandleFv.s"
|
||||
}
|
||||
@@ -390,7 +383,8 @@ asm JASBasicWaveBank::TWaveHandle::TWaveHandle() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASBasicWaveBank::TGroupWaveInfo::TGroupWaveInfo() {
|
||||
// asm JASBasicWaveBank::TGroupWaveInfo::TGroupWaveInfo() {
|
||||
asm void __ct__Q216JASBasicWaveBank14TGroupWaveInfoFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/__ct__Q216JASBasicWaveBank14TGroupWaveInfoFv.s"
|
||||
}
|
||||
@@ -401,7 +395,8 @@ asm JASBasicWaveBank::TGroupWaveInfo::TGroupWaveInfo() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::TWaveHandle::getWaveInfo() const {
|
||||
// asm JASWaveInfo* JASBasicWaveBank::TWaveHandle::getWaveInfo() const {
|
||||
asm void getWaveInfo__Q216JASBasicWaveBank11TWaveHandleCFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getWaveInfo__Q216JASBasicWaveBank11TWaveHandleCFv.s"
|
||||
}
|
||||
@@ -412,7 +407,8 @@ asm void JASBasicWaveBank::TWaveHandle::getWaveInfo() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::getWaveArc(u32 param_0) {
|
||||
// asm JASWaveArc* JASBasicWaveBank::getWaveArc(u32 param_0) {
|
||||
asm void getWaveArc__16JASBasicWaveBankFUl() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getWaveArc__16JASBasicWaveBankFUl.s"
|
||||
}
|
||||
@@ -423,7 +419,8 @@ asm void JASBasicWaveBank::getWaveArc(u32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASBasicWaveBank::getArcCount() const {
|
||||
// asm u32 JASBasicWaveBank::getArcCount() const {
|
||||
asm void getArcCount__16JASBasicWaveBankCFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASBasicWaveBank/getArcCount__16JASBasicWaveBankCFv.s"
|
||||
}
|
||||
|
||||
@@ -14,43 +14,7 @@ struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct JASWaveInfo {
|
||||
static u32 one[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
struct JASOscillator {
|
||||
struct Data {};
|
||||
|
||||
struct EffectParams {};
|
||||
|
||||
/* 8029BE94 */ JASOscillator();
|
||||
/* 8029BEC4 */ void initStart(JASOscillator::Data const*);
|
||||
/* 8029BF68 */ void incCounter(f32);
|
||||
/* 8029BFC8 */ void getValue() const;
|
||||
/* 8029BFE4 */ void release();
|
||||
/* 8029C0E0 */ void update();
|
||||
};
|
||||
|
||||
template <typename A0>
|
||||
struct JASMemPool_MultiThreaded {};
|
||||
/* JASMemPool_MultiThreaded<JASChannel> */
|
||||
struct JASMemPool_MultiThreaded__template2 {
|
||||
/* 802978DC */ void func_802978DC(void* _this);
|
||||
};
|
||||
|
||||
struct JASLfo {
|
||||
/* 8029BD14 */ JASLfo();
|
||||
/* 8029BD44 */ void getValue() const;
|
||||
/* 8029BDD8 */ void incCounter(f32);
|
||||
/* 8029BE2C */ void resetCounter();
|
||||
};
|
||||
|
||||
struct JASGenericMemPool {
|
||||
/* 80290848 */ JASGenericMemPool();
|
||||
/* 80290994 */ void free(void*, u32);
|
||||
};
|
||||
|
||||
struct JASDsp {
|
||||
namespace JASDsp {
|
||||
struct TChannel {
|
||||
/* 8029DD8C */ void setWaveInfo(JASWaveInfo const&, u32, u32);
|
||||
/* 8029DEAC */ void setOscInfo(u32);
|
||||
@@ -77,38 +41,6 @@ struct JASDSPChannel {
|
||||
/* 8029D534 */ void setPriority(u8);
|
||||
};
|
||||
|
||||
struct JASChannel {
|
||||
struct PanVector {};
|
||||
|
||||
/* 8029A800 */ JASChannel(void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*);
|
||||
/* 8029A918 */ ~JASChannel();
|
||||
/* 8029A9F0 */ void play();
|
||||
/* 8029AA60 */ void playForce();
|
||||
/* 8029AAD0 */ void release(u16);
|
||||
/* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*);
|
||||
/* 8029AB98 */ void setMixConfig(u32, u16);
|
||||
/* 8029ABA8 */ void calcEffect(JASChannel::PanVector const*);
|
||||
/* 8029ABC0 */ void calcPan(JASChannel::PanVector const*);
|
||||
/* 8029ABEC */ void effectOsc(u32, JASOscillator::EffectParams*);
|
||||
/* 8029ACD4 */ void setKeySweepTarget(s32, u32);
|
||||
/* 8029AD38 */ void updateEffectorParam(JASDsp::TChannel*, u16*,
|
||||
JASOscillator::EffectParams const&);
|
||||
/* 8029AF78 */ void dspUpdateCallback(u32, JASDsp::TChannel*, void*);
|
||||
/* 8029B004 */ void initialUpdateDSPChannel(JASDsp::TChannel*);
|
||||
/* 8029B324 */ void updateDSPChannel(JASDsp::TChannel*);
|
||||
/* 8029B6A0 */ void updateAutoMixer(JASDsp::TChannel*, f32, f32, f32, f32);
|
||||
/* 8029B7D8 */ void updateMixer(f32, f32, f32, f32, u16*);
|
||||
/* 8029BBFC */ void free();
|
||||
/* 8029BC0C */ void initBankDisposeMsgQueue();
|
||||
/* 8029BC48 */ void receiveBankDisposeMsg();
|
||||
/* 8029BCC0 */ void checkBankDispose() const;
|
||||
|
||||
static u8 sBankDisposeMsgQ[32];
|
||||
static u8 sBankDisposeMsg[64];
|
||||
static u8 sBankDisposeList[64];
|
||||
static u8 sBankDisposeListSize[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JASCalc {
|
||||
/* 8028F578 */ void pow2(f32);
|
||||
};
|
||||
@@ -180,10 +112,6 @@ extern "C" void setPauseFlag__Q26JASDsp8TChannelFUc();
|
||||
extern "C" void setBusConnect__Q26JASDsp8TChannelFUcUc();
|
||||
extern "C" void getChannelLevel_dsp__9JASDriverFv();
|
||||
extern "C" void getOutputMode__9JASDriverFv();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void OSInitMessageQueue();
|
||||
extern "C" void OSReceiveMessage();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_27();
|
||||
@@ -234,13 +162,13 @@ asm JASChannel::JASChannel(void (*param_0)(u32, JASChannel*, JASDsp::TChannel*,
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80431B90-80431BB0 05E8B0 0020+00 2/2 0/0 0/0 .bss sBankDisposeMsgQ__10JASChannel */
|
||||
u8 JASChannel::sBankDisposeMsgQ[32];
|
||||
OSMessageQueue JASChannel::sBankDisposeMsgQ;
|
||||
|
||||
/* 80431BB0-80431BF0 05E8D0 0040+00 1/1 0/0 0/0 .bss sBankDisposeMsg__10JASChannel */
|
||||
u8 JASChannel::sBankDisposeMsg[64];
|
||||
OSMessage JASChannel::sBankDisposeMsg[16];
|
||||
|
||||
/* 80431BF0-80431C30 05E910 0040+00 2/2 0/3 0/0 .bss sBankDisposeList__10JASChannel */
|
||||
u8 JASChannel::sBankDisposeList[64];
|
||||
u32 JASChannel::sBankDisposeList[16];
|
||||
|
||||
/* 80431C30-80431C40 05E950 000C+04 1/1 0/2 0/0 .bss @556 */
|
||||
static u8 lit_556[12 + 4 /* padding */];
|
||||
@@ -259,7 +187,7 @@ asm JASChannel::~JASChannel() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASChannel::play() {
|
||||
asm int JASChannel::play() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASChannel/play__10JASChannelFv.s"
|
||||
}
|
||||
@@ -528,7 +456,7 @@ asm void JASChannel::free() {
|
||||
/* ############################################################################################## */
|
||||
/* 80451298-804512A0 000798 0004+04 3/3 0/0 0/0 .sbss sBankDisposeListSize__10JASChannel
|
||||
*/
|
||||
u8 JASChannel::sBankDisposeListSize[4 + 4 /* padding */];
|
||||
u32 JASChannel::sBankDisposeListSize;
|
||||
|
||||
/* 8029BC0C-8029BC48 29654C 003C+00 0/0 1/1 0/0 .text initBankDisposeMsgQueue__10JASChannelFv */
|
||||
#pragma push
|
||||
|
||||
@@ -29,9 +29,9 @@ JASLfo::JASLfo() {
|
||||
field_0x0 = 0;
|
||||
field_0x4 = 1;
|
||||
field_0x8 = 0.0f;
|
||||
field_0xC = 0.0f;
|
||||
field_0x10 = 1.0f;
|
||||
field_0x14 = 0;
|
||||
mDepth = 0.0f;
|
||||
mPitch = 1.0f;
|
||||
mDelay = 0;
|
||||
field_0x16 = 0;
|
||||
}
|
||||
|
||||
@@ -43,11 +43,11 @@ f32 JASLfo::getValue() const {
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
if (field_0xC == 0.0f) {
|
||||
if (mDepth == 0.0f) {
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
return field_0xC * JMASinLap(field_0x8);
|
||||
return mDepth * JMASinLap(field_0x8);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -59,7 +59,7 @@ void JASLfo::incCounter(f32 param_0) {
|
||||
return;
|
||||
}
|
||||
|
||||
field_0x8 += param_0 * ((1.0f / 72.0f) * field_0x10);
|
||||
field_0x8 += param_0 * ((1.0f / 72.0f) * mPitch);
|
||||
if (field_0x8 >= 1.0f) {
|
||||
field_0x8 -= 1.0f;
|
||||
}
|
||||
@@ -71,7 +71,7 @@ JASLfo JASLfo::sFreeRunLfo;
|
||||
|
||||
/* 8029BE2C-8029BE6C 29676C 0040+00 0/0 1/1 0/0 .text resetCounter__6JASLfoFv */
|
||||
void JASLfo::resetCounter() {
|
||||
field_0x16 = field_0x14;
|
||||
field_0x16 = mDelay;
|
||||
switch (field_0x4) {
|
||||
case 0:
|
||||
field_0x8 = sFreeRunLfo.field_0x8;
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
JASOscillator::JASOscillator() {
|
||||
mData = NULL;
|
||||
_14 = 0;
|
||||
_16 = 0;
|
||||
mDirectRelease = 0;
|
||||
_18 = 0;
|
||||
_1C = 0;
|
||||
_0C = 0.0f;
|
||||
@@ -46,7 +46,7 @@ void JASOscillator::initStart(JASOscillator::Data const* data) {
|
||||
_08 = 0.0f;
|
||||
_0C = 0.0f;
|
||||
_14 = 0;
|
||||
_16 = 0;
|
||||
mDirectRelease = 0;
|
||||
if (!data) {
|
||||
_1C = 0;
|
||||
return;
|
||||
@@ -84,17 +84,17 @@ f32 JASOscillator::getValue() const {
|
||||
|
||||
/* 8029BFE4-8029C0E0 296924 00FC+00 0/0 1/1 0/0 .text release__13JASOscillatorFv */
|
||||
void JASOscillator::release() {
|
||||
if (mData->_0C == NULL && _16 == 0) {
|
||||
if (mData->_0C == NULL && mDirectRelease == 0) {
|
||||
stop();
|
||||
return;
|
||||
}
|
||||
|
||||
if (_16 != 0) {
|
||||
if (mDirectRelease != 0) {
|
||||
_04 = 0.0f;
|
||||
_0C = _08;
|
||||
_10 = 0.0f;
|
||||
_14 = 0;
|
||||
_18 = (_16 >> 14) & 3;
|
||||
_18 = (mDirectRelease >> 14) & 3;
|
||||
_1C = 4;
|
||||
update();
|
||||
return;
|
||||
@@ -115,7 +115,7 @@ void JASOscillator::release() {
|
||||
/* 8029C0E0-8029C2C0 296A20 01E0+00 2/2 1/1 0/0 .text update__13JASOscillatorFv */
|
||||
void JASOscillator::update() {
|
||||
if (_1C == 4) {
|
||||
s16 x = _16 & 0x3FFF;
|
||||
s16 x = mDirectRelease & 0x3FFF;
|
||||
if (_04 < x) {
|
||||
updateCurrentValue(x);
|
||||
} else {
|
||||
@@ -127,7 +127,7 @@ void JASOscillator::update() {
|
||||
|
||||
if (_1C == 2) return;
|
||||
|
||||
short* psVar1;
|
||||
const short* psVar1;
|
||||
if (_1C == 1) {
|
||||
psVar1 = mData->_08;
|
||||
} else {
|
||||
@@ -144,7 +144,7 @@ void JASOscillator::update() {
|
||||
_08 = _10;
|
||||
_14++;
|
||||
_0C = _08;
|
||||
s16* ps = &psVar1[_14 * 3];
|
||||
const s16* ps = &psVar1[_14 * 3];
|
||||
switch(ps[0]) {
|
||||
case 0xf:
|
||||
_1C = 0;
|
||||
|
||||
@@ -4,95 +4,40 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JAudio2/JASVoiceBank.h"
|
||||
#include "JSystem/JAudio2/JASBasicInst.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JASInstParam {};
|
||||
|
||||
struct JASVoiceBank {
|
||||
/* 80297F74 */ void getInstParam(int, int, int, JASInstParam*) const;
|
||||
/* 80297FAC */ ~JASVoiceBank();
|
||||
/* 80298008 */ void getType() const;
|
||||
|
||||
static u8 const sOscData[24];
|
||||
static u8 sOscTable[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void getInstParam__12JASVoiceBankCFiiiP12JASInstParam();
|
||||
extern "C" void __dt__12JASVoiceBankFv();
|
||||
extern "C" void getType__12JASVoiceBankCFv();
|
||||
extern "C" u8 const sOscData__12JASVoiceBank[24];
|
||||
extern "C" u8 sOscTable__12JASVoiceBank[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" extern void* __vt__7JASBank[5];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039B1B8-8039B1D0 027818 0018+00 1/1 0/0 0/0 .rodata sOscData__12JASVoiceBank */
|
||||
SECTION_RODATA u8 const JASVoiceBank::sOscData[24] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
const JASOscillator::Data JASVoiceBank::sOscData = {
|
||||
0, 1.0f, NULL, NULL, 1.0f, 0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8039B1B8, &JASVoiceBank::sOscData);
|
||||
|
||||
/* 80451268-80451270 000768 0004+04 1/1 0/0 0/0 .sbss sOscTable__12JASVoiceBank */
|
||||
u8 JASVoiceBank::sOscTable[4 + 4 /* padding */];
|
||||
JASOscillator::Data* JASVoiceBank::sOscTable;
|
||||
|
||||
/* 80297F74-80297FAC 2928B4 0038+00 1/0 0/0 0/0 .text
|
||||
* getInstParam__12JASVoiceBankCFiiiP12JASInstParam */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASVoiceBank::getInstParam(int param_0, int param_1, int param_2,
|
||||
bool JASVoiceBank::getInstParam(int param_0, int param_1, int param_2,
|
||||
JASInstParam* param_3) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASVoiceBank/getInstParam__12JASVoiceBankCFiiiP12JASInstParam.s"
|
||||
if (param_0 < 0) {
|
||||
return false;
|
||||
}
|
||||
sOscTable = (JASOscillator::Data*)&sOscData;
|
||||
param_3->field_0x1a = param_0;
|
||||
param_3->field_0x1d = 1;
|
||||
param_3->field_0x14 = &sOscTable;
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C76D0-803C76E8 0247F0 0014+04 1/1 1/1 0/0 .data __vt__12JASVoiceBank */
|
||||
SECTION_DATA extern void* __vt__12JASVoiceBank[5 + 1 /* padding */] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12JASVoiceBankFv,
|
||||
(void*)getInstParam__12JASVoiceBankCFiiiP12JASInstParam,
|
||||
(void*)getType__12JASVoiceBankCFv,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80297FAC-80298008 2928EC 005C+00 1/0 0/0 0/0 .text __dt__12JASVoiceBankFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JASVoiceBank::~JASVoiceBank() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASVoiceBank/__dt__12JASVoiceBankFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
JASVoiceBank::~JASVoiceBank() {}
|
||||
|
||||
/* 80298008-80298014 292948 000C+00 1/0 0/0 0/0 .text getType__12JASVoiceBankCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JASVoiceBank::getType() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASVoiceBank/getType__12JASVoiceBankCFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
u32 JASVoiceBank::getType() const {
|
||||
return 'VOIC';
|
||||
}
|
||||
@@ -4,74 +4,31 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JAudio2/JAUSeqCollection.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JAISeqDataUser {};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct JAISeqData {};
|
||||
|
||||
struct JAUSeqDataMgr_SeqCollection {
|
||||
/* 802A677C */ JAUSeqDataMgr_SeqCollection();
|
||||
/* 802A67D0 */ void setSeqDataUser(JAISeqDataUser*);
|
||||
/* 802A67DC */ void releaseSeqData();
|
||||
/* 802A683C */ void getSeqData(JAISoundID, JAISeqData*);
|
||||
/* 802A6894 */ ~JAUSeqDataMgr_SeqCollection();
|
||||
};
|
||||
|
||||
struct JAISeqDataRegion {};
|
||||
|
||||
struct JAUSeqCollection {
|
||||
/* 802A66A0 */ JAUSeqCollection();
|
||||
/* 802A66AC */ void init(void const*);
|
||||
/* 802A66FC */ void getSeqData(int, int, JAISeqData*);
|
||||
/* 802A6754 */ void getSeqDataRegion(JAISeqDataRegion*);
|
||||
};
|
||||
|
||||
struct JAISeqDataMgr {
|
||||
/* 802A17BC */ ~JAISeqDataMgr();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__16JAUSeqCollectionFv();
|
||||
extern "C" void init__16JAUSeqCollectionFPCv();
|
||||
extern "C" void getSeqData__16JAUSeqCollectionFiiP10JAISeqData();
|
||||
extern "C" void getSeqDataRegion__16JAUSeqCollectionFP16JAISeqDataRegion();
|
||||
extern "C" void __ct__27JAUSeqDataMgr_SeqCollectionFv();
|
||||
extern "C" void setSeqDataUser__27JAUSeqDataMgr_SeqCollectionFP14JAISeqDataUser();
|
||||
extern "C" void releaseSeqData__27JAUSeqDataMgr_SeqCollectionFv();
|
||||
extern "C" void getSeqData__27JAUSeqDataMgr_SeqCollectionF10JAISoundIDP10JAISeqData();
|
||||
extern "C" void __dt__27JAUSeqDataMgr_SeqCollectionFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __dt__13JAISeqDataMgrFv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" extern void* __vt__13JAISeqDataMgr[6];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 802A66A0-802A66AC 2A0FE0 000C+00 1/1 0/0 0/0 .text __ct__16JAUSeqCollectionFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JAUSeqCollection::JAUSeqCollection() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/__ct__16JAUSeqCollectionFv.s"
|
||||
JAUSeqCollection::JAUSeqCollection() {
|
||||
field_0x8 = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A66AC-802A66FC 2A0FEC 0050+00 0/0 1/1 0/0 .text init__16JAUSeqCollectionFPCv */
|
||||
#pragma push
|
||||
@@ -88,7 +45,7 @@ asm void JAUSeqCollection::init(void const* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAUSeqCollection::getSeqData(int param_0, int param_1, JAISeqData* param_2) {
|
||||
asm bool JAUSeqCollection::getSeqData(int param_0, int param_1, JAISeqData* param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/getSeqData__16JAUSeqCollectionFiiP10JAISeqData.s"
|
||||
}
|
||||
@@ -105,67 +62,53 @@ asm void JAUSeqCollection::getSeqDataRegion(JAISeqDataRegion* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C9B38-803C9B50 026C58 0018+00 2/2 0/0 0/0 .data __vt__27JAUSeqDataMgr_SeqCollection
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__27JAUSeqDataMgr_SeqCollection[6] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__27JAUSeqDataMgr_SeqCollectionFv,
|
||||
(void*)getSeqData__27JAUSeqDataMgr_SeqCollectionF10JAISoundIDP10JAISeqData,
|
||||
(void*)releaseSeqData__27JAUSeqDataMgr_SeqCollectionFv,
|
||||
(void*)setSeqDataUser__27JAUSeqDataMgr_SeqCollectionFP14JAISeqDataUser,
|
||||
};
|
||||
|
||||
/* 802A677C-802A67D0 2A10BC 0054+00 0/0 1/1 0/0 .text __ct__27JAUSeqDataMgr_SeqCollectionFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JAUSeqDataMgr_SeqCollection::JAUSeqDataMgr_SeqCollection() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/__ct__27JAUSeqDataMgr_SeqCollectionFv.s"
|
||||
JAUSeqDataMgr_SeqCollection::JAUSeqDataMgr_SeqCollection() {
|
||||
user_ = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A67D0-802A67DC 2A1110 000C+00 1/0 0/0 0/0 .text
|
||||
* setSeqDataUser__27JAUSeqDataMgr_SeqCollectionFP14JAISeqDataUser */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAUSeqDataMgr_SeqCollection::setSeqDataUser(JAISeqDataUser* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/setSeqDataUser__27JAUSeqDataMgr_SeqCollectionFP14JAISeqDataUser.s"
|
||||
bool JAUSeqDataMgr_SeqCollection::setSeqDataUser(JAISeqDataUser* param_0) {
|
||||
JUT_ASSERT("JAUSeqCollection.cpp", 0x3c, user_ == 0);
|
||||
user_ = param_0;
|
||||
return true;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A67DC-802A683C 2A111C 0060+00 1/0 0/0 0/0 .text
|
||||
* releaseSeqData__27JAUSeqDataMgr_SeqCollectionFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAUSeqDataMgr_SeqCollection::releaseSeqData() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/releaseSeqData__27JAUSeqDataMgr_SeqCollectionFv.s"
|
||||
int JAUSeqDataMgr_SeqCollection::releaseSeqData() {
|
||||
if (user_) {
|
||||
JAISeqDataRegion region;
|
||||
getSeqDataRegion(®ion);
|
||||
return user_->releaseSeqData(region);
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A683C-802A6894 2A117C 0058+00 1/0 0/0 0/0 .text
|
||||
* getSeqData__27JAUSeqDataMgr_SeqCollectionF10JAISoundIDP10JAISeqData */
|
||||
// branch
|
||||
#ifdef NONMATCHING
|
||||
s32 JAUSeqDataMgr_SeqCollection::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
|
||||
if (!isValid()) {
|
||||
return 0;
|
||||
}
|
||||
if (JAUSeqCollection::getSeqData(param_0.mId.mBytes.b1, param_0.mId.mAdvancedId.mShortId, param_1)) {
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAUSeqDataMgr_SeqCollection::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
|
||||
asm s32 JAUSeqDataMgr_SeqCollection::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/getSeqData__27JAUSeqDataMgr_SeqCollectionF10JAISoundIDP10JAISeqData.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A6894-802A68F4 2A11D4 0060+00 1/0 0/0 0/0 .text __dt__27JAUSeqDataMgr_SeqCollectionFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JAUSeqDataMgr_SeqCollection::~JAUSeqDataMgr_SeqCollection() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAUSeqCollection/__dt__27JAUSeqDataMgr_SeqCollectionFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
JAUSeqDataMgr_SeqCollection::~JAUSeqDataMgr_SeqCollection() {}
|
||||
Reference in New Issue
Block a user