Work on JAISeMgr (#368)

This commit is contained in:
hatal175 2023-07-12 10:59:33 +03:00 committed by GitHub
parent 018fdf29d6
commit ed40ffb064
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 375 additions and 961 deletions

View File

@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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<JAISe>*, u32);
/* 8029F304 */ void JAISeCategoryMgr_mixOut_(bool, JASSoundParams const&, JAISoundActivity);
/* 8029F4CC */ void JAISeCategoryMgr_calc_();
/* 8029F650 */ void JAISeMgr_startID_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
JAISeqData* getSeqData() { return &mSeqData; }
u32 JAISeCategoryMgr_getProperPriority_() const { return mProperPriority; }
u32 JAISeCategoryMgr_getPriority_() const { return mPriority;}
bool isFarAway() const { return mPriority == -1; }
/* 0x0aa */ u8 field_0x0[2];
/* 0x0ac */ u32 mProperPriority;
/* 0x0b0 */ u32 mPriority;
/* 0x0b4 */ u8 field_0xb4[0x25c];
/* 0x310 */ JAISeqData mSeqData;
};
class JAISeCategoryMgr : public JAISeqDataUser {
public:
/* 8029F9C4 */ void JAISeMgr_calc_();
/* 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<JAISeMgr> {
class JAISeMgr : public JASGlobalInstance<JAISeMgr>,
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<f32> const*);
/* 802A08D0 */ void getNumActiveSe() const;
/* 802A0768 */ int startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> 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;

View File

@ -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;
};

View File

@ -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;

View File

@ -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_;

View File

@ -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<JAISoundInfo> {
/* 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 */

View File

@ -11,7 +11,9 @@ public:
}
JASGlobalInstance(bool param_1) {
sInstance = (T*)this;
if (param_1) {
sInstance = (T*)this;
}
}
~JASGlobalInstance() {

View File

@ -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 */

View File

@ -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<JAISoundInfo> {
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<JAUSoundInfo> {
virtual void getAudibleSw(JAISoundID) const = 0;
virtual void getBgmSeqResourceID(JAISoundID) const = 0;

View File

@ -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<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISe>* link = mSeList.getFirst();
while (link != NULL) {
JSULink<JAISe>* 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<JAISe>* 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<JAISe>* link = mSeList.getFirst();
u32 lowestPriority = link->getObject()->JAISeCategoryMgr_getPriority_();
JSULink<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISe>* 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<JAISeMgr>(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<f> */
#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<f32> 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<JAISoundInfo>::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

View File

@ -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"
}

View File

@ -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:
//

View File

@ -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();

View File

@ -105,11 +105,6 @@ struct JASHeap {
/* 802A4A5C */ void __defctor();
};
struct JASGenericMemPool {
/* 80290848 */ JASGenericMemPool();
/* 802908C8 */ void newMemPool(u32, int);
};
struct JASAramStream {
static u8 sBlockSize[4];
};