diff options
Diffstat (limited to 'arm7/lib/include')
-rw-r--r-- | arm7/lib/include/MI_memory.h | 5 | ||||
-rw-r--r-- | arm7/lib/include/OS_alarm.h | 1 | ||||
-rw-r--r-- | arm7/lib/include/PM.h | 9 | ||||
-rw-r--r-- | arm7/lib/include/PXI_fifo.h | 3 | ||||
-rw-r--r-- | arm7/lib/include/SND_alarm.h | 12 | ||||
-rw-r--r-- | arm7/lib/include/SND_bank.h | 17 | ||||
-rw-r--r-- | arm7/lib/include/SND_capture.h | 10 | ||||
-rw-r--r-- | arm7/lib/include/SND_channel.h | 32 | ||||
-rw-r--r-- | arm7/lib/include/SND_command.h | 9 | ||||
-rw-r--r-- | arm7/lib/include/SND_exChannel.h | 41 | ||||
-rw-r--r-- | arm7/lib/include/SND_global.h | 15 | ||||
-rw-r--r-- | arm7/lib/include/SND_lfo.h | 8 | ||||
-rw-r--r-- | arm7/lib/include/SND_main.h | 16 | ||||
-rw-r--r-- | arm7/lib/include/SND_seq.h | 24 | ||||
-rw-r--r-- | arm7/lib/include/SND_util.h | 16 | ||||
-rw-r--r-- | arm7/lib/include/SND_work.h | 11 | ||||
-rw-r--r-- | arm7/lib/include/registers.h | 23 | ||||
-rw-r--r-- | arm7/lib/include/syscall.h | 4 |
18 files changed, 246 insertions, 10 deletions
diff --git a/arm7/lib/include/MI_memory.h b/arm7/lib/include/MI_memory.h index 1e0de0b9..6fa1d0ec 100644 --- a/arm7/lib/include/MI_memory.h +++ b/arm7/lib/include/MI_memory.h @@ -22,4 +22,9 @@ static inline void MI_CpuClear32(void *dest, u32 size) MI_CpuFill32(dest, 0, size); } +static inline void MI_CpuCopy32(void *src, void *dst, u32 size) +{ + MIi_CpuCopy32((u32 *)src, (u32 *)dst, size); +} + #endif //POKEDIAMOND_ARM7_MI_MEMORY_H diff --git a/arm7/lib/include/OS_alarm.h b/arm7/lib/include/OS_alarm.h index a4566348..ad14eaff 100644 --- a/arm7/lib/include/OS_alarm.h +++ b/arm7/lib/include/OS_alarm.h @@ -5,6 +5,7 @@ #include "nitro/OS_alarm_shared.h" void OS_CreateAlarm(OSAlarm *alarm); +void OS_CancelAlarm(OSAlarm *alarm); BOOL OS_IsAlarmAvailable(void); void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg); void OS_SetPeriodicAlarm(OSAlarm *alarm, OSTick start, OSTick period, OSAlarmHandler handler, void *arg); diff --git a/arm7/lib/include/PM.h b/arm7/lib/include/PM.h new file mode 100644 index 00000000..136976e3 --- /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(u8 ctrl); +void PMi_ResetControl(u8 ctrl); + +#endif //GUARD_PM_H diff --git a/arm7/lib/include/PXI_fifo.h b/arm7/lib/include/PXI_fifo.h index 6d634f72..27f6b005 100644 --- a/arm7/lib/include/PXI_fifo.h +++ b/arm7/lib/include/PXI_fifo.h @@ -3,4 +3,7 @@ #include "nitro/PXI_fifo_shared.h" +s32 PXI_SendWordByFifo(s32 fifotag, u32 data, BOOL err); +void PXI_SetFifoRecvCallback(s32 fifotag, PXIFifoCallback callback); + #endif //POKEDIAMOND_ARM7_PXI_FIFO_H diff --git a/arm7/lib/include/SND_alarm.h b/arm7/lib/include/SND_alarm.h index 195b90bb..51f01bcc 100644 --- a/arm7/lib/include/SND_alarm.h +++ b/arm7/lib/include/SND_alarm.h @@ -2,11 +2,11 @@ #define GUARD_SND_ALARM_H #include "global.h" -#include "SND_alarm_shared.h" +#include "nitro/SND_alarm_shared.h" -void SND_StopAlarm(u32 idx); -void SND_StartAlarm(u32 idx); -void SND_SetupAlarm(); -void SND_AlarmInit(); +void SND_AlarmInit(void); +void SND_SetupAlarm(s32 idx, OSTick tick, OSTick period, u32 id); +void SND_StartAlarm(s32 idx); +void SND_StopAlarm(s32 idx); -#endif //GUARD_SND_ALARM_H
\ No newline at end of file +#endif // GUARD_SND_ALARM_H diff --git a/arm7/lib/include/SND_bank.h b/arm7/lib/include/SND_bank.h new file mode 100644 index 00000000..e22410ca --- /dev/null +++ b/arm7/lib/include/SND_bank.h @@ -0,0 +1,17 @@ +#ifndef GUARD_SND_BANK_H +#define GUARD_SND_BANK_H + +#include "nitro/types.h" +#include "nitro/SND_bank_shared.h" + +BOOL SND_ReadInstData( + const struct SNDBankData *bankData, s32 program, s32 midiKey, struct SNDInstData *instData); +const struct SNDWaveData *SND_GetWaveDataAddress(const struct SNDWaveArc *waveArc, s32 wave); +BOOL SND_NoteOn(struct SNDExChannel *chn, + s32 midiKey, + s32 velocity, + s32 length, + const struct SNDBankData *bankData, + const struct SNDInstData *instData); + +#endif // GUARD_SND_BANK_H diff --git a/arm7/lib/include/SND_capture.h b/arm7/lib/include/SND_capture.h new file mode 100644 index 00000000..f71ce18d --- /dev/null +++ b/arm7/lib/include/SND_capture.h @@ -0,0 +1,10 @@ +#ifndef GUARD_SND_CAPTURE_H +#define GUARD_SND_CAPTURE_H + +#include "nitro/types.h" + +void SND_SetupCapture( + int idx, int format, void *captureData, int size, BOOL loop, int capCtrlSrc, int capCtrlDst); +BOOL SND_IsCaptureActive(int idx); + +#endif // GUARD_SND_CAPTURE_H diff --git a/arm7/lib/include/SND_channel.h b/arm7/lib/include/SND_channel.h new file mode 100644 index 00000000..b401029a --- /dev/null +++ b/arm7/lib/include/SND_channel.h @@ -0,0 +1,32 @@ +#ifndef GUARD_SND_CHANNEL_H +#define GUARD_SND_CHANNEL_H + +#include "nitro/types.h" + +void SND_SetupChannelPcm(int chnIdx, + const void *data, + int format, + int loop, + int loopStart, + int loopLen, + int volume, + int volumeDiv, + int timer, + int pan); + +void SND_SetupChannelPsg(int chnIdx, int waveDuty, int volume, int volumeDiv, int timer, int pan); + +void SND_SetupChannelNoise(int chnIdx, int volume, int volumeDiv, int timer, int pan); + +void SND_StopChannel(int chnIdx, int hold); + +void SND_SetChannelVolume(int chnIdx, int volume, int volumeDiv); +void SND_SetChannelTimer(int chnIdx, int timer); +void SND_SetChannelPan(int chnIdx, int pan); + +BOOL SND_IsChannelActive(int idx); +void SND_SetMasterPan(int pan); +u32 SND_GetChannelControl(int idx); +void SNDi_SetSurroundDecay(int decay); + +#endif // GUARD_SND_CHANNEL_H diff --git a/arm7/lib/include/SND_command.h b/arm7/lib/include/SND_command.h new file mode 100644 index 00000000..db42d177 --- /dev/null +++ b/arm7/lib/include/SND_command.h @@ -0,0 +1,9 @@ +#ifndef GUARD_SND_COMMAND_H +#define GUARD_SND_COMMAND_H + +#include "nitro/SND_command_shared.h" + +void SND_CommandInit(void); +void SND_CommandProc(void); + +#endif // GUARD_SND_COMMAND_H diff --git a/arm7/lib/include/SND_exChannel.h b/arm7/lib/include/SND_exChannel.h index 05fbe3d7..6e89cb72 100644 --- a/arm7/lib/include/SND_exChannel.h +++ b/arm7/lib/include/SND_exChannel.h @@ -1,8 +1,43 @@ #ifndef GUARD_SND_EXCHANNEL_H #define GUARD_SND_EXCHANNEL_H -#include "global.h" +#include "nitro/types.h" -bool SND_IsChannelActive(u32 idx); +#include "nitro/SND_exChannel_shared.h" +#include "nitro/SND_main_shared.h" -#endif //GUARD_SND_EXCHANNEL_H
\ No newline at end of file +void SND_ExChannelInit(void); +void SND_UpdateExChannel(void); +void SND_ExChannelMain(BOOL step); +BOOL SND_StartExChannelPcm( + struct SNDExChannel *chn, const struct SNDWaveParam *wave, const void *data, s32 length); +BOOL SND_StartExChannelPsg(struct SNDExChannel *chn, s32 duty, s32 length); +BOOL SND_StartExChannelNoise(struct SNDExChannel *chn, s32 length); +s32 SND_UpdateExChannelEnvelope(struct SNDExChannel *chn, BOOL step); +void SND_SetExChannelAttack(struct SNDExChannel *chn, s32 attack); +void SND_SetExChannelDecay(struct SNDExChannel *chn, s32 decay); +void SND_SetExChannelSustain(struct SNDExChannel *chn, s32 sustain); +void SND_SetExChannelRelease(struct SNDExChannel *chn, s32 release); +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); +void SND_InvalidateWave(const void *start, const void *end); + +void SND_StopUnlockedChannel(u32 channelMask, u32 weak); +void SND_LockChannel(u32 channelMask, u32 weak); +void SND_UnlockChannel(u32 channelMask, u32 weak); +u32 SND_GetLockedChannel(u32 weak); + +void SND_InvalidateWave(const void *begin, const void *end); + +void SND_InitLfoParam(struct SNDLfoParam *lfoParam); +void SND_StartLfo(struct SNDLfo *lfo); +void SND_UpdateLfo(struct SNDLfo *lfo); +int SND_GetLfoValue(struct SNDLfo *lfo); + +#endif // GUARD_SND_EXCHANNEL_H diff --git a/arm7/lib/include/SND_global.h b/arm7/lib/include/SND_global.h new file mode 100644 index 00000000..cb91db66 --- /dev/null +++ b/arm7/lib/include/SND_global.h @@ -0,0 +1,15 @@ +#ifndef GUARD_SND_GLOBAL_H +#define GUARD_SND_GLOBAL_H + +#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_SetMasterVolume(int vol); +void SND_SetOutputSelector( + int leftOutputFrom, int rightOutputFrom, int outputCh1ToMixer, int outputCh3ToMixer); + +#endif // GUARD_SND_GLOBAL_H diff --git a/arm7/lib/include/SND_lfo.h b/arm7/lib/include/SND_lfo.h new file mode 100644 index 00000000..71e0febf --- /dev/null +++ b/arm7/lib/include/SND_lfo.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SND_LFO_H +#define GUARD_SND_LFO_H + +#include "nitro/types.h" + +#include "nitro/SND_exChannel_shared.h" + +#endif // GUARD_SND_LFO_H diff --git a/arm7/lib/include/SND_main.h b/arm7/lib/include/SND_main.h new file mode 100644 index 00000000..65e3f8d3 --- /dev/null +++ b/arm7/lib/include/SND_main.h @@ -0,0 +1,16 @@ +#ifndef GUARD_SND_MAIN_H +#define GUARD_SND_MAIN_H + +#include "nitro/types.h" + +void SND_Init(u32 priority); +void SND_CreateThread(u32 priority); +void SND_InitIntervalTimer(void); +void SND_StartIntervalTimer(void); +void SND_StopIntervalTimer(void); +u32 SND_WaitForIntervalTimer(void); +void SND_SendWakeupMessage(void); +void SNDi_LockMutex(void); +void SNDi_UnlockMutex(void); + +#endif // GUARD_SND_MAIN_H diff --git a/arm7/lib/include/SND_seq.h b/arm7/lib/include/SND_seq.h new file mode 100644 index 00000000..4e54c0ff --- /dev/null +++ b/arm7/lib/include/SND_seq.h @@ -0,0 +1,24 @@ +#ifndef GUARD_SND_SEQ_H +#define GUARD_SND_SEQ_H + +#include "nitro/types.h" + +#include "nitro/SND_bank_shared.h" + +void SND_SeqInit(void); +void SND_SeqMain(BOOL update); + +void SND_StartSeq(int player, const void *seq, u32 offset, struct SNDBankData *bank); +void SND_StopSeq(int player); +void SND_PrepareSeq(int player, const void *seq, u32 offset, struct SNDBankData *bank); +void SND_StartPreparedSeq(int player); +void SND_PauseSeq(int player, BOOL pause); +void SND_SkipSeq(int player, u32 tick); +void SNDi_SetPlayerParam(int player, u32 offset, u32 data, int size); +void SNDi_SetTrackParam(int player, u32 trackMask, u32 offset, u32 data, int size); +void SND_SetTrackMute(int player, u32 trackMask, BOOL mute); +void SND_SetTrackAllocatableChannel(int player, u32 trackMask, u32 channelMask); +void SND_InvalidateSeq(const void *start, const void *end); +void SND_InvalidateBank(const void *start, const void *end); + +#endif // GUARD_SND_SEQ_H diff --git a/arm7/lib/include/SND_util.h b/arm7/lib/include/SND_util.h new file mode 100644 index 00000000..3b20a79f --- /dev/null +++ b/arm7/lib/include/SND_util.h @@ -0,0 +1,16 @@ +#ifndef GUARD_SND_UTIL_H +#define GUARD_SND_UTIL_H + +#include "nitro/types.h" + +#define SND_VOL_DB_MIN (-723) + +u16 SND_CalcRandom(void); +s8 SND_SinIdx(int index); + +u16 SND_CalcChannelVolume(int value); +u16 SND_CalcTimer(int timer, int pitch); + +extern const s16 SNDi_DecibelSquareTable[128]; + +#endif // GUARD_SND_UTIL_H diff --git a/arm7/lib/include/SND_work.h b/arm7/lib/include/SND_work.h index 9b834c6c..536d4bd0 100644 --- a/arm7/lib/include/SND_work.h +++ b/arm7/lib/include/SND_work.h @@ -1,4 +1,13 @@ #ifndef GUARD_SND_WORK_H #define GUARD_SND_WORK_H -#endif //GUARD_SND_WORK_H
\ No newline at end of file +#include "nitro/SND_work_shared.h" + +extern struct SNDWork SNDi_Work; +extern struct SNDSharedWork *SNDi_SharedWork; + +void SND_SetPlayerLocalVariable(int player, int var, s16 value); +void SND_SetPlayerGlobalVariable(int var, s16 value); +void SND_UpdateSharedWork(void); + +#endif // GUARD_SND_WORK_H diff --git a/arm7/lib/include/registers.h b/arm7/lib/include/registers.h index 1fb1e9ca..f30d237a 100644 --- a/arm7/lib/include/registers.h +++ b/arm7/lib/include/registers.h @@ -5,6 +5,29 @@ #define reg_EXTKEYIN (*(REGType16v *)0x4000136) +#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) #define EXTKEYIN_DEBUG (1<<3) diff --git a/arm7/lib/include/syscall.h b/arm7/lib/include/syscall.h index 55462cc7..579fd790 100644 --- a/arm7/lib/include/syscall.h +++ b/arm7/lib/include/syscall.h @@ -2,5 +2,9 @@ #define POKEDIAMOND_ARM7_SYSCALL_H 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 |