summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/apple2e.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/apple2e.cpp')
-rw-r--r--src/mame/drivers/apple2e.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index da3b6038563..d0279537c2c 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -1903,10 +1903,23 @@ void apple2e_state::do_io(int offset, bool is_iic)
accel_normal_speed();
}
- m_joystick_x1_time = machine().time().as_double() + m_x_calibration * m_gameio->pdl0_r();
- m_joystick_y1_time = machine().time().as_double() + m_y_calibration * m_gameio->pdl1_r();
- m_joystick_x2_time = machine().time().as_double() + m_x_calibration * m_gameio->pdl2_r();
- m_joystick_y2_time = machine().time().as_double() + m_y_calibration * m_gameio->pdl3_r();
+ // 558 monostable one-shot timers; a running timer cannot be restarted
+ if (machine().time().as_double() >= m_joystick_x1_time)
+ {
+ m_joystick_x1_time = machine().time().as_double() + m_x_calibration * m_gameio->pdl0_r();
+ }
+ if (machine().time().as_double() >= m_joystick_y1_time)
+ {
+ m_joystick_y1_time = machine().time().as_double() + m_y_calibration * m_gameio->pdl1_r();
+ }
+ if (machine().time().as_double() >= m_joystick_x2_time)
+ {
+ m_joystick_x2_time = machine().time().as_double() + m_x_calibration * m_gameio->pdl2_r();
+ }
+ if (machine().time().as_double() >= m_joystick_y2_time)
+ {
+ m_joystick_y2_time = machine().time().as_double() + m_y_calibration * m_gameio->pdl3_r();
+ }
break;
default: