static void system_post_init(void) { char core_name[64]; get_libretro_core_name(core_name, sizeof(core_name)); snprintf(input_path, sizeof(input_path), "%s/%s.cfg", default_paths.input_presets_dir, core_name); config_read_keybinds(input_path); }
// If a CORE executable of name CORE.extension exists, rename filename // to a more sane name. static bool install_libretro_core(const char *core_exe_path, const char *tmp_path, const char *extension) { int ret = 0; char tmp_path2[PATH_MAX], tmp_pathnewfile[PATH_MAX]; get_libretro_core_name(tmp_path2, sizeof(tmp_path2)); strlcat(tmp_path2, extension, sizeof(tmp_path2)); snprintf(tmp_pathnewfile, sizeof(tmp_pathnewfile), "%s%s", tmp_path, tmp_path2); if (path_file_exists(tmp_pathnewfile)) { // If core already exists, we are upgrading the core - // delete existing file first. RARCH_LOG("Upgrading emulator core...\n"); ret = remove(tmp_pathnewfile); if (ret == 0) RARCH_LOG("Succeeded in removing pre-existing libretro core: [%s].\n", tmp_pathnewfile); else RARCH_ERR("Failed to remove pre-existing libretro core: [%s].\n", tmp_pathnewfile); } // Now attempt the renaming of the core. ret = rename(core_exe_path, tmp_pathnewfile); if (ret == 0) { RARCH_LOG("Libretro core [%s] successfully renamed to: [%s].\n", core_exe_path, tmp_pathnewfile); strlcpy(g_settings.libretro, tmp_pathnewfile, sizeof(g_settings.libretro)); } else { RARCH_ERR("Failed to rename CORE executable.\n"); RARCH_WARN("CORE executable was not found, or some other error occurred. Will attempt to load libretro core path from config file.\n"); return false; } return true; }