+\r
+ if (((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_VSYNC) || Pico.m.pal != pal_old) {\r
+ if ((currentConfig.EmuOpt & EOPT_VSYNC) || soc == SOCID_POLLUX)\r
+ set_lcd_custom_rate(Pico.m.pal);\r
+ else if (EmuOpt_old & EOPT_VSYNC)\r
+ unset_lcd_custom_rate();\r
+ }\r
+\r
+ if (gp2x_dev_id == GP2X_DEV_CAANOO)\r
+ in_set_config_int(in_name_to_id("evdev:pollux-analog"), IN_CFG_ABS_DEAD_ZONE,\r
+ currentConfig.analog_deadzone);\r
+\r
+ if ((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_MMUHACK)\r
+ gp2x_make_fb_bufferable(currentConfig.EmuOpt & EOPT_MMUHACK);\r
+\r
+ EmuOpt_old = currentConfig.EmuOpt;\r
+ pal_old = Pico.m.pal;\r
+\r
+ // make sure we are in correct mode\r
+ change_renderer(0);\r
+ vid_reset_mode();\r
+\r
+ // dirty buffers better go now than during gameplay\r
+ sync();\r
+ sleep(0);\r
+\r
+ pemu_sound_start();\r
+}\r
+\r
+void pemu_loop_end(void)\r
+{\r
+ pemu_sound_stop();\r
+\r
+ /* do one more frame for menu bg */\r
+ pemu_forced_frame(0, 1);\r
+}\r
+\r
+const char *plat_get_credits(void)\r
+{\r
+ return "PicoDrive v" VERSION " (c) notaz, 2006-2010\n\n\n"\r
+ "Credits:\n"\r
+ "fDave: Cyclone 68000 core,\n"\r
+ " base code of PicoDrive\n"\r
+ "Reesy & FluBBa: DrZ80 core\n"\r
+ "MAME devs: YM2612 and SN76496 cores\n"\r
+ "rlyeh and others: minimal SDK\n"\r
+ "Squidge: mmuhack\n"\r
+ "Dzz: ARM940 sample\n"\r
+ "GnoStiC / Puck2099: USB joy code\n"\r
+ "craigix: GP2X hardware\n"\r
+ "ketchupgun: skin design\n"\r
+ "\n"\r
+ "special thanks (for docs, ideas):\n"\r
+ " Charles MacDonald, Haze,\n"\r
+ " Stephane Dallongeville,\n"\r
+ " Lordus, Exophase, Rokas,\n"\r
+ " Nemesis, Tasco Deluxe";\r