static int warned_about_bios, region, in_type_sel;
int g_opts;
-// from softgpu plugin
-extern int iUseDither;
-extern int UseFrameSkip;
-extern uint32_t dwActFixes;
-extern float fFrameRateHz;
-extern int dwFrameRateTicks;
-
// sound plugin
extern int iUseReverb;
extern int iUseInterpolation;
pl_frame_interval = Config.PsxType ? 20000 : 16667;
// used by P.E.Op.S. frameskip code
- fFrameRateHz = Config.PsxType ? 50.0f : 59.94f;
- dwFrameRateTicks = (100000*100 / (unsigned long)(fFrameRateHz*100));
+ pl_rearmed_cbs.gpu_peops.fFrameRateHz = Config.PsxType ? 50.0f : 59.94f;
+ pl_rearmed_cbs.gpu_peops.dwFrameRateTicks =
+ (100000*100 / (unsigned long)(pl_rearmed_cbs.gpu_peops.fFrameRateHz*100));
}
static void menu_set_defconfig(void)
Config.Xa = Config.Cdda = Config.Sio =
Config.SpuIrq = Config.RCntFix = Config.VSyncWA = 0;
- iUseDither = 0;
- UseFrameSkip = 1;
- dwActFixes = 1<<7;
+ pl_rearmed_cbs.frameskip = 0;
+ pl_rearmed_cbs.gpu_peops.iUseDither = 0;
+ pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7;
iUseReverb = 2;
iUseInterpolation = 1;
#define CE_INTVAL(val) \
{ #val, sizeof(val), &val }
+#define CE_INTVAL_P(val) \
+ { #val, sizeof(pl_rearmed_cbs.val), &pl_rearmed_cbs.val }
+
// 'versioned' var, used when defaults change
#define CE_INTVAL_V(val, ver) \
{ #val #ver, sizeof(val), &val }
CE_INTVAL(cpu_clock),
CE_INTVAL(g_opts),
CE_INTVAL(in_type_sel),
- CE_INTVAL(iUseDither),
- CE_INTVAL(UseFrameSkip),
- CE_INTVAL(dwActFixes),
+ CE_INTVAL_P(frameskip),
+ CE_INTVAL_P(gpu_peops.iUseDither),
+ CE_INTVAL_P(gpu_peops.dwActFixes),
CE_INTVAL(iUseReverb),
CE_INTVAL(iXAPitch),
CE_INTVAL_V(iUseInterpolation, 2),
// 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);
static menu_entry e_menu_plugin_gpu[] =
{
- mee_enum ("Dithering", 0, iUseDither, men_gpu_dithering),
- mee_onoff_h ("Odd/even bit hack", 0, dwActFixes, 1<<0, h_gpu_0),
- mee_onoff_h ("Expand screen width", 0, dwActFixes, 1<<1, h_gpu_1),
- mee_onoff_h ("Ignore brightness color", 0, dwActFixes, 1<<2, h_gpu_2),
- mee_onoff_h ("Disable coordinate check", 0, dwActFixes, 1<<3, h_gpu_3),
- mee_onoff_h ("Lazy screen update", 0, dwActFixes, 1<<6, h_gpu_6),
- mee_onoff_h ("Old frame skipping", 0, dwActFixes, 1<<7, h_gpu_7),
- mee_onoff_h ("Repeated flat tex triangles ",0,dwActFixes, 1<<8, h_gpu_8),
- mee_onoff_h ("Draw quads with triangles", 0, dwActFixes, 1<<9, h_gpu_9),
- mee_onoff_h ("Fake 'gpu busy' states", 0, dwActFixes, 1<<10, h_gpu_10),
+ mee_enum ("Dithering", 0, pl_rearmed_cbs.gpu_peops.iUseDither, men_gpu_dithering),
+ mee_onoff_h ("Odd/even bit hack", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<0, h_gpu_0),
+ mee_onoff_h ("Expand screen width", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<1, h_gpu_1),
+ mee_onoff_h ("Ignore brightness color", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<2, h_gpu_2),
+ mee_onoff_h ("Disable coordinate check", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<3, h_gpu_3),
+ mee_onoff_h ("Lazy screen update", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<6, h_gpu_6),
+ mee_onoff_h ("Old frame skipping", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<7, h_gpu_7),
+ mee_onoff_h ("Repeated flat tex triangles ",0,pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<8, h_gpu_8),
+ mee_onoff_h ("Draw quads with triangles", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<9, h_gpu_9),
+ mee_onoff_h ("Fake 'gpu busy' states", 0, pl_rearmed_cbs.gpu_peops.dwActFixes, 1<<10, h_gpu_10),
mee_end,
};
"the game for change to take effect";
static const char h_plugin_xpu[] = "Must save config and reload the game\n"
"for plugin change to take effect";
-static const char h_gpu[] = "Configure built-in P.E.Op.S. SoftGL Driver V1.17";
+static const char h_gpu[] = "Configure P.E.Op.S. SoftGL Driver V1.17";
static const char h_spu[] = "Configure built-in P.E.Op.S. Sound Driver V1.7";
static menu_entry e_menu_plugin_options[] =
mee_enum_h ("BIOS", 0, bios_sel, bioses, h_bios),
mee_enum_h ("GPU plugin", 0, gpu_plugsel, gpu_plugins, h_plugin_xpu),
mee_enum_h ("SPU plugin", 0, spu_plugsel, spu_plugins, h_plugin_xpu),
- mee_handler_h ("Configure built-in GPU plugin", menu_loop_plugin_gpu, h_gpu),
+ mee_handler_h ("Configure gpu_peops plugin", menu_loop_plugin_gpu, h_gpu),
mee_handler_h ("Configure built-in SPU plugin", menu_loop_plugin_spu, h_spu),
mee_end,
};
{
// mee_range ("Save slot", 0, state_slot, 0, 9),
// mee_enum_h ("Confirm savestate", 0, dummy, men_confirm_save, h_confirm_save),
- mee_onoff_h ("Frameskip", 0, UseFrameSkip, 1, h_frameskip),
+ mee_onoff_h ("Frameskip", 0, pl_rearmed_cbs.frameskip, 1, h_frameskip),
mee_onoff ("Show FPS", 0, g_opts, OPT_SHOWFPS),
mee_enum ("Region", 0, region, men_region),
mee_range ("CPU clock", MA_OPT_CPU_CLOCKS, cpu_clock, 20, 5000),
apply_filter(filter);
apply_cpu_clock();
+ // push config to GPU plugin
+ plugin_call_rearmed_cbs();
+
if (GPU_open != NULL) {
int ret = GPU_open(&gpuDisp, "PCSX", NULL);
if (ret)