#include <errno.h>
#include <dlfcn.h>
#include <zlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
#include "main.h"
#include "menu.h"
#include "../plugins/dfinput/main.h"
#include "revision.h"
+#define REARMED_BIRTHDAY_TIME 1293306830 /* 25 Dec 2010 */
+
#define array_size(x) (sizeof(x) / sizeof(x[0]))
typedef enum
printf("Warning: path truncated: %s\n", buff);
}
-static int emu_check_save_file(int slot)
+static int emu_check_save_file(int slot, int *time)
{
- int ret = emu_check_state(slot);
- return ret == 0 ? 1 : 0;
+ char fname[MAXPATHLEN];
+ struct stat status;
+ int ret;
+
+ ret = emu_check_state(slot);
+ if (ret != 0 || time == NULL)
+ return ret == 0 ? 1 : 0;
+
+ ret = get_state_filename(fname, sizeof(fname), slot);
+ if (ret != 0)
+ return 1;
+
+ ret = stat(fname, &status);
+ if (ret != 0)
+ return 1;
+
+ if (status.st_mtime < REARMED_BIRTHDAY_TIME)
+ return 1; // probably bad rtc like on some Caanoos
+
+ *time = status.st_mtime;
+
+ return 1;
}
static int emu_save_load_game(int load, int unused)
{ #val, sizeof(pl_rearmed_cbs.val), &pl_rearmed_cbs.val }
// 'versioned' var, used when defaults change
+#define CE_CONFIG_STR_V(val, ver) \
+ { #val #ver, 0, Config.val }
+
#define CE_INTVAL_V(val, ver) \
{ #val #ver, sizeof(val), &val }
void *val;
} config_data[] = {
CE_CONFIG_STR(Bios),
- CE_CONFIG_STR(Gpu),
+ CE_CONFIG_STR_V(Gpu, 2),
CE_CONFIG_STR(Spu),
// CE_CONFIG_STR(Cdr),
CE_CONFIG_VAL(Xa),
CE_INTVAL(in_type_sel1),
CE_INTVAL(in_type_sel2),
CE_INTVAL(analog_deadzone),
- CE_INTVAL_V(frameskip, 2),
+ CE_INTVAL_V(frameskip, 3),
CE_INTVAL_P(gpu_peops.iUseDither),
CE_INTVAL_P(gpu_peops.dwActFixes),
+ CE_INTVAL_P(gpu_unai.lineskip),
CE_INTVAL_P(gpu_unai.abe_hack),
CE_INTVAL_P(gpu_unai.no_light),
CE_INTVAL_P(gpu_unai.no_blend),
static menu_entry e_menu_plugin_gpu_unai[] =
{
+ mee_onoff ("Skip every 2nd line", 0, pl_rearmed_cbs.gpu_unai.lineskip, 1),
mee_onoff ("Abe's Odyssey hack", 0, pl_rearmed_cbs.gpu_unai.abe_hack, 1),
mee_onoff ("Disable lighting", 0, pl_rearmed_cbs.gpu_unai.no_light, 1),
mee_onoff ("Disable blending", 0, pl_rearmed_cbs.gpu_unai.no_blend, 1),
}
static const char *men_region[] = { "Auto", "NTSC", "PAL", NULL };
-static const char *men_frameskip[] = { "Auto", "Off", "1", NULL };
+static const char *men_frameskip[] = { "Auto", "Off", "1", "2", "3", NULL };
/*
static const char *men_confirm_save[] = { "OFF", "writes", "loads", "both", NULL };
static const char h_confirm_save[] = "Ask for confirmation when overwriting save,\n"
"(C) 1999-2003 PCSX Team\n"
"(C) 2005-2009 PCSX-df Team\n"
"(C) 2009-2011 PCSX-Reloaded Team\n\n"
- "GPU and SPU code by Pete Bernert\n"
- " and the P.E.Op.S. team\n"
"ARM recompiler (C) 2009-2011 Ari64\n"
- "PCSX4ALL plugins by PCSX4ALL team\n"
+#ifdef __ARM_NEON__
+ "ARM NEON GPU (c) 2011 Exophase\n"
+#endif
+ "PEOpS GPU and SPU by Pete Bernert\n"
+ " and the P.E.Op.S. team\n"
+ "PCSX4ALL plugin by PCSX4ALL team\n"
" Chui, Franxis, Unai\n\n"
"integration, optimization and\n"
" frontend (C) 2010-2011 notaz\n";