#include "plugin_lib.h"
#include "pcnt.h"
#include "menu.h"
+#include "plat.h"
#include "../libpcsxcore/misc.h"
#include "../libpcsxcore/new_dynarec/new_dynarec.h"
#include "../plugins/cdrcimg/cdrcimg.h"
void StartDebugger();
void StopDebugger();
+// sound plugin
+extern int iUseReverb;
+extern int iUseInterpolation;
+extern int iXAPitch;
+extern int iVolume;
+
int ready_to_go;
unsigned long gpuDisp;
char cfgfile_basename[MAXPATHLEN];
strcpy(Config.Pad2, "builtin_pad");
strcpy(Config.Net, "Disabled");
#if defined(__arm__) && !defined(__ARM_ARCH_7A__) /* XXX */
- strcpy(Config.Gpu, "gpuPCSX4ALL.so");
+ strcpy(Config.Gpu, "gpu_unai.so");
#endif
- Config.PsxAuto = 1;
snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR);
}
+void emu_set_default_config(void)
+{
+ // try to set sane config on which most games work
+ Config.Xa = Config.Cdda = Config.Sio =
+ Config.SpuIrq = Config.RCntFix = Config.VSyncWA = 0;
+ Config.CdrReschedule = 0;
+ Config.PsxAuto = 1;
+
+ pl_rearmed_cbs.gpu_neon.allow_interlace = 2; // auto
+ pl_rearmed_cbs.gpu_peops.iUseDither = 0;
+ pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7;
+ pl_rearmed_cbs.gpu_unai.abe_hack =
+ pl_rearmed_cbs.gpu_unai.no_light =
+ pl_rearmed_cbs.gpu_unai.no_blend = 0;
+ memset(&pl_rearmed_cbs.gpu_peopsgl, 0, sizeof(pl_rearmed_cbs.gpu_peopsgl));
+ pl_rearmed_cbs.gpu_peopsgl.iVRamSize = 64;
+ pl_rearmed_cbs.gpu_peopsgl.iTexGarbageCollection = 1;
+
+ iUseReverb = 2;
+ iUseInterpolation = 1;
+ iXAPitch = 0;
+ iVolume = 768;
+#ifndef __ARM_ARCH_7A__ /* XXX */
+ iUseReverb = 0;
+ iUseInterpolation = 0;
+#endif
+ new_dynarec_hacks = 0;
+ cycle_multiplier = 200;
+
+ in_type1 = PSE_PAD_TYPE_STANDARD;
+ in_type2 = PSE_PAD_TYPE_STANDARD;
+}
+
static void check_memcards(void)
{
char buf[MAXPATHLEN];
snprintf(hud_msg, sizeof(hud_msg), "SCREENSHOT TAKEN");
break;
}
+ case SACTION_VOLUME_UP:
+ case SACTION_VOLUME_DOWN:
+ plat_step_volume(emu_action == SACTION_VOLUME_UP);
+ return;
+ case SACTION_MINIMIZE:
+ plat_minimize();
+ return;
default:
return;
}
CheckSubDir();
set_default_paths();
+ emu_set_default_config();
check_memcards();
strcpy(Config.Bios, "HLE");
return 1;
// frontend stuff
+ // init input but leave probing to platform code,
+ // they add input drivers and may need to modify them after probe
in_init();
- in_evdev_init();
- //in_probe();
+ pl_init();
plat_init();
menu_init(); // loads config
- pl_init();
if (psxout)
Config.PsxOut = 1;
void *real_lace = GPU_updateLace;
GPU_updateLace = dummy_lace;
+ // reset can run code, timing must be set
+ pl_timing_prepare(Config.PsxType);
+
EmuReset();
// hmh core forgets this
return ret;
ret = SaveState(fname);
+#ifndef __ARM_ARCH_7A__ /* XXX */
+ sync();
+#endif
printf("* %s \"%s\" [%d]\n", ret == 0 ? "saved" : "failed to save", fname, slot);
return ret;
}
#if defined(__x86_64__) || defined(__i386__)
// convenience hack
- char name[MAXPATHLEN];
- snprintf(name, sizeof(name), "%s.x86", lib);
- lib = name;
+ if (strstr(lib, ".x86") == NULL) {
+ char name[MAXPATHLEN];
+ snprintf(name, sizeof(name), "%s.x86_64", lib);
+ lib = name;
+ }
#endif
ret = dlopen(lib, RTLD_NOW);