diff --git a/zsnes/src/linux/sdllink.c b/zsnes/src/linux/sdllink.c index 4364efd1..6c08c483 100644 --- a/zsnes/src/linux/sdllink.c +++ b/zsnes/src/linux/sdllink.c @@ -1080,9 +1080,9 @@ void UpdateVFrame(void) int *end_d = DSPBuffer+BufferSizeB; for (; d < end_d; d++, ptr++) { - if (*d > 32767) { *ptr = 32767; } - else if (*d < -32767) { *ptr = -32767; } - else { *ptr = *d; } + if ((unsigned) (*d + 0x8000) <= 0xFFFF) { *ptr = *d; continue; } + if (*d > 0x7FFF) { *ptr = 0x7FFF; } + else { *d = 0x8000; } } }