+/*
+ * PicoDrive
+ * (C) notaz, 2009,2010
+ *
+ * This work is licensed under the terms of MAME license.
+ * See COPYING file in the top-level directory.
+ */
#include "../pico_int.h"
static int pwm_line_samples;
}
// PWM irq for every tm samples
-void p32x_timers_do(int new_line)
+void p32x_timers_do(int line_call)
{
int tm, cnt, i;
- tm = (Pico32x.regs[0x30 / 2] & 0x0f00) >> 8;
- if (tm != 0) {
- if (new_line)
- Pico32x.pwm_irq_sample_cnt += pwm_line_samples;
- if (Pico32x.pwm_irq_sample_cnt >= (tm << 16)) {
- Pico32x.pwm_irq_sample_cnt -= tm << 16;
- Pico32x.sh2irqs |= P32XI_PWM;
- p32x_update_irls();
+
+ if (PicoOpt & POPT_EN_PWM)
+ {
+ tm = (Pico32x.regs[0x30 / 2] & 0x0f00) >> 8;
+ if (tm != 0) {
+ if (line_call)
+ Pico32x.pwm_irq_sample_cnt += pwm_line_samples;
+ if (Pico32x.pwm_irq_sample_cnt >= (tm << 16)) {
+ Pico32x.pwm_irq_sample_cnt -= tm << 16;
+ Pico32x.sh2irqs |= P32XI_PWM;
+ p32x_update_irls(!line_call);
+ }
}
}
- if (!new_line)
+ if (!line_call)
return;
for (i = 0; i < 2; i++) {
void p32x_pwm_update(int *buf32, int length, int stereo)
{
- extern int pwm_ptr;
short *pwmb;
int step;
int p = 0;