mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-09 03:41:10 +08:00
Do not say "Goldplay mode unexpectedly switched off" and act on it, unless it was on in the first place, upon DMA DAC event. This seems to greatly improve the audio in Tyrian 2000, though there is still some popping and crackling because the game likes to repeatedly mask and unmask the DMA channel as it renders audio
This commit is contained in:
parent
d3f4fdc3aa
commit
9213f9106b
@ -990,6 +990,7 @@ static void DMA_DAC_Event(Bitu val) {
|
||||
if (!sb.dma.left)
|
||||
return;
|
||||
|
||||
const bool psingle_sample = sb.single_sample_dma;
|
||||
/* Fix for 1994 Demoscene entry myth_dw: The demo's Sound Blaster Pro initialization will start DMA with
|
||||
* count == 1 or 2 (triggering Goldplay mode) but will change the DMA initial counter when it begins
|
||||
* normal playback. If goldplay stereo hack is enabled and we do not catch this case, the first 0.5 seconds
|
||||
@ -1000,7 +1001,7 @@ static void DMA_DAC_Event(Bitu val) {
|
||||
else
|
||||
sb.single_sample_dma = 0;
|
||||
|
||||
if (!sb.single_sample_dma) {
|
||||
if (psingle_sample && !sb.single_sample_dma) {
|
||||
// WARNING: This assumes Sound Blaster Pro emulation!
|
||||
LOG(LOG_SB,LOG_NORMAL)("Goldplay mode unexpectedly switched off, normal DMA playback follows");
|
||||
sb.dma_dac_mode = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user