summaryrefslogtreecommitdiff
path: root/arm9/src/sound.c
diff options
context:
space:
mode:
authorAkira Akashi <rubenru09@aol.com>2021-06-02 22:13:57 +0100
committerGitHub <noreply@github.com>2021-06-02 22:13:57 +0100
commit9d3d4a2acff67f43896e9e0dcd26e7aaeb55e3b3 (patch)
treed707aa8fead427dadbbb29b886875e6c8961bd5a /arm9/src/sound.c
parenta2a17a9426f16ee601ff17840b8bb7851fef7138 (diff)
parent7e32d3758e7e36d7a67a1442cdb9386f9aa18a6e (diff)
Merge branch 'master' into 0202A1E0
Diffstat (limited to 'arm9/src/sound.c')
-rw-r--r--arm9/src/sound.c95
1 files changed, 48 insertions, 47 deletions
diff --git a/arm9/src/sound.c b/arm9/src/sound.c
index a1e31bbd..a5228dab 100644
--- a/arm9/src/sound.c
+++ b/arm9/src/sound.c
@@ -6,12 +6,13 @@
#pragma thumb on
static struct SoundData sSoundDataBuffer;
-static u32 UNK_02107070[2];
+static u32 UNK_02107070;
+static u32 UNK_02107074;
void FUN_02003C40(void);
BOOL FUN_02003D04(void);
-void FUN_020040C8(void);
-void FUN_02004064(struct SoundData *);
+void GF_InitMic(void);
+void GF_SoundDataInit(struct SoundData *);
void FUN_02004088(struct SoundData *);
void FUN_020040A4(struct SoundData *);
void FUN_02003CE8(int);
@@ -25,20 +26,20 @@ extern void FUN_0200538C(int, int, int);
extern BOOL FUN_02005404(void);
extern void FUN_02005CFC(void);
-void InitSoundData(void * a0, struct Options * a1)
+void InitSoundData(struct SaveChatotSoundClip * chatot, struct Options * options)
{
struct SoundData * sdat = GetSoundDataPointer();
- SDAT_Init();
- FUN_020040C8();
- FUN_02004064(sdat);
- sdat->unk_00090 = FUN_020C2A94(sdat->unk_00094, sizeof(sdat->unk_00094));
- SDAT_Open(&sdat->header, "data/sound/sound_data.sdat", sdat->unk_00090, 0);
- FUN_020C39CC(sdat->unk_00090);
+ NNS_SndInit();
+ GF_InitMic();
+ GF_SoundDataInit(sdat);
+ sdat->heap = NNS_SndHeapCreate(sdat->heapBuffer, sizeof(sdat->heapBuffer));
+ NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->heap, 0);
+ NNS_SndArcPlayerSetup(sdat->heap);
FUN_02004088(sdat);
FUN_020040A4(sdat);
- UNK_02107070[1] = 0;
- sdat->unk_BCD4C = a0;
- FUN_02004D60(a1->soundMethod);
+ UNK_02107074 = 0;
+ sdat->chatot = chatot;
+ FUN_02004D60(options->soundMethod);
}
void DoSoundUpdateFrame(void)
@@ -51,13 +52,13 @@ void DoSoundUpdateFrame(void)
FUN_02003C40();
}
FUN_02005CFC();
- FUN_020C01A0();
+ NNS_SndMain();
}
void FUN_02003C40(void)
{
struct SoundData * sdat = GetSoundDataPointer();
- switch (UNK_02107070[0])
+ switch (UNK_02107070)
{
case 1:
FUN_02003CE8(2);
@@ -92,7 +93,7 @@ void FUN_02003CE8(int a0)
{
struct SoundData * sdat = GetSoundDataPointer();
sdat->unk_BCCFC = 0;
- UNK_02107070[0] = (u32)a0;
+ UNK_02107070 = (u32)a0;
}
BOOL FUN_02003D04(void)
@@ -184,7 +185,7 @@ void * FUN_02003D38(u32 a0)
case 34:
return &sdat->unk_BCD48;
case 35:
- return &sdat->unk_BCD4C;
+ return &sdat->chatot;
case 36:
return &sdat->unk_BCD50;
case 37:
@@ -199,61 +200,61 @@ void * FUN_02003D38(u32 a0)
}
}
-int FUN_02003F3C(int * a0)
+int GF_Snd_SaveState(int * level_p)
{
struct SoundData * sdat = GetSoundDataPointer();
- int r4 = FUN_020C290C(sdat->unk_00090);
- GF_ASSERT(r4 != -1);
- if (a0 != NULL)
- *a0 = r4;
- return r4;
+ int level = NNS_SndHeapSaveState(sdat->heap);
+ GF_ASSERT(level != -1);
+ if (level_p != NULL)
+ *level_p = level;
+ return level;
}
-void FUN_02003F64(int a0)
+void GF_Snd_RestoreState(int level)
{
struct SoundData * sdat = GetSoundDataPointer();
- FUN_020C2828(sdat->unk_00090, a0);
+ NNS_SndHeapLoadState(sdat->heap, level);
}
-BOOL FUN_02003F78(u32 * a0)
+BOOL GF_Snd_LoadGroup(int groupNo)
{
struct SoundData * sdat = GetSoundDataPointer();
- return FUN_020C36A8(a0, sdat->unk_00090);
+ return NNS_SndArcLoadGroup(groupNo, sdat->heap);
}
-BOOL FUN_02003F90(u32 * a0)
+BOOL GF_Snd_LoadSeq(int seqNo)
{
struct SoundData * sdat = GetSoundDataPointer();
- return FUN_020C3674(a0, sdat->unk_00090);
+ return NNS_SndArcLoadSeq(seqNo, sdat->heap);
}
-BOOL FUN_02003FA8(u32 * a0, u32 * a1)
+BOOL GF_Snd_LoadSeqEx(int seqNo, u32 loadFlag)
{
struct SoundData * sdat = GetSoundDataPointer();
- return FUN_020C35E0(a0, a1, sdat->unk_00090);
+ return NNS_SndArcLoadSeqEx(seqNo, loadFlag, sdat->heap);
}
-BOOL FUN_02003FC4(u32 * a0)
+BOOL GF_Snd_LoadWaveArc(int waveArcNo)
{
struct SoundData * sdat = GetSoundDataPointer();
- return FUN_020C360C(a0, sdat->unk_00090);
+ return NNS_SndArcLoadWaveArc(waveArcNo, sdat->heap);
}
-BOOL FUN_02003FDC(u32 * a0)
+BOOL GF_Snd_LoadBank(int bankNo)
{
struct SoundData * sdat = GetSoundDataPointer();
- return FUN_020C3640(a0, sdat->unk_00090);
+ return NNS_SndArcLoadBank(bankNo, sdat->heap);
}
-u32 * FUN_02003FF4(int a0)
+u32 * FUN_02003FF4(int playerNo)
{
struct SoundData * sdat = GetSoundDataPointer();
- if (a0 >= 9)
+ if (playerNo >= (s32)NELEMS(sdat->players))
{
GF_ASSERT(0);
- a0 = 0;
+ playerNo = 0;
}
- return &sdat->unk_BBC94[a0];
+ return &sdat->players[playerNo];
}
u32 FUN_02004018(u32 a0)
@@ -282,7 +283,7 @@ u32 FUN_02004018(u32 a0)
}
}
-void FUN_02004064(struct SoundData * sdat)
+void GF_SoundDataInit(struct SoundData * sdat)
{
int i;
memset(sdat, 0, sizeof(*sdat));
@@ -295,18 +296,18 @@ void FUN_02004088(struct SoundData * sdat)
int i;
for (i = 0; i < 9; i++)
{
- FUN_020C0F80(&sdat->unk_BBC94[i]);
+ NNS_SndHandleInit(&sdat->players[i]);
}
}
void FUN_020040A4(struct SoundData * sdat)
{
- FUN_02003F3C(&sdat->unk_BCD1C[0]);
- FUN_02003F78(NULL);
- FUN_02003F3C(&sdat->unk_BCD1C[1]);
+ GF_Snd_SaveState(&sdat->unk_BCD1C[0]);
+ GF_Snd_LoadGroup(0);
+ GF_Snd_SaveState(&sdat->unk_BCD1C[1]);
}
-void FUN_020040C8(void)
+void GF_InitMic(void)
{
MIC_Init();
PM_SetAmp(1);
@@ -315,7 +316,7 @@ void FUN_020040C8(void)
void FUN_020040DC(void)
{
- FUN_020C1040(7, 0);
+ NNS_SndPlayerStopSeqByPlayerNo(7, 0);
FUN_02003FF4(7);
- FUN_020C0F68();
+ NNS_SndHandleReleaseSeq();
}