The continuing development of the legendary VBA gameboy advance emulator.
Go to file
kode54 12172db5ac Changed PCM FIFO refill behavior to only stuff the FIFO with silence if it runs completely empty, which seems to fix the stuttering in Mother 3. From the technical behavior, Mother 3's sound code would periodically set DMA 1 and 2 to reason 0, then reset them back to reason 3. This presumably occurs every time the source buffers run empty and the source addresses are reset. Unfortunately, with the current execution and memory timing, this occurs just in time for the DMA buffers to run down to only 16 samples each, and then the attempted refill call will trigger while the DMA reason is 0, so they don't refill, and the timer routine thus stuffs the FIFO buffers with 16 samples worth of silence, causing a stutter. Now, the buffer is allowed to drop below 16, which gives Mother 3's sound code enough time to restart the DMA channels, and they continue to pump samples gracefully, as I never detected a full underrun in my testing. 2013-10-21 21:46:49 +00:00
CMakeScripts NLS: Improve translations build 2011-12-03 20:29:05 +00:00
debian DEBIAN: Add manpages for gvbam and wxvbam, thanks to Jeremy Newton for writing them. 2012-04-27 14:30:15 +00:00
doc updated readme 2013-09-24 07:09:56 +00:00
fex revert the > to >> change, fixes regression in loading ppmd 7z files. 2013-04-01 05:45:42 +00:00
po NLS: Update translations from Transifex 2013-02-03 13:36:37 +00:00
project removed <AdditionalOptions>/D_ST_MODEL/D_SECURE_SCL=0 %(AdditionalOptions)</AdditionalOptions> from the vcxproj 2013-03-29 08:31:17 +00:00
src Changed PCM FIFO refill behavior to only stuff the FIFO with silence if it runs completely empty, which seems to fix the stuttering in Mother 3. From the technical behavior, Mother 3's sound code would periodically set DMA 1 and 2 to reason 0, then reset them back to reason 3. This presumably occurs every time the source buffers run empty and the source addresses are reset. Unfortunately, with the current execution and memory timing, this occurs just in time for the DMA buffers to run down to only 16 samples each, and then the attempted refill call will trigger while the DMA reason is 0, so they don't refill, and the timer routine thus stuffs the FIFO buffers with 16 samples worth of silence, causing a stutter. Now, the buffer is allowed to drop below 16, which gives Mother 3's sound code enough time to restart the DMA channels, and they continue to pump samples gracefully, as I never detected a full underrun in my testing. 2013-10-21 21:46:49 +00:00
CMakeLists.txt Disable link by default now that games work without it 2013-09-24 11:49:26 +00:00