diff options
author | Michael Panzlaff <michael.panzlaff@fau.de> | 2021-07-09 18:19:29 +0200 |
---|---|---|
committer | Michael Panzlaff <michael.panzlaff@fau.de> | 2021-08-25 18:03:48 +0200 |
commit | 0da1dc3cb5db999b5035c28858134ba6fbcc661c (patch) | |
tree | 0d2a0f630fa699eb0abde9c1014b95e052709314 /arm7/lib/include | |
parent | bedb58ea94b44f8b4168fd731339fec38ee21988 (diff) |
arm7: decompile SND
Diffstat (limited to 'arm7/lib/include')
-rw-r--r-- | arm7/lib/include/PM.h | 9 | ||||
-rw-r--r-- | arm7/lib/include/SND.h | 6 | ||||
-rw-r--r-- | arm7/lib/include/SND_channel.h | 48 | ||||
-rw-r--r-- | arm7/lib/include/SND_exChannel.h | 2 | ||||
-rw-r--r-- | arm7/lib/include/registers.h | 30 | ||||
-rw-r--r-- | arm7/lib/include/syscall.h | 2 |
6 files changed, 64 insertions, 33 deletions
diff --git a/arm7/lib/include/PM.h b/arm7/lib/include/PM.h new file mode 100644 index 00000000..df2185be --- /dev/null +++ b/arm7/lib/include/PM.h @@ -0,0 +1,9 @@ +#ifndef GUARD_PM_H +#define GUARD_PM_H + +#include "nitro/types.h" + +void PMi_SetControl(int ctrl); +void PMi_ResetControl(int ctrl); + +#endif //GUARD_PM_H diff --git a/arm7/lib/include/SND.h b/arm7/lib/include/SND.h index c417ab0e..196377ed 100644 --- a/arm7/lib/include/SND.h +++ b/arm7/lib/include/SND.h @@ -4,6 +4,12 @@ #include "nitro/types.h" void SND_Enable(void); +void SND_Disable(void); +void SND_Shutdown(void); +void SND_BeginSleep(void); +void SND_EndSleep(void); +void SND_SetMasterPan(int pan); +void SND_SetMasterVolume(int vol); void SND_SetOutputSelector(int leftOutputFrom, int rightOutputFrom, int outputCh1ToMixer, int outputCh3ToMixer); #endif //GUARD_SND_H diff --git a/arm7/lib/include/SND_channel.h b/arm7/lib/include/SND_channel.h index 8b74b579..9e015beb 100644 --- a/arm7/lib/include/SND_channel.h +++ b/arm7/lib/include/SND_channel.h @@ -8,40 +8,40 @@ void SNDi_SetSurroundDecay(int decay); void SND_SetupChannelPcm( - s32 chnIdx, + int chnIdx, const void *data, - s32 format, - s32 loop, - s32 loopStart, - s32 loopLen, - s32 volume, - s32 volumeDiv, - s32 timer, - s32 pan + int format, + int loop, + int loopStart, + int loopLen, + int volume, + int volumeDiv, + int timer, + int pan ); void SND_SetupChannelPsg( - s32 chnIdx, - s32 waveDuty, - s32 volume, - s32 volumeDiv, - s32 timer, - s32 pan + int chnIdx, + int waveDuty, + int volume, + int volumeDiv, + int timer, + int pan ); void SND_SetupChannelNoise( - s32 chnIdx, - s32 volume, - s32 volumeDiv, - s32 timer, - s32 pan + int chnIdx, + int volume, + int volumeDiv, + int timer, + int pan ); -void SND_StopChannel(s32 chnIdx, s32 hold); +void SND_StopChannel(int chnIdx, int hold); -void SND_SetChannelVolume(s32 chnIdx, s32 volume, s32 volumeDiv); -void SND_SetChannelPan(s32 chnIdx, s32 pan); -void SND_SetChannelTimer(s32 chnIdx, s32 timer); +void SND_SetChannelVolume(int chnIdx, int volume, int volumeDiv); +void SND_SetChannelPan(int chnIdx, int pan); +void SND_SetChannelTimer(int chnIdx, int timer); u32 SND_GetChannelControl(int idx); diff --git a/arm7/lib/include/SND_exChannel.h b/arm7/lib/include/SND_exChannel.h index 038a1a49..66a1d78f 100644 --- a/arm7/lib/include/SND_exChannel.h +++ b/arm7/lib/include/SND_exChannel.h @@ -21,7 +21,7 @@ void SND_ReleaseExChannel(struct SNDExChannel *chn); BOOL SND_IsExChannelActive(struct SNDExChannel *chn); struct SNDExChannel *SND_AllocExChannel(u32 channelMask, int priority, u32 flags, SNDExChannelCallback callback, void *callbackUserData); void SND_FreeExChannel(struct SNDExChannel *chn); -BOOL SND_IsChannelActive(s32 idx); +BOOL SND_IsChannelActive(int idx); void SND_InvalidateWave(const void *start, const void *end); // TODO internal functions, move these so exChannel diff --git a/arm7/lib/include/registers.h b/arm7/lib/include/registers.h index e9280957..f30d237a 100644 --- a/arm7/lib/include/registers.h +++ b/arm7/lib/include/registers.h @@ -5,14 +5,28 @@ #define reg_EXTKEYIN (*(REGType16v *)0x4000136) -#define reg_SOUNDxCNT_STAT(x) (*((REGType8v *)0x4000403 + ((int)(x) * 0x10))) -#define reg_SOUNDxCNT(x) (*((REGType32v *)0x4000400 + ((int)x) * 0x10)) -#define reg_SOUNDxSAD(x) (*((REGType32v *)0x4000404 + ((int)x) * 0x10)) -#define reg_SOUNDxTMR(x) (*((REGType16v *)0x4000408 + ((int)x) * 0x10)) -#define reg_SOUNDxPNT(x) (*((REGType16v *)0x400040A + ((int)x) * 0x10)) -#define reg_SOUNDxLEN(x) (*((REGType32v *)0x400040C + ((int)x) * 0x10)) - -#define reg_SNDCAPxCNT(x) (*((REGType8v *)0x4000508 + ((int)(x)))) +#define reg_POWCNT2 (*(REGType16v *)0x4000304) + + +#define reg_SOUNDCNT_VOL (*(REGType8v *)0x4000500) +#define reg_SOUNDCNT_MIX (*(REGType8v *)0x4000501) + +#define reg_SOUNDxCNT_VOL(x) (*(REGType8v *)(0x4000400 + ((int)(x) * 0x10))) +#define reg_SOUNDxCNT_VOLS(x) (*(REGType16v *)(0x4000400 + ((int)(x) * 0x10))) +#define reg_SOUNDxCNT_PAN(x) (*(REGType8v *)(0x4000402 + ((int)(x) * 0x10))) +#define reg_SOUNDxCNT_STAT(x) (*(REGType8v *)(0x4000403 + ((int)(x) * 0x10))) +#define reg_SOUNDxCNT(x) (*(REGType32v *)(0x4000400 + ((int)x) * 0x10)) +#define reg_SOUNDoffCNT(off) (*(REGType32v *)(0x4000400 + (int)(off))) +#define reg_SOUNDxSAD(x) (*(REGType32v *)(0x4000404 + ((int)x) * 0x10)) +#define reg_SOUNDoffSAD(off) (*(REGType32v *)(0x4000404 + (int)(off))) +#define reg_SOUNDxTMR(x) (*(REGType16v *)(0x4000408 + ((int)x) * 0x10)) +#define reg_SOUNDoffTMR(off) (*(REGType16v *)(0x4000408 + (int)(off))) +#define reg_SOUNDxPNT(x) (*(REGType16v *)(0x400040A + ((int)x) * 0x10)) +#define reg_SOUNDoffPNT(off) (*(REGType16v *)(0x400040A + (int)(off))) +#define reg_SOUNDxLEN(x) (*(REGType32v *)(0x400040C + ((int)x) * 0x10)) +#define reg_SOUNDoffLEN(off) (*(REGType32v *)(0x400040C + (int)(off))) + +#define reg_SNDCAPxCNT(x) (*(REGType8v *)(0x4000508 + ((int)(x)))) #define EXTKEYIN_X (1<<0) #define EXTKEYIN_Y (1<<1) diff --git a/arm7/lib/include/syscall.h b/arm7/lib/include/syscall.h index 1ac6fe49..579fd790 100644 --- a/arm7/lib/include/syscall.h +++ b/arm7/lib/include/syscall.h @@ -4,5 +4,7 @@ void SVC_WaitByLoop(u32 ct); u8 SVC_GetVolumeTable(int idx); u16 SVC_GetPitchTable(int idx); +void SVC_SoundBiasSet(int step); +void SVC_SoundBiasReset(int step); #endif //POKEDIAMOND_ARM7_SYSCALL_H |