diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index c5cffb12fc..4f3aa9f062 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -90,7 +90,9 @@ static void frontend_psp_get_environment_settings(int *argc, char *argv[], strlcpy(g_defaults.dir.port, eboot_path, sizeof(g_defaults.dir.port)); #else strlcpy(eboot_path, argv[0], sizeof(eboot_path)); - strlcpy(user_path, "ms0:/psp/retroarch/", sizeof(user_path)); + /* for PSP, use uppercase directories, and no trailing slashes + otherwise mkdir fails */ + strlcpy(user_path, "ms0:/PSP/RETROARCH", sizeof(user_path)); fill_pathname_basedir(g_defaults.dir.port, argv[0], sizeof(g_defaults.dir.port)); #endif RARCH_LOG("port dir: [%s]\n", g_defaults.dir.port); @@ -99,82 +101,82 @@ static void frontend_psp_get_environment_settings(int *argc, char *argv[], /* bundle data*/ fill_pathname_join(g_defaults.dir.assets, "app0:/", "assets", sizeof(g_defaults.dir.assets)); - fill_pathname_join(g_defaults.dir.core_assets, g_defaults.dir.port, - "downloads", sizeof(g_defaults.dir.core_assets)); fill_pathname_join(g_defaults.dir.core, g_defaults.dir.port, "cores", sizeof(g_defaults.dir.core)); fill_pathname_join(g_defaults.dir.core_info, g_defaults.dir.core, "info", sizeof(g_defaults.dir.core_info)); /* user data*/ - fill_pathname_join(g_defaults.dir.savestate, g_defaults.dir.core, - "savestates", sizeof(g_defaults.dir.savestate)); - fill_pathname_join(g_defaults.dir.sram, g_defaults.dir.core, - "savefiles", sizeof(g_defaults.dir.sram)); - fill_pathname_join(g_defaults.dir.system, g_defaults.dir.core, - "system", sizeof(g_defaults.dir.system)); - fill_pathname_join(g_defaults.dir.playlist, g_defaults.dir.core, - "playlists", sizeof(g_defaults.dir.playlist)); fill_pathname_join(g_defaults.dir.cheats, g_defaults.dir.port, "cheats", sizeof(g_defaults.dir.cheats)); fill_pathname_join(g_defaults.dir.menu_config, g_defaults.dir.port, "config", sizeof(g_defaults.dir.menu_config)); + fill_pathname_join(g_defaults.dir.core_assets, g_defaults.dir.port, + "downloads", sizeof(g_defaults.dir.core_assets)); + fill_pathname_join(g_defaults.dir.playlist, g_defaults.dir.port, + "playlists", sizeof(g_defaults.dir.playlist)); fill_pathname_join(g_defaults.dir.remap, g_defaults.dir.port, "remaps", sizeof(g_defaults.dir.remap)); -#else - /* bundle data */ - fill_pathname_join(g_defaults.dir.core, g_defaults.dir.port, - "cores", sizeof(g_defaults.dir.core)); - fill_pathname_join(g_defaults.dir.core_info, g_defaults.dir.port, - "info", sizeof(g_defaults.dir.core_info)); - fill_pathname_join(g_defaults.dir.cursor, g_defaults.dir.port, - "database/cursors", sizeof(g_defaults.dir.cursor)); - fill_pathname_join(g_defaults.dir.database, g_defaults.dir.port, - "database/rdb", sizeof(g_defaults.dir.database)); - /* user data */ - fill_pathname_join(g_defaults.dir.assets, g_defaults.dir.port, - "media", sizeof(g_defaults.dir.assets)); - fill_pathname_join(g_defaults.dir.savestate, user_path, - "states", sizeof(g_defaults.dir.savestate)); - fill_pathname_join(g_defaults.dir.sram, user_path, - "saves", sizeof(g_defaults.dir.sram)); - fill_pathname_join(g_defaults.dir.system, user_path, + fill_pathname_join(g_defaults.dir.sram, g_defaults.dir.port, + "savefiles", sizeof(g_defaults.dir.sram)); + fill_pathname_join(g_defaults.dir.savestate, g_defaults.dir.port, + "savestates", sizeof(g_defaults.dir.savestate)); + fill_pathname_join(g_defaults.dir.system, g_defaults.dir.port, "system", sizeof(g_defaults.dir.system)); - fill_pathname_join(g_defaults.dir.playlist, user_path, - "playlists", sizeof(g_defaults.dir.playlist)); - fill_pathname_join(g_defaults.dir.cheats, user_path, - "cheats", sizeof(g_defaults.dir.cheats)); - fill_pathname_join(g_defaults.dir.menu_config, user_path, - "config", sizeof(g_defaults.dir.menu_config)); - fill_pathname_join(g_defaults.dir.remap, user_path, - "remaps", sizeof(g_defaults.dir.remap)); - fill_pathname_join(g_defaults.dir.core_assets, user_path, - "downloads", sizeof(g_defaults.dir.core_assets)); - fill_pathname_join(g_defaults.dir.cache, user_path, + fill_pathname_join(g_defaults.dir.cache, g_defaults.dir.port, "temp", sizeof(g_defaults.dir.cache)); - fill_pathname_join(g_defaults.dir.screenshot, user_path, - "screenshots", sizeof(g_defaults.dir.screenshot)); - - path_mkdir(user_path); - path_mkdir(g_defaults.dir.assets); - path_mkdir(g_defaults.dir.savestate); - path_mkdir(g_defaults.dir.sram); - path_mkdir(g_defaults.dir.system); - path_mkdir(g_defaults.dir.playlist); - path_mkdir(g_defaults.dir.cheats); - path_mkdir(g_defaults.dir.menu_config); - path_mkdir(g_defaults.dir.remap); - path_mkdir(g_defaults.dir.core_assets); - path_mkdir(g_defaults.dir.cache); - path_mkdir(g_defaults.dir.screenshot); -#endif + fill_pathname_join(g_defaults.dir.overlay, g_defaults.dir.port, + "overlays", sizeof(g_defaults.dir.overlay)); strlcpy(g_defaults.dir.content_history, g_defaults.dir.port, sizeof(g_defaults.dir.content_history)); fill_pathname_join(g_defaults.path.config, g_defaults.dir.port, file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); -#ifdef VITA - fill_pathname_join(g_defaults.dir.overlay, g_defaults.dir.core, - "overlays", sizeof(g_defaults.dir.overlay)); +#else + path_mkdir(user_path); + /* bundle data */ + fill_pathname_join(g_defaults.dir.assets, g_defaults.dir.port, + "ASSETS", sizeof(g_defaults.dir.assets)); + fill_pathname_join(g_defaults.dir.core, g_defaults.dir.port, + "CORES", sizeof(g_defaults.dir.core)); + fill_pathname_join(g_defaults.dir.core_info, g_defaults.dir.port, + "INFO", sizeof(g_defaults.dir.core_info)); + /* user data */ + fill_pathname_join(g_defaults.dir.cheats, user_path, + "CHEATS", sizeof(g_defaults.dir.cheats)); + fill_pathname_join(g_defaults.dir.menu_config, user_path, + "CONFIG", sizeof(g_defaults.dir.menu_config)); + fill_pathname_join(g_defaults.dir.core_assets, user_path, + "DOWNLOADS", sizeof(g_defaults.dir.core_assets)); + fill_pathname_join(g_defaults.dir.playlist, user_path, + "PLAYLISTS", sizeof(g_defaults.dir.playlist)); + fill_pathname_join(g_defaults.dir.remap, user_path, + "REMAPS", sizeof(g_defaults.dir.remap)); + fill_pathname_join(g_defaults.dir.sram, user_path, + "SAVEFILES", sizeof(g_defaults.dir.sram)); + fill_pathname_join(g_defaults.dir.savestate, user_path, + "SAVESTATES", sizeof(g_defaults.dir.savestate)); + fill_pathname_join(g_defaults.dir.screenshot, user_path, + "SCREENSHOTS", sizeof(g_defaults.dir.screenshot)); + fill_pathname_join(g_defaults.dir.system, user_path, + "SYSTEM", sizeof(g_defaults.dir.system)); + fill_pathname_join(g_defaults.dir.cache, user_path, + "TEMP", sizeof(g_defaults.dir.cache)); + strlcpy(g_defaults.dir.content_history, + user_path, sizeof(g_defaults.dir.content_history)); + fill_pathname_join(g_defaults.path.config, user_path, + file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); #endif + /* create the dirs to avoid problems further down the line */ + path_mkdir(g_defaults.dir.assets); + path_mkdir(g_defaults.dir.cache); + path_mkdir(g_defaults.dir.cheats); + path_mkdir(g_defaults.dir.core_assets); + path_mkdir(g_defaults.dir.playlist); + path_mkdir(g_defaults.dir.menu_config); + path_mkdir(g_defaults.dir.remap); + path_mkdir(g_defaults.dir.savestate); + path_mkdir(g_defaults.dir.screenshot); + path_mkdir(g_defaults.dir.sram); + path_mkdir(g_defaults.dir.system); #ifdef VITA params = (struct rarch_main_wrap*)params_data;