JAUSectionHeap, Z2SoundInfo, others (#1925)

* Z2SoundInfo

* JAUSectionHeap

* Z2EnvSeMgr

* Z2AudioMgr

* m_Do_audio

* d_a_alink
This commit is contained in:
Jcw87 2023-09-15 05:20:09 -07:00 committed by GitHub
parent f834379a8b
commit 287ae62349
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
159 changed files with 1349 additions and 1511 deletions

View File

@ -1,32 +0,0 @@
lbl_802A5F24:
/* 802A5F24 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A5F28 7C 08 02 A6 */ mflr r0
/* 802A5F2C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A5F30 39 61 00 20 */ addi r11, r1, 0x20
/* 802A5F34 48 0B C2 A5 */ bl _savegpr_28
/* 802A5F38 7C 7C 1B 78 */ mr r28, r3
/* 802A5F3C 7C 9D 23 78 */ mr r29, r4
/* 802A5F40 48 02 84 F9 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5F44 90 61 00 08 */ stw r3, 8(r1)
/* 802A5F48 7F 83 E3 78 */ mr r3, r28
/* 802A5F4C 48 02 87 E1 */ bl getFreeSize__7JKRHeapFv
/* 802A5F50 7C 7E 1B 78 */ mr r30, r3
/* 802A5F54 38 60 05 34 */ li r3, 0x534
/* 802A5F58 48 02 8C F5 */ bl __nw__FUl
/* 802A5F5C 7C 7F 1B 79 */ or. r31, r3, r3
/* 802A5F60 41 82 00 18 */ beq lbl_802A5F78
/* 802A5F64 7F 84 E3 78 */ mr r4, r28
/* 802A5F68 7F A5 EB 78 */ mr r5, r29
/* 802A5F6C 7F C6 F3 78 */ mr r6, r30
/* 802A5F70 48 00 00 71 */ bl __ct__14JAUSectionHeapFP12JKRSolidHeapbl
/* 802A5F74 7C 7F 1B 78 */ mr r31, r3
lbl_802A5F78:
/* 802A5F78 80 61 00 08 */ lwz r3, 8(r1)
/* 802A5F7C 48 02 84 BD */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5F80 7F E3 FB 78 */ mr r3, r31
/* 802A5F84 39 61 00 20 */ addi r11, r1, 0x20
/* 802A5F88 48 0B C2 9D */ bl _restgpr_28
/* 802A5F8C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A5F90 7C 08 03 A6 */ mtlr r0
/* 802A5F94 38 21 00 20 */ addi r1, r1, 0x20
/* 802A5F98 4E 80 00 20 */ blr

View File

@ -1,18 +0,0 @@
lbl_802A5F9C:
/* 802A5F9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A5FA0 7C 08 02 A6 */ mflr r0
/* 802A5FA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5FA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802A5FAC 7C 7F 1B 78 */ mr r31, r3
/* 802A5FB0 80 6D 8C 90 */ lwz r3, JASDram(r13)
/* 802A5FB4 48 02 87 79 */ bl getFreeSize__7JKRHeapFv
/* 802A5FB8 80 8D 8C 90 */ lwz r4, JASDram(r13)
/* 802A5FBC 38 A0 00 01 */ li r5, 1
/* 802A5FC0 48 02 AA 65 */ bl create__12JKRSolidHeapFUlP7JKRHeapb
/* 802A5FC4 7F E4 FB 78 */ mr r4, r31
/* 802A5FC8 4B FF FF 5D */ bl JAUNewSectionHeap__FP12JKRSolidHeapb
/* 802A5FCC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802A5FD0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5FD4 7C 08 03 A6 */ mtlr r0
/* 802A5FD8 38 21 00 10 */ addi r1, r1, 0x10
/* 802A5FDC 4E 80 00 20 */ blr

View File

@ -1,28 +0,0 @@
lbl_802A5DF4:
/* 802A5DF4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A5DF8 7C 08 02 A6 */ mflr r0
/* 802A5DFC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5E00 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802A5E04 7C 7F 1B 78 */ mr r31, r3
/* 802A5E08 38 1F 00 08 */ addi r0, r31, 8
/* 802A5E0C 90 03 00 00 */ stw r0, 0(r3)
/* 802A5E10 38 00 00 FF */ li r0, 0xff
/* 802A5E14 90 03 00 04 */ stw r0, 4(r3)
/* 802A5E18 80 63 00 00 */ lwz r3, 0(r3)
/* 802A5E1C 38 80 00 00 */ li r4, 0
/* 802A5E20 38 A0 03 FC */ li r5, 0x3fc
/* 802A5E24 4B D5 D6 35 */ bl memset
/* 802A5E28 38 7F 04 08 */ addi r3, r31, 0x408
/* 802A5E2C 48 00 0C 2D */ bl __ct__23JAUDynamicSeqDataBlocksFv
/* 802A5E30 38 00 00 00 */ li r0, 0
/* 802A5E34 90 1F 04 30 */ stw r0, 0x430(r31)
/* 802A5E38 90 1F 04 34 */ stw r0, 0x434(r31)
/* 802A5E3C 90 1F 04 38 */ stw r0, 0x438(r31)
/* 802A5E40 90 1F 04 3C */ stw r0, 0x43c(r31)
/* 802A5E44 90 1F 04 04 */ stw r0, 0x404(r31)
/* 802A5E48 7F E3 FB 78 */ mr r3, r31
/* 802A5E4C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802A5E50 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5E54 7C 08 03 A6 */ mtlr r0
/* 802A5E58 38 21 00 10 */ addi r1, r1, 0x10
/* 802A5E5C 4E 80 00 20 */ blr

View File

@ -1,37 +0,0 @@
lbl_802A5160:
/* 802A5160 80 03 00 BC */ lwz r0, 0xbc(r3)
/* 802A5164 28 00 00 00 */ cmplwi r0, 0
/* 802A5168 41 82 00 38 */ beq lbl_802A51A0
/* 802A516C 80 83 00 30 */ lwz r4, 0x30(r3)
/* 802A5170 80 84 05 2C */ lwz r4, 0x52c(r4)
/* 802A5174 28 04 00 00 */ cmplwi r4, 0
/* 802A5178 41 82 00 1C */ beq lbl_802A5194
/* 802A517C 41 82 00 18 */ beq lbl_802A5194
/* 802A5180 80 0D 85 D8 */ lwz r0, __OSReport_disable-0x40(r13)
/* 802A5184 7C 00 20 40 */ cmplw r0, r4
/* 802A5188 40 82 00 0C */ bne lbl_802A5194
/* 802A518C 38 00 00 00 */ li r0, 0
/* 802A5190 90 0D 85 D8 */ stw r0, __OSReport_disable-0x40(r13)
lbl_802A5194:
/* 802A5194 38 00 00 00 */ li r0, 0
/* 802A5198 80 83 00 30 */ lwz r4, 0x30(r3)
/* 802A519C 90 04 05 2C */ stw r0, 0x52c(r4)
lbl_802A51A0:
/* 802A51A0 80 03 00 C0 */ lwz r0, 0xc0(r3)
/* 802A51A4 28 00 00 00 */ cmplwi r0, 0
/* 802A51A8 4D 82 00 20 */ beqlr
/* 802A51AC 80 83 00 30 */ lwz r4, 0x30(r3)
/* 802A51B0 80 84 05 30 */ lwz r4, 0x530(r4)
/* 802A51B4 28 04 00 00 */ cmplwi r4, 0
/* 802A51B8 41 82 00 1C */ beq lbl_802A51D4
/* 802A51BC 41 82 00 18 */ beq lbl_802A51D4
/* 802A51C0 80 0D 85 D4 */ lwz r0, __OSReport_disable-0x44(r13)
/* 802A51C4 7C 00 20 40 */ cmplw r0, r4
/* 802A51C8 40 82 00 0C */ bne lbl_802A51D4
/* 802A51CC 38 00 00 00 */ li r0, 0
/* 802A51D0 90 0D 85 D4 */ stw r0, __OSReport_disable-0x44(r13)
lbl_802A51D4:
/* 802A51D4 38 00 00 00 */ li r0, 0
/* 802A51D8 80 63 00 30 */ lwz r3, 0x30(r3)
/* 802A51DC 90 03 05 30 */ stw r0, 0x530(r3)
/* 802A51E0 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_802A5D9C:
/* 802A5D9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A5DA0 7C 08 02 A6 */ mflr r0
/* 802A5DA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5DA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802A5DAC 7C 7F 1B 78 */ mr r31, r3
/* 802A5DB0 38 60 00 00 */ li r3, 0
/* 802A5DB4 80 9F 00 34 */ lwz r4, 0x34(r31)
/* 802A5DB8 28 04 00 00 */ cmplwi r4, 0
/* 802A5DBC 41 82 00 24 */ beq lbl_802A5DE0
/* 802A5DC0 38 7F 00 AC */ addi r3, r31, 0xac
/* 802A5DC4 4B FF EC BD */ bl func_802A4A80
/* 802A5DC8 38 00 00 00 */ li r0, 0
/* 802A5DCC 90 1F 00 34 */ stw r0, 0x34(r31)
/* 802A5DD0 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 802A5DD4 28 03 00 00 */ cmplwi r3, 0
/* 802A5DD8 41 82 00 08 */ beq lbl_802A5DE0
/* 802A5DDC 38 63 00 10 */ addi r3, r3, 0x10
lbl_802A5DE0:
/* 802A5DE0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802A5DE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5DE8 7C 08 03 A6 */ mtlr r0
/* 802A5DEC 38 21 00 10 */ addi r1, r1, 0x10
/* 802A5DF0 4E 80 00 20 */ blr

View File

@ -1,27 +0,0 @@
lbl_802A50F8:
/* 802A50F8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A50FC 7C 08 02 A6 */ mflr r0
/* 802A5100 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A5104 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802A5108 7C 7F 1B 78 */ mr r31, r3
/* 802A510C 80 63 00 30 */ lwz r3, 0x30(r3)
/* 802A5110 80 63 00 E0 */ lwz r3, 0xe0(r3)
/* 802A5114 48 02 93 25 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5118 90 61 00 08 */ stw r3, 8(r1)
/* 802A511C 48 02 93 1D */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5120 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 802A5124 80 63 00 E0 */ lwz r3, 0xe0(r3)
/* 802A5128 48 02 96 05 */ bl getFreeSize__7JKRHeapFv
/* 802A512C 80 1F 00 D0 */ lwz r0, 0xd0(r31)
/* 802A5130 7C 03 00 50 */ subf r0, r3, r0
/* 802A5134 90 1F 00 D0 */ stw r0, 0xd0(r31)
/* 802A5138 80 7F 00 30 */ lwz r3, 0x30(r31)
/* 802A513C 80 63 00 E0 */ lwz r3, 0xe0(r3)
/* 802A5140 48 02 94 B9 */ bl freeTail__7JKRHeapFv
/* 802A5144 38 00 00 00 */ li r0, 0
/* 802A5148 98 1F 00 2C */ stb r0, 0x2c(r31)
/* 802A514C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802A5150 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A5154 7C 08 03 A6 */ mtlr r0
/* 802A5158 38 21 00 20 */ addi r1, r1, 0x20
/* 802A515C 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_802A6094:
/* 802A6094 80 63 00 EC */ lwz r3, 0xec(r3)
/* 802A6098 80 63 00 00 */ lwz r3, 0(r3)
/* 802A609C 4E 80 00 20 */ blr

View File

@ -1,45 +0,0 @@
lbl_802A61D0:
/* 802A61D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A61D4 7C 08 02 A6 */ mflr r0
/* 802A61D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A61DC 39 61 00 20 */ addi r11, r1, 0x20
/* 802A61E0 48 0B BF F9 */ bl _savegpr_28
/* 802A61E4 7C 7C 1B 78 */ mr r28, r3
/* 802A61E8 7C 9D 23 78 */ mr r29, r4
/* 802A61EC 7C BE 2B 78 */ mr r30, r5
/* 802A61F0 83 E3 00 E8 */ lwz r31, 0xe8(r3)
/* 802A61F4 48 00 00 3C */ b lbl_802A6230
lbl_802A61F8:
/* 802A61F8 80 1D 00 00 */ lwz r0, 0(r29)
/* 802A61FC 90 01 00 0C */ stw r0, 0xc(r1)
/* 802A6200 80 7F 00 00 */ lwz r3, 0(r31)
/* 802A6204 38 63 00 38 */ addi r3, r3, 0x38
/* 802A6208 38 81 00 0C */ addi r4, r1, 0xc
/* 802A620C 80 BC 04 F8 */ lwz r5, 0x4f8(r28)
/* 802A6210 7F C6 F3 78 */ mr r6, r30
/* 802A6214 38 E0 00 00 */ li r7, 0
/* 802A6218 48 00 08 91 */ bl getSeqData__23JAUDynamicSeqDataBlocksF10JAISoundIDP14JAISeqDataUserP10JAISeqDatab
/* 802A621C 2C 03 00 02 */ cmpwi r3, 2
/* 802A6220 40 82 00 0C */ bne lbl_802A622C
/* 802A6224 38 60 00 02 */ li r3, 2
/* 802A6228 48 00 00 30 */ b lbl_802A6258
lbl_802A622C:
/* 802A622C 83 FF 00 0C */ lwz r31, 0xc(r31)
lbl_802A6230:
/* 802A6230 28 1F 00 00 */ cmplwi r31, 0
/* 802A6234 40 82 FF C4 */ bne lbl_802A61F8
/* 802A6238 80 1D 00 00 */ lwz r0, 0(r29)
/* 802A623C 90 01 00 08 */ stw r0, 8(r1)
/* 802A6240 38 7C 04 FC */ addi r3, r28, 0x4fc
/* 802A6244 38 81 00 08 */ addi r4, r1, 8
/* 802A6248 80 BC 04 F8 */ lwz r5, 0x4f8(r28)
/* 802A624C 7F C6 F3 78 */ mr r6, r30
/* 802A6250 38 E0 00 01 */ li r7, 1
/* 802A6254 48 00 08 55 */ bl getSeqData__23JAUDynamicSeqDataBlocksF10JAISoundIDP14JAISeqDataUserP10JAISeqDatab
lbl_802A6258:
/* 802A6258 39 61 00 20 */ addi r11, r1, 0x20
/* 802A625C 48 0B BF C9 */ bl _restgpr_28
/* 802A6260 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A6264 7C 08 03 A6 */ mtlr r0
/* 802A6268 38 21 00 20 */ addi r1, r1, 0x20
/* 802A626C 4E 80 00 20 */ blr

View File

@ -1,15 +0,0 @@
lbl_802A5EC0:
/* 802A5EC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A5EC4 7C 08 02 A6 */ mflr r0
/* 802A5EC8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5ECC 7C 66 1B 78 */ mr r6, r3
/* 802A5ED0 80 04 00 00 */ lwz r0, 0(r4)
/* 802A5ED4 90 01 00 08 */ stw r0, 8(r1)
/* 802A5ED8 38 66 04 FC */ addi r3, r6, 0x4fc
/* 802A5EDC 38 81 00 08 */ addi r4, r1, 8
/* 802A5EE0 80 C6 04 F8 */ lwz r6, 0x4f8(r6)
/* 802A5EE4 48 00 0D 35 */ bl loadDynamicSeq__23JAUDynamicSeqDataBlocksF10JAISoundIDbP14JAISeqDataUser
/* 802A5EE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5EEC 7C 08 03 A6 */ mtlr r0
/* 802A5EF0 38 21 00 10 */ addi r1, r1, 0x10
/* 802A5EF4 4E 80 00 20 */ blr

View File

@ -1,27 +0,0 @@
lbl_802A57F0:
/* 802A57F0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A57F4 7C 08 02 A6 */ mflr r0
/* 802A57F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A57FC 39 61 00 20 */ addi r11, r1, 0x20
/* 802A5800 48 0B C9 DD */ bl _savegpr_29
/* 802A5804 7C 67 1B 78 */ mr r7, r3
/* 802A5808 7C 9D 23 78 */ mr r29, r4
/* 802A580C 7C BE 2B 78 */ mr r30, r5
/* 802A5810 7F C3 F3 78 */ mr r3, r30
/* 802A5814 80 87 00 30 */ lwz r4, 0x30(r7)
/* 802A5818 80 84 00 E0 */ lwz r4, 0xe0(r4)
/* 802A581C 7C C5 33 78 */ mr r5, r6
/* 802A5820 48 02 94 F1 */ bl __nwa__FUlP7JKRHeapi
/* 802A5824 7C 7F 1B 79 */ or. r31, r3, r3
/* 802A5828 41 82 00 10 */ beq lbl_802A5838
/* 802A582C 7F A4 EB 78 */ mr r4, r29
/* 802A5830 7F C5 F3 78 */ mr r5, r30
/* 802A5834 4B D5 DD 0D */ bl memcpy
lbl_802A5838:
/* 802A5838 7F E3 FB 78 */ mr r3, r31
/* 802A583C 39 61 00 20 */ addi r11, r1, 0x20
/* 802A5840 48 0B C9 E9 */ bl _restgpr_29
/* 802A5844 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A5848 7C 08 03 A6 */ mtlr r0
/* 802A584C 38 21 00 20 */ addi r1, r1, 0x20
/* 802A5850 4E 80 00 20 */ blr

View File

@ -1,81 +0,0 @@
lbl_802A60AC:
/* 802A60AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A60B0 7C 08 02 A6 */ mflr r0
/* 802A60B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A60B8 39 61 00 20 */ addi r11, r1, 0x20
/* 802A60BC 48 0B C1 1D */ bl _savegpr_28
/* 802A60C0 7C 7C 1B 78 */ mr r28, r3
/* 802A60C4 7C 9D 23 78 */ mr r29, r4
/* 802A60C8 80 63 00 30 */ lwz r3, 0x30(r3)
/* 802A60CC 80 63 00 E0 */ lwz r3, 0xe0(r3)
/* 802A60D0 48 02 83 69 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A60D4 90 61 00 0C */ stw r3, 0xc(r1)
/* 802A60D8 38 60 00 20 */ li r3, 0x20
/* 802A60DC 48 02 8B 71 */ bl __nw__FUl
/* 802A60E0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802A60E4 41 82 00 0C */ beq lbl_802A60F0
/* 802A60E8 48 00 08 0D */ bl __ct__15JAUSeqDataBlockFv
/* 802A60EC 7C 7E 1B 78 */ mr r30, r3
lbl_802A60F0:
/* 802A60F0 28 1E 00 00 */ cmplwi r30, 0
/* 802A60F4 40 82 00 14 */ bne lbl_802A6108
/* 802A60F8 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A60FC 48 02 83 3D */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A6100 38 60 00 00 */ li r3, 0
/* 802A6104 48 00 00 B4 */ b lbl_802A61B8
lbl_802A6108:
/* 802A6108 38 60 00 10 */ li r3, 0x10
/* 802A610C 48 02 8B 41 */ bl __nw__FUl
/* 802A6110 7C 7F 1B 79 */ or. r31, r3, r3
/* 802A6114 41 82 00 0C */ beq lbl_802A6120
/* 802A6118 7F C4 F3 78 */ mr r4, r30
/* 802A611C 48 03 5C E1 */ bl __ct__10JSUPtrLinkFPv
lbl_802A6120:
/* 802A6120 28 1F 00 00 */ cmplwi r31, 0
/* 802A6124 40 82 00 14 */ bne lbl_802A6138
/* 802A6128 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A612C 48 02 83 0D */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A6130 38 60 00 00 */ li r3, 0
/* 802A6134 48 00 00 84 */ b lbl_802A61B8
lbl_802A6138:
/* 802A6138 7F A3 EB 78 */ mr r3, r29
/* 802A613C 38 80 00 20 */ li r4, 0x20
/* 802A6140 48 02 8B AD */ bl __nwa__FUli
/* 802A6144 28 03 00 00 */ cmplwi r3, 0
/* 802A6148 40 82 00 14 */ bne lbl_802A615C
/* 802A614C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A6150 48 02 82 E9 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A6154 38 60 00 00 */ li r3, 0
/* 802A6158 48 00 00 60 */ b lbl_802A61B8
lbl_802A615C:
/* 802A615C 90 7E 00 14 */ stw r3, 0x14(r30)
/* 802A6160 93 BE 00 18 */ stw r29, 0x18(r30)
/* 802A6164 38 00 FF FF */ li r0, -1
/* 802A6168 90 1E 00 10 */ stw r0, 0x10(r30)
/* 802A616C 48 09 75 89 */ bl OSDisableInterrupts
/* 802A6170 90 61 00 08 */ stw r3, 8(r1)
/* 802A6174 80 7C 00 30 */ lwz r3, 0x30(r28)
/* 802A6178 38 63 04 FC */ addi r3, r3, 0x4fc
/* 802A617C 7F C4 F3 78 */ mr r4, r30
/* 802A6180 48 00 0A 0D */ bl appendDynamicSeqDataBlock__23JAUDynamicSeqDataBlocksFP15JAUSeqDataBlock
/* 802A6184 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A6188 41 82 00 1C */ beq lbl_802A61A4
/* 802A618C 80 61 00 08 */ lwz r3, 8(r1)
/* 802A6190 48 09 75 8D */ bl OSRestoreInterrupts
/* 802A6194 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A6198 48 02 82 A1 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A619C 38 60 00 01 */ li r3, 1
/* 802A61A0 48 00 00 18 */ b lbl_802A61B8
lbl_802A61A4:
/* 802A61A4 80 61 00 08 */ lwz r3, 8(r1)
/* 802A61A8 48 09 75 75 */ bl OSRestoreInterrupts
/* 802A61AC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A61B0 48 02 82 89 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A61B4 38 60 00 00 */ li r3, 0
lbl_802A61B8:
/* 802A61B8 39 61 00 20 */ addi r11, r1, 0x20
/* 802A61BC 48 0B C0 69 */ bl _restgpr_28
/* 802A61C0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A61C4 7C 08 03 A6 */ mtlr r0
/* 802A61C8 38 21 00 20 */ addi r1, r1, 0x20
/* 802A61CC 4E 80 00 20 */ blr

View File

@ -1,41 +0,0 @@
lbl_802A5500:
/* 802A5500 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A5504 7C 08 02 A6 */ mflr r0
/* 802A5508 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A550C 39 61 00 20 */ addi r11, r1, 0x20
/* 802A5510 48 0B CC CD */ bl _savegpr_29
/* 802A5514 7C 7D 1B 78 */ mr r29, r3
/* 802A5518 7C 9E 23 78 */ mr r30, r4
/* 802A551C 28 05 00 00 */ cmplwi r5, 0
/* 802A5520 41 82 00 10 */ beq lbl_802A5530
/* 802A5524 38 C0 00 04 */ li r6, 4
/* 802A5528 48 00 02 C9 */ bl newCopy__10JAUSectionFPCvUll
/* 802A552C 7C 7E 1B 78 */ mr r30, r3
lbl_802A5530:
/* 802A5530 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 802A5534 80 63 00 E0 */ lwz r3, 0xe0(r3)
/* 802A5538 48 02 8F 01 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A553C 90 61 00 08 */ stw r3, 8(r1)
/* 802A5540 38 60 00 18 */ li r3, 0x18
/* 802A5544 48 02 97 09 */ bl __nw__FUl
/* 802A5548 7C 7F 1B 79 */ or. r31, r3, r3
/* 802A554C 41 82 00 0C */ beq lbl_802A5558
/* 802A5550 48 00 12 2D */ bl __ct__27JAUSeqDataMgr_SeqCollectionFv
/* 802A5554 7C 7F 1B 78 */ mr r31, r3
lbl_802A5558:
/* 802A5558 38 7F 00 04 */ addi r3, r31, 4
/* 802A555C 7F C4 F3 78 */ mr r4, r30
/* 802A5560 48 00 11 4D */ bl init__16JAUSeqCollectionFPCv
/* 802A5564 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 802A5568 93 E3 05 24 */ stw r31, 0x524(r3)
/* 802A556C 93 FD 00 B8 */ stw r31, 0xb8(r29)
/* 802A5570 80 61 00 08 */ lwz r3, 8(r1)
/* 802A5574 48 02 8E C5 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5578 80 7D 00 30 */ lwz r3, 0x30(r29)
/* 802A557C 80 63 05 24 */ lwz r3, 0x524(r3)
/* 802A5580 39 61 00 20 */ addi r11, r1, 0x20
/* 802A5584 48 0B CC A5 */ bl _restgpr_29
/* 802A5588 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A558C 7C 08 03 A6 */ mtlr r0
/* 802A5590 38 21 00 20 */ addi r1, r1, 0x20
/* 802A5594 4E 80 00 20 */ blr

View File

@ -1,84 +0,0 @@
lbl_802A5598:
/* 802A5598 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802A559C 7C 08 02 A6 */ mflr r0
/* 802A55A0 90 01 00 34 */ stw r0, 0x34(r1)
/* 802A55A4 39 61 00 30 */ addi r11, r1, 0x30
/* 802A55A8 48 0B CC 29 */ bl _savegpr_26
/* 802A55AC 7C 7A 1B 78 */ mr r26, r3
/* 802A55B0 7C 9B 23 78 */ mr r27, r4
/* 802A55B4 7C BC 2B 78 */ mr r28, r5
/* 802A55B8 80 63 00 30 */ lwz r3, 0x30(r3)
/* 802A55BC 80 63 00 E0 */ lwz r3, 0xe0(r3)
/* 802A55C0 48 02 8E 79 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A55C4 90 61 00 0C */ stw r3, 0xc(r1)
/* 802A55C8 38 60 00 20 */ li r3, 0x20
/* 802A55CC 48 02 96 81 */ bl __nw__FUl
/* 802A55D0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802A55D4 41 82 00 0C */ beq lbl_802A55E0
/* 802A55D8 48 00 13 1D */ bl __ct__15JAUSeqDataBlockFv
/* 802A55DC 7C 7E 1B 78 */ mr r30, r3
lbl_802A55E0:
/* 802A55E0 28 1E 00 00 */ cmplwi r30, 0
/* 802A55E4 40 82 00 14 */ bne lbl_802A55F8
/* 802A55E8 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A55EC 48 02 8E 4D */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A55F0 38 60 00 00 */ li r3, 0
/* 802A55F4 48 00 00 BC */ b lbl_802A56B0
lbl_802A55F8:
/* 802A55F8 38 60 00 10 */ li r3, 0x10
/* 802A55FC 48 02 96 51 */ bl __nw__FUl
/* 802A5600 7C 7F 1B 79 */ or. r31, r3, r3
/* 802A5604 41 82 00 0C */ beq lbl_802A5610
/* 802A5608 7F C4 F3 78 */ mr r4, r30
/* 802A560C 48 03 67 F1 */ bl __ct__10JSUPtrLinkFPv
lbl_802A5610:
/* 802A5610 28 1F 00 00 */ cmplwi r31, 0
/* 802A5614 40 82 00 14 */ bne lbl_802A5628
/* 802A5618 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A561C 48 02 8E 1D */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5620 38 60 00 00 */ li r3, 0
/* 802A5624 48 00 00 8C */ b lbl_802A56B0
lbl_802A5628:
/* 802A5628 7F 83 E3 78 */ mr r3, r28
/* 802A562C 38 80 00 20 */ li r4, 0x20
/* 802A5630 48 02 96 BD */ bl __nwa__FUli
/* 802A5634 7C 7D 1B 79 */ or. r29, r3, r3
/* 802A5638 40 82 00 14 */ bne lbl_802A564C
/* 802A563C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A5640 48 02 8D F9 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5644 38 60 00 00 */ li r3, 0
/* 802A5648 48 00 00 68 */ b lbl_802A56B0
lbl_802A564C:
/* 802A564C 93 BE 00 14 */ stw r29, 0x14(r30)
/* 802A5650 93 9E 00 18 */ stw r28, 0x18(r30)
/* 802A5654 80 1B 00 00 */ lwz r0, 0(r27)
/* 802A5658 90 1E 00 10 */ stw r0, 0x10(r30)
/* 802A565C 48 09 80 99 */ bl OSDisableInterrupts
/* 802A5660 90 61 00 08 */ stw r3, 8(r1)
/* 802A5664 38 7A 00 38 */ addi r3, r26, 0x38
/* 802A5668 7F C4 F3 78 */ mr r4, r30
/* 802A566C 48 00 15 21 */ bl appendDynamicSeqDataBlock__23JAUDynamicSeqDataBlocksFP15JAUSeqDataBlock
/* 802A5670 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802A5674 41 82 00 28 */ beq lbl_802A569C
/* 802A5678 38 7A 00 60 */ addi r3, r26, 0x60
/* 802A567C 7F E4 FB 78 */ mr r4, r31
/* 802A5680 48 03 68 CD */ bl append__10JSUPtrListFP10JSUPtrLink
/* 802A5684 80 61 00 08 */ lwz r3, 8(r1)
/* 802A5688 48 09 80 95 */ bl OSRestoreInterrupts
/* 802A568C 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A5690 48 02 8D A9 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A5694 7F A3 EB 78 */ mr r3, r29
/* 802A5698 48 00 00 18 */ b lbl_802A56B0
lbl_802A569C:
/* 802A569C 80 61 00 08 */ lwz r3, 8(r1)
/* 802A56A0 48 09 80 7D */ bl OSRestoreInterrupts
/* 802A56A4 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802A56A8 48 02 8D 91 */ bl becomeCurrentHeap__7JKRHeapFv
/* 802A56AC 38 60 00 00 */ li r3, 0
lbl_802A56B0:
/* 802A56B0 39 61 00 30 */ addi r11, r1, 0x30
/* 802A56B4 48 0B CB 69 */ bl _restgpr_26
/* 802A56B8 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802A56BC 7C 08 03 A6 */ mtlr r0
/* 802A56C0 38 21 00 30 */ addi r1, r1, 0x30
/* 802A56C4 4E 80 00 20 */ blr

View File

@ -1,29 +0,0 @@
lbl_802A56C8:
/* 802A56C8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A56CC 7C 08 02 A6 */ mflr r0
/* 802A56D0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A56D4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802A56D8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802A56DC 7C BE 2B 78 */ mr r30, r5
/* 802A56E0 7C DF 33 78 */ mr r31, r6
/* 802A56E4 80 04 00 00 */ lwz r0, 0(r4)
/* 802A56E8 90 01 00 08 */ stw r0, 8(r1)
/* 802A56EC 38 81 00 08 */ addi r4, r1, 8
/* 802A56F0 7F E5 FB 78 */ mr r5, r31
/* 802A56F4 4B FF FE A5 */ bl newStaticSeqDataBlock___10JAUSectionF10JAISoundIDUl
/* 802A56F8 28 03 00 00 */ cmplwi r3, 0
/* 802A56FC 41 82 00 18 */ beq lbl_802A5714
/* 802A5700 7F C4 F3 78 */ mr r4, r30
/* 802A5704 7F E5 FB 78 */ mr r5, r31
/* 802A5708 4B D5 DE 39 */ bl memcpy
/* 802A570C 38 60 00 01 */ li r3, 1
/* 802A5710 48 00 00 08 */ b lbl_802A5718
lbl_802A5714:
/* 802A5714 38 60 00 00 */ li r3, 0
lbl_802A5718:
/* 802A5718 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802A571C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802A5720 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A5724 7C 08 03 A6 */ mtlr r0
/* 802A5728 38 21 00 20 */ addi r1, r1, 0x20
/* 802A572C 4E 80 00 20 */ blr

View File

@ -1,12 +0,0 @@
lbl_802A5EF8:
/* 802A5EF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A5EFC 7C 08 02 A6 */ mflr r0
/* 802A5F00 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5F04 7C 64 1B 78 */ mr r4, r3
/* 802A5F08 38 64 04 FC */ addi r3, r4, 0x4fc
/* 802A5F0C 80 84 04 F8 */ lwz r4, 0x4f8(r4)
/* 802A5F10 48 00 0E 39 */ bl releaseIdleDynamicSeqDataBlock__23JAUDynamicSeqDataBlocksFP14JAISeqDataUser
/* 802A5F14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5F18 7C 08 03 A6 */ mtlr r0
/* 802A5F1C 38 21 00 10 */ addi r1, r1, 0x10
/* 802A5F20 4E 80 00 20 */ blr

View File

@ -1,27 +0,0 @@
lbl_802A5E60:
/* 802A5E60 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A5E64 7C 08 02 A6 */ mflr r0
/* 802A5E68 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A5E6C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802A5E70 93 C1 00 08 */ stw r30, 8(r1)
/* 802A5E74 7C 7F 1B 78 */ mr r31, r3
/* 802A5E78 7C 9E 23 78 */ mr r30, r4
/* 802A5E7C 38 7F 04 FC */ addi r3, r31, 0x4fc
/* 802A5E80 48 00 0C 21 */ bl setSeqDataArchive__23JAUDynamicSeqDataBlocksFP10JKRArchive
/* 802A5E84 83 FF 00 E8 */ lwz r31, 0xe8(r31)
/* 802A5E88 48 00 00 18 */ b lbl_802A5EA0
lbl_802A5E8C:
/* 802A5E8C 80 7F 00 00 */ lwz r3, 0(r31)
/* 802A5E90 38 63 00 38 */ addi r3, r3, 0x38
/* 802A5E94 7F C4 F3 78 */ mr r4, r30
/* 802A5E98 48 00 0C 09 */ bl setSeqDataArchive__23JAUDynamicSeqDataBlocksFP10JKRArchive
/* 802A5E9C 83 FF 00 0C */ lwz r31, 0xc(r31)
lbl_802A5EA0:
/* 802A5EA0 28 1F 00 00 */ cmplwi r31, 0
/* 802A5EA4 40 82 FF E8 */ bne lbl_802A5E8C
/* 802A5EA8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802A5EAC 83 C1 00 08 */ lwz r30, 8(r1)
/* 802A5EB0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A5EB4 7C 08 03 A6 */ mtlr r0
/* 802A5EB8 38 21 00 10 */ addi r1, r1, 0x10
/* 802A5EBC 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_802A60A0:
/* 802A60A0 90 83 04 F8 */ stw r4, 0x4f8(r3)
/* 802A60A4 38 60 00 01 */ li r3, 1
/* 802A60A8 4E 80 00 20 */ blr

View File

@ -1,5 +0,0 @@
lbl_802C589C:
/* 802C589C 38 00 00 00 */ li r0, 0
/* 802C58A0 90 03 00 04 */ stw r0, 4(r3)
/* 802C58A4 90 83 00 00 */ stw r4, 0(r3)
/* 802C58A8 4E 80 00 20 */ blr

View File

@ -1,23 +0,0 @@
lbl_802C5D1C:
/* 802C5D1C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C5D20 7C 08 02 A6 */ mflr r0
/* 802C5D24 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C5D28 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C5D2C 93 C1 00 08 */ stw r30, 8(r1)
/* 802C5D30 7C 7E 1B 79 */ or. r30, r3, r3
/* 802C5D34 7C 9F 23 78 */ mr r31, r4
/* 802C5D38 41 82 00 1C */ beq lbl_802C5D54
/* 802C5D3C 38 80 00 00 */ li r4, 0
/* 802C5D40 4B FF FB 6D */ bl __dt__11Z2EnvSeBaseFv
/* 802C5D44 7F E0 07 35 */ extsh. r0, r31
/* 802C5D48 40 81 00 0C */ ble lbl_802C5D54
/* 802C5D4C 7F C3 F3 78 */ mr r3, r30
/* 802C5D50 48 00 8F ED */ bl __dl__FPv
lbl_802C5D54:
/* 802C5D54 7F C3 F3 78 */ mr r3, r30
/* 802C5D58 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C5D5C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802C5D60 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C5D64 7C 08 03 A6 */ mtlr r0
/* 802C5D68 38 21 00 10 */ addi r1, r1, 0x10
/* 802C5D6C 4E 80 00 20 */ blr

View File

@ -1,95 +0,0 @@
lbl_802C6540:
/* 802C6540 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C6544 7C 08 02 A6 */ mflr r0
/* 802C6548 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C654C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C6550 93 C1 00 08 */ stw r30, 8(r1)
/* 802C6554 7C 7E 1B 79 */ or. r30, r3, r3
/* 802C6558 7C 9F 23 78 */ mr r31, r4
/* 802C655C 41 82 01 38 */ beq lbl_802C6694
/* 802C6560 38 7E 02 DC */ addi r3, r30, 0x2dc
/* 802C6564 38 80 FF FF */ li r4, -1
/* 802C6568 4B FF F3 45 */ bl __dt__11Z2EnvSeBaseFv
/* 802C656C 38 7E 02 C0 */ addi r3, r30, 0x2c0
/* 802C6570 38 80 FF FF */ li r4, -1
/* 802C6574 4B FE 85 C1 */ bl __dt__12Z2MultiSeMgrFv
/* 802C6578 38 7E 02 A8 */ addi r3, r30, 0x2a8
/* 802C657C 38 80 FF FF */ li r4, -1
/* 802C6580 4B FF F3 2D */ bl __dt__11Z2EnvSeBaseFv
/* 802C6584 38 7E 02 8C */ addi r3, r30, 0x28c
/* 802C6588 38 80 FF FF */ li r4, -1
/* 802C658C 4B FE 85 A9 */ bl __dt__12Z2MultiSeMgrFv
/* 802C6590 38 7E 02 74 */ addi r3, r30, 0x274
/* 802C6594 38 80 FF FF */ li r4, -1
/* 802C6598 4B FF F3 15 */ bl __dt__11Z2EnvSeBaseFv
/* 802C659C 38 7E 02 58 */ addi r3, r30, 0x258
/* 802C65A0 38 80 FF FF */ li r4, -1
/* 802C65A4 4B FE 85 91 */ bl __dt__12Z2MultiSeMgrFv
/* 802C65A8 38 7E 02 40 */ addi r3, r30, 0x240
/* 802C65AC 38 80 FF FF */ li r4, -1
/* 802C65B0 4B FF F2 FD */ bl __dt__11Z2EnvSeBaseFv
/* 802C65B4 38 7E 02 24 */ addi r3, r30, 0x224
/* 802C65B8 38 80 FF FF */ li r4, -1
/* 802C65BC 4B FE 85 79 */ bl __dt__12Z2MultiSeMgrFv
/* 802C65C0 38 7E 02 0C */ addi r3, r30, 0x20c
/* 802C65C4 38 80 FF FF */ li r4, -1
/* 802C65C8 4B FF F2 E5 */ bl __dt__11Z2EnvSeBaseFv
/* 802C65CC 38 7E 01 F0 */ addi r3, r30, 0x1f0
/* 802C65D0 38 80 FF FF */ li r4, -1
/* 802C65D4 4B FE 85 61 */ bl __dt__12Z2MultiSeMgrFv
/* 802C65D8 38 7E 01 D8 */ addi r3, r30, 0x1d8
/* 802C65DC 38 80 FF FF */ li r4, -1
/* 802C65E0 4B FF F2 CD */ bl __dt__11Z2EnvSeBaseFv
/* 802C65E4 38 7E 01 BC */ addi r3, r30, 0x1bc
/* 802C65E8 38 80 FF FF */ li r4, -1
/* 802C65EC 4B FE 85 49 */ bl __dt__12Z2MultiSeMgrFv
/* 802C65F0 38 7E 01 80 */ addi r3, r30, 0x180
/* 802C65F4 38 80 FF FF */ li r4, -1
/* 802C65F8 4B FF F2 B5 */ bl __dt__11Z2EnvSeBaseFv
/* 802C65FC 38 7E 01 64 */ addi r3, r30, 0x164
/* 802C6600 38 80 FF FF */ li r4, -1
/* 802C6604 4B FE 85 31 */ bl __dt__12Z2MultiSeMgrFv
/* 802C6608 38 7E 01 44 */ addi r3, r30, 0x144
/* 802C660C 38 80 FF FF */ li r4, -1
/* 802C6610 4B FF F7 0D */ bl __dt__10Z2EnvSeDirFv
/* 802C6614 38 7E 01 18 */ addi r3, r30, 0x118
/* 802C6618 38 80 FF FF */ li r4, -1
/* 802C661C 4B FF F2 91 */ bl __dt__11Z2EnvSeBaseFv
/* 802C6620 38 7E 01 10 */ addi r3, r30, 0x110
/* 802C6624 38 80 FF FF */ li r4, -1
/* 802C6628 4B FF F2 85 */ bl __dt__11Z2EnvSeBaseFv
/* 802C662C 38 7E 00 88 */ addi r3, r30, 0x88
/* 802C6630 38 80 FF FF */ li r4, -1
/* 802C6634 4B FF F2 79 */ bl __dt__11Z2EnvSeBaseFv
/* 802C6638 38 7E 00 80 */ addi r3, r30, 0x80
/* 802C663C 38 80 FF FF */ li r4, -1
/* 802C6640 4B FF F2 6D */ bl __dt__11Z2EnvSeBaseFv
/* 802C6644 38 7E 00 64 */ addi r3, r30, 0x64
/* 802C6648 38 80 FF FF */ li r4, -1
/* 802C664C 4B FE 84 E9 */ bl __dt__12Z2MultiSeMgrFv
/* 802C6650 38 7E 00 1C */ addi r3, r30, 0x1c
/* 802C6654 38 80 FF FF */ li r4, -1
/* 802C6658 4B FF F8 D1 */ bl __dt__14Z2EnvSeAutoPanFv
/* 802C665C 7F C3 F3 78 */ mr r3, r30
/* 802C6660 38 80 FF FF */ li r4, -1
/* 802C6664 4B FF F8 C5 */ bl __dt__14Z2EnvSeAutoPanFv
/* 802C6668 28 1E 00 00 */ cmplwi r30, 0
/* 802C666C 41 82 00 18 */ beq lbl_802C6684
/* 802C6670 80 0D 85 BC */ lwz r0, __OSReport_disable-0x5C(r13)
/* 802C6674 7C 00 F0 40 */ cmplw r0, r30
/* 802C6678 40 82 00 0C */ bne lbl_802C6684
/* 802C667C 38 00 00 00 */ li r0, 0
/* 802C6680 90 0D 85 BC */ stw r0, __OSReport_disable-0x5C(r13)
lbl_802C6684:
/* 802C6684 7F E0 07 35 */ extsh. r0, r31
/* 802C6688 40 81 00 0C */ ble lbl_802C6694
/* 802C668C 7F C3 F3 78 */ mr r3, r30
/* 802C6690 48 00 86 AD */ bl __dl__FPv
lbl_802C6694:
/* 802C6694 7F C3 F3 78 */ mr r3, r30
/* 802C6698 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C669C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802C66A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C66A4 7C 08 03 A6 */ mtlr r0
/* 802C66A8 38 21 00 10 */ addi r1, r1, 0x10
/* 802C66AC 4E 80 00 20 */ blr

View File

@ -1,26 +0,0 @@
lbl_802C58AC:
/* 802C58AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C58B0 7C 08 02 A6 */ mflr r0
/* 802C58B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C58B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C58BC 93 C1 00 08 */ stw r30, 8(r1)
/* 802C58C0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802C58C4 7C 9F 23 78 */ mr r31, r4
/* 802C58C8 41 82 00 24 */ beq lbl_802C58EC
/* 802C58CC 34 1E 00 04 */ addic. r0, r30, 4
/* 802C58D0 41 82 00 0C */ beq lbl_802C58DC
/* 802C58D4 38 7E 00 04 */ addi r3, r30, 4
/* 802C58D8 4B FD C8 AD */ bl releaseSound__14JAISoundHandleFv
lbl_802C58DC:
/* 802C58DC 7F E0 07 35 */ extsh. r0, r31
/* 802C58E0 40 81 00 0C */ ble lbl_802C58EC
/* 802C58E4 7F C3 F3 78 */ mr r3, r30
/* 802C58E8 48 00 94 55 */ bl __dl__FPv
lbl_802C58EC:
/* 802C58EC 7F C3 F3 78 */ mr r3, r30
/* 802C58F0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C58F4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802C58F8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C58FC 7C 08 03 A6 */ mtlr r0
/* 802C5900 38 21 00 10 */ addi r1, r1, 0x10
/* 802C5904 4E 80 00 20 */ blr

View File

@ -1,23 +0,0 @@
lbl_802C5F28:
/* 802C5F28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802C5F2C 7C 08 02 A6 */ mflr r0
/* 802C5F30 90 01 00 14 */ stw r0, 0x14(r1)
/* 802C5F34 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802C5F38 93 C1 00 08 */ stw r30, 8(r1)
/* 802C5F3C 7C 7E 1B 79 */ or. r30, r3, r3
/* 802C5F40 7C 9F 23 78 */ mr r31, r4
/* 802C5F44 41 82 00 1C */ beq lbl_802C5F60
/* 802C5F48 38 80 00 00 */ li r4, 0
/* 802C5F4C 4B FF F9 61 */ bl __dt__11Z2EnvSeBaseFv
/* 802C5F50 7F E0 07 35 */ extsh. r0, r31
/* 802C5F54 40 81 00 0C */ ble lbl_802C5F60
/* 802C5F58 7F C3 F3 78 */ mr r3, r30
/* 802C5F5C 48 00 8D E1 */ bl __dl__FPv
lbl_802C5F60:
/* 802C5F60 7F C3 F3 78 */ mr r3, r30
/* 802C5F64 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802C5F68 83 C1 00 08 */ lwz r30, 8(r1)
/* 802C5F6C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802C5F70 7C 08 03 A6 */ mtlr r0
/* 802C5F74 38 21 00 10 */ addi r1, r1, 0x10
/* 802C5F78 4E 80 00 20 */ blr

View File

@ -1,3 +0,0 @@
lbl_802BB0D8:
/* 802BB0D8 88 64 00 01 */ lbz r3, 1(r4)
/* 802BB0DC 4E 80 00 20 */ blr

View File

@ -1,12 +0,0 @@
lbl_802BB8B4:
/* 802BB8B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BB8B8 7C 08 02 A6 */ mflr r0
/* 802BB8BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BB8C0 80 04 00 00 */ lwz r0, 0(r4)
/* 802BB8C4 90 01 00 08 */ stw r0, 8(r1)
/* 802BB8C8 38 81 00 08 */ addi r4, r1, 8
/* 802BB8CC 48 00 02 7D */ bl getSoundInfo___11Z2SoundInfoCF10JAISoundIDP8JAISound
/* 802BB8D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BB8D4 7C 08 03 A6 */ mtlr r0
/* 802BB8D8 38 21 00 10 */ addi r1, r1, 0x10
/* 802BB8DC 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_802BB090:
/* 802BB090 88 04 00 00 */ lbz r0, 0(r4)
/* 802BB094 2C 00 00 01 */ cmpwi r0, 1
/* 802BB098 41 82 00 28 */ beq lbl_802BB0C0
/* 802BB09C 40 80 00 10 */ bge lbl_802BB0AC
/* 802BB0A0 2C 00 00 00 */ cmpwi r0, 0
/* 802BB0A4 40 80 00 14 */ bge lbl_802BB0B8
/* 802BB0A8 48 00 00 28 */ b lbl_802BB0D0
lbl_802BB0AC:
/* 802BB0AC 2C 00 00 03 */ cmpwi r0, 3
/* 802BB0B0 40 80 00 20 */ bge lbl_802BB0D0
/* 802BB0B4 48 00 00 14 */ b lbl_802BB0C8
lbl_802BB0B8:
/* 802BB0B8 38 60 00 00 */ li r3, 0
/* 802BB0BC 4E 80 00 20 */ blr
lbl_802BB0C0:
/* 802BB0C0 38 60 00 01 */ li r3, 1
/* 802BB0C4 4E 80 00 20 */ blr
lbl_802BB0C8:
/* 802BB0C8 38 60 00 02 */ li r3, 2
/* 802BB0CC 4E 80 00 20 */ blr
lbl_802BB0D0:
/* 802BB0D0 38 60 FF FF */ li r3, -1
/* 802BB0D4 4E 80 00 20 */ blr

View File

@ -1,19 +0,0 @@
lbl_802BBA88:
/* 802BBA88 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BBA8C 7C 08 02 A6 */ mflr r0
/* 802BBA90 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BBA94 80 04 00 00 */ lwz r0, 0(r4)
/* 802BBA98 90 01 00 08 */ stw r0, 8(r1)
/* 802BBA9C 38 81 00 08 */ addi r4, r1, 8
/* 802BBAA0 4B FF FF 71 */ bl getStreamFilePath__11Z2SoundInfoF10JAISoundID
/* 802BBAA4 28 03 00 00 */ cmplwi r3, 0
/* 802BBAA8 40 82 00 0C */ bne lbl_802BBAB4
/* 802BBAAC 38 60 FF FF */ li r3, -1
/* 802BBAB0 48 00 00 08 */ b lbl_802BBAB8
lbl_802BBAB4:
/* 802BBAB4 48 08 CA 75 */ bl DVDConvertPathToEntrynum
lbl_802BBAB8:
/* 802BBAB8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BBABC 7C 08 03 A6 */ mtlr r0
/* 802BBAC0 38 21 00 10 */ addi r1, r1, 0x10
/* 802BBAC4 4E 80 00 20 */ blr

View File

@ -89,6 +89,7 @@ public:
return mAudience;
}
JAISeqDataMgr* getSeqDataMgr() { return mSeqDataMgr; }
JAISoundParamsMove* getParams() { return &mParams; }
private:
/* 0x008 */ JAIAudience* mAudience;

View File

@ -4,6 +4,7 @@
#include "JSystem/JAudio2/JAISeqDataMgr.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JUtility/JUTAssert.h"
struct JAIAudience;
class JAISeq;
@ -25,7 +26,23 @@ public:
/* 802A1804 */ virtual bool isUsingSeqData(JAISeqDataRegion const&);
/* 802A1870 */ virtual int releaseSeqData(JAISeqDataRegion const&);
void setAudience(JAIAudience* param_0) { mAudience = param_0; }
JAISeqDataMgr* getSeqDataMgr() { return seqDataMgr_; }
void setSeqDataMgr(JAISeqDataMgr* param_0) {
JUT_ASSERT("JAISeqMgr.h", 0x7c, !isActive());
resetSeqDataMgr();
seqDataMgr_ = param_0;
seqDataMgr_->setSeqDataUser(this);
}
void resetSeqDataMgr() {
JUT_ASSERT("JAISeqMgr.h", 0x83, !isActive());
if (seqDataMgr_) {
seqDataMgr_->setSeqDataUser(NULL);
seqDataMgr_ = NULL;
}
}
JAISoundParamsMove* getParams() { return &mMove; }
bool isActive() { return mSeqList.getNumLinks() != 0; }
private:
/* 0x04 */ JAISoundActivity mActivity;

View File

@ -17,6 +17,7 @@ public:
JAISoundID() {}
bool isAnonymous() { return mId.mFullId == 0xffffffff; }
void setAnonymous() { mId.mFullId = -1; }
union {
u32 mFullId;

View File

@ -10,7 +10,7 @@ class JAISoundID;
class JAISoundHandle {
public:
JAISoundHandle() {sound_ = NULL;};
~JAISoundHandle() {}
~JAISoundHandle() { releaseSound(); }
bool isSoundAttached() const { return sound_ != NULL; }

View File

@ -4,12 +4,12 @@
#include "JSystem/JAudio2/JAISound.h"
struct JAIStreamDataMgr {
virtual void getStreamFileEntry(JAISoundID) = 0;
virtual s32 getStreamFileEntry(JAISoundID) = 0;
virtual ~JAIStreamDataMgr();
};
struct JAIStreamAramMgr {
virtual void newStreamAram(u32*) = 0;
virtual void* newStreamAram(u32*) = 0;
virtual void deleteStreamAram(u32) = 0;
virtual ~JAIStreamAramMgr();
};

View File

@ -4,7 +4,10 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JUtility/JUTAssert.h"
class JAIStreamAramMgr;
class JAIStreamDataMgr;
class JAIStreamMgr;
class JAIStream {
@ -29,13 +32,23 @@ public:
/* 802A4174 */ void newStream_();
/* 802B9978 */ void isActive() const;
JAISoundParamsMove* getParams() { return &mParams; }
void setStreamDataMgr(JAIStreamDataMgr* param_0) {
JUT_ASSERT("JAIStreamMgr.h", 0x8b, !isActive());
mStreamDataMgr = param_0;
}
void setStreamAramMgr(JAIStreamAramMgr* param_0) {
JUT_ASSERT("JAIStreamMgr.h", 0x9d, !isActive());
mStreamAramMgr = param_0;
}
private:
/* 0x00 */ JAISoundActivity mActivity;
/* 0x04 */ JAISoundParamsMove mParams;
/* 0x54 */ int field_0x54;
/* 0x58 */ JSUList<JAIStream> mStreamList;
/* 0x64 */ int field_0x64;
/* 0x68 */ int field_0x68;
/* 0x64 */ JAIStreamDataMgr * mStreamDataMgr;
/* 0x68 */ JAIStreamAramMgr* mStreamAramMgr;
/* 0x6C */ int field_0x6c;
}; // Size: 0x70

View File

@ -89,9 +89,11 @@ public:
/* 0x1C4 */ float field_0x1c4[6];
/* 0x1DC */ short field_0x1dc[6];
u32 getBlockSize() { return sBlockSize; }
static u8 sLoadThread[4];
static u8 sReadBuffer[4];
static u8 sBlockSize[4];
static u32 sBlockSize;
static u8 sChannelMax[4];
};

View File

@ -1,6 +1,36 @@
#ifndef JASBNKPARSER_H
#define JASBNKPARSER_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JASOscillator.h"
class JASBank;
class JASBasicBank;
class JKRHeap;
namespace JASBNKParser {
namespace Ver1 {
/* 80299600 */ void findChunk(void const*, u32);
/* 8029963C */ void createBasicBank(void const*, JKRHeap*);
};
namespace Ver0 {
struct THeader {};
struct TOsc {};
/* 80299A3C */ void createBasicBank(void const*, JKRHeap*);
/* 80299E68 */ void findOscPtr(JASBasicBank*, JASBNKParser::Ver0::THeader const*,
JASBNKParser::Ver0::TOsc const*);
/* 80299F8C */ void getOscTableEndPtr(JASOscillator::Point const*);
};
/* 80299538 */ JASBank* createBank(void const*, JKRHeap*);
/* 80299558 */ JASBasicBank* createBasicBank(void const*, JKRHeap*);
inline u32 getBankNumber(const void* param_0) { return ((u32*)param_0)[2]; }
extern u8 sUsedHeapSize[4];
};
#endif /* JASBNKPARSER_H */

View File

@ -0,0 +1,13 @@
#ifndef JASBANKLIST_H
#define JASBANKLIST_H
#include "dolphin/types.h"
class JASBank;
class JASBankList {
public:
virtual JASBank* getBank(u32 param_0) const = 0;
};
#endif /* JASBANKLIST_H */

View File

@ -0,0 +1,22 @@
#ifndef JASBANKTABLE_H
#define JASBANKTABLE_H
#include "JSystem/JAudio2/JASBankList.h"
#include "JSystem/JAudio2/JASGadget.h"
template<size_t N>
class JASBankTable : public JASBankList {
public:
JASBank* getBank(u32 param_0) { return mArray.get(param_0); }
virtual JASBank* getBank(u32 param_0) const { return mArray.get(param_0); }
void registBank(u32 param_0, JASBank* param_1) { mArray.set(param_0, param_1); }
private:
JASPtrArray<JASBank, N> mArray;
};
class JASDefaultBankTable : public JASBankTable<256>, public JASGlobalInstance<JASDefaultBankTable> {
public:
};
#endif /* JASBANKLIST_H */

View File

@ -2,6 +2,7 @@
#define JASGADGET_H
#include "JSystem/JUtility/JUTAssert.h"
#include "MSL_C/string.h"
template<class T>
class JASGlobalInstance {
@ -61,7 +62,7 @@ private:
template<class T, size_t N>
class JASPtrArray : public JASPtrTable<T> {
public:
JASPtrArray() : JASPtrTable(mArray, N) {}
JASPtrArray() : JASPtrTable<T>(mArray, N) {}
private:
/* 0x08 */ T* mArray[N];

View File

@ -11,7 +11,7 @@ class JKRSolidHeap;
class JASHeap {
public:
/* 80290140 */ JASHeap(JASDisposer*);
/* 80290140 */ JASHeap(JASDisposer* param_0 = NULL);
/* 802901AC */ void initRootHeap(void*, u32);
/* 8029021C */ bool alloc(JASHeap*, u32);
/* 802903F4 */ bool allocTail(JASHeap*, u32);

View File

@ -86,6 +86,8 @@ public:
/* 802956B0 */ s32 parseCommand(JASTrack*, u8, u16);
/* 80295864 */ s32 parseRegCommand(JASTrack*, int);
static void registerSeqCallback(u16 (*param_0)(JASTrack*, u16)) { sCallBackFunc = param_0; }
static CmdInfo sCmdInfo[96];
static CmdInfo sExtCmdInfo[255];
static u16 (*sCallBackFunc)(JASTrack*, u16);

View File

@ -0,0 +1,32 @@
#ifndef JAUAUDIBLEPARAM_H
#define JAUAUDIBLEPARAM_H
#include "dolphin/types.h"
struct JAUAudibleParam {
f32 getDopplerPower() const {
return (u32)((*(u8*)&field_0x0.raw >> 4) & 0xf) * (1.0f / 15.0f);
}
union {
struct {
u16 f0;
u16 f1;
} half;
struct {
u8 b0_0 : 1;
u8 b0_1 : 1;
u8 b0_2 : 1;
u8 b0_3 : 1;
u8 b0_4 : 1;
u8 b0_5 : 1;
u8 b0_6 : 1;
u8 b0_7 : 1;
u8 b1;
u8 b2;
u8 b3;
} bytes;
u32 raw;
} field_0x0;
};
#endif /* JAUAUDIBLEPARAM_H */

View File

@ -2,13 +2,28 @@
#define JAUBANKTABLE_H
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JAudio2/JASBankList.h"
#include "JSystem/JSupport/JSUList.h"
struct JASBank;
struct JAUBankTable {
/* 802A4AA0 */ /*virtual*/ JASBank* getBank(u32) const;
class JASBank;
class JAUBankTable /* : public JASBankList */ {
public:
JAUBankTable(u32 param_0, JASBank** param_1, u32 param_2) : mBankPtrTable(param_1, param_2) {
field_0xc = param_0;
}
/* 802A4AA0 */ JASBank* getBank(u32) const;
JASBank* getBank(u32 param_0) { return mBankPtrTable.get(param_0); }
void registBank(u32 param_0, JASBank* param_1) { mBankPtrTable.set(param_0, param_1); }
/* 0x0 */ void* vtable;
/* 0x4 */ JASPtrTable<JASBank> mBankPtrTable;
/* 0xC */ u32 field_0xc;
};
class JAUBankTableLink : public JSULink<JAUBankTable>, public JAUBankTable {
public:
JAUBankTableLink(u32 param_0, JASBank** param_1, u32 param_2) : JSULink<JAUBankTable>(this), JAUBankTable(param_0, param_1, param_2) {}
};
struct JAUBankTableDictionary : JSUList<JAUBankTable> {

View File

@ -9,15 +9,19 @@
#include "MSL_C/bitset.h"
class JAISeqData;
class JAISeqDataMgr;
class JAISeqDataUser;
class JAIStreamDataMgr;
class JASVoiceBank;
class JAUBankTableLink;
class JAUDisposer_;
class JAUSectionHeap;
class JAUSeqDataMgr_SeqCollection;
class JAUSoundTable;
class JAUSoundNameTable;
class JKRArchive;
class JKRSolidHeap;
class JAUSection /* : public JKRDisposer, JSULink<JAUSection> */ {
class JAUSection /* : public JKRDisposer, protected JSULink<JAUSection> */ {
public:
struct TSectionData {
/* 802A4EE8 */ TSectionData();
@ -26,12 +30,12 @@ public:
/* 0x00 */ JAUDynamicSeqDataBlocks field_0x00;
/* 0x28 */ JSUList<JAUSeqDataBlock> field_0x28;
/* 0x34 */ std::bitset<255> field_0x34;
/* 0x54 */ std::bitset<255> field_0x54;
/* 0x34 */ std::bitset<255> registeredWaveBankTables;
/* 0x54 */ std::bitset<255> registeredBankTables;
/* 0x74 */ JAUBankTableDictionary field_0x74;
/* 0x80 */ int field_0x80;
/* 0x84 */ int field_0x84;
/* 0x88 */ int field_0x88;
/* 0x80 */ JAISeqDataMgr* field_0x80;
/* 0x84 */ const void* mBstDst;
/* 0x88 */ const void* mBstnDst;
/* 0x8C */ JSUList<JAUDisposer_> field_0x8c;
/* 0x98 */ s32 field_0x98;
/* 0x9C */ int field_0x9c;
@ -40,34 +44,35 @@ public:
/* 802A5060 */ JAUSection(JAUSectionHeap*, u32, s32);
/* 802A50F8 */ void finishBuild();
/* 802A5160 */ void dispose();
/* 802A51E4 */ void newSoundTable(void const*, u32, bool);
/* 802A52A0 */ void newSoundNameTable(void const*, u32, bool);
/* 802A535C */ void newStreamFileTable(void const*, bool);
/* 802A5500 */ void newSeSeqCollection(void const*, u32);
/* 802A5598 */ void newStaticSeqDataBlock_(JAISoundID, u32);
/* 802A56C8 */ void newStaticSeqData(JAISoundID, void const*, u32);
/* 802A5730 */ void newStaticSeqData(JAISoundID);
/* 802A57F0 */ void newCopy(void const*, u32, s32);
/* 802A5854 */ void newWaveBank(u32, void const*);
/* 802A5948 */ void loadWaveArc(u32, u32);
/* 802A5A50 */ void newBank(void const*, u32);
/* 802A5B84 */ void newVoiceBank(u32, u32);
/* 802A5CAC */ void beginNewBankTable(u32, u32);
/* 802A5D9C */ void endNewBankTable();
/* 802A6468 */ ~JAUSection();
/* 802A5160 */ /* virtual */ void dispose();
/* 802A51E4 */ JAUSoundTable* newSoundTable(void const*, u32, bool);
/* 802A52A0 */ JAUSoundNameTable* newSoundNameTable(void const*, u32, bool);
/* 802A535C */ JAIStreamDataMgr* newStreamFileTable(void const*, bool);
/* 802A5500 */ JAISeqDataMgr* newSeSeqCollection(void const*, u32);
/* 802A5598 */ u8* newStaticSeqDataBlock_(JAISoundID, u32);
/* 802A56C8 */ bool newStaticSeqData(JAISoundID, void const*, u32);
/* 802A5730 */ bool newStaticSeqData(JAISoundID);
/* 802A57F0 */ void* newCopy(void const*, u32, s32);
/* 802A5854 */ JASWaveBank* newWaveBank(u32, void const*);
/* 802A5948 */ bool loadWaveArc(u32, u32);
/* 802A5A50 */ JASBank* newBank(void const*, u32);
/* 802A5B84 */ JASVoiceBank* newVoiceBank(u32, u32);
/* 802A5CAC */ bool beginNewBankTable(u32, u32);
/* 802A5D9C */ JAUBankTable* endNewBankTable();
/* 802A6468 */ /* virtual */ ~JAUSection();
bool isBuilding() { return field_0x2c; }
//bool isOpen() { return this == sectionHeap_->getOpenSection(); }
bool isOpen();
JAUSectionHeap* asSectionHeap() { return (JAUSection*)sectionHeap_ == this ? sectionHeap_ : NULL; }
JKRHeap* getHeap_();
/* 0x00 */ JKRDisposer base1;
/* 0x18 */ JSULink<JAUSection> base2;
/* 0x28 */ u32 field_0x28;
/* 0x2C */ bool field_0x2c;
/* 0x30 */ JAUSectionHeap* sectionHeap_;
/* 0x34 */ int field_0x34;
/* 0x38 */ TSectionData mSectionData;
/* 0x34 */ JAUBankTableLink* buildingBankTable_;
/* 0x38 */ TSectionData data_;
};
class JAUSectionHeap /* : public JAUSection, JASGlobalInstance<JAUSectionHeap>, JAISeqDataMgr */ {
@ -75,34 +80,39 @@ public:
struct TSectionHeapData {
/* 802A5DF4 */ TSectionHeapData();
/* 0x000 */ JAUWaveBankTable field_0x000;
/* 0x000 */ JAUWaveBankTable waveBankTable;
/* 0x404 */ JAISeqDataUser* seqDataUser;
/* 0x408 */ JAUDynamicSeqDataBlocks field_0x408;
/* 0x430 */ JAUSeqDataMgr_SeqCollection* field_0x430;
/* 0x434 */ JAIStreamDataMgr* field_0x434;
/* 0x438 */ int field_0x438;
/* 0x43C */ int field_0x43c;
/* 0x430 */ JAISeqDataMgr* seSeqDataMgr_;
/* 0x434 */ JAIStreamDataMgr* streamDataMgr_;
/* 0x438 */ JAUSoundTable* soundTable;
/* 0x43C */ JAUSoundNameTable* soundNameTable;
};
/* 802A5E60 */ void setSeqDataArchive(JKRArchive*);
/* 802A5EC0 */ void loadDynamicSeq(JAISoundID, bool);
/* 802A5EC0 */ bool loadDynamicSeq(JAISoundID, bool);
/* 802A5EF8 */ void releaseIdleDynamicSeqDataBlock();
/* 802A5FE0 */ JAUSectionHeap(JKRSolidHeap*, bool, s32);
/* 802A6094 */ JAUSection* getOpenSection();
/* 802A60A0 */ void setSeqDataUser(JAISeqDataUser*);
/* 802A60AC */ void newDynamicSeqBlock(u32);
/* 802A61D0 */ int getSeqData(JAISoundID, JAISeqData*);
/* 802A60A0 */ bool setSeqDataUser(JAISeqDataUser*);
/* 802A60AC */ bool newDynamicSeqBlock(u32);
/* 802A61D0 */ s32 getSeqData(JAISoundID, JAISeqData*);
/* 802A6270 */ int releaseSeqData();
/* 802A6278 */ ~JAUSectionHeap();
JAUWaveBankTable& getWaveBankTable() { return sectionHeapData_.waveBankTable; }
/* 0x00 */ JAUSection base1;
/* 0xDC */ u8 base2[0xE0 - 0xDC]; // JAISeqDataMgr
/* 0xE0 */ JKRSolidHeap* mHeap;
/* 0xE0 */ JKRHeap* mHeap;
/* 0xE4 */ int field_0xe4;
/* 0xE8 */ JSUList<JAUSection> mSectionList;
/* 0xF4 */ TSectionHeapData field_0xf4;
/* 0xF4 */ TSectionHeapData sectionHeapData_;
};
inline JKRHeap* JAUSection::getHeap_() { return sectionHeap_->mHeap; }
inline bool JAUSection::isOpen() { return this == sectionHeap_->getOpenSection(); }
JAUSectionHeap* JAUNewSectionHeap(bool);
#endif /* JAUSECTIONHEAP_H */

View File

@ -21,7 +21,7 @@ public:
/* 0x0C */ int field_0xc;
};
class JAUSeqDataMgr_SeqCollection : JAISeqDataMgr, JAUSeqCollection {
class JAUSeqDataMgr_SeqCollection : public JAISeqDataMgr, public JAUSeqCollection {
public:
/* 802A677C */ JAUSeqDataMgr_SeqCollection();
/* 802A67D0 */ bool setSeqDataUser(JAISeqDataUser*);

View File

@ -10,6 +10,12 @@ class JKRArchive;
struct JAUSeqDataBlock {
/* 802A68F4 */ JAUSeqDataBlock();
/* 0x00 */ JSULink<JAUSeqDataBlock> field_0x0;
/* 0x10 */ JAISoundID field_0x10;
/* 0x14 */ u8* field_0x14;
/* 0x18 */ u32 field_0x18;
/* 0x1C */ int field_0x1c;
};
class JAUSeqDataBlocks {
@ -27,13 +33,15 @@ class JAUDynamicSeqDataBlocks {
public:
/* 802A6A58 */ JAUDynamicSeqDataBlocks();
/* 802A6AA0 */ void setSeqDataArchive(JKRArchive*);
/* 802A6AA8 */ void getSeqData(JAISoundID, JAISeqDataUser*, JAISeqData*, bool);
/* 802A6B8C */ void appendDynamicSeqDataBlock(JAUSeqDataBlock*);
/* 802A6C18 */ void loadDynamicSeq(JAISoundID, bool, JAISeqDataUser*);
/* 802A6AA8 */ s32 getSeqData(JAISoundID, JAISeqDataUser*, JAISeqData*, bool);
/* 802A6B8C */ bool appendDynamicSeqDataBlock(JAUSeqDataBlock*);
/* 802A6C18 */ bool loadDynamicSeq(JAISoundID, bool, JAISeqDataUser*);
/* 802A6D48 */ void releaseIdleDynamicSeqDataBlock(JAISeqDataUser*);
/* 802A6E00 */ void releaseIdleDynamicSeqDataBlock_(JAISeqDataUser*, u32);
/* 802A6EDC */ void rearrangeLoadingSeqs_();
JKRArchive* getSeqDataArchive() { return seqDataArchive_; }
/* 0x00 */ JAUSeqDataBlocks field_0x0;
/* 0x0C */ JAUSeqDataBlocks field_0xc;
/* 0x18 */ JAUSeqDataBlocks field_0x18;

View File

@ -0,0 +1,14 @@
#ifndef JAUSOUNDINFO_H
#define JAUSOUNDINFO_H
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASGadget.h"
class JAUSoundInfo : public JASGlobalInstance<JAUSoundInfo> {
public:
JAUSoundInfo(bool param_0) : JASGlobalInstance<JAUSoundInfo>(param_0) {}
virtual void getAudibleSw(JAISoundID) const = 0;
virtual u16 getBgmSeqResourceID(JAISoundID) const = 0;
};
#endif /* JAUSOUNDINFO_H */

View File

@ -4,14 +4,31 @@
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASGadget.h"
struct JAUSoundTable : public JASGlobalInstance<JAUSoundTable> {
class JAUSoundTable : public JASGlobalInstance<JAUSoundTable> {
public:
JAUSoundTable(bool param_0) : JASGlobalInstance<JAUSoundTable>(param_0) {
field_0x0 = NULL;
field_0x4 = 0;
}
~JAUSoundTable() {}
/* 802A7114 */ void init(void const*);
/* 802A7160 */ void getTypeID(JAISoundID) const;
/* 802A7160 */ u8 getTypeID(JAISoundID) const;
/* 802A728C */ void getData(JAISoundID) const;
void* field_0x0;
int field_0x4;
};
struct JAUSoundNameTable : public JASGlobalInstance<JAUSoundNameTable> {
JAUSoundNameTable(bool param_0) : JASGlobalInstance<JAUSoundNameTable>(param_0) {
field_0x0 = NULL;
field_0x4 = 0;
}
~JAUSoundNameTable() {}
/* 802A73D4 */ void init(void const*);
void* field_0x0;
int field_0x4;
};
#endif /* JAUSOUNDTABLE_H */

View File

@ -0,0 +1,92 @@
#ifndef JAUSTREAMSTATICARAMMGR_H
#define JAUSTREAMSTATICARAMMGR_H
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
#include "JSystem/JAudio2/JASAramStream.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "MSL_C/bitset.h"
template <size_t A0>
class JAUStreamAramMgrBase_ : public JAIStreamAramMgr {
public:
JAUStreamAramMgrBase_() {
for (int i = 0; i < A0; i++) {
field_0x4.reset(0);
}
}
~JAUStreamAramMgrBase_() { releaseAram_JAUStreamAramMgrBase_(); }
bool isStreamUsingAram() { return field_0x4.any(); }
void releaseAram_JAUStreamAramMgrBase_() {
JUT_ASSERT("JAUStreamAramMgr.h", 0x26, ! isStreamUsingAram());
for (int i = 0; i >= 0; i--) {
if (mHeaps[i].isAllocated()) {
JASHeap* heap = mHeaps[i];
heap.free();
if (!heap) {
JUT_ASSERT("JAUStreamAramMgr.h", 0x2f, 0);
}
}
}
}
protected:
std::bitset<A0> field_0x4;
JASHeap mHeaps[A0];
};
template <size_t MAX_CHUNKS_>
class JAUStreamStaticAramMgr_ : public JAUStreamAramMgrBase_<MAX_CHUNKS_> {
public:
JAUStreamStaticAramMgr_() { field_0x4c = 0; }
virtual void* newStreamAram(u32* param_0) {
for (int i = 0; i < field_0x4c; i++) {
if (this->field_0x4.test(i)) {
continue;
}
this->field_0x4.set(i, true);
param_0 = this->mHeaps[i].getSize();
return this->mHeaps[i].getBase();
}
return 0;
}
virtual void deleteStreamAram(u32 param_0) {
for (int i = 0; i < field_0x4c; i++) {
if (!this->field_0x4.test(i)) {
continue;
}
if (this->mHeaps[i].getBase() == param_0) {
continue;
}
this->field_0x4.reset(i);
return 1;
}
return 0;
}
bool isAramReserved() const { return field_0x4c; }
void reserveAram(JASHeap* heap, int numReserve, u32 param_2) {
JUT_ASSERT("JAUStreamAramMgr.h", 0x48, ! isAramReserved());
JUT_ASSERT("JAUStreamAramMgr.h", 0x49, ! JAUStreamAramMgrBase_ < MAX_CHUNKS_ >::isStreamUsingAram());
if (!heap) {
heap = JASKernel::getAramHeap();
}
if (numReserve < 1) {
numReserve = 1;
}
JUT_ASSERT("JAUStreamAramMgr.h", 0x53, numReserve <= MAX_CHUNKS);
int r27 = param_2 * JASAramStream::getBlockSize();
for (int i = 0; i < numReserve; i++) {
if (!this->mHeaps[i].alloc(heap, r27)) {
break;
}
field_0x4c = i + 1;
}
}
private:
static const size_t MAX_CHUNKS = MAX_CHUNKS_;
int field_0x4c;
};
#endif /* JAUSTREAMSTATICARAMMGR_H */

View File

@ -1,7 +1,7 @@
#ifndef JAUSTREAMFILETABLE_H
#define JAUSTREAMFILETABLE_H
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
struct BinaryStreamFileTable {
/* 0x0 */ char mIdentifier[4];
@ -14,19 +14,15 @@ struct JAUStreamFileTable {
/* 802A742C */ void init(void const*);
/* 802A7478 */ int getNumFiles() const;
/* 802A7484 */ const char* getFilePath(int) const;
bool isValid() { return mData; }
/* 0x0 */ const BinaryStreamFileTable* mData;
};
struct JAIStreamDataMgr {
/* 802A3AD8 */ ~JAIStreamDataMgr();
};
struct JAUStreamDataMgr_StreamFileTable : JAIStreamDataMgr {
/* 802A74AC */ virtual int getStreamFileEntry(JAISoundID);
struct JAUStreamDataMgr_StreamFileTable : public JAIStreamDataMgr, JAUStreamFileTable {
/* 802A74AC */ virtual s32 getStreamFileEntry(JAISoundID);
/* 802A74E8 */ virtual ~JAUStreamDataMgr_StreamFileTable() {}
/* 0x4 */ JAUStreamFileTable mStreamFileTable;
};
#endif /* JAUSTREAMFILETABLE_H */

View File

@ -223,6 +223,10 @@ inline JKRHeap* JKRGetCurrentHeap() {
return JKRHeap::getCurrentHeap();
}
inline JKRHeap* JKRSetCurrentHeap(JKRHeap* heap) {
return heap->becomeCurrentHeap();
}
inline u32 JKRGetMemBlockSize(JKRHeap* heap, void* block) {
return JKRHeap::getSize(block, heap);
}

View File

@ -57,4 +57,8 @@ public:
static JKRSolidHeap* create(u32, JKRHeap*, bool);
};
inline JKRSolidHeap* JKRCreateSolidHeap(u32 param_0, JKRHeap* heap, bool param_2) {
return JKRSolidHeap::create(param_0, heap, param_2);
}
#endif /* JKRSOLIDHEAP_H */

View File

@ -10,6 +10,39 @@ ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, const T
template<class InputIt, class UnaryPredicate>
InputIt find_if(InputIt first, InputIt last, UnaryPredicate p);
/*
template<class OutputIt, class Size, int A2>
struct __fill_n {
OutputIt fill_n(OutputIt first, Size count, const unsigned long& value);
};
template<>
unsigned long* __fill_n<unsigned long, long, 0>::fill_n(unsigned long* first, long count, const unsigned long& value) {
for (; count > 0; count--) {
*first++ = value;
}
return first;
}
template<class OutputIt, class Size, class T>
OutputIt fill_n(OutputIt first, Size count, const T& value) {
return __fill_n::fill_n(first, count, value);
}
template<class ForwardIt, class T>
void __fill(ForwardIt first, ForwardIt last, const T& value, std::random_access_iterator_tag param_3) {
fill_n(first, last - first, value);
}
*/
template<class ForwardIt, class T>
void fill(ForwardIt first, ForwardIt last, const T& value) {
for (; first != last; ++first){
*first = value;
}
}
} // namespace std
#endif

View File

@ -1,8 +1,17 @@
#ifndef MSL_BITSET_H_
#define MSL_BITSET_H_
#include "MSL_C/algorithm.h"
#include "MSL_C/stdio.h"
#include "MSL_C/stdlib.h"
namespace std {
// TODO: where does this go?
inline void __msl_error(const char* param_0) {
fprintf(stderr, param_0);
abort();
}
template<size_t N> class __bitset_base {
public:
__bitset_base();
@ -15,13 +24,56 @@ private:
size_t data[N];
};
template<size_t N> class bitset : private __bitset_base<(N - 1) / sizeof(size_t) + 1> {
public:
bitset();
template<size_t N> __bitset_base<N>::__bitset_base() {
std::fill(data, data + N, 0);
}
void set(size_t pos, bool val);
void reset(size_t pos);
bool test(size_t pos) const;
template<size_t N> bool __bitset_base<N>::test(size_t pos) const {
size_t i = pos / (sizeof(size_t) * 8);
size_t mask = 1 << (pos % (sizeof(size_t) * 8));
return data[i] & mask;
}
template<size_t N> void __bitset_base<N>::set(size_t pos, bool val) {
size_t i = pos / (sizeof(size_t) * 8);
size_t mask = 1 << (pos % (sizeof(size_t) * 8));
if (val) {
data[i] |= mask;
} else {
data[i] &= ~mask;
}
}
template<size_t N> void __bitset_base<N>::reset(size_t pos) {
size_t i = pos / (sizeof(size_t) * 8);
size_t mask = 1 << (pos % (sizeof(size_t) * 8));
data[i] &= ~mask;
}
template<size_t N> class bitset : private __bitset_base<(N - 1) / (sizeof(size_t) * 8) + 1> {
public:
typedef __bitset_base<(N - 1) / (sizeof(size_t) * 8) + 1> base;
bitset() {};
void set(size_t pos, bool val) {
if (pos >= N) {
__msl_error("index out of range of bitset::set");
}
base::set(pos, val);
}
void reset(size_t pos) {
if (pos >= N) {
__msl_error("index out of range of bitset::reset");
}
base::reset(pos);
}
bool test(size_t pos) const {
if (pos >= N) {
__msl_error("index out of range of bitset::test");
}
return base::test(pos);
}
bool any() const;
};
} // namespace std

View File

@ -6,37 +6,12 @@
#include "JSystem/JAudio2/JAIAudible.h"
#include "JSystem/JAudio2/JASSoundParams.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JAUAudibleParam.h"
#include "JSystem/TPosition3.hh"
#include "dolphin/mtx/mtxvec.h"
struct Z2Audible;
struct JAUAudibleParam {
f32 getDopplerPower() const {
return (u32)((*(u8*)&field_0x0.raw >> 4) & 0xf) * (1.0f / 15.0f);
}
union {
struct {
u16 f0;
u16 f1;
} half;
struct {
u8 b0_0 : 1;
u8 b0_1 : 1;
u8 b0_2 : 1;
u8 b0_3 : 1;
u8 b0_4 : 1;
u8 b0_5 : 1;
u8 b0_6 : 1;
u8 b0_7 : 1;
u8 b1;
u8 b2;
u8 b3;
} bytes;
u32 raw;
} field_0x0;
};
struct Z2AudibleAbsPos {
/* 802BBCDC */ void calc(JGeometry::TVec3<f32> const&);
/* 802BBD18 */ void init(JGeometry::TVec3<f32>*, JGeometry::TVec3<f32> const&,

View File

@ -3,13 +3,14 @@
#include "JSystem/JAudio2/JAUAudioArcLoader.h"
class Z2AudioArcLoader {
class Z2AudioArcLoader : public JAUAudioArcLoader {
public:
Z2AudioArcLoader(JAUSection*);
~Z2AudioArcLoader();
virtual ~Z2AudioArcLoader();
void readCommandMore(u32);
virtual bool readCommandMore(u32);
void readBFCA(const void*);
void readBSTN(const void*, u32);
virtual void readBSTN(const void*, u32);
};
#endif /* Z2AUDIOARCLOADER_H */

View File

@ -7,6 +7,7 @@
#include "Z2AudioLib/Z2SceneMgr.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2SoundInfo.h"
#include "Z2AudioLib/Z2SoundMgr.h"
#include "Z2AudioLib/Z2SoundObjMgr.h"
#include "Z2AudioLib/Z2SpeechMgr2.h"
@ -17,7 +18,7 @@
class JKRArchive;
class JKRSolidHeap;
class Z2AudioMgr {
class Z2AudioMgr : public Z2SeMgr, public Z2SeqMgr, public Z2SceneMgr, public Z2StatusMgr, public Z2SoundObjMgr {
public:
Z2AudioMgr();
~Z2AudioMgr() {}
@ -33,19 +34,13 @@ public:
static Z2AudioMgr* mAudioMgrPtr;
/* 0x0000 */ Z2SeMgr mSeMgr;
/* 0x03D0 */ Z2SeqMgr mSeqMgr;
/* 0x04A4 */ Z2SceneMgr mSceneMgr;
/* 0x04C4 */ Z2StatusMgr mStatusMgr;
/* 0x04F4 */ Z2SoundObjMgr mSoundObjMgr;
/* 0x0514 */ virtual void startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
/* 0x0514 */ virtual int startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
/* 0x0518 */ bool mResettingFlag;
/* 0x0519 */ bool field_0x519;
/* 0x051C */ JASAudioReseter mAudioReseter;
/* 0x052C */ Z2SoundStarter mSoundStarter;
/* 0x0530 */ Z2SoundMgr mSoundMgr;
/* 0x0D40 */ // Z2SoundInfo mSoundInfo;
/* 0x0D40 */ void* mSoundInfo[3]; // remove later
/* 0x0D40 */ Z2SoundInfo mSoundInfo;
/* 0x0D4C */ Z2Audience mAudience;
/* 0x0F2C */ Z2SpeechMgr2 mSpeechMgr;
/* 0x1370 */ Z2FxLineMgr mFxLineMgr;

View File

@ -10,6 +10,12 @@ enum CurveSign {
};
struct FNoise1f {
FNoise1f(float param_0 = 0.1f, float param_1 = 0.0f, float param_2 = 0.01f) {
unk0 = param_0;
unk4 = param_0;
unk8 = param_2;
unk12 = param_1;
}
void setParam(float, float, float);
float tau(float);
float calcNoise1f();

View File

@ -6,7 +6,7 @@
#include "global.h"
struct Z2EnvSeBase {
/* 802C589C */ Z2EnvSeBase(Vec*);
/* 802C589C */ Z2EnvSeBase(Vec* param_0 = NULL);
/* 802C58AC */ ~Z2EnvSeBase();
/* 802C5908 */ void startEnvSe(JAISoundID, f32, f32, f32, f32, f32, u32);
/* 802C5AB4 */ void startEnvSeLevel(JAISoundID, f32, f32, f32, f32, f32, u32);
@ -31,7 +31,7 @@ struct Z2EnvSeAutoPan : public Z2EnvSeBase {
}; // Size: 0x1C
struct Z2EnvSeDir : public Z2EnvSeBase {
/* 802C5C9C */ Z2EnvSeDir(Vec*);
/* 802C5C9C */ Z2EnvSeDir(Vec* param_0 = NULL);
/* 802C5D1C */ ~Z2EnvSeDir();
/* 802C5D70 */ void setPanDir(Vec*);
/* 802C5D9C */ void calcPan(f32);
@ -111,7 +111,7 @@ struct Z2EnvSeMgr : public JASGlobalInstance<Z2EnvSeMgr> {
/* 0x120 */ Z2Calc::FNoise1f field_0x120;
/* 0x130 */ Z2Calc::FNoise1f field_0x130;
/* 0x140 */ u8 field_0x140;
/* 0x141 */ u8 field_0x141;
/* 0x141 */ u8 mSnowPower;
/* 0x144 */ Z2EnvSeDir field_0x144;
/* 0x160 */ u8 mWindType;
/* 0x164 */ Z2MultiSeMgr field_0x164;
@ -158,7 +158,7 @@ struct Z2EnvSeMgr : public JASGlobalInstance<Z2EnvSeMgr> {
/* 0x2E4 */ u8 field_0x2e4;
/* 0x2E8 */ Z2Calc::FNoise1f field_0x2e8;
/* 0x2F8 */ Z2Calc::FNoise1f field_0x2f8;
/* 0x308 */ f32 field_0x308;
/* 0x308 */ f32 mFogDensity;
}; // Size: 0x30C
STATIC_ASSERT(sizeof(Z2EnvSeMgr) == 0x30C);

View File

@ -13,6 +13,8 @@ struct Z2MultiSeMgr {
void getPanPower();
void getDolbyPower();
void setVolumeScale(f32 param_0) { mVolumeScale = param_0; }
/* 0x00 */ float mVolumeScale;
/* 0x04 */ float mMaxVolume;
/* 0x08 */ float mMaxPowL;

View File

@ -2,33 +2,27 @@
#define Z2SOUNDINFO_H
#include "JSystem/JAudio2/JAISoundInfo.h"
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
#include "JSystem/JAudio2/JAUSoundInfo.h"
struct JAUSoundInfo : public JASGlobalInstance<JAUSoundInfo> {
virtual void getAudibleSw(JAISoundID) const = 0;
virtual void getBgmSeqResourceID(JAISoundID) const = 0;
};
struct JAIStreamDataMgr {
virtual void getStreamFileEntry(JAISoundID) = 0;
virtual ~JAIStreamDataMgr();
};
struct Z2SoundInfo /* : public JAISoundInfo, public JAUSoundInfo, public JAIStreamDataMgr */ : public JASGlobalInstance<Z2SoundInfo> {
/* 802BB00C */ void getBgmSeqResourceID(JAISoundID) const;
/* 802BB158 */ u32 getAudibleSwFull(JAISoundID);
/* 802BB448 */ void getAudibleSw(JAISoundID) const;
/* 802BBA10 */ void getStreamFilePath(JAISoundID);
/* 802BBA88 */ void getStreamFileEntry(JAISoundID);
/* 802BBAC8 */ void getSwBit(JAISoundID) const;
/* 802BBB48 */ void getSoundInfo_(JAISoundID, JAISound*) const;
/* 802BB090 */ void getSoundType(JAISoundID) const;
/* 802BB0D8 */ void getCategory(JAISoundID) const;
/* 802BB0E0 */ void getPriority(JAISoundID) const;
/* 802BB6DC */ void getSeInfo(JAISoundID, JAISe*) const;
/* 802BB8B4 */ void getSeqInfo(JAISoundID, JAISeq*) const;
/* 802BB8E0 */ void getStreamInfo(JAISoundID, JAIStream*) const;
class Z2SoundInfo : public JAISoundInfo, public JAUSoundInfo, public JAIStreamDataMgr, public JASGlobalInstance<Z2SoundInfo> {
public:
Z2SoundInfo() : JAISoundInfo(true), JAUSoundInfo(true), JASGlobalInstance<Z2SoundInfo>(true) {}
/* 802BB448 */ virtual void getAudibleSw(JAISoundID) const;
/* 802BB00C */ virtual u16 getBgmSeqResourceID(JAISoundID) const;
/* 802BBA88 */ virtual s32 getStreamFileEntry(JAISoundID);
/* 802BB090 */ virtual u32 getSoundType(JAISoundID) const;
/* 802BB0D8 */ virtual int getCategory(JAISoundID) const;
/* 802BB0E0 */ virtual u32 getPriority(JAISoundID) const;
/* 802BB6DC */ virtual void getSeInfo(JAISoundID, JAISe*) const;
/* 802BB8B4 */ virtual void getSeqInfo(JAISoundID, JAISeq*) const;
/* 802BB8E0 */ virtual void getStreamInfo(JAISoundID, JAIStream*) const;
/* 802BBBE0 */ virtual ~Z2SoundInfo();
/* 802BB158 */ u32 getAudibleSwFull(JAISoundID);
/* 802BBA10 */ const char* getStreamFilePath(JAISoundID);
/* 802BBAC8 */ int getSwBit(JAISoundID) const;
/* 802BBB48 */ void getSoundInfo_(JAISoundID, JAISound*) const;
};
inline Z2SoundInfo* Z2GetSoundInfo() {

View File

@ -6,6 +6,8 @@
#include "JSystem/JAudio2/JAIStreamMgr.h"
#include "global.h"
u16 seqCallback(JASTrack* param_0, u16 param_1);
class Z2SoundMgr : public JASGlobalInstance<Z2SoundMgr> {
public:
/* 802A9E80 */ Z2SoundMgr();
@ -23,10 +25,12 @@ public:
/* 802AA9E8 */ void multiVolumeSoundID(JAISoundID, f32);
/* 802AAAC4 */ void isPlayingSoundID(JAISoundID);
/* 802A9EE8 */ virtual void startSound(JAISoundID, JAISoundHandle*,
/* 802A9EE8 */ virtual int startSound(JAISoundID, JAISoundHandle*,
JGeometry::TVec3<f32> const*);
JAISeMgr* getSeMgr() { return &mSeMgr; }
JAISeqMgr* getSeqMgr() { return &mSeqMgr; }
JAIStreamMgr* getStreamMgr() { return &mStreamMgr; }
private:
/* 0x004 */ JAISeMgr mSeMgr;

View File

@ -4,7 +4,7 @@
#include "Z2AudioLib/Z2AudioMgr.h"
#include "Z2AudioLib/Z2EnvSeMgr.h"
class mDoAud_zelAudio_c {
class mDoAud_zelAudio_c : public Z2AudioMgr {
public:
void reset();
mDoAud_zelAudio_c() {}
@ -22,8 +22,6 @@ public:
static bool mInitFlag;
static bool mResetFlag;
static bool mBgmSet;
Z2AudioMgr mAudioMgr;
};
extern JKRSolidHeap* g_mDoAud_audioHeap;
@ -38,73 +36,73 @@ static void mDoAud_setLinkHp(s32 param_0, s32 param_1);
static void mDoAud_seStartLevel(u32 param_0, Vec const* param_1, u32 param_2, s8 param_3);
inline void mDoAud_bgmSetSwordUsing(s32 id) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmSetSwordUsing(id);
Z2AudioMgr::getInterface()->bgmSetSwordUsing(id);
}
inline void mDoAud_bgmStart(u32 i_bgmID) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmStart(i_bgmID, 0, 0);
Z2AudioMgr::getInterface()->bgmStart(i_bgmID, 0, 0);
}
inline void mDoAud_subBgmStart(u32 i_bgmID) {
Z2AudioMgr::getInterface()->mSeqMgr.subBgmStart(i_bgmID);
Z2AudioMgr::getInterface()->subBgmStart(i_bgmID);
}
inline void mDoAud_bgmNowBattle(f32 param_0) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmNowBattle(param_0);
Z2AudioMgr::getInterface()->bgmNowBattle(param_0);
}
inline void mDoAud_bgmStreamPrepare(u32 param_0) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmStreamPrepare(param_0);
Z2AudioMgr::getInterface()->bgmStreamPrepare(param_0);
}
inline void mDoAud_bgmStreamPlay() {
Z2AudioMgr::getInterface()->mSeqMgr.bgmStreamPlay();
Z2AudioMgr::getInterface()->bgmStreamPlay();
}
inline void mDoAud_setHour(s32 hour) {
Z2AudioMgr::getInterface()->mStatusMgr.setHour(hour);
Z2AudioMgr::getInterface()->setHour(hour);
}
inline void mDoAud_setMinute(s32 min) {
Z2AudioMgr::getInterface()->mStatusMgr.setMinute(min);
Z2AudioMgr::getInterface()->setMinute(min);
}
inline void mDoAud_setWeekday(s32 day) {
Z2AudioMgr::getInterface()->mStatusMgr.setWeekday(day);
Z2AudioMgr::getInterface()->setWeekday(day);
}
inline void mDoAud_setInDarkness(bool state) {
Z2AudioMgr::getInterface()->mSceneMgr.setInDarkness(state);
Z2AudioMgr::getInterface()->setInDarkness(state);
}
inline void mDoAud_seStart(u32 i_sfxID, const Vec* i_sePos, u32 param_2, s8 i_reverb) {
Z2AudioMgr::getInterface()->mSeMgr.seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f,
Z2AudioMgr::getInterface()->seStart(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}
inline void i_mDoAud_seStartLevel(u32 i_sfxID, const Vec* i_sePos, u32 param_2, s8 i_reverb) {
Z2AudioMgr::getInterface()->mSeMgr.seStartLevel(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f,
Z2AudioMgr::getInterface()->seStartLevel(i_sfxID, i_sePos, param_2, i_reverb, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}
inline void mDoAud_messageSePlay(u16 param_0, Vec* position, s8 param_2) {
Z2AudioMgr::getInterface()->mSeMgr.messageSePlay(param_0, position, param_2);
Z2AudioMgr::getInterface()->messageSePlay(param_0, position, param_2);
}
inline void mDoAud_sceneBgmStart() {
Z2AudioMgr::getInterface()->mSceneMgr.sceneBgmStart();
Z2AudioMgr::getInterface()->sceneBgmStart();
}
inline void mDoAud_load2ndDynamicWave() {
Z2AudioMgr::getInterface()->mSceneMgr.load2ndDynamicWave();
Z2AudioMgr::getInterface()->load2ndDynamicWave();
}
inline bool mDoAud_check1stDynamicWave() {
return Z2AudioMgr::getInterface()->mSceneMgr.check1stDynamicWave();
return Z2AudioMgr::getInterface()->check1stDynamicWave();
}
inline void mDoAud_bgmStop(u32 param_0) {
Z2AudioMgr::getInterface()->mSeqMgr.bgmStop(param_0, 0);
Z2AudioMgr::getInterface()->bgmStop(param_0, 0);
}
inline void mDoAud_rainPlay(s32 enable) {
@ -112,7 +110,7 @@ inline void mDoAud_rainPlay(s32 enable) {
}
inline void mDoAud_heartGaugeOn() {
Z2AudioMgr::getInterface()->mStatusMgr.heartGaugeOn();
Z2AudioMgr::getInterface()->heartGaugeOn();
}
inline void mDoAud_setSnowPower(s8 i_power) {

View File

@ -138,7 +138,7 @@ u8 JASAramStream::sLoadThread[4];
u8 JASAramStream::sReadBuffer[4];
/* 80451258-8045125C 000758 0004+00 6/6 1/1 0/0 .sbss sBlockSize__13JASAramStream */
u8 JASAramStream::sBlockSize[4];
u32 JASAramStream::sBlockSize;
/* 8045125C-80451260 00075C 0004+00 1/1 0/0 0/0 .sbss sChannelMax__13JASAramStream */
u8 JASAramStream::sChannelMax[4];

View File

@ -14,12 +14,6 @@ struct JKRHeap {
/* 802CE72C */ void getFreeSize();
};
struct JASOscillator {
struct Point {};
struct Data {};
};
template <typename A0>
struct JASMemPool_MultiThreaded {};
/* JASMemPool_MultiThreaded<JASChannel> */
@ -61,29 +55,6 @@ struct JASBasicBank {
/* 80297E80 */ void getInst(int) const;
};
struct JASBNKParser {
struct Ver1 {
/* 80299600 */ void findChunk(void const*, u32);
/* 8029963C */ void createBasicBank(void const*, JKRHeap*);
};
struct Ver0 {
struct THeader {};
struct TOsc {};
/* 80299A3C */ void createBasicBank(void const*, JKRHeap*);
/* 80299E68 */ void findOscPtr(JASBasicBank*, JASBNKParser::Ver0::THeader const*,
JASBNKParser::Ver0::TOsc const*);
/* 80299F8C */ void getOscTableEndPtr(JASOscillator::Point const*);
};
/* 80299538 */ void createBank(void const*, JKRHeap*);
/* 80299558 */ void createBasicBank(void const*, JKRHeap*);
static u8 sUsedHeapSize[4];
};
//
// Forward References:
//
@ -148,7 +119,7 @@ extern "C" extern u8 JASDram[4];
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBNKParser::createBank(void const* param_0, JKRHeap* param_1) {
asm JASBank* JASBNKParser::createBank(void const* param_0, JKRHeap* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASBNKParser/createBank__12JASBNKParserFPCvP7JKRHeap.s"
}
@ -163,7 +134,7 @@ u8 JASBNKParser::sUsedHeapSize[4];
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBNKParser::createBasicBank(void const* param_0, JKRHeap* param_1) {
asm JASBasicBank* JASBNKParser::createBasicBank(void const* param_0, JKRHeap* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASBNKParser/createBasicBank__12JASBNKParserFPCvP7JKRHeap.s"
}

View File

@ -141,7 +141,6 @@ extern "C" u32 FILTER_MODE_IIR__6JASDsp;
// External References:
//
SECTION_INIT void memset();
extern "C" void __ct__17JASGenericMemPoolFv();
extern "C" void __dt__17JASGenericMemPoolFv();
extern "C" void alloc__17JASGenericMemPoolFUl();

View File

@ -4,69 +4,70 @@
//
#include "JSystem/JAudio2/JAUSectionHeap.h"
#include "JSystem/JAudio2/JAIStreamDataMgr.h"
#include "JSystem/JAudio2/JASBNKParser.h"
#include "JSystem/JAudio2/JASBankTable.h"
#include "JSystem/JAudio2/JASBasicWaveBank.h"
#include "JSystem/JAudio2/JASCriticalSection.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "JSystem/JAudio2/JASResArcLoader.h"
#include "JSystem/JAudio2/JASVoiceBank.h"
#include "JSystem/JAudio2/JAUSeqCollection.h"
#include "JSystem/JAudio2/JAUSoundInfo.h"
#include "JSystem/JAudio2/JAUSoundTable.h"
#include "JSystem/JAudio2/JAUStreamFileTable.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "MSL_C/stdlib.h"
#include "dol2asm.h"
#include "dolphin/dvd/dvd.h"
//
// Types:
//
struct JKRHeap {
/* 802CE438 */ void becomeCurrentHeap();
/* 802CE5F8 */ void freeTail();
/* 802CE72C */ void getFreeSize();
};
struct JKRSolidHeap {
/* 802D0A24 */ void create(u32, JKRHeap*, bool);
};
struct JKRArchive {};
struct JAUStreamFileTable {
/* 802A7420 */ JAUStreamFileTable();
/* 802A742C */ void init(void const*);
/* 802A7478 */ void getNumFiles() const;
/* 802A7484 */ void getFilePath(int) const;
};
struct JAUSoundTable {
/* 802A7114 */ void init(void const*);
};
struct JAUSoundNameTable {
/* 802A73D4 */ void init(void const*);
};
struct JAUSeqDataMgr_SeqCollection {
/* 802A677C */ JAUSeqDataMgr_SeqCollection();
};
struct JAUSeqCollection {
/* 802A66AC */ void init(void const*);
};
struct JASHeap {};
struct JASWaveArc {
/* 8029A4C0 */ void load(JASHeap*);
};
struct JASWSParser {
/* 80298FD8 */ void createWaveBank(void const*, JKRHeap*);
/* 80298FD8 */ static JASWaveBank* createWaveBank(void const*, JKRHeap*);
};
struct JASResArcLoader {
/* 80290BD0 */ void getResSize(JKRArchive const*, u16);
};
namespace {
class TPushCurrentHeap {
public:
TPushCurrentHeap(JKRHeap* heap) { mHeap = JKRSetCurrentHeap(heap); }
~TPushCurrentHeap() { JKRSetCurrentHeap(mHeap); }
struct JASBNKParser {
/* 80299538 */ void createBank(void const*, JKRHeap*);
};
private:
JKRHeap* mHeap;
};
struct JAIStreamDataMgr {
/* 802A3AD8 */ ~JAIStreamDataMgr();
};
class TStreamDataMgr : public JAIStreamDataMgr {
public:
TStreamDataMgr(const void* param_0) {
JAUStreamFileTable stack_14;
stack_14.init(param_0);
if (!stack_14.isValid()) {
field_0x4 = 0;
field_0x8 = NULL;
return;
}
field_0x4 = stack_14.getNumFiles();
field_0x8 = new s32[field_0x4];
if (!field_0x8) {
field_0x4 = NULL;
return;
}
for (u32 i = 0; i < field_0x4; i++) {
field_0x8[i] = DVDConvertPathToEntrynum(stack_14.getFilePath(i));
}
}
virtual s32 getStreamFileEntry(JAISoundID);
virtual ~TStreamDataMgr();
bool isValid() { return field_0x4; }
s32 field_0x4;
s32* field_0x8;
};
}
//
// Forward References:
@ -122,8 +123,6 @@ extern "C" extern char const* const JAUSectionHeap__stringBase0;
// External References:
//
SECTION_INIT void memset();
SECTION_INIT void memcpy();
extern "C" void getResSize__15JASResArcLoaderFPC10JKRArchiveUs();
extern "C" void createWaveBank__11JASWSParserFPCvP7JKRHeap();
extern "C" void createBank__12JASBNKParserFPCvP7JKRHeap();
@ -163,9 +162,6 @@ extern "C" void __dt__10JSUPtrLinkFv();
extern "C" void __dt__10JSUPtrListFv();
extern "C" void initiate__10JSUPtrListFv();
extern "C" void append__10JSUPtrListFP10JSUPtrLink();
extern "C" void OSDisableInterrupts();
extern "C" void OSRestoreInterrupts();
extern "C" void DVDConvertPathToEntrynum();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
@ -174,7 +170,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void fprintf();
extern "C" extern void* __vt__11JASBankList[3 + 1 /* padding */];
extern "C" extern void* __vt__7JASBank[5];
extern "C" extern void* __vt__12JASVoiceBank[5 + 1 /* padding */];
@ -186,7 +181,6 @@ extern "C" extern u8 data_80450B54[4];
extern "C" extern u8 data_80450B58[4];
extern "C" extern u8 data_80450B90[4 + 4 /* padding */];
extern "C" extern u8 data_80450CC0[4 + 4 /* padding */];
extern "C" extern u8 JASDram[4];
extern "C" extern u8 __OSReport_disable;
//
@ -194,6 +188,18 @@ extern "C" extern u8 __OSReport_disable;
//
/* 802A4EE8-802A4F68 29F828 0080+00 1/1 0/0 0/0 .text __ct__Q210JAUSection12TSectionDataFv */
// wild destructors appeared!
#ifdef NONMATCHING
JAUSection::TSectionData::TSectionData() {
resetRegisteredWaveBankTables();
resetRegisteredBankTables();
field_0x84 = 0;
field_0x88 = 0;
field_0x80 = 0;
field_0xa0 = 0;
field_0x9c = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -202,6 +208,7 @@ asm JAUSection::TSectionData::TSectionData() {
#include "asm/JSystem/JAudio2/JAUSectionHeap/__ct__Q210JAUSection12TSectionDataFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8039B950-8039B950 027FB0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -212,6 +219,14 @@ SECTION_DEAD static char const* const stringBase_8039B950 = "index out of range
/* 802A4F68-802A4FE4 29F8A8 007C+00 1/1 0/0 0/0 .text
* resetRegisteredBankTables__Q210JAUSection12TSectionDataFv */
// position of std::__bitset_base<8>::reset
#ifdef NONMATCHING
void JAUSection::TSectionData::resetRegisteredBankTables() {
for (u32 i = 0; i < 255; i++) {
registeredBankTables.reset(i);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -220,9 +235,18 @@ asm void JAUSection::TSectionData::resetRegisteredBankTables() {
#include "asm/JSystem/JAudio2/JAUSectionHeap/resetRegisteredBankTables__Q210JAUSection12TSectionDataFv.s"
}
#pragma pop
#endif
/* 802A4FE4-802A5060 29F924 007C+00 1/1 0/0 0/0 .text
* resetRegisteredWaveBankTables__Q210JAUSection12TSectionDataFv */
// position of std::__bitset_base<8>::reset
#ifdef NONMATCHING
void JAUSection::TSectionData::resetRegisteredWaveBankTables() {
for (u32 i = 0; i < 255; i++) {
registeredWaveBankTables.reset(i);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -231,6 +255,7 @@ asm void JAUSection::TSectionData::resetRegisteredWaveBankTables() {
#include "asm/JSystem/JAudio2/JAUSectionHeap/resetRegisteredWaveBankTables__Q210JAUSection12TSectionDataFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 803C9AC0-803C9AF4 026BE0 0034+00 2/2 0/0 0/0 .data __vt__14JAUSectionHeap */
@ -286,6 +311,17 @@ SECTION_DATA extern void* __vt__10JAUSection[4 + 1 /* padding */] = {
};
/* 802A5060-802A50F8 29F9A0 0098+00 1/1 0/0 0/0 .text __ct__10JAUSectionFP14JAUSectionHeapUll */
// JAUSection inheritance
#ifdef NONMATCHING
JAUSection::JAUSection(JAUSectionHeap* param_0, u32 param_1, s32 param_2) : JSULink<JAUSection>(this), field_0x28(param_1), sectionHeap_(param_0) {
buildingBankTable_ = NULL;
field_0x2c = 1;
data_.field_0x98 = param_2;
if (this != sectionHeap_) {
data_.field_0x00.setSeqDataArchive(sectionHeap_->sectionHeapData_.field_0x408.getSeqDataArchive());
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -294,110 +330,248 @@ asm JAUSection::JAUSection(JAUSectionHeap* param_0, u32 param_1, s32 param_2) {
#include "asm/JSystem/JAudio2/JAUSectionHeap/__ct__10JAUSectionFP14JAUSectionHeapUll.s"
}
#pragma pop
#endif
/* 802A50F8-802A5160 29FA38 0068+00 0/0 1/1 0/0 .text finishBuild__10JAUSectionFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::finishBuild() {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/finishBuild__10JAUSectionFv.s"
void JAUSection::finishBuild() {
JUT_ASSERT("JAUSectionHeap.cpp", 0x8f, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x90, isBuilding());
{
TPushCurrentHeap push(getHeap_());
}
data_.field_0x98 -= getHeap_()->getFreeSize();
getHeap_()->freeTail();
field_0x2c = 0;
}
#pragma pop
/* 802A5160-802A51E4 29FAA0 0084+00 2/0 0/0 0/0 .text dispose__10JAUSectionFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::dispose() {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/dispose__10JAUSectionFv.s"
void JAUSection::dispose() {
JUT_ASSERT("JAUSectionHeap.cpp", 0x10b, ! data_.registeredBankTables.any());
JUT_ASSERT("JAUSectionHeap.cpp", 0x10c, ! data_.registeredWaveBankTables.any());
if (data_.mBstDst) {
sectionHeap_->sectionHeapData_.soundTable->~JAUSoundTable();
sectionHeap_->sectionHeapData_.soundTable = NULL;
}
if ((data_.mBstnDst)) {
sectionHeap_->sectionHeapData_.soundNameTable->~JAUSoundNameTable();
sectionHeap_->sectionHeapData_.soundNameTable = NULL;
}
}
#pragma pop
/* 802A51E4-802A52A0 29FB24 00BC+00 0/0 1/1 0/0 .text newSoundTable__10JAUSectionFPCvUlb
*/
// regalloc, stackalloc
#ifdef NONMATCHING
JAUSoundTable* JAUSection::newSoundTable(void const* bst, u32 param_1, bool param_2) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x11d, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x11e, isBuilding());
JUT_ASSERT("JAUSectionHeap.cpp", 0x11f, bst);
JUT_ASSERT("JAUSectionHeap.cpp", 0x120, asSectionHeap() == this);
JUT_ASSERT("JAUSectionHeap.cpp", 0x121, sectionHeap_->sectionHeapData_.soundTable == 0);
{
TPushCurrentHeap push(getHeap_());
void* bstDst;
if (param_1) {
bstDst = newCopy(bst, param_1, 4);
JUT_ASSERT("JAUSectionHeap.cpp", 0x128, bstDst);
}
JAUSoundTable* soundTable = new JAUSoundTable(param_2);
JUT_ASSERT("JAUSectionHeap.cpp", 299, soundTable);
soundTable->init(bst);
sectionHeap_->sectionHeapData_.soundTable = soundTable;
data_.mBstDst = bstDst;
}
return sectionHeap_->sectionHeapData_.soundTable;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newSoundTable(void const* param_0, u32 param_1, bool param_2) {
asm JAUSoundTable* JAUSection::newSoundTable(void const* param_0, u32 param_1, bool param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newSoundTable__10JAUSectionFPCvUlb.s"
}
#pragma pop
#endif
/* 802A52A0-802A535C 29FBE0 00BC+00 0/0 1/1 0/0 .text newSoundNameTable__10JAUSectionFPCvUlb */
// regalloc, stackalloc
#ifdef NONMATCHING
JAUSoundNameTable* JAUSection::newSoundNameTable(void const* bstn, u32 param_1, bool param_2) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x13b, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x13c, isBuilding());
JUT_ASSERT("JAUSectionHeap.cpp", 0x13d, bstn);
JUT_ASSERT("JAUSectionHeap.cpp", 0x13e, asSectionHeap() == this);
JUT_ASSERT("JAUSectionHeap.cpp", 0x13f, sectionHeap_->sectionHeapData_.soundNameTable == 0);
{
TPushCurrentHeap push(getHeap_());
void* bstnDst;
if (param_1) {
bstnDst = newCopy(bstn, param_1, 4);
JUT_ASSERT("JAUSectionHeap.cpp", 0x146, bstnDst);
}
JAUSoundNameTable* soundNameTable = new JAUSoundNameTable(param_2);
JUT_ASSERT("JAUSectionHeap.cpp", 0x149, soundNameTable);
soundNameTable->init(bstnDst);
sectionHeap_->sectionHeapData_.soundNameTable = soundNameTable;
data_.mBstnDst = bstnDst;
}
return sectionHeap_->sectionHeapData_.soundNameTable;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newSoundNameTable(void const* param_0, u32 param_1, bool param_2) {
asm JAUSoundNameTable* JAUSection::newSoundNameTable(void const* param_0, u32 param_1, bool param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newSoundNameTable__10JAUSectionFPCvUlb.s"
}
#pragma pop
#endif
/* 802A535C-802A5500 29FC9C 01A4+00 0/0 1/1 0/0 .text newStreamFileTable__10JAUSectionFPCvb */
// JAUStreamFileTable::isValid() signed
#ifdef NONMATCHING
JAIStreamDataMgr* JAUSection::newStreamFileTable(void const* param_0, bool param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x159, asSectionHeap() == this);
JUT_ASSERT("JAUSectionHeap.cpp", 0x15a, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x15b, isBuilding());
JUT_ASSERT("JAUSectionHeap.cpp", 0x15c, sectionHeap_->sectionHeapData_.streamDataMgr_ == 0);
{
TPushCurrentHeap push(getHeap_());
JAIStreamDataMgr* r28 = NULL;
if (param_1) {
TStreamDataMgr* r26 = new TStreamDataMgr(param_0);
if (r26->isValid()) {
r28 = r26;
}
} else {
JAUStreamDataMgr_StreamFileTable* r25 = new JAUStreamDataMgr_StreamFileTable();
r25->init(param_0);
if (r25->isValid()) {
r28 = r25;
}
}
sectionHeap_->sectionHeapData_.streamDataMgr_ = r28;
}
return sectionHeap_->sectionHeapData_.streamDataMgr_;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newStreamFileTable(void const* param_0, bool param_1) {
asm JAIStreamDataMgr* JAUSection::newStreamFileTable(void const* param_0, bool param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newStreamFileTable__10JAUSectionFPCvb.s"
}
#pragma pop
#endif
/* 802A5500-802A5598 29FE40 0098+00 0/0 1/1 0/0 .text newSeSeqCollection__10JAUSectionFPCvUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newSeSeqCollection(void const* param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newSeSeqCollection__10JAUSectionFPCvUl.s"
JAISeqDataMgr* JAUSection::newSeSeqCollection(void const* bsc, u32 param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x18e, asSectionHeap() == this);
JUT_ASSERT("JAUSectionHeap.cpp", 399, sectionHeap_->sectionHeapData_.seSeqDataMgr_ == 0);
if (param_1) {
bsc = newCopy(bsc, param_1, 4);
}
JUT_ASSERT("JAUSectionHeap.cpp", 0x195, "bsc");
{
TPushCurrentHeap push(getHeap_());
JAUSeqDataMgr_SeqCollection* seSeqDataMgr = new JAUSeqDataMgr_SeqCollection();
JUT_ASSERT("JAUSectionHeap.cpp", 0x199, seSeqDataMgr);
seSeqDataMgr->init(bsc);
sectionHeap_->sectionHeapData_.seSeqDataMgr_ = seSeqDataMgr;
data_.field_0x80 = seSeqDataMgr;
}
return sectionHeap_->sectionHeapData_.seSeqDataMgr_;
}
#pragma pop
/* 802A5598-802A56C8 29FED8 0130+00 2/2 0/0 0/0 .text
* newStaticSeqDataBlock___10JAUSectionF10JAISoundIDUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newStaticSeqDataBlock_(JAISoundID param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newStaticSeqDataBlock___10JAUSectionF10JAISoundIDUl.s"
u8* JAUSection::newStaticSeqDataBlock_(JAISoundID param_0, u32 size) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x1a3, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x1a4, isBuilding());
JUT_ASSERT("JAUSectionHeap.cpp", 0x1a5, size);
{
TPushCurrentHeap push(getHeap_());
JAUSeqDataBlock* seqDataBlock = new JAUSeqDataBlock();
if (!seqDataBlock) {
return NULL;
}
JSULink<JAUSeqDataBlock>* link = new JSULink<JAUSeqDataBlock>(seqDataBlock);
if (!link) {
return NULL;
}
u8* r28 = new(0x20) u8[size];
if (!r28) {
return NULL;
}
seqDataBlock->field_0x14 = r28;
seqDataBlock->field_0x18 = size;
seqDataBlock->field_0x10 = param_0;
JASCriticalSection cs;
if(data_.field_0x00.appendDynamicSeqDataBlock(seqDataBlock)) {
data_.field_0x28.append(link);
return r28;
}
}
return NULL;
}
#pragma pop
/* 802A56C8-802A5730 2A0008 0068+00 0/0 1/1 0/0 .text
* newStaticSeqData__10JAUSectionF10JAISoundIDPCvUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newStaticSeqData(JAISoundID param_0, void const* param_1, u32 param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newStaticSeqData__10JAUSectionF10JAISoundIDPCvUl.s"
bool JAUSection::newStaticSeqData(JAISoundID param_0, void const* param_1, u32 param_2) {
u8* r30 = newStaticSeqDataBlock_(param_0, param_2);
if (r30) {
memcpy(r30, param_1, param_2);
return true;
}
return false;
}
#pragma pop
/* 802A5730-802A57F0 2A0070 00C0+00 0/0 1/1 0/0 .text newStaticSeqData__10JAUSectionF10JAISoundID
*/
// extra instruction JAISoundID
#ifdef NONMATCHING
bool JAUSection::newStaticSeqData(JAISoundID param_0) {
JKRArchive* seqArchive = data_.field_0x00.getSeqDataArchive();
JUT_ASSERT("JAUSectionHeap.cpp", 0x1e1, seqArchive);
JAUSoundInfo* soundInfo = JASGlobalInstance<JAUSoundInfo>::getInstance();
if (!soundInfo) {
return false;
}
u16 r26 = soundInfo->getBgmSeqResourceID(param_0);
u32 r25 = JASResArcLoader::getResSize(seqArchive, r26);
JAISoundID stack_2c;
stack_2c.setAnonymous();
u8* r24 = newStaticSeqDataBlock_(stack_2c, r25);
if (r24) {
data_.field_0x00.loadDynamicSeq(param_0, true, sectionHeap_->sectionHeapData_.seqDataUser);
return true;
}
return false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newStaticSeqData(JAISoundID param_0) {
asm bool JAUSection::newStaticSeqData(JAISoundID param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newStaticSeqData__10JAUSectionF10JAISoundID.s"
}
#pragma pop
#endif
/* 802A57F0-802A5854 2A0130 0064+00 3/3 0/0 0/0 .text newCopy__10JAUSectionFPCvUll */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newCopy(void const* param_0, u32 param_1, s32 param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newCopy__10JAUSectionFPCvUll.s"
void* JAUSection::newCopy(void const* param_0, u32 param_1, s32 param_2) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x204, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x205, isBuilding());
u8* r31 = new(getHeap_(), param_2) u8[param_1];
if (r31) {
memcpy(r31, param_0, param_1);
}
return r31;
}
#pragma pop
/* ############################################################################################## */
/* 8039B950-8039B950 027FB0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -410,130 +584,237 @@ SECTION_DEAD static char const* const pad_8039B9B9 = "\0\0\0\0\0\0";
#pragma pop
/* 802A5854-802A5948 2A0194 00F4+00 0/0 1/1 0/0 .text newWaveBank__10JAUSectionFUlPCv */
// position of std::__bitset_base<8>::set
#ifdef NONMATCHING
JASWaveBank* JAUSection::newWaveBank(u32 bank_no, void const* param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x210, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x211, isBuilding());
TPushCurrentHeap push(getHeap_());
s32 r27 = getHeap_()->getFreeSize();
JASWaveBank* waveBank = JASWSParser::createWaveBank(param_1, getHeap_());
if (waveBank) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x218, sectionHeap_->getWaveBankTable().getWaveBank( bank_no ) == 0);
sectionHeap_->getWaveBankTable().registWaveBank(bank_no, waveBank);
data_.registeredWaveBankTables.set(bank_no, true);
data_.field_0xa0 += r27 - getHeap_()->getFreeSize();
return waveBank;
}
return NULL;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newWaveBank(u32 param_0, void const* param_1) {
asm JASWaveBank* JAUSection::newWaveBank(u32 param_0, void const* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newWaveBank__10JAUSectionFUlPCv.s"
}
#pragma pop
#endif
/* 802A5948-802A5A50 2A0288 0108+00 0/0 1/1 0/0 .text loadWaveArc__10JAUSectionFUlUl */
// position of std::__bitset_base<8>::test
#ifdef NONMATCHING
bool JAUSection::loadWaveArc(u32 param_0, u32 param_1) {
if (data_.registeredWaveBankTables.test(param_0)) {
JASWaveBank* waveBank = sectionHeap_->getWaveBankTable().getWaveBank(param_0);
if (waveBank) {
for (u32 i = 0; i < waveBank->getArcCount(); i++) {
if (param_1 & 1 << i) {
waveBank->getWaveArc(i)->load(NULL);
}
}
return true;
}
}
return false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::loadWaveArc(u32 param_0, u32 param_1) {
asm bool JAUSection::loadWaveArc(u32 param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/loadWaveArc__10JAUSectionFUlUl.s"
}
#pragma pop
#endif
/* 802A5A50-802A5B84 2A0390 0134+00 0/0 1/1 0/0 .text newBank__10JAUSectionFPCvUl */
// vtable order JAUBankTableLink
#ifdef NONMATCHING
JASBank* JAUSection::newBank(void const* param_0, u32 param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x287, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x288, isBuilding());
JASWaveBank* waveBank = sectionHeap_->getWaveBankTable().getWaveBank(param_1);
JUT_ASSERT("JAUSectionHeap.cpp", 0x28a, waveBank != 0);
TPushCurrentHeap push(getHeap_());
u32 bank_no = JASBNKParser::getBankNumber(param_0);
s32 r25 = getHeap_()->getFreeSize();
JASBank* bank = JASBNKParser::createBank(param_0, getHeap_());
if (bank) {
if (buildingBankTable_) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x294, buildingBankTable_->getBank( bank_no ) == 0);
buildingBankTable_->registBank(bank_no, bank);
} else {
JUT_ASSERT("JAUSectionHeap.cpp",0x299, JASDefaultBankTable::getInstance() ->getBank( bank_no ) == 0);
JASDefaultBankTable::getInstance()->registBank(bank_no, bank);
data_.registeredBankTables.set(bank_no, true);
}
bank->assignWaveBank(waveBank);
data_.field_0x9c += r25 - getHeap_()->getFreeSize();
return bank;
}
return 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newBank(void const* param_0, u32 param_1) {
asm JASBank* JAUSection::newBank(void const* param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newBank__10JAUSectionFPCvUl.s"
}
#pragma pop
#endif
/* 802A5B84-802A5CAC 2A04C4 0128+00 0/0 1/1 0/0 .text newVoiceBank__10JAUSectionFUlUl */
// regalloc
#ifdef NONMATCHING
JASVoiceBank* JAUSection::newVoiceBank(u32 bank_no, u32 param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x2ad, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x2ae, isBuilding());
JASWaveBank* waveBank = sectionHeap_->getWaveBankTable().getWaveBank(param_1);
JUT_ASSERT("JAUSectionHeap.cpp", 0x2b0, waveBank != 0);
TPushCurrentHeap push(getHeap_());
JASVoiceBank* voiceBank = new JASVoiceBank();
if (voiceBank) {
if (buildingBankTable_) {
JUT_ASSERT("JAUSectionHeap.cpp",0x2b8,buildingBankTable_->getBank( bank_no ) == 0);
buildingBankTable_->registBank(bank_no, voiceBank);
} else {
JUT_ASSERT("JAUSectionHeap.cpp",0x2bd, JASDefaultBankTable::getInstance() ->getBank( bank_no ) == 0);
JASDefaultBankTable::getInstance()->registBank(bank_no, voiceBank);
data_.registeredBankTables.set(bank_no, true);
}
voiceBank->assignWaveBank(waveBank);
return voiceBank;
}
return NULL;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::newVoiceBank(u32 param_0, u32 param_1) {
asm JASVoiceBank* JAUSection::newVoiceBank(u32 param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newVoiceBank__10JAUSectionFUlUl.s"
}
#pragma pop
#endif
/* 802A5CAC-802A5D9C 2A05EC 00F0+00 0/0 1/1 0/0 .text beginNewBankTable__10JAUSectionFUlUl */
// JAUBankTable inheritance
#ifdef NONMATCHING
bool JAUSection::beginNewBankTable(u32 param_0, u32 param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x2ca, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x2cb, isBuilding());
JUT_ASSERT("JAUSectionHeap.cpp", 0x2cc, buildingBankTable_ == 0);
JAUBankTableLink* bankTableLink = NULL;
{
TPushCurrentHeap push(getHeap_());
JASBank** r26 = new JASBank*[param_1];
if (r26) {
bankTableLink = new JAUBankTableLink(param_0, r26, param_1);
if (bankTableLink) {
buildingBankTable_ = bankTableLink;
} else {
}
} else {
}
}
return bankTableLink;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::beginNewBankTable(u32 param_0, u32 param_1) {
asm bool JAUSection::beginNewBankTable(u32 param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/beginNewBankTable__10JAUSectionFUlUl.s"
}
#pragma pop
#endif
/* 802A5D9C-802A5DF4 2A06DC 0058+00 0/0 1/1 0/0 .text endNewBankTable__10JAUSectionFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSection::endNewBankTable() {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/endNewBankTable__10JAUSectionFv.s"
JAUBankTable* JAUSection::endNewBankTable() {
JAUBankTable* r29 = NULL;
if (buildingBankTable_) {
data_.field_0x74.appendBankTable(buildingBankTable_);
buildingBankTable_ = NULL;
r29 = buildingBankTable_;
}
return r29;
}
#pragma pop
/* 802A5DF4-802A5E60 2A0734 006C+00 1/1 0/0 0/0 .text __ct__Q214JAUSectionHeap16TSectionHeapDataFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAUSectionHeap::TSectionHeapData::TSectionHeapData() {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/__ct__Q214JAUSectionHeap16TSectionHeapDataFv.s"
JAUSectionHeap::TSectionHeapData::TSectionHeapData() {
seSeqDataMgr_ = NULL;
streamDataMgr_ = NULL;
soundTable = NULL;
soundNameTable = NULL;
seqDataUser = NULL;
}
#pragma pop
/* 802A5E60-802A5EC0 2A07A0 0060+00 0/0 1/1 0/0 .text
* setSeqDataArchive__14JAUSectionHeapFP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSectionHeap::setSeqDataArchive(JKRArchive* param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/setSeqDataArchive__14JAUSectionHeapFP10JKRArchive.s"
void JAUSectionHeap::setSeqDataArchive(JKRArchive* param_0) {
sectionHeapData_.field_0x408.setSeqDataArchive(param_0);
for (JSULink<JAUSection>* link = mSectionList.getFirst(); link; link = link->getNext()) {
link->getObject()->data_.field_0x00.setSeqDataArchive(param_0);
}
}
#pragma pop
/* 802A5EC0-802A5EF8 2A0800 0038+00 0/0 1/1 0/0 .text
* loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSectionHeap::loadDynamicSeq(JAISoundID param_0, bool param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/loadDynamicSeq__14JAUSectionHeapF10JAISoundIDb.s"
bool JAUSectionHeap::loadDynamicSeq(JAISoundID param_0, bool param_1) {
return sectionHeapData_.field_0x408.loadDynamicSeq(param_0, param_1, sectionHeapData_.seqDataUser);
}
#pragma pop
/* 802A5EF8-802A5F24 2A0838 002C+00 0/0 1/1 0/0 .text
* releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSectionHeap::releaseIdleDynamicSeqDataBlock() {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/releaseIdleDynamicSeqDataBlock__14JAUSectionHeapFv.s"
void JAUSectionHeap::releaseIdleDynamicSeqDataBlock() {
sectionHeapData_.field_0x408.releaseIdleDynamicSeqDataBlock(sectionHeapData_.seqDataUser);
}
#pragma pop
/* 802A5F24-802A5F9C 2A0864 0078+00 1/1 0/0 0/0 .text JAUNewSectionHeap__FP12JKRSolidHeapb */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm JAUSectionHeap* JAUNewSectionHeap(JKRSolidHeap* param_0, bool param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/JAUNewSectionHeap__FP12JKRSolidHeapb.s"
static JAUSectionHeap* JAUNewSectionHeap(JKRSolidHeap* heap, bool param_1) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x329, JKRSolidHeap_isEmpty( heap ));
TPushCurrentHeap push(heap);
s32 r29 = heap->getFreeSize();
return new JAUSectionHeap(heap, param_1, r29);
}
#pragma pop
/* 802A5F9C-802A5FE0 2A08DC 0044+00 0/0 1/1 0/0 .text JAUNewSectionHeap__Fb */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAUSectionHeap* JAUNewSectionHeap(bool param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/JAUNewSectionHeap__Fb.s"
JAUSectionHeap* JAUNewSectionHeap(bool param_0) {
s32 freeSize = JASDram->getFreeSize();
JKRSolidHeap* sectionHeap = JKRCreateSolidHeap(freeSize, JASDram, true);
JUT_ASSERT("JAUSectionHeap.cpp", 0x335, sectionHeap);
return JAUNewSectionHeap(sectionHeap, param_0);
}
#pragma pop
/* 802A5FE0-802A6094 2A0920 00B4+00 1/1 0/0 0/0 .text __ct__14JAUSectionHeapFP12JKRSolidHeapbl */
// JAUSectionHeap inheritance
#ifdef NONMATCHING
JAUSectionHeap::JAUSectionHeap(JKRSolidHeap* param_0, bool param_1, s32 param_2) : JAUSection(this, 0, param_2), JASGlobalInstance<JAUSectionHeap>(param_1), mHeap(param_0) {
field_0xe4 = 0;
mSectionList.append(this);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -542,49 +823,61 @@ asm JAUSectionHeap::JAUSectionHeap(JKRSolidHeap* param_0, bool param_1, s32 para
#include "asm/JSystem/JAudio2/JAUSectionHeap/__ct__14JAUSectionHeapFP12JKRSolidHeapbl.s"
}
#pragma pop
#endif
/* 802A6094-802A60A0 2A09D4 000C+00 0/0 1/1 0/0 .text getOpenSection__14JAUSectionHeapFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAUSection* JAUSectionHeap::getOpenSection() {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/getOpenSection__14JAUSectionHeapFv.s"
JAUSection* JAUSectionHeap::getOpenSection() {
return mSectionList.getLast()->getObject();
}
#pragma pop
/* 802A60A0-802A60AC 2A09E0 000C+00 2/1 0/0 0/0 .text
* setSeqDataUser__14JAUSectionHeapFP14JAISeqDataUser */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSectionHeap::setSeqDataUser(JAISeqDataUser* param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/setSeqDataUser__14JAUSectionHeapFP14JAISeqDataUser.s"
bool JAUSectionHeap::setSeqDataUser(JAISeqDataUser* param_0) {
sectionHeapData_.seqDataUser = param_0;
return true;
}
#pragma pop
/* 802A60AC-802A61D0 2A09EC 0124+00 0/0 2/2 0/0 .text newDynamicSeqBlock__14JAUSectionHeapFUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSectionHeap::newDynamicSeqBlock(u32 param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/newDynamicSeqBlock__14JAUSectionHeapFUl.s"
bool JAUSectionHeap::newDynamicSeqBlock(u32 param_0) {
JUT_ASSERT("JAUSectionHeap.cpp", 0x3a9, isOpen());
JUT_ASSERT("JAUSectionHeap.cpp", 0x3aa, isBuilding());
JUT_ASSERT("JAUSectionHeap.cpp", 0x3ab, sectionHeap_ == this);
TPushCurrentHeap push(base1.getHeap_());
JAUSeqDataBlock * seqDataBlock = new JAUSeqDataBlock();
if (!seqDataBlock) {
return false;
}
JSULink<JAUSeqDataBlock> * link = new JSULink<JAUSeqDataBlock>(seqDataBlock);
if (!link) {
return false;
}
u8* r25 = new(0x20) u8[param_0];
if (!r25) {
return false;
}
seqDataBlock->field_0x14 = r25;
seqDataBlock->field_0x18 = param_0;
seqDataBlock->field_0x10.setAnonymous();
JASCriticalSection cs;
if (base1.sectionHeap_->sectionHeapData_.field_0x408.appendDynamicSeqDataBlock(seqDataBlock)) {
return true;
}
return false;
}
#pragma pop
/* 802A61D0-802A6270 2A0B10 00A0+00 2/1 0/0 0/0 .text
* getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSectionHeap/getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData.s"
s32 JAUSectionHeap::getSeqData(JAISoundID param_0, JAISeqData* param_1) {
for (JSULink<JAUSection> * link = mSectionList.getFirst(); link; link = link->getNext()) {
s32 result = link->getObject()->data_.field_0x00.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, false);
JUT_ASSERT("JAUSectionHeap.cpp", 0x3e2, result != JAI_ASYNC_RESULT_RETRY);
if (result == 2) {
return 2;
}
}
return sectionHeapData_.field_0x408.getSeqData(param_0, sectionHeapData_.seqDataUser, param_1, true);
}
#pragma pop
/* 802A6270-802A6278 2A0BB0 0008+00 2/1 0/0 0/0 .text releaseSeqData__14JAUSectionHeapFv
*/
@ -593,6 +886,10 @@ int JAUSectionHeap::releaseSeqData() {
}
/* 802A6278-802A6440 2A0BB8 01C8+00 2/1 0/0 0/0 .text __dt__14JAUSectionHeapFv */
// JAUSectionHeap inheritance
#ifdef NONMATCHING
JAUSectionHeap::~JAUSectionHeap() {}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -601,6 +898,7 @@ asm JAUSectionHeap::~JAUSectionHeap() {
#include "asm/JSystem/JAudio2/JAUSectionHeap/__dt__14JAUSectionHeapFv.s"
}
#pragma pop
#endif
/* 802A6440-802A6468 2A0D80 0028+00 1/0 0/0 0/0 .text
* getStreamFileEntry__Q228@unnamed@JAUSectionHeap_cpp@14TStreamDataMgrF10JAISoundID */

View File

@ -152,7 +152,7 @@ void JAUDynamicSeqDataBlocks::setSeqDataArchive(JKRArchive* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* param_1,
asm s32 JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* param_1,
JAISeqData* param_2, bool param_3) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSeqDataBlockMgr/func_802A6AA8.s"
@ -164,7 +164,7 @@ asm void JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser*
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUDynamicSeqDataBlocks::appendDynamicSeqDataBlock(JAUSeqDataBlock* param_0) {
asm bool JAUDynamicSeqDataBlocks::appendDynamicSeqDataBlock(JAUSeqDataBlock* param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSeqDataBlockMgr/appendDynamicSeqDataBlock__23JAUDynamicSeqDataBlocksFP15JAUSeqDataBlock.s"
}
@ -186,7 +186,7 @@ static asm void JAUDynamicSeqDataBlocks_receiveLoaded_(u32 param_0, u32 param_1)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUDynamicSeqDataBlocks::loadDynamicSeq(JAISoundID param_0, bool param_1,
asm bool JAUDynamicSeqDataBlocks::loadDynamicSeq(JAISoundID param_0, bool param_1,
JAISeqDataUser* param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAUSeqDataBlockMgr/loadDynamicSeq__23JAUDynamicSeqDataBlocksF10JAISoundIDbP14JAISeqDataUser.s"

View File

@ -38,7 +38,7 @@ asm void JAUSoundTable::init(void const* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSoundTable::getTypeID(JAISoundID param_0) const {
asm u8 JAUSoundTable::getTypeID(JAISoundID param_0) const {
nofralloc
#include "asm/JSystem/JAudio2/JAUSoundTable/getTypeID__13JAUSoundTableCF10JAISoundID.s"
}

View File

@ -38,8 +38,8 @@ const char* JAUStreamFileTable::getFilePath(int index) const {
/* 802A74AC-802A74E8 2A1DEC 003C+00 1/0 0/0 0/0 .text
* getStreamFileEntry__32JAUStreamDataMgr_StreamFileTableF10JAISoundID */
int JAUStreamDataMgr_StreamFileTable::getStreamFileEntry(JAISoundID soundId) {
const char* filePath = mStreamFileTable.getFilePath(soundId.mId.mAdvancedId.mShortId);
s32 JAUStreamDataMgr_StreamFileTable::getStreamFileEntry(JAISoundID soundId) {
const char* filePath = getFilePath(soundId.mId.mAdvancedId.mShortId);
if (filePath == NULL) {
return -1;
}

View File

@ -110,7 +110,7 @@ asm Z2AudioArcLoader::Z2AudioArcLoader(JAUSection* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2AudioArcLoader::readCommandMore(u32 param_0) {
asm bool Z2AudioArcLoader::readCommandMore(u32 param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2AudioArcLoader/readCommandMore__16Z2AudioArcLoaderFUl.s"
}

View File

@ -6,6 +6,14 @@
#include "Z2AudioLib/Z2AudioMgr.h"
#include "JSystem/JAudio2/JASAiCtrl.h"
#include "JSystem/JAudio2/JASDriverIF.h"
#include "JSystem/JAudio2/JASResArcLoader.h"
#include "JSystem/JAudio2/JASSeqParser.h"
#include "JSystem/JAudio2/JAUInitializer.h"
#include "JSystem/JAudio2/JAUSectionHeap.h"
#include "JSystem/JAudio2/JAUStreamAramMgr.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "Z2AudioLib/Z2AudioArcLoader.h"
#include "Z2AudioLib/Z2SoundHandles.h"
#include "MSL_C/stdio.h"
#include "MSL_C/stdlib.h"
#include "dol2asm.h"
@ -27,73 +35,6 @@ struct Z2Param {
static f32 VOL_SE_ATMOSPHERE_DEFAULT;
};
struct JAUSection {
/* 802A50F8 */ void finishBuild();
};
struct Z2AudioArcLoader {
/* 802A9A34 */ Z2AudioArcLoader(JAUSection*);
};
struct JAU_JASInitializer {
/* 802A4AD0 */ JAU_JASInitializer();
/* 802A4B28 */ void initJASystem(JKRSolidHeap*);
};
struct JAU_JAIInitializer {
/* 802A4D3C */ JAU_JAIInitializer();
/* 802A4D60 */ void initJAInterface();
};
template <typename A0>
struct JAUStreamStaticAramMgr_ {};
/* JAUStreamStaticAramMgr_<1> */
struct JAUStreamStaticAramMgr___template0 {
/* 802CDB68 */ void func_802CDB68(void* _this);
/* 802CDC08 */ void func_802CDC08(void* _this, u32);
/* 802CDCEC */ void func_802CDCEC(void* _this, u32*);
};
template <typename A0>
struct JAUStreamAramMgrBase_ {};
/* JAUStreamAramMgrBase_<1> */
struct JAUStreamAramMgrBase___template0 {
/* 802CD7F8 */ void func_802CD7F8(void* _this);
};
struct JAUSectionHeap {
/* 802A5E60 */ void setSeqDataArchive(JKRArchive*);
/* 802A60AC */ void newDynamicSeqBlock(u32);
};
struct JAUAudioArcLoader {
/* 802A478C */ void load(void const*);
};
struct JAUAudioArcInterpreter {
/* 802A4260 */ ~JAUAudioArcInterpreter();
};
struct JASSeqParser {
static u8 sCallBackFunc[4];
};
struct JASResArcLoader {
/* 80290C04 */ void getResMaxSize(JKRArchive const*);
};
struct JASAramStream {
static u8 sBlockSize[4];
};
struct JAIStreamAramMgr {
/* 802A3B20 */ ~JAIStreamAramMgr();
};
struct JAISoundInfo {
/* 802A2D34 */ JAISoundInfo(bool);
};
//
// Forward References:
//
@ -228,6 +169,14 @@ SECTION_DATA extern void* __vt__10Z2AudioMgr[3] = {
Z2AudioMgr* Z2AudioMgr::mAudioMgrPtr;
/* 802CD248-802CD34C 2C7B88 0104+00 0/0 1/1 0/0 .text __ct__10Z2AudioMgrFv */
// wild destructors appeared!
#ifdef NONMATCHING
Z2AudioMgr::Z2AudioMgr() : mSoundStarter(true) {
mAudioMgrPtr = this;
mResettingFlag = false;
field_0x519 = false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -236,6 +185,7 @@ asm Z2AudioMgr::Z2AudioMgr() {
#include "asm/Z2AudioLib/Z2AudioMgr/__ct__10Z2AudioMgrFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8039CA58-8039CA58 0290B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
@ -277,6 +227,90 @@ SECTION_SDATA2 static f32 lit_3932 = 1.0f;
/* 802CD34C-802CD7F8 2C7C8C 04AC+00 0/0 1/1 0/0 .text
* init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive */
// JAUSectionHeap inheritance
#ifdef NONMATCHING
void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKRArchive* param_3) {
JAU_JASInitializer stack_60;
stack_60.field_0x1c = 0x8c;
stack_60.field_0x2c = 1.3f;
stack_60.field_0x30 = "Audiores/Waves/";
stack_60.field_0x04 = param_1;
stack_60.initJASystem(param_0);
JAU_JAIInitializer stack_90;
stack_90.field_0x0 = 0x4e;
stack_90.field_0x4 = 4;
stack_90.field_0xc = 0x30;
stack_90.initJAInterface();
JAISeMgr *seMgr = mSoundMgr.getSeMgr();
JAISeCategoryArrangement stack_80;
stack_80.mItems[0].mMaxActiveSe = 4;
stack_80.mItems[0].mMaxInactiveSe = 2;
stack_80.mItems[1].mMaxActiveSe = 2;
stack_80.mItems[1].mMaxInactiveSe = 1;
stack_80.mItems[2].mMaxActiveSe = 6;
stack_80.mItems[2].mMaxInactiveSe = 3;
stack_80.mItems[3].mMaxActiveSe = 16;
stack_80.mItems[3].mMaxInactiveSe = 8;
stack_80.mItems[4].mMaxActiveSe = 8;
stack_80.mItems[4].mMaxInactiveSe = 4;
stack_80.mItems[5].mMaxActiveSe = 6;
stack_80.mItems[5].mMaxInactiveSe = 3;
stack_80.mItems[6].mMaxActiveSe = 6;
stack_80.mItems[6].mMaxInactiveSe = 3;
stack_80.mItems[7].mMaxActiveSe = 12;
stack_80.mItems[7].mMaxInactiveSe = 8;
stack_80.mItems[8].mMaxActiveSe = 10;
stack_80.mItems[8].mMaxInactiveSe = 5;
stack_80.mItems[9].mMaxActiveSe = 8;
stack_80.mItems[9].mMaxInactiveSe = 4;
stack_80.mItems[10].mMaxActiveSe = 4;
stack_80.mItems[10].mMaxInactiveSe = 2;
seMgr->setCategoryArrangement(stack_80);
seMgr->getCategory(0)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(1)->getParams()->moveVolume(1.0f, 0);
seMgr->getCategory(2)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(3)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(4)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(5)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(6)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(7)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(8)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(9)->getParams()->moveVolume(0.9448819f, 0);
seMgr->getCategory(10)->getParams()->moveVolume(1.0f, 0);
seMgr->getParams()->moveVolume(1.0f, 0);
JAISeqMgr* seqMgr = mSoundMgr.getSeqMgr();
seqMgr->getParams()->moveVolume(1.0f, 0);
JAIStreamMgr* streamMgr = mSoundMgr.getStreamMgr();
JAUStreamStaticAramMgr_<1>* streamStaticAramMgr = new(param_0, 0) JAUStreamStaticAramMgr_<1>();
streamStaticAramMgr->reserveAram(NULL, 0, 0x14);
streamMgr->setStreamAramMgr(streamStaticAramMgr);
streamMgr->getParams()->moveVolume(1.0f, 0);
JASPoolAllocObject<Z2Audible>::newMemPool(0x4e);
mSoundMgr.getSeMgr()->setAudience(&mAudience);
mSoundMgr.getSeqMgr()->setAudience(&mAudience);
JASPoolAllocObject<Z2SoundHandlePool>::newMemPool(0x4e);
OSReport("[Z2AudioMgr::init]before Create Section: %d\n", param_0->getFreeSize());
JAUSectionHeap* sectionHeap = JAUNewSectionHeap(true);
sectionHeap->setSeqDataArchive(param_3);
size_t resMaxSize = JASResArcLoader::getResMaxSize(param_3);
sectionHeap->newDynamicSeqBlock(0xe00);
sectionHeap->newDynamicSeqBlock(0x17e0);
sectionHeap->newDynamicSeqBlock(0x5380);
sectionHeap->newDynamicSeqBlock(resMaxSize);
Z2AudioArcLoader stack_a0(sectionHeap);
bool baaLoadResult = stack_a0.load(param_2);
JUT_ASSERT("Z2AudioMgr.cpp", 0xfc, baaLoadResult);
seqMgr->setSeqDataMgr(sectionHeap->getSeqDataMgr());
if (sectionHeap->getStreamDataMgr()) {
streamMgr->setStreamDataMgr(sectionHeap->getStreamDataMgr());
} else {
streamMgr->setStreamDataMgr(&mSoundInfo);
}
sectionHeap->finishBuild();
initSe();
JASSeqParser::registerSeqCallback(seqCallback);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -285,6 +319,7 @@ asm void Z2AudioMgr::init(JKRSolidHeap* param_0, u32 param_1, void* param_2, JKR
#include "asm/Z2AudioLib/Z2AudioMgr/init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive.s"
}
#pragma pop
#endif
/* 802CD7F8-802CD888 2C8138 0090+00 1/0 0/0 0/0 .text __dt__24JAUStreamAramMgrBase_<1>Fv
*/
@ -306,11 +341,11 @@ void Z2AudioMgr::setOutputMode(u32 mode) {
/* 802CD8B4-802CD904 2C81F4 0050+00 1/1 0/0 0/0 .text zeldaGFrameWork__10Z2AudioMgrFv */
void Z2AudioMgr::zeldaGFrameWork() {
mStatusMgr.processTime();
processTime();
mSpeechMgr.framework();
mSeMgr.processSeFramework();
mSeqMgr.processBgmFramework();
mStatusMgr.processHeartGaugeSound();
processSeFramework();
processBgmFramework();
processHeartGaugeSound();
}
/* 802CD904-802CD974 2C8244 0070+00 0/0 1/1 0/0 .text gframeProcess__10Z2AudioMgrFv */
@ -322,7 +357,7 @@ void Z2AudioMgr::gframeProcess() {
}
} else {
mSoundMgr.framework();
mSceneMgr.framework();
framework();
}
}
@ -378,6 +413,16 @@ asm bool Z2AudioMgr::hasReset() const {
/* 802CDB1C-802CDB68 2C845C 004C+00 1/0 1/0 0/0 .text
* startSound__10Z2AudioMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3<f> */
// vtable order
#ifdef NONMATCHING
int Z2AudioMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
JGeometry::TVec3<f32> const* param_2) {
if (mResettingFlag) {
return 0;
}
return mSoundMgr.startSound(param_0, param_1, param_2);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -388,6 +433,7 @@ extern "C" asm void func_802CDB1C() {
#include "asm/Z2AudioLib/Z2AudioMgr/func_802CDB1C.s"
}
#pragma pop
#endif
/* 802CDB68-802CDC08 2C84A8 00A0+00 1/0 0/0 0/0 .text __dt__26JAUStreamStaticAramMgr_<1>Fv */
#pragma push

View File

@ -164,24 +164,12 @@ extern "C" extern u8 __OSReport_disable;
//
/* 802C589C-802C58AC 2C01DC 0010+00 3/3 0/0 0/0 .text __ct__11Z2EnvSeBaseFP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2EnvSeBase::Z2EnvSeBase(Vec* param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__11Z2EnvSeBaseFP3Vec.s"
Z2EnvSeBase::Z2EnvSeBase(Vec* param_0) {
mPos = param_0;
}
#pragma pop
/* 802C58AC-802C5908 2C01EC 005C+00 3/3 0/0 0/0 .text __dt__11Z2EnvSeBaseFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2EnvSeBase::~Z2EnvSeBase() {
nofralloc
#include "asm/Z2AudioLib/Z2EnvSeMgr/__dt__11Z2EnvSeBaseFv.s"
}
#pragma pop
Z2EnvSeBase::~Z2EnvSeBase() {}
/* ############################################################################################## */
/* 80455D40-80455D44 004340 0004+00 2/2 0/0 0/0 .sdata2 @3501 */
@ -237,31 +225,25 @@ asm void Z2EnvSeBase::startEnvSeLevel(JAISoundID param_0, f32 param_1, f32 param
/* ############################################################################################## */
/* 8039C250-8039C260 0288B0 000C+04 2/2 0/0 0/0 .rodata cNullVec__6Z2Calc */
SECTION_RODATA static u8 const cNullVec__6Z2Calc[12 + 4 /* padding */] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
};
SECTION_RODATA static Vec const cNullVec__6Z2Calc = {0.0f, 0.0f, 0.0f};
COMPILER_STRIP_GATE(0x8039C250, &cNullVec__6Z2Calc);
/* 80455D60-80455D64 004360 0004+00 10/10 0/0 0/0 .sdata2 @3574 */
SECTION_SDATA2 static f32 lit_3574 = 0.5f;
/* 802C5C9C-802C5D1C 2C05DC 0080+00 1/1 0/0 0/0 .text __ct__10Z2EnvSeDirFP3Vec */
// matches with literals
#ifdef NONMATCHING
Z2EnvSeDir::Z2EnvSeDir(Vec* param_0) {
field_0x8 = 0.5f;
field_0xc = 0.5f;
if (param_0) {
setPanDir(param_0);
} else {
mPanDir = cNullVec__6Z2Calc;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -270,22 +252,24 @@ asm Z2EnvSeDir::Z2EnvSeDir(Vec* param_0) {
#include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__10Z2EnvSeDirFP3Vec.s"
}
#pragma pop
#endif
/* 802C5D1C-802C5D70 2C065C 0054+00 1/1 0/0 0/0 .text __dt__10Z2EnvSeDirFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2EnvSeDir::~Z2EnvSeDir() {
nofralloc
#include "asm/Z2AudioLib/Z2EnvSeMgr/__dt__10Z2EnvSeDirFv.s"
}
#pragma pop
Z2EnvSeDir::~Z2EnvSeDir() {}
/* ############################################################################################## */
/* 80455D64-80455D68 004364 0004+00 1/1 0/0 0/0 .sdata2 @3585 */
SECTION_SDATA2 static f32 lit_3585 = -1000.0f;
/* 802C5D70-802C5D9C 2C06B0 002C+00 2/2 0/0 0/0 .text setPanDir__10Z2EnvSeDirFP3Vec */
// matches with literals
#ifdef NONMATCHING
void Z2EnvSeDir::setPanDir(Vec* dir) {
mPanDir.x = dir->x * -1000.0f;
mPanDir.y = dir->y * -1000.0f;
mPanDir.z = dir->z * -1000.0f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -294,6 +278,7 @@ asm void Z2EnvSeDir::setPanDir(Vec* param_0) {
#include "asm/Z2AudioLib/Z2EnvSeMgr/setPanDir__10Z2EnvSeDirFP3Vec.s"
}
#pragma pop
#endif
/* 802C5D9C-802C5E90 2C06DC 00F4+00 1/1 0/0 0/0 .text calcPan__10Z2EnvSeDirFf */
#pragma push
@ -324,6 +309,17 @@ SECTION_SDATA2 static f32 lit_3654 = 0.0018554000416770577f;
SECTION_SDATA2 static f32 lit_3655 = 0.0008553999941796064f;
/* 802C5ECC-802C5F28 2C080C 005C+00 1/1 0/0 0/0 .text __ct__14Z2EnvSeAutoPanFv */
// matches with literals
#ifdef NONMATCHING
Z2EnvSeAutoPan::Z2EnvSeAutoPan() {
field_0x8 = 0.5f;
field_0xc = 0.5f;
field_0x10 = 0.0018554000416770577f;
field_0x14 = 0.0008553999941796064f;
field_0x18 = 1;
field_0x19 = 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -332,16 +328,10 @@ asm Z2EnvSeAutoPan::Z2EnvSeAutoPan() {
#include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__14Z2EnvSeAutoPanFv.s"
}
#pragma pop
#endif
/* 802C5F28-802C5F7C 2C0868 0054+00 1/1 0/0 0/0 .text __dt__14Z2EnvSeAutoPanFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2EnvSeAutoPan::~Z2EnvSeAutoPan() {
nofralloc
#include "asm/Z2AudioLib/Z2EnvSeMgr/__dt__14Z2EnvSeAutoPanFv.s"
}
#pragma pop
Z2EnvSeAutoPan::~Z2EnvSeAutoPan() {}
/* 802C5F7C-802C5F98 2C08BC 001C+00 2/2 0/0 0/0 .text setPanParam__14Z2EnvSeAutoPanFffbbff */
#pragma push
@ -472,6 +462,41 @@ SECTION_SDATA2 static f32 lit_3776 = 0.0010000000474974513f;
SECTION_SDATA2 static f32 lit_3777 = 0.0037908784579485655f;
/* 802C611C-802C6540 2C0A5C 0424+00 0/0 1/1 0/0 .text __ct__10Z2EnvSeMgrFv */
// matches with literals
#ifdef NONMATCHING
Z2EnvSeMgr::Z2EnvSeMgr()
: JASGlobalInstance<Z2EnvSeMgr>(this), field_0x38(), field_0x48(1.0f), field_0x4c(1.0f),
field_0x50(1.0f), field_0x140(), mSnowPower(), mWindType(), field_0x188(), field_0x1ac(1.0f),
field_0x1b0(1.0f), field_0x1b4(1.0f), field_0x1b8(), field_0x1e0(), field_0x1e4(1.0f),
field_0x1e8(1.0f), field_0x1ec(1.0f), field_0x214(), field_0x218(1.0f), field_0x21c(1.0f),
field_0x220(1.0f), field_0x248(), field_0x24c(1.0f), field_0x250(1.0f), field_0x254(1.0f),
field_0x27c(), field_0x280(1.0f), field_0x284(1.0f), field_0x288(1.0f), field_0x2b0(),
field_0x2b4(1.0f), field_0x2b8(1.0f), field_0x2bc(1.0f), field_0x2e4(), mFogDensity() {
field_0x3c = 0.0f;
field_0x40 = 0.0f;
field_0x44 = 0.0f;
field_0x54 = 0.0f;
field_0x58 = 0.0f;
field_0x5c = 0.0f;
field_0x39 = 0;
field_0x2e8.setParam(0.1f, 0.007823764f, 0.06f);
field_0x2f8.setParam(0.2f, 0.007823764f, 0.06f);
field_0x90.setParam(0.1f, 0.02630252f, 0.005f);
field_0xa0.setParam(0.9f, 0.02331011f, 0.003f);
field_0xb0.setParam(0.2f, 0.006385157f, 0.004f);
field_0xc0.setParam(0.8f, 0.006188805f, 0.0045f);
field_0xd0.setParam(0.3f, 0.05343298f, 0.002f);
field_0xe0.setParam(0.7f, 0.04256627f, 0.0025f);
field_0xf0.setParam(0.4f, 0.01293395f, 0.006f);
field_0x100.setParam(0.6f, 0.01215741f, 0.0065f);
field_0x18c.setParam(0.1f, 0.02331011f, 0.005f);
field_0x19c.setParam(0.5f, 0.05343298f, 0.0025f);
field_0x64.setVolumeScale(1.0f);
field_0x2c0.setVolumeScale(1.0f);
field_0x120.setParam(0.5f, 0.02092357f, 0.001f);
field_0x130.setParam(0.1f, 0.003790878f, 0.005f);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -480,16 +505,10 @@ asm Z2EnvSeMgr::Z2EnvSeMgr() {
#include "asm/Z2AudioLib/Z2EnvSeMgr/__ct__10Z2EnvSeMgrFv.s"
}
#pragma pop
#endif
/* 802C6540-802C66B0 2C0E80 0170+00 0/0 1/1 0/0 .text __dt__10Z2EnvSeMgrFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2EnvSeMgr::~Z2EnvSeMgr() {
nofralloc
#include "asm/Z2AudioLib/Z2EnvSeMgr/__dt__10Z2EnvSeMgrFv.s"
}
#pragma pop
Z2EnvSeMgr::~Z2EnvSeMgr() {}
/* ############################################################################################## */
/* 80455DEC-80455DF0 0043EC 0004+00 1/1 0/0 0/0 .sdata2 @3928 */

View File

@ -139,7 +139,6 @@ extern "C" void _savegpr_16();
extern "C" void _savegpr_29();
extern "C" void _restgpr_16();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 struct_80450860[4];

View File

@ -4,7 +4,12 @@
//
#include "Z2AudioLib/Z2SoundInfo.h"
#include "JSystem/JAudio2/JAISeq.h"
#include "JSystem/JAudio2/JAUAudibleParam.h"
#include "JSystem/JAudio2/JAUSoundTable.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "dol2asm.h"
#include "dolphin/dvd/dvd.h"
//
// Types:
@ -19,11 +24,6 @@ struct JAUStdSoundTableType {
static u32 STRM_CH_SHIFT;
};
struct JAUSoundTable {
/* 802A7160 */ void getTypeID(JAISoundID) const;
/* 802A728C */ void getData(JAISoundID) const;
};
//
// Forward References:
//
@ -59,7 +59,6 @@ extern "C" void getData__13JAUSoundTableCF10JAISoundID();
extern "C" void linearTransform__6Z2CalcFfffffb();
extern "C" void getRandom_0_1__6Z2CalcFv();
extern "C" void __dl__FPv();
extern "C" void DVDConvertPathToEntrynum();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
@ -81,37 +80,35 @@ extern "C" extern u8 __OSReport_disable;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getBgmSeqResourceID(JAISoundID param_0) const {
asm u16 Z2SoundInfo::getBgmSeqResourceID(JAISoundID param_0) const {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getBgmSeqResourceID__11Z2SoundInfoCF10JAISoundID.s"
}
#pragma pop
/* 802BB090-802BB0D8 2B59D0 0048+00 1/0 0/0 0/0 .text getSoundType__11Z2SoundInfoCF10JAISoundID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getSoundType(JAISoundID param_0) const {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getSoundType__11Z2SoundInfoCF10JAISoundID.s"
u32 Z2SoundInfo::getSoundType(JAISoundID param_0) const {
switch (param_0.mId.mBytes.b0) {
case 0:
return 0;
case 1:
return 1;
case 2:
return 2;
}
return -1;
}
#pragma pop
/* 802BB0D8-802BB0E0 2B5A18 0008+00 1/0 0/0 0/0 .text getCategory__11Z2SoundInfoCF10JAISoundID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getCategory(JAISoundID param_0) const {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getCategory__11Z2SoundInfoCF10JAISoundID.s"
int Z2SoundInfo::getCategory(JAISoundID param_0) const {
return param_0.mId.mBytes.b1;
}
#pragma pop
/* 802BB0E0-802BB158 2B5A20 0078+00 1/0 0/0 0/0 .text getPriority__11Z2SoundInfoCF10JAISoundID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getPriority(JAISoundID param_0) const {
asm u32 Z2SoundInfo::getPriority(JAISoundID param_0) const {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getPriority__11Z2SoundInfoCF10JAISoundID.s"
}
@ -185,14 +182,9 @@ asm void Z2SoundInfo::getSeInfo(JAISoundID param_0, JAISe* param_1) const {
/* 802BB8B4-802BB8E0 2B61F4 002C+00 1/0 0/0 0/0 .text
* getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getSeqInfo(JAISoundID param_0, JAISeq* param_1) const {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getSeqInfo__11Z2SoundInfoCF10JAISoundIDP6JAISeq.s"
void Z2SoundInfo::getSeqInfo(JAISoundID param_0, JAISeq* param_1) const {
getSoundInfo_(param_0, param_1);
}
#pragma pop
/* ############################################################################################## */
/* 80455A90-80455A94 004090 0004+00 1/1 0/0 0/0 .sdata2 STRM_CH_SHIFT__20JAUStdSoundTableType */
@ -217,7 +209,7 @@ asm void Z2SoundInfo::getStreamInfo(JAISoundID param_0, JAIStream* param_1) cons
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getStreamFilePath(JAISoundID param_0) {
asm const char* Z2SoundInfo::getStreamFilePath(JAISoundID param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getStreamFilePath__11Z2SoundInfoF10JAISoundID.s"
}
@ -225,20 +217,16 @@ asm void Z2SoundInfo::getStreamFilePath(JAISoundID param_0) {
/* 802BBA88-802BBAC8 2B63C8 0040+00 2/1 0/0 0/0 .text
* getStreamFileEntry__11Z2SoundInfoF10JAISoundID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getStreamFileEntry(JAISoundID param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getStreamFileEntry__11Z2SoundInfoF10JAISoundID.s"
s32 Z2SoundInfo::getStreamFileEntry(JAISoundID param_0) {
const char* path = getStreamFilePath(param_0);
return !path ? -1 : DVDConvertPathToEntrynum(path);
}
#pragma pop
/* 802BBAC8-802BBB48 2B6408 0080+00 3/3 4/4 0/0 .text getSwBit__11Z2SoundInfoCF10JAISoundID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundInfo::getSwBit(JAISoundID param_0) const {
asm int Z2SoundInfo::getSwBit(JAISoundID param_0) const {
nofralloc
#include "asm/Z2AudioLib/Z2SoundInfo/getSwBit__11Z2SoundInfoCF10JAISoundID.s"
}

View File

@ -158,7 +158,7 @@ SECTION_SDATA2 static f32 lit_3689 = -1.0f;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void seqCallback(JASTrack* param_0, u16 param_1) {
asm u16 seqCallback(JASTrack* param_0, u16 param_1) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundMgr/seqCallback__FP8JASTrackUs.s"
}
@ -212,7 +212,7 @@ SECTION_SDATA2 static f64 lit_3909 = 4503599627370496.0 /* cast u32 to float */;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
asm int Z2SoundMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1,
JGeometry::TVec3<f32> const* param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundMgr/func_802A9EE8.s"

View File

@ -52,7 +52,6 @@ extern "C" void _savegpr_23();
extern "C" void _savegpr_27();
extern "C" void _restgpr_23();
extern "C" void _restgpr_27();
extern "C" void strcmp();
extern "C" extern u8 data_80450B80[4];
extern "C" extern Z2SeqMgr* data_80450B84;
extern "C" u8 mLinkPtr__14Z2CreatureLink[4 + 4 /* padding */];

View File

@ -533,7 +533,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -244,7 +244,6 @@ extern "C" void _restgpr_21();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -459,7 +459,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];

View File

@ -564,7 +564,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];

View File

@ -207,8 +207,6 @@ extern "C" extern char const* const d_a_movie_player__stringBase0;
// External References:
//
SECTION_INIT void memset();
SECTION_INIT void memcpy();
extern "C" void fadeOut__13mDoGph_gInf_cFf();
extern "C" void mDoExt_getArchiveHeap__Fv();
extern "C" void __ct__10fopAc_ac_cFv();
@ -250,7 +248,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void __div2i();
extern "C" void sprintf();
extern "C" void strcmp();
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_clearColor[4];
extern "C" extern u8 mBlureFlag__13mDoGph_gInf_c[4];

View File

@ -474,7 +474,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];

View File

@ -402,7 +402,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];

View File

@ -206,7 +206,6 @@ extern "C" void PSMTXCopy();
extern "C" void PSMTXTrans();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -583,7 +583,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Cyl[36];

View File

@ -319,7 +319,6 @@ extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Cyl[36];

View File

@ -114,7 +114,7 @@ int daWarpBug_c::execute() {
if (player_p->checkMidnaWarp()) {
mpBrk->play();
mpBtk->play();
Z2GetAudioMgr()->mSeMgr.seStartLevel(Z2SE_EN_YM_WAIT, &current.pos, NULL, 0, 1.0f, 1.0f,
Z2GetAudioMgr()->seStartLevel(Z2SE_EN_YM_WAIT, &current.pos, NULL, 0, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}
#endif

View File

@ -345,7 +345,6 @@ extern "C" void _restgpr_24();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -427,7 +427,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -339,7 +339,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];

View File

@ -393,7 +393,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -428,7 +428,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -390,7 +390,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -328,7 +328,6 @@ extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -345,7 +345,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];

View File

@ -369,7 +369,6 @@ extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -525,7 +525,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];

View File

@ -601,7 +601,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];

View File

@ -418,7 +418,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern void* __vt__8dCcD_Sph[36];

View File

@ -539,7 +539,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
extern "C" extern u8 const j3dDefaultLightInfo[52];
extern "C" extern void* g_fopAc_Method[8];

View File

@ -419,7 +419,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* __vt__19mDoExt_3DlineMat0_c[5];
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];

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