Add RGB565 support
[pcsx_rearmed.git] / frontend / plat_pollux.c
index 80e7a1b..1dafb7c 100644 (file)
@@ -258,6 +258,7 @@ void plat_video_menu_leave(void)
 
        memset(g_menuscreen_ptr, 0, 320*240 * psx_bpp/8);
        g_menuscreen_ptr = fb_flip();
+       memset(g_menuscreen_ptr, 0, 320*240 * psx_bpp/8);
 }
 
 void *plat_prepare_screenshot(int *w, int *h, int *bpp)
@@ -439,7 +440,7 @@ void *plat_gvideo_set_mode(int *w_, int *h_, int *bpp_)
        }
        fb_offset_y = 240/2 - h / 2;
 
-       psx_offset_x = poff_w;
+       psx_offset_x = poff_w * psx_bpp/8 / 2;
        psx_offset_y = poff_h;
        psx_src_width = w;
        psx_src_height = h;
@@ -463,7 +464,7 @@ void *plat_gvideo_set_mode(int *w_, int *h_, int *bpp_)
 }
 
 /* not really used, we do raw_flip */
-void plat_gvideo_open(void)
+void plat_gvideo_open(int is_pal)
 {
 }
 
@@ -652,6 +653,22 @@ void plat_finish(void)
        close(memdev);
 }
 
+/* WIZ RAM lack workaround */
+void *memtab_mmap(void *addr, size_t size)
+{
+       void *ret;
+
+       if (gp2x_dev_id != GP2X_DEV_WIZ)
+               return mmap(addr, size, PROT_READ | PROT_WRITE,
+                       MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
+
+       ret = mmap(addr, size, PROT_READ | PROT_WRITE,
+               MAP_SHARED | MAP_FIXED, memdev, 0x03000000);
+       if (ret != MAP_FAILED)
+               warm_change_cb_range(WCB_C_BIT | WCB_B_BIT, 1, ret, size);
+       return ret;
+}
+
 /* Caanoo stuff, perhaps move later */
 static const char * const caanoo_keys[KEY_MAX + 1] = {
        [0 ... KEY_MAX] = NULL,