From f8d9310e1179611a74e95aedd0ad00f4c275c4e4 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 6 Jul 2015 22:22:30 +0300 Subject: [PATCH] Fixed overlay/framebuffer offset. LSB_FIRST define was missing. --- mame/a2410.cpp | 7 +++++-- mame/mameglue.h | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mame/a2410.cpp b/mame/a2410.cpp index c0a82c75..a9cd84e5 100644 --- a/mame/a2410.cpp +++ b/mame/a2410.cpp @@ -694,6 +694,8 @@ void tms_hsync_handler(void) if (a2410_vpos >= a2410_height || a2410_vpos >= picasso_vidinfo.height) return; + int overlay_yoffset = a2410_vpos - a2410_vertical_start; + int coladdr = parms.coladdr; int vramoffset = ((parms.rowaddr << 8) & 0x7ffff); uae_u16 *vram = (uae_u16*)gfxmem_bank.baseaddr + vramoffset; @@ -702,14 +704,15 @@ void tms_hsync_handler(void) uae_u8 *overlay0 = program_ram + overlayoffset * OVERLAY_WIDTH / 4; uae_u8 *overlay1 = overlay0 + 0x20000; - if (!fullrefresh && !a2410_modified[a2410_vpos]) { + if (!fullrefresh && (overlay_yoffset < 0 || !a2410_modified[overlay_yoffset])) { if (!picasso_is_vram_dirty(gfxmem_bank.start + (vramoffset << 1), a2410_displaywidth)) { if (!picasso_is_vram_dirty(gfxmem_bank.start + ((vramoffset + 0x200) << 1), a2410_displaywidth)) { return; } } } - a2410_modified[a2410_vpos] = false; + if (overlay_yoffset >= 0) + a2410_modified[overlay_yoffset] = false; get_a2410_surface(); uae_u8 *dst = a2410_surface; diff --git a/mame/mameglue.h b/mame/mameglue.h index 6b9479ae..010c4fd6 100644 --- a/mame/mameglue.h +++ b/mame/mameglue.h @@ -3,6 +3,8 @@ #include "sysconfig.h" #include "sysdeps.h" +#define LSB_FIRST + extern void write_log(const char *, ...); extern void activate_debugger(void); -- 2.47.3