diff --git a/360/frontend-xdk/main.c b/360/frontend-xdk/main.c index 5cd65a1c77..128f72ddd2 100644 --- a/360/frontend-xdk/main.c +++ b/360/frontend-xdk/main.c @@ -153,6 +153,8 @@ static void set_default_settings (void) g_settings.video.second_pass_smooth = true; g_settings.video.smooth = true; g_settings.video.vsync = true; + strlcpy(g_settings.cheat_database, usrDirPath, sizeof(g_settings.cheat_database)); + strlcpy(g_settings.system_directory, usrDirPath, sizeof(g_settings.system_directory)); g_settings.video.aspect_ratio = -1.0f; rarch_input_set_controls_default(); diff --git a/console/retroarch_console.c b/console/retroarch_console.c index 66d6d5a752..63e4fae169 100644 --- a/console/retroarch_console.c +++ b/console/retroarch_console.c @@ -875,6 +875,7 @@ void rarch_config_load(const char * conf_name, const char * libretro_dir_path, c } #endif + CONFIG_GET_STRING(system_directory, "system_directory"); CONFIG_GET_STRING(cheat_database, "cheat_database"); CONFIG_GET_BOOL(rewind_enable, "rewind_enable"); CONFIG_GET_STRING(video.cg_shader_path, "video_cg_shader"); diff --git a/ps3/frontend/main.c b/ps3/frontend/main.c index c30f05f330..54779b33c3 100644 --- a/ps3/frontend/main.c +++ b/ps3/frontend/main.c @@ -62,6 +62,7 @@ #define NP_POOL_SIZE (128*1024) static uint8_t np_pool[NP_POOL_SIZE]; +char systemDirPath[PATH_MAX]; char usrDirPath[PATH_MAX]; char DEFAULT_PRESET_FILE[PATH_MAX]; char DEFAULT_BORDER_FILE[PATH_MAX]; @@ -99,6 +100,7 @@ static void set_default_settings(void) g_settings.video.smooth = true; g_settings.video.vsync = true; strlcpy(g_settings.cheat_database, usrDirPath, sizeof(g_settings.cheat_database)); + strlcpy(g_settings.system_directory, systemDirPath, sizeof(g_settings.system_directory)); g_settings.video.msg_pos_x = 0.05f; g_settings.video.msg_pos_y = 0.90f; g_settings.video.aspect_ratio = -1.0f; @@ -261,6 +263,8 @@ static void get_environment_settings(int argc, char *argv[]) RARCH_LOG("usrDirPath : [%s].\n", usrDirPath); } + snprintf(systemDirPath, sizeof(systemDirPath), "%s/%s/system/", usrDirPath, EMULATOR_CORE_DIR); + /* now we fill in all the variables */ snprintf(DEFAULT_PRESET_FILE, sizeof(DEFAULT_PRESET_FILE), "%s/%s/presets/stock.conf", usrDirPath, EMULATOR_CORE_DIR); snprintf(DEFAULT_BORDER_FILE, sizeof(DEFAULT_BORDER_FILE), "%s/%s/borders/Centered-1080p/mega-man-2.png", usrDirPath, EMULATOR_CORE_DIR); diff --git a/ps3/frontend/menu-entries.h b/ps3/frontend/menu-entries.h index f01389cc0d..650a8454d0 100644 --- a/ps3/frontend/menu-entries.h +++ b/ps3/frontend/menu-entries.h @@ -379,6 +379,17 @@ item items_generalsettings[MAX_NO_OF_CONTROLS_SETTINGS] = WHITE, 0.83f, }, + { + SETTING_PATH_SYSTEM, + "System Directory", + "", + 0.0f, + 0.0f, + YELLOW, + "INFO - Set the default [System directory] path. System files like\nBIOS files, etc. will be stored here.", + WHITE, + 0.83f, + }, { SETTING_ENABLE_SRAM_PATH, "Custom SRAM Dir Path", diff --git a/ps3/frontend/menu.c b/ps3/frontend/menu.c index 218980bc95..114973b126 100644 --- a/ps3/frontend/menu.c +++ b/ps3/frontend/menu.c @@ -259,6 +259,10 @@ static void set_setting_label(menu * menu_obj, unsigned currentsetting) set_setting_label_color(!(strcmp(g_settings.cheat_database, usrDirPath)), currentsetting); snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.cheat_database); break; + case SETTING_PATH_SYSTEM: + set_setting_label_color(!(strcmp(g_settings.system_directory, systemDirPath)), currentsetting); + snprintf(items_generalsettings[currentsetting].setting_text, sizeof(items_generalsettings[currentsetting].setting_text), g_settings.cheat_database); + break; case SETTING_ENABLE_SRAM_PATH: set_setting_label_write_on_or_off(g_console.default_sram_dir_enable, currentsetting); set_setting_label_color(!g_console.default_sram_dir_enable, currentsetting); @@ -450,6 +454,7 @@ static void menu_stack_push(unsigned stack_idx, unsigned menu_id) case PATH_SAVESTATES_DIR_CHOICE: case PATH_SRAM_DIR_CHOICE: case PATH_CHEATS_DIR_CHOICE: + case PATH_SYSTEM_DIR_CHOICE: strlcpy(menuStack[stack_idx].title, "Path Selection", sizeof(menuStack[stack_idx].title)); menuStack[stack_idx].enum_id = menu_id; menuStack[stack_idx].selected = 0; @@ -1394,6 +1399,16 @@ static void producesettingentry(menu * menu_obj, unsigned switchvalue) if(CTRL_START(trigger_state)) strlcpy(g_settings.cheat_database, usrDirPath, sizeof(g_settings.cheat_database)); break; + case SETTING_PATH_SYSTEM: + if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state) || CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state) || CTRL_CROSS(trigger_state)) + { + menu_stack_increment(); + menu_stack_push(menuStackindex, PATH_SYSTEM_DIR_CHOICE); + } + + if(CTRL_START(trigger_state)) + strlcpy(g_settings.system_directory, systemDirPath, sizeof(g_settings.system_directory)); + break; case SETTING_ENABLE_SRAM_PATH: if(CTRL_LEFT(trigger_state) || CTRL_LSTICK_LEFT(trigger_state) || CTRL_RIGHT(trigger_state) || CTRL_LSTICK_RIGHT(trigger_state)) { diff --git a/ps3/frontend/menu.h b/ps3/frontend/menu.h index a05b5e3c22..12779e93b0 100644 --- a/ps3/frontend/menu.h +++ b/ps3/frontend/menu.h @@ -69,6 +69,7 @@ enum PATH_DEFAULT_ROM_DIR_CHOICE, PATH_CHEATS_DIR_CHOICE, PATH_SRAM_DIR_CHOICE, + PATH_SYSTEM_DIR_CHOICE, INPUT_PRESET_CHOICE, INGAME_MENU, INGAME_MENU_RESIZE, @@ -110,6 +111,7 @@ enum SETTING_PATH_SAVESTATES_DIRECTORY, SETTING_PATH_SRAM_DIRECTORY, SETTING_PATH_CHEATS, + SETTING_PATH_SYSTEM, SETTING_ENABLE_SRAM_PATH, SETTING_ENABLE_STATE_PATH, SETTING_PATH_DEFAULT_ALL, diff --git a/ps3/frontend/shared.h b/ps3/frontend/shared.h index e1e3415f22..3432973ba2 100644 --- a/ps3/frontend/shared.h +++ b/ps3/frontend/shared.h @@ -18,6 +18,7 @@ #define _PS3_SHARED_H extern char usrDirPath[PATH_MAX]; +extern char systemDirPath[PATH_MAX]; extern char DEFAULT_PRESET_FILE[PATH_MAX]; extern char DEFAULT_BORDER_FILE[PATH_MAX]; extern char DEFAULT_MENU_BORDER_FILE[PATH_MAX]; diff --git a/ps3/pkg/USRDIR/cores/system/.empty b/ps3/pkg/USRDIR/cores/system/.empty new file mode 100644 index 0000000000..e69de29bb2