Mercurial > repos > blastem
changeset 1100:653558f6fa7a
Fix Jaguar video interrupt cycle calculation
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 05 Nov 2016 21:41:23 -0700 |
parents | 9c62edafcf74 |
children | e2d345e351b5 |
files | jag_video.c jaguar.c |
diffstat | 2 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/jag_video.c Sat Nov 05 21:19:18 2016 -0700 +++ b/jag_video.c Sat Nov 05 21:41:23 2016 -0700 @@ -189,7 +189,7 @@ uint32_t jag_cycles_to_halfline(jag_video *context, uint32_t target) { - uint32_t cycles = context->regs[VID_HPERIOD] - (context->regs[VID_HCOUNT & 0x3FF]); + uint32_t cycles = context->regs[VID_HPERIOD] - (context->regs[VID_HCOUNT] & 0x3FF); uint32_t num_lines; if (context->regs[VID_VCOUNT] < target) { num_lines = target - 1 - context->regs[VID_VCOUNT];
--- a/jaguar.c Sat Nov 05 21:19:18 2016 -0700 +++ b/jaguar.c Sat Nov 05 21:41:23 2016 -0700 @@ -145,9 +145,10 @@ system->memcon2 = value; break; case 0xE0: - printf("INT1 write: %X\n", value); system->cpu_int_control = value & 0x1F; system->video->cpu_int_pending &= ~(value >> 8); + printf("INT1 write: %X @ %d - int_pending: %X, int_control: %X\n", value, system->m68k->current_cycle, system->video->cpu_int_pending, system->cpu_int_control); + jag_update_m68k_int(system); //TODO: apply mask to int pending fields on other components once they are implemented break; case 0xE2: