From d944b36ca874be298d62d5bec35fe972c30f3e17 Mon Sep 17 00:00:00 2001 From: Patrick Mackinlay Date: Fri, 31 May 2019 19:23:06 +0700 Subject: [PATCH] hle_mouse: minor fixes (nw) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Indy/Indigo² issue appears to be related wait states or other unemulated delays on the driver side, and not a problem with this device or at_keybc. --- src/devices/bus/pc_kbd/hle_mouse.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/devices/bus/pc_kbd/hle_mouse.cpp b/src/devices/bus/pc_kbd/hle_mouse.cpp index e7de97e61dd..b88f5b40039 100644 --- a/src/devices/bus/pc_kbd/hle_mouse.cpp +++ b/src/devices/bus/pc_kbd/hle_mouse.cpp @@ -32,7 +32,6 @@ * - IntelliMouse device/protocol (4-byte packet, 5 buttons, scroll wheel) * - configurable clock (10kHz-16.7kHz) * - receive parity error handling - * - resolve issue with earlier Indy/Indigo² PROM versions (IBF ignored) */ #include "emu.h" @@ -95,6 +94,7 @@ void hle_ps2_mouse_device::device_start() save_item(NAME(m_rx_buf)); save_item(NAME(m_tx_len)); save_item(NAME(m_tx_pos)); + save_item(NAME(m_tx_buf)); save_item(NAME(m_data)); save_item(NAME(m_parity)); @@ -399,7 +399,8 @@ void hle_ps2_mouse_device::command(u8 const command) m_tx_buf[m_tx_len++] = 0xfa; // force data sample after acknowledge transmitted - m_sample->adjust(serial_cycle * 48, 1); + if (!m_sample->enabled()) + m_sample->adjust(serial_cycle * 48, 1); break; case 0xec: // reset wrap mode