Add SurfaceFlags, and more formatting :)
This commit is contained in:
@@ -63,21 +63,16 @@ seqChannel->changes.as_u8=0;
|
||||
#else
|
||||
static void sequence_channel_process_sound(struct SequenceChannel *seqChannel)
|
||||
{
|
||||
f32 channelVolume;
|
||||
f32 panLayerWeight;
|
||||
f32 panFromChannel;
|
||||
s32 i;
|
||||
|
||||
channelVolume = seqChannel->volume * seqChannel->volumeScale * seqChannel->seqPlayer->fadeVolume;
|
||||
f32 channelVolume = seqChannel->volume * seqChannel->volumeScale * seqChannel->seqPlayer->fadeVolume;
|
||||
if (seqChannel->seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_SOFTEN) != 0)
|
||||
{
|
||||
channelVolume *= seqChannel->seqPlayer->muteVolumeScale;
|
||||
}
|
||||
|
||||
panFromChannel = seqChannel->pan * seqChannel->panChannelWeight;
|
||||
panLayerWeight = US_FLOAT(1.0) - seqChannel->panChannelWeight;
|
||||
f32 panFromChannel = seqChannel->pan * seqChannel->panChannelWeight;
|
||||
f32 panLayerWeight = US_FLOAT(1.0) - seqChannel->panChannelWeight;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
for (s32 i = 0; i < 4; i++)
|
||||
{
|
||||
struct SequenceChannelLayer *layer = seqChannel->layers[i];
|
||||
if (layer != NULL && layer->enabled && layer->note != NULL)
|
||||
@@ -92,8 +87,6 @@ static void sequence_channel_process_sound(struct SequenceChannel *seqChannel)
|
||||
|
||||
void sequence_player_process_sound(struct SequencePlayer *seqPlayer)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (seqPlayer->fadeRemainingFrames != 0)
|
||||
{
|
||||
seqPlayer->fadeVolume += seqPlayer->fadeVelocity;
|
||||
@@ -145,7 +138,7 @@ void sequence_player_process_sound(struct SequencePlayer *seqPlayer)
|
||||
#endif
|
||||
|
||||
// Process channels
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (s32 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
if (IS_SEQUENCE_CHANNEL_VALID(seqPlayer->channels[i]) == TRUE
|
||||
&& seqPlayer->channels[i]->enabled == TRUE)
|
||||
@@ -205,10 +198,9 @@ s16 get_vibrato_pitch_change(struct VibratoState *vib)
|
||||
#else
|
||||
s8 get_vibrato_pitch_change(struct VibratoState *vib)
|
||||
{
|
||||
s32 index;
|
||||
vib->time += vib->rate;
|
||||
|
||||
index = vib->time >> 10 & 0x3F;
|
||||
s32 index = vib->time >> 10 & 0x3F;
|
||||
|
||||
switch (index & 0x30)
|
||||
{
|
||||
@@ -233,8 +225,6 @@ s8 get_vibrato_pitch_change(struct VibratoState *vib)
|
||||
|
||||
f32 get_vibrato_freq_scale(struct VibratoState *vib)
|
||||
{
|
||||
s32 pitchChange;
|
||||
f32 extent;
|
||||
f32 result;
|
||||
|
||||
if (vib->delay != 0)
|
||||
@@ -291,8 +281,8 @@ f32 get_vibrato_freq_scale(struct VibratoState *vib)
|
||||
return 1.0f;
|
||||
}
|
||||
|
||||
pitchChange = get_vibrato_pitch_change(vib);
|
||||
extent = (f32)vib->extent / US_FLOAT(4096.0);
|
||||
s32 pitchChange = get_vibrato_pitch_change(vib);
|
||||
f32 extent = (f32)vib->extent / US_FLOAT(4096.0);
|
||||
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
result = US_FLOAT(1.0) + extent * (gPitchBendFrequencyScale[pitchChange + 128] - US_FLOAT(1.0));
|
||||
|
||||
+36
-80
@@ -864,15 +864,11 @@ void create_next_audio_buffer(s16 *samples, u32 num_samples)
|
||||
*/
|
||||
static void process_sound_request(u32 bits, f32 *pos)
|
||||
{
|
||||
u8 bank;
|
||||
u8 soundIndex;
|
||||
u8 counter = 0;
|
||||
u8 soundId;
|
||||
f32 dist;
|
||||
const f32 one = 1.0f;
|
||||
|
||||
bank = (bits & SOUNDARGS_MASK_BANK) >> SOUNDARGS_SHIFT_BANK;
|
||||
soundId = (bits & SOUNDARGS_MASK_SOUNDID) >> SOUNDARGS_SHIFT_SOUNDID;
|
||||
u8 bank = (bits & SOUNDARGS_MASK_BANK) >> SOUNDARGS_SHIFT_BANK;
|
||||
u8 soundId = (bits & SOUNDARGS_MASK_SOUNDID) >> SOUNDARGS_SHIFT_SOUNDID;
|
||||
|
||||
if (soundId >= sNumSoundsPerBank[bank] || sSoundBankDisabled[bank])
|
||||
{
|
||||
@@ -880,7 +876,7 @@ static void process_sound_request(u32 bits, f32 *pos)
|
||||
return;
|
||||
}
|
||||
|
||||
soundIndex = sSoundBanks[bank][0].next;
|
||||
u8 soundIndex = sSoundBanks[bank][0].next;
|
||||
while (soundIndex != 0xff && soundIndex != 0)
|
||||
{
|
||||
//DEBUG_PRINT("process_sound_request: soundIndex %d\n", soundIndex);
|
||||
@@ -938,7 +934,7 @@ static void process_sound_request(u32 bits, f32 *pos)
|
||||
// Allocate from free list
|
||||
soundIndex = sSoundBankFreeListFront[bank];
|
||||
|
||||
dist = sqrtf(pos[0] * pos[0] + pos[1] * pos[1] + pos[2] * pos[2]) * one;
|
||||
f32 dist = sqrtf(pos[0] * pos[0] + pos[1] * pos[1] + pos[2] * pos[2]) * one;
|
||||
sSoundBanks[bank][soundIndex].x = &pos[0];
|
||||
sSoundBanks[bank][soundIndex].y = &pos[1];
|
||||
sSoundBanks[bank][soundIndex].z = &pos[2];
|
||||
@@ -965,11 +961,9 @@ static void process_sound_request(u32 bits, f32 *pos)
|
||||
*/
|
||||
static void process_all_sound_requests(void)
|
||||
{
|
||||
struct Sound *sound;
|
||||
|
||||
while (sSoundRequestCount != sNumProcessedSoundRequests)
|
||||
{
|
||||
sound = &sSoundRequests[sNumProcessedSoundRequests];
|
||||
struct Sound *sound = &sSoundRequests[sNumProcessedSoundRequests];
|
||||
process_sound_request(sound->soundBits, sound->position);
|
||||
sNumProcessedSoundRequests++;
|
||||
//DEBUG_PRINT("processed sounds: %d\n", sNumProcessedSoundRequests);
|
||||
@@ -1019,11 +1013,7 @@ static void update_background_music_after_sound(u8 bank, u8 soundIndex)
|
||||
*/
|
||||
static void select_current_sounds(u8 bank)
|
||||
{
|
||||
u32 isDiscreteAndStatus;
|
||||
u8 latestSoundIndex;
|
||||
u8 i;
|
||||
u8 j;
|
||||
u8 soundIndex;
|
||||
u32 liveSoundPriorities[16] = {
|
||||
0x10000000, 0x10000000, 0x10000000, 0x10000000,
|
||||
0x10000000, 0x10000000, 0x10000000, 0x10000000,
|
||||
@@ -1039,15 +1029,14 @@ static void select_current_sounds(u8 bank)
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
|
||||
};
|
||||
u8 numSoundsInBank = 0;
|
||||
u8 requestedPriority;
|
||||
|
||||
//
|
||||
// Delete stale sounds and prioritize remaining sounds into the liveSound arrays
|
||||
//
|
||||
soundIndex = sSoundBanks[bank][0].next;
|
||||
u8 soundIndex = sSoundBanks[bank][0].next;
|
||||
while (soundIndex != 0xff)
|
||||
{
|
||||
latestSoundIndex = soundIndex;
|
||||
u8 latestSoundIndex = soundIndex;
|
||||
|
||||
// If a discrete sound goes 10 frames without being played (because it is too low
|
||||
// priority), then mark it for deletion
|
||||
@@ -1093,8 +1082,8 @@ static void select_current_sounds(u8 bank)
|
||||
+ *sSoundBanks[bank][soundIndex].z * *sSoundBanks[bank][soundIndex].z)
|
||||
* 1;
|
||||
|
||||
requestedPriority = (sSoundBanks[bank][soundIndex].soundBits & SOUNDARGS_MASK_PRIORITY)
|
||||
>> SOUNDARGS_SHIFT_PRIORITY;
|
||||
u8 requestedPriority = (sSoundBanks[bank][soundIndex].soundBits & SOUNDARGS_MASK_PRIORITY)
|
||||
>> SOUNDARGS_SHIFT_PRIORITY;
|
||||
|
||||
// Recompute priority, possibly based on the sound's source position relative to the
|
||||
// camera.
|
||||
@@ -1127,7 +1116,7 @@ static void select_current_sounds(u8 bank)
|
||||
if (liveSoundPriorities[i] >= sSoundBanks[bank][soundIndex].priority)
|
||||
{
|
||||
// Shift remaining sounds to the right
|
||||
for (j = sMaxChannelsForSoundBank[bank] - 1; j > i; j--)
|
||||
for (u8 j = sMaxChannelsForSoundBank[bank] - 1; j > i; j--)
|
||||
{
|
||||
liveSoundPriorities[j] = liveSoundPriorities[j - 1];
|
||||
liveSoundIndices[j] = liveSoundIndices[j - 1];
|
||||
@@ -1185,8 +1174,8 @@ static void select_current_sounds(u8 bank)
|
||||
}
|
||||
|
||||
// If the sound is discrete and is playing, then delete it
|
||||
isDiscreteAndStatus = sSoundBanks[bank][sCurrentSound[bank][i]].soundBits
|
||||
& (SOUND_DISCRETE | SOUNDARGS_MASK_STATUS);
|
||||
u32 isDiscreteAndStatus = sSoundBanks[bank][sCurrentSound[bank][i]].soundBits
|
||||
& (SOUND_DISCRETE | SOUNDARGS_MASK_STATUS);
|
||||
if (isDiscreteAndStatus >= (SOUND_DISCRETE | SOUND_STATUS_PLAYING)
|
||||
&& sSoundBanks[bank][sCurrentSound[bank][i]].soundStatus != SOUND_STATUS_STOPPED)
|
||||
{
|
||||
@@ -1259,17 +1248,15 @@ static void select_current_sounds(u8 bank)
|
||||
*/
|
||||
static f32 get_sound_pan(f32 x, f32 z)
|
||||
{
|
||||
f32 absX;
|
||||
f32 absZ;
|
||||
f32 pan;
|
||||
|
||||
absX = x < 0 ? -x : x;
|
||||
f32 absX = x < 0 ? -x : x;
|
||||
if (absX > AUDIO_MAX_DISTANCE)
|
||||
{
|
||||
absX = AUDIO_MAX_DISTANCE;
|
||||
}
|
||||
|
||||
absZ = z < 0 ? -z : z;
|
||||
f32 absZ = z < 0 ? -z : z;
|
||||
if (absZ > AUDIO_MAX_DISTANCE)
|
||||
{
|
||||
absZ = AUDIO_MAX_DISTANCE;
|
||||
@@ -1476,9 +1463,7 @@ void audio_signal_game_loop_tick(void)
|
||||
void update_game_sound(void)
|
||||
{
|
||||
u8 soundStatus;
|
||||
u8 i;
|
||||
u8 soundId;
|
||||
u8 bank;
|
||||
u8 channelIndex = 0;
|
||||
u8 soundIndex;
|
||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||
@@ -1493,11 +1478,11 @@ void update_game_sound(void)
|
||||
return;
|
||||
}
|
||||
|
||||
for (bank = 0; bank < SOUND_BANK_COUNT; bank++)
|
||||
for (u8 bank = 0; bank < SOUND_BANK_COUNT; bank++)
|
||||
{
|
||||
select_current_sounds(bank);
|
||||
|
||||
for (i = 0; i < MAX_CHANNELS_PER_SOUND_BANK; i++)
|
||||
for (u8 i = 0; i < MAX_CHANNELS_PER_SOUND_BANK; i++)
|
||||
{
|
||||
soundIndex = sCurrentSound[bank][i];
|
||||
|
||||
@@ -1890,7 +1875,6 @@ void update_game_sound(void)
|
||||
void seq_player_play_sequence(u8 player, u8 seqId, u16 arg2)
|
||||
{
|
||||
u8 targetVolume;
|
||||
u8 i;
|
||||
|
||||
if (player == SEQ_PLAYER_LEVEL)
|
||||
{
|
||||
@@ -1900,7 +1884,7 @@ void seq_player_play_sequence(u8 player, u8 seqId, u16 arg2)
|
||||
sMusicDynamicDelay = 2;
|
||||
}
|
||||
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (u8 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
D_80360928[player][i].remainingFrames = 0;
|
||||
}
|
||||
@@ -1968,8 +1952,7 @@ void seq_player_fade_out(u8 player, u16 fadeDuration)
|
||||
*/
|
||||
void fade_volume_scale(u8 player, u8 targetScale, u16 fadeDuration)
|
||||
{
|
||||
u8 i;
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (u8 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
fade_channel_volume_scale(player, i, targetScale, fadeDuration);
|
||||
}
|
||||
@@ -1980,11 +1963,9 @@ void fade_volume_scale(u8 player, u8 targetScale, u16 fadeDuration)
|
||||
*/
|
||||
static void fade_channel_volume_scale(u8 player, u8 channelIndex, u8 targetScale, u16 fadeDuration)
|
||||
{
|
||||
struct ChannelVolumeScaleFade *temp;
|
||||
|
||||
if (gSequencePlayers[player].channels[channelIndex] != &gSequenceChannelNone)
|
||||
{
|
||||
temp = &D_80360928[player][channelIndex];
|
||||
struct ChannelVolumeScaleFade *temp = &D_80360928[player][channelIndex];
|
||||
temp->remainingFrames = fadeDuration;
|
||||
temp->velocity = (targetScale / US_FLOAT(127.0)
|
||||
- gSequencePlayers[player].channels[channelIndex]->volumeScale)
|
||||
@@ -1999,10 +1980,8 @@ static void fade_channel_volume_scale(u8 player, u8 channelIndex, u8 targetScale
|
||||
*/
|
||||
static void func_8031F96C(u8 player)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
// Loop over channels
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (u8 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
if (gSequencePlayers[player].channels[i] != &gSequenceChannelNone
|
||||
&& D_80360928[player][i].remainingFrames != 0)
|
||||
@@ -2037,18 +2016,12 @@ static void func_8031F96C(u8 player)
|
||||
*/
|
||||
void process_level_music_dynamics(void)
|
||||
{
|
||||
u32 conditionBits;
|
||||
u16 tempBits;
|
||||
UNUSED u16 pad;
|
||||
u8 musicDynIndex;
|
||||
u8 condIndex;
|
||||
u8 i;
|
||||
u8 j;
|
||||
s16 conditionValues[8];
|
||||
u8 conditionTypes[8];
|
||||
s16 dur1;
|
||||
s16 dur2;
|
||||
u16 bit;
|
||||
|
||||
func_8031F96C(0);
|
||||
func_8031F96C(2);
|
||||
@@ -2067,14 +2040,14 @@ void process_level_music_dynamics(void)
|
||||
return;
|
||||
}
|
||||
|
||||
conditionBits = sLevelDynamics[gCurrLevelNum][1] & 0xff00;
|
||||
musicDynIndex = (u8)sLevelDynamics[gCurrLevelNum][1] & 0xff;
|
||||
i = 2;
|
||||
u32 conditionBits = sLevelDynamics[gCurrLevelNum][1] & 0xff00;
|
||||
u8 musicDynIndex = (u8)sLevelDynamics[gCurrLevelNum][1] & 0xff;
|
||||
u8 i = 2;
|
||||
while (conditionBits & 0xff00)
|
||||
{
|
||||
j = 0;
|
||||
condIndex = 0;
|
||||
bit = 0x8000;
|
||||
u8 j = 0;
|
||||
u8 condIndex = 0;
|
||||
u16 bit = 0x8000;
|
||||
while (j < 8)
|
||||
{
|
||||
if (conditionBits & bit)
|
||||
@@ -2163,14 +2136,12 @@ void process_level_music_dynamics(void)
|
||||
|
||||
void unused_8031FED0(u8 player, u32 bits, s8 arg2)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
if (arg2 < 0)
|
||||
{
|
||||
arg2 = -arg2;
|
||||
}
|
||||
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (u8 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
if (gSequencePlayers[player].channels[i] != &gSequenceChannelNone)
|
||||
{
|
||||
@@ -2311,9 +2282,7 @@ static u8 begin_background_music_fade(u16 fadeDuration)
|
||||
*/
|
||||
void set_audio_muted(u8 muted)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
for (u8 i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
{
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
if (muted)
|
||||
@@ -2402,10 +2371,9 @@ void sound_init(void)
|
||||
// (unused)
|
||||
void get_currently_playing_sound(u8 bank, u8 *numPlayingSounds, u8 *numSoundsInBank, u8 *soundId)
|
||||
{
|
||||
u8 i;
|
||||
u8 count = 0;
|
||||
|
||||
for (i = 0; i < sMaxChannelsForSoundBank[bank]; i++)
|
||||
for (u8 i = 0; i < sMaxChannelsForSoundBank[bank]; i++)
|
||||
{
|
||||
if (sCurrentSound[bank][i] != 0xff)
|
||||
{
|
||||
@@ -2458,12 +2426,9 @@ void stop_sound(u32 soundBits, f32 *pos)
|
||||
*/
|
||||
void stop_sounds_from_source(f32 *pos)
|
||||
{
|
||||
u8 bank;
|
||||
u8 soundIndex;
|
||||
|
||||
for (bank = 0; bank < SOUND_BANK_COUNT; bank++)
|
||||
for (u8 bank = 0; bank < SOUND_BANK_COUNT; bank++)
|
||||
{
|
||||
soundIndex = sSoundBanks[bank][0].next;
|
||||
u8 soundIndex = sSoundBanks[bank][0].next;
|
||||
while (soundIndex != 0xff)
|
||||
{
|
||||
if (sSoundBanks[bank][soundIndex].x == pos)
|
||||
@@ -2510,9 +2475,7 @@ void stop_sounds_in_continuous_banks(void)
|
||||
*/
|
||||
void sound_banks_disable(UNUSED u8 player, u16 bankMask)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < SOUND_BANK_COUNT; i++)
|
||||
for (u8 i = 0; i < SOUND_BANK_COUNT; i++)
|
||||
{
|
||||
if (bankMask & 1)
|
||||
{
|
||||
@@ -2527,9 +2490,7 @@ void sound_banks_disable(UNUSED u8 player, u16 bankMask)
|
||||
*/
|
||||
static void disable_all_sequence_players(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
for (u8 i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
{
|
||||
sequence_player_disable(&gSequencePlayers[i]);
|
||||
}
|
||||
@@ -2540,9 +2501,7 @@ static void disable_all_sequence_players(void)
|
||||
*/
|
||||
void sound_banks_enable(UNUSED u8 player, u16 bankMask)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < SOUND_BANK_COUNT; i++)
|
||||
for (u8 i = 0; i < SOUND_BANK_COUNT; i++)
|
||||
{
|
||||
if (bankMask & 1)
|
||||
{
|
||||
@@ -2658,7 +2617,6 @@ void play_music(u8 player, u16 seqArgs, u16 fadeTimer)
|
||||
*/
|
||||
void stop_background_music(u16 seqId)
|
||||
{
|
||||
u8 foundIndex;
|
||||
u8 i;
|
||||
|
||||
if (sBackgroundMusicQueueSize == 0)
|
||||
@@ -2668,7 +2626,7 @@ void stop_background_music(u16 seqId)
|
||||
|
||||
// If sequence is not found, remove an empty queue item (the next empty
|
||||
// queue slot).
|
||||
foundIndex = sBackgroundMusicQueueSize;
|
||||
u8 foundIndex = sBackgroundMusicQueueSize;
|
||||
|
||||
// Search for the sequence.
|
||||
for (i = 0; i < sBackgroundMusicQueueSize; i++)
|
||||
@@ -2829,8 +2787,6 @@ void func_80321080(u16 fadeTimer)
|
||||
*/
|
||||
void func_803210D4(u16 fadeDuration)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
if (sHasStartedFadeOut)
|
||||
{
|
||||
return;
|
||||
@@ -2854,7 +2810,7 @@ void func_803210D4(u16 fadeDuration)
|
||||
#endif
|
||||
}
|
||||
|
||||
for (i = 0; i < SOUND_BANK_COUNT; i++)
|
||||
for (u8 i = 0; i < SOUND_BANK_COUNT; i++)
|
||||
{
|
||||
if (i != SOUND_BANK_MENU)
|
||||
{
|
||||
|
||||
+8
-16
@@ -236,9 +236,7 @@ void reset_bank_and_seq_load_status(void)
|
||||
|
||||
void discard_bank(s32 bankId)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
for (s32 i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
{
|
||||
struct Note *note = &gNotes[i];
|
||||
|
||||
@@ -271,9 +269,7 @@ void discard_bank(s32 bankId)
|
||||
|
||||
void discard_sequence(s32 seqId)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
for (s32 i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
{
|
||||
if (gSequencePlayers[i].enabled && gSequencePlayers[i].seqId == seqId)
|
||||
{
|
||||
@@ -289,15 +285,13 @@ void discard_sequence(s32 seqId)
|
||||
void *soundAlloc(struct SoundAllocPool *pool, u32 size)
|
||||
{
|
||||
u8 *start;
|
||||
s32 last;
|
||||
s32 i;
|
||||
|
||||
if (pool->cur + ALIGN16(size) <= pool->size + pool->start)
|
||||
{
|
||||
start = pool->cur;
|
||||
pool->cur += ALIGN16(size);
|
||||
last = pool->cur - start - 1;
|
||||
for (i = 0; i <= last; i++)
|
||||
s32 last = pool->cur - start - 1;
|
||||
for (s32 i = 0; i <= last; i++)
|
||||
{
|
||||
start[i] = 0;
|
||||
}
|
||||
@@ -993,9 +987,8 @@ void *get_bank_or_seq_inner(s32 poolIdx, s32 arg1, s32 bankId)
|
||||
#ifndef VERSION_SH
|
||||
void *get_bank_or_seq(struct SoundMultiPool *arg0, s32 arg1, s32 id)
|
||||
{
|
||||
u32 i;
|
||||
UNUSED
|
||||
void *ret;
|
||||
void *ret;
|
||||
struct TemporaryPool *temporary = &arg0->temporary;
|
||||
|
||||
if (arg1 == 0)
|
||||
@@ -1017,7 +1010,7 @@ void *get_bank_or_seq(struct SoundMultiPool *arg0, s32 arg1, s32 id)
|
||||
else
|
||||
{
|
||||
struct PersistentPool *persistent = &arg0->persistent;
|
||||
for (i = 0; i < persistent->numEntries; i++)
|
||||
for (u32 i = 0; i < persistent->numEntries; i++)
|
||||
{
|
||||
if (id == persistent->entries[i].id)
|
||||
{
|
||||
@@ -1302,8 +1295,7 @@ void audio_reset_session(void)
|
||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||
s8 updatesPerFrame;
|
||||
s32 reverbWindowSize;
|
||||
s32 k;
|
||||
#endif
|
||||
#endif
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 persistentMem;
|
||||
@@ -1379,7 +1371,7 @@ void audio_reset_session(void)
|
||||
|
||||
for (j = 0; j < NUMAIBUFFERS; j++)
|
||||
{
|
||||
for (k = 0; k < (s32)(AIBUFFER_LEN / sizeof(s16)); k++)
|
||||
for (s32 k = 0; k < (s32)(AIBUFFER_LEN / sizeof(s16)); k++)
|
||||
{
|
||||
gAiBuffers[j][k] = 0;
|
||||
}
|
||||
|
||||
+28
-51
@@ -228,16 +228,13 @@ void *dma_sample_data(uintptr_t devAddr, u32 size, s32 arg2, u8 *dmaIndexRef)
|
||||
{
|
||||
s32 hasDma = FALSE;
|
||||
struct SharedDma *dma;
|
||||
uintptr_t dmaDevAddr;
|
||||
u32 transfer;
|
||||
u32 i;
|
||||
u32 dmaIndex;
|
||||
ssize_t bufferPos;
|
||||
UNUSED u32 pad;
|
||||
|
||||
if (arg2 != 0 || *dmaIndexRef >= sSampleDmaListSize1)
|
||||
{
|
||||
for (i = sSampleDmaListSize1; i < gSampleDmaNumListItems; i++)
|
||||
for (u32 i = sSampleDmaListSize1; i < gSampleDmaNumListItems; i++)
|
||||
{
|
||||
#if defined(VERSION_EU)
|
||||
dma = &sSampleDmas[i];
|
||||
@@ -329,8 +326,8 @@ void *dma_sample_data(uintptr_t devAddr, u32 size, s32 arg2, u8 *dmaIndexRef)
|
||||
hasDma = TRUE;
|
||||
}
|
||||
|
||||
transfer = dma->bufSize;
|
||||
dmaDevAddr = devAddr & ~0xF;
|
||||
u32 transfer = dma->bufSize;
|
||||
uintptr_t dmaDevAddr = devAddr & ~0xF;
|
||||
dma->ttl = 2;
|
||||
dma->source = dmaDevAddr;
|
||||
dma->sizeUnused = transfer;
|
||||
@@ -461,7 +458,6 @@ UNUSED static
|
||||
#endif
|
||||
void patch_sound(UNUSED struct AudioBankSound *sound, UNUSED u8 *memBase, UNUSED u8 *offsetBase)
|
||||
{
|
||||
struct AudioBankSample *sample;
|
||||
void *patched;
|
||||
UNUSED u8 *mem; // unused on US
|
||||
|
||||
@@ -469,7 +465,7 @@ void patch_sound(UNUSED struct AudioBankSound *sound, UNUSED u8 *memBase, UNUSED
|
||||
|
||||
if (sound->sample != NULL)
|
||||
{
|
||||
sample = sound->sample = PATCH(sound->sample, memBase);
|
||||
struct AudioBankSample *sample = sound->sample = PATCH(sound->sample, memBase);
|
||||
if (sample->loaded == 0)
|
||||
{
|
||||
sample->sampleAddr = PATCH(sample->sampleAddr, offsetBase);
|
||||
@@ -537,7 +533,6 @@ void patch_audio_bank(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32
|
||||
struct Instrument **itInstrs;
|
||||
struct Instrument **end;
|
||||
struct AudioBank *temp;
|
||||
u32 i;
|
||||
void *patched;
|
||||
struct Drum *drum;
|
||||
struct Drum **drums;
|
||||
@@ -561,7 +556,7 @@ void patch_audio_bank(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32
|
||||
{
|
||||
mem->drums = (void *)((uintptr_t)drums + (uintptr_t)mem);
|
||||
if (numDrums > 0) //! unneeded when -sopt is enabled
|
||||
for (i = 0; i < numDrums; i++)
|
||||
for (u32 i = 0; i < numDrums; i++)
|
||||
{
|
||||
#else
|
||||
numDrums2 = numDrums;
|
||||
@@ -603,9 +598,8 @@ void patch_audio_bank(struct AudioBank *mem, u8 *offset, u32 numInstruments, u32
|
||||
if (numInstruments > 0)
|
||||
{
|
||||
//! Doesn't affect EU, but required for US/JP
|
||||
struct Instrument **tempInst;
|
||||
itInstrs = temp->instruments;
|
||||
tempInst = temp->instruments;
|
||||
struct Instrument **tempInst = temp->instruments;
|
||||
end = numInstruments + tempInst;
|
||||
|
||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||
@@ -656,22 +650,18 @@ struct AudioBank *bank_load_immediate(s32 bankId, s32 arg1)
|
||||
|
||||
UNUSED u32 pad1[4];
|
||||
u32 buf[4];
|
||||
u32 numInstruments, numDrums;
|
||||
struct AudioBank *ret;
|
||||
u8 *ctlData;
|
||||
s32 alloc;
|
||||
|
||||
// (This is broken if the length is 1 (mod 16), but that never happens --
|
||||
// it's always divisible by 4.)
|
||||
DEBUG_PRINT("- getting alloc");
|
||||
alloc = gAlCtlHeader->seqArray[bankId].len + 0xf;
|
||||
s32 alloc = gAlCtlHeader->seqArray[bankId].len + 0xf;
|
||||
DEBUG_PRINT("- aligning");
|
||||
alloc = ALIGN16(alloc);
|
||||
alloc -= 0x10;
|
||||
DEBUG_PRINT("- getting ctl data for bank %d", bankId);
|
||||
ctlData = gAlCtlHeader->seqArray[bankId].offset;
|
||||
u8 *ctlData = gAlCtlHeader->seqArray[bankId].offset;
|
||||
DEBUG_PRINT("- alloc bank or seq");
|
||||
ret = alloc_bank_or_seq(&gBankLoadedPool, 1, alloc, arg1, bankId);
|
||||
struct AudioBank *ret = alloc_bank_or_seq(&gBankLoadedPool, 1, alloc, arg1, bankId);
|
||||
if (ret == NULL)
|
||||
{
|
||||
return NULL;
|
||||
@@ -681,8 +671,8 @@ struct AudioBank *bank_load_immediate(s32 bankId, s32 arg1)
|
||||
DEBUG_PRINT("- ctlData: %x", ctlData);
|
||||
audio_dma_copy_immediate((uintptr_t)ctlData, buf, 0x10);
|
||||
DEBUG_PRINT("- getting nums");
|
||||
numInstruments = buf[0];
|
||||
numDrums = buf[1];
|
||||
u32 numInstruments = buf[0];
|
||||
u32 numDrums = buf[1];
|
||||
DEBUG_PRINT("- copying dma immediate 2");
|
||||
audio_dma_copy_immediate((uintptr_t)(ctlData + 0x10), ret, alloc);
|
||||
DEBUG_PRINT("- patching bank");
|
||||
@@ -757,14 +747,10 @@ struct AudioBank *bank_load_async(s32 bankId, s32 arg1, struct SequencePlayer *s
|
||||
|
||||
void *sequence_dma_immediate(s32 seqId, s32 arg1)
|
||||
{
|
||||
s32 seqLength;
|
||||
void *ptr;
|
||||
u8 *seqData;
|
||||
|
||||
seqLength = gSeqFileHeader->seqArray[seqId].len + 0xf;
|
||||
s32 seqLength = gSeqFileHeader->seqArray[seqId].len + 0xf;
|
||||
seqLength = ALIGN16(seqLength);
|
||||
seqData = gSeqFileHeader->seqArray[seqId].offset;
|
||||
ptr = alloc_bank_or_seq(&gSeqLoadedPool, 1, seqLength, arg1, seqId);
|
||||
u8 *seqData = gSeqFileHeader->seqArray[seqId].offset;
|
||||
void *ptr = alloc_bank_or_seq(&gSeqLoadedPool, 1, seqLength, arg1, seqId);
|
||||
if (ptr == NULL)
|
||||
{
|
||||
return NULL;
|
||||
@@ -777,16 +763,11 @@ void *sequence_dma_immediate(s32 seqId, s32 arg1)
|
||||
|
||||
void *sequence_dma_async(s32 seqId, s32 arg1, struct SequencePlayer *seqPlayer)
|
||||
{
|
||||
s32 seqLength;
|
||||
void *ptr;
|
||||
u8 *seqData;
|
||||
OSMesgQueue *mesgQueue;
|
||||
|
||||
eu_stubbed_printf_1("Seq %d Loading Start\n", seqId);
|
||||
seqLength = gSeqFileHeader->seqArray[seqId].len + 0xf;
|
||||
s32 seqLength = gSeqFileHeader->seqArray[seqId].len + 0xf;
|
||||
seqLength = ALIGN16(seqLength);
|
||||
seqData = gSeqFileHeader->seqArray[seqId].offset;
|
||||
ptr = alloc_bank_or_seq(&gSeqLoadedPool, 1, seqLength, arg1, seqId);
|
||||
u8 *seqData = gSeqFileHeader->seqArray[seqId].offset;
|
||||
void *ptr = alloc_bank_or_seq(&gSeqLoadedPool, 1, seqLength, arg1, seqId);
|
||||
if (ptr == NULL)
|
||||
{
|
||||
eu_stubbed_printf_0("Heap Overflow Error\n");
|
||||
@@ -805,7 +786,7 @@ void *sequence_dma_async(s32 seqId, s32 arg1, struct SequencePlayer *seqPlayer)
|
||||
else
|
||||
{
|
||||
audio_dma_copy_immediate((uintptr_t)seqData, ptr, 0x40);
|
||||
mesgQueue = &seqPlayer->seqDmaMesgQueue;
|
||||
OSMesgQueue *mesgQueue = &seqPlayer->seqDmaMesgQueue;
|
||||
osCreateMesgQueue(mesgQueue, &seqPlayer->seqDmaMesg, 1);
|
||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||
seqPlayer->seqDmaMesg = NULL;
|
||||
@@ -873,11 +854,10 @@ struct AudioBank *load_banks_immediate(s32 seqId, u8 *outDefaultBank)
|
||||
DEBUG_PRINT("load_banks_immediate()");
|
||||
void *ret;
|
||||
u32 bankId;
|
||||
u16 offset;
|
||||
u8 i;
|
||||
|
||||
DEBUG_PRINT("- getting offset");
|
||||
offset = ((u16 *)gAlBankSets)[seqId];
|
||||
u16 offset = ((u16 *)gAlBankSets)[seqId];
|
||||
#ifdef VERSION_EU
|
||||
for (i = gAlBankSets[offset++]; i != 0; i--)
|
||||
{
|
||||
@@ -977,7 +957,6 @@ void load_sequence(u32 player, u32 seqId, s32 loadAsync)
|
||||
|
||||
void load_sequence_internal(u32 player, u32 seqId, s32 loadAsync)
|
||||
{
|
||||
void *sequenceData;
|
||||
struct SequencePlayer *seqPlayer = &gSequencePlayers[player];
|
||||
UNUSED u32 padding[2];
|
||||
|
||||
@@ -1022,7 +1001,7 @@ void load_sequence_internal(u32 player, u32 seqId, s32 loadAsync)
|
||||
eu_stubbed_printf_0("Seq Loading Start\n");
|
||||
|
||||
seqPlayer->seqId = seqId;
|
||||
sequenceData = get_bank_or_seq(&gSeqLoadedPool, 2, seqId);
|
||||
void *sequenceData = get_bank_or_seq(&gSeqLoadedPool, 2, seqId);
|
||||
if (sequenceData == NULL)
|
||||
{
|
||||
if (seqPlayer->seqDmaInProgress)
|
||||
@@ -1061,18 +1040,16 @@ void audio_init()
|
||||
DEBUG_PRINT("audio_init()");
|
||||
UNUSED s8 pad[32];
|
||||
u8 buf[0x10];
|
||||
s32 i, j, UNUSED k;
|
||||
UNUSED s32 lim1; // lim1 unused in EU
|
||||
s32 lim2, UNUSED lim3;
|
||||
UNUSED u32 size;
|
||||
s32 i, UNUSED k;
|
||||
// lim1 unused in EU
|
||||
s32 UNUSED lim3;
|
||||
UNUSED u64 *ptr64;
|
||||
void *data;
|
||||
UNUSED s32 pad2;
|
||||
|
||||
gAudioLoadLock = AUDIO_LOCK_UNINITIALIZED;
|
||||
|
||||
DEBUG_PRINT("- setting values in unused");
|
||||
lim1 = gUnusedCount80333EE8;
|
||||
s32 lim1 = gUnusedCount80333EE8;
|
||||
for (i = 0; i < lim1; i++)
|
||||
{
|
||||
gUnused80226E58[i] = 0;
|
||||
@@ -1080,7 +1057,7 @@ void audio_init()
|
||||
}
|
||||
|
||||
DEBUG_PRINT("- clearing audio heap");
|
||||
lim2 = gAudioHeapSize;
|
||||
s32 lim2 = gAudioHeapSize;
|
||||
for (i = 0; i <= lim2 / 8 - 1; i++)
|
||||
{
|
||||
((u64 *)gAudioHeap)[i] = 0;
|
||||
@@ -1113,7 +1090,7 @@ void audio_init()
|
||||
{
|
||||
gAiBuffers[i] = soundAlloc(&gAudioInitPool, AIBUFFER_LEN);
|
||||
|
||||
for (j = 0; j < (s32)(AIBUFFER_LEN / sizeof(s16)); j++)
|
||||
for (s32 j = 0; j < (s32)(AIBUFFER_LEN / sizeof(s16)); j++)
|
||||
{
|
||||
gAiBuffers[i][j] = 0;
|
||||
}
|
||||
@@ -1128,10 +1105,10 @@ void audio_init()
|
||||
|
||||
// Load headers for sounds and sequences
|
||||
gSeqFileHeader = (ALSeqFile *)buf;
|
||||
data = gMusicData;
|
||||
void *data = gMusicData;
|
||||
audio_dma_copy_immediate((uintptr_t)data, gSeqFileHeader, 0x10);
|
||||
gSequenceCount = gSeqFileHeader->seqCount;
|
||||
size = ALIGN16(gSequenceCount * sizeof(ALSeqData) + 4);
|
||||
u32 size = ALIGN16(gSequenceCount * sizeof(ALSeqData) + 4);
|
||||
gSeqFileHeader = soundAlloc(&gAudioInitPool, size);
|
||||
audio_dma_copy_immediate((uintptr_t)data, gSeqFileHeader, size);
|
||||
alSeqFileNew(gSeqFileHeader, data);
|
||||
|
||||
+11
-25
@@ -400,7 +400,6 @@ void process_notes(void)
|
||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||
struct AudioListItem *it;
|
||||
#endif
|
||||
s32 i;
|
||||
|
||||
// Macro versions of audio_list_push_front and audio_list_remove.
|
||||
// Should ideally be changed to use copt.
|
||||
@@ -414,7 +413,7 @@ void process_notes(void)
|
||||
? it \
|
||||
: (it->prev->next = it->next, it->next->prev = it->prev, it->prev = NULL, it))
|
||||
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
for (s32 i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
{
|
||||
note = &gNotes[i];
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
@@ -980,8 +979,6 @@ void build_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLay
|
||||
s32 j;
|
||||
s32 pos;
|
||||
s32 stepSize;
|
||||
s32 offset;
|
||||
u8 lim;
|
||||
u8 origSampleCount = note->sampleCount;
|
||||
|
||||
if (seqLayer->freqScale < US_FLOAT(1.0))
|
||||
@@ -1023,9 +1020,9 @@ void build_synthetic_wave(struct Note *note, struct SequenceChannelLayer *seqLay
|
||||
}
|
||||
|
||||
// Repeat sample
|
||||
for (offset = note->sampleCount; offset < 0x40; offset += note->sampleCount)
|
||||
for (s32 offset = note->sampleCount; offset < 0x40; offset += note->sampleCount)
|
||||
{
|
||||
lim = note->sampleCount;
|
||||
u8 lim = note->sampleCount;
|
||||
if (offset < 0 || offset > 0)
|
||||
{
|
||||
for (j = 0; j < lim; j++)
|
||||
@@ -1098,10 +1095,8 @@ void init_note_lists(struct NotePool *pool)
|
||||
|
||||
void init_note_free_list(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
init_note_lists(&gNoteFreeLists);
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
for (s32 i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
{
|
||||
gNotes[i].listItem.u.value = &gNotes[i];
|
||||
gNotes[i].listItem.prev = NULL;
|
||||
@@ -1111,13 +1106,12 @@ void init_note_free_list(void)
|
||||
|
||||
void note_pool_clear(struct NotePool *pool)
|
||||
{
|
||||
s32 i;
|
||||
struct AudioListItem *source;
|
||||
struct AudioListItem *cur;
|
||||
struct AudioListItem *dest;
|
||||
UNUSED s32 j; // unused in EU
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
for (s32 i = 0; i < 4; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
@@ -1180,7 +1174,6 @@ void note_pool_fill(struct NotePool *pool, s32 count)
|
||||
{
|
||||
s32 i;
|
||||
s32 j;
|
||||
struct Note *note;
|
||||
struct AudioListItem *source;
|
||||
struct AudioListItem *dest;
|
||||
|
||||
@@ -1219,7 +1212,7 @@ void note_pool_fill(struct NotePool *pool, s32 count)
|
||||
|
||||
while (j < count)
|
||||
{
|
||||
note = audio_list_pop_back(source);
|
||||
struct Note *note = audio_list_pop_back(source);
|
||||
if (note == NULL)
|
||||
{
|
||||
break;
|
||||
@@ -1593,16 +1586,12 @@ null_return: seqLayer->status = SOUND_LOAD_STATUS_NOT_LOADED;
|
||||
#if defined(VERSION_JP) || defined(VERSION_US)
|
||||
void reclaim_notes(void)
|
||||
{
|
||||
struct Note *note;
|
||||
s32 i;
|
||||
s32 cond;
|
||||
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
for (s32 i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
{
|
||||
note = &gNotes[i];
|
||||
struct Note *note = &gNotes[i];
|
||||
if (note->parentLayer != NO_LAYER)
|
||||
{
|
||||
cond = FALSE;
|
||||
s32 cond = FALSE;
|
||||
if (!note->parentLayer->enabled && note->priority >= NOTE_PRIORITY_MIN)
|
||||
{
|
||||
cond = TRUE;
|
||||
@@ -1645,12 +1634,9 @@ void reclaim_notes(void)
|
||||
|
||||
void note_init_all(void)
|
||||
{
|
||||
struct Note *note;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
for (s32 i = 0; i < gMaxSimultaneousNotes; i++)
|
||||
{
|
||||
note = &gNotes[i];
|
||||
struct Note *note = &gNotes[i];
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
note->noteSubEu = gZeroNoteSub;
|
||||
#else
|
||||
|
||||
@@ -33,8 +33,6 @@ u8 get_instrument(
|
||||
|
||||
void sequence_channel_init(struct SequenceChannel *seqChannel)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
seqChannel->enabled = FALSE;
|
||||
seqChannel->finished = FALSE;
|
||||
seqChannel->stopScript = FALSE;
|
||||
@@ -91,7 +89,7 @@ void sequence_channel_init(struct SequenceChannel *seqChannel)
|
||||
seqChannel->freqScale = 1.0f;
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
for (s32 i = 0; i < 8; i++)
|
||||
{
|
||||
seqChannel->soundScriptIO[i] = -1;
|
||||
}
|
||||
@@ -200,8 +198,7 @@ void seq_channel_layer_free(struct SequenceChannel *seqChannel, s32 layerIndex)
|
||||
|
||||
void sequence_channel_disable(struct SequenceChannel *seqChannel)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < LAYERS_MAX; i++)
|
||||
for (s32 i = 0; i < LAYERS_MAX; i++)
|
||||
{
|
||||
seq_channel_layer_free(seqChannel, i);
|
||||
}
|
||||
@@ -213,8 +210,7 @@ void sequence_channel_disable(struct SequenceChannel *seqChannel)
|
||||
|
||||
struct SequenceChannel *allocate_sequence_channel(void)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < ARRAY_COUNT(gSequenceChannels); i++)
|
||||
for (s32 i = 0; i < ARRAY_COUNT(gSequenceChannels); i++)
|
||||
{
|
||||
if (gSequenceChannels[i].seqPlayer == NULL)
|
||||
{
|
||||
@@ -230,14 +226,11 @@ struct SequenceChannel *allocate_sequence_channel(void)
|
||||
|
||||
void sequence_player_init_channels(struct SequencePlayer *seqPlayer, u16 channelBits)
|
||||
{
|
||||
struct SequenceChannel *seqChannel;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (s32 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
if (channelBits & 1)
|
||||
{
|
||||
seqChannel = seqPlayer->channels[i];
|
||||
struct SequenceChannel *seqChannel = seqPlayer->channels[i];
|
||||
if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == TRUE && seqChannel->seqPlayer == seqPlayer)
|
||||
{
|
||||
sequence_channel_disable(seqChannel);
|
||||
@@ -270,15 +263,12 @@ void sequence_player_init_channels(struct SequencePlayer *seqPlayer, u16 channel
|
||||
|
||||
void sequence_player_disable_channels(struct SequencePlayer *seqPlayer, u16 channelBits)
|
||||
{
|
||||
struct SequenceChannel *seqChannel;
|
||||
s32 i;
|
||||
|
||||
eu_stubbed_printf_0("SUBTRACK DIM\n");
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (s32 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
if (channelBits & 1)
|
||||
{
|
||||
seqChannel = seqPlayer->channels[i];
|
||||
struct SequenceChannel *seqChannel = seqPlayer->channels[i];
|
||||
if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == TRUE)
|
||||
{
|
||||
if (seqChannel->seqPlayer == seqPlayer)
|
||||
@@ -307,7 +297,6 @@ void sequence_player_disable_channels(struct SequencePlayer *seqPlayer, u16 chan
|
||||
void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex, void *script)
|
||||
{
|
||||
struct SequenceChannel *seqChannel = seqPlayer->channels[channelIndex];
|
||||
s32 i;
|
||||
if (IS_SEQUENCE_CHANNEL_VALID(seqChannel) == FALSE)
|
||||
{
|
||||
#ifdef VERSION_EU
|
||||
@@ -337,7 +326,7 @@ void sequence_channel_enable(struct SequencePlayer *seqPlayer, u8 channelIndex,
|
||||
seqChannel->scriptState.depth = 0;
|
||||
seqChannel->scriptState.pc = script;
|
||||
seqChannel->delay = 0;
|
||||
for (i = 0; i < LAYERS_MAX; i++)
|
||||
for (s32 i = 0; i < LAYERS_MAX; i++)
|
||||
{
|
||||
if (seqChannel->layers[i] != NULL)
|
||||
{
|
||||
@@ -439,14 +428,12 @@ void *audio_list_pop_back(struct AudioListItem *list)
|
||||
|
||||
void init_layer_freelist(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gLayerFreeList.prev = &gLayerFreeList;
|
||||
gLayerFreeList.next = &gLayerFreeList;
|
||||
gLayerFreeList.u.count = 0;
|
||||
gLayerFreeList.pool = NULL;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(gSequenceLayers); i++)
|
||||
for (s32 i = 0; i < ARRAY_COUNT(gSequenceLayers); i++)
|
||||
{
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
gSequenceLayers[i].listItem.u.value = &gSequenceLayers[i];
|
||||
@@ -1673,9 +1660,6 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel)
|
||||
{
|
||||
DEBUG_PRINT("sequence_channel_process_script()");
|
||||
|
||||
struct M64ScriptState *state;
|
||||
struct SequencePlayer *seqPlayer;
|
||||
u8 cmd;
|
||||
s8 temp;
|
||||
u8 loBits;
|
||||
u16 sp5A;
|
||||
@@ -1701,7 +1685,7 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel)
|
||||
return;
|
||||
}
|
||||
|
||||
seqPlayer = seqChannel->seqPlayer;
|
||||
struct SequencePlayer *seqPlayer = seqChannel->seqPlayer;
|
||||
if (seqPlayer->muted && (seqChannel->muteBehavior & MUTE_BEHAVIOR_STOP_SCRIPT) != 0)
|
||||
{
|
||||
return;
|
||||
@@ -1712,12 +1696,12 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel)
|
||||
seqChannel->delay--;
|
||||
}
|
||||
|
||||
state = &seqChannel->scriptState;
|
||||
struct M64ScriptState *state = &seqChannel->scriptState;
|
||||
if (seqChannel->delay == 0)
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
cmd = m64_read_u8(state);
|
||||
u8 cmd = m64_read_u8(state);
|
||||
DEBUG_PRINT("- handling command: %x", cmd);
|
||||
|
||||
#if !defined(VERSION_EU) && !defined(VERSION_SH)
|
||||
@@ -2073,11 +2057,10 @@ void sequence_channel_process_script(struct SequenceChannel *seqChannel)
|
||||
case 0xc7: // chan_writeseq; write to sequence data (!)
|
||||
{
|
||||
#if !defined(VERSION_EU) && !defined(VERSION_SH)
|
||||
u8 *seqData;
|
||||
#endif
|
||||
cmd = m64_read_u8(state);
|
||||
sp5A = m64_read_s16(state);
|
||||
seqData = seqPlayer->seqData + sp5A;
|
||||
u8 *seqData = seqPlayer->seqData + sp5A;
|
||||
*seqData = (u8)value + cmd;
|
||||
}
|
||||
break;
|
||||
@@ -2489,7 +2472,6 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer)
|
||||
u8 loBits;
|
||||
u8 temp;
|
||||
s32 value;
|
||||
s32 i;
|
||||
u16 u16v;
|
||||
u8 *seqData;
|
||||
struct M64ScriptState *state;
|
||||
@@ -3029,7 +3011,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer)
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < CHANNELS_MAX; i++)
|
||||
for (s32 i = 0; i < CHANNELS_MAX; i++)
|
||||
{
|
||||
#if defined(VERSION_EU) || defined(VERSION_SH)
|
||||
if (IS_SEQUENCE_CHANNEL_VALID(seqPlayer->channels[i]) == TRUE)
|
||||
@@ -3048,8 +3030,7 @@ void sequence_player_process_sequence(struct SequencePlayer *seqPlayer)
|
||||
// This runs 240 times per second.
|
||||
void process_sequences(UNUSED s32 iterationsRemaining)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
for (s32 i = 0; i < SEQUENCE_PLAYERS; i++)
|
||||
{
|
||||
if (gSequencePlayers[i].enabled == TRUE)
|
||||
{
|
||||
|
||||
@@ -171,9 +171,6 @@ void prepare_reverb_ring_buffer(s32 chunkLen, u32 updateIndex)
|
||||
struct ReverbRingBufferItem *item;
|
||||
s32 srcPos;
|
||||
s32 dstPos;
|
||||
s32 nSamples;
|
||||
s32 numSamplesAfterDownsampling;
|
||||
s32 excessiveSamples;
|
||||
if (gReverbDownsampleRate != 1)
|
||||
{
|
||||
if (gSynthesisReverb.framesLeftToIgnore == 0)
|
||||
@@ -202,7 +199,7 @@ void prepare_reverb_ring_buffer(s32 chunkLen, u32 updateIndex)
|
||||
}
|
||||
item = &gSynthesisReverb.items[gSynthesisReverb.curFrame][updateIndex];
|
||||
|
||||
numSamplesAfterDownsampling = chunkLen / gReverbDownsampleRate;
|
||||
s32 numSamplesAfterDownsampling = chunkLen / gReverbDownsampleRate;
|
||||
if (numSamplesAfterDownsampling + gSynthesisReverb.nextRingBufferPos - gSynthesisReverb.bufSizePerChannel < 0)
|
||||
{
|
||||
// There is space in the ring buffer before it wraps around
|
||||
@@ -214,9 +211,8 @@ void prepare_reverb_ring_buffer(s32 chunkLen, u32 updateIndex)
|
||||
else
|
||||
{
|
||||
// Ring buffer wrapped around
|
||||
excessiveSamples =
|
||||
numSamplesAfterDownsampling + gSynthesisReverb.nextRingBufferPos - gSynthesisReverb.bufSizePerChannel;
|
||||
nSamples = numSamplesAfterDownsampling - excessiveSamples;
|
||||
s32 excessiveSamples = numSamplesAfterDownsampling + gSynthesisReverb.nextRingBufferPos - gSynthesisReverb.bufSizePerChannel;
|
||||
s32 nSamples = numSamplesAfterDownsampling - excessiveSamples;
|
||||
item->lengthA = nSamples * 2;
|
||||
item->lengthB = excessiveSamples * 2;
|
||||
item->startPos = gSynthesisReverb.nextRingBufferPos;
|
||||
@@ -368,14 +364,12 @@ u64 *synthesis_execute(u64 *cmdBuf, s32 *writtenCmds, s16 *aiBuf, s32 bufLen)
|
||||
{
|
||||
DEBUG_PRINT("synthesis_execute()");
|
||||
s32 chunkLen;
|
||||
s32 i;
|
||||
u32 *aiBufPtr = (u32 *)aiBuf;
|
||||
u64 *cmd = cmdBuf + 1;
|
||||
s32 v0;
|
||||
|
||||
aSegment(cmdBuf, 0, 0);
|
||||
|
||||
for (i = gAudioUpdatesPerFrame; i > 0; i--)
|
||||
for (s32 i = gAudioUpdatesPerFrame; i > 0; i--)
|
||||
{
|
||||
if (i == 1)
|
||||
{
|
||||
@@ -384,7 +378,7 @@ u64 *synthesis_execute(u64 *cmdBuf, s32 *writtenCmds, s16 *aiBuf, s32 bufLen)
|
||||
}
|
||||
else
|
||||
{
|
||||
v0 = bufLen / i;
|
||||
s32 v0 = bufLen / i;
|
||||
// chunkLen = v0 rounded to nearest multiple of 8
|
||||
chunkLen = v0 - (v0 & 7);
|
||||
|
||||
@@ -592,17 +586,14 @@ u64 *synthesis_do_one_audio_update(s16 *aiBuf, s32 bufLen, u64 *cmd, s32 updateI
|
||||
DEBUG_PRINT("synthesis_do_one_audio_update()");
|
||||
|
||||
UNUSED s32 pad1[1];
|
||||
s16 ra;
|
||||
s16 t4;
|
||||
UNUSED s32 pad[2];
|
||||
struct ReverbRingBufferItem *v1;
|
||||
UNUSED s32 pad2[1];
|
||||
s16 temp;
|
||||
|
||||
DEBUG_PRINT("- curFrame: %d", gSynthesisReverb.curFrame);
|
||||
DEBUG_PRINT("- updateIndex: %d", updateIndex);
|
||||
|
||||
v1 = &gSynthesisReverb.items[gSynthesisReverb.curFrame][updateIndex];
|
||||
struct ReverbRingBufferItem *v1 = &gSynthesisReverb.items[gSynthesisReverb.curFrame][updateIndex];
|
||||
DEBUG_PRINT("- v1: %x", v1);
|
||||
|
||||
if (gSynthesisReverb.useReverb == 0)
|
||||
@@ -649,8 +640,8 @@ u64 *synthesis_do_one_audio_update(s16 *aiBuf, s32 bufLen, u64 *cmd, s32 updateI
|
||||
|
||||
// Same as above but upsample the previously downsampled samples used for reverb first
|
||||
temp = 0; //! jesus christ
|
||||
t4 = (v1->startPos & 7) * 2;
|
||||
ra = ALIGN(v1->lengthA + t4, 4);
|
||||
s16 t4 = (v1->startPos & 7) * 2;
|
||||
s16 ra = ALIGN(v1->lengthA + t4, 4);
|
||||
DEBUG_PRINT("- set load buffer pair");
|
||||
aSetLoadBufferPair(cmd++, 0, v1->startPos - t4 / 2);
|
||||
if (v1->lengthB != 0)
|
||||
@@ -1126,16 +1117,14 @@ u64 *synthesis_process_notes(s16 *aiBuf, s32 bufLen, u64 *cmd)
|
||||
|
||||
u64 *load_wave_samples(u64 *cmd, struct Note *note, s32 nSamplesToLoad)
|
||||
{
|
||||
s32 a3;
|
||||
s32 i;
|
||||
aSetBuffer(cmd++, /*flags*/ 0, /*dmemin*/ DMEM_ADDR_UNCOMPRESSED_NOTE, /*dmemout*/ 0,
|
||||
/*count*/ sizeof(note->synthesisBuffers->samples));
|
||||
aLoadBuffer(cmd++, VIRTUAL_TO_PHYSICAL2(note->synthesisBuffers->samples));
|
||||
note->samplePosInt &= note->sampleCount - 1;
|
||||
a3 = 64 - note->samplePosInt;
|
||||
s32 a3 = 64 - note->samplePosInt;
|
||||
if (a3 < nSamplesToLoad)
|
||||
{
|
||||
for (i = 0; i <= (nSamplesToLoad - a3 + 63) / 64 - 1; i++)
|
||||
for (s32 i = 0; i <= (nSamplesToLoad - a3 + 63) / 64 - 1; i++)
|
||||
{
|
||||
aDMEMMove(cmd++, /*dmemin*/ DMEM_ADDR_UNCOMPRESSED_NOTE, /*dmemout*/ DMEM_ADDR_UNCOMPRESSED_NOTE + (1 + i) * sizeof(note->synthesisBuffers->samples), /*count*/ sizeof(note->synthesisBuffers->samples));
|
||||
}
|
||||
@@ -1522,10 +1511,8 @@ void note_set_vel_pan_reverb(struct Note *note, f32 velocity, f32 pan, u8 reverb
|
||||
}
|
||||
else if (note->stereoHeadsetEffects && gSoundMode == SOUND_MODE_STEREO)
|
||||
{
|
||||
u8 strongLeft;
|
||||
u8 strongRight;
|
||||
strongLeft = FALSE;
|
||||
strongRight = FALSE;
|
||||
u8 strongLeft = FALSE;
|
||||
u8 strongRight = FALSE;
|
||||
note->headsetPanLeft = 0;
|
||||
note->headsetPanRight = 0;
|
||||
note->usesHeadsetPanEffects = FALSE;
|
||||
|
||||
Reference in New Issue
Block a user