diff options
Diffstat (limited to 'hw')
| -rw-r--r-- | hw/gus.c | 4 | ||||
| -rw-r--r-- | hw/sb16.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/hw/gus.c b/hw/gus.c index 543b4ea68c..c6b98b3ce4 100644 --- a/hw/gus.c +++ b/hw/gus.c @@ -156,8 +156,8 @@ static void GUS_callback (void *opaque, int free) } s->left = samples; -reset: - gus_irqgen (&s->emu, (double) (net * 1000000) / s->freq); + reset: + gus_irqgen (&s->emu, muldiv64 (net, 1000000, s->freq)); } int GUS_irqrequest (GUSEmuState *emu, int hwirq, int n) diff --git a/hw/sb16.c b/hw/sb16.c index a222e21eef..8654b7d47e 100644 --- a/hw/sb16.c +++ b/hw/sb16.c @@ -758,8 +758,8 @@ static void complete (SB16State *s) freq = s->freq > 0 ? s->freq : 11025; samples = dsp_get_lohi (s) + 1; bytes = samples << s->fmt_stereo << (s->fmt_bits == 16); - ticks = (bytes * get_ticks_per_sec()) / freq; - if (ticks < get_ticks_per_sec() / 1024) { + ticks = muldiv64 (bytes, get_ticks_per_sec (), freq); + if (ticks < get_ticks_per_sec () / 1024) { qemu_irq_raise (s->pic); } else { |