diff options
Diffstat (limited to 'libpcsxcore/psxmem.h')
-rw-r--r-- | libpcsxcore/psxmem.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libpcsxcore/psxmem.h b/libpcsxcore/psxmem.h index 222e6fb..b409603 100644 --- a/libpcsxcore/psxmem.h +++ b/libpcsxcore/psxmem.h @@ -142,12 +142,13 @@ extern u32 event_cycles[6]; extern u32 next_interupt; #define new_dyna_set_event(e, c) { \ - u32 c_ = c; \ - event_cycles[e] = c_; \ - if (c_ < next_interupt) { \ - /*printf("%u: next_interupt %d -> %d\n", psxRegs.cycle, \ - next_interupt - psxRegs.cycle, c_ - psxRegs.cycle);*/ \ - next_interupt = c_; \ + s32 c_ = c; \ + u32 abs_ = psxRegs.cycle + c_; \ + s32 odi_ = next_interupt - psxRegs.cycle; \ + event_cycles[e] = abs_; \ + if (c_ < odi_) { \ + /*printf("%u: next_interupt %d -> %d (%u)\n", psxRegs.cycle, odi_, c_, abs_);*/ \ + next_interupt = abs_; \ } \ } |