#include <unistd.h>
#endif
#include "config.h"
+#include "plat.h"
#include "input.h"
#include "lprintf.h"
#include "emu.h"
#include <pico/pico.h>
+// always output DOS endlines
+#ifdef _WIN32
+#define NL "\n"
+#else
#define NL "\r\n"
+#endif
static int seek_sect(FILE *f, const char *section)
{
case MA_OPT2_GAMMA: return defaultConfig.gamma;
case MA_OPT_FRAMESKIP: return defaultConfig.Frameskip;
case MA_OPT_CPU_CLOCKS: return defaultConfig.CPUclock;
+ case MA_OPT_RENDERER: return defaultConfig.renderer;
case MA_OPT_SAVE_SLOT:
default:
case MA_OPT_CONFIRM_STATES:
return !((defaultConfig.EmuOpt ^ currentConfig.EmuOpt) &
(EOPT_CONFIRM_LOAD|EOPT_CONFIRM_SAVE)) == 0;
- case MA_OPT_RENDERER:
- return ((defaultConfig.s_PicoOpt ^ PicoOpt) & POPT_ALT_RENDERER) == 0 &&
- ((defaultConfig.EmuOpt ^ currentConfig.EmuOpt) & EOPT_16BPP) == 0;
case MA_CDOPT_READAHEAD:
return defaultConfig.s_PicoCDBuffers == PicoCDBuffers;
default:break;
static int custom_read(menu_entry *me, const char *var, const char *val)
{
char *tmp;
- int tmpi;
+ int i;
switch (me->id)
{
case MA_OPT_RENDERER:
- if (strcasecmp(var, "Renderer") != 0) return 0;
- if (strcasecmp(val, "8bit fast") == 0 || strcasecmp(val, "fast") == 0) {
- PicoOpt |= POPT_ALT_RENDERER;
- }
- else if (strcasecmp(val, "16bit accurate") == 0 || strcasecmp(val, "accurate") == 0) {
- PicoOpt &= ~POPT_ALT_RENDERER;
- currentConfig.EmuOpt |= 0x80;
- }
- else if (strcasecmp(val, "8bit accurate") == 0) {
- PicoOpt &= ~POPT_ALT_RENDERER;
- currentConfig.EmuOpt &= ~0x80;
- }
- else
+ if (strcasecmp(var, "Renderer") != 0 || renderer_names == NULL)
return 0;
- return 1;
+
+ for (i = 0; renderer_names[i] != NULL; i++) {
+ if (strcasecmp(val, renderer_names[i]) == 0) {
+ currentConfig.renderer = i;
+ return 1;
+ }
+ }
+ return 0;
case MA_OPT_SCALING:
#ifdef __GP2X__
case MA_OPT2_SQUIDGEHACK:
if (strcasecmp(var, "Squidgehack") != 0) return 0;
- tmpi = atoi(val);
- if (tmpi) *(int *)me->var |= me->mask;
- else *(int *)me->var &= ~me->mask;
+ i = atoi(val);
+ if (i) *(int *)me->var |= me->mask;
+ else *(int *)me->var &= ~me->mask;
return 1;
case MA_CDOPT_READAHEAD: