mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
sblaster: save DSP state
This commit is contained in:
parent
473edbd7bc
commit
3e8ae15bfa
@ -1292,22 +1292,7 @@ void sb8_device::device_start()
|
||||
m_isa->install_device(0x0228, 0x0229, read8_delegate( FUNC(sb8_device::ym3812_16_r), this ), write8_delegate( FUNC(sb8_device::ym3812_16_w), this ) );
|
||||
}
|
||||
|
||||
m_timer = timer_alloc(0, nullptr);
|
||||
|
||||
save_item(NAME(m_dack_out));
|
||||
save_item(NAME(m_onebyte_midi));
|
||||
save_item(NAME(m_uart_midi));
|
||||
save_item(NAME(m_uart_irq));
|
||||
save_item(NAME(m_mpu_midi));
|
||||
save_item(NAME(m_rx_waiting));
|
||||
save_item(NAME(m_tx_waiting));
|
||||
save_item(NAME(m_recvring));
|
||||
save_item(NAME(m_xmitring));
|
||||
save_item(NAME(m_xmit_read));
|
||||
save_item(NAME(m_xmit_write));
|
||||
save_item(NAME(m_recv_read));
|
||||
save_item(NAME(m_recv_write));
|
||||
save_item(NAME(m_tx_busy));
|
||||
sb_device::device_start();
|
||||
}
|
||||
|
||||
void isa8_sblaster1_0_device::device_start()
|
||||
@ -1333,20 +1318,17 @@ void isa8_sblaster1_5_device::device_start()
|
||||
void sb16_device::device_start()
|
||||
{
|
||||
ymf262_device *ymf262 = subdevice<ymf262_device>("ymf262");
|
||||
|
||||
m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
|
||||
m_isa->install_device(0x0224, 0x0225, read8_delegate(FUNC(sb16_device::mixer_r), this), write8_delegate(FUNC(sb16_device::mixer_w), this));
|
||||
m_isa->install_device(0x0226, 0x0227, read8_delegate(FUNC(sb_device::dsp_reset_r), this), write8_delegate(FUNC(sb_device::dsp_reset_w), this));
|
||||
m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(sb_device::dsp_data_r), this), write8_delegate(FUNC(sb_device::dsp_data_w), this) );
|
||||
m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_cmd_w), this) );
|
||||
m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_rbuf_status_w), this) );
|
||||
m_isa->install_device(0x0224, 0x0225, read8_delegate(FUNC(sb16_device::mixer_r), this), write8_delegate(FUNC(sb16_device::mixer_w), this));
|
||||
m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_device::mpu401_r), this), write8_delegate(FUNC(sb16_device::mpu401_w), this));
|
||||
m_isa->install_device(0x0388, 0x038b, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
|
||||
m_isa->install_device(0x0220, 0x0223, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
|
||||
m_isa->install_device(0x0228, 0x0229, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
|
||||
|
||||
m_timer = timer_alloc(0, nullptr);
|
||||
|
||||
save_item(NAME(m_mixer.data));
|
||||
save_item(NAME(m_mixer.status));
|
||||
save_item(NAME(m_mixer.main_vol));
|
||||
@ -1363,6 +1345,8 @@ void sb16_device::device_start()
|
||||
save_item(NAME(m_mixer.agc));
|
||||
save_item(NAME(m_mixer.treble));
|
||||
save_item(NAME(m_mixer.bass));
|
||||
|
||||
sb_device::device_start();
|
||||
}
|
||||
|
||||
void isa16_sblaster16_device::device_start()
|
||||
@ -1374,6 +1358,59 @@ void isa16_sblaster16_device::device_start()
|
||||
sb16_device::device_start();
|
||||
}
|
||||
|
||||
void sb_device::device_start()
|
||||
{
|
||||
m_timer = timer_alloc(0, nullptr);
|
||||
|
||||
save_item(NAME(m_dack_out));
|
||||
save_item(NAME(m_onebyte_midi));
|
||||
save_item(NAME(m_uart_midi));
|
||||
save_item(NAME(m_uart_irq));
|
||||
save_item(NAME(m_mpu_midi));
|
||||
save_item(NAME(m_rx_waiting));
|
||||
save_item(NAME(m_tx_waiting));
|
||||
save_item(NAME(m_recvring));
|
||||
save_item(NAME(m_xmitring));
|
||||
save_item(NAME(m_xmit_read));
|
||||
save_item(NAME(m_xmit_write));
|
||||
save_item(NAME(m_recv_read));
|
||||
save_item(NAME(m_recv_write));
|
||||
save_item(NAME(m_tx_busy));
|
||||
|
||||
save_item(NAME(m_dsp.reset_latch));
|
||||
save_item(NAME(m_dsp.rbuf_status));
|
||||
save_item(NAME(m_dsp.wbuf_status));
|
||||
save_item(NAME(m_dsp.fifo));
|
||||
save_item(NAME(m_dsp.fifo_ptr));
|
||||
save_item(NAME(m_dsp.fifo_r));
|
||||
save_item(NAME(m_dsp.fifo_r_ptr));
|
||||
|
||||
save_item(NAME(m_dsp.test_reg));
|
||||
save_item(NAME(m_dsp.speaker_on));
|
||||
save_item(NAME(m_dsp.dma_no_irq));
|
||||
save_item(NAME(m_dsp.prot_count));
|
||||
save_item(NAME(m_dsp.prot_value));
|
||||
save_item(NAME(m_dsp.frequency));
|
||||
save_item(NAME(m_dsp.adc_freq));
|
||||
save_item(NAME(m_dsp.dma_length));
|
||||
save_item(NAME(m_dsp.dma_transferred));
|
||||
save_item(NAME(m_dsp.adc_length));
|
||||
save_item(NAME(m_dsp.adc_transferred));
|
||||
save_item(NAME(m_dsp.dma_autoinit));
|
||||
save_item(NAME(m_dsp.data));
|
||||
save_item(NAME(m_dsp.d_wptr));
|
||||
save_item(NAME(m_dsp.d_rptr));
|
||||
save_item(NAME(m_dsp.dma_timer_started));
|
||||
save_item(NAME(m_dsp.dma_throttled));
|
||||
save_item(NAME(m_dsp.flags));
|
||||
save_item(NAME(m_dsp.irq_active));
|
||||
save_item(NAME(m_dsp.adpcm_new_ref));
|
||||
save_item(NAME(m_dsp.adpcm_ref));
|
||||
save_item(NAME(m_dsp.adpcm_step));
|
||||
save_item(NAME(m_dsp.adpcm_count));
|
||||
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_reset - device-specific reset
|
||||
//-------------------------------------------------
|
||||
|
@ -123,6 +123,7 @@ public:
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
uint8_t dack_r(int line);
|
||||
void dack_w(int line, uint8_t data);
|
||||
|
Loading…
Reference in New Issue
Block a user