Skip to content

Commit 9f5527a

Browse files
committed
Clamp audio mix in CD-ROM game. #47
1 parent f50fa89 commit 9f5527a

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/audio.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,20 @@ void Audio::EndFrame(s16* sample_buffer, int* sample_count)
123123
{
124124
for (int i = 0; i < samples; i++)
125125
{
126-
sample_buffer[i] = 0;
127-
sample_buffer[i] += m_mute_psg ? 0 : m_psg_buffer[i];
128-
sample_buffer[i] += m_mute_adpcm ? 0 : m_adpcm_buffer[i];
129-
sample_buffer[i] += m_mute_cdrom ? 0 : m_cdrom_buffer[i];
126+
int mix = 0;
127+
if (!m_mute_psg)
128+
mix += m_psg_buffer[i];
129+
if (!m_mute_adpcm)
130+
mix += m_adpcm_buffer[i];
131+
if (!m_mute_cdrom)
132+
mix += m_cdrom_buffer[i];
133+
134+
if (mix > 32767)
135+
mix = 32767;
136+
else if (mix < -32768)
137+
mix = -32768;
138+
139+
sample_buffer[i] = (s16)mix;
130140
}
131141
}
132142
}

0 commit comments

Comments
 (0)