X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmain.c;h=9f245409c6ec1324d6c9e6a658c33c3cdac09181;hp=cb37bd7d131d0844f037e69429aaeb18fb1853f2;hb=33716956638b56f994b9aadbd70c9c2265acf048;hpb=7c0f51de89955f60f5c7304ab8c4a8f8e9b7f185 diff --git a/frontend/main.c b/frontend/main.c index cb37bd7d..9f245409 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -64,14 +64,12 @@ void set_cd_image(const char *fname) { const char *ext = NULL; - if (fname != NULL) { - int len = strlen(fname); - ext = fname; - if (len > 2) - ext = fname + len - 2; - } + if (fname != NULL) + ext = strrchr(fname, '.'); - if (ext && strcasecmp(ext, ".z") == 0) { + if (ext && ( + strcasecmp(ext, ".z") == 0 || strcasecmp(ext, ".bz") == 0 || + strcasecmp(ext, ".znx") == 0 || strcasecmp(ext, ".pbp") == 0)) { SetIsoFile(NULL); cdrcimg_set_fname(fname); strcpy(Config.Cdr, "builtin_cdrcimg"); @@ -81,6 +79,24 @@ void set_cd_image(const char *fname) } } +static void set_default_paths(void) +{ + MAKE_PATH(Config.Mcd1, MEMCARD_DIR, "card1.mcd"); + MAKE_PATH(Config.Mcd2, MEMCARD_DIR, "card2.mcd"); + strcpy(Config.BiosDir, "bios"); + + strcpy(Config.PluginsDir, "plugins"); + strcpy(Config.Gpu, "builtin_gpu"); + strcpy(Config.Spu, "builtin_spu"); + strcpy(Config.Cdr, "builtin_cdr"); + strcpy(Config.Pad1, "builtin_pad"); + strcpy(Config.Pad2, "builtin_pad"); + strcpy(Config.Net, "Disabled"); + Config.PsxAuto = 1; + + snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR); +} + int main(int argc, char *argv[]) { char file[MAXPATHLEN] = ""; @@ -164,31 +180,10 @@ int main(int argc, char *argv[]) } memset(&Config, 0, sizeof(PcsxConfig)); - strcpy(Config.Net, "Disabled"); CheckSubDir(); - - MAKE_PATH(Config.Mcd1, MEMCARD_DIR, "card1.mcd"); - MAKE_PATH(Config.Mcd2, MEMCARD_DIR, "card2.mcd"); + set_default_paths(); strcpy(Config.Bios, "HLE"); - strcpy(Config.BiosDir, "bios"); - - strcpy(Config.PluginsDir, "plugins"); - strcpy(Config.Gpu, "builtin_gpu"); - strcpy(Config.Spu, "builtin_spu"); - strcpy(Config.Cdr, "builtin_cdr"); - strcpy(Config.Pad1, "builtin_pad"); - strcpy(Config.Pad2, "builtin_pad"); - Config.PsxAuto = 1; - - snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR); -/* - // switch to plugin dotdir - // this lets plugins work without modification! - gchar *plugin_default_dir = g_build_filename(getenv("HOME"), PLUGINS_DIR, NULL); - chdir(plugin_default_dir); - g_free(plugin_default_dir); -*/ if (cdfile) set_cd_image(cdfile); @@ -203,6 +198,11 @@ int main(int argc, char *argv[]) menu_init(); if (LoadPlugins() == -1) { + // FIXME: this recovery doesn't work, just delete bad config and bail out + // SysMessage("could not load plugins, retrying with defaults\n"); + set_default_paths(); + snprintf(path, sizeof(path), "." PCSX_DOT_DIR "%s", cfgfile_basename); + remove(path); SysMessage("Failed loading plugins!"); return 1; }