some pandora tweaks
[libpicofe.git] / pandora / emu.c
index a9556b1..7996a79 100644 (file)
@@ -49,6 +49,7 @@ void pemu_prep_defconfig(void)
        g_menubg_ptr = temp_frame;\r
 \r
        defaultConfig.EmuOpt |= EOPT_VSYNC;\r
+       defaultConfig.s_PicoOpt |= POPT_EN_MCD_GFX|POPT_EN_MCD_PSYNC;\r
        defaultConfig.scaling = SCALE_2x2_3x2;\r
 }\r
 \r
@@ -113,9 +114,9 @@ static void draw_cd_leds(void)
 \r
 static int emuscan_1x1(unsigned int num)\r
 {\r
-       DrawLineDest = (unsigned short *)g_screen_ptr + num*800 + 800/2 - 320/2;\r
-       //int w = (Pico.video.reg[12]&1) ? 320 : 256;\r
-       //DrawLineDest = (unsigned short *)g_screen_ptr + num*w;\r
+       DrawLineDest = (unsigned short *)g_screen_ptr +\r
+               g_screen_width * g_screen_height / 2 - g_screen_width * 240 / 2 +\r
+               num*g_screen_width + g_screen_width/2 - 320/2;\r
 \r
        return 0;\r
 }\r
@@ -250,17 +251,24 @@ void plat_update_volume(int has_changed, int is_up)
        }\r
 }\r
 \r
-void pemu_forced_frame(int opts)\r
+void pemu_forced_frame(int opts, int no_scale)\r
 {\r
+       int oldscale = currentConfig.scaling;\r
        int po_old = PicoOpt;\r
 \r
-       PicoOpt &= ~0x10;\r
+       if (no_scale) {\r
+               currentConfig.scaling = SCALE_1x1;\r
+               emu_video_mode_change(0, 0, 0);\r
+       }\r
+\r
+       PicoOpt &= ~POPT_ALT_RENDERER;\r
        PicoOpt |= opts|POPT_ACC_SPRITES; // acc_sprites\r
 \r
        Pico.m.dirtyPal = 1;\r
        PicoFrameDrawOnly();\r
 \r
        PicoOpt = po_old;\r
+       currentConfig.scaling = oldscale;\r
 }\r
 \r
 static void updateSound(int len)\r
@@ -368,14 +376,11 @@ void emu_video_mode_change(int start_line, int line_count, int is_32cols)
 \r
 void pemu_loop_prep(void)\r
 {\r
-       emu_video_mode_change(0, 0, 0);\r
-       \r
        if (currentConfig.CPUclock != get_cpu_clock()) {\r
-               FILE *f = fopen("/proc/pandora/cpu_mhz_max", "w");\r
-               if (f != NULL) {\r
-                       fprintf(f, "%d\n", currentConfig.CPUclock);\r
-                       fclose(f);\r
-               }\r
+               char buf[64];\r
+               snprintf(buf, sizeof(buf), "sudo /usr/pandora/scripts/op_cpuspeed.sh %d",\r
+                       currentConfig.CPUclock);\r
+               system(buf);\r
        }\r
 \r
        pemu_sound_start();\r
@@ -434,7 +439,7 @@ const char *plat_get_credits(void)
                "Reesy & FluBBa: DrZ80 core\n"\r
                "MAME devs: YM2612 and SN76496 cores\n"\r
                "Pandora team: Pandora\n"\r
-               "Inder: menu bg\n"\r
+               "Inder, ketchupgun: graphics\n"\r
                "\n"\r
                "special thanks (for docs, ideas):\n"\r
                " Charles MacDonald, Haze,\n"\r