Previous 199869 Revisions Next

r17928 Sunday 16th September, 2012 at 14:13:24 UTC by Miodrag Milanović
isa_sblaster : Corrects the output in adpcm mode and inhibits irqs after the protection command.  Test-sbc.exe works again. by Carl (no whatsnew)
[src/mess/machine]isa_sblaster.c isa_sblaster.h

trunk/src/mess/machine/isa_sblaster.c
r17927r17928
435435                m_dsp.prot_count &= 3;
436436            m_dsp.adc_transferred = 0;
437437            m_dsp.adc_length = 1;
438            m_dsp.wbuf_status = 0x80;
439            m_dsp.dma_no_irq = true;
438440                m_dack_out = (UINT8)(m_dsp.prot_value & 0xff);
439441                drq_w(1);
440442                break;
r17927r17928
912914   m_dsp.frequency = 8000; // per stereo-fx
913915   m_dsp.irq_active = 0;
914916   m_mixer_index = 0;
917   m_dsp.dma_no_irq = false;
915918}
916919
917920UINT8 sb_device::dack_r(int line)
r17927r17928
926929         m_dsp.adc_transferred = 0;
927930            drq_w(1);
928931      }
929      irq_w(1, IRQ_DMA8);
932      else
933         m_dsp.wbuf_status = 0;
934      if(!m_dsp.dma_no_irq)
935         irq_w(1, IRQ_DMA8);
936      else
937         m_dsp.dma_no_irq = false;
930938   }
931939   else
932940      drq_w(1);
r17927r17928
11101118            m_dsp.adpcm_ref = m_dsp.data[m_dsp.d_rptr++];
11111119            m_dsp.adpcm_new_ref = false;
11121120            m_dacl->write_unsigned8(m_dsp.adpcm_ref);
1113            m_dacl->write_unsigned8(m_dsp.adpcm_ref);
1121            m_dacr->write_unsigned8(m_dsp.adpcm_ref);
11141122            break;
11151123         }
11161124         lsample = m_dsp.data[m_dsp.d_rptr];
r17927r17928
11381146            m_dsp.adpcm_ref = m_dsp.data[m_dsp.d_rptr++];
11391147            m_dsp.adpcm_new_ref = false;
11401148            m_dacl->write_unsigned8(m_dsp.adpcm_ref);
1141            m_dacl->write_unsigned8(m_dsp.adpcm_ref);
1149            m_dacr->write_unsigned8(m_dsp.adpcm_ref);
11421150            break;
11431151         }   
11441152         lsample = m_dsp.data[m_dsp.d_rptr];
r17927r17928
11631171            m_dsp.adpcm_ref = m_dsp.data[m_dsp.d_rptr++];
11641172            m_dsp.adpcm_new_ref = false;
11651173            m_dacl->write_unsigned8(m_dsp.adpcm_ref);
1166            m_dacl->write_unsigned8(m_dsp.adpcm_ref);
1174            m_dacr->write_unsigned8(m_dsp.adpcm_ref);
11671175            break;
11681176         }   
11691177         lsample = m_dsp.data[m_dsp.d_rptr];
trunk/src/mess/machine/isa_sblaster.h
r17927r17928
3434    UINT16 version;
3535    UINT8 test_reg;
3636    UINT8 speaker_on;
37    bool dma_no_irq;
3738    UINT32 prot_count;
3839    INT32 prot_value;
3940    UINT32 frequency;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team