diff --git a/Progress.md b/Progress.md index c21892900b3..d0cf12cfcea 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 28.299278% | 1017796 | 3596544 +.text | 28.373683% | 1020472 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.857986% | 1441732 | 4020672 +Total | 35.924542% | 1444408 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.857986% | 1441732 | 4020672 +main.dol | 35.924542% | 1444408 | 4020672 RELs | 33.847533% | 3892576 | 11500324 -Total | 34.368336% | 5334308 | 15520996 +Total | 34.385577% | 5336984 | 15520996 ## RELs diff --git a/asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_calc___16JAISeCategoryMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_calc___16JAISeCategoryMgrFv.s deleted file mode 100644 index e032e832f80..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_calc___16JAISeCategoryMgrFv.s +++ /dev/null @@ -1,104 +0,0 @@ -lbl_8029F9C4: -/* 8029F9C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029F9C8 7C 08 02 A6 */ mflr r0 -/* 8029F9CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029F9D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029F9D4 93 C1 00 08 */ stw r30, 8(r1) -/* 8029F9D8 7C 7E 1B 78 */ mr r30, r3 -/* 8029F9DC C0 23 00 08 */ lfs f1, 8(r3) -/* 8029F9E0 80 63 00 24 */ lwz r3, 0x24(r3) -/* 8029F9E4 28 03 00 01 */ cmplwi r3, 1 -/* 8029F9E8 40 81 00 18 */ ble lbl_8029FA00 -/* 8029F9EC 38 03 FF FF */ addi r0, r3, -1 -/* 8029F9F0 90 1E 00 24 */ stw r0, 0x24(r30) -/* 8029F9F4 C0 1E 00 1C */ lfs f0, 0x1c(r30) -/* 8029F9F8 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029F9FC 48 00 00 14 */ b lbl_8029FA10 -lbl_8029FA00: -/* 8029FA00 40 82 00 10 */ bne lbl_8029FA10 -/* 8029FA04 38 00 00 00 */ li r0, 0 -/* 8029FA08 90 1E 00 24 */ stw r0, 0x24(r30) -/* 8029FA0C C0 3E 00 20 */ lfs f1, 0x20(r30) -lbl_8029FA10: -/* 8029FA10 D0 3E 00 08 */ stfs f1, 8(r30) -/* 8029FA14 C0 3E 00 10 */ lfs f1, 0x10(r30) -/* 8029FA18 80 7E 00 30 */ lwz r3, 0x30(r30) -/* 8029FA1C 28 03 00 01 */ cmplwi r3, 1 -/* 8029FA20 40 81 00 18 */ ble lbl_8029FA38 -/* 8029FA24 38 03 FF FF */ addi r0, r3, -1 -/* 8029FA28 90 1E 00 30 */ stw r0, 0x30(r30) -/* 8029FA2C C0 1E 00 28 */ lfs f0, 0x28(r30) -/* 8029FA30 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029FA34 48 00 00 14 */ b lbl_8029FA48 -lbl_8029FA38: -/* 8029FA38 40 82 00 10 */ bne lbl_8029FA48 -/* 8029FA3C 38 00 00 00 */ li r0, 0 -/* 8029FA40 90 1E 00 30 */ stw r0, 0x30(r30) -/* 8029FA44 C0 3E 00 2C */ lfs f1, 0x2c(r30) -lbl_8029FA48: -/* 8029FA48 D0 3E 00 10 */ stfs f1, 0x10(r30) -/* 8029FA4C C0 3E 00 0C */ lfs f1, 0xc(r30) -/* 8029FA50 80 7E 00 3C */ lwz r3, 0x3c(r30) -/* 8029FA54 28 03 00 01 */ cmplwi r3, 1 -/* 8029FA58 40 81 00 18 */ ble lbl_8029FA70 -/* 8029FA5C 38 03 FF FF */ addi r0, r3, -1 -/* 8029FA60 90 1E 00 3C */ stw r0, 0x3c(r30) -/* 8029FA64 C0 1E 00 34 */ lfs f0, 0x34(r30) -/* 8029FA68 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029FA6C 48 00 00 14 */ b lbl_8029FA80 -lbl_8029FA70: -/* 8029FA70 40 82 00 10 */ bne lbl_8029FA80 -/* 8029FA74 38 00 00 00 */ li r0, 0 -/* 8029FA78 90 1E 00 3C */ stw r0, 0x3c(r30) -/* 8029FA7C C0 3E 00 38 */ lfs f1, 0x38(r30) -lbl_8029FA80: -/* 8029FA80 D0 3E 00 0C */ stfs f1, 0xc(r30) -/* 8029FA84 C0 3E 00 18 */ lfs f1, 0x18(r30) -/* 8029FA88 80 7E 00 54 */ lwz r3, 0x54(r30) -/* 8029FA8C 28 03 00 01 */ cmplwi r3, 1 -/* 8029FA90 40 81 00 18 */ ble lbl_8029FAA8 -/* 8029FA94 38 03 FF FF */ addi r0, r3, -1 -/* 8029FA98 90 1E 00 54 */ stw r0, 0x54(r30) -/* 8029FA9C C0 1E 00 4C */ lfs f0, 0x4c(r30) -/* 8029FAA0 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029FAA4 48 00 00 14 */ b lbl_8029FAB8 -lbl_8029FAA8: -/* 8029FAA8 40 82 00 10 */ bne lbl_8029FAB8 -/* 8029FAAC 38 00 00 00 */ li r0, 0 -/* 8029FAB0 90 1E 00 54 */ stw r0, 0x54(r30) -/* 8029FAB4 C0 3E 00 50 */ lfs f1, 0x50(r30) -lbl_8029FAB8: -/* 8029FAB8 D0 3E 00 18 */ stfs f1, 0x18(r30) -/* 8029FABC C0 3E 00 14 */ lfs f1, 0x14(r30) -/* 8029FAC0 80 7E 00 48 */ lwz r3, 0x48(r30) -/* 8029FAC4 28 03 00 01 */ cmplwi r3, 1 -/* 8029FAC8 40 81 00 18 */ ble lbl_8029FAE0 -/* 8029FACC 38 03 FF FF */ addi r0, r3, -1 -/* 8029FAD0 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8029FAD4 C0 1E 00 40 */ lfs f0, 0x40(r30) -/* 8029FAD8 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029FADC 48 00 00 14 */ b lbl_8029FAF0 -lbl_8029FAE0: -/* 8029FAE0 40 82 00 10 */ bne lbl_8029FAF0 -/* 8029FAE4 38 00 00 00 */ li r0, 0 -/* 8029FAE8 90 1E 00 48 */ stw r0, 0x48(r30) -/* 8029FAEC C0 3E 00 44 */ lfs f1, 0x44(r30) -lbl_8029FAF0: -/* 8029FAF0 D0 3E 00 14 */ stfs f1, 0x14(r30) -/* 8029FAF4 83 FE 00 58 */ lwz r31, 0x58(r30) -/* 8029FAF8 48 00 00 10 */ b lbl_8029FB08 -lbl_8029FAFC: -/* 8029FAFC 80 7F 00 00 */ lwz r3, 0(r31) -/* 8029FB00 4B FF F9 CD */ bl JAISeCategoryMgr_calc___5JAISeFv -/* 8029FB04 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_8029FB08: -/* 8029FB08 28 1F 00 00 */ cmplwi r31, 0 -/* 8029FB0C 40 82 FF F0 */ bne lbl_8029FAFC -/* 8029FB10 7F C3 F3 78 */ mr r3, r30 -/* 8029FB14 48 00 02 2D */ bl sortByPriority___16JAISeCategoryMgrFv -/* 8029FB18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029FB1C 83 C1 00 08 */ lwz r30, 8(r1) -/* 8029FB20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029FB24 7C 08 03 A6 */ mtlr r0 -/* 8029FB28 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029FB2C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/calc__8JAISeMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/calc__8JAISeMgrFv.s deleted file mode 100644 index 6c65557c3b3..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/calc__8JAISeMgrFv.s +++ /dev/null @@ -1,113 +0,0 @@ -lbl_802A0574: -/* 802A0574 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A0578 7C 08 02 A6 */ mflr r0 -/* 802A057C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A0580 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0584 48 0C 1C 59 */ bl _savegpr_29 -/* 802A0588 7C 7F 1B 78 */ mr r31, r3 -/* 802A058C C0 23 06 D4 */ lfs f1, 0x6d4(r3) -/* 802A0590 80 63 06 F0 */ lwz r3, 0x6f0(r3) -/* 802A0594 28 03 00 01 */ cmplwi r3, 1 -/* 802A0598 40 81 00 18 */ ble lbl_802A05B0 -/* 802A059C 38 03 FF FF */ addi r0, r3, -1 -/* 802A05A0 90 1F 06 F0 */ stw r0, 0x6f0(r31) -/* 802A05A4 C0 1F 06 E8 */ lfs f0, 0x6e8(r31) -/* 802A05A8 EC 21 00 2A */ fadds f1, f1, f0 -/* 802A05AC 48 00 00 14 */ b lbl_802A05C0 -lbl_802A05B0: -/* 802A05B0 40 82 00 10 */ bne lbl_802A05C0 -/* 802A05B4 38 00 00 00 */ li r0, 0 -/* 802A05B8 90 1F 06 F0 */ stw r0, 0x6f0(r31) -/* 802A05BC C0 3F 06 EC */ lfs f1, 0x6ec(r31) -lbl_802A05C0: -/* 802A05C0 D0 3F 06 D4 */ stfs f1, 0x6d4(r31) -/* 802A05C4 C0 3F 06 DC */ lfs f1, 0x6dc(r31) -/* 802A05C8 80 7F 06 FC */ lwz r3, 0x6fc(r31) -/* 802A05CC 28 03 00 01 */ cmplwi r3, 1 -/* 802A05D0 40 81 00 18 */ ble lbl_802A05E8 -/* 802A05D4 38 03 FF FF */ addi r0, r3, -1 -/* 802A05D8 90 1F 06 FC */ stw r0, 0x6fc(r31) -/* 802A05DC C0 1F 06 F4 */ lfs f0, 0x6f4(r31) -/* 802A05E0 EC 21 00 2A */ fadds f1, f1, f0 -/* 802A05E4 48 00 00 14 */ b lbl_802A05F8 -lbl_802A05E8: -/* 802A05E8 40 82 00 10 */ bne lbl_802A05F8 -/* 802A05EC 38 00 00 00 */ li r0, 0 -/* 802A05F0 90 1F 06 FC */ stw r0, 0x6fc(r31) -/* 802A05F4 C0 3F 06 F8 */ lfs f1, 0x6f8(r31) -lbl_802A05F8: -/* 802A05F8 D0 3F 06 DC */ stfs f1, 0x6dc(r31) -/* 802A05FC C0 3F 06 D8 */ lfs f1, 0x6d8(r31) -/* 802A0600 80 7F 07 08 */ lwz r3, 0x708(r31) -/* 802A0604 28 03 00 01 */ cmplwi r3, 1 -/* 802A0608 40 81 00 18 */ ble lbl_802A0620 -/* 802A060C 38 03 FF FF */ addi r0, r3, -1 -/* 802A0610 90 1F 07 08 */ stw r0, 0x708(r31) -/* 802A0614 C0 1F 07 00 */ lfs f0, 0x700(r31) -/* 802A0618 EC 21 00 2A */ fadds f1, f1, f0 -/* 802A061C 48 00 00 14 */ b lbl_802A0630 -lbl_802A0620: -/* 802A0620 40 82 00 10 */ bne lbl_802A0630 -/* 802A0624 38 00 00 00 */ li r0, 0 -/* 802A0628 90 1F 07 08 */ stw r0, 0x708(r31) -/* 802A062C C0 3F 07 04 */ lfs f1, 0x704(r31) -lbl_802A0630: -/* 802A0630 D0 3F 06 D8 */ stfs f1, 0x6d8(r31) -/* 802A0634 C0 3F 06 E4 */ lfs f1, 0x6e4(r31) -/* 802A0638 80 7F 07 20 */ lwz r3, 0x720(r31) -/* 802A063C 28 03 00 01 */ cmplwi r3, 1 -/* 802A0640 40 81 00 18 */ ble lbl_802A0658 -/* 802A0644 38 03 FF FF */ addi r0, r3, -1 -/* 802A0648 90 1F 07 20 */ stw r0, 0x720(r31) -/* 802A064C C0 1F 07 18 */ lfs f0, 0x718(r31) -/* 802A0650 EC 21 00 2A */ fadds f1, f1, f0 -/* 802A0654 48 00 00 14 */ b lbl_802A0668 -lbl_802A0658: -/* 802A0658 40 82 00 10 */ bne lbl_802A0668 -/* 802A065C 38 00 00 00 */ li r0, 0 -/* 802A0660 90 1F 07 20 */ stw r0, 0x720(r31) -/* 802A0664 C0 3F 07 1C */ lfs f1, 0x71c(r31) -lbl_802A0668: -/* 802A0668 D0 3F 06 E4 */ stfs f1, 0x6e4(r31) -/* 802A066C C0 3F 06 E0 */ lfs f1, 0x6e0(r31) -/* 802A0670 80 7F 07 14 */ lwz r3, 0x714(r31) -/* 802A0674 28 03 00 01 */ cmplwi r3, 1 -/* 802A0678 40 81 00 18 */ ble lbl_802A0690 -/* 802A067C 38 03 FF FF */ addi r0, r3, -1 -/* 802A0680 90 1F 07 14 */ stw r0, 0x714(r31) -/* 802A0684 C0 1F 07 0C */ lfs f0, 0x70c(r31) -/* 802A0688 EC 21 00 2A */ fadds f1, f1, f0 -/* 802A068C 48 00 00 14 */ b lbl_802A06A0 -lbl_802A0690: -/* 802A0690 40 82 00 10 */ bne lbl_802A06A0 -/* 802A0694 38 00 00 00 */ li r0, 0 -/* 802A0698 90 1F 07 14 */ stw r0, 0x714(r31) -/* 802A069C C0 3F 07 10 */ lfs f1, 0x710(r31) -lbl_802A06A0: -/* 802A06A0 D0 3F 06 E0 */ stfs f1, 0x6e0(r31) -/* 802A06A4 3B A0 00 00 */ li r29, 0 -/* 802A06A8 3B C0 00 00 */ li r30, 0 -lbl_802A06AC: -/* 802A06AC 38 7E 00 14 */ addi r3, r30, 0x14 -/* 802A06B0 7C 7F 1A 14 */ add r3, r31, r3 -/* 802A06B4 4B FF F3 11 */ bl JAISeMgr_calc___16JAISeCategoryMgrFv -/* 802A06B8 3B BD 00 01 */ addi r29, r29, 1 -/* 802A06BC 2C 1D 00 10 */ cmpwi r29, 0x10 -/* 802A06C0 3B DE 00 6C */ addi r30, r30, 0x6c -/* 802A06C4 41 80 FF E8 */ blt lbl_802A06AC -/* 802A06C8 3B A0 00 00 */ li r29, 0 -/* 802A06CC 3B C0 00 00 */ li r30, 0 -lbl_802A06D0: -/* 802A06D0 38 7E 00 14 */ addi r3, r30, 0x14 -/* 802A06D4 7C 7F 1A 14 */ add r3, r31, r3 -/* 802A06D8 4B FF F4 59 */ bl JAISeMgr_freeDeadSe___16JAISeCategoryMgrFv -/* 802A06DC 3B BD 00 01 */ addi r29, r29, 1 -/* 802A06E0 2C 1D 00 10 */ cmpwi r29, 0x10 -/* 802A06E4 3B DE 00 6C */ addi r30, r30, 0x6c -/* 802A06E8 41 80 FF E8 */ blt lbl_802A06D0 -/* 802A06EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A06F0 48 0C 1B 39 */ bl _restgpr_29 -/* 802A06F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A06F8 7C 08 03 A6 */ mtlr r0 -/* 802A06FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A0700 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/func_802A0768.s b/asm/JSystem/JAudio2/JAISeMgr/func_802A0768.s deleted file mode 100644 index 314cefebaa9..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/func_802A0768.s +++ /dev/null @@ -1,100 +0,0 @@ -lbl_802A0768: -/* 802A0768 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 802A076C 7C 08 02 A6 */ mflr r0 -/* 802A0770 90 01 00 44 */ stw r0, 0x44(r1) -/* 802A0774 39 61 00 40 */ addi r11, r1, 0x40 -/* 802A0778 48 0C 1A 55 */ bl _savegpr_25 -/* 802A077C 7C 7C 1B 78 */ mr r28, r3 -/* 802A0780 7C 9D 23 78 */ mr r29, r4 -/* 802A0784 7C BE 2B 79 */ or. r30, r5, r5 -/* 802A0788 7C DF 33 78 */ mr r31, r6 -/* 802A078C 41 82 00 14 */ beq lbl_802A07A0 -/* 802A0790 80 7E 00 00 */ lwz r3, 0(r30) -/* 802A0794 28 03 00 00 */ cmplwi r3, 0 -/* 802A0798 41 82 00 08 */ beq lbl_802A07A0 -/* 802A079C 48 00 1D FD */ bl stop__8JAISoundFv -lbl_802A07A0: -/* 802A07A0 83 6D 85 DC */ lwz r27, __OSReport_disable-0x3C(r13) -/* 802A07A4 28 1B 00 00 */ cmplwi r27, 0 -/* 802A07A8 41 82 00 50 */ beq lbl_802A07F8 -/* 802A07AC 80 1D 00 00 */ lwz r0, 0(r29) -/* 802A07B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A07B4 7F 63 DB 78 */ mr r3, r27 -/* 802A07B8 38 81 00 14 */ addi r4, r1, 0x14 -/* 802A07BC 81 9B 00 00 */ lwz r12, 0(r27) -/* 802A07C0 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802A07C4 7D 89 03 A6 */ mtctr r12 -/* 802A07C8 4E 80 04 21 */ bctrl -/* 802A07CC 7C 7A 1B 78 */ mr r26, r3 -/* 802A07D0 80 1D 00 00 */ lwz r0, 0(r29) -/* 802A07D4 90 01 00 10 */ stw r0, 0x10(r1) -/* 802A07D8 7F 63 DB 78 */ mr r3, r27 -/* 802A07DC 38 81 00 10 */ addi r4, r1, 0x10 -/* 802A07E0 81 9B 00 00 */ lwz r12, 0(r27) -/* 802A07E4 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802A07E8 7D 89 03 A6 */ mtctr r12 -/* 802A07EC 4E 80 04 21 */ bctrl -/* 802A07F0 7C 65 1B 78 */ mr r5, r3 -/* 802A07F4 48 00 00 0C */ b lbl_802A0800 -lbl_802A07F8: -/* 802A07F8 8B 5D 00 01 */ lbz r26, 1(r29) -/* 802A07FC 38 A0 00 00 */ li r5, 0 -lbl_802A0800: -/* 802A0800 7F 83 E3 78 */ mr r3, r28 -/* 802A0804 7F 44 D3 78 */ mr r4, r26 -/* 802A0808 4B FF FC 7D */ bl newSe___8JAISeMgrFiUl -/* 802A080C 7C 79 1B 79 */ or. r25, r3, r3 -/* 802A0810 40 82 00 20 */ bne lbl_802A0830 -/* 802A0814 3C 60 80 3A */ lis r3, JAISeMgr__stringBase0@ha /* 0x8039B8F8@ha */ -/* 802A0818 38 63 B8 F8 */ addi r3, r3, JAISeMgr__stringBase0@l /* 0x8039B8F8@l */ -/* 802A081C 80 9D 00 00 */ lwz r4, 0(r29) -/* 802A0820 4C C6 31 82 */ crclr 6 -/* 802A0824 4B FF 07 41 */ bl JASReport__FPCce -/* 802A0828 38 60 00 00 */ li r3, 0 -/* 802A082C 48 00 00 8C */ b lbl_802A08B8 -lbl_802A0830: -/* 802A0830 2C 1A 00 00 */ cmpwi r26, 0 -/* 802A0834 41 80 00 24 */ blt lbl_802A0858 -/* 802A0838 2C 1A 00 10 */ cmpwi r26, 0x10 -/* 802A083C 40 80 00 1C */ bge lbl_802A0858 -/* 802A0840 1C 1A 00 6C */ mulli r0, r26, 0x6c -/* 802A0844 7C 7C 02 14 */ add r3, r28, r0 -/* 802A0848 80 C3 00 18 */ lwz r6, 0x18(r3) -/* 802A084C 28 06 00 00 */ cmplwi r6, 0 -/* 802A0850 41 82 00 08 */ beq lbl_802A0858 -/* 802A0854 48 00 00 08 */ b lbl_802A085C -lbl_802A0858: -/* 802A0858 80 DC 00 08 */ lwz r6, 8(r28) -lbl_802A085C: -/* 802A085C 80 1D 00 00 */ lwz r0, 0(r29) -/* 802A0860 90 01 00 0C */ stw r0, 0xc(r1) -/* 802A0864 7F 23 CB 78 */ mr r3, r25 -/* 802A0868 38 81 00 0C */ addi r4, r1, 0xc -/* 802A086C 7F E5 FB 78 */ mr r5, r31 -/* 802A0870 4B FF ED E1 */ bl func_8029F650 -/* 802A0874 28 1B 00 00 */ cmplwi r27, 0 -/* 802A0878 41 82 00 28 */ beq lbl_802A08A0 -/* 802A087C 80 1D 00 00 */ lwz r0, 0(r29) -/* 802A0880 90 01 00 08 */ stw r0, 8(r1) -/* 802A0884 7F 63 DB 78 */ mr r3, r27 -/* 802A0888 38 81 00 08 */ addi r4, r1, 8 -/* 802A088C 7F 25 CB 78 */ mr r5, r25 -/* 802A0890 81 9B 00 00 */ lwz r12, 0(r27) -/* 802A0894 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802A0898 7D 89 03 A6 */ mtctr r12 -/* 802A089C 4E 80 04 21 */ bctrl -lbl_802A08A0: -/* 802A08A0 28 1E 00 00 */ cmplwi r30, 0 -/* 802A08A4 41 82 00 10 */ beq lbl_802A08B4 -/* 802A08A8 38 79 00 10 */ addi r3, r25, 0x10 -/* 802A08AC 7F C4 F3 78 */ mr r4, r30 -/* 802A08B0 48 00 19 0D */ bl attachHandle__8JAISoundFP14JAISoundHandle -lbl_802A08B4: -/* 802A08B4 38 60 00 01 */ li r3, 1 -lbl_802A08B8: -/* 802A08B8 39 61 00 40 */ addi r11, r1, 0x40 -/* 802A08BC 48 0C 19 5D */ bl _restgpr_25 -/* 802A08C0 80 01 00 44 */ lwz r0, 0x44(r1) -/* 802A08C4 7C 08 03 A6 */ mtlr r0 -/* 802A08C8 38 21 00 40 */ addi r1, r1, 0x40 -/* 802A08CC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/getNumActiveSe__8JAISeMgrCFv.s b/asm/JSystem/JAudio2/JAISeMgr/getNumActiveSe__8JAISeMgrCFv.s deleted file mode 100644 index a195f49fe4c..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/getNumActiveSe__8JAISeMgrCFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802A08D0: -/* 802A08D0 38 A0 00 00 */ li r5, 0 -/* 802A08D4 38 80 00 00 */ li r4, 0 -/* 802A08D8 38 00 00 10 */ li r0, 0x10 -/* 802A08DC 7C 09 03 A6 */ mtctr r0 -lbl_802A08E0: -/* 802A08E0 38 04 00 74 */ addi r0, r4, 0x74 -/* 802A08E4 7C 03 00 2E */ lwzx r0, r3, r0 -/* 802A08E8 7C A5 02 14 */ add r5, r5, r0 -/* 802A08EC 38 84 00 6C */ addi r4, r4, 0x6c -/* 802A08F0 42 00 FF F0 */ bdnz lbl_802A08E0 -/* 802A08F4 7C A3 2B 78 */ mr r3, r5 -/* 802A08F8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s b/asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s deleted file mode 100644 index ea50d3113be..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_8029F8B0: -/* 8029F8B0 80 E3 00 58 */ lwz r7, 0x58(r3) -/* 8029F8B4 80 C4 00 00 */ lwz r6, 0(r4) -/* 8029F8B8 80 04 00 04 */ lwz r0, 4(r4) -/* 8029F8BC 7C 66 02 14 */ add r3, r6, r0 -/* 8029F8C0 48 00 00 4C */ b lbl_8029F90C -lbl_8029F8C4: -/* 8029F8C4 80 87 00 00 */ lwz r4, 0(r7) -/* 8029F8C8 80 A4 03 10 */ lwz r5, 0x310(r4) -/* 8029F8CC 7C 03 28 40 */ cmplw r3, r5 -/* 8029F8D0 40 80 00 0C */ bge lbl_8029F8DC -/* 8029F8D4 38 00 00 00 */ li r0, 0 -/* 8029F8D8 48 00 00 20 */ b lbl_8029F8F8 -lbl_8029F8DC: -/* 8029F8DC 80 04 03 14 */ lwz r0, 0x314(r4) -/* 8029F8E0 7C 05 02 14 */ add r0, r5, r0 -/* 8029F8E4 7C 00 30 40 */ cmplw r0, r6 -/* 8029F8E8 40 80 00 0C */ bge lbl_8029F8F4 -/* 8029F8EC 38 00 00 00 */ li r0, 0 -/* 8029F8F0 48 00 00 08 */ b lbl_8029F8F8 -lbl_8029F8F4: -/* 8029F8F4 38 00 00 01 */ li r0, 1 -lbl_8029F8F8: -/* 8029F8F8 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 8029F8FC 41 82 00 0C */ beq lbl_8029F908 -/* 8029F900 38 60 00 01 */ li r3, 1 -/* 8029F904 4E 80 00 20 */ blr -lbl_8029F908: -/* 8029F908 80 E7 00 0C */ lwz r7, 0xc(r7) -lbl_8029F90C: -/* 8029F90C 28 07 00 00 */ cmplwi r7, 0 -/* 8029F910 40 82 FF B4 */ bne lbl_8029F8C4 -/* 8029F914 38 60 00 00 */ li r3, 0 -/* 8029F918 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion.s b/asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion.s deleted file mode 100644 index e86eb76ddb0..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_802A0168: -/* 802A0168 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A016C 7C 08 02 A6 */ mflr r0 -/* 802A0170 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A0174 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0178 48 0C 20 61 */ bl _savegpr_28 -/* 802A017C 7C 7C 1B 78 */ mr r28, r3 -/* 802A0180 7C 9D 23 78 */ mr r29, r4 -/* 802A0184 3B C0 00 00 */ li r30, 0 -/* 802A0188 3B E0 00 00 */ li r31, 0 -lbl_802A018C: -/* 802A018C 38 7F 00 14 */ addi r3, r31, 0x14 -/* 802A0190 7C 7C 1A 14 */ add r3, r28, r3 -/* 802A0194 7F A4 EB 78 */ mr r4, r29 -/* 802A0198 4B FF F7 19 */ bl isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion -/* 802A019C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802A01A0 41 82 00 0C */ beq lbl_802A01AC -/* 802A01A4 38 60 00 01 */ li r3, 1 -/* 802A01A8 48 00 00 18 */ b lbl_802A01C0 -lbl_802A01AC: -/* 802A01AC 3B DE 00 01 */ addi r30, r30, 1 -/* 802A01B0 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 802A01B4 3B FF 00 6C */ addi r31, r31, 0x6c -/* 802A01B8 41 80 FF D4 */ blt lbl_802A018C -/* 802A01BC 38 60 00 00 */ li r3, 0 -lbl_802A01C0: -/* 802A01C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A01C4 48 0C 20 61 */ bl _restgpr_28 -/* 802A01C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A01CC 7C 08 03 A6 */ mtlr r0 -/* 802A01D0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A01D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/mixOut__8JAISeMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/mixOut__8JAISeMgrFv.s deleted file mode 100644 index 4865a4f6699..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/mixOut__8JAISeMgrFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802A0704: -/* 802A0704 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A0708 7C 08 02 A6 */ mflr r0 -/* 802A070C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A0710 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0714 48 0C 1A C9 */ bl _savegpr_29 -/* 802A0718 7C 7D 1B 78 */ mr r29, r3 -/* 802A071C 3B C0 00 00 */ li r30, 0 -/* 802A0720 3B E0 00 00 */ li r31, 0 -lbl_802A0724: -/* 802A0724 88 1D 00 04 */ lbz r0, 4(r29) -/* 802A0728 98 01 00 08 */ stb r0, 8(r1) -/* 802A072C 38 7F 00 14 */ addi r3, r31, 0x14 -/* 802A0730 7C 7D 1A 14 */ add r3, r29, r3 -/* 802A0734 38 9D 06 D4 */ addi r4, r29, 0x6d4 -/* 802A0738 38 A1 00 08 */ addi r5, r1, 8 -/* 802A073C 4B FF F7 DD */ bl JAISeMgr_mixOut___16JAISeCategoryMgrFRC18JAISoundParamsMove16JAISoundActivity -/* 802A0740 3B DE 00 01 */ addi r30, r30, 1 -/* 802A0744 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 802A0748 3B FF 00 6C */ addi r31, r31, 0x6c -/* 802A074C 41 80 FF D8 */ blt lbl_802A0724 -/* 802A0750 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0754 48 0C 1A D5 */ bl _restgpr_29 -/* 802A0758 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A075C 7C 08 03 A6 */ mtlr r0 -/* 802A0760 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A0764 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/pause__16JAISeCategoryMgrFb.s b/asm/JSystem/JAudio2/JAISeMgr/pause__16JAISeCategoryMgrFb.s deleted file mode 100644 index 4eb5ec58d90..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/pause__16JAISeCategoryMgrFb.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8029FEEC: -/* 8029FEEC 80 A3 00 58 */ lwz r5, 0x58(r3) -/* 8029FEF0 54 84 06 3E */ clrlwi r4, r4, 0x18 -/* 8029FEF4 48 00 00 18 */ b lbl_8029FF0C -lbl_8029FEF8: -/* 8029FEF8 80 65 00 00 */ lwz r3, 0(r5) -/* 8029FEFC 88 03 00 2C */ lbz r0, 0x2c(r3) -/* 8029FF00 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 -/* 8029FF04 98 03 00 2C */ stb r0, 0x2c(r3) -/* 8029FF08 80 A5 00 0C */ lwz r5, 0xc(r5) -lbl_8029FF0C: -/* 8029FF0C 28 05 00 00 */ cmplwi r5, 0 -/* 8029FF10 40 82 FF E8 */ bne lbl_8029FEF8 -/* 8029FF14 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s b/asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s deleted file mode 100644 index 655a9454318..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_8029F91C: -/* 8029F91C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029F920 7C 08 02 A6 */ mflr r0 -/* 8029F924 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029F928 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029F92C 48 0C 28 B1 */ bl _savegpr_29 -/* 8029F930 38 A0 00 00 */ li r5, 0 -/* 8029F934 83 A3 00 58 */ lwz r29, 0x58(r3) -/* 8029F938 83 C4 00 00 */ lwz r30, 0(r4) -/* 8029F93C 80 04 00 04 */ lwz r0, 4(r4) -/* 8029F940 7F FE 02 14 */ add r31, r30, r0 -/* 8029F944 48 00 00 50 */ b lbl_8029F994 -lbl_8029F948: -/* 8029F948 80 9D 00 00 */ lwz r4, 0(r29) -/* 8029F94C 80 64 03 10 */ lwz r3, 0x310(r4) -/* 8029F950 7C 1F 18 40 */ cmplw r31, r3 -/* 8029F954 40 80 00 0C */ bge lbl_8029F960 -/* 8029F958 38 00 00 00 */ li r0, 0 -/* 8029F95C 48 00 00 20 */ b lbl_8029F97C -lbl_8029F960: -/* 8029F960 80 04 03 14 */ lwz r0, 0x314(r4) -/* 8029F964 7C 03 02 14 */ add r0, r3, r0 -/* 8029F968 7C 00 F0 40 */ cmplw r0, r30 -/* 8029F96C 40 80 00 0C */ bge lbl_8029F978 -/* 8029F970 38 00 00 00 */ li r0, 0 -/* 8029F974 48 00 00 08 */ b lbl_8029F97C -lbl_8029F978: -/* 8029F978 38 00 00 01 */ li r0, 1 -lbl_8029F97C: -/* 8029F97C 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 8029F980 41 82 00 10 */ beq lbl_8029F990 -/* 8029F984 38 64 00 10 */ addi r3, r4, 0x10 -/* 8029F988 48 00 2C 11 */ bl stop__8JAISoundFv -/* 8029F98C 38 A0 00 01 */ li r5, 1 -lbl_8029F990: -/* 8029F990 83 BD 00 0C */ lwz r29, 0xc(r29) -lbl_8029F994: -/* 8029F994 28 1D 00 00 */ cmplwi r29, 0 -/* 8029F998 40 82 FF B0 */ bne lbl_8029F948 -/* 8029F99C 54 A0 06 3F */ clrlwi. r0, r5, 0x18 -/* 8029F9A0 38 60 00 02 */ li r3, 2 -/* 8029F9A4 41 82 00 08 */ beq lbl_8029F9AC -/* 8029F9A8 38 60 00 01 */ li r3, 1 -lbl_8029F9AC: -/* 8029F9AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029F9B0 48 0C 28 79 */ bl _restgpr_29 -/* 8029F9B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029F9B8 7C 08 03 A6 */ mtlr r0 -/* 8029F9BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029F9C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion.s b/asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion.s deleted file mode 100644 index 7e2a3248ff6..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_802A01D8: -/* 802A01D8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A01DC 7C 08 02 A6 */ mflr r0 -/* 802A01E0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A01E4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A01E8 48 0C 1F ED */ bl _savegpr_27 -/* 802A01EC 7C 7B 1B 78 */ mr r27, r3 -/* 802A01F0 7C 9C 23 78 */ mr r28, r4 -/* 802A01F4 3B C0 00 00 */ li r30, 0 -/* 802A01F8 3B A0 00 00 */ li r29, 0 -/* 802A01FC 3B E0 00 00 */ li r31, 0 -lbl_802A0200: -/* 802A0200 38 7F 00 14 */ addi r3, r31, 0x14 -/* 802A0204 7C 7B 1A 14 */ add r3, r27, r3 -/* 802A0208 7F 84 E3 78 */ mr r4, r28 -/* 802A020C 4B FF F7 11 */ bl releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion -/* 802A0210 2C 03 00 01 */ cmpwi r3, 1 -/* 802A0214 41 82 00 1C */ beq lbl_802A0230 -/* 802A0218 40 80 00 1C */ bge lbl_802A0234 -/* 802A021C 2C 03 00 00 */ cmpwi r3, 0 -/* 802A0220 40 80 00 08 */ bge lbl_802A0228 -/* 802A0224 48 00 00 10 */ b lbl_802A0234 -lbl_802A0228: -/* 802A0228 38 60 00 00 */ li r3, 0 -/* 802A022C 48 00 00 24 */ b lbl_802A0250 -lbl_802A0230: -/* 802A0230 3B C0 00 01 */ li r30, 1 -lbl_802A0234: -/* 802A0234 3B BD 00 01 */ addi r29, r29, 1 -/* 802A0238 2C 1D 00 10 */ cmpwi r29, 0x10 -/* 802A023C 3B FF 00 6C */ addi r31, r31, 0x6c -/* 802A0240 41 80 FF C0 */ blt lbl_802A0200 -/* 802A0244 57 C3 06 3E */ clrlwi r3, r30, 0x18 -/* 802A0248 30 03 FF FF */ addic r0, r3, -1 -/* 802A024C 7C 60 19 10 */ subfe r3, r0, r3 -lbl_802A0250: -/* 802A0250 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0254 48 0C 1F CD */ bl _restgpr_27 -/* 802A0258 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A025C 7C 08 03 A6 */ mtlr r0 -/* 802A0260 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A0264 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/resetSeqDataMgr__8JAISeMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/resetSeqDataMgr__8JAISeMgrFv.s deleted file mode 100644 index 9a3d782399d..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/resetSeqDataMgr__8JAISeMgrFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802A0434: -/* 802A0434 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A0438 7C 08 02 A6 */ mflr r0 -/* 802A043C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A0440 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802A0444 7C 7F 1B 78 */ mr r31, r3 -/* 802A0448 80 63 00 0C */ lwz r3, 0xc(r3) -/* 802A044C 28 03 00 00 */ cmplwi r3, 0 -/* 802A0450 41 82 00 20 */ beq lbl_802A0470 -/* 802A0454 38 80 00 00 */ li r4, 0 -/* 802A0458 81 83 00 00 */ lwz r12, 0(r3) -/* 802A045C 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802A0460 7D 89 03 A6 */ mtctr r12 -/* 802A0464 4E 80 04 21 */ bctrl -/* 802A0468 38 00 00 00 */ li r0, 0 -/* 802A046C 90 1F 00 0C */ stw r0, 0xc(r31) -lbl_802A0470: -/* 802A0470 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802A0474 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A0478 7C 08 03 A6 */ mtlr r0 -/* 802A047C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A0480 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement.s b/asm/JSystem/JAudio2/JAISeMgr/setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement.s deleted file mode 100644 index 49b6770b83a..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802A0268: -/* 802A0268 38 A0 00 00 */ li r5, 0 -/* 802A026C 38 C0 00 00 */ li r6, 0 -/* 802A0270 38 00 00 10 */ li r0, 0x10 -/* 802A0274 7C 09 03 A6 */ mtctr r0 -lbl_802A0278: -/* 802A0278 7C E4 32 14 */ add r7, r4, r6 -/* 802A027C 88 07 00 00 */ lbz r0, 0(r7) -/* 802A0280 7D 03 2A 14 */ add r8, r3, r5 -/* 802A0284 90 08 00 7C */ stw r0, 0x7c(r8) -/* 802A0288 88 07 00 01 */ lbz r0, 1(r7) -/* 802A028C 90 08 00 78 */ stw r0, 0x78(r8) -/* 802A0290 38 A5 00 6C */ addi r5, r5, 0x6c -/* 802A0294 38 C6 00 02 */ addi r6, r6, 2 -/* 802A0298 42 00 FF E0 */ bdnz lbl_802A0278 -/* 802A029C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr.s b/asm/JSystem/JAudio2/JAISeMgr/setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr.s deleted file mode 100644 index c1f0d70071d..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802A03E0: -/* 802A03E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802A03E4 7C 08 02 A6 */ mflr r0 -/* 802A03E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802A03EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802A03F0 93 C1 00 08 */ stw r30, 8(r1) -/* 802A03F4 7C 7E 1B 78 */ mr r30, r3 -/* 802A03F8 7C 9F 23 78 */ mr r31, r4 -/* 802A03FC 48 00 00 39 */ bl resetSeqDataMgr__8JAISeMgrFv -/* 802A0400 93 FE 00 0C */ stw r31, 0xc(r30) -/* 802A0404 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 802A0408 7F C4 F3 78 */ mr r4, r30 -/* 802A040C 81 83 00 00 */ lwz r12, 0(r3) -/* 802A0410 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802A0414 7D 89 03 A6 */ mtctr r12 -/* 802A0418 4E 80 04 21 */ bctrl -/* 802A041C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802A0420 83 C1 00 08 */ lwz r30, 8(r1) -/* 802A0424 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802A0428 7C 08 03 A6 */ mtlr r0 -/* 802A042C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802A0430 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/sortByPriority___16JAISeCategoryMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/sortByPriority___16JAISeCategoryMgrFv.s deleted file mode 100644 index ec5502800c9..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/sortByPriority___16JAISeCategoryMgrFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_8029FD40: -/* 8029FD40 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029FD44 7C 08 02 A6 */ mflr r0 -/* 8029FD48 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029FD4C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029FD50 48 0C 24 8D */ bl _savegpr_29 -/* 8029FD54 7C 7D 1B 78 */ mr r29, r3 -/* 8029FD58 83 E3 00 60 */ lwz r31, 0x60(r3) -/* 8029FD5C 48 00 00 64 */ b lbl_8029FDC0 -lbl_8029FD60: -/* 8029FD60 80 7D 00 58 */ lwz r3, 0x58(r29) -/* 8029FD64 7C 7E 1B 78 */ mr r30, r3 -/* 8029FD68 80 83 00 00 */ lwz r4, 0(r3) -/* 8029FD6C 80 84 00 B0 */ lwz r4, 0xb0(r4) -/* 8029FD70 80 A3 00 0C */ lwz r5, 0xc(r3) -/* 8029FD74 38 1F FF FF */ addi r0, r31, -1 -/* 8029FD78 7C 09 03 A6 */ mtctr r0 -/* 8029FD7C 28 1F 00 01 */ cmplwi r31, 1 -/* 8029FD80 40 81 00 24 */ ble lbl_8029FDA4 -lbl_8029FD84: -/* 8029FD84 80 65 00 00 */ lwz r3, 0(r5) -/* 8029FD88 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8029FD8C 7C 00 20 40 */ cmplw r0, r4 -/* 8029FD90 40 80 00 0C */ bge lbl_8029FD9C -/* 8029FD94 7C 04 03 78 */ mr r4, r0 -/* 8029FD98 7C BE 2B 78 */ mr r30, r5 -lbl_8029FD9C: -/* 8029FD9C 80 A5 00 0C */ lwz r5, 0xc(r5) -/* 8029FDA0 42 00 FF E4 */ bdnz lbl_8029FD84 -lbl_8029FDA4: -/* 8029FDA4 38 7D 00 58 */ addi r3, r29, 0x58 -/* 8029FDA8 7F C4 F3 78 */ mr r4, r30 -/* 8029FDAC 48 03 C3 B1 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 8029FDB0 38 7D 00 58 */ addi r3, r29, 0x58 -/* 8029FDB4 7F C4 F3 78 */ mr r4, r30 -/* 8029FDB8 48 03 C1 95 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 8029FDBC 3B FF FF FF */ addi r31, r31, -1 -lbl_8029FDC0: -/* 8029FDC0 28 1F 00 00 */ cmplwi r31, 0 -/* 8029FDC4 40 82 FF 9C */ bne lbl_8029FD60 -/* 8029FDC8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029FDCC 48 0C 24 5D */ bl _restgpr_29 -/* 8029FDD0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029FDD4 7C 08 03 A6 */ mtlr r0 -/* 8029FDD8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029FDDC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/stopSoundID__16JAISeCategoryMgrF10JAISoundID.s b/asm/JSystem/JAudio2/JAISeMgr/stopSoundID__16JAISeCategoryMgrF10JAISoundID.s deleted file mode 100644 index f857b1c20fd..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/stopSoundID__16JAISeCategoryMgrF10JAISoundID.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_8029FE78: -/* 8029FE78 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029FE7C 7C 08 02 A6 */ mflr r0 -/* 8029FE80 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029FE84 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8029FE88 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8029FE8C 7C 9E 23 78 */ mr r30, r4 -/* 8029FE90 80 84 00 00 */ lwz r4, 0(r4) -/* 8029FE94 3C 04 00 01 */ addis r0, r4, 1 -/* 8029FE98 28 00 FF FF */ cmplwi r0, 0xffff -/* 8029FE9C 41 82 00 38 */ beq lbl_8029FED4 -/* 8029FEA0 83 E3 00 58 */ lwz r31, 0x58(r3) -/* 8029FEA4 48 00 00 28 */ b lbl_8029FECC -lbl_8029FEA8: -/* 8029FEA8 80 9F 00 00 */ lwz r4, 0(r31) -/* 8029FEAC 80 64 00 28 */ lwz r3, 0x28(r4) -/* 8029FEB0 90 61 00 08 */ stw r3, 8(r1) -/* 8029FEB4 80 1E 00 00 */ lwz r0, 0(r30) -/* 8029FEB8 7C 03 00 40 */ cmplw r3, r0 -/* 8029FEBC 40 82 00 0C */ bne lbl_8029FEC8 -/* 8029FEC0 38 64 00 10 */ addi r3, r4, 0x10 -/* 8029FEC4 48 00 26 D5 */ bl stop__8JAISoundFv -lbl_8029FEC8: -/* 8029FEC8 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_8029FECC: -/* 8029FECC 28 1F 00 00 */ cmplwi r31, 0 -/* 8029FED0 40 82 FF D8 */ bne lbl_8029FEA8 -lbl_8029FED4: -/* 8029FED4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8029FED8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8029FEDC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029FEE0 7C 08 03 A6 */ mtlr r0 -/* 8029FEE4 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029FEE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/stopSoundID__8JAISeMgrF10JAISoundID.s b/asm/JSystem/JAudio2/JAISeMgr/stopSoundID__8JAISeMgrF10JAISoundID.s deleted file mode 100644 index 563d96561b8..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/stopSoundID__8JAISeMgrF10JAISoundID.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_802A02F4: -/* 802A02F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A02F8 7C 08 02 A6 */ mflr r0 -/* 802A02FC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A0300 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0304 48 0C 1E D5 */ bl _savegpr_28 -/* 802A0308 7C 7C 1B 78 */ mr r28, r3 -/* 802A030C 7C 9D 23 78 */ mr r29, r4 -/* 802A0310 3B C0 00 00 */ li r30, 0 -/* 802A0314 3B E0 00 00 */ li r31, 0 -lbl_802A0318: -/* 802A0318 80 1D 00 00 */ lwz r0, 0(r29) -/* 802A031C 90 01 00 08 */ stw r0, 8(r1) -/* 802A0320 38 7F 00 14 */ addi r3, r31, 0x14 -/* 802A0324 7C 7C 1A 14 */ add r3, r28, r3 -/* 802A0328 38 81 00 08 */ addi r4, r1, 8 -/* 802A032C 4B FF FB 4D */ bl stopSoundID__16JAISeCategoryMgrF10JAISoundID -/* 802A0330 3B DE 00 01 */ addi r30, r30, 1 -/* 802A0334 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 802A0338 3B FF 00 6C */ addi r31, r31, 0x6c -/* 802A033C 41 80 FF DC */ blt lbl_802A0318 -/* 802A0340 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A0344 48 0C 1E E1 */ bl _restgpr_28 -/* 802A0348 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A034C 7C 08 03 A6 */ mtlr r0 -/* 802A0350 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A0354 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFUl.s b/asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFUl.s deleted file mode 100644 index 424b5cfa0ff..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFUl.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8029FDE0: -/* 8029FDE0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029FDE4 7C 08 02 A6 */ mflr r0 -/* 8029FDE8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029FDEC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029FDF0 93 C1 00 08 */ stw r30, 8(r1) -/* 8029FDF4 7C 9E 23 78 */ mr r30, r4 -/* 8029FDF8 83 E3 00 58 */ lwz r31, 0x58(r3) -/* 8029FDFC 48 00 00 18 */ b lbl_8029FE14 -lbl_8029FE00: -/* 8029FE00 80 7F 00 00 */ lwz r3, 0(r31) -/* 8029FE04 38 63 00 10 */ addi r3, r3, 0x10 -/* 8029FE08 7F C4 F3 78 */ mr r4, r30 -/* 8029FE0C 48 00 26 D1 */ bl stop__8JAISoundFUl -/* 8029FE10 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_8029FE14: -/* 8029FE14 28 1F 00 00 */ cmplwi r31, 0 -/* 8029FE18 40 82 FF E8 */ bne lbl_8029FE00 -/* 8029FE1C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029FE20 83 C1 00 08 */ lwz r30, 8(r1) -/* 8029FE24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029FE28 7C 08 03 A6 */ mtlr r0 -/* 8029FE2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029FE30 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFv.s deleted file mode 100644 index 1356f63e370..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8029FE34: -/* 8029FE34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029FE38 7C 08 02 A6 */ mflr r0 -/* 8029FE3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029FE40 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029FE44 83 E3 00 58 */ lwz r31, 0x58(r3) -/* 8029FE48 48 00 00 14 */ b lbl_8029FE5C -lbl_8029FE4C: -/* 8029FE4C 80 7F 00 00 */ lwz r3, 0(r31) -/* 8029FE50 38 63 00 10 */ addi r3, r3, 0x10 -/* 8029FE54 48 00 27 45 */ bl stop__8JAISoundFv -/* 8029FE58 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_8029FE5C: -/* 8029FE5C 28 1F 00 00 */ cmplwi r31, 0 -/* 8029FE60 40 82 FF EC */ bne lbl_8029FE4C -/* 8029FE64 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029FE68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029FE6C 7C 08 03 A6 */ mtlr r0 -/* 8029FE70 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029FE74 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JAISeMgr/stop__8JAISeMgrFv.s b/asm/JSystem/JAudio2/JAISeMgr/stop__8JAISeMgrFv.s deleted file mode 100644 index f94fb02424b..00000000000 --- a/asm/JSystem/JAudio2/JAISeMgr/stop__8JAISeMgrFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802A02A0: -/* 802A02A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802A02A4 7C 08 02 A6 */ mflr r0 -/* 802A02A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802A02AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A02B0 48 0C 1F 2D */ bl _savegpr_29 -/* 802A02B4 7C 7D 1B 78 */ mr r29, r3 -/* 802A02B8 3B C0 00 00 */ li r30, 0 -/* 802A02BC 3B E0 00 00 */ li r31, 0 -lbl_802A02C0: -/* 802A02C0 38 7F 00 14 */ addi r3, r31, 0x14 -/* 802A02C4 7C 7D 1A 14 */ add r3, r29, r3 -/* 802A02C8 4B FF FB 6D */ bl stop__16JAISeCategoryMgrFv -/* 802A02CC 3B DE 00 01 */ addi r30, r30, 1 -/* 802A02D0 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 802A02D4 3B FF 00 6C */ addi r31, r31, 0x6c -/* 802A02D8 41 80 FF E8 */ blt lbl_802A02C0 -/* 802A02DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802A02E0 48 0C 1F 49 */ bl _restgpr_29 -/* 802A02E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802A02E8 7C 08 03 A6 */ mtlr r0 -/* 802A02EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802A02F0 4E 80 00 20 */ blr diff --git a/include/JSystem/JAudio2/JAISeMgr.h b/include/JSystem/JAudio2/JAISeMgr.h index d4f6886b190..67b79c362d6 100644 --- a/include/JSystem/JAudio2/JAISeMgr.h +++ b/include/JSystem/JAudio2/JAISeMgr.h @@ -5,6 +5,7 @@ #include "JSystem/JAudio2/JAISound.h" #include "JSystem/JAudio2/JAISoundParams.h" #include "JSystem/JAudio2/JASGadget.h" +#include "JSystem/JAudio2/JASHeapCtrl.h" #include "JSystem/JSupport/JSUList.h" #include "global.h" @@ -15,22 +16,44 @@ struct JASNonCopyable { /* 0x0 */ int field_0x0; }; // Size: 0x4 -struct JAISeCategoryArrangement {}; +struct JAISeCategoryArrangementItem { + u8 mMaxActiveSe; + u8 mMaxInactiveSe; +}; + +struct JAISeCategoryArrangement { + JAISeCategoryArrangementItem mItems[16]; +}; class JAISeMgr; -struct JAISe { +struct JAISePlaceHolder { + u8 field_0x0[0x10]; +}; + +struct JAISe : public JAISePlaceHolder, public JAISound { /* 8029F03C */ JAISe(JAISeMgr*, JAISoundStrategyMgr*, u32); /* 8029F304 */ void JAISeCategoryMgr_mixOut_(bool, JASSoundParams const&, JAISoundActivity); /* 8029F4CC */ void JAISeCategoryMgr_calc_(); /* 8029F650 */ void JAISeMgr_startID_(JAISoundID, JGeometry::TVec3 const*, JAIAudience*); + + JAISeqData* getSeqData() { return &mSeqData; } + u32 JAISeCategoryMgr_getProperPriority_() const { return mProperPriority; } + u32 JAISeCategoryMgr_getPriority_() const { return mPriority;} + bool isFarAway() const { return mPriority == -1; } + + /* 0x0aa */ u8 field_0x0[2]; + /* 0x0ac */ u32 mProperPriority; + /* 0x0b0 */ u32 mPriority; + /* 0x0b4 */ u8 field_0xb4[0x25c]; + /* 0x310 */ JAISeqData mSeqData; }; class JAISeCategoryMgr : public JAISeqDataUser { public: /* 8029F9C4 */ void JAISeMgr_calc_(); /* 8029FB30 */ void JAISeMgr_freeDeadSe_(); - /* 8029FC88 */ void JAISeMgr_acceptsNewSe_(u32) const; + /* 8029FC88 */ u32 JAISeMgr_acceptsNewSe_(u32) const; /* 8029FD40 */ void sortByPriority_(); /* 8029FDE0 */ void stop(u32); /* 8029FE34 */ void stop(); @@ -41,9 +64,21 @@ public: /* 800078DC */ virtual ~JAISeCategoryMgr() {} /* 8029F8B0 */ virtual bool isUsingSeqData(JAISeqDataRegion const&); - /* 8029F91C */ virtual void releaseSeqData(JAISeqDataRegion const&); + /* 8029F91C */ virtual int releaseSeqData(JAISeqDataRegion const&); JAISoundParamsMove* getParams() { return &mParams; } + int getMaxSe() const { + if (mMaxActiveSe == 0) { + return 0; + } + + return mMaxActiveSe + mMaxInactiveSe; + } + int getMaxActiveSe() const { return mMaxActiveSe; } + void setMaxActiveSe(int se) { mMaxActiveSe = se; } + void setMaxInactiveSe(int se) { mMaxInactiveSe = se; } + int getNumSe() const { return mSeList.getNumLinks(); } + JAIAudience* getAudience() { return (JAIAudience*)field_0x4.field_0x0; } /* 0x04 */ JASNonCopyable field_0x4; /* 0x08 */ JAISoundParamsMove mParams; @@ -52,9 +87,9 @@ public: /* 0x68 */ int mMaxActiveSe; }; // Size: 0x6C -class JAISeMgr : public JAISeqDataUser, - public JAISoundActivity, - public JASGlobalInstance { +class JAISeMgr : public JASGlobalInstance, + public JAISeqDataUser, + public JAISoundActivity { public: /* 802A0074 */ JAISeMgr(bool); /* 802A0268 */ void setCategoryArrangement(JAISeCategoryArrangement const&); @@ -64,17 +99,24 @@ public: /* 802A03D8 */ void setAudience(JAIAudience*); /* 802A03E0 */ void setSeqDataMgr(JAISeqDataMgr*); /* 802A0434 */ void resetSeqDataMgr(); - /* 802A0484 */ void newSe_(int, u32); + /* 802A0484 */ JAISe* newSe_(int, u32); /* 802A0574 */ void calc(); /* 802A0704 */ void mixOut(); - /* 802A0768 */ void startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3 const*); - /* 802A08D0 */ void getNumActiveSe() const; + /* 802A0768 */ int startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3 const*); + /* 802A08D0 */ int getNumActiveSe() const; /* 802A08FC */ virtual ~JAISeMgr(); // inline? /* 802A0168 */ virtual bool isUsingSeqData(JAISeqDataRegion const&); - /* 802A01D8 */ virtual void releaseSeqData(JAISeqDataRegion const&); + /* 802A01D8 */ virtual int releaseSeqData(JAISeqDataRegion const&); JAISeCategoryMgr* getCategory(int categoryIndex) { return &mCategoryMgrs[categoryIndex]; } + JAIAudience* getAudience(int categoryIndex) { + if (categoryIndex >= 0 && categoryIndex < 16) { + JAIAudience* rv = mCategoryMgrs[categoryIndex].getAudience(); + if (rv) return rv; + } + return mAudience; + } private: /* 0x008 */ JAIAudience* mAudience; diff --git a/include/JSystem/JAudio2/JAISeqDataMgr.h b/include/JSystem/JAudio2/JAISeqDataMgr.h index 069e2875e22..f97e502ce1c 100644 --- a/include/JSystem/JAudio2/JAISeqDataMgr.h +++ b/include/JSystem/JAudio2/JAISeqDataMgr.h @@ -4,20 +4,37 @@ #include "JSystem/JAudio2/JAISound.h" #include "dolphin/types.h" -struct JAISeqDataRegion {}; +struct JAISeqData { + /* 0x00 */ u32 field_0x0; + /* 0x04 */ u32 field_0x4; +}; + +struct JAISeqDataRegion { + bool intersects(JAISeqData& seqData) const { + if (field_0x0 + field_0x4 < seqData.field_0x0) { + return false; + } + if (seqData.field_0x0 + seqData.field_0x4 < field_0x0) { + return false; + } + return true; + } + + /* 0x00 */ u32 field_0x0; + /* 0x04 */ u32 field_0x4; +}; -struct JAISeqData; struct JAISeqDataUser { virtual ~JAISeqDataUser(); virtual bool isUsingSeqData(JAISeqDataRegion const&) = 0; - virtual void releaseSeqData(JAISeqDataRegion const&) = 0; + virtual int releaseSeqData(JAISeqDataRegion const&) = 0; }; struct JAISeqDataMgr { virtual ~JAISeqDataMgr(); virtual void getSeqData(JAISoundID, JAISeqData*) = 0; - virtual void releaseSeqData() = 0; + virtual int releaseSeqData() = 0; virtual void setSeqDataUser(JAISeqDataUser*) = 0; }; diff --git a/include/JSystem/JAudio2/JAISeqMgr.h b/include/JSystem/JAudio2/JAISeqMgr.h index 91766815309..4d87772f52f 100644 --- a/include/JSystem/JAudio2/JAISeqMgr.h +++ b/include/JSystem/JAudio2/JAISeqMgr.h @@ -25,7 +25,7 @@ public: /* 802A20F0 */ virtual ~JAISeqMgr(); // inline? /* 802A1804 */ virtual bool isUsingSeqData(JAISeqDataRegion const&); - /* 802A1870 */ virtual void releaseSeqData(JAISeqDataRegion const&); + /* 802A1870 */ virtual int releaseSeqData(JAISeqDataRegion const&); private: /* 0x04 */ JAISoundActivity mActivity; diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h index 92a376f8364..2896ec23571 100644 --- a/include/JSystem/JAudio2/JAISound.h +++ b/include/JSystem/JAudio2/JAISound.h @@ -17,8 +17,16 @@ public: JAISoundID() {} + bool isAnonymous() { return mId.mFullId == 0xffffffff; } + union { u32 mFullId; + struct { + u8 b0; + u8 b1; + u8 b2; + u8 b3; + } mBytes; struct { u16 mSoundType; u16 mShortId; @@ -41,6 +49,7 @@ struct JAISoundStatus_ { } bool isAlive(); // used in assert + bool isDead() { return state.unk == 6;} inline bool isPlaying() { return state.unk == 5; } @@ -179,6 +188,10 @@ public: return isStopping; } + void pause(bool param_0) { + status_.field_0x0.flags.paused = param_0; + } + /* 0x04 */ JAISoundHandle* handle_; /* 0x08 */ JAIAudible* audible_; /* 0x0C */ JAIAudience* audience_; diff --git a/include/JSystem/JAudio2/JAISoundInfo.h b/include/JSystem/JAudio2/JAISoundInfo.h index 795d6749692..889eb60df12 100644 --- a/include/JSystem/JAudio2/JAISoundInfo.h +++ b/include/JSystem/JAudio2/JAISoundInfo.h @@ -2,10 +2,22 @@ #define JAISOUNDINFO_H #include "dolphin/types.h" +#include "JSystem/JAudio2/JAISound.h" +#include "JSystem/JAudio2/JASGadget.h" -struct JAISoundInfo { +struct JAISe; +struct JAISeq; +struct JAIStream; + +struct JAISoundInfo : public JASGlobalInstance { /* 802A2D34 */ JAISoundInfo(bool); - /* 802A2D50 */ ~JAISoundInfo(); + virtual u32 getSoundType(JAISoundID) const = 0; + virtual int getCategory(JAISoundID) const = 0; + virtual u32 getPriority(JAISoundID) const = 0; + virtual void getSeInfo(JAISoundID, JAISe*) const = 0; + virtual void getSeqInfo(JAISoundID, JAISeq*) const = 0; + virtual void getStreamInfo(JAISoundID, JAIStream*) const = 0; + /* 802A2D50 */ virtual ~JAISoundInfo(); }; #endif /* JAISOUNDINFO_H */ diff --git a/include/JSystem/JAudio2/JASGadget.h b/include/JSystem/JAudio2/JASGadget.h index 24b00e3c79d..a061e02b6db 100644 --- a/include/JSystem/JAudio2/JASGadget.h +++ b/include/JSystem/JAudio2/JASGadget.h @@ -11,7 +11,9 @@ public: } JASGlobalInstance(bool param_1) { - sInstance = (T*)this; + if (param_1) { + sInstance = (T*)this; + } } ~JASGlobalInstance() { diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index a47c52b4e49..139fcbb4f6a 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -3,4 +3,12 @@ #include "dolphin/types.h" +struct JASGenericMemPool { + /* 80290848 */ JASGenericMemPool(); + /* 80290860 */ ~JASGenericMemPool(); + /* 802908C8 */ void newMemPool(u32, int); + /* 80290948 */ void alloc(u32); + /* 80290994 */ void free(void*, u32); +}; + #endif /* JASHEAPCTRL_H */ diff --git a/include/Z2AudioLib/Z2SoundInfo.h b/include/Z2AudioLib/Z2SoundInfo.h index 70226e48d36..ec56508ea7b 100644 --- a/include/Z2AudioLib/Z2SoundInfo.h +++ b/include/Z2AudioLib/Z2SoundInfo.h @@ -3,6 +3,7 @@ #include "JSystem/JAudio2/JAISound.h" #include "JSystem/JAudio2/JASGadget.h" +#include "JSystem/JAudio2/JAISoundInfo.h" struct JAISeq; @@ -12,16 +13,6 @@ struct JAIStream; struct JAISe; -struct JAISoundInfo : public JASGlobalInstance { - virtual void getSoundType(JAISoundID) const = 0; - virtual void getCategory(JAISoundID) const = 0; - virtual void getPriority(JAISoundID) const = 0; - virtual void getSeInfo(JAISoundID, JAISe*) const = 0; - virtual void getSeqInfo(JAISoundID, JAISeq*) const = 0; - virtual void getStreamInfo(JAISoundID, JAIStream*) const = 0; - virtual ~JAISoundInfo(); -}; - struct JAUSoundInfo : public JASGlobalInstance { virtual void getAudibleSw(JAISoundID) const = 0; virtual void getBgmSeqResourceID(JAISoundID) const = 0; diff --git a/libs/JSystem/JAudio2/JAISeMgr.cpp b/libs/JSystem/JAudio2/JAISeMgr.cpp index a091b191aa6..8f02a6fb9aa 100644 --- a/libs/JSystem/JAudio2/JAISeMgr.cpp +++ b/libs/JSystem/JAudio2/JAISeMgr.cpp @@ -4,6 +4,9 @@ // #include "JSystem/JAudio2/JAISeMgr.h" +#include "JSystem/JAudio2/JAISoundHandles.h" +#include "JSystem/JAudio2/JAISoundInfo.h" +#include "JSystem/JAudio2/JASReport.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -18,13 +21,6 @@ struct JASMemPool__template0 { /* 8029FC34 */ void func_8029FC34(void* _this); }; -struct JASGenericMemPool { - /* 80290848 */ JASGenericMemPool(); - /* 80290860 */ ~JASGenericMemPool(); - /* 80290948 */ void alloc(u32); - /* 80290994 */ void free(void*, u32); -}; - // // Forward References: // @@ -108,35 +104,48 @@ extern "C" extern u8 __OSReport_disable; /* 8029F8B0-8029F91C 29A1F0 006C+00 2/1 0/0 0/0 .text * isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JAISeCategoryMgr::isUsingSeqData(JAISeqDataRegion const& param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s" +bool JAISeCategoryMgr::isUsingSeqData(JAISeqDataRegion const& param_0) { + JSULink* link = mSeList.getFirst(); + while (link != NULL) { + JAISe* obj = link->getObject(); + if (param_0.intersects(*obj->getSeqData())) { + return true; + } + link = link->getNext(); + } + + return false; } -#pragma pop /* 8029F91C-8029F9C4 29A25C 00A8+00 2/1 0/0 0/0 .text * releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::releaseSeqData(JAISeqDataRegion const& param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__16JAISeCategoryMgrFRC16JAISeqDataRegion.s" +int JAISeCategoryMgr::releaseSeqData(JAISeqDataRegion const& param_0) { + bool bVar1 = false; + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + if (param_0.intersects(*link->getObject()->getSeqData())) { + link->getObject()->stop(); + bVar1 = true; + } + } + // Fake match. li 2 needs to come after clrlwi + u32 x = bVar1; + u32 y = x; + int rv = 2; + if (x) { + rv = 1; + } + return rv; } -#pragma pop /* 8029F9C4-8029FB30 29A304 016C+00 1/1 0/0 0/0 .text JAISeMgr_calc___16JAISeCategoryMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::JAISeMgr_calc_() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_calc___16JAISeCategoryMgrFv.s" +void JAISeCategoryMgr::JAISeMgr_calc_() { + mParams.calc(); + + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + link->getObject()->JAISeCategoryMgr_calc_(); + } + sortByPriority_(); } -#pragma pop /* ############################################################################################## */ /* 80434078-80434084 060D98 000C+00 2/2 0/0 0/0 .bss @744 */ @@ -149,6 +158,20 @@ u8 data_80434084[16 + 4 /* padding */]; /* 8029FB30-8029FC34 29A470 0104+00 1/1 0/0 0/0 .text JAISeMgr_freeDeadSe___16JAISeCategoryMgrFv */ +// Need to setup JAISe dtor +#ifdef NONMATCHING +void JAISeCategoryMgr::JAISeMgr_freeDeadSe_() { + JSULink* link = mSeList.getFirst(); + while (link != NULL) { + JSULink* link_next = link->getNext(); + if (link->getObject()->status_.isDead()) { + mSeList.remove(link); + delete link->getObject(); + } + link = link_next; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -157,6 +180,7 @@ asm void JAISeCategoryMgr::JAISeMgr_freeDeadSe_() { #include "asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_freeDeadSe___16JAISeCategoryMgrFv.s" } #pragma pop +#endif /* 8029FC34-8029FC88 29A574 0054+00 2/2 1/1 0/0 .text __dt__18JASMemPool<5JAISe>Fv */ #pragma push @@ -174,65 +198,92 @@ SECTION_SDATA2 static f32 lit_822 = 1.0f / 100.0f; /* 8029FC88-8029FD40 29A5C8 00B8+00 1/1 0/0 0/0 .text * JAISeMgr_acceptsNewSe___16JAISeCategoryMgrCFUl */ +// isStopping issues +#ifdef NONMATCHING +u32 JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 param_0) const { + s32 rv; + int maxSe = getMaxSe(); + if (maxSe <= 0) { + return 1; + } + + int stopCount = 0; + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + if (param_0 < link->getObject()->JAISeCategoryMgr_getProperPriority_()) { + return 1; + } + if (link->getObject()->isStopping() == 0) { + stopCount++; + } + } + return stopCount < maxSe; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 param_0) const { +asm u32 JAISeCategoryMgr::JAISeMgr_acceptsNewSe_(u32 param_0) const { nofralloc #include "asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_acceptsNewSe___16JAISeCategoryMgrCFUl.s" } #pragma pop +#endif /* 8029FD40-8029FDE0 29A680 00A0+00 1/1 0/0 0/0 .text sortByPriority___16JAISeCategoryMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::sortByPriority_() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/sortByPriority___16JAISeCategoryMgrFv.s" +void JAISeCategoryMgr::sortByPriority_() { + for (u32 i = mSeList.getNumLinks(); i != 0; i--) { + JSULink* link = mSeList.getFirst(); + u32 lowestPriority = link->getObject()->JAISeCategoryMgr_getPriority_(); + JSULink* current = link->getNext(); + for (int j = 1; j < i; j++) { + u32 itemPriority = current->getObject()->JAISeCategoryMgr_getPriority_(); + if (itemPriority < lowestPriority) { + lowestPriority = itemPriority; + link = current; + } + current = current->getNext(); + } + mSeList.remove(link); + mSeList.append(link); + } } -#pragma pop /* 8029FDE0-8029FE34 29A720 0054+00 0/0 1/1 0/0 .text stop__16JAISeCategoryMgrFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::stop(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFUl.s" +void JAISeCategoryMgr::stop(u32 param_0) { + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + link->getObject()->stop(param_0); + } } -#pragma pop /* 8029FE34-8029FE78 29A774 0044+00 1/1 0/0 0/0 .text stop__16JAISeCategoryMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::stop() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/stop__16JAISeCategoryMgrFv.s" +void JAISeCategoryMgr::stop() { + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + link->getObject()->stop(); + } } -#pragma pop /* 8029FE78-8029FEEC 29A7B8 0074+00 1/1 0/0 0/0 .text stopSoundID__16JAISeCategoryMgrF10JAISoundID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::stopSoundID(JAISoundID param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/stopSoundID__16JAISeCategoryMgrF10JAISoundID.s" +inline JAISoundID JAISound::getID() const { + return JAISoundID((u32)soundID); +} + +void JAISeCategoryMgr::stopSoundID(JAISoundID param_0) { + if (!param_0.isAnonymous()) { + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + if ((u32)link->getObject()->getID() == (u32)param_0) { + link->getObject()->stop(); + } + } + } } -#pragma pop /* 8029FEEC-8029FF18 29A82C 002C+00 0/0 2/2 0/0 .text pause__16JAISeCategoryMgrFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeCategoryMgr::pause(bool param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/pause__16JAISeCategoryMgrFb.s" +void JAISeCategoryMgr::pause(bool param_0) { + for (JSULink* link = mSeList.getFirst(); link != NULL; link = link->getNext()) { + link->getObject()->pause(param_0); + } } -#pragma pop /* ############################################################################################## */ /* 8045578C-80455790 003D8C 0004+00 4/4 0/0 0/0 .sdata2 @1040 */ @@ -251,6 +302,35 @@ SECTION_SDATA2 static f32 lit_1042 = 0.5f; /* 8029FF18-802A0074 29A858 015C+00 1/1 0/0 0/0 .text * JAISeMgr_mixOut___16JAISeCategoryMgrFRC18JAISoundParamsMove16JAISoundActivity */ +// Matches with literals +#ifdef NONMATCHING +void JAISeCategoryMgr::JAISeMgr_mixOut_(JAISoundParamsMove const& param_0, + JAISoundActivity param_1) { + JASSoundParams aJStack_30; + aJStack_30.combine(param_0.mParams, mParams.mParams); + JSULink* this_00 = mSeList.getFirst(); + int iVar1 = getMaxActiveSe(); + + if (iVar1 > 0) { + while (this_00 != NULL && iVar1 > 0 && !this_00->getObject()->isFarAway()) { + this_00->getObject()->JAISeCategoryMgr_mixOut_(true, aJStack_30, param_1); + this_00 = this_00->getNext(); + iVar1--; + } + for (; this_00 != NULL; this_00 = this_00->getNext()) { + this_00->getObject()->JAISeCategoryMgr_mixOut_(false, aJStack_30, param_1); + } + } else { + while (this_00 != NULL && !this_00->getObject()->isFarAway()) { + this_00->getObject()->JAISeCategoryMgr_mixOut_(true, aJStack_30, param_1); + this_00 = this_00->getNext(); + } + for (; this_00 != NULL; this_00 = this_00->getNext()) { + this_00->getObject()->JAISeCategoryMgr_mixOut_(false, aJStack_30, param_1); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -260,6 +340,7 @@ asm void JAISeCategoryMgr::JAISeMgr_mixOut_(JAISoundParamsMove const& param_0, #include "asm/JSystem/JAudio2/JAISeMgr/JAISeMgr_mixOut___16JAISeCategoryMgrFRC18JAISoundParamsMove16JAISoundActivity.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803C98B0-803C98C4 0269D0 0014+00 2/2 1/1 0/0 .data __vt__8JAISeMgr */ @@ -272,6 +353,16 @@ SECTION_DATA extern void* __vt__8JAISeMgr[5] = { }; /* 802A0074-802A0168 29A9B4 00F4+00 0/0 1/1 0/0 .text __ct__8JAISeMgrFb */ +// Matches with literals +#ifdef NONMATCHING +JAISeMgr::JAISeMgr(bool param_0) : JASGlobalInstance(param_0) { + mAudience = NULL; + mSeqDataMgr = NULL; + field_0x10 = 0; + mParams.init(); + JAISoundActivity::init(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -280,62 +371,68 @@ asm JAISeMgr::JAISeMgr(bool param_0) { #include "asm/JSystem/JAudio2/JAISeMgr/__ct__8JAISeMgrFb.s" } #pragma pop +#endif /* 802A0168-802A01D8 29AAA8 0070+00 1/0 0/0 0/0 .text * isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JAISeMgr::isUsingSeqData(JAISeqDataRegion const& param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/isUsingSeqData__8JAISeMgrFRC16JAISeqDataRegion.s" +bool JAISeMgr::isUsingSeqData(JAISeqDataRegion const& param_0) { + for (int i = 0; i < 16; i++) { + if (mCategoryMgrs[i].JAISeCategoryMgr::isUsingSeqData(param_0)) { + return true; + } + } + return false; } -#pragma pop /* 802A01D8-802A0268 29AB18 0090+00 1/0 0/0 0/0 .text * releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::releaseSeqData(JAISeqDataRegion const& param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/releaseSeqData__8JAISeMgrFRC16JAISeqDataRegion.s" +int JAISeMgr::releaseSeqData(JAISeqDataRegion const& param_0) { + u8 r30 = 0; + for (int i = 0; i < 16; i++) { + switch (mCategoryMgrs[i].JAISeCategoryMgr::releaseSeqData(param_0)) { + case 0: + return 0; + case 1: + r30 = 1; + break; + } + } + return (r30 != 0) ? 1 : 0; } -#pragma pop /* 802A0268-802A02A0 29ABA8 0038+00 0/0 1/1 0/0 .text * setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::setCategoryArrangement(JAISeCategoryArrangement const& param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/setCategoryArrangement__8JAISeMgrFRC24JAISeCategoryArrangement.s" +void JAISeMgr::setCategoryArrangement(JAISeCategoryArrangement const& param_0) { + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].setMaxActiveSe(param_0.mItems[i].mMaxActiveSe); + mCategoryMgrs[i].setMaxInactiveSe(param_0.mItems[i].mMaxInactiveSe); + } } -#pragma pop /* 802A02A0-802A02F4 29ABE0 0054+00 0/0 1/1 0/0 .text stop__8JAISeMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::stop() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/stop__8JAISeMgrFv.s" +void JAISeMgr::stop() { + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].stop(); + } } -#pragma pop /* 802A02F4-802A0358 29AC34 0064+00 0/0 1/1 0/0 .text stopSoundID__8JAISeMgrF10JAISoundID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::stopSoundID(JAISoundID param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/stopSoundID__8JAISeMgrF10JAISoundID.s" +void JAISeMgr::stopSoundID(JAISoundID param_0) { + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].stopSoundID(param_0); + } } -#pragma pop /* 802A0358-802A03D8 29AC98 0080+00 0/0 1/1 0/0 .text initParams__8JAISeMgrFv */ +// Matches with literals +#ifdef NONMATCHING +void JAISeMgr::initParams() { + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].getParams()->init(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -344,92 +441,100 @@ asm void JAISeMgr::initParams() { #include "asm/JSystem/JAudio2/JAISeMgr/initParams__8JAISeMgrFv.s" } #pragma pop +#endif /* 802A03D8-802A03E0 -00001 0008+00 0/0 0/0 0/0 .text setAudience__8JAISeMgrFP11JAIAudience */ void JAISeMgr::setAudience(JAIAudience* param_0) { - *(u32*)(((u8*)this) + 8) /* this->field_0x8 */ = (u32)(param_0); + mAudience = param_0; } /* 802A03E0-802A0434 29AD20 0054+00 0/0 1/1 0/0 .text setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::setSeqDataMgr(JAISeqDataMgr* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/setSeqDataMgr__8JAISeMgrFP13JAISeqDataMgr.s" +void JAISeMgr::setSeqDataMgr(JAISeqDataMgr* param_0) { + resetSeqDataMgr(); + mSeqDataMgr = param_0; + mSeqDataMgr->setSeqDataUser(this); } -#pragma pop /* 802A0434-802A0484 29AD74 0050+00 1/1 0/0 0/0 .text resetSeqDataMgr__8JAISeMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::resetSeqDataMgr() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/resetSeqDataMgr__8JAISeMgrFv.s" +void JAISeMgr::resetSeqDataMgr() { + if (mSeqDataMgr) { + mSeqDataMgr->setSeqDataUser(NULL); + mSeqDataMgr = NULL; + } } -#pragma pop /* 802A0484-802A0574 29ADC4 00F0+00 1/1 0/0 0/0 .text newSe___8JAISeMgrFiUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAISeMgr::newSe_(int param_0, u32 param_1) { +asm JAISe* JAISeMgr::newSe_(int param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JAISeMgr/newSe___8JAISeMgrFiUl.s" } #pragma pop /* 802A0574-802A0704 29AEB4 0190+00 0/0 1/1 0/0 .text calc__8JAISeMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::calc() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/calc__8JAISeMgrFv.s" +void JAISeMgr::calc() { + mParams.calc(); + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].JAISeMgr_calc_(); + } + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].JAISeMgr_freeDeadSe_(); + } } -#pragma pop /* 802A0704-802A0768 29B044 0064+00 0/0 1/1 0/0 .text mixOut__8JAISeMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::mixOut() { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/mixOut__8JAISeMgrFv.s" +void JAISeMgr::mixOut() { + for (int i = 0; i < 16; i++) { + mCategoryMgrs[i].JAISeMgr_mixOut_(mParams, *this); + } } -#pragma pop /* ############################################################################################## */ -/* 8039B8F8-8039B8F8 027F58 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039B8F8 = "cannot new Se %08x."; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039B90C = "\0\0\0"; -#pragma pop /* 802A0768-802A08D0 29B0A8 0168+00 0/0 1/1 0/0 .text * startSound__8JAISeMgrF10JAISoundIDP14JAISoundHandlePCQ29JGeometry8TVec3 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, +int JAISeMgr::startSound(JAISoundID param_0, JAISoundHandle* param_1, JGeometry::TVec3 const* param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/func_802A0768.s" + if (param_1 && param_1->isSoundAttached()) { + param_1->getSound()->stop(); + } + + JAISoundInfo* pSoundInfo = JASGlobalInstance::getInstance(); + u32 uVar4; + u32 categoryIndex; + if (pSoundInfo != NULL) { + categoryIndex = pSoundInfo->getCategory(param_0); + uVar4 = pSoundInfo->getPriority(param_0); + } else { + categoryIndex = param_0.mId.mBytes.b1; + uVar4 = 0; + } + JAISe* pJAISe = newSe_(categoryIndex, uVar4); + if (pJAISe == NULL) { + JASReport("cannot new Se %08x.", param_0.mId.mFullId); + return 0; + } + JAIAudience* pAudience = getAudience(categoryIndex); + pJAISe->JAISeMgr_startID_(param_0, param_2, pAudience); + if (pSoundInfo != NULL) { + pSoundInfo->getSeInfo(param_0, pJAISe); + } + if (param_1 != NULL) { + pJAISe->attachHandle(param_1); + } + return 1; } -#pragma pop /* 802A08D0-802A08FC 29B210 002C+00 0/0 2/2 0/0 .text getNumActiveSe__8JAISeMgrCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JAISeMgr::getNumActiveSe() const { - nofralloc -#include "asm/JSystem/JAudio2/JAISeMgr/getNumActiveSe__8JAISeMgrCFv.s" +int JAISeMgr::getNumActiveSe() const { + int sum = 0; + for (int i = 0; i < 16; i++) { + sum += mCategoryMgrs[i].getNumSe(); + } + return sum; } -#pragma pop /* 802A08FC-802A0994 29B23C 0098+00 1/0 0/0 0/0 .text __dt__8JAISeMgrFv */ #pragma push diff --git a/libs/JSystem/JAudio2/JAISeqMgr.cpp b/libs/JSystem/JAudio2/JAISeqMgr.cpp index c7cc74bebcf..510e4b97301 100644 --- a/libs/JSystem/JAudio2/JAISeqMgr.cpp +++ b/libs/JSystem/JAudio2/JAISeqMgr.cpp @@ -106,7 +106,7 @@ asm bool JAISeqMgr::isUsingSeqData(JAISeqDataRegion const& param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JAISeqMgr::releaseSeqData(JAISeqDataRegion const& param_0) { +asm int JAISeqMgr::releaseSeqData(JAISeqDataRegion const& param_0) { nofralloc #include "asm/JSystem/JAudio2/JAISeqMgr/releaseSeqData__9JAISeqMgrFRC16JAISeqDataRegion.s" } diff --git a/libs/JSystem/JAudio2/JASHeapCtrl.cpp b/libs/JSystem/JAudio2/JASHeapCtrl.cpp index edbd64f1481..caeb493e464 100644 --- a/libs/JSystem/JAudio2/JASHeapCtrl.cpp +++ b/libs/JSystem/JAudio2/JASHeapCtrl.cpp @@ -63,14 +63,6 @@ struct JASHeap { /* 80290B54 */ ~JASHeap(); }; -struct JASGenericMemPool { - /* 80290848 */ JASGenericMemPool(); - /* 80290860 */ ~JASGenericMemPool(); - /* 802908C8 */ void newMemPool(u32, int); - /* 80290948 */ void alloc(u32); - /* 80290994 */ void free(void*, u32); -}; - // // Forward References: // diff --git a/libs/JSystem/JAudio2/JAUSectionHeap.cpp b/libs/JSystem/JAudio2/JAUSectionHeap.cpp index 62cc69dfd82..60464f17a7b 100644 --- a/libs/JSystem/JAudio2/JAUSectionHeap.cpp +++ b/libs/JSystem/JAudio2/JAUSectionHeap.cpp @@ -212,7 +212,7 @@ extern "C" void getOpenSection__14JAUSectionHeapFv(); extern "C" void setSeqDataUser__14JAUSectionHeapFP14JAISeqDataUser(); extern "C" void newDynamicSeqBlock__14JAUSectionHeapFUl(); extern "C" void getSeqData__14JAUSectionHeapF10JAISoundIDP10JAISeqData(); -extern "C" bool releaseSeqData__14JAUSectionHeapFv(); +extern "C" int releaseSeqData__14JAUSectionHeapFv(); extern "C" void __dt__14JAUSectionHeapFv(); extern "C" static void func_802A6440(); extern "C" void __dt__10JAUSectionFv(); diff --git a/libs/Z2AudioLib/Z2AudioMgr.cpp b/libs/Z2AudioLib/Z2AudioMgr.cpp index 7fff13d9a0b..e953c601551 100644 --- a/libs/Z2AudioLib/Z2AudioMgr.cpp +++ b/libs/Z2AudioLib/Z2AudioMgr.cpp @@ -105,11 +105,6 @@ struct JASHeap { /* 802A4A5C */ void __defctor(); }; -struct JASGenericMemPool { - /* 80290848 */ JASGenericMemPool(); - /* 802908C8 */ void newMemPool(u32, int); -}; - struct JASAramStream { static u8 sBlockSize[4]; };