summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2021-06-20 21:36:53 -0500
committer cracyc <cracyc@users.noreply.github.com>2021-06-20 21:36:53 -0500
commit0c5c72286fd349e92ea756f9d04c63df008fab56 (patch)
tree3c6cd486174115763c4c003d25a2bba390436281 /src
parent87894e9c99a63d33100e982674d491234a432ca4 (diff)
vis: fix video in sherlock homes
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/vis.cpp7
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));