You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Virtua Racing (vr), other systems using MultiPCM/YMW258
Incorrect behaviour
"One-short samples" that are terminated by looping over only 1 value can cause audible noise at the point where they should end.
The bug was introduced by #11105.
Expected behaviour
One-shot samples should be silent after they finish.
Steps to reproduce
In Virtua Racing, enter Service Mode -> Music Test and play the song SELECT.
You will hear a quiet but noticeable high pitched sound everytime the kick drum sample ends, which keeps playing until the kick restarts.
Additional details
I think the issue is caused by the interpolation code here:
// DD-9 expects the looped silence at the end of some samples to be the same whether reversed or not
slot.m_reverse = false;
}
if (spos ^ (slot.m_offset >> TL_SHIFT))
{
slot.m_prev_sample = csample;
}
When the loop is only 1 sample value long, it doesn't update slot.m_prev_sample and will keep interpolating between data[end-2] and data[end-1] when it should stay at data[end-1].
The text was updated successfully, but these errors were encountered:
MAME version
0.261 (g2b20c5ef178)
System information
Ubuntu 23.10
INI configuration details
Emulated system/software
Virtua Racing (vr), other systems using MultiPCM/YMW258
Incorrect behaviour
"One-short samples" that are terminated by looping over only 1 value can cause audible noise at the point where they should end.
The bug was introduced by #11105.
Expected behaviour
One-shot samples should be silent after they finish.
Steps to reproduce
In Virtua Racing, enter Service Mode -> Music Test and play the song
SELECT
.You will hear a quiet but noticeable high pitched sound everytime the kick drum sample ends, which keeps playing until the kick restarts.
Additional details
I think the issue is caused by the interpolation code here:
mame/src/devices/sound/gew.cpp
Lines 595 to 606 in a3c9dd3
When the loop is only 1 sample value long, it doesn't update
slot.m_prev_sample
and will keep interpolating betweendata[end-2]
anddata[end-1]
when it should stay atdata[end-1]
.The text was updated successfully, but these errors were encountered: