mirror of https://github.com/zeldaret/tp.git
JAudio2 Work (#228)
This commit is contained in:
parent
5d4f161d43
commit
463348bfc7
5
Makefile
5
Makefile
|
|
@ -45,11 +45,13 @@ include obj_files.mk
|
|||
MWCC_VERSION := 2.7
|
||||
|
||||
# Programs
|
||||
ifeq ($(WINE),) #if WINE varible is unset (wine can be replaced with a less bloated translation layer such as wibo if needed)
|
||||
ifeq ($(WINDOWS),1)
|
||||
WINE :=
|
||||
else
|
||||
WINE := wine
|
||||
endif
|
||||
endif
|
||||
|
||||
# Hack for OSX
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
|
|
@ -168,7 +170,8 @@ $(DOL_SHIFT): $(ELF_SHIFT) | tools
|
|||
|
||||
shift: dirs $(DOL_SHIFT)
|
||||
|
||||
game: | shift rels
|
||||
game: shift
|
||||
$(MAKE) rels
|
||||
@mkdir -p game
|
||||
@$(PYTHON) tools/package_game_assets.py game $(BUILD_DIR)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
lbl_802A2474:
|
||||
/* 802A2474 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 802A2478 7C 08 02 A6 */ mflr r0
|
||||
/* 802A247C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 802A2480 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 802A2484 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802A2488 7C A9 2B 78 */ mr r9, r5
|
||||
/* 802A248C 7C C8 33 78 */ mr r8, r6
|
||||
/* 802A2490 28 07 00 00 */ cmplwi r7, 0
|
||||
/* 802A2494 41 82 00 08 */ beq lbl_802A249C
|
||||
/* 802A2498 90 FF 00 0C */ stw r7, 0xc(r31)
|
||||
lbl_802A249C:
|
||||
/* 802A249C 80 1F 00 18 */ lwz r0, 0x18(r31)
|
||||
/* 802A24A0 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 802A24A4 80 7F 00 0C */ lwz r3, 0xc(r31)
|
||||
/* 802A24A8 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 802A24AC 7D 26 4B 78 */ mr r6, r9
|
||||
/* 802A24B0 7D 07 43 78 */ mr r7, r8
|
||||
/* 802A24B4 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 802A24B8 81 8C 00 0C */ lwz r12, 0xc(r12)
|
||||
/* 802A24BC 7D 89 03 A6 */ mtctr r12
|
||||
/* 802A24C0 4E 80 04 21 */ bctrl
|
||||
/* 802A24C4 90 7F 00 08 */ stw r3, 8(r31)
|
||||
/* 802A24C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 802A24CC 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 802A24D0 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A24D4 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 802A24D8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
lbl_802A266C:
|
||||
/* 802A266C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802A2670 7C 08 02 A6 */ mflr r0
|
||||
/* 802A2674 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802A2678 7C 66 1B 78 */ mr r6, r3
|
||||
/* 802A267C 80 63 00 14 */ lwz r3, 0x14(r3)
|
||||
/* 802A2680 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 802A2684 90 06 00 14 */ stw r0, 0x14(r6)
|
||||
/* 802A2688 54 00 06 3F */ clrlwi. r0, r0, 0x18
|
||||
/* 802A268C 40 82 00 1C */ bne lbl_802A26A8
|
||||
/* 802A2690 3C 60 80 3A */ lis r3, JAISound__stringBase0@ha /* 0x8039B910@ha */
|
||||
/* 802A2694 38 63 B9 10 */ addi r3, r3, JAISound__stringBase0@l /* 0x8039B910@l */
|
||||
/* 802A2698 80 86 00 14 */ lwz r4, 0x14(r6)
|
||||
/* 802A269C 80 A6 00 18 */ lwz r5, 0x18(r6)
|
||||
/* 802A26A0 4C C6 31 82 */ crclr 6
|
||||
/* 802A26A4 4B FE E8 C1 */ bl JASReport__FPCce
|
||||
lbl_802A26A8:
|
||||
/* 802A26A8 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802A26AC 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A26B0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802A26B4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
lbl_802A29DC:
|
||||
/* 802A29DC 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 802A29E0 7C 08 02 A6 */ mflr r0
|
||||
/* 802A29E4 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 802A29E8 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 802A29EC 48 0B F7 E5 */ bl _savegpr_26
|
||||
/* 802A29F0 7C 7A 1B 78 */ mr r26, r3
|
||||
/* 802A29F4 7C 9B 23 78 */ mr r27, r4
|
||||
/* 802A29F8 3B A0 00 00 */ li r29, 0
|
||||
/* 802A29FC 3B E0 00 00 */ li r31, 0
|
||||
/* 802A2A00 3B 80 00 00 */ li r28, 0
|
||||
/* 802A2A04 3B C1 00 08 */ addi r30, r1, 8
|
||||
/* 802A2A08 48 00 00 34 */ b lbl_802A2A3C
|
||||
lbl_802A2A0C:
|
||||
/* 802A2A0C 80 7A 00 08 */ lwz r3, 8(r26)
|
||||
/* 802A2A10 7F 84 E3 78 */ mr r4, r28
|
||||
/* 802A2A14 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 802A2A18 81 8C 00 0C */ lwz r12, 0xc(r12)
|
||||
/* 802A2A1C 7D 89 03 A6 */ mtctr r12
|
||||
/* 802A2A20 4E 80 04 21 */ bctrl
|
||||
/* 802A2A24 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 802A2A28 41 82 00 10 */ beq lbl_802A2A38
|
||||
/* 802A2A2C 7C 7E F9 2E */ stwx r3, r30, r31
|
||||
/* 802A2A30 3B BD 00 01 */ addi r29, r29, 1
|
||||
/* 802A2A34 3B FF 00 04 */ addi r31, r31, 4
|
||||
lbl_802A2A38:
|
||||
/* 802A2A38 3B 9C 00 01 */ addi r28, r28, 1
|
||||
lbl_802A2A3C:
|
||||
/* 802A2A3C 80 7A 00 0C */ lwz r3, 0xc(r26)
|
||||
/* 802A2A40 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 802A2A44 81 8C 00 10 */ lwz r12, 0x10(r12)
|
||||
/* 802A2A48 7D 89 03 A6 */ mtctr r12
|
||||
/* 802A2A4C 4E 80 04 21 */ bctrl
|
||||
/* 802A2A50 7C 1C 18 00 */ cmpw r28, r3
|
||||
/* 802A2A54 41 80 FF B8 */ blt lbl_802A2A0C
|
||||
/* 802A2A58 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802A2A5C 7F A4 EB 78 */ mr r4, r29
|
||||
/* 802A2A60 4B FE E9 E5 */ bl setChannelMgrCount__8JASTrackFUl
|
||||
/* 802A2A64 3B 80 00 00 */ li r28, 0
|
||||
/* 802A2A68 3B E0 00 00 */ li r31, 0
|
||||
/* 802A2A6C 3B C1 00 08 */ addi r30, r1, 8
|
||||
/* 802A2A70 48 00 00 1C */ b lbl_802A2A8C
|
||||
lbl_802A2A74:
|
||||
/* 802A2A74 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802A2A78 7F 84 E3 78 */ mr r4, r28
|
||||
/* 802A2A7C 7C BE F8 2E */ lwzx r5, r30, r31
|
||||
/* 802A2A80 4B FE EF 75 */ bl assignExtBuffer__8JASTrackFUlP14JASSoundParams
|
||||
/* 802A2A84 3B 9C 00 01 */ addi r28, r28, 1
|
||||
/* 802A2A88 3B FF 00 04 */ addi r31, r31, 4
|
||||
lbl_802A2A8C:
|
||||
/* 802A2A8C 80 1B 01 D0 */ lwz r0, 0x1d0(r27)
|
||||
/* 802A2A90 7C 1C 00 40 */ cmplw r28, r0
|
||||
/* 802A2A94 41 80 FF E0 */ blt lbl_802A2A74
|
||||
/* 802A2A98 39 61 00 40 */ addi r11, r1, 0x40
|
||||
/* 802A2A9C 48 0B F7 81 */ bl _restgpr_26
|
||||
/* 802A2AA0 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 802A2AA4 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A2AA8 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 802A2AAC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
lbl_802A2598:
|
||||
/* 802A2598 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802A259C 7C 08 02 A6 */ mflr r0
|
||||
/* 802A25A0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802A25A4 38 80 00 00 */ li r4, 0
|
||||
/* 802A25A8 88 03 00 1F */ lbz r0, 0x1f(r3)
|
||||
/* 802A25AC 50 80 1F 38 */ rlwimi r0, r4, 3, 0x1c, 0x1c
|
||||
/* 802A25B0 98 03 00 1F */ stb r0, 0x1f(r3)
|
||||
/* 802A25B4 38 80 00 01 */ li r4, 1
|
||||
/* 802A25B8 88 03 00 1F */ lbz r0, 0x1f(r3)
|
||||
/* 802A25BC 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
|
||||
/* 802A25C0 98 03 00 1F */ stb r0, 0x1f(r3)
|
||||
/* 802A25C4 4B FF FB DD */ bl releaseHandle__8JAISoundFv
|
||||
/* 802A25C8 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802A25CC 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A25D0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802A25D4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
lbl_8029D200:
|
||||
/* 8029D200 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8029D204 7C 08 02 A6 */ mflr r0
|
||||
/* 8029D208 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8029D20C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8029D210 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8029D214 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8029D218 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 8029D21C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8029D220 40 82 00 50 */ bne lbl_8029D270
|
||||
/* 8029D224 3B E0 00 00 */ li r31, 0
|
||||
lbl_8029D228:
|
||||
/* 8029D228 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8029D22C 48 00 07 1D */ bl getHandle__13JASDSPChannelFUl
|
||||
/* 8029D230 80 03 00 00 */ lwz r0, 0(r3)
|
||||
/* 8029D234 54 00 06 3F */ clrlwi. r0, r0, 0x18
|
||||
/* 8029D238 40 82 00 08 */ bne lbl_8029D240
|
||||
/* 8029D23C 48 00 01 05 */ bl drop__13JASDSPChannelFv
|
||||
lbl_8029D240:
|
||||
/* 8029D240 3B FF 00 01 */ addi r31, r31, 1
|
||||
/* 8029D244 28 1F 00 40 */ cmplwi r31, 0x40
|
||||
/* 8029D248 41 80 FF E0 */ blt lbl_8029D228
|
||||
/* 8029D24C 88 1E 00 0C */ lbz r0, 0xc(r30)
|
||||
/* 8029D250 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8029D254 41 82 00 0C */ beq lbl_8029D260
|
||||
/* 8029D258 80 6D 86 0C */ lwz r3, data_80450B8C(r13)
|
||||
/* 8029D25C 4B FF FB 65 */ bl stop__14JASAudioThreadFv
|
||||
lbl_8029D260:
|
||||
/* 8029D260 38 00 00 01 */ li r0, 1
|
||||
/* 8029D264 90 1E 00 08 */ stw r0, 8(r30)
|
||||
/* 8029D268 38 60 FF FF */ li r3, -1
|
||||
/* 8029D26C 48 00 00 50 */ b lbl_8029D2BC
|
||||
lbl_8029D270:
|
||||
/* 8029D270 38 03 FF FF */ addi r0, r3, -1
|
||||
/* 8029D274 90 1E 00 00 */ stw r0, 0(r30)
|
||||
/* 8029D278 83 FE 00 00 */ lwz r31, 0(r30)
|
||||
/* 8029D27C 48 00 0E DD */ bl getDSPLevel__9JASDriverFv
|
||||
/* 8029D280 C8 42 BD 40 */ lfd f2, lit_156(r2)
|
||||
/* 8029D284 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8029D288 3C 60 43 30 */ lis r3, 0x4330
|
||||
/* 8029D28C 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 8029D290 C8 01 00 08 */ lfd f0, 8(r1)
|
||||
/* 8029D294 EC 00 10 28 */ fsubs f0, f0, f2
|
||||
/* 8029D298 EC 20 00 72 */ fmuls f1, f0, f1
|
||||
/* 8029D29C 38 1F 00 01 */ addi r0, r31, 1
|
||||
/* 8029D2A0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8029D2A4 90 61 00 10 */ stw r3, 0x10(r1)
|
||||
/* 8029D2A8 C8 01 00 10 */ lfd f0, 0x10(r1)
|
||||
/* 8029D2AC EC 00 10 28 */ fsubs f0, f0, f2
|
||||
/* 8029D2B0 EC 21 00 24 */ fdivs f1, f1, f0
|
||||
/* 8029D2B4 48 00 0E 7D */ bl setDSPLevel__9JASDriverFf
|
||||
/* 8029D2B8 38 60 00 00 */ li r3, 0
|
||||
lbl_8029D2BC:
|
||||
/* 8029D2BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8029D2C0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8029D2C4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8029D2C8 7C 08 03 A6 */ mtlr r0
|
||||
/* 8029D2CC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8029D2D0 4E 80 00 20 */ blr
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
lbl_8029D138:
|
||||
/* 8029D138 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8029D13C 7C 08 02 A6 */ mflr r0
|
||||
/* 8029D140 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8029D144 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8029D148 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8029D14C 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8029D150 7C 9F 23 78 */ mr r31, r4
|
||||
/* 8029D154 80 03 00 08 */ lwz r0, 8(r3)
|
||||
/* 8029D158 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8029D15C 40 82 00 0C */ bne lbl_8029D168
|
||||
/* 8029D160 38 60 00 00 */ li r3, 0
|
||||
/* 8029D164 48 00 00 58 */ b lbl_8029D1BC
|
||||
lbl_8029D168:
|
||||
/* 8029D168 98 BE 00 0C */ stb r5, 0xc(r30)
|
||||
/* 8029D16C 48 0A 05 89 */ bl OSDisableInterrupts
|
||||
/* 8029D170 90 61 00 08 */ stw r3, 8(r1)
|
||||
/* 8029D174 3C 60 80 2A */ lis r3, callback__15JASAudioReseterFPv@ha /* 0x8029D2D4@ha */
|
||||
/* 8029D178 38 63 D2 D4 */ addi r3, r3, callback__15JASAudioReseterFPv@l /* 0x8029D2D4@l */
|
||||
/* 8029D17C 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8029D180 48 00 10 C1 */ bl registerDspSyncCallback__9JASDriverFPFPv_lPv
|
||||
/* 8029D184 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 8029D188 40 82 00 14 */ bne lbl_8029D19C
|
||||
/* 8029D18C 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 8029D190 48 0A 05 8D */ bl OSRestoreInterrupts
|
||||
/* 8029D194 38 60 00 00 */ li r3, 0
|
||||
/* 8029D198 48 00 00 24 */ b lbl_8029D1BC
|
||||
lbl_8029D19C:
|
||||
/* 8029D19C 48 00 0F BD */ bl getDSPLevel__9JASDriverFv
|
||||
/* 8029D1A0 D0 3E 00 04 */ stfs f1, 4(r30)
|
||||
/* 8029D1A4 93 FE 00 00 */ stw r31, 0(r30)
|
||||
/* 8029D1A8 38 00 00 00 */ li r0, 0
|
||||
/* 8029D1AC 90 1E 00 08 */ stw r0, 8(r30)
|
||||
/* 8029D1B0 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 8029D1B4 48 0A 05 69 */ bl OSRestoreInterrupts
|
||||
/* 8029D1B8 38 60 00 01 */ li r3, 1
|
||||
lbl_8029D1BC:
|
||||
/* 8029D1BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8029D1C0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8029D1C4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8029D1C8 7C 08 03 A6 */ mtlr r0
|
||||
/* 8029D1CC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8029D1D0 4E 80 00 20 */ blr
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
lbl_8029E540:
|
||||
/* 8029E540 38 00 00 00 */ li r0, 0
|
||||
/* 8029E544 90 0D 8D 78 */ stw r0, flag(r13)
|
||||
/* 8029E548 4E 80 00 20 */ blr
|
||||
|
|
@ -2,10 +2,11 @@
|
|||
#define JAIAUDIBLE_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASSoundParams.h"
|
||||
|
||||
struct JAIAudible {
|
||||
virtual ~JAIAudible();
|
||||
virtual void getOuterParams(int) = 0;
|
||||
virtual JASSoundParams* getOuterParams(int) = 0;
|
||||
virtual void calc() = 0;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ struct JAIAudience {
|
|||
virtual ~JAIAudience();
|
||||
virtual JAIAudible* newAudible(JGeometry::TVec3<f32> const&, JAISoundID,
|
||||
JGeometry::TVec3<f32> const*, u32) = 0;
|
||||
virtual void getMaxChannels() = 0;
|
||||
virtual int getMaxChannels() = 0;
|
||||
virtual void deleteAudible(JAIAudible*) = 0;
|
||||
virtual void calcPriority(JAIAudible*) = 0;
|
||||
virtual u32 calcPriority(JAIAudible*) = 0;
|
||||
virtual void mixChannelOut(JASSoundParams const&, JAIAudible*, int) = 0;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@
|
|||
class JAISoundID {
|
||||
public:
|
||||
operator u32() const { return this->mId; }
|
||||
void operator=(JAISoundID const&);
|
||||
void operator=(JAISoundID const& other) {mId = other.mId;};
|
||||
|
||||
JAISoundID(u32 pId) { mId = pId; };
|
||||
|
||||
JAISoundID(JAISoundID const& other);
|
||||
JAISoundID(JAISoundID const& other) {mId = other.mId;};
|
||||
|
||||
JAISoundID() {}
|
||||
|
||||
|
|
@ -29,6 +29,13 @@ struct JASTrack {
|
|||
/* 80291C30 */ void openChild(u32);
|
||||
/* 80292918 */ void writePort(u32, u16);
|
||||
/* 8029297C */ void readPort(u32);
|
||||
|
||||
inline int getChannelMgrCount() {
|
||||
return channelMgrCount;
|
||||
}
|
||||
|
||||
/* 0x0 */u8 field_0x0[0x1d0];
|
||||
/* 0x1d0 */ int channelMgrCount;
|
||||
};
|
||||
|
||||
struct JAISoundStatus_ {
|
||||
|
|
@ -36,26 +43,92 @@ struct JAISoundStatus_ {
|
|||
/* 802A2244 */ s32 unlockIfLocked();
|
||||
|
||||
void init() {
|
||||
field_0x0 = 0;
|
||||
field_0x1 = 0;
|
||||
*((u16*)(this) + 2) = 0;
|
||||
field_0x0.value = 0;
|
||||
field_0x1.value = 0;
|
||||
*((u16*)&state) = 0;
|
||||
user_data = 0;
|
||||
}
|
||||
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x2 */ u8 state[2]; // debug accesses like "state.flags.calcedOnce"
|
||||
bool isAlive(); //used in assert
|
||||
|
||||
inline bool isPlaying() {
|
||||
return state.unk==5;
|
||||
}
|
||||
|
||||
inline bool isPaused() {
|
||||
return field_0x0.flags.paused;
|
||||
}
|
||||
|
||||
/* 0x0 */ union {
|
||||
u8 value;
|
||||
struct{
|
||||
u8 flag1:1;
|
||||
u8 paused:1;
|
||||
u8 flag3:1;
|
||||
u8 flag4:1;
|
||||
u8 flag5:1;
|
||||
u8 flag6:1;
|
||||
u8 flag7:1;
|
||||
u8 flag8:1;
|
||||
}flags;
|
||||
}field_0x0;
|
||||
/* 0x1 */ union {
|
||||
u8 value;
|
||||
struct{
|
||||
u8 flag1:1;
|
||||
u8 flag2:1;
|
||||
u8 flag3:1;
|
||||
u8 flag4:1;
|
||||
u8 flag5:1;
|
||||
u8 flag6:1;
|
||||
u8 flag7:1;
|
||||
u8 flag8:1;
|
||||
}flags;
|
||||
}field_0x1;
|
||||
/* 0x2 */ struct {
|
||||
u8 unk;
|
||||
struct {
|
||||
u8 flag1:1;
|
||||
u8 flag2:1;
|
||||
u8 flag3:1;
|
||||
u8 flag4:1;
|
||||
u8 flag5:1;
|
||||
u8 flag6:1;
|
||||
u8 flag7:1;
|
||||
u8 flag8:1;
|
||||
}flags;
|
||||
} state;
|
||||
/* 0x4 */ u32 user_data;
|
||||
}; // Size: 0x6
|
||||
|
||||
struct JAISoundFader {
|
||||
void forceIn() {
|
||||
mIntensity = 1.0f;
|
||||
field_0x4.zero();
|
||||
mTransition.zero();
|
||||
}
|
||||
void forceOut() {
|
||||
mIntensity = 0.0f;
|
||||
mTransition.zero();
|
||||
}
|
||||
void fadeOut(u32 fadeCount) {
|
||||
if (fadeCount!=0) {
|
||||
mTransition.set(0.0f,mIntensity,fadeCount);
|
||||
}else{
|
||||
forceOut();
|
||||
}
|
||||
}
|
||||
bool isOut() {
|
||||
if(mTransition.mCount != 0 || mIntensity < 0.01f) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
inline void calc() {
|
||||
mIntensity = mTransition.apply(mIntensity);
|
||||
}
|
||||
|
||||
/* 0x00 */ f32 mIntensity;
|
||||
/* 0x04 */ JAISoundParamsTransition::TTransition field_0x4;
|
||||
/* 0x04 */ JAISoundParamsTransition::TTransition mTransition;
|
||||
}; // Size: 0x10
|
||||
|
||||
template <typename A0>
|
||||
|
|
@ -88,29 +161,50 @@ public:
|
|||
JAIAudience*);
|
||||
/* 802A2598 */ void stop();
|
||||
/* 802A24DC */ void stop(u32 fadeout);
|
||||
/* 802A25D8 */ bool asSe();
|
||||
/* 802A25E0 */ bool asSeq();
|
||||
/* 802A25E8 */ bool asStream();
|
||||
/* 802A25F0 */ void die_JAISound_();
|
||||
/* 802A266C */ void increasePrepareCount_JAISound_();
|
||||
/* 802A26B8 */ void calc_JAISound_();
|
||||
/* 802A26B8 */ bool calc_JAISound_();
|
||||
/* 802A29DC */ void initTrack_JAISound_(JASTrack*);
|
||||
|
||||
virtual void getNumChild() = 0;
|
||||
virtual void getChild() = 0;
|
||||
virtual void releaseChild() = 0;
|
||||
/* 802A25D8 */ virtual bool asSe();
|
||||
/* 802A25E0 */ virtual bool asSeq();
|
||||
/* 802A25E8 */ virtual bool asStream();
|
||||
virtual void getTrack() = 0;
|
||||
virtual void getChildTrack() = 0;
|
||||
virtual void getTempoMgr() = 0;
|
||||
virtual bool JAISound_tryDie_() = 0;
|
||||
|
||||
JAISoundID getID() const;
|
||||
u32 getUserData() const { return status_.user_data; }
|
||||
bool isHandleAttached() const { return handle_ != NULL; }
|
||||
|
||||
void removeLifeTime_() {
|
||||
status_.field_0x1.flags.flag1 = false;
|
||||
}
|
||||
void stop_JAISound_() {
|
||||
status_.state.flags.flag5 = 0;
|
||||
status_.state.flags.flag1 = 1;
|
||||
}
|
||||
bool isStopping() {
|
||||
bool isStopping = false;
|
||||
if(status_.state.flags.flag1) {
|
||||
isStopping = status_.state.flags.flag5 ? fader.isOut() : true;
|
||||
}
|
||||
return isStopping;
|
||||
}
|
||||
|
||||
/* 0x04 */ JAISoundHandle* handle_;
|
||||
/* 0x08 */ JAIAudible* audible_;
|
||||
/* 0x0C */ JAIAudience* audience_;
|
||||
/* 0x10 */ s32 lifeTime;
|
||||
/* 0x10 */ u32 lifeTime;
|
||||
/* 0x14 */ s32 prepareCount;
|
||||
/* 0x18 */ JAISoundID soundID;
|
||||
/* 0x1C */ JAISoundStatus_ status_;
|
||||
/* 0x24 */ JAISoundFader fader;
|
||||
/* 0x34 */ s32 field_0x34;
|
||||
/* 0x34 */ s32 mPriority;
|
||||
/* 0x38 */ s32 mCount;
|
||||
/* 0x3C */ JAISoundParams params;
|
||||
}; // Size: 0x98
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ class JAISoundID;
|
|||
|
||||
class JAISoundHandle {
|
||||
public:
|
||||
JAISoundHandle();
|
||||
JAISoundHandle() {sound_ = NULL;};
|
||||
~JAISoundHandle() {}
|
||||
|
||||
bool isSoundAttached() const { return sound_ != NULL; }
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ struct JAISoundParamsTransition {
|
|||
field_0x4 = 0.0f;
|
||||
}
|
||||
|
||||
void set(f32 newValue, f32 param_1, u32 param_2) {
|
||||
mCount = param_2;
|
||||
field_0x0 = (newValue - param_1) / mCount;
|
||||
void set(f32 newValue, f32 intensity, u32 fadeCount) {
|
||||
mCount = fadeCount;
|
||||
field_0x0 = (newValue - intensity) / mCount;
|
||||
field_0x4 = newValue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,13 @@
|
|||
|
||||
#include "JSystem/JAudio2/JASDriverIF.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
struct JASCriticalSection {
|
||||
inline JASCriticalSection() {mInterruptState = OSDisableInterrupts();};
|
||||
inline ~JASCriticalSection() {OSRestoreInterrupts(mInterruptState);};
|
||||
u32 mInterruptState;
|
||||
};
|
||||
|
||||
struct JASAudioReseter {
|
||||
/* 8029D0B4 */ JASAudioReseter();
|
||||
|
|
@ -10,7 +17,7 @@ struct JASAudioReseter {
|
|||
/* 8029D138 */ bool start(u32, bool);
|
||||
/* 8029D1D4 */ void resume();
|
||||
/* 8029D1F8 */ s32 checkDone() const;
|
||||
/* 8029D200 */ static s32 calc();
|
||||
/* 8029D200 */ s32 calc();
|
||||
/* 8029D2D4 */ static s32 callback(void*);
|
||||
|
||||
/* 0x0 */ u32 field_0x0;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,16 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct JASAudioThread {
|
||||
/* 8029CCDC */ JASAudioThread(int, int, u32);
|
||||
/* 8029CD4C */ void create(s32);
|
||||
/* 8029CDC0 */ void stop();
|
||||
/* 8029CDEC */ void run();
|
||||
/* 8029CF68 */ void DMACallback();
|
||||
/* 8029CFBC */ void DSPCallback(void*);
|
||||
/* 8029D028 */ ~JASAudioThread();
|
||||
|
||||
static u8 snIntCount[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
#endif /* JASAUDIOTHREAD_H */
|
||||
|
|
|
|||
|
|
@ -6,9 +6,19 @@
|
|||
template <class T>
|
||||
class JASGlobalInstance {
|
||||
public:
|
||||
// T* getInstance() { return sInstance; }
|
||||
inline T* getInstance() { return sInstance; }
|
||||
|
||||
// static T* sInstance;
|
||||
inline JASGlobalInstance(bool param) {
|
||||
if (param) {
|
||||
ASSERT(sInstance == 0);
|
||||
//if (this!=NULL) {
|
||||
sInstance = (T*)this;
|
||||
//We need a better way to compute the location of sInstance
|
||||
//sInstance = (T*)((char*)this-(char*)&(((T*)NULL)->JASGlobalInstance<T>));
|
||||
//}
|
||||
}
|
||||
}
|
||||
static T* sInstance;
|
||||
};
|
||||
|
||||
#endif /* JASGADGET_H */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,6 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void JASReport(const char* message, ...);
|
||||
|
||||
#endif /* JASREPORT_H */
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@
|
|||
#define DSPPROC_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/dsp/dsp.h"
|
||||
|
||||
#endif /* DSPPROC_H */
|
||||
|
|
|
|||
|
|
@ -121,9 +121,9 @@ struct Z2Audience : public JAIAudience {
|
|||
/* 802BD1FC */ virtual ~Z2Audience();
|
||||
/* 802BD338 */ virtual JAIAudible* newAudible(JGeometry::TVec3<f32> const&, JAISoundID,
|
||||
JGeometry::TVec3<f32> const*, u32);
|
||||
/* 802BDED4 */ virtual void getMaxChannels();
|
||||
/* 802BDED4 */ virtual int getMaxChannels();
|
||||
/* 802BD4D4 */ virtual void deleteAudible(JAIAudible*);
|
||||
/* 802BD5B8 */ virtual void calcPriority(JAIAudible*);
|
||||
/* 802BD5B8 */ virtual u32 calcPriority(JAIAudible*);
|
||||
/* 802BD71C */ virtual void mixChannelOut(JASSoundParams const&, JAIAudible*, int);
|
||||
|
||||
/* 0x004 */ f32 field_0x4;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
#ifndef Z2WOLFHOWLMGR_H
|
||||
#define Z2WOLFHOWLMGR_H
|
||||
|
||||
#include "Z2AudioLib/Z2SoundObject.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "Z2AudioLib/Z2SoundObject.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
|
||||
/*
|
||||
* Z2WolfHowlData
|
||||
|
|
@ -17,7 +18,7 @@ struct Z2WolfHowlData {
|
|||
u16* mSongData;
|
||||
};
|
||||
|
||||
class Z2WolfHowlMgr {
|
||||
class Z2WolfHowlMgr : public JASGlobalInstance<Z2WolfHowlMgr> {
|
||||
public:
|
||||
Z2WolfHowlMgr();
|
||||
|
||||
|
|
@ -36,10 +37,11 @@ public:
|
|||
void startGuideMelody(bool);
|
||||
void skipCorrectDemo();
|
||||
|
||||
|
||||
private:
|
||||
/* 0x00 */ JAISoundHandle* field_0x00;
|
||||
/* 0x04 */ JAISoundHandle* field_0x04;
|
||||
/* 0x08 */ JAISoundHandle* field_0x08;
|
||||
/* 0x00 */ JAISoundHandle field_0x00;
|
||||
/* 0x04 */ JAISoundHandle field_0x04;
|
||||
/* 0x08 */ JAISoundHandle field_0x08;
|
||||
/* 0x0C */ Z2WolfHowlData* mpCurSong;
|
||||
/* 0x10 */ Z2WolfHowlData** mpSongList;
|
||||
/* 0x14 */ f32 mNowInputValue;
|
||||
|
|
@ -51,37 +53,18 @@ private:
|
|||
/* 0x2C */ u8 field_0x2c[4];
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 0x40 */ f32 field_0x40;
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
/* 0x4C */ f32 field_0x4c;
|
||||
/* 0x50 */ f32 field_0x50;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ f32 field_0x60;
|
||||
/* 0x64 */ f32 field_0x64;
|
||||
/* 0x68 */ f32 field_0x68;
|
||||
/* 0x6C */ f32 field_0x6c;
|
||||
/* 0x70 */ f32 field_0x70;
|
||||
/* 0x74 */ f32 field_0x74;
|
||||
/* 0x78 */ f32 field_0x78;
|
||||
/* 0x7C */ f32 field_0x7c;
|
||||
/* 0x80 */ f32 field_0x80;
|
||||
/* 0x84 */ f32 field_0x84;
|
||||
/* 0x38 */ f32 field_0x38[10];
|
||||
/* 0x60 */ f32 field_0x60[10];
|
||||
/* 0x88 */ void* mTimer;
|
||||
/* 0x8C */ u8 mReleaseTimer;
|
||||
/* 0x8D */ u8 field_0x8d;
|
||||
/* 0x8E */ u8 mCorrectCurveID;
|
||||
/* 0x8E */ s8 mCorrectCurveID;
|
||||
/* 0x8F */ u8 field_0x8f;
|
||||
/* 0x90 */ s16 field_0x90;
|
||||
/* 0x92 */ u8 field_0x92[20];
|
||||
/* 0xA6 */ u8 field_0xa6[0x14];
|
||||
/* 0xBA */ u8 field_0xba;
|
||||
/* 0xBB */ u8 field_0xbb;
|
||||
/* 0xBC */ u8 field_0xbc;
|
||||
/* 0x92 */ u16 field_0x92[20];
|
||||
/* 0xBA */ s8 field_0xba;
|
||||
/* 0xBB */ s8 field_0xbb;
|
||||
/* 0xBC */ s8 field_0xbc;
|
||||
};
|
||||
|
||||
#endif /* Z2WOLFHOWLMGR_H */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,10 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
void DSPReleaseHalt2(u32 msg);
|
||||
u16 DSP_CreateMap2(u32 msg);
|
||||
void DSPSendCommands2(u32* msgs, u32 param_1, void (*param_2)(u16));
|
||||
void DsetupTable(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 param_4);
|
||||
void DsetMixerLevel(f32 level);
|
||||
|
||||
#endif /* DSP_H */
|
||||
|
|
|
|||
|
|
@ -1,18 +1,10 @@
|
|||
#ifndef M_DO_M_DO_AUDIO_H
|
||||
#define M_DO_M_DO_AUDIO_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "Z2AudioLib/Z2AudioMgr.h"
|
||||
#include "Z2AudioLib/Z2EnvSeMgr.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
// move/fix later
|
||||
template <typename T>
|
||||
class JASGlobalInstance {
|
||||
public:
|
||||
T* getInstance() { return sInstance; };
|
||||
|
||||
static T* sInstance;
|
||||
};
|
||||
|
||||
class mDoAud_zelAudio_c {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "JSystem/JAudio2/JAISound.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JASReport.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
|
|
@ -79,8 +80,8 @@ void JAISound::attachHandle(JAISoundHandle* handle) {
|
|||
|
||||
/* 802A2220-802A2244 29CB60 0024+00 0/0 2/2 0/0 .text lockWhenPrepared__15JAISoundStatus_Fv */
|
||||
s32 JAISoundStatus_::lockWhenPrepared() {
|
||||
if (state[0] == 0) {
|
||||
state[0] = 1;
|
||||
if (state.unk == 0) {
|
||||
state.unk = 1;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -89,12 +90,12 @@ s32 JAISoundStatus_::lockWhenPrepared() {
|
|||
/* 802A2244-802A2280 29CB84 003C+00 0/0 2/2 0/0 .text unlockIfLocked__15JAISoundStatus_Fv
|
||||
*/
|
||||
s32 JAISoundStatus_::unlockIfLocked() {
|
||||
if (state[0] == 3) {
|
||||
state[0] = 4;
|
||||
if (state.unk == 3) {
|
||||
state.unk = 4;
|
||||
return 1;
|
||||
}
|
||||
if (state[0] == 1) {
|
||||
state[0] = 0;
|
||||
if (state.unk == 1) {
|
||||
state.unk = 0;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -171,11 +172,10 @@ void JAISound::start_JAISound_(JAISoundID param_0, JGeometry::TVec3<f32> const*
|
|||
prepareCount = 0;
|
||||
mCount = 0;
|
||||
|
||||
if (param_1 == NULL || audience_ == NULL) {
|
||||
audible_ = NULL;
|
||||
if (param_1 != 0 && audience_ != NULL) {
|
||||
audible_ = audience_->newAudible(*param_1, soundID, NULL, 0);
|
||||
} else {
|
||||
JAISoundID sound = soundID;
|
||||
audible_ = audience_->newAudible(*param_1, sound, NULL, 0);
|
||||
audible_ = NULL;
|
||||
}
|
||||
field_0x34 = 0;
|
||||
}
|
||||
|
|
@ -194,7 +194,7 @@ asm void JAISound::start_JAISound_(JAISoundID param_0, JGeometry::TVec3<f32> con
|
|||
/* 802A244C-802A2474 29CD8C 0028+00 0/0 2/2 0/0 .text acceptsNewAudible__8JAISoundCFv */
|
||||
bool JAISound::acceptsNewAudible() const {
|
||||
bool accepts = false;
|
||||
if (audible_ == NULL && !(status_.state[1] >> 6 & 1)) {
|
||||
if (audible_ == NULL && status_.state.flags.flag2==0) {
|
||||
accepts = true;
|
||||
}
|
||||
return accepts;
|
||||
|
|
@ -202,7 +202,6 @@ bool JAISound::acceptsNewAudible() const {
|
|||
|
||||
/* 802A2474-802A24DC 29CDB4 0068+00 0/0 2/2 0/0 .text
|
||||
/* * newAudible__8JAISoundFRCQ29JGeometry8TVec3<f>PCQ29JGeometry8TVec3<f>UlP11JAIAudience */
|
||||
#ifdef NONMATCHING
|
||||
void JAISound::newAudible(JGeometry::TVec3<f32> const& param_0,
|
||||
JGeometry::TVec3<f32> const* param_1, u32 param_2, JAIAudience* param_3) {
|
||||
if (param_3 != NULL) {
|
||||
|
|
@ -211,24 +210,27 @@ void JAISound::newAudible(JGeometry::TVec3<f32> const& param_0,
|
|||
JAISoundID sound = soundID;
|
||||
audible_ = audience_->newAudible(param_0, sound, param_1, param_2);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISound::newAudible(JGeometry::TVec3<f32> const& param_0,
|
||||
JGeometry::TVec3<f32> const* param_1, u32 param_2,
|
||||
JAIAudience* param_3) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISound/func_802A2474.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804557C8-804557D0 003DC8 0008+00 1/1 0/0 0/0 .sdata2 @766 */
|
||||
SECTION_SDATA2 static f64 lit_766 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 802A24DC-802A2598 29CE1C 00BC+00 0/0 24/24 0/0 .text stop__8JAISoundFUl */
|
||||
#ifdef NONMATCHING
|
||||
void JAISound::stop(u32 fadeCount) {
|
||||
ASSERT(status_.isAlive());
|
||||
if (fadeCount==0) {
|
||||
stop();
|
||||
return;
|
||||
}else{
|
||||
fader.fadeOut(fadeCount);
|
||||
removeLifeTime_();
|
||||
status_.field_0x1.flags.flag2 = 0;
|
||||
status_.state.flags.flag5 = 1;
|
||||
status_.state.flags.flag1 = 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -237,16 +239,13 @@ asm void JAISound::stop(u32 param_0) {
|
|||
#include "asm/JSystem/JAudio2/JAISound/stop__8JAISoundFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A2598-802A25D8 29CED8 0040+00 2/2 21/21 0/0 .text stop__8JAISoundFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISound::stop() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISound/stop__8JAISoundFv.s"
|
||||
void JAISound::stop() {
|
||||
stop_JAISound_();
|
||||
releaseHandle();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 802A25D8-802A25E0 29CF18 0008+00 1/0 2/0 0/0 .text asSe__8JAISoundFv */
|
||||
bool JAISound::asSe() {
|
||||
|
|
@ -264,6 +263,18 @@ bool JAISound::asStream() {
|
|||
}
|
||||
|
||||
/* 802A25F0-802A266C 29CF30 007C+00 0/0 3/3 0/0 .text die_JAISound___8JAISoundFv */
|
||||
#ifdef NONMATCHING
|
||||
void JAISound::die_JAISound_() {
|
||||
if (audible_!=NULL){
|
||||
audience_->deleteAudible(audible_);
|
||||
audible_ = NULL;
|
||||
audience_ = NULL;
|
||||
}
|
||||
fader.forceOut();
|
||||
releaseHandle();
|
||||
status_.state.unk = 6;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -272,28 +283,15 @@ asm void JAISound::die_JAISound_() {
|
|||
#include "asm/JSystem/JAudio2/JAISound/die_JAISound___8JAISoundFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039B910-8039B910 027F70 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039B910 =
|
||||
"It cost %d steps to prepare Sound(ID:%08x, Addre"
|
||||
"ss%08x).\n";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039B94A = "\0\0\0\0\0";
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A266C-802A26B8 29CFAC 004C+00 0/0 3/3 0/0 .text increasePrepareCount_JAISound___8JAISoundFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISound::increasePrepareCount_JAISound_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISound/increasePrepareCount_JAISound___8JAISoundFv.s"
|
||||
void JAISound::increasePrepareCount_JAISound_() {
|
||||
if((++prepareCount&0xFF) == 0) {
|
||||
JASReport("It cost %d steps to prepare Sound(ID:%08x, Address%08x).\n",prepareCount,(u32)soundID,this);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804557D0-804557D8 003DD0 0004+04 1/1 0/0 0/0 .sdata2 @887 */
|
||||
|
|
@ -304,23 +302,74 @@ SECTION_SDATA2 static f32 lit_887[1 + 1 /* padding */] = {
|
|||
};
|
||||
|
||||
/* 802A26B8-802A29DC 29CFF8 0324+00 0/0 3/3 0/0 .text calc_JAISound___8JAISoundFv */
|
||||
#ifdef NONMATCHING
|
||||
bool JAISound::calc_JAISound_() {
|
||||
status_.state.flags.flag2 = 1;
|
||||
if(isStopping()&&JAISound_tryDie_()) {
|
||||
return false;
|
||||
}
|
||||
ASSERT(status_.isAlive());
|
||||
bool isPlaying = status_.isPlaying();
|
||||
if(isPlaying) {
|
||||
mCount++;
|
||||
}
|
||||
bool isPaused = status_.isPaused();
|
||||
if(isPaused==false) {
|
||||
fader.calc();
|
||||
}
|
||||
bool playing = isPlaying&&isPaused == false;
|
||||
if (playing) {
|
||||
params.mMove.calc();
|
||||
if (audible_!=NULL) {
|
||||
audible_->calc();
|
||||
}
|
||||
if(status_.field_0x1.flags.flag2!=0) {
|
||||
if(lifeTime==0) {
|
||||
stop_JAISound_();
|
||||
}else{
|
||||
lifeTime--;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(audience_!=NULL&&audible_!=NULL) {
|
||||
u32 priority = audience_->calcPriority(audible_);
|
||||
mPriority = priority;
|
||||
if (priority==0xFFFFFFFF&&status_.field_0x1.flags.flag1==0) {
|
||||
stop_JAISound_();
|
||||
}
|
||||
}else{
|
||||
mPriority = 0;
|
||||
}
|
||||
|
||||
return playing;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISound::calc_JAISound_() {
|
||||
asm bool JAISound::calc_JAISound_() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISound/calc_JAISound___8JAISoundFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802A29DC-802A2AB0 29D31C 00D4+00 0/0 2/2 0/0 .text initTrack_JAISound___8JAISoundFP8JASTrack */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISound::initTrack_JAISound_(JASTrack* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JAISound/initTrack_JAISound___8JAISoundFP8JASTrack.s"
|
||||
void JAISound::initTrack_JAISound_(JASTrack* track) {
|
||||
JASSoundParams* soundParams[8];
|
||||
ASSERT(audience_);
|
||||
ASSERT(audible_);
|
||||
int numChannels = 0;
|
||||
for (int i = 0; i<audience_->getMaxChannels(); i++) {
|
||||
JASSoundParams* currentParams = audible_->getOuterParams(i);
|
||||
if (currentParams!=NULL) {
|
||||
soundParams[numChannels] = currentParams;
|
||||
numChannels++;
|
||||
}
|
||||
}
|
||||
ASSERT(numChannels >= 1)
|
||||
track->setChannelMgrCount(numChannels);
|
||||
for (size_t i = 0; i<track->getChannelMgrCount(); i++) {
|
||||
track->assignExtBuffer(i,soundParams[i]);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8039B910-8039B910 027F70 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@
|
|||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JAudio2/JAISoundHandles.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "JSystem/JAudio2/JASAudioThread.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
|
|
@ -14,11 +17,10 @@
|
|||
|
||||
struct JASDSPChannel {
|
||||
/* 8029D340 */ void drop();
|
||||
/* 8029D948 */ void getHandle(u32);
|
||||
};
|
||||
/* 8029D948 */ static JASDSPChannel* getHandle(u32);
|
||||
|
||||
struct JASAudioThread {
|
||||
/* 8029CDC0 */ void stop();
|
||||
inline u32 getStatus() {return mStatus;}
|
||||
u32 mStatus;
|
||||
};
|
||||
|
||||
//
|
||||
|
|
@ -44,7 +46,7 @@ extern "C" void setDSPLevel__9JASDriverFf();
|
|||
extern "C" void getDSPLevel__9JASDriverFv();
|
||||
extern "C" void registerDspSyncCallback__9JASDriverFPFPv_lPv();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" extern u8 data_80450B8C[4];
|
||||
extern "C" extern JASAudioThread* data_80450B8C;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
|
|
@ -62,38 +64,21 @@ JASAudioReseter::JASAudioReseter() {
|
|||
JASAudioReseter::~JASAudioReseter() {}
|
||||
|
||||
/* 8029D138-8029D1D4 297A78 009C+00 0/0 1/1 0/0 .text start__15JASAudioReseterFUlb */
|
||||
#ifdef NONMATCHING
|
||||
bool JASAudioReseter::start(u32 param_0, bool param_1) {
|
||||
u32 interrupt_status;
|
||||
|
||||
if (mIsDone == false) {
|
||||
return false;
|
||||
}
|
||||
field_0xc = param_1;
|
||||
JASCriticalSection critical;
|
||||
if (!JASDriver::registerDspSyncCallback(callback, this)) {
|
||||
return false;
|
||||
} else {
|
||||
field_0xc = param_1;
|
||||
interrupt_status = OSDisableInterrupts();
|
||||
|
||||
if (!JASDriver::registerDspSyncCallback(callback, (void*)param_0)) {
|
||||
OSRestoreInterrupts(interrupt_status);
|
||||
return false;
|
||||
} else {
|
||||
mDSPLevel = JASDriver::getDSPLevel();
|
||||
field_0x0 = param_0;
|
||||
mIsDone = false;
|
||||
OSRestoreInterrupts(interrupt_status);
|
||||
return true;
|
||||
}
|
||||
mDSPLevel = JASDriver::getDSPLevel();
|
||||
field_0x0 = param_0;
|
||||
mIsDone = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm bool JASAudioReseter::start(u32 param_0, bool param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASAudioReseter/start__15JASAudioReseterFUlb.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029D1D4-8029D1F8 297B14 0024+00 0/0 1/1 0/0 .text resume__15JASAudioReseterFv */
|
||||
void JASAudioReseter::resume() {
|
||||
|
|
@ -105,21 +90,30 @@ s32 JASAudioReseter::checkDone() const {
|
|||
return mIsDone;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455740-80455748 003D40 0008+00 1/1 0/0 0/0 .sdata2 @156 */
|
||||
SECTION_SDATA2 static f64 lit_156 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 8029D200-8029D2D4 297B40 00D4+00 1/1 0/0 0/0 .text calc__15JASAudioReseterFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 JASAudioReseter::calc() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/JASAudioReseter/calc__15JASAudioReseterFv.s"
|
||||
s32 JASAudioReseter::calc() {
|
||||
if(field_0x0==0) {
|
||||
for(size_t i = 0; i<64; i++) {
|
||||
JASDSPChannel* handle = JASDSPChannel::getHandle(i);
|
||||
if ((handle->getStatus()&0xFF)==0) {
|
||||
handle->drop();
|
||||
}
|
||||
}
|
||||
if(field_0xc!=false) {
|
||||
data_80450B8C->stop();//JASGlobalInstance<JASAudioThread>::sInstance->stop();
|
||||
}
|
||||
mIsDone = 1;
|
||||
return -1;
|
||||
}
|
||||
field_0x0--;
|
||||
u32 unk = field_0x0;
|
||||
float dspLevel = JASDriver::getDSPLevel();
|
||||
JASDriver::setDSPLevel(((float)unk*dspLevel)/(float)(unk+1));
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8029D2D4-8029D2F4 297C14 0020+00 1/1 0/0 0/0 .text callback__15JASAudioReseterFPv */
|
||||
s32 JASAudioReseter::callback(void* param_0) {
|
||||
return calc();
|
||||
return ((JASAudioReseter*)param_0)->calc();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,18 +58,6 @@ struct JASDSPChannel {
|
|||
/* 8029D3C8 */ void initAll();
|
||||
};
|
||||
|
||||
struct JASAudioThread {
|
||||
/* 8029CCDC */ JASAudioThread(int, int, u32);
|
||||
/* 8029CD4C */ void create(s32);
|
||||
/* 8029CDC0 */ void stop();
|
||||
/* 8029CDEC */ void run();
|
||||
/* 8029CF68 */ void DMACallback();
|
||||
/* 8029CFBC */ void DSPCallback(void*);
|
||||
/* 8029D028 */ ~JASAudioThread();
|
||||
|
||||
static u8 snIntCount[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -29,7 +29,19 @@ extern "C" void DSPSendCommands2__FPUlUlPFUs_v();
|
|||
// Declarations:
|
||||
//
|
||||
|
||||
//Different compiler version for this TU? Something to note is that JAudio 1 is 32 byte aligned like this file
|
||||
|
||||
#pragma function_align 32
|
||||
|
||||
/* 8029E4E0-8029E528 298E20 0048+00 0/0 1/1 0/0 .text DSPReleaseHalt2__FUl */
|
||||
#ifdef NONMATCHING
|
||||
void DSPReleaseHalt2(u32 msg) {
|
||||
u32 msgs[2];
|
||||
msgs[0] = (msg<<16) | DSP_CreateMap2(msg);
|
||||
|
||||
DSPSendCommands2(msgs,0,NULL);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -39,23 +51,32 @@ asm void DSPReleaseHalt2(u32 param_0) {
|
|||
#include "asm/JSystem/JAudio2/dspproc/DSPReleaseHalt2__FUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804512F8-80451300 0007F8 0004+04 2/2 0/0 0/0 .sbss flag */
|
||||
static u8 flag[4 + 4 /* padding */];
|
||||
static u32 flag;
|
||||
|
||||
/* 8029E540-8029E54C 298E80 000C+00 1/1 0/0 0/0 .text setup_callback__FUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
#pragma function_align 32
|
||||
static asm void setup_callback(u16 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JAudio2/dspproc/setup_callback__FUs.s"
|
||||
static void setup_callback(u16 param_0) {
|
||||
flag = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8029E560-8029E5C4 298EA0 0064+00 0/0 1/1 0/0 .text DsetupTable__FUlUlUlUlUl */
|
||||
#ifdef NONMATCHING
|
||||
void DsetupTable(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
|
||||
u32 r8 = 1;
|
||||
void(*callback_func)(u16) = setup_callback;
|
||||
u32 table[5] = {param_0&0xFFFF,param_1,param_2,param_3,param_4};
|
||||
flag = r8;
|
||||
DSPSendCommands2(table,5,callback_func);
|
||||
while (true) {
|
||||
if (flag==0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -65,16 +86,22 @@ asm void DsetupTable(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 par
|
|||
#include "asm/JSystem/JAudio2/dspproc/DsetupTable__FUlUlUlUlUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804507C8-804507D0 000248 0002+06 3/3 0/0 0/0 .sdata DSP_MIXERLEVEL */
|
||||
SECTION_SDATA static u16 DSP_MIXERLEVEL[1 + 3 /* padding */] = {
|
||||
0x4000,
|
||||
/* padding */
|
||||
0x0000,
|
||||
0x0000,
|
||||
0x0000,
|
||||
};
|
||||
static u16 DSP_MIXERLEVEL = 0x4000;
|
||||
|
||||
/* 8029E5E0-8029E604 298F20 0024+00 0/0 1/1 0/0 .text DsetMixerLevel__Ff */
|
||||
#ifdef NONMATCHING
|
||||
void DsetMixerLevel(f32 level) {
|
||||
DSP_MIXERLEVEL = 4096.0f*level;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
#pragma function_align 32
|
||||
|
||||
/* 80455770-80455778 003D70 0004+04 1/1 0/0 0/0 .sdata2 @333 */
|
||||
SECTION_SDATA2 static f32 lit_333[1 + 1 /* padding */] = {
|
||||
|
|
@ -83,7 +110,6 @@ SECTION_SDATA2 static f32 lit_333[1 + 1 /* padding */] = {
|
|||
0.0f,
|
||||
};
|
||||
|
||||
/* 8029E5E0-8029E604 298F20 0024+00 0/0 1/1 0/0 .text DsetMixerLevel__Ff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -93,6 +119,7 @@ asm void DsetMixerLevel(f32 param_0) {
|
|||
#include "asm/JSystem/JAudio2/dspproc/DsetMixerLevel__Ff.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8029E620-8029E674 298F60 0054+00 0/0 1/1 0/0 .text DsyncFrame2ch__FUlUlUl */
|
||||
#pragma push
|
||||
|
|
|
|||
|
|
@ -739,7 +739,7 @@ asm Z2Audible::~Z2Audible() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void Z2Audience::calcPriority(JAIAudible* param_0) {
|
||||
asm u32 Z2Audience::calcPriority(JAIAudible* param_0) {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2Audience/calcPriority__10Z2AudienceFP10JAIAudible.s"
|
||||
}
|
||||
|
|
@ -882,7 +882,7 @@ asm void Z2Audience::calcPitch_(Z2AudibleChannel* param_0, Z2Audible const* para
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void Z2Audience::getMaxChannels() {
|
||||
asm int Z2Audience::getMaxChannels() {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2Audience/getMaxChannels__10Z2AudienceFv.s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ extern "C" void setSceneExist__10Z2SceneMgrFb();
|
|||
extern "C" void setFadeOutStart__10Z2SceneMgrFUc();
|
||||
extern "C" void setFadeInStart__10Z2SceneMgrFUc();
|
||||
extern "C" void setSceneName__10Z2SceneMgrFPcll();
|
||||
extern "C" void __ct__10JAISoundIDFRC10JAISoundID();
|
||||
extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet);
|
||||
extern "C" void setFieldBgmPlay__8Z2SeqMgrFb();
|
||||
extern "C" void isActive__12JAIStreamMgrCFv();
|
||||
extern "C" void getID__8JAISoundCFv();
|
||||
|
|
@ -87,12 +87,11 @@ extern "C" void func_802B9994(void* _this);
|
|||
extern "C" static void dComIfGs_getStartPoint__Fv();
|
||||
extern "C" void unMuteSceneBgm__8Z2SeqMgrFUl();
|
||||
extern "C" void muteSceneBgm__8Z2SeqMgrFUlf();
|
||||
extern "C" void __as__10JAISoundIDFRC10JAISoundID();
|
||||
extern "C" static void dComIfGs_isSaveSwitch__Fi();
|
||||
extern "C" void resetCrowdSize__7Z2SeMgrFv();
|
||||
extern "C" void setTwilightGateVol__8Z2SeqMgrFf();
|
||||
extern "C" void setWindStoneVol__8Z2SeqMgrFfUl();
|
||||
extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1);
|
||||
extern "C" void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0);
|
||||
extern "C" void sceneChange__10Z2SceneMgrF10JAISoundIDUcUcUcUcUcb();
|
||||
extern "C" void framework__10Z2SceneMgrFv();
|
||||
extern "C" void load1stDynamicWave__10Z2SceneMgrFv();
|
||||
|
|
@ -108,6 +107,7 @@ extern "C" void eraseBgmWave__10Z2SceneMgrFUl();
|
|||
extern "C" void getWaveLoadStatus__10Z2SceneMgrFUlUl();
|
||||
extern "C" void loadSeWave__10Z2SceneMgrFUl();
|
||||
extern "C" void loadBgmWave__10Z2SceneMgrFUl();
|
||||
extern "C" void __ct__10JAISoundIDFUl(void* param_0, u32 param_1);
|
||||
extern "C" extern char const* const Z2SceneMgr__stringBase0;
|
||||
|
||||
//
|
||||
|
|
@ -707,9 +707,9 @@ asm void Z2SceneMgr::setSceneName(char* param_0, s32 param_1, s32 param_2) {
|
|||
}
|
||||
#pragma pop
|
||||
|
||||
//! @meme this looks to be non-inlined here because @ref setSceneName is too large
|
||||
JAISoundID::JAISoundID(JAISoundID const& soundIdToSet) {
|
||||
mId = soundIdToSet.mId;
|
||||
//! @meme this looks to be non-inlined here because @ref setSceneName is too large*
|
||||
extern "C" void __ct__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& soundIdToSet) {
|
||||
*this_ = soundIdToSet;
|
||||
}
|
||||
|
||||
/* 802B9968-802B9978 2B42A8 0010+00 1/1 0/0 0/0 .text setFieldBgmPlay__8Z2SeqMgrFb */
|
||||
|
|
@ -795,7 +795,7 @@ asm void Z2SeqMgr::muteSceneBgm(u32 param_0, f32 param_1) {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JAISoundID::operator=(JAISoundID const& param_0) {
|
||||
extern "C" asm void __as__10JAISoundIDFRC10JAISoundID(JAISoundID* this_, JAISoundID const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/Z2AudioLib/Z2SceneMgr/__as__10JAISoundIDFRC10JAISoundID.s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ extern "C" void _savegpr_29();
|
|||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 data_80450B38[4];
|
||||
extern "C" extern Z2WolfHowlMgr* data_80450B38;
|
||||
extern "C" extern u8 data_80450B44[4];
|
||||
extern "C" extern u8 data_80450B60[4];
|
||||
extern "C" extern u8 data_80450B74[4];
|
||||
|
|
@ -194,6 +194,35 @@ SECTION_SDATA2 static u8 lit_3485[4] = {
|
|||
SECTION_SDATA2 static f32 lit_3486 = 1.0f;
|
||||
|
||||
/* 802CAAC0-802CAB8C 2C5400 00CC+00 0/0 1/1 0/0 .text __ct__13Z2WolfHowlMgrFv */
|
||||
#ifdef NONMATCHING
|
||||
Z2WolfHowlMgr* JASGlobalInstance<Z2WolfHowlMgr>::sInstance = reinterpret_cast<Z2WolfHowlMgr*>(data_80450B38);
|
||||
Z2WolfHowlMgr::Z2WolfHowlMgr() : JASGlobalInstance<Z2WolfHowlMgr>(true) {
|
||||
mpCurSong = NULL;
|
||||
mNowInputValue = 0.0f;
|
||||
field_0x18 = 1.0f;
|
||||
field_0x1c = 1.0f;
|
||||
field_0x20 = cPitchCenter;
|
||||
field_0x24 = cPitchCenter;
|
||||
field_0x28 = 1.0f;
|
||||
mTimer = NULL;
|
||||
mReleaseTimer = 0;
|
||||
mCorrectCurveID = -1;
|
||||
field_0x90 = -1;
|
||||
field_0xba = 0;
|
||||
field_0xbb = 0;
|
||||
field_0xbc = 0;
|
||||
for (u8 i = 0; i<20; i++) {
|
||||
field_0x92[i] = 0;
|
||||
}
|
||||
for (u8 i = 0; i<10; i++) {
|
||||
field_0x38[i] = 0.0f;
|
||||
field_0x60[i] = 0.0f;
|
||||
}
|
||||
field_0x34 = 0.0f;
|
||||
field_0x30 = 0.0f;
|
||||
mpSongList = (Z2WolfHowlData**)&sGuideData;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -202,8 +231,25 @@ asm Z2WolfHowlMgr::Z2WolfHowlMgr() {
|
|||
#include "asm/Z2AudioLib/Z2WolfHowlMgr/__ct__13Z2WolfHowlMgrFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802CAB8C-802CABEC 2C54CC 0060+00 1/1 0/0 0/0 .text resetState__13Z2WolfHowlMgrFv */
|
||||
#ifdef NONMATCHING
|
||||
void Z2WolfHowlMgr::resetState() {
|
||||
field_0x18 = 1.0f;
|
||||
field_0x24 = cPitchCenter;
|
||||
field_0x28 = 1.0f;
|
||||
mTimer = NULL;
|
||||
mReleaseTimer = 0;
|
||||
field_0xba = 0;
|
||||
for (u8 i = 0; i<10; i++) {
|
||||
field_0x38[i] = 0.0f;
|
||||
field_0x60[i] = 0.0f;
|
||||
}
|
||||
field_0x34 = 0.0f;
|
||||
field_0x30 = 0.0f;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -212,6 +258,7 @@ asm void Z2WolfHowlMgr::resetState() {
|
|||
#include "asm/Z2AudioLib/Z2WolfHowlMgr/resetState__13Z2WolfHowlMgrFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455E68-80455E6C 004468 0004+00 2/2 0/0 0/0 .sdata2 @3527 */
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@
|
|||
#include "m_Do/m_Do_dvd_thread.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "JSystem/JAudio2/JASGadget.h"
|
||||
#include "JSystem/JAudio2/JASAudioThread.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
|
|
@ -735,6 +737,7 @@ u8 data_80450B88[4];
|
|||
* sInstance__35JASGlobalInstance<14JASAudioThread> */
|
||||
extern u8 data_80450B8C[4];
|
||||
u8 data_80450B8C[4];
|
||||
//JASAudioThread* JASGlobalInstance<JASAudioThread>::sInstance;
|
||||
|
||||
/* 80450B90-80450B98 000090 0004+04 0/0 4/4 0/0 .sbss
|
||||
* sInstance__40JASGlobalInstance<19JASDefaultBankTable> */
|
||||
|
|
|
|||
Loading…
Reference in New Issue