summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-05-23 17:20:38 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-05-23 17:20:38 -0400
commit3835a9b1a55a2d8ce6f4159bb0e7f1fecf08b7f1 (patch)
tree83c575dd80d4df0167daa536100113ea5ee0a0f1
parent76c52b48ebc318c72906fb6d8d7876c0915f5e17 (diff)
NNS SND heap type
-rw-r--r--arm9/lib/include/NNS_SND_arc.h (renamed from include/sdat.h)14
-rw-r--r--arm9/lib/include/NNS_SND_arc_loader.h12
-rw-r--r--arm9/lib/include/NNS_SND_heap.h11
-rw-r--r--arm9/src/sound.c32
-rw-r--r--include/sound.h16
5 files changed, 51 insertions, 34 deletions
diff --git a/include/sdat.h b/arm9/lib/include/NNS_SND_arc.h
index 53e0a729..656c8728 100644
--- a/include/sdat.h
+++ b/arm9/lib/include/NNS_SND_arc.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_LIBSDAT_H
-#define GUARD_LIBSDAT_H
+#ifndef GUARD_NNS_SND_ARC_H
+#define GUARD_NNS_SND_ARC_H
#include "SND_main.h"
@@ -28,19 +28,11 @@ typedef struct NNSSndArc
} NNSSndArc;
void NNS_SndInit(void);
-void * NNS_SndHeapCreate(void *, u32);
void NNS_SndArcInit(NNSSndArc *, const char *, void *, u32);
void NNS_SndArcPlayerSetup(void *);
void NNS_SndMain(void);
-int NNS_SndHeapSaveState(void *);
-void NNS_SndHeapLoadState(void *, int);
-BOOL NNS_SndArcLoadGroup(u32 *, void *);
-BOOL NNS_SndArcLoadSeq(u32 *, void *);
-BOOL NNS_SndArcLoadSeqEx(u32 *, u32 *, void *);
-BOOL NNS_SndArcLoadWaveArc(u32 *, void *);
-BOOL NNS_SndArcLoadBank(u32 *, void *);
void NNS_SndHandleInit(u32 *);
void NNS_SndPlayerStopSeqByPlayerNo(int, int);
void NNS_SndHandleReleaseSeq(void);
-#endif //GUARD_LIBSDAT_H
+#endif //GUARD_NNS_SND_ARC_H
diff --git a/arm9/lib/include/NNS_SND_arc_loader.h b/arm9/lib/include/NNS_SND_arc_loader.h
new file mode 100644
index 00000000..851c08ab
--- /dev/null
+++ b/arm9/lib/include/NNS_SND_arc_loader.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_NNS_SND_ARC_LOADER_H
+#define GUARD_NNS_SND_ARC_LOADER_H
+
+#include "NNS_SND_heap.h"
+
+BOOL NNS_SndArcLoadGroup(int groupNo, NNSSndHeapHandle * heap);
+BOOL NNS_SndArcLoadSeq(int seqNo, NNSSndHeapHandle * heap);
+BOOL NNS_SndArcLoadSeqEx(int seqNo, u32 loadFlag, NNSSndHeapHandle * heap);
+BOOL NNS_SndArcLoadWaveArc(int waveArcNo, NNSSndHeapHandle * heap);
+BOOL NNS_SndArcLoadBank(int bankNo, NNSSndHeapHandle * heap);
+
+#endif //GUARD_NNS_SND_ARC_LOADER_H
diff --git a/arm9/lib/include/NNS_SND_heap.h b/arm9/lib/include/NNS_SND_heap.h
new file mode 100644
index 00000000..9dc06a24
--- /dev/null
+++ b/arm9/lib/include/NNS_SND_heap.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_NNS_SND_HEAP_H
+#define GUARD_NNS_SND_HEAP_H
+
+struct NNSSndHeap;
+typedef struct NNSSndHeap* NNSSndHeapHandle;
+
+NNSSndHeapHandle * NNS_SndHeapCreate(void *, u32);
+int NNS_SndHeapSaveState(NNSSndHeapHandle *);
+void NNS_SndHeapLoadState(NNSSndHeapHandle *, int);
+
+#endif //GUARD_NNS_SND_HEAP_H
diff --git a/arm9/src/sound.c b/arm9/src/sound.c
index 4927a575..95d14c64 100644
--- a/arm9/src/sound.c
+++ b/arm9/src/sound.c
@@ -32,9 +32,9 @@ void InitSoundData(void * a0, struct Options * a1)
NNS_SndInit();
FUN_020040C8();
FUN_02004064(sdat);
- sdat->unk_00090 = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094));
- NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->unk_00090, 0);
- NNS_SndArcPlayerSetup(sdat->unk_00090);
+ sdat->heap = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094));
+ NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->heap, 0);
+ NNS_SndArcPlayerSetup(sdat->heap);
FUN_02004088(sdat);
FUN_020040A4(sdat);
UNK_02107074 = 0;
@@ -203,7 +203,7 @@ void * FUN_02003D38(u32 a0)
int FUN_02003F3C(int * a0)
{
struct SoundData * sdat = GetSoundDataPointer();
- int r4 = NNS_SndHeapSaveState(sdat->unk_00090);
+ int r4 = NNS_SndHeapSaveState(sdat->heap);
GF_ASSERT(r4 != -1);
if (a0 != NULL)
*a0 = r4;
@@ -213,37 +213,37 @@ int FUN_02003F3C(int * a0)
void FUN_02003F64(int a0)
{
struct SoundData * sdat = GetSoundDataPointer();
- NNS_SndHeapLoadState(sdat->unk_00090, a0);
+ NNS_SndHeapLoadState(sdat->heap, a0);
}
-BOOL FUN_02003F78(u32 * a0)
+BOOL FUN_02003F78(int a0)
{
struct SoundData * sdat = GetSoundDataPointer();
- return NNS_SndArcLoadGroup(a0, sdat->unk_00090);
+ return NNS_SndArcLoadGroup(a0, sdat->heap);
}
-BOOL FUN_02003F90(u32 * a0)
+BOOL FUN_02003F90(int a0)
{
struct SoundData * sdat = GetSoundDataPointer();
- return NNS_SndArcLoadSeq(a0, sdat->unk_00090);
+ return NNS_SndArcLoadSeq(a0, sdat->heap);
}
-BOOL FUN_02003FA8(u32 * a0, u32 * a1)
+BOOL FUN_02003FA8(int a0, u32 a1)
{
struct SoundData * sdat = GetSoundDataPointer();
- return NNS_SndArcLoadSeqEx(a0, a1, sdat->unk_00090);
+ return NNS_SndArcLoadSeqEx(a0, a1, sdat->heap);
}
-BOOL FUN_02003FC4(u32 * a0)
+BOOL FUN_02003FC4(int a0)
{
struct SoundData * sdat = GetSoundDataPointer();
- return NNS_SndArcLoadWaveArc(a0, sdat->unk_00090);
+ return NNS_SndArcLoadWaveArc(a0, sdat->heap);
}
-BOOL FUN_02003FDC(u32 * a0)
+BOOL FUN_02003FDC(int a0)
{
struct SoundData * sdat = GetSoundDataPointer();
- return NNS_SndArcLoadBank(a0, sdat->unk_00090);
+ return NNS_SndArcLoadBank(a0, sdat->heap);
}
u32 * FUN_02003FF4(int a0)
@@ -303,7 +303,7 @@ void FUN_02004088(struct SoundData * sdat)
void FUN_020040A4(struct SoundData * sdat)
{
FUN_02003F3C(&sdat->unk_BCD1C[0]);
- FUN_02003F78(NULL);
+ FUN_02003F78(0);
FUN_02003F3C(&sdat->unk_BCD1C[1]);
}
diff --git a/include/sound.h b/include/sound.h
index d48dd9ac..9e171634 100644
--- a/include/sound.h
+++ b/include/sound.h
@@ -2,13 +2,15 @@
#define POKEDIAMOND_SOUND_H
#include "FS_file.h"
-#include "sdat.h"
+#include "NNS_SND_arc.h"
+#include "NNS_SND_heap.h"
+#include "NNS_SND_arc_loader.h"
#include "player_data.h"
struct SoundData
{
NNSSndArc header;
- void * unk_00090;
+ NNSSndHeapHandle * heap; // 0x00090
u8 unk_00094[0xBBC00];
u32 unk_BBC94[9];
u32 unk_BBCB8;
@@ -54,11 +56,11 @@ void InitSoundData(void * a0, struct Options * a1);
void * FUN_02003D38(u32 a0);
int FUN_02003F3C(int * a0);
void FUN_02003F64(int a0);
-BOOL FUN_02003F78(u32 * a0);
-BOOL FUN_02003F90(u32 * a0);
-BOOL FUN_02003FA8(u32 * a0, u32 * a1);
-BOOL FUN_02003FC4(u32 * a0);
-BOOL FUN_02003FDC(u32 * a0);
+BOOL FUN_02003F78(int a0);
+BOOL FUN_02003F90(int a0);
+BOOL FUN_02003FA8(int a0, u32 a1);
+BOOL FUN_02003FC4(int a0);
+BOOL FUN_02003FDC(int a0);
u32 * FUN_02003FF4(int a0);
u32 FUN_02004018(u32 a0);
void DoSoundUpdateFrame(void);