X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmain.c;h=0a9bed65db772670f1431e277678f74fbd1af779;hp=068fe501f639ebaafaf5291206d4b1461f2dd978;hb=d3f3bf09b5b3f1d8b025cc9dbd902eb157aae0b7;hpb=e64dc4c54e96643522dc4b8c205d143c7d9b2f1d diff --git a/frontend/main.c b/frontend/main.c index 068fe501..0a9bed65 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -27,6 +27,10 @@ #include "common/input.h" #include "common/readpng.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]; @@ -94,7 +98,7 @@ void set_cd_image(const char *fname) if (ext && ( strcasecmp(ext, ".z") == 0 || strcasecmp(ext, ".bz") == 0 || - strcasecmp(ext, ".znx") == 0 || strcasecmp(ext, ".pbp") == 0)) { + strcasecmp(ext, ".znx") == 0 /*|| strcasecmp(ext, ".pbp") == 0*/)) { SetIsoFile(NULL); cdrcimg_set_fname(fname); strcpy(Config.Cdr, "builtin_cdrcimg"); @@ -117,11 +121,33 @@ 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); } +static void check_memcards(void) +{ + char buf[MAXPATHLEN]; + FILE *f; + int i; + + for (i = 1; i <= 9; i++) { + snprintf(buf, sizeof(buf), ".%scard%d.mcd", MEMCARD_DIR, i); + + f = fopen(buf, "rb"); + if (f == NULL) { + printf("Creating memcard: %s\n", buf); + CreateMcd(buf); + } + else + fclose(f); + } +} + void do_emu_action(void) { char buf[MAXPATHLEN]; @@ -130,8 +156,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; @@ -154,9 +178,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: { @@ -177,6 +206,8 @@ void do_emu_action(void) snprintf(hud_msg, sizeof(hud_msg), "SCREENSHOT TAKEN"); break; } + default: + return; } hud_new_msg = 3; return; @@ -185,6 +216,7 @@ 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[]) @@ -213,6 +245,7 @@ int main(int argc, char *argv[]) CheckSubDir(); set_default_paths(); + check_memcards(); strcpy(Config.Bios, "HLE"); #ifdef MAEMO @@ -297,6 +330,7 @@ int main(int argc, char *argv[]) //in_probe(); plat_init(); menu_init(); // loads config + pl_init(); if (psxout) Config.PsxOut = 1; @@ -372,7 +406,7 @@ int SysInit() { return -1; } - LoadMcds(Config.Mcd1, Config.Mcd2); /* TODO Do we need to have this here, or in the calling main() function?? */ + LoadMcds(Config.Mcd1, Config.Mcd2); if (Config.Debug) { StartDebugger(); @@ -456,7 +490,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)