diff --git a/src/sound/snd_opl.c b/src/sound/snd_opl.c index 488acdc35..bab1a8c3f 100644 --- a/src/sound/snd_opl.c +++ b/src/sound/snd_opl.c @@ -175,8 +175,6 @@ opl_write(opl_t *dev, uint16_t port, uint8_t val) if (!(dev->flags & FLAG_OPL3)) dev->port &= 0x00ff; - - return; } } diff --git a/src/timer.c b/src/timer.c index 85264a62a..0920076d3 100644 --- a/src/timer.c +++ b/src/timer.c @@ -233,6 +233,8 @@ timer_advance_ex(pc_timer_t *timer, int start) } else { if (timer->period > 0.0) timer_do_period(timer, (uint64_t) (timer->period * ((double) TIMER_USEC)), start); + else + timer_disable(timer); timer->period = 0.0; timer->flags &= ~TIMER_SPLIT; } @@ -256,5 +258,8 @@ timer_on_auto(pc_timer_t *timer, double period) if (!timer_inited || (timer == NULL)) return; - timer_on(timer, period, (timer->period == 0.0)); + if (period > 0.0) + timer_on(timer, period, (timer->period == 0.0)); + else + timer_stop(timer); }