in_evdev_allow_abs_only = 0;
Config.Xa = Config.Cdda = Config.Sio =
Config.SpuIrq = Config.RCntFix = Config.VSyncWA = 0;
+ Config.CdrReschedule = 0;
pl_rearmed_cbs.frameskip = 0;
pl_rearmed_cbs.gpu_peops.iUseDither = 0;
CE_CONFIG_VAL(RCntFix),
CE_CONFIG_VAL(VSyncWA),
CE_CONFIG_VAL(Cpu),
+ CE_CONFIG_VAL(CdrReschedule),
CE_INTVAL(region),
CE_INTVAL(scaling),
CE_INTVAL(g_layer_x),
// rrrr rggg gggb bbbb
static unsigned short fname2color(const char *fname)
{
- static const char *cdimg_exts[] = { ".bin", ".img", ".iso", ".cue", ".z", ".bz", ".znx", ".pbp" };
+ static const char *cdimg_exts[] = { ".bin", ".img", ".mdf", ".iso", ".cue", ".z", ".bz", ".znx", ".pbp" };
static const char *other_exts[] = { ".ccd", ".toc", ".mds", ".sub", ".table", ".index", ".sbi" };
const char *ext = strrchr(fname, '.');
int i;
static void draw_savestate_bg(int slot);
+static const char *filter_exts[] = {
+ ".mp3", ".MP3", ".txt", ".htm", "html", ".jpg", ".pnd"
+};
+
#define MENU_ALIGN_LEFT
#define menu_init menu_init_common
#include "common/menu.c"
memcpy(g_menubg_ptr, g_menubg_src_ptr, g_menuscreen_w * g_menuscreen_h * 2);
- if ((gpu->ulStatus & 0x800000) || (gpu->ulStatus & 0x200000))
- goto out; // disabled || 24bpp (NYET)
+ if (gpu->ulStatus & 0x800000)
+ goto out; // disabled
x = gpu->ulControl[5] & 0x3ff;
y = (gpu->ulControl[5] >> 10) & 0x1ff;
- s = (u16 *)gpu->psxVRam + y * 1024 + (x & ~3);
+ s = (u16 *)gpu->psxVRam + y * 1024 + (x & ~1);
w = psx_widths[(gpu->ulStatus >> 16) & 7];
tmp = gpu->ulControl[7];
h = ((tmp >> 10) & 0x3ff) - (tmp & 0x3ff);
d = (u16 *)g_menubg_ptr + g_menuscreen_w * y + x;
for (; h > 0; h--, d += g_menuscreen_w, s += 1024)
- bgr555_to_rgb565(d, s, w * 2);
+ if (gpu->ulStatus & 0x200000)
+ bgr888_to_rgb565(d, s, w * 3);
+ else
+ bgr555_to_rgb565(d, s, w * 2);
out:
free(gpu);
// ------------ adv options menu ------------
+static const char *men_cfg_cdrr[] = { "Auto", "ON", "OFF", NULL };
static const char h_cfg_cpul[] = "Shows CPU usage in %";
static const char h_cfg_fl[] = "Frame Limiter keeps the game from running too fast";
static const char h_cfg_xa[] = "Disables XA sound, which can sometimes improve performance";
static const char h_cfg_cdda[] = "Disable CD Audio for a performance boost\n"
"(proper .cue/.bin dump is needed otherwise)";
-static const char h_cfg_sio[] = "This should be enabled for certain memcards/gamepads";
-static const char h_cfg_spuirq[] = "Compatibility tweak; should probably be left off";
-static const char h_cfg_rcnt1[] = "Parasite Eve 2, Vandal Hearts 1/2 Fix";
-static const char h_cfg_rcnt2[] = "InuYasha Sengoku Battle Fix";
+static const char h_cfg_sio[] = "You should not need this, breaks games";
+static const char h_cfg_spuirq[] = "Compatibility tweak; should be left off";
+static const char h_cfg_rcnt1[] = "Parasite Eve 2, Vandal Hearts 1/2 Fix\n"
+ "(timing hack, breaks other games)";
+static const char h_cfg_rcnt2[] = "InuYasha Sengoku Battle Fix\n"
+ "(timing hack, breaks other games)";
+static const char h_cfg_cdrr[] = "Compatibility tweak (fixes Team Buddies, maybe more)\n"
+ "(CD timing hack, breaks FMVs)";
static const char h_cfg_nodrc[] = "Disable dynamic recompiler and use interpreter\n"
"Might be useful to overcome some dynarec bugs";
mee_onoff_h ("SPU IRQ Always Enabled", 0, Config.SpuIrq, 1, h_cfg_spuirq),
mee_onoff_h ("Rootcounter hack", 0, Config.RCntFix, 1, h_cfg_rcnt1),
mee_onoff_h ("Rootcounter hack 2", 0, Config.VSyncWA, 1, h_cfg_rcnt2),
+ mee_enum_h ("CD read reschedule hack",0, Config.CdrReschedule, men_cfg_cdrr, h_cfg_cdrr),
mee_onoff_h ("Disable dynarec (slow!)",0, Config.Cpu, 1, h_cfg_nodrc),
mee_end,
};