]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fixed overlay/framebuffer offset. LSB_FIRST define was missing.
authorToni Wilen <twilen@winuae.net>
Mon, 6 Jul 2015 19:22:30 +0000 (22:22 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 6 Jul 2015 19:22:30 +0000 (22:22 +0300)
mame/a2410.cpp
mame/mameglue.h

index c0a82c75589b66a2928eeae710039d64ffde2895..a9cd84e5120d32f73138a8b51b3ff91e33ca9bc4 100644 (file)
@@ -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;
index 6b9479ae85843ff2ba523717051dadb84871ac9d..010c4fd646f658263bc50cf6573eb40dbb95a30f 100644 (file)
@@ -3,6 +3,8 @@
 #include "sysconfig.h"
 #include "sysdeps.h"
 
+#define LSB_FIRST
+
 extern void write_log(const char *, ...);
 extern void activate_debugger(void);