diff options
author | Michael Pavone <pavone@retrodev.com> | 2015-05-14 23:17:55 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2015-05-14 23:17:55 -0700 |
commit | 7d1aa2ab5e1b839f8cd15425f1004c7d1e952400 (patch) | |
tree | 90b86598dc59b53a093448d1f2a8f74260e85352 | |
parent | b88dc02ba056c2b5891b1bb062a2ad44df5df544 (diff) |
Small horizontal interrupt fixes
-rw-r--r-- | gst.c | 2 | ||||
-rw-r--r-- | vdp.c | 4 |
2 files changed, 3 insertions, 3 deletions
@@ -423,7 +423,7 @@ uint32_t load_gst(genesis_context * gen, char * fname) fprintf(stderr, "Could not read ident code from %s\n", fname); goto error_close; } - if (memcmp(ident, "GST\x40\xE0", 5) != 0) { + if (memcmp(ident, "GST\x40\xE0", 3) != 0) { fprintf(stderr, "%s doesn't appear to be a GST savestate. The ident code is %c%c%c\\x%X\\x%X instead of GST\\x40\\xE0.\n", fname, ident[0], ident[1], ident[2], ident[3], ident[4]); goto error_close; } @@ -1476,7 +1476,7 @@ void vdp_run_context(vdp_context * context, uint32_t target_cycles) } } if (is_h40 && slot == LINE_CHANGE_H40 || !is_h40 && slot == LINE_CHANGE_H32) { - if (line >= inactive_start) { + if (line > inactive_start) { context->hint_counter = context->regs[REG_HINT]; } else if (context->hint_counter) { context->hint_counter--; @@ -1954,7 +1954,7 @@ uint32_t vdp_next_hint(vdp_context * context) } uint32_t inactive_start = context->latched_mode & BIT_PAL ? PAL_INACTIVE_START : NTSC_INACTIVE_START; uint32_t hint_line; - if (context->vcounter >= inactive_start) { + if (context->vcounter + context->hint_counter >= inactive_start) { hint_line = context->regs[REG_HINT]; } else { hint_line = context->vcounter + context->hint_counter + 1; |