mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
Revert 4ec1247
as it cause more troubles than it solves
This commit is contained in:
parent
aa9c5aa559
commit
35821b373c
6 changed files with 33 additions and 48 deletions
|
@ -41,13 +41,13 @@ void p32x_pwm_ctl_changed(void)
|
|||
pwm.irq_reload = pwm.irq_timer;
|
||||
pwm.irq_state = pwm_irq_opt ? PWM_IRQ_STOPPED: PWM_IRQ_LOCKED;
|
||||
|
||||
if (Pico32x.pwm_irq_cnt <= 0)
|
||||
if (Pico32x.pwm_irq_cnt == 0)
|
||||
Pico32x.pwm_irq_cnt = pwm.irq_reload;
|
||||
}
|
||||
|
||||
static void do_pwm_irq(SH2 *sh2, unsigned int m68k_cycles)
|
||||
{
|
||||
p32x_trigger_irq(NULL, m68k_cycles, P32XI_PWM);
|
||||
p32x_trigger_irq(sh2, m68k_cycles, P32XI_PWM);
|
||||
|
||||
if (Pico32x.regs[0x30 / 2] & P32XP_RTP) {
|
||||
p32x_event_schedule(m68k_cycles, P32X_EVENT_PWM, pwm.cycles / 3 + 1);
|
||||
|
@ -110,7 +110,7 @@ static void consume_fifo_do(SH2 *sh2, unsigned int m68k_cycles,
|
|||
mem->pwm[pwm.ptr * 2 + 1] = pwm.current[1];
|
||||
pwm.ptr = (pwm.ptr + 1) & (PWM_BUFF_LEN - 1);
|
||||
|
||||
if (--Pico32x.pwm_irq_cnt <= 0) {
|
||||
if (--Pico32x.pwm_irq_cnt == 0) {
|
||||
Pico32x.pwm_irq_cnt = pwm.irq_reload;
|
||||
do_pwm_irq(sh2, m68k_cycles);
|
||||
} else if (Pico32x.pwm_p[1] == 0 && pwm.irq_state >= PWM_IRQ_LOW) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue