reset dma request line on soundblaster reset (thanks to hal), fixes 3d bomber
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3219
This commit is contained in:
parent
74b5d82ccf
commit
5f12dea767
3 changed files with 20 additions and 5 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2002-2007 The DOSBox Team
|
||||
* Copyright (C) 2002-2008 The DOSBox Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -16,6 +16,8 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: dma.cpp,v 1.39 2008-09-13 20:04:28 c2woody Exp $ */
|
||||
|
||||
#include <string.h>
|
||||
#include "dosbox.h"
|
||||
#include "mem.h"
|
||||
|
@ -231,7 +233,8 @@ Bitu DmaController::ReadControllerReg(Bitu reg,Bitu len) {
|
|||
chan=GetChannel(i);
|
||||
if (chan->tcount) ret|=1 << i;
|
||||
chan->tcount=false;
|
||||
if (chan->callback) ret|=1 << (i+4);
|
||||
// if (chan->callback) ret|=1 << (i+4);
|
||||
if (chan->request) ret|=1 << (4+i);
|
||||
}
|
||||
return ret;
|
||||
default:
|
||||
|
@ -256,6 +259,7 @@ DmaChannel::DmaChannel(Bit8u num, bool dma16) {
|
|||
increment = true;
|
||||
autoinit = false;
|
||||
tcount = false;
|
||||
request = false;
|
||||
}
|
||||
|
||||
Bitu DmaChannel::Read(Bitu want, Bit8u * buffer) {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* $Id: sblaster.cpp,v 1.69 2008-08-28 17:37:23 c2woody Exp $ */
|
||||
/* $Id: sblaster.cpp,v 1.70 2008-09-13 20:04:28 c2woody Exp $ */
|
||||
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
|
@ -680,6 +680,7 @@ static void DSP_Reset(void) {
|
|||
sb.dma.autoinit=false;
|
||||
sb.dma.mode=DSP_DMA_NONE;
|
||||
sb.dma.remain_size=0;
|
||||
if (sb.dma.chan) sb.dma.chan->Clear_Request();
|
||||
sb.freq=22050;
|
||||
sb.time_constant=45;
|
||||
sb.dac.used=0;
|
||||
|
@ -1482,6 +1483,7 @@ public:
|
|||
if (sb.type==SBT_NONE) return;
|
||||
sb.chan=MixerChan.Install(&SBLASTER_CallBack,22050,"SB");
|
||||
sb.dsp.state=DSP_S_NORMAL;
|
||||
sb.dma.chan=NULL;
|
||||
|
||||
for (i=4;i<=0xf;i++) {
|
||||
if (i==8 || i==9) continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue