-static void custom_write(FILE *f, const menu_entry *me, int no_def)
-{
- char *str, str24[24];
-
- switch (me->id)
- {
- case MA_OPT_RENDERER:
- if (no_def && !((defaultConfig.s_PicoOpt^PicoOpt)&POPT_ALT_RENDERER) &&
- !((defaultConfig.EmuOpt^currentConfig.EmuOpt)&0x80)) return;
- if (PicoOpt&POPT_ALT_RENDERER)
- str =
-#ifndef PSP
- "8bit "
-#endif
- "fast";
- else if (currentConfig.EmuOpt&0x80)
- str =
-#ifndef PSP
- "16bit "
-#endif
- "accurate";
- else
- str = "8bit accurate";
- fprintf(f, "Renderer = %s", str);
- break;
-
- case MA_OPT_SCALING:
- if (no_def && defaultConfig.scaling == currentConfig.scaling) return;
-#ifdef __GP2X__
- switch (currentConfig.scaling) {
- default: str = "OFF"; break;
- case 1: str = "hw horizontal"; break;
- case 2: str = "hw horiz. + vert."; break;
- case 3: str = "sw horizontal"; break;
- }
- fprintf(f, "Scaling = %s", str);
-#endif
- break;
- case MA_OPT_FRAMESKIP:
- if (no_def && defaultConfig.Frameskip == currentConfig.Frameskip) return;
- if (currentConfig.Frameskip < 0)
- strcpy(str24, "Auto");
- else sprintf(str24, "%i", currentConfig.Frameskip);
- fprintf(f, "Frameskip = %s", str24);
- break;
- case MA_OPT_SOUND_QUALITY:
- if (no_def && !((defaultConfig.s_PicoOpt^PicoOpt)&POPT_EN_STEREO) &&
- defaultConfig.s_PsndRate == PsndRate) return;
- str = (PicoOpt&POPT_EN_STEREO)?"stereo":"mono";
- fprintf(f, "Sound Quality = %i %s", PsndRate, str);
- break;
- case MA_OPT_REGION:
- if (no_def && defaultConfig.s_PicoRegion == PicoRegionOverride &&
- defaultConfig.s_PicoAutoRgnOrder == PicoAutoRgnOrder) return;
- strncpy(str24, me_region_name(PicoRegionOverride, PicoAutoRgnOrder), 23); str24[23] = 0;
- fprintf(f, "Region = %s", mystrip(str24));
- break;
- case MA_OPT_CONFIRM_STATES:
- if (no_def && !((defaultConfig.EmuOpt^currentConfig.EmuOpt)&(5<<9))) return;
- switch ((currentConfig.EmuOpt >> 9) & 5) {
- default: str = "OFF"; break;
- case 1: str = "writes"; break;
- case 4: str = "loads"; break;
- case 5: str = "both"; break;
- }
- fprintf(f, "Confirm savestate = %s", str);
- break;
- case MA_OPT_CPU_CLOCKS:
- if (no_def && defaultConfig.CPUclock == currentConfig.CPUclock) return;
-#ifdef __GP2X__
- fprintf(f, "GP2X CPU clocks = %i", currentConfig.CPUclock);
-#elif defined(PSP)
- fprintf(f, "PSP CPU clock = %i", currentConfig.CPUclock);
-#endif
- break;
- case MA_OPT2_GAMMA:
- if (no_def && defaultConfig.gamma == currentConfig.gamma) return;
- fprintf(f, "Gamma correction = %.3f", (double)currentConfig.gamma / 100.0);
- break;
- case MA_OPT2_SQUIDGEHACK:
- if (no_def && !((defaultConfig.EmuOpt^currentConfig.EmuOpt)&0x0010)) return;
- fprintf(f, "Squidgehack = %i", (currentConfig.EmuOpt&0x0010)>>4);
- break;
- case MA_CDOPT_READAHEAD:
- if (no_def && defaultConfig.s_PicoCDBuffers == PicoCDBuffers) return;
- sprintf(str24, "%i", PicoCDBuffers * 2);
- fprintf(f, "ReadAhead buffer = %s", str24);
- break;
- /* PSP */
- case MA_OPT3_SCALE:
- if (no_def && defaultConfig.scale == currentConfig.scale) return;
- fprintf(f, "Scale factor = %.2f", currentConfig.scale);
- break;
- case MA_OPT3_HSCALE32:
- if (no_def && defaultConfig.hscale32 == currentConfig.hscale32) return;
- fprintf(f, "Hor. scale (for low res. games) = %.2f", currentConfig.hscale32);
- break;
- case MA_OPT3_HSCALE40:
- if (no_def && defaultConfig.hscale40 == currentConfig.hscale40) return;
- fprintf(f, "Hor. scale (for hi res. games) = %.2f", currentConfig.hscale40);
- break;
- case MA_OPT3_FILTERING:
- if (no_def && defaultConfig.scaling == currentConfig.scaling) return;
- fprintf(f, "Bilinear filtering = %i", currentConfig.scaling);
- break;
- case MA_OPT3_GAMMAA:
- if (no_def && defaultConfig.gamma == currentConfig.gamma) return;
- fprintf(f, "Gamma adjustment = %i", currentConfig.gamma);
- break;
- case MA_OPT3_BLACKLVL:
- if (no_def && defaultConfig.gamma2 == currentConfig.gamma2) return;
- fprintf(f, "Black level = %i", currentConfig.gamma2);
- break;
- case MA_OPT3_VSYNC:
- if (no_def && (defaultConfig.EmuOpt&0x12000) == (currentConfig.gamma2&0x12000)) return;
- strcpy(str24, "never");
- if (currentConfig.EmuOpt & 0x2000)
- strcpy(str24, (currentConfig.EmuOpt & 0x10000) ? "sometimes" : "always");
- fprintf(f, "Wait for vsync = %s", str24);
- break;
-
- default:
- lprintf("unhandled custom_write: %i\n", me->id);
- return;
- }
- fprintf(f, NL);
-}
-
-
-#if PLAT_HAVE_JOY
-static const char *joyKeyNames[32] =
-{
- "UP", "DOWN", "LEFT", "RIGHT", "b1", "b2", "b3", "b4",
- "b5", "b6", "b7", "b8", "b9", "b10", "b11", "b12",
- "b13", "b14", "b15", "b16", "b17", "b19", "b19", "b20",
- "b21", "b22", "b23", "b24", "b25", "b26", "b27", "b28"
-};
-#endif
-