fix DrawSpritesHiAS
[picodrive.git] / platform / linux / emu.c
index 91115ad..5d4432f 100644 (file)
@@ -29,10 +29,8 @@ void pemu_prep_defconfig(void)
 \r
 void pemu_validate_config(void)\r
 {\r
-       extern int PicoOpt;\r
-//     PicoOpt &= ~POPT_EXT_FM;\r
-#ifndef __arm__\r
-       PicoOpt &= ~POPT_EN_DRC;\r
+#if !defined(__arm__) && !defined(__i386__) && !defined(__x86_64__)\r
+       PicoIn.opt &= ~POPT_EN_DRC;\r
 #endif\r
 }\r
 \r
@@ -68,10 +66,10 @@ static void draw_cd_leds(void)
 \r
 void pemu_finalize_frame(const char *fps, const char *notice)\r
 {\r
-       if (currentConfig.renderer != RT_16BIT && !(PicoAHW & PAHW_32X)) {\r
-               unsigned short *pd = (unsigned short *)g_screen_ptr + 8 * g_screen_width;\r
-               unsigned char *ps = PicoDraw2FB + 328*8 + 8;\r
-               unsigned short *pal = HighPal;\r
+       if (currentConfig.renderer != RT_16BIT && !(PicoIn.AHW & PAHW_32X)) {\r
+               unsigned short *pd = (unsigned short *)g_screen_ptr + 8 * g_screen_ppitch;\r
+               unsigned char *ps = Pico.est.Draw2FB + 328*8 + 8;\r
+               unsigned short *pal = Pico.est.HighPal;\r
                int i, x;\r
                if (Pico.m.dirtyPal)\r
                        PicoDrawUpdateHighPal();\r
@@ -86,7 +84,7 @@ void pemu_finalize_frame(const char *fps, const char *notice)
                if (currentConfig.EmuOpt & EOPT_SHOW_FPS)\r
                        emu_osd_text16(g_screen_width - 60, g_screen_height - 8, fps);\r
        }\r
-       if ((PicoAHW & PAHW_MCD) && (currentConfig.EmuOpt & EOPT_EN_CD_LEDS))\r
+       if ((PicoIn.AHW & PAHW_MCD) && (currentConfig.EmuOpt & EOPT_EN_CD_LEDS))\r
                draw_cd_leds();\r
 }\r
 \r
@@ -94,23 +92,23 @@ static void apply_renderer(void)
 {\r
        switch (currentConfig.renderer) {\r
        case RT_16BIT:\r
-               PicoOpt &= ~POPT_ALT_RENDERER;\r
+               PicoIn.opt &= ~POPT_ALT_RENDERER;\r
                PicoDrawSetOutFormat(PDF_RGB555, 0);\r
-               PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);\r
+               PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);\r
                break;\r
        case RT_8BIT_ACC:\r
-               PicoOpt &= ~POPT_ALT_RENDERER;\r
+               PicoIn.opt &= ~POPT_ALT_RENDERER;\r
                PicoDrawSetOutFormat(PDF_8BIT, 0);\r
-               PicoDrawSetOutBuf(PicoDraw2FB + 8, 328);\r
+               PicoDrawSetOutBuf(Pico.est.Draw2FB + 8, 328);\r
                break;\r
        case RT_8BIT_FAST:\r
-               PicoOpt |=  POPT_ALT_RENDERER;\r
+               PicoIn.opt |=  POPT_ALT_RENDERER;\r
                PicoDrawSetOutFormat(PDF_NONE, 0);\r
                break;\r
        }\r
 \r
-       if (PicoAHW & PAHW_32X)\r
-               PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);\r
+       if (PicoIn.AHW & PAHW_32X)\r
+               PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);\r
 }\r
 \r
 void plat_video_toggle_renderer(int change, int is_menu)\r
@@ -129,8 +127,8 @@ void plat_video_toggle_renderer(int change, int is_menu)
 \r
 void plat_status_msg_clear(void)\r
 {\r
-       unsigned short *d = (unsigned short *)g_screen_ptr + g_screen_width * g_screen_height;\r
-       int l = g_screen_width * 8;\r
+       unsigned short *d = (unsigned short *)g_screen_ptr + g_screen_ppitch * g_screen_height;\r
+       int l = g_screen_ppitch * 8;\r
        memset32((int *)(d - l), 0, l * 2 / 4);\r
 }\r
 \r
@@ -145,7 +143,7 @@ void plat_status_msg_busy_next(const char *msg)
 \r
 void plat_status_msg_busy_first(const char *msg)\r
 {\r
-//     memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);\r
+//     memset32(g_screen_ptr, 0, g_screen_ppitch * g_screen_height * 2 / 4);\r
        plat_status_msg_busy_next(msg);\r
 }\r
 \r
@@ -155,7 +153,7 @@ void plat_update_volume(int has_changed, int is_up)
 \r
 void pemu_forced_frame(int no_scale, int do_emu)\r
 {\r
-       PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);\r
+       PicoDrawSetOutBuf(g_screen_ptr, g_screen_ppitch * 2);\r
        PicoDrawSetCallbacks(NULL, NULL);\r
        Pico.m.dirtyPal = 1;\r
 \r
@@ -176,7 +174,7 @@ void plat_debug_cat(char *str)
 void emu_video_mode_change(int start_line, int line_count, int is_32cols)\r
 {\r
        // clear whole screen in all buffers\r
-       memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);\r
+       memset32(g_screen_ptr, 0, g_screen_ppitch * g_screen_height * 2 / 4);\r
 }\r
 \r
 void pemu_loop_prep(void)\r
@@ -203,3 +201,7 @@ void plat_wait_till_us(unsigned int us_to)
        }\r
 }\r
 \r
+void *plat_mem_get_for_drc(size_t size)\r
+{\r
+       return NULL;\r
+}\r