libretro / opera-libretro

Port of 4DO/libfreedo to libretro.
66 stars 38 forks source link

Check if DMA is enabled when reloading audio FIFO #194

Closed trapexit closed 11 months ago

trapexit commented 11 months ago

The patent isn't clear on how this all works exactly but games like Alone in the Dark and Lemmings clearly had issue with audio buffers replaying in a loop. The docs suggest that the DMA start address being set to zero is used to stop the transfer if using the "next" address. However, it looks that disabling the DMA channel is also needed.

There are still some DMA issues as numerous games have pops and crackles at times but this will fix a number of games.