From 54912b1c012e801394559e6776fcdde7f52eac25 Mon Sep 17 00:00:00 2001 From: dborth Date: Fri, 27 Nov 2009 08:56:38 +0000 Subject: [PATCH] sync --- src/hardware/adlib.cpp | 5 ++++- src/hardware/vga_draw.cpp | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/hardware/adlib.cpp b/src/hardware/adlib.cpp index c3995a3..2331177 100644 --- a/src/hardware/adlib.cpp +++ b/src/hardware/adlib.cpp @@ -549,7 +549,10 @@ static void OPL_CallBack(Bitu len) { module->handler->Generate( module->mixerChan, len ); //Disable the sound generation after 30 seconds of silence if ((PIC_Ticks - module->lastUsed) > 30000) { - module->mixerChan->Enable(false); + Bitu i; + for (i=0xb0;i<0xb9;i++) if (module->cache[i]&0x20||module->cache[i+0x100]&0x20) break; + if (i==0xb9) module->mixerChan->Enable(false); + else module->lastUsed = PIC_Ticks; } } diff --git a/src/hardware/vga_draw.cpp b/src/hardware/vga_draw.cpp index 709f76b..6e94013 100644 --- a/src/hardware/vga_draw.cpp +++ b/src/hardware/vga_draw.cpp @@ -801,6 +801,8 @@ static void VGA_VerticalTimer(Bitu /*val*/) { #endif switch (vga.mode) { case M_EGA: + if (!(vga.crtc.mode_control&0x1)) vga.draw.linear_mask &= ~0x10000; + else vga.draw.linear_mask |= 0x10000; case M_LIN4: vga.draw.byte_panning_shift = 8; vga.draw.address += vga.draw.bytes_skip;