- lprintf("emu_ReadConfig: %s ", cfg);\r
- f = fopen(cfg, "rb");\r
- if (f) {\r
- bread = fread(¤tConfig, 1, sizeof(currentConfig), f);\r
- fclose(f);\r
+ if (ret != 0)\r
+ {\r
+ // fall back to old game specific cfg\r
+ char extbuf[16];\r
+ if (config_slot != 0)\r
+ sprintf(extbuf, ".%i.pbcfg", config_slot);\r
+ else strcpy(extbuf, ".pbcfg");\r
+ romfname_ext(cfg, "cfg/", extbuf);\r
+ f = fopen(cfg, "rb");\r
+ if (!f) {\r
+ romfname_ext(cfg, NULL, ".pbcfg");\r
+ f = fopen(cfg, "rb");\r
+ }\r
+ if (f) {\r
+ int bread;\r
+ fseek(f, 512, SEEK_SET); // skip unused lrom buffer\r
+ bread = fread(¤tConfig, 1, sizeof(currentConfig), f);\r
+ lprintf("emu_ReadConfig: %s %s\n", cfg, bread > 0 ? "(ok)" : "(failed)");\r
+ fclose(f);\r
+ ret = 0;\r
+ }\r
+\r
+ if (ret == 0) {\r
+ PicoOpt = currentConfig.s_PicoOpt;\r
+ PsndRate = currentConfig.s_PsndRate;\r
+ PicoRegionOverride = currentConfig.s_PicoRegion;\r
+ PicoAutoRgnOrder = currentConfig.s_PicoAutoRgnOrder;\r
+ // PicoCDBuffers = currentConfig.s_PicoCDBuffers; // ignore in this case\r
+ }\r
+ }\r
+ else\r
+ {\r
+ lprintf("loaded cfg from sect \"%s\"\n", sect);\r
+ }\r