for the change of this option to take effect.\r
\r
#endif\r
+@@1. "Disable idle loop patching"\r
+Idle loop patching is used to improve performance, but may cause compatibility\r
+problems in some rare cases. Try disabling this if your game has problems.\r
+\r
\r
Sega/Mega CD options \r
--------------------\r
@@3. "Set to unscaled centered"\r
Adjust the resizing options to set game image to it's original size.\r
\r
+@@3. "Set to 4:3 scaled"\r
+Scale the image up, but keep 4:3 aspect, by adding black borders.\r
+\r
@@3. "Set to fullscreen"\r
Adjust the resizing options to make the game image fullscreen.\r
\r
\r
Changelog\r
---------\r
+1.51b\r
+ * Fixed a crash when uncompressed savestate is loaded.\r
+ * Fixed an idle loop detection related hanging problem.\r
+ * PSP: fixed another palette related regression.\r
+\r
1.51a\r
* Fixed a sync problem between main and sub 68k. Should fix the hanging\r
problem for some games.\r
#elif defined(__GIZ__)
-// TODO
-//#include "../gizmondo/giz.h"
-#define SCREEN_WIDTH 321
-#define SCREEN_BUFFER menu_screen
-extern unsigned char *menu_screen;
+#include "../gizmondo/giz.h"
+
+#define BTN_NORTH BTN_STOP
+#define BTN_SOUTH BTN_PLAY
+#define BTN_WEST BTN_REW
+#define BTN_EAST BTN_FWD
+
+unsigned long wait_for_input(unsigned int interesting);
+void menu_draw_begin(int use_bgbuff);
+void menu_darken_bg(void *dst, const void *src, int pixels, int darker);
+void menu_draw_end(void);
+
+#define SCREEN_WIDTH 321
+#define SCREEN_HEIGHT 240
+#define SCREEN_BUFFER ((giz_screen != NULL) ? giz_screen : menu_screen)
+extern void *menu_screen;
+extern void *giz_screen;
+
+#define read_buttons(which) \
+ wait_for_input(which)
+#define read_buttons_async(which) 0
+#define menu_draw_begin() \
+ menu_draw_begin(1)
+#define clear_screen() \
+ memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2)
+#define darken_screen() \
+ menu_darken_bg(menu_screen, menu_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0)
// ------------------------------------
ret = custom_read(me, var, val);
}
}
- if (!ret) lprintf("config_readsect: unhandled var: %s\n", var);
+ if (!ret) lprintf("config_readsect: unhandled var: \"%s\"\n", var);
}
@ vim:filetype=armasm
+.global cache_flush_d_inval_i
+
+cache_flush_d_inval_i:
+ mov r2, #0x0 @ must be 0 ???
+ swi 0x9f0002
+ bx lr
+
+
.global clut_line @ void *dest, void *src, unsigned short *pal, int pixels_mask
clut_line:
void emu_prepareDefaultConfig(void)\r
{\r
memset(&defaultConfig, 0, sizeof(defaultConfig));\r
- defaultConfig.EmuOpt = 0x9f | 0x00700; // | <- ram_tmng, confirm_save, cd_leds\r
+ defaultConfig.EmuOpt = 0x8f | 0x00600; // | <- confirm_save, cd_leds\r
defaultConfig.s_PicoOpt = 0x0f | POPT_EXT_FM|POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC;\r
defaultConfig.s_PicoOpt |= POPT_ACC_SPRITES|POPT_EN_MCD_GFX;\r
defaultConfig.s_PicoOpt &= ~POPT_EN_SVP_DRC; // crashes :(\r
+ defaultConfig.EmuOpt &= ~8; // no save gzip\r
defaultConfig.s_PsndRate = 44100;\r
- defaultConfig.s_PicoRegion = 0; // auto\r
+ defaultConfig.s_PicoRegion = 0;\r
defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP\r
defaultConfig.s_PicoCDBuffers = 0;\r
defaultConfig.Frameskip = 0;\r
}\r
bench_fps += frames_shown;\r
sprintf(fpsbuff, "%3i/%3i/%3i", frames_shown, bench_fps_s, (bf[0]+bf[1]+bf[2]+bf[3])>>2);\r
+ printf("%s\n", fpsbuff);\r
#else\r
if (currentConfig.EmuOpt & 2) {\r
sprintf(fpsbuff, "%3i/%3i", frames_shown, frames_done);\r