make OSS detect blocking, adjust audio API
[libpicofe.git] / common / emu.c
index 618eb70..822d7aa 100644 (file)
@@ -1140,8 +1140,11 @@ static void emu_tray_close(void)
 \r
 void emu_32x_startup(void)\r
 {\r
-       plat_video_toggle_renderer(0, 0);\r
+       plat_video_toggle_renderer(0, 0); // HACK\r
        system_announce();\r
+\r
+       // force mode change event\r
+       rendstatus_old = -1;\r
 }\r
 \r
 void emu_reset_game(void)\r
@@ -1253,7 +1256,7 @@ static void run_events_ui(unsigned int which)
 \r
                        plat_status_msg_busy_first(tmp);\r
 \r
-                       in_set_blocking(1);\r
+                       in_set_config_int(0, IN_CFG_BLOCKING, 1);\r
                        while (in_menu_wait_any(50) & (PBTN_MA3|PBTN_MBACK))\r
                                ;\r
                        while ( !((keys = in_menu_wait_any(50)) & (PBTN_MA3|PBTN_MBACK)) )\r
@@ -1262,7 +1265,7 @@ static void run_events_ui(unsigned int which)
                                do_it = 0;\r
                        while (in_menu_wait_any(50) & (PBTN_MA3|PBTN_MBACK))\r
                                ;\r
-                       in_set_blocking(0);\r
+                       in_set_config_int(0, IN_CFG_BLOCKING, 0);\r
                }\r
                if (do_it) {\r
                        plat_status_msg_busy_first((which & PEV_STATE_LOAD) ? "LOADING STATE" : "SAVING STATE");\r
@@ -1347,6 +1350,26 @@ static void mkdir_path(char *path_with_reserve, int pos, const char *name)
                lprintf("failed to create: %s\n", path_with_reserve);\r
 }\r
 \r
+void emu_cmn_forced_frame(int no_scale, int do_emu)\r
+{\r
+       int po_old = PicoOpt;\r
+\r
+       memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);\r
+\r
+       PicoOpt |= POPT_ACC_SPRITES;\r
+       if (!no_scale)\r
+               PicoOpt |= POPT_EN_SOFTSCALE;\r
+\r
+       PicoDrawSetOutFormat(PDF_RGB555, 1);\r
+       Pico.m.dirtyPal = 1;\r
+       if (do_emu)\r
+               PicoFrame();\r
+       else\r
+               PicoFrameDrawOnly();\r
+\r
+       PicoOpt = po_old;\r
+}\r
+\r
 void emu_init(void)\r
 {\r
        char path[512];\r