X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmain.c;h=aaf1bb0ff9964f0b863ab834e1d542ba7f9ec6ec;hp=13be9acc514e87adad71598b5419732bafb5974e;hb=478216725b77d1c7fd45d972e3c596134633adba;hpb=51f77282d6cb4bc06248395cc1e712ee298910af diff --git a/frontend/main.c b/frontend/main.c index 13be9acc..aaf1bb0f 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -20,17 +20,22 @@ #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" #include "common/plat.h" -#include "common/input.h" #include "common/readpng.h" +#include "common/input.h" +#include "linux/in_evdev.h" + +// don't include debug.h - it breaks ARM build (R1 redefined) +void StartDebugger(); +void StopDebugger(); int ready_to_go; unsigned long gpuDisp; char cfgfile_basename[MAXPATHLEN]; -static char *(*real_getenv)(const char *name); int state_slot; enum sched_action emu_action, emu_action_old; char hud_msg[64]; @@ -117,6 +122,9 @@ static void set_default_paths(void) strcpy(Config.Pad1, "builtin_pad"); strcpy(Config.Pad2, "builtin_pad"); strcpy(Config.Net, "Disabled"); +#if defined(__arm__) && !defined(__ARM_ARCH_7A__) /* XXX */ + strcpy(Config.Gpu, "gpuPCSX4ALL.so"); +#endif Config.PsxAuto = 1; snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR); @@ -149,8 +157,6 @@ void do_emu_action(void) emu_action_old = emu_action; switch (emu_action) { - case SACTION_NONE: - return; case SACTION_ENTER_MENU: menu_loop(); return; @@ -173,9 +179,14 @@ void do_emu_action(void) state_slot = 9; goto do_state_slot; case SACTION_TOGGLE_FSKIP: - pl_rearmed_cbs.frameskip ^= 1; - snprintf(hud_msg, sizeof(hud_msg), "FRAMESKIP %s", - pl_rearmed_cbs.frameskip ? "ON" : "OFF"); + pl_rearmed_cbs.fskip_advice = 0; + pl_rearmed_cbs.frameskip++; + if (pl_rearmed_cbs.frameskip > 1) + pl_rearmed_cbs.frameskip = -1; + snprintf(hud_msg, sizeof(hud_msg), "FRAMESKIP: %s", + pl_rearmed_cbs.frameskip == -1 ? "AUTO" : + pl_rearmed_cbs.frameskip == 0 ? "OFF" : "1" ); + plugin_call_rearmed_cbs(); break; case SACTION_SCREENSHOT: { @@ -196,6 +207,8 @@ void do_emu_action(void) snprintf(hud_msg, sizeof(hud_msg), "SCREENSHOT TAKEN"); break; } + default: + return; } hud_new_msg = 3; return; @@ -204,23 +217,11 @@ do_state_slot: snprintf(hud_msg, sizeof(hud_msg), "STATE SLOT %d [%s]", state_slot, emu_check_state(state_slot) == 0 ? "USED" : "FREE"); hud_new_msg = 3; + printf("* %s\n", hud_msg); } int main(int argc, char *argv[]) { - void *tmp; - - tmp = dlopen("/lib/libdl.so.2", RTLD_LAZY); - if (tmp == NULL) - tmp = dlopen("/lib32/libdl.so.2", RTLD_LAZY); - if (tmp != NULL) - real_getenv = dlsym(tmp, "getenv"); - if (real_getenv == NULL) { - fprintf(stderr, "%s\n", dlerror()); - return 1; - } - dlclose(tmp); - // what is the name of the config file? // it may be redefined by -cfg on the command line strcpy(cfgfile_basename, "pcsx.cfg"); @@ -314,9 +315,12 @@ int main(int argc, char *argv[]) // frontend stuff in_init(); + in_evdev_init(); //in_probe(); plat_init(); menu_init(); // loads config + pl_init(); + plat_rescan_inputs(); if (psxout) Config.PsxOut = 1; @@ -476,7 +480,9 @@ int emu_save_state(int slot) if (ret != 0) return ret; - return SaveState(fname); + ret = SaveState(fname); + printf("* %s \"%s\" [%d]\n", ret == 0 ? "saved" : "failed to save", fname, slot); + return ret; } int emu_load_state(int slot) @@ -642,20 +648,6 @@ void ClosePlugins() { } } -#if 1 -/* this is to avoid having to hack every plugin to stop using $HOME */ -char *getenv(const char *name) -{ - static char ret[8] = "."; - - if (name && strcmp(name, "HOME") == 0 && - ((int)name >> 28) == 0) // HACK: let libs find home - return ret; - - return real_getenv(name); -} -#endif - /* we hook statically linked plugins here */ static const char *builtin_plugins[] = { "builtin_gpu", "builtin_spu", "builtin_cdr", "builtin_pad",