Some audio bugfixes

This commit is contained in:
Arceveti
2021-10-06 18:12:49 -07:00
parent 3a471f4786
commit ec337a4206
2 changed files with 1 additions and 16 deletions

View File

@@ -1056,13 +1056,7 @@ static void select_current_sounds(u8 bank) {
& (SOUND_DISCRETE | SOUNDARGS_MASK_STATUS);
if (isDiscreteAndStatus >= (SOUND_DISCRETE | SOUND_STATUS_PLAYING)
&& sSoundBanks[bank][sCurrentSound[bank][i]].soundStatus != SOUND_STATUS_STOPPED) {
//! @bug On JP, if a discrete sound that lowers the background music is
// interrupted in this way, it will keep the background music low afterward.
// There are only a few of these sounds, and it probably isn't possible to do
// it in practice without using a time stop glitch like triple star spawn.
#ifndef VERSION_JP
update_background_music_after_sound(bank, sCurrentSound[bank][i]);
#endif
sSoundBanks[bank][sCurrentSound[bank][i]].soundBits = NO_SOUND;
sSoundBanks[bank][sCurrentSound[bank][i]].soundStatus = SOUND_STATUS_STOPPED;
@@ -1197,14 +1191,7 @@ static f32 get_sound_volume(u8 bank, u8 soundIndex, f32 volumeRange) {
#endif
if (sSoundBanks[bank][soundIndex].soundBits & SOUND_VIBRATO) {
#ifdef VERSION_JP
//! @bug Intensity is 0 when the sound is far away. Due to the subtraction below, it is possible to end up with a negative intensity.
// When it is, objects with a volumeRange of 1 can still occasionally be lightly heard.
if (intensity != 0.0)
#else
if (intensity >= 0.08f)
#endif
{
if (intensity >= 0.08f) {
intensity -= (f32)(gAudioRandom & 0xf) / US_FLOAT(192.0);
}
}

View File

@@ -375,14 +375,12 @@ s32 func_sh_802f3024(s32 bankId, s32 instId, s32 arg2) {
if (instr->normalRangeHi != 0x7F) {
func_sh_802f2f38(instr->highNotesSound.sample, bankId);
}
//! @bug missing return
} else if (instId == 0x7F) {
drum = get_drum(bankId, arg2);
if (drum == NULL) {
return -1;
}
func_sh_802f2f38(drum->sound.sample, bankId);
return 0;
}
return 0;
}