mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
commit
badf8bdaad
@ -548,8 +548,8 @@ static void event_deinit_core(bool reinit)
|
|||||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||||
|
|
||||||
/* restore system directory if it was set to <content dir> */
|
/* restore system directory if it was set to <content dir> */
|
||||||
if(orig_system_dir_empty)
|
if(settings->system_in_content_dir)
|
||||||
strlcpy(settings->system_directory,"",sizeof(settings->system_directory));
|
settings->system_directory[0] = '\0';
|
||||||
|
|
||||||
/* auto overrides: reload the original config */
|
/* auto overrides: reload the original config */
|
||||||
if(global->overrides_active)
|
if(global->overrides_active)
|
||||||
|
@ -1714,10 +1714,14 @@ static bool config_load_file(const char *path, bool set_defaults)
|
|||||||
{
|
{
|
||||||
RARCH_WARN("system_directory is not set in config. Assuming system directory is same folder as game: \"%s\".\n",
|
RARCH_WARN("system_directory is not set in config. Assuming system directory is same folder as game: \"%s\".\n",
|
||||||
settings->system_directory);
|
settings->system_directory);
|
||||||
|
settings->system_in_content_dir = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(settings->system_directory, "default"))
|
if (!strcmp(settings->system_directory, "default"))
|
||||||
|
{
|
||||||
*settings->system_directory = '\0';
|
*settings->system_directory = '\0';
|
||||||
|
settings->system_in_content_dir = true;
|
||||||
|
}
|
||||||
|
|
||||||
config_read_keybinds_conf(conf);
|
config_read_keybinds_conf(conf);
|
||||||
|
|
||||||
|
@ -303,6 +303,7 @@ typedef struct settings
|
|||||||
char resampler_directory[PATH_MAX_LENGTH];
|
char resampler_directory[PATH_MAX_LENGTH];
|
||||||
char screenshot_directory[PATH_MAX_LENGTH];
|
char screenshot_directory[PATH_MAX_LENGTH];
|
||||||
char system_directory[PATH_MAX_LENGTH];
|
char system_directory[PATH_MAX_LENGTH];
|
||||||
|
bool system_in_content_dir;
|
||||||
|
|
||||||
char extraction_directory[PATH_MAX_LENGTH];
|
char extraction_directory[PATH_MAX_LENGTH];
|
||||||
char playlist_directory[PATH_MAX_LENGTH];
|
char playlist_directory[PATH_MAX_LENGTH];
|
||||||
|
@ -751,8 +751,15 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY:
|
case RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY:
|
||||||
|
if (!settings->system_directory || settings->system_directory[0] == '\0')
|
||||||
|
{
|
||||||
|
RARCH_WARN("SYSTEM DIR is empty, fill assume CONTENT DIR %s\n",global->fullpath);
|
||||||
|
fill_pathname_basedir(settings->system_directory, global->fullpath,
|
||||||
|
sizeof(settings->system_directory));
|
||||||
|
}
|
||||||
*(const char**)data = *settings->system_directory ?
|
*(const char**)data = *settings->system_directory ?
|
||||||
settings->system_directory : NULL;
|
settings->system_directory : NULL;
|
||||||
|
|
||||||
RARCH_LOG("Environ SYSTEM_DIRECTORY: \"%s\".\n",
|
RARCH_LOG("Environ SYSTEM_DIRECTORY: \"%s\".\n",
|
||||||
settings->system_directory);
|
settings->system_directory);
|
||||||
break;
|
break;
|
||||||
|
@ -48,8 +48,8 @@ void main_exit_save_config(void)
|
|||||||
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
|
||||||
|
|
||||||
/* restore system directory if it was set to <content dir> */
|
/* restore system directory if it was set to <content dir> */
|
||||||
if(orig_system_dir_empty)
|
if(settings->system_in_content_dir)
|
||||||
strlcpy(settings->system_directory,"",sizeof(settings->system_directory));
|
settings->system_directory[0] = '\0';
|
||||||
|
|
||||||
/* Save last core-specific config to the default config location,
|
/* Save last core-specific config to the default config location,
|
||||||
* needed on consoles for core switching and reusing last good
|
* needed on consoles for core switching and reusing last good
|
||||||
|
@ -629,6 +629,21 @@ static void handle_hotplug(android_input_t *android,
|
|||||||
else if (strstr(device_name, "SideWinder"))
|
else if (strstr(device_name, "SideWinder"))
|
||||||
strlcpy(name_buf, "SideWinder Classic", sizeof(name_buf));
|
strlcpy(name_buf, "SideWinder Classic", sizeof(name_buf));
|
||||||
}
|
}
|
||||||
|
else if (strstr(device_name, "NVIDIA Corporation NVIDIA Controller v01.01"))
|
||||||
|
{
|
||||||
|
/* Built-in shield contrlleris always user 1. FIXME: This is kinda ugly.
|
||||||
|
* We really need to find a way to detect useless input devices
|
||||||
|
* like gpio-keys in a general way.
|
||||||
|
*/
|
||||||
|
*port = 0;
|
||||||
|
strlcpy(name_buf, device_name, sizeof(name_buf));
|
||||||
|
}
|
||||||
|
else if (strstr(device_name, "Virtual") || strstr(device_name, "gpio") && strstr(android->pad_states[0].name,"NVIDIA Corporation NVIDIA Controller v01.01"))
|
||||||
|
{
|
||||||
|
/* If built-in shield controller is detected bind the virtual and gpio devices to the same port*/
|
||||||
|
*port = 0;
|
||||||
|
strlcpy(name_buf, "NVIDIA Corporation NVIDIA Controller v01.01", sizeof(name_buf));
|
||||||
|
}
|
||||||
else if (
|
else if (
|
||||||
strstr(device_name, "PLAYSTATION(R)3") ||
|
strstr(device_name, "PLAYSTATION(R)3") ||
|
||||||
strstr(device_name, "Dualshock3") ||
|
strstr(device_name, "Dualshock3") ||
|
||||||
@ -637,15 +652,6 @@ static void handle_hotplug(android_input_t *android,
|
|||||||
strlcpy(name_buf, "PlayStation3", sizeof(name_buf));
|
strlcpy(name_buf, "PlayStation3", sizeof(name_buf));
|
||||||
else if (strstr(device_name, "MOGA"))
|
else if (strstr(device_name, "MOGA"))
|
||||||
strlcpy(name_buf, "Moga IME", sizeof(name_buf));
|
strlcpy(name_buf, "Moga IME", sizeof(name_buf));
|
||||||
else if (strstr(device_name, "NVIDIA Corporation NVIDIA Controller v01.01"))
|
|
||||||
{
|
|
||||||
/* Shield is always user 1. FIXME: This is kinda ugly.
|
|
||||||
* We really need to find a way to detect useless input devices
|
|
||||||
* like gpio-keys in a general way.
|
|
||||||
*/
|
|
||||||
*port = 0;
|
|
||||||
strlcpy(name_buf, device_name, sizeof(name_buf));
|
|
||||||
}
|
|
||||||
else if (device_name[0] != '\0')
|
else if (device_name[0] != '\0')
|
||||||
strlcpy(name_buf, device_name, sizeof(name_buf));
|
strlcpy(name_buf, device_name, sizeof(name_buf));
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ static void input_autoconfigure_joypad_add(
|
|||||||
/* This will be the case if input driver is reinitialized.
|
/* This will be the case if input driver is reinitialized.
|
||||||
* No reason to spam autoconfigure messages every time. */
|
* No reason to spam autoconfigure messages every time. */
|
||||||
bool block_osd_spam = settings &&
|
bool block_osd_spam = settings &&
|
||||||
settings->input.autoconfigured[params->idx] && *params->name;
|
settings->input.autoconfigured[params->idx] && *params->name;
|
||||||
|
|
||||||
if (!settings)
|
if (!settings)
|
||||||
return;
|
return;
|
||||||
@ -136,8 +136,9 @@ static void input_autoconfigure_joypad_add(
|
|||||||
snprintf(msg, sizeof(msg), "%s configured in port #%u.",
|
snprintf(msg, sizeof(msg), "%s configured in port #%u.",
|
||||||
params->name, params->idx);
|
params->name, params->idx);
|
||||||
|
|
||||||
if (!block_osd_spam)
|
if (!block_osd_spam)
|
||||||
rarch_main_msg_queue_push(msg, 0, 60, false);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
|
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
23
retroarch.c
23
retroarch.c
@ -61,7 +61,6 @@
|
|||||||
|
|
||||||
char orig_savestate_dir[PATH_MAX_LENGTH];
|
char orig_savestate_dir[PATH_MAX_LENGTH];
|
||||||
char orig_savefile_dir[PATH_MAX_LENGTH];
|
char orig_savefile_dir[PATH_MAX_LENGTH];
|
||||||
bool orig_system_dir_empty = false;
|
|
||||||
|
|
||||||
/* Descriptive names for options without short variant. Please keep the name in
|
/* Descriptive names for options without short variant. Please keep the name in
|
||||||
sync with the option name. Order does not matter. */
|
sync with the option name. Order does not matter. */
|
||||||
@ -314,11 +313,12 @@ static void set_special_paths(char **argv, unsigned num_content)
|
|||||||
/* If this is already set,
|
/* If this is already set,
|
||||||
* do not overwrite it as this was initialized before in
|
* do not overwrite it as this was initialized before in
|
||||||
* a menu or otherwise. */
|
* a menu or otherwise. */
|
||||||
if (settings->system_directory[0] == '\0')
|
if (!settings->system_directory || settings->system_directory[0] == '\0')
|
||||||
orig_system_dir_empty = true;
|
{
|
||||||
if (!*settings->system_directory)
|
RARCH_WARN("SYSTEM DIR is empty, assume CONTENT DIR %s\n",argv[0]);
|
||||||
fill_pathname_basedir(settings->system_directory, argv[0],
|
fill_pathname_basedir(settings->system_directory, argv[0],
|
||||||
sizeof(settings->system_directory));
|
sizeof(settings->system_directory));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_paths_redirect(const char *path)
|
void set_paths_redirect(const char *path)
|
||||||
@ -355,7 +355,7 @@ void set_paths_redirect(const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* per-core states: append the library_name to the save location */
|
/* per-core states: append the library_name to the save location */
|
||||||
if (settings->sort_savestates_enable)
|
if (settings->sort_savestates_enable && global->savefile_dir[0] != '\0')
|
||||||
{
|
{
|
||||||
strlcpy(orig_savestate_dir,
|
strlcpy(orig_savestate_dir,
|
||||||
global->savestate_dir,
|
global->savestate_dir,
|
||||||
@ -429,12 +429,13 @@ void rarch_set_paths(const char *path)
|
|||||||
|
|
||||||
/* If this is already set, do not overwrite it
|
/* If this is already set, do not overwrite it
|
||||||
* as this was initialized before in a menu or otherwise. */
|
* as this was initialized before in a menu or otherwise. */
|
||||||
if (*settings->system_directory)
|
if (!settings->system_directory || settings->system_directory[0] == '\0')
|
||||||
return;
|
{
|
||||||
if (settings->system_directory[0] == '\0')
|
RARCH_WARN("SYSTEM DIR is empty, fill assume CONTENT DIR %s\n",path);
|
||||||
orig_system_dir_empty = true;
|
fill_pathname_basedir(settings->system_directory, path,
|
||||||
fill_pathname_basedir(settings->system_directory, path,
|
sizeof(settings->system_directory));
|
||||||
sizeof(settings->system_directory));
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user