src/gba/m4a.c file

Classes

struct CgbChannel
struct SoundInfo

Typedefs

using MPlayFunc = void(*)()
using PlyNoteFunc = void(*)(u32, MusicPlayerInfo*, MusicPlayerTrack*)
using CgbSoundFunc = void(*)(void)
using CgbOscOffFunc = void(*)(u8)
using MidiKeyToCgbFreqFunc = u32(*)(u8, u8, u8)
using ExtVolPitFunc = void(*)(void)
using XcmdFunc = void(*)(MusicPlayerInfo*, MusicPlayerTrack*)

Functions

auto umul3232H32(u32 multiplier, u32 multiplicand) -> u32
void SoundMain(void)
void SoundMainBTM(void)
void TrackStop(MusicPlayerInfo* mplayInfo, MusicPlayerTrack* track)
void MPlayMain()
void RealClearChain(void* x)
void MPlayContinue(MusicPlayerInfo* mplayInfo)
void MPlayStart(MusicPlayerInfo* mplayInfo, const SongHeader* songHeader)
void MPlayStop(MusicPlayerInfo* mplayInfo)
void FadeOutBody(MusicPlayerInfo* mplayInfo)
void TrkVolPitSet(MusicPlayerInfo* mplayInfo, MusicPlayerTrack* track)
void MPlayFadeOut(MusicPlayerInfo* mplayInfo, u16 speed)
void ClearChain(void* x)
void Clear64byte(void* addr)
void SoundInit(SoundInfo* soundInfo)
void MPlayExtender(CgbChannel* cgbChans)
void m4aSoundMode(u32 mode)
void MPlayOpen(MusicPlayerInfo* mplayInfo, MusicPlayerTrack* track, u8 trackCount)
void CgbSound(void)
void CgbOscOff(u8)
auto MidiKeyToCgbFreq(u8, u8, u8) -> u32
void nullsub_141(void)
void MPlayJumpTableCopy(void** mplayJumpTable)
void SampleFreqSet(u32 freq)
void m4aMPlayVolumeControl(MusicPlayerInfo* mplayInfo, u16 trackBits, u16 volume)
void m4aMPlayPitchControl(MusicPlayerInfo* mplayInfo, u16 trackBits, s16 pitch)
void m4aMPlayPanpotControl(MusicPlayerInfo* mplayInfo, u16 trackBits, s8 pan)
void ClearModM(MusicPlayerTrack* track)
void m4aMPlayModDepthSet(MusicPlayerInfo* mplayInfo, u16 trackBits, u8 modDepth)
void m4aMPlayLFOSpeedSet(MusicPlayerInfo* mplayInfo, u16 trackBits, u8 lfoSpeed)
void ply_fine(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_goto(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_patt(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_pend(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_rept(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_memacc(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_prio(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_tempo(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_keysh(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_voice(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_vol(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_pan(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_bend(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_bendr(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_lfos(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_lfodl(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_mod(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_modt(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_tune(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_port(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xcmd(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_endtie(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_note(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xxx(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xwave(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xtype(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xatta(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xdeca(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xsust(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xrele(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xiecv(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xiecl(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xleng(MusicPlayerInfo*, MusicPlayerTrack*)
void ply_xswee(MusicPlayerInfo*, MusicPlayerTrack*)
void nullsub_544()
auto MidiKeyToFreq(WaveData* wav, u8 key, u8 fineAdjust) -> u32
void nullsub_543()
void m4aSoundInit(void)
void m4aSoundMain(void)
void m4aSongNumStart(u16 n)
void m4aSongNumStartOrChange(u16 n)
void m4aSongNumStartOrContinue(u16 n)
void m4aSongNumStop(u16 n)
void m4aSongNumContinue(u16 n)
void m4aMPlayAllStop(void)
void m4aMPlayContinue(MusicPlayerInfo* mplayInfo)
void m4aMPlayAllContinue(void)
void m4aMPlayFadeOut(MusicPlayerInfo* mplayInfo, u16 speed)
void m4aMPlayFadeOutTemporarily(MusicPlayerInfo* mplayInfo, u16 speed)
void m4aMPlayFadeIn(MusicPlayerInfo* mplayInfo, u16 speed)
void m4aMPlayImmInit(MusicPlayerInfo* mplayInfo)
void MusicPlayerJumpTableCopy(void)
void SoundClear(void)
void m4aSoundVSyncOff(void)
void m4aSoundVSyncOn(void)
void m4aSoundVSync(void)
static auto CgbPan(CgbChannel* chan) -> int
void CgbModVol(CgbChannel* chan)
void m4aMPlayTempoControl(MusicPlayerInfo* mplayInfo, u16 tempo)

Variables

u8 gMPlayMemAccArea
char SoundMainRAM
void* gMPlayJumpTable
CgbChannel gCgbChans
char gNumMusicPlayers
char gMaxLines
u8 SoundMainRAM_Buffer
SoundInfo gSoundInfo
void*const gMPlayJumpTableTemplate
const u8 gScaleTable
const u32 gFreqTable
const u16 gPcmSamplesPerVBlankTable
const u8 gCgbScaleTable
const s16 gCgbFreqTable
const u8 gNoiseTable
const u8 gCgb3Vol
const u8 gClockTable
const XcmdFunc gXcmdTable

Defines

#define ID_NUMBER
#define C_V
#define SOUND_MODE_REVERB_VAL
#define SOUND_MODE_REVERB_SET
#define SOUND_MODE_MAXCHN
#define SOUND_MODE_MAXCHN_SHIFT
#define SOUND_MODE_MASVOL
#define SOUND_MODE_MASVOL_SHIFT
#define SOUND_MODE_FREQ_05734
#define SOUND_MODE_FREQ_07884
#define SOUND_MODE_FREQ_10512
#define SOUND_MODE_FREQ_13379
#define SOUND_MODE_FREQ_15768
#define SOUND_MODE_FREQ_18157
#define SOUND_MODE_FREQ_21024
#define SOUND_MODE_FREQ_26758
#define SOUND_MODE_FREQ_31536
#define SOUND_MODE_FREQ_36314
#define SOUND_MODE_FREQ_40137
#define SOUND_MODE_FREQ_42048
#define SOUND_MODE_FREQ
#define SOUND_MODE_FREQ_SHIFT
#define SOUND_MODE_DA_BIT_9
#define SOUND_MODE_DA_BIT_8
#define SOUND_MODE_DA_BIT_7
#define SOUND_MODE_DA_BIT_6
#define SOUND_MODE_DA_BIT
#define SOUND_MODE_DA_BIT_SHIFT
#define MAX_DIRECTSOUND_CHANNELS
#define PCM_DMA_BUF_SIZE
#define MUSICPLAYER_STATUS_TRACK
#define MUSICPLAYER_STATUS_PAUSE
#define MAX_MUSICPLAYER_TRACKS
#define TEMPORARY_FADE
#define FADE_IN
#define FADE_VOL_MAX
#define FADE_VOL_SHIFT
#define NUM_MUSIC_PLAYERS
#define MAX_LINES
#define SOUND_CHANNEL_SF_START
#define SOUND_CHANNEL_SF_STOP
#define SOUND_CHANNEL_SF_LOOP
#define SOUND_CHANNEL_SF_IEC
#define SOUND_CHANNEL_SF_ENV
#define SOUND_CHANNEL_SF_ENV_ATTACK
#define SOUND_CHANNEL_SF_ENV_DECAY
#define SOUND_CHANNEL_SF_ENV_SUSTAIN
#define SOUND_CHANNEL_SF_ENV_RELEASE
#define SOUND_CHANNEL_SF_ON
#define CGB_CHANNEL_MO_PIT
#define CGB_CHANNEL_MO_VOL
#define CGB_NRx2_ENV_DIR_DEC
#define CGB_NRx2_ENV_DIR_INC
#define REG_VCOUNT_8
#define MEMACC_COND_JUMP(cond)
#define READ_XCMD_BYTE(var, n)