Mix sound sources in 32-bit buffer, then clip to 16-bit for output. Fixes overflow in some situations, eg MegaRace on SB16.

This commit is contained in:
SarahW 2016-05-22 16:04:19 +01:00
commit d2b6ea7fa3
15 changed files with 60 additions and 37 deletions

View file

@ -57,7 +57,7 @@ void wss_write(uint16_t addr, uint8_t val, void *p)
ad1848_setirq(&wss->ad1848, wss_irq[(val >> 3) & 7]);
}
static void wss_get_buffer(int16_t *buffer, int len, void *p)
static void wss_get_buffer(int32_t *buffer, int len, void *p)
{
wss_t *wss = (wss_t *)p;