diff options
author | 2021-06-20 21:36:53 -0500 | |
---|---|---|
committer | 2021-06-20 21:36:53 -0500 | |
commit | 0c5c72286fd349e92ea756f9d04c63df008fab56 (patch) | |
tree | 3c6cd486174115763c4c003d25a2bba390436281 | |
parent | 87894e9c99a63d33100e982674d491234a432ca4 (diff) |
vis: fix video in sherlock homes
-rw-r--r-- | src/mame/drivers/vis.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp index 423b5cbc9ef..2c8831ec0c7 100644 --- a/src/mame/drivers/vis.cpp +++ b/src/mame/drivers/vis.cpp @@ -75,13 +75,13 @@ void vis_audio_device::dack16_w(int line, uint16_t data) { m_sample[m_samples++] = data; m_curcount++; - if(m_samples >= 2) + if((m_samples >= 2) || ((m_mode & 0x08) != 0x08)) m_isa->drq7_w(CLEAR_LINE); } void vis_audio_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - if(m_samples < 2) + if((m_samples < 2) && ((m_mode & 0x08) == 0x08)) return; switch(m_mode & 0x88) { @@ -110,7 +110,7 @@ void vis_audio_device::device_timer(emu_timer &timer, device_timer_id id, int pa break; } - if(m_sample_byte >= 4) + if(m_sample_byte >= 2) { m_sample_byte = 0; m_samples = 0; @@ -856,6 +856,7 @@ void vis_state::io_map(address_map &map) map(0x0026, 0x0027).rw(FUNC(vis_state::unk_r), FUNC(vis_state::unk_w)); map(0x0040, 0x005f).rw("mb:pit8254", FUNC(pit8254_device::read), FUNC(pit8254_device::write)); map(0x0060, 0x0065).rw("kbdc", FUNC(kbdc8042_device::data_r), FUNC(kbdc8042_device::data_w)); + map(0x0061, 0x0061).rw("mb", FUNC(at_mb_device::portb_r), FUNC(at_mb_device::portb_w)); map(0x006a, 0x006a).r(FUNC(vis_state::unk2_r)); map(0x0080, 0x009f).rw("mb", FUNC(at_mb_device::page8_r), FUNC(at_mb_device::page8_w)); map(0x0092, 0x0092).rw(FUNC(vis_state::sysctl_r), FUNC(vis_state::sysctl_w)); |