summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorGlenn Rice <glennricster@gmail.com>2010-02-02 21:56:29 +0000
committerGlenn Rice <glennricster@gmail.com>2010-02-02 21:56:29 +0000
commitfeba09f7a3e8d8e9b1ea2fe0d666c5be82941096 (patch)
treee695da77bfbd419355df9d29c799f6722d64ccef /Source/Core
parenta090876bbd89ac656db2c1a5b81b778311b1c804 (diff)
Linux global build. At least the basic footwork is done here.
Basic usage: "sudo scons install=global install" Hopefully this doesn't break builds on Macs. I have tested this on linux and windows. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4994 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Common/Src/CommonPaths.h186
-rw-r--r--Source/Core/Common/Src/FileUtil.cpp214
-rw-r--r--Source/Core/Common/Src/FileUtil.h42
-rw-r--r--Source/Core/Common/Src/LogManager.cpp7
-rw-r--r--Source/Core/Common/Src/LogManager.h2
-rw-r--r--Source/Core/Common/Src/SysConf.cpp14
-rw-r--r--Source/Core/Common/Src/SysConf.h2
-rw-r--r--Source/Core/Core/Src/Boot/Boot.cpp4
-rw-r--r--Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp8
-rw-r--r--Source/Core/Core/Src/ConfigManager.cpp25
-rw-r--r--Source/Core/Core/Src/Core.cpp4
-rw-r--r--Source/Core/Core/Src/CoreParameter.cpp4
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp2
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp4
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp9
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp10
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp3
-rw-r--r--Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp3
-rw-r--r--Source/Core/Core/Src/LuaInterface.cpp2
-rw-r--r--Source/Core/Core/Src/PatchEngine.cpp3
-rw-r--r--Source/Core/Core/Src/PowerPC/PPCTables.cpp7
-rw-r--r--Source/Core/Core/Src/State.cpp10
-rw-r--r--Source/Core/DSPCore/Src/disassemble.cpp2
-rw-r--r--Source/Core/DebuggerWX/Src/BreakpointWindow.cpp10
-rw-r--r--Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp6
-rw-r--r--Source/Core/DebuggerWX/Src/MemoryWindow.cpp5
-rw-r--r--Source/Core/DiscIO/Src/BannerLoaderWii.cpp12
-rw-r--r--Source/Core/DiscIO/Src/NANDContentLoader.cpp4
-rw-r--r--Source/Core/DolphinWX/Src/BootManager.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/ConfigMain.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/Frame.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/FrameAui.cpp8
-rw-r--r--Source/Core/DolphinWX/Src/FrameTools.cpp8
-rw-r--r--Source/Core/DolphinWX/Src/GameListCtrl.cpp8
-rw-r--r--Source/Core/DolphinWX/Src/ISOFile.cpp10
-rw-r--r--Source/Core/DolphinWX/Src/ISOProperties.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/LogWindow.cpp5
-rw-r--r--Source/Core/DolphinWX/Src/Main.cpp56
-rw-r--r--Source/Core/DolphinWX/Src/MemcardManager.cpp15
-rw-r--r--Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/MemoryCards/WiiSaveCrypted.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/NetWindow.cpp8
-rw-r--r--Source/Core/DolphinWX/Src/SConscript4
-rw-r--r--Source/Core/VideoCommon/Src/AVIDump.cpp2
-rw-r--r--Source/Core/VideoCommon/Src/HiresTextures.cpp4
-rw-r--r--Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp3
-rw-r--r--Source/Core/VideoCommon/Src/VideoConfig.cpp3
47 files changed, 472 insertions, 278 deletions
diff --git a/Source/Core/Common/Src/CommonPaths.h b/Source/Core/Common/Src/CommonPaths.h
index 3d26c0b4c9..36ad84fad2 100644
--- a/Source/Core/Common/Src/CommonPaths.h
+++ b/Source/Core/Common/Src/CommonPaths.h
@@ -18,6 +18,10 @@
#ifndef _COMMON_PATHS_H_
#define _COMMON_PATHS_H_
+#ifdef __linux__
+#include "Config.h"
+#endif
+
// Library suffix/prefix
#ifdef _WIN32
#define PLUGIN_PREFIX ""
@@ -34,18 +38,25 @@
#define DIR_SEP "/"
#define DIR_SEP_CHR '/'
-#if defined __APPLE__
+// Location of the plugins
+#ifdef LIBS_DIR
+#define PLUGINS_DIR LIBS_DIR "dolphin-emu"
+#elif defined __APPLE__
#define PLUGINS_DIR "Contents/PlugIns"
-#define SYSDATA_DIR "Contents/Sys"
#else
#define PLUGINS_DIR "Plugins"
-#define SYSDATA_DIR "Sys"
#endif
+
+// The user data dir
#define ROOT_DIR "."
+#ifdef __linux__
+#define USERDATA_DIR "user"
+#else
#define USERDATA_DIR "User"
-
-// Where data directory is
-#ifdef _WIN32
+#endif
+#ifdef USER_DIR
+#define DOLPHIN_DATA_DIR USER_DIR
+#elif defined _WIN32
#define DOLPHIN_DATA_DIR "Dolphin"
#elif defined __APPLE__
#define DOLPHIN_DATA_DIR "Library/Application Support/Dolphin"
@@ -53,119 +64,101 @@
#define DOLPHIN_DATA_DIR ".dolphin"
#endif
+// Shared data dirs (Sys and shared User for linux)
+#ifdef DATA_DIR
+#define SYSDATA_DIR DATA_DIR "Sys"
+#define SHARED_USER_DIR DATA_DIR USERDATA_DIR DIR_SEP
+#elif defined __APPLE__
+#define SYSDATA_DIR "Contents/Sys"
+#elif defined __linux__
+#define SYSDATA_DIR "sys"
+#define SHARED_USER_DIR ROOT_DIR DIR_SEP USERDATA_DIR DIR_SEP
+#else
+#define SYSDATA_DIR "Sys"
+#endif
+
// Dirs in both User and Sys
#define EUR_DIR "EUR"
#define USA_DIR "USA"
#define JAP_DIR "JAP"
-// Dirs in User
-#define GC_USER_DIR "GC"
-#define WII_USER_DIR "Wii"
-#define WII_SYSCONF_DIR "shared2/sys"
-#define CONFIG_DIR "Config"
-#define GAMECONFIG_DIR "GameConfig"
-#define MAPS_DIR "Maps"
-#define CACHE_DIR "Cache"
-#define SHADERCACHE_DIR "ShaderCache"
-#define STATESAVES_DIR "StateSaves"
-#define SCREENSHOTS_DIR "ScreenShots"
-#define DUMP_DIR "Dump"
-#define DUMP_TEXTURES_DIR "Textures"
-#define LOAD_DIR "Load"
-#define HIRES_TEXTURES_DIR "Textures"
-#define DUMP_FRAMES_DIR "Frames"
-#define DUMP_DSP_DIR "DSP"
-#define LOGS_DIR "Logs"
-#define MAIL_LOGS_DIR "Mail"
-
-// Dirs in Sys
-#define GC_SYS_DIR "GC"
-#define WII_SYS_DIR "Wii"
+// Subdirs in the User dir returned by GetUserPath(D_USER_IDX)
+#define GC_USER_DIR "GC"
+#define WII_USER_DIR "Wii"
+#define CONFIG_DIR "Config"
+#define GAMECONFIG_DIR "GameConfig"
+#define MAPS_DIR "Maps"
+#define CACHE_DIR "Cache"
+#define SHADERCACHE_DIR "ShaderCache"
+#define STATESAVES_DIR "StateSaves"
+#define SCREENSHOTS_DIR "ScreenShots"
+#define LOAD_DIR "Load"
+#define HIRES_TEXTURES_DIR LOAD_DIR DIR_SEP "Textures"
+#define DUMP_DIR "Dump"
+#define DUMP_TEXTURES_DIR DUMP_DIR DIR_SEP "Textures"
+#define DUMP_FRAMES_DIR DUMP_DIR DIR_SEP "Frames"
+#define DUMP_DSP_DIR DUMP_DIR DIR_SEP "DSP"
+#define LOGS_DIR "Logs"
+#define MAIL_LOGS_DIR LOGS_DIR DIR_SEP "Mail"
+#define SHADERS_DIR "Shaders"
+#define WII_SYSCONF_DIR WII_USER_DIR DIR_SEP "shared2" DIR_SEP "sys"
+#define WII_MENU_DIR WII_USER_DIR DIR_SEP "title" DIR_SEP "00000001" DIR_SEP "00000002" DIR_SEP "content"
// Filenames
-#define DOLPHIN_CONFIG "Dolphin.ini"
-#define DEBUGGER_CONFIG "Debugger.ini"
-#define LOGGER_CONFIG "Logger.ini"
-#define TOTALDB "totaldb.dsy"
-#define MAIN_LOG "dolphin.log"
+// Files in the directory returned by GetUserPath(D_CONFIG_IDX)
+#define DOLPHIN_CONFIG "Dolphin.ini"
+#define DEBUGGER_CONFIG "Debugger.ini"
+#define LOGGER_CONFIG "Logger.ini"
+
+// Files in the directory returned by GetUserPath(D_LOGS_IDX)
+#define MAIN_LOG "dolphin.log"
+
+// Files in the directory returned by GetUserPath(D_WIISYSCONF_IDX)
+#define WII_SYSCONF "SYSCONF"
+// Files in the directory returned by GetUserPath(D_DUMP_IDX)
+#define RAM_DUMP "ram.raw"
+#define ARAM_DUMP "aram.raw"
+
+// Plugin files
#define DEFAULT_GFX_PLUGIN PLUGIN_PREFIX "Plugin_VideoOGL" PLUGIN_SUFFIX
#define DEFAULT_DSP_PLUGIN PLUGIN_PREFIX "Plugin_DSP_HLE" PLUGIN_SUFFIX
#define DEFAULT_PAD_PLUGIN PLUGIN_PREFIX "Plugin_GCPad" PLUGIN_SUFFIX
#define DEFAULT_WIIMOTE_PLUGIN PLUGIN_PREFIX "Plugin_Wiimote" PLUGIN_SUFFIX
-#define FONT_ANSI "font_ansi.bin"
-#define FONT_SJIS "font_sjis.bin"
+// Sys files
+#define TOTALDB "totaldb.dsy"
+
+#define FONT_ANSI "font_ansi.bin"
+#define FONT_SJIS "font_sjis.bin"
-#define DSP_IROM "dsp_rom.bin"
-#define DSP_COEF "dsp_coef.bin"
+#define DSP_IROM "dsp_rom.bin"
+#define DSP_COEF "dsp_coef.bin"
-#define GC_IPL "IPL.bin"
-#define GC_SRAM "SRAM.raw"
-#define GC_MEMCARDA "MemoryCardA"
-#define GC_MEMCARDB "MemoryCardB"
+#define GC_IPL "IPL.bin"
+#define GC_SRAM "SRAM.raw"
+#define GC_MEMCARDA "MemoryCardA"
+#define GC_MEMCARDB "MemoryCardB"
#define WII_EUR_SETTING "setting-eur.txt"
#define WII_USA_SETTING "setting-usa.txt"
#define WII_JAP_SETTING "setting-jpn.txt"
-#define WII_SYSCONF "SYSCONF"
-
-#define RAM_DUMP "ram.raw"
-#define ARAM_DUMP "aram.raw"
-
-// Shorts - dirs
-// User dirs
-#define FULL_USERDATA_DIR ROOT_DIR DIR_SEP USERDATA_DIR DIR_SEP
-#define T_FULLUSERDATA_DIR _T(ROOT_DIR) _T(DIR_SEP) _T(USERDATA_DIR) _T(DIR_SEP)
-
-#define FULL_GC_USER_DIR FULL_USERDATA_DIR GC_USER_DIR DIR_SEP
-#define T_FULL_GC_USER_DIR T_FULLUSERDATA_DIR _T(GC_USER_DIR) _T(DIR_SEP)
-
-#define FULL_WII_USER_DIR FULL_USERDATA_DIR WII_USER_DIR DIR_SEP
-#define FULL_WII_ROOT_DIR FULL_USERDATA_DIR WII_USER_DIR // This is the "root" for Wii fs, so that it may be used with created devices
-
-#define FULL_GAMECONFIG_DIR FULL_USERDATA_DIR GAMECONFIG_DIR DIR_SEP
-#define T_FULL_GAMECONFIG_DIR T_FULLUSERDATA_DIR _T(GAMECONFIG_DIR) _T(DIR_SEP)
-
-#define FULL_CONFIG_DIR FULL_USERDATA_DIR CONFIG_DIR DIR_SEP
-#define FULL_CACHE_DIR FULL_USERDATA_DIR CACHE_DIR DIR_SEP
-#define FULL_SHADERCACHE_DIR FULL_USERDATA_DIR SHADERCACHE_DIR DIR_SEP
-#define FULL_STATESAVES_DIR FULL_USERDATA_DIR STATESAVES_DIR DIR_SEP
-#define FULL_SCREENSHOTS_DIR FULL_USERDATA_DIR SCREENSHOTS_DIR DIR_SEP
-#define FULL_FRAMES_DIR FULL_USERDATA_DIR DUMP_DIR DIR_SEP DUMP_FRAMES_DIR
-#define FULL_DUMP_DIR FULL_USERDATA_DIR DUMP_DIR DIR_SEP
-#define FULL_DUMP_TEXTURES_DIR FULL_USERDATA_DIR DUMP_DIR DIR_SEP DUMP_TEXTURES_DIR DIR_SEP
-#define FULL_HIRES_TEXTURES_DIR FULL_USERDATA_DIR LOAD_DIR DIR_SEP HIRES_TEXTURES_DIR DIR_SEP
-#define FULL_DSP_DUMP_DIR FULL_USERDATA_DIR DUMP_DIR DIR_SEP DUMP_DSP_DIR DIR_SEP
-#define FULL_LOGS_DIR FULL_USERDATA_DIR LOGS_DIR DIR_SEP
-#define FULL_MAIL_LOGS_DIR FULL_LOGS_DIR MAIL_LOGS_DIR DIR_SEP
-#define FULL_MAPS_DIR FULL_USERDATA_DIR MAPS_DIR DIR_SEP
-#define FULL_WII_SYSCONF_DIR FULL_WII_USER_DIR WII_SYSCONF_DIR DIR_SEP
-
-// Sys dirs
-#define FULL_SYSDATA_DIR ROOT_DIR DIR_SEP SYSDATA_DIR DIR_SEP
-#define FULL_GC_SYS_DIR FULL_SYSDATA_DIR GC_SYS_DIR DIR_SEP
-//#define GC_SYS_EUR_DIR FULL_GC_SYS_DIR EUR_DIR
-//#define GC_SYS_USA_DIR FULL_GC_SYS_DIR USA_DIR
-//#define GC_SYS_JAP_DIR FULL_GC_SYS_DIR JAP_DIR
+// Subdirs in Sys
+#define GC_SYS_DIR "GC"
+#define WII_SYS_DIR "Wii"
+// Full Sys dirs
+#define FULL_SYSDATA_DIR ROOT_DIR DIR_SEP SYSDATA_DIR DIR_SEP
+#define FULL_GC_SYS_DIR FULL_SYSDATA_DIR GC_SYS_DIR DIR_SEP
+//#define GC_SYS_EUR_DIR FULL_GC_SYS_DIR EUR_DIR
+//#define GC_SYS_USA_DIR FULL_GC_SYS_DIR USA_DIR
+//#define GC_SYS_JAP_DIR FULL_GC_SYS_DIR JAP_DIR
#define FULL_WII_SYS_DIR FULL_SYSDATA_DIR WII_SYS_DIR DIR_SEP
-// Shorts - files
-// User files
-#define CONFIG_FILE FULL_CONFIG_DIR DOLPHIN_CONFIG
-#define DEBUGGER_CONFIG_FILE FULL_CONFIG_DIR DEBUGGER_CONFIG
-#define LOGGER_CONFIG_FILE FULL_CONFIG_DIR LOGGER_CONFIG
-
-#define TOTALDB_FILE FULL_SYSDATA_DIR TOTALDB
-#define MAINRAM_DUMP_FILE FULL_DUMP_DIR RAM_DUMP
-#define ARAM_DUMP_FILE FULL_DUMP_DIR ARAM_DUMP
-#define GC_SRAM_FILE FULL_USERDATA_DIR GC_USER_DIR DIR_SEP GC_SRAM
+// Sys files with full path
+#define TOTALDB_FILE FULL_SYSDATA_DIR TOTALDB
-#define MAIN_LOG_FILE FULL_LOGS_DIR MAIN_LOG
-
-// Sys files
#define FONT_ANSI_FILE FULL_GC_SYS_DIR FONT_ANSI
#define FONT_SJIS_FILE FULL_GC_SYS_DIR FONT_SJIS
@@ -175,8 +168,5 @@
#define WII_EUR_SETTING_FILE FULL_WII_SYS_DIR WII_EUR_SETTING
#define WII_USA_SETTING_FILE FULL_WII_SYS_DIR WII_USA_SETTING
#define WII_JAP_SETTING_FILE FULL_WII_SYS_DIR WII_JAP_SETTING
-#define WII_SYSCONF_FILE FULL_WII_SYSCONF_DIR WII_SYSCONF
-
-#define FULL_WII_MENU_DIR FULL_WII_USER_DIR "title" DIR_SEP "00000001" DIR_SEP "00000002" DIR_SEP "content"
#endif // _COMMON_PATHS_H_
diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp
index 7a8410fd0c..9688e41fdc 100644
--- a/Source/Core/Common/Src/FileUtil.cpp
+++ b/Source/Core/Common/Src/FileUtil.cpp
@@ -487,6 +487,41 @@ bool DeleteDirRecursively(const char *directory)
return true;
}
+#ifdef __linux__
+//Create directory and copy contents (does not overwrite existing files)
+void CopyDir(const char *source_path, const char *dest_path)
+{
+ if (!File::Exists(source_path))
+ return;
+
+ if (!File::Exists(dest_path)) File::CreateFullPath(dest_path);
+ char *virtualName;
+ struct dirent dirent, *result = NULL;
+ DIR *dirp = opendir(source_path);
+ if (!dirp)
+ return;
+ while (!readdir_r(dirp, &dirent, &result) && result) {
+ virtualName = result->d_name;
+ // check for "." and ".."
+ if (((virtualName[0] == '.') && (virtualName[1] == '\0')) ||
+ ((virtualName[0] == '.') && (virtualName[1] == '.') &&
+ (virtualName[2] == '\0')))
+ continue;
+ char source[300], dest[300];
+ sprintf(source, "%s%s", source_path, virtualName);
+ sprintf(dest, "%s%s", dest_path, virtualName);
+ if (IsDirectory(source)) {
+ sprintf(source, "%s/", source);
+ sprintf(dest, "%s/", dest);
+ if (!File::Exists(dest)) File::CreateFullPath(dest);
+ CopyDir(source, dest);
+ } else
+ if (!File::Exists(dest)) File::Copy(source, dest);
+ }
+ closedir(dirp);
+}
+#endif
+
// Returns the current directory
std::string GetCurrentDir()
{
@@ -510,28 +545,6 @@ bool SetCurrentDir(const char *_rDirectory)
}
#if defined(__APPLE__)
-
-//get the full config dir
-const char *GetConfigDirectory()
-{
- static char path[MAX_PATH] = {0};
- if (strlen(path) > 0)
- return path;
- snprintf(path, sizeof(path), "%s" DIR_SEP CONFIG_FILE, GetUserDirectory());
- return path;
-}
-
-//get the full SYSCONF dir
-const char *GetSysConfDirectory()
-{
- static char path[MAX_PATH] = {0};
- if (strlen(path) > 0)
- return path;
- snprintf(path, sizeof(path), "%s" DIR_SEP WII_SYSCONF_FILE, GetUserDirectory());
- return path;
-
-}
-
std::string GetBundleDirectory()
{
// Plugin path will be Dolphin.app/Contents/PlugIns
@@ -599,28 +612,149 @@ std::string GetSysDirectory()
return sysDir;
}
-// Returns a pointer to a string with a Dolphin data dir in the user's home
+// Returns a pointer to a string with a Dolphin data dir or file in the user's home
// directory. To be used in "multi-user" mode (that is, installed).
-const char *GetUserDirectory()
+const char *GetUserPath(int DirIDX)
{
- // Make sure we only need to do it once
- static char path[MAX_PATH] = {0};
- if (strlen(path) > 0)
- return path;
-
-#ifdef WIN32
- char homedir[MAX_PATH];
- if (!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, path)))
- return NULL;
+ static char UserDir[MAX_PATH] = {0};
+ static char GCUserDir[MAX_PATH] = {0};
+ static char WiiUserDir[MAX_PATH] = {0};
+ static char ConfigDir[MAX_PATH] = {0};
+ static char GameConfigDir[MAX_PATH] = {0};
+ static char MapsDir[MAX_PATH] = {0};
+ static char CacheDir[MAX_PATH] = {0};
+ static char ShaderCacheDir[MAX_PATH] = {0};
+ static char ShadersDir[MAX_PATH] = {0};
+ static char StateSavesDir[MAX_PATH] = {0};
+ static char ScreenShotsDir[MAX_PATH] = {0};
+ static char HiresTexturesDir[MAX_PATH] = {0};
+ static char DumpDir[MAX_PATH] = {0};
+ static char DumpFramesDir[MAX_PATH] = {0};
+ static char DumpTexturesDir[MAX_PATH] = {0};
+ static char DumpDSPDir[MAX_PATH] = {0};
+ static char LogsDir[MAX_PATH] = {0};
+ static char MailLogsDir[MAX_PATH] = {0};
+ static char WiiSYSCONFDir[MAX_PATH] = {0};
+ static char WiiMenuDir[MAX_PATH] = {0};
+ static char DolphinConfig[MAX_PATH] = {0};
+ static char DebuggerConfig[MAX_PATH] = {0};
+ static char LoggerConfig[MAX_PATH] = {0};
+ static char MainLog[MAX_PATH] = {0};
+ static char WiiSYSCONF[MAX_PATH] = {0};
+ static char RamDump[MAX_PATH] = {0};
+ static char ARamDump[MAX_PATH] = {0};
+ static char GCSRam[MAX_PATH] = {0};
+
+ // Set up all paths and files on the first run
+ if (strlen(UserDir) == 0)
+ {
+#ifdef _WIN32
+ // Keep the directory setup the way it was on windows
+ snprintf(UserDir, sizeof(UserDir), ROOT_DIR DIR_SEP USERDATA_DIR DIR_SEP);
+ //char homedir[MAX_PATH];
+ //if (!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, path)))
+ // return NULL;
#else
- char *homedir = getenv("HOME");
- if (!homedir)
- return NULL;
+ if (File::Exists(ROOT_DIR DIR_SEP USERDATA_DIR))
+ snprintf(UserDir, sizeof(UserDir), ROOT_DIR DIR_SEP USERDATA_DIR DIR_SEP);
+ else
+ {
+ char *homedir = getenv("HOME");
+ if (homedir)
+ snprintf(UserDir, sizeof(UserDir), "%s" DIR_SEP DOLPHIN_DATA_DIR DIR_SEP, homedir);
+ }
#endif
-
- snprintf(path, sizeof(path), "%s" DIR_SEP DOLPHIN_DATA_DIR, homedir);
- INFO_LOG(COMMON, "GetUserDirectory: Setting to %s:", path);
- return path;
+ INFO_LOG(COMMON, "GetUserPath: Setting user directory to %s:", UserDir);
+
+ snprintf(GCUserDir, sizeof(GCUserDir), "%s" GC_USER_DIR DIR_SEP, UserDir);
+ snprintf(WiiUserDir, sizeof(WiiUserDir), "%s" WII_USER_DIR DIR_SEP, UserDir);
+ snprintf(ConfigDir, sizeof(ConfigDir), "%s" CONFIG_DIR DIR_SEP, UserDir);
+ snprintf(GameConfigDir, sizeof(GameConfigDir), "%s" GAMECONFIG_DIR DIR_SEP, UserDir);
+ snprintf(MapsDir, sizeof(MapsDir), "%s" MAPS_DIR DIR_SEP, UserDir);
+ snprintf(CacheDir, sizeof(CacheDir), "%s" CACHE_DIR DIR_SEP, UserDir);
+ snprintf(ShaderCacheDir, sizeof(ShaderCacheDir), "%s" SHADERCACHE_DIR DIR_SEP, UserDir);
+ snprintf(ShadersDir, sizeof(ShadersDir), "%s" SHADERS_DIR DIR_SEP, UserDir);
+ snprintf(StateSavesDir, sizeof(StateSavesDir), "%s" STATESAVES_DIR DIR_SEP, UserDir);
+ snprintf(ScreenShotsDir, sizeof(ScreenShotsDir), "%s" SCREENSHOTS_DIR DIR_SEP, UserDir);
+ snprintf(HiresTexturesDir, sizeof(HiresTexturesDir), "%s" HIRES_TEXTURES_DIR DIR_SEP, UserDir);
+ snprintf(DumpDir, sizeof(DumpDir), "%s" DUMP_DIR DIR_SEP, UserDir);
+ snprintf(DumpFramesDir, sizeof(DumpFramesDir), "%s" DUMP_FRAMES_DIR DIR_SEP, UserDir);
+ snprintf(DumpTexturesDir, sizeof(DumpTexturesDir), "%s" DUMP_TEXTURES_DIR DIR_SEP, UserDir);
+ snprintf(DumpDSPDir, sizeof(DumpDSPDir), "%s" DUMP_DSP_DIR DIR_SEP, UserDir);
+ snprintf(LogsDir, sizeof(LogsDir), "%s" LOGS_DIR DIR_SEP, UserDir);
+ snprintf(MailLogsDir, sizeof(MailLogsDir), "%s" MAIL_LOGS_DIR DIR_SEP, UserDir);
+ snprintf(WiiSYSCONFDir, sizeof(WiiSYSCONFDir), "%s" WII_SYSCONF_DIR DIR_SEP, UserDir);
+ snprintf(WiiMenuDir, sizeof(WiiMenuDir), "%s" WII_MENU_DIR DIR_SEP, UserDir);
+ snprintf(DolphinConfig, sizeof(DolphinConfig), "%s" DOLPHIN_CONFIG, ConfigDir);
+ snprintf(DebuggerConfig, sizeof(DebuggerConfig), "%s" DEBUGGER_CONFIG, ConfigDir);
+ snprintf(LoggerConfig, sizeof(LoggerConfig), "%s" LOGGER_CONFIG, ConfigDir);
+ snprintf(MainLog, sizeof(MainLog), "%s" MAIN_LOG, LogsDir);
+ snprintf(WiiSYSCONF, sizeof(WiiSYSCONF), "%s" WII_SYSCONF, WiiSYSCONFDir);
+ snprintf(RamDump, sizeof(RamDump), "%s" RAM_DUMP, DumpDir);
+ snprintf(ARamDump, sizeof(ARamDump), "%s" ARAM_DUMP, DumpDir);
+ snprintf(GCSRam, sizeof(GCSRam), "%s" GC_SRAM, GCUserDir);
+ }
+ switch (DirIDX)
+ {
+ case D_USER_IDX:
+ return UserDir;
+ case D_GCUSER_IDX:
+ return GCUserDir;
+ case D_WIIUSER_IDX:
+ return WiiUserDir;
+ case D_CONFIG_IDX:
+ return ConfigDir;
+ case D_GAMECONFIG_IDX:
+ return GameConfigDir;
+ case D_MAPS_IDX:
+ return MapsDir;
+ case D_CACHE_IDX:
+ return CacheDir;
+ case D_SHADERCACHE_IDX:
+ return ShaderCacheDir;
+ case D_SHADERS_IDX:
+ return ShadersDir;
+ case D_STATESAVES_IDX:
+ return StateSavesDir;
+ case D_SCREENSHOTS_IDX:
+ return ScreenShotsDir;
+ case D_HIRESTEXTURES_IDX:
+ return HiresTexturesDir;
+ case D_DUMP_IDX:
+ return DumpDir;
+ case D_DUMPFRAMES_IDX:
+ return DumpFramesDir;
+ case D_DUMPTEXTURES_IDX:
+ return DumpTexturesDir;
+ case D_DUMPDSP_IDX:
+ return DumpDSPDir;
+ case D_LOGS_IDX:
+ return LogsDir;
+ case D_MAILLOGS_IDX:
+ return MailLogsDir;
+ case D_WIISYSCONF_IDX:
+ return WiiSYSCONFDir;
+ case D_WIIMENU_IDX:
+ return WiiMenuDir;
+ case F_DOLPHINCONFIG_IDX:
+ return DolphinConfig;
+ case F_DEBUGGERCONFIG_IDX:
+ return DebuggerConfig;
+ case F_LOGGERCONFIG_IDX:
+ return LoggerConfig;
+ case F_MAINLOG_IDX:
+ return MainLog;
+ case F_WIISYSCONF_IDX:
+ return WiiSYSCONF;
+ case F_RAMDUMP_IDX:
+ return RamDump;
+ case F_ARAMDUMP_IDX:
+ return ARamDump;
+ case F_GCSRAM_IDX:
+ return GCSRam;
+ default:
+ return NULL;
+ }
}
bool WriteStringToFile(bool text_file, const std::string &str, const char *filename)
diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h
index 728ad46f8a..f180b8faf0 100644
--- a/Source/Core/Common/Src/FileUtil.h
+++ b/Source/Core/Common/Src/FileUtil.h
@@ -24,6 +24,38 @@
#include "Common.h"
+// User directory indices for GetUserPath
+enum {
+ D_USER_IDX,
+ D_GCUSER_IDX,
+ D_WIIUSER_IDX,
+ D_CONFIG_IDX,
+ D_GAMECONFIG_IDX,
+ D_MAPS_IDX,
+ D_CACHE_IDX,
+ D_SHADERCACHE_IDX,
+ D_SHADERS_IDX,
+ D_STATESAVES_IDX,
+ D_SCREENSHOTS_IDX,
+ D_HIRESTEXTURES_IDX,
+ D_DUMP_IDX,
+ D_DUMPFRAMES_IDX,
+ D_DUMPTEXTURES_IDX,
+ D_DUMPDSP_IDX,
+ D_LOGS_IDX,
+ D_MAILLOGS_IDX,
+ D_WIISYSCONF_IDX,
+ D_WIIMENU_IDX,
+ F_DOLPHINCONFIG_IDX,
+ F_DEBUGGERCONFIG_IDX,
+ F_LOGGERCONFIG_IDX,
+ F_MAINLOG_IDX,
+ F_WIISYSCONF_IDX,
+ F_RAMDUMP_IDX,
+ F_ARAMDUMP_IDX,
+ F_GCSRAM_IDX,
+};
+
namespace File
{
@@ -78,13 +110,15 @@ bool DeleteDirRecursively(const char *directory);
// Returns the current directory
std::string GetCurrentDir();
+//Create directory and copy contents (does not overwrite existing files)
+void CopyDir(const char *source_path, const char *dest_path);
+
// Set the current directory to given directory
bool SetCurrentDir(const char *directory);
-
// Returns a pointer to a string with a Dolphin data dir in the user's home
// directory. To be used in "multi-user" mode (that is, installed).
-const char *GetUserDirectory();
+const char *GetUserPath(int DirIDX);
// Returns the path to where the plugins are
std::string GetPluginsDirectory();
@@ -93,10 +127,6 @@ std::string GetPluginsDirectory();
std::string GetSysDirectory();
#ifdef __APPLE__
-
-const char *GetConfigDirectory();
-const char *GetSysConfDirectory();
-
std::string GetBundleDirectory();
#endif
diff --git a/Source/Core/Common/Src/LogManager.cpp b/Source/Core/Common/Src/LogManager.cpp
index 7e9aae01ca..764f761c05 100644
--- a/Source/Core/Common/Src/LogManager.cpp
+++ b/Source/Core/Common/Src/LogManager.cpp
@@ -19,6 +19,7 @@
#include "ConsoleListener.h"
#include "Timer.h"
#include "Thread.h"
+#include "FileUtil.h"
void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
const char *file, int line, const char* fmt, ...)
@@ -79,7 +80,7 @@ LogManager::LogManager() {
m_Log[LogTypes::MEMCARD_MANAGER] = new LogContainer("MemCard Manger", "MemCard Manger");
m_Log[LogTypes::NETPLAY] = new LogContainer("NETPLAY", "Netplay");
- m_fileLog = new FileLogListener(MAIN_LOG_FILE);
+ m_fileLog = new FileLogListener(File::GetUserPath(F_MAINLOG_IDX));
m_consoleLog = new ConsoleListener();
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) {
@@ -176,6 +177,10 @@ FileLogListener::FileLogListener(const char *filename) {
setEnable(true);
}
+void FileLogListener::Reload() {
+ m_logfile = fopen(m_filename, "a+");
+}
+
FileLogListener::~FileLogListener() {
free(m_filename);
fclose(m_logfile);
diff --git a/Source/Core/Common/Src/LogManager.h b/Source/Core/Common/Src/LogManager.h
index 4b5c11415a..07f92640fd 100644
--- a/Source/Core/Common/Src/LogManager.h
+++ b/Source/Core/Common/Src/LogManager.h
@@ -42,6 +42,8 @@ public:
FileLogListener(const char *filename);
~FileLogListener();
+ void Reload();
+
void Log(LogTypes::LOG_LEVELS, const char *msg);
bool isValid() {
diff --git a/Source/Core/Common/Src/SysConf.cpp b/Source/Core/Common/Src/SysConf.cpp
index 13fb688a0d..3477770816 100644
--- a/Source/Core/Common/Src/SysConf.cpp
+++ b/Source/Core/Common/Src/SysConf.cpp
@@ -21,13 +21,17 @@
SysConf::SysConf()
: m_IsValid(false)
{
-#if defined(__APPLE__)
- if (LoadFromFile(File::GetSysConfDirectory()))
-#else
- if (LoadFromFile(WII_SYSCONF_FILE))
-#endif
+ if (LoadFromFile(File::GetUserPath(F_WIISYSCONF_IDX)))
m_IsValid = true;
}
+
+void SysConf::Reload()
+{
+ if (m_IsValid)
+ return;
+ if (LoadFromFile(File::GetUserPath(F_WIISYSCONF_IDX)))
+ m_IsValid = true;
+}
SysConf::~SysConf()
{
diff --git a/Source/Core/Common/Src/SysConf.h b/Source/Core/Common/Src/SysConf.h
index 85589d9a70..e3bba9336f 100644
--- a/Source/Core/Common/Src/SysConf.h
+++ b/Source/Core/Common/Src/SysConf.h
@@ -71,6 +71,8 @@ public:
bool IsValid() { return m_IsValid; }
+ void Reload();
+
template<class T>
T GetData(const char* sectionName)
{
diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp
index 3ecd781a8d..24f61385b5 100644
--- a/Source/Core/Core/Src/Boot/Boot.cpp
+++ b/Source/Core/Core/Src/Boot/Boot.cpp
@@ -94,7 +94,7 @@ std::string CBoot::GenerateMapFilename()
u64 TitleID = Loader.GetTitleID();
char tmpBuffer[32];
sprintf(tmpBuffer, "%08x_%08x", (u32)(TitleID >> 32) & 0xFFFFFFFF , (u32)TitleID & 0xFFFFFFFF );
- return FULL_MAPS_DIR + std::string(tmpBuffer) + ".map";
+ return std::string(File::GetUserPath(D_MAPS_IDX)) + std::string(tmpBuffer) + ".map";
}
}
break;
@@ -103,7 +103,7 @@ std::string CBoot::GenerateMapFilename()
case SCoreStartupParameter::BOOT_DOL:
return _StartupPara.m_strFilename.substr(0, _StartupPara.m_strFilename.size()-4) + ".map";
default:
- return FULL_MAPS_DIR + _StartupPara.GetUniqueID() + ".map";
+ return std::string(File::GetUserPath(D_MAPS_IDX)) + _StartupPara.GetUniqueID() + ".map";
}
return std::string("unknown map");
diff --git a/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp b/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp
index 2058634b15..a777b15b6f 100644
--- a/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp
+++ b/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp
@@ -46,7 +46,7 @@ bool CBoot::Boot_WiiWAD(const char* _pFilename)
char Path[260+1];
u64 TitleID = ContentLoader.GetTitleID();
char* pTitleID = (char*)&TitleID;
- sprintf(Path, FULL_WII_USER_DIR "title//%02x%02x%02x%02x/%02x%02x%02x%02x/data/nocopy/",
+ sprintf(Path, "%stitle/%02x%02x%02x%02x/%02x%02x%02x%02x/data/nocopy/", File::GetUserPath(D_WIIUSER_IDX),
(u8)pTitleID[7], (u8)pTitleID[6], (u8)pTitleID[5], (u8)pTitleID[4],
(u8)pTitleID[3], (u8)pTitleID[2], (u8)pTitleID[1], (u8)pTitleID[0]);
File::CreateFullPath(Path);
@@ -99,7 +99,7 @@ bool CBoot::Install_WiiWAD(const char* _pFilename)
//copy WAD's tmd header and contents to content directory
char ContentPath[260+1];
- sprintf(ContentPath, FULL_WII_USER_DIR "title/%08x/%08x/content/", TitleID_HI, TitleID_LO);
+ sprintf(ContentPath, "%stitle/%08x/%08x/content/", File::GetUserPath(D_WIIUSER_IDX), TitleID_HI, TitleID_LO);
File::CreateFullPath(ContentPath);
std::string TMDFileName(ContentPath);
@@ -137,11 +137,11 @@ bool CBoot::Install_WiiWAD(const char* _pFilename)
//Extract and copy WAD's ticket to ticket directory
char TicketPath[260+1];
- sprintf(TicketPath, FULL_WII_USER_DIR "ticket/%08x/", TitleID_HI);
+ sprintf(TicketPath, "%sticket/%08x/", File::GetUserPath(D_WIIUSER_IDX), TitleID_HI);
File::CreateFullPath(TicketPath);
char TicketFileName[260+1];
- sprintf(TicketFileName, FULL_WII_USER_DIR "ticket/%08x/%08x.tik", TitleID_HI, TitleID_LO);
+ sprintf(TicketFileName, "%sticket/%08x/%08x.tik", File::GetUserPath(D_WIIUSER_IDX), TitleID_HI, TitleID_LO);
FILE* pTicketFile = fopen(TicketFileName, "wb");
if (pTicketFile == NULL) {
diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp
index c0b43d877d..60de785186 100644
--- a/Source/Core/Core/Src/ConfigManager.cpp
+++ b/Source/Core/Core/Src/ConfigManager.cpp
@@ -44,13 +44,9 @@ SConfig::~SConfig()
void SConfig::SaveSettings()
{
- NOTICE_LOG(BOOT, "Saving Settings to %s", CONFIG_FILE);
+ NOTICE_LOG(BOOT, "Saving Settings to %s", File::GetUserPath(F_DOLPHINCONFIG_IDX));
IniFile ini;
-#if defined(__APPLE__)
- ini.Load(File::GetConfigDirectory()); // yes we must load first to not kill unknown stuff
-#else
- ini.Load(CONFIG_FILE); // yes we must load first to not kill unknown stuff
-#endif
+ ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX)); // yes we must load first to not kill unknown stuff
// General
{
@@ -139,11 +135,7 @@ void SConfig::SaveSettings()
ini.Set("Core", "WiiMotePlugin",m_LocalCoreStartupParameter.m_strWiimotePlugin[0]);
}
-#if defined(__APPLE__)
- ini.Save(File::GetConfigDirectory());
-#else
- ini.Save(CONFIG_FILE);
-#endif
+ ini.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
m_SYSCONF->Save();
}
@@ -151,13 +143,10 @@ void SConfig::SaveSettings()
void SConfig::LoadSettings()
{
- INFO_LOG(BOOT, "Loading Settings from %s", CONFIG_FILE);
+ INFO_LOG(BOOT, "Loading Settings from %s", File::GetUserPath(F_DOLPHINCONFIG_IDX));
IniFile ini;
-#if defined(__APPLE__)
- ini.Load(File::GetConfigDirectory());
-#else
- ini.Load(CONFIG_FILE);
-#endif
+ ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
+
std::string PluginsDir = File::GetPluginsDirectory();
// Hard coded default
@@ -267,6 +256,6 @@ void SConfig::LoadSettings()
void SConfig::LoadSettingsHLE()
{
IniFile ini;
- ini.Load(FULL_CONFIG_DIR "DSP.ini");
+ ini.Load((std::string(File::GetUserPath(D_CONFIG_IDX)) + "DSP.ini").c_str());
ini.Get("Config", "EnableRE0AudioFix", &m_EnableRE0Fix, false); // RE0 Hack
}
diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp
index f6f7264b0c..e6f0cdfe38 100644
--- a/Source/Core/Core/Src/Core.cpp
+++ b/Source/Core/Core/Src/Core.cpp
@@ -530,11 +530,11 @@ static inline std::string GenerateScreenshotName()
int index = 1;
std::string tempname, name;
std::string gameId = GetStartupParameter().GetUniqueID();
- tempname = FULL_SCREENSHOTS_DIR + gameId + DIR_SEP_CHR;
+ tempname = std::string(File::GetUserPath(D_SCREENSHOTS_IDX)) + gameId + DIR_SEP_CHR;
if (!File::CreateFullPath(tempname.c_str())) {
//fallback to old-style screenshots, without folder.
- tempname = FULL_SCREENSHOTS_DIR;
+ tempname = std::string(File::GetUserPath(D_SCREENSHOTS_IDX));
}
//append gameId, tempname only contains the folder here.
tempname += gameId;
diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp
index 04b314e78b..60dd6f68a8 100644
--- a/Source/Core/Core/Src/CoreParameter.cpp
+++ b/Source/Core/Core/Src/CoreParameter.cpp
@@ -230,7 +230,7 @@ bool SCoreStartupParameter::AutoSetup(EBootBS2 _BootBS2)
// Setup paths
CheckMemcardPath(SConfig::GetInstance().m_strMemoryCardA, Region, true);
CheckMemcardPath(SConfig::GetInstance().m_strMemoryCardB, Region, false);
- m_strSRAM = GC_SRAM_FILE;
+ m_strSRAM = File::GetUserPath(F_GCSRAM_IDX);
if (!bWii)
{
m_strBootROM = File::GetSysDirectory() + GC_SYS_DIR + DIR_SEP + Region + DIR_SEP GC_IPL;
@@ -259,7 +259,7 @@ void SCoreStartupParameter::CheckMemcardPath(std::string& memcardPath, std::stri
{
// Use default memcard path if there is no user defined name
std::string defaultFilename = isSlotA ? GC_MEMCARDA : GC_MEMCARDB;
- memcardPath = FULL_GC_USER_DIR + defaultFilename + ext;
+ memcardPath = std::string(File::GetUserPath(D_GCUSER_IDX)) + defaultFilename + ext;
}
else
{
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp
index 6b9e643fc6..32c18c5dcd 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp
@@ -193,7 +193,7 @@ void CopySettingsFile(std::string& DeviceName)
else
Source += "setting-eur.txt";
- std::string Target = FULL_WII_ROOT_DIR + DeviceName;
+ std::string Target = std::string(File::GetUserPath(D_WIIUSER_IDX)) + DeviceName;
// Check if the target dir exists, otherwise create it
std::string TargetDir = Target.substr(0, Target.find_last_of(DIR_SEP));
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
index 7b75a87abd..ebca8d83e7 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
@@ -30,7 +30,7 @@ std::string HLE_IPC_BuildFilename(const char* _pFilename, int _size)
char Buffer[128];
memcpy(Buffer, _pFilename, _size);
- std::string Filename(FULL_WII_ROOT_DIR);
+ std::string Filename = std::string(File::GetUserPath(D_WIIUSER_IDX));
if (Buffer[1] == '0')
Filename += std::string("/title"); // this looks and feel like a hack...
@@ -289,4 +289,4 @@ void CWII_IPC_HLE_Device_FileIO::DoState(PointerWrap &p)
fseek(m_pFileHandle, m_Seek, SEEK_SET);
}
}
-} \ No newline at end of file
+}
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
index 42db4eee29..0ea63cb76e 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
@@ -764,7 +764,7 @@ bool CWII_IPC_HLE_Device_es::IsValid(u64 _TitleID) const
std::string CWII_IPC_HLE_Device_es::CreateTicketFileName(u64 _TitleID) const
{
char TicketFilename[1024];
- sprintf(TicketFilename, "%sticket/%08x/%08x.tik", FULL_WII_USER_DIR, (u32)(_TitleID >> 32), (u32)_TitleID);
+ sprintf(TicketFilename, "%sticket/%08x/%08x.tik", File::GetUserPath(D_WIIUSER_IDX), (u32)(_TitleID >> 32), (u32)_TitleID);
return TicketFilename;
}
@@ -772,7 +772,7 @@ std::string CWII_IPC_HLE_Device_es::CreateTicketFileName(u64 _TitleID) const
std::string CWII_IPC_HLE_Device_es::CreateTitleContentPath(u64 _TitleID) const
{
char TicketFilename[1024];
- sprintf(TicketFilename, "%stitle/%08x/%08x/content", FULL_WII_USER_DIR, (u32)(_TitleID >> 32), (u32)_TitleID);
+ sprintf(TicketFilename, "%stitle/%08x/%08x/content", File::GetUserPath(D_WIIUSER_IDX), (u32)(_TitleID >> 32), (u32)_TitleID);
return TicketFilename;
}
@@ -780,10 +780,11 @@ std::string CWII_IPC_HLE_Device_es::CreateTitleContentPath(u64 _TitleID) const
void CWII_IPC_HLE_Device_es::FindValidTitleIDs()
{
m_TitleIDs.clear();
+ char TitlePath[1024];
- std::string TitlePath(FULL_WII_USER_DIR + std::string("title"));
+ sprintf(TitlePath, "%stitle", File::GetUserPath(D_WIIUSER_IDX));
File::FSTEntry ParentEntry;
- u32 NumEntries = ScanDirectoryTree(TitlePath.c_str(), ParentEntry);
+ u32 NumEntries = ScanDirectoryTree(TitlePath, ParentEntry);
for(std::vector<File::FSTEntry>::iterator Level1 = ParentEntry.children.begin(); Level1 != ParentEntry.children.end(); ++Level1)
{
if (Level1->isDirectory)
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp
index 47cda0ceb4..a67a602dd5 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp
@@ -41,10 +41,10 @@ bool CWII_IPC_HLE_Device_fs::Open(u32 _CommandAddress, u32 _Mode)
{
// clear tmp folder
{
- //std::string WiiTempFolder = File::GetUserDirectory() + FULL_WII_USER_DIR + std::string("tmp");
- std::string WiiTempFolder = FULL_WII_USER_DIR + std::string("tmp");
- File::DeleteDirRecursively(WiiTempFolder.c_str());
- File::CreateDir(WiiTempFolder.c_str());
+ char Path[260];
+ snprintf(Path, sizeof(Path), "%stmp", File::GetUserPath(D_WIIUSER_IDX));
+ File::DeleteDirRecursively(Path);
+ File::CreateDir(Path);
}
// create home directory
@@ -61,7 +61,7 @@ bool CWII_IPC_HLE_Device_fs::Open(u32 _CommandAddress, u32 _Mode)
if (GameID == 0) GameID = 0xF00DBEEF;
if (TitleID == 0) TitleID = 0x00010000;
- sprintf(Path, FULL_WII_USER_DIR "title/%08x/%08x/data/nocopy/", TitleID, GameID);
+ snprintf(Path, sizeof(Path), "%stitle/%08x/%08x/data/nocopy/", File::GetUserPath(D_WIIUSER_IDX), TitleID, GameID);
File::CreateFullPath(Path);
}
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp
index 0986b0192d..aadacb97d6 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_sdio_slot0.cpp
@@ -47,7 +47,8 @@ bool CWII_IPC_HLE_Device_sdio_slot0::Open(u32 _CommandAddress, u32 _Mode)
{
INFO_LOG(WII_IPC_SD, "Open");
- char filename[16] = "sd.raw";
+ char filename[300];
+ sprintf(filename, "%ssd.raw", File::GetUserPath(D_WIIUSER_IDX));
m_Card = fopen(filename, "r+b");
if(!m_Card)
{
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp
index 7c82ecd427..e85835b9bf 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp
@@ -19,6 +19,7 @@
#include "../Core.h" // Local core functions
#include "WII_IPC_HLE_Device_usb.h"
#include "WII_IPC_HLE_Device_usb_kbd.h"
+#include "FileUtil.h"
#ifdef _WIN32
#include <windows.h>
@@ -35,7 +36,7 @@ bool CWII_IPC_HLE_Device_usb_kbd::Open(u32 _CommandAddress, u32 _Mode)
{
INFO_LOG(WII_IPC_STM, "CWII_IPC_HLE_Device_usb_kbd: Open");
IniFile ini;
- ini.Load(CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
ini.Get("USB Keyboard", "Layout", &m_KeyboardLayout, KBD_LAYOUT_QWERTY);
for(int i = 0; i < 256; i++)
diff --git a/Source/Core/Core/Src/LuaInterface.cpp b/Source/Core/Core/Src/LuaInterface.cpp
index 1fedd31a05..c13a6c709d 100644
--- a/Source/Core/Core/Src/LuaInterface.cpp
+++ b/Source/Core/Core/Src/LuaInterface.cpp
@@ -2745,7 +2745,7 @@ DEFINE_LUA_FUNCTION(emulua_loadrom, "filename")
// Load game specific settings
IniFile game_ini;
std::string unique_id = StartUp.GetUniqueID();
- StartUp.m_strGameIni = FULL_GAMECONFIG_DIR + unique_id + ".ini";
+ StartUp.m_strGameIni = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + unique_id + ".ini";
if (unique_id.size() == 6 && game_ini.Load(StartUp.m_strGameIni.c_str()))
{
// General settings
diff --git a/Source/Core/Core/Src/PatchEngine.cpp b/Source/Core/Core/Src/PatchEngine.cpp
index 6080c39b74..ca90c4491a 100644
--- a/Source/Core/Core/Src/PatchEngine.cpp
+++ b/Source/Core/Core/Src/PatchEngine.cpp
@@ -34,6 +34,7 @@
#include "PatchEngine.h"
#include "HW/Memmap.h"
#include "ActionReplay.h"
+#include "FileUtil.h"
using namespace Common;
@@ -149,7 +150,7 @@ int GetSpeedhackCycles(u32 addr)
void LoadPatches(const char *gameID)
{
IniFile ini;
- std::string filename = std::string(FULL_GAMECONFIG_DIR) + gameID + ".ini";
+ std::string filename = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + gameID + ".ini";
if (ini.Load(filename.c_str())) {
LoadPatchSection("OnFrame", onFrame, ini);
ActionReplay::LoadCodes(ini, false);
diff --git a/Source/Core/Core/Src/PowerPC/PPCTables.cpp b/Source/Core/Core/Src/PowerPC/PPCTables.cpp
index 69f8c53dc7..ac6ad2982c 100644
--- a/Source/Core/Core/Src/PowerPC/PPCTables.cpp
+++ b/Source/Core/Core/Src/PowerPC/PPCTables.cpp
@@ -21,6 +21,7 @@
#include "Common.h"
#include "PPCTables.h"
#include "StringUtil.h"
+#include "FileUtil.h"
#include "Interpreter/Interpreter.h"
#include "Interpreter/Interpreter_Tables.h"
#if !(defined(NOJIT) && NOJIT)
@@ -217,7 +218,7 @@ void PrintInstructionRunCounts()
void LogCompiledInstructions()
{
static int time = 0;
- FILE *f = fopen(StringFromFormat(FULL_LOGS_DIR "inst_log%i.txt", time).c_str(), "w");
+ FILE *f = fopen(StringFromFormat("%sinst_log%i.txt", File::GetUserPath(D_LOGS_IDX), time).c_str(), "w");
for (int i = 0; i < m_numInstructions; i++)
{
if (m_allInstructions[i]->compileCount > 0) {
@@ -225,7 +226,7 @@ void LogCompiledInstructions()
}
}
fclose(f);
- f = fopen(StringFromFormat(FULL_LOGS_DIR "inst_not%i.txt", time).c_str(), "w");
+ f = fopen(StringFromFormat("%sinst_not%i.txt", File::GetUserPath(D_LOGS_IDX), time).c_str(), "w");
for (int i = 0; i < m_numInstructions; i++)
{
if (m_allInstructions[i]->compileCount == 0) {
@@ -234,7 +235,7 @@ void LogCompiledInstructions()
}
fclose(f);
#ifdef OPLOG
- f = fopen(StringFromFormat(FULL_LOGS_DIR OP_TO_LOG "_at.txt", time).c_str(), "w");
+ f = fopen(StringFromFormat("%s" OP_TO_LOG "_at.txt", File::GetUserPath(D_LOGS_IDX), time).c_str(), "w");
for (size_t i = 0; i < rsplocations.size(); i++) {
fprintf(f, OP_TO_LOG ": %08x\n", rsplocations[i]);
}
diff --git a/Source/Core/Core/Src/State.cpp b/Source/Core/Core/Src/State.cpp
index 0e6ab8e017..1cc7b1a867 100644
--- a/Source/Core/Core/Src/State.cpp
+++ b/Source/Core/Core/Src/State.cpp
@@ -157,10 +157,10 @@ THREAD_RETURN CompressAndDumpState(void *pArgs)
// Moving to last overwritten save-state
if (File::Exists(cur_filename.c_str())) {
- if (File::Exists(FULL_STATESAVES_DIR "lastState.sav"))
- File::Delete(FULL_STATESAVES_DIR "lastState.sav");
+ if (File::Exists((std::string(File::GetUserPath(D_STATESAVES_IDX)) + "lastState.sav").c_str()))
+ File::Delete((std::string(File::GetUserPath(D_STATESAVES_IDX)) + "lastState.sav").c_str());
- if (!File::Rename(cur_filename.c_str(), FULL_STATESAVES_DIR "lastState.sav"))
+ if (!File::Rename(cur_filename.c_str(), (std::string(File::GetUserPath(D_STATESAVES_IDX)) + "lastState.sav").c_str()))
Core::DisplayMessage("Failed to move previous state to state undo backup", 1000);
}
@@ -378,7 +378,7 @@ void State_Shutdown()
std::string MakeStateFilename(int state_number)
{
- return StringFromFormat(FULL_STATESAVES_DIR "%s.s%02i", Core::GetStartupParameter().GetUniqueID().c_str(), state_number);
+ return StringFromFormat("%s%s.s%02i", File::GetUserPath(D_STATESAVES_IDX), Core::GetStartupParameter().GetUniqueID().c_str(), state_number);
}
void State_SaveAs(const std::string &filename)
@@ -445,7 +445,7 @@ void State_UndoLoadState()
// Load the state that the last save state overwritten on
void State_UndoSaveState()
{
- State_LoadAs(FULL_STATESAVES_DIR "lastState.sav");
+ State_LoadAs((std::string(File::GetUserPath(D_STATESAVES_IDX)) + "lastState.sav").c_str());
}
size_t State_GetSize()
diff --git a/Source/Core/DSPCore/Src/disassemble.cpp b/Source/Core/DSPCore/Src/disassemble.cpp
index 3081bbefcf..26e3c502e0 100644
--- a/Source/Core/DSPCore/Src/disassemble.cpp
+++ b/Source/Core/DSPCore/Src/disassemble.cpp
@@ -50,7 +50,7 @@ DSPDisassembler::~DSPDisassembler()
{
// Some old code for logging unknown ops.
char filename[MAX_PATH];
- sprintf(filename, "%sUnkOps.txt", FULL_DSP_DUMP_DIR);
+ sprintf(filename, "%sUnkOps.txt", File::GetUserPath(D_DUMPDSP_IDX));
FILE *uo = fopen(filename, "w");
if (!uo)
return;
diff --git a/Source/Core/DebuggerWX/Src/BreakpointWindow.cpp b/Source/Core/DebuggerWX/Src/BreakpointWindow.cpp
index f06ddfcde3..8198247038 100644
--- a/Source/Core/DebuggerWX/Src/BreakpointWindow.cpp
+++ b/Source/Core/DebuggerWX/Src/BreakpointWindow.cpp
@@ -23,7 +23,7 @@
#include "MemoryCheckDlg.h"
#include "Host.h"
#include "PowerPC/PowerPC.h"
-
+#include "FileUtil.h"
BEGIN_EVENT_TABLE(CBreakPointWindow, wxPanel)
EVT_CLOSE(CBreakPointWindow::OnClose)
@@ -137,7 +137,7 @@ void CBreakPointWindow::OnAddBreakPointMany()
{
// load ini
IniFile ini;
- std::string filename = std::string(FULL_GAMECONFIG_DIR "BreakPoints.ini");
+ std::string filename = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + "BreakPoints.ini";
if (ini.Load(filename.c_str())) // check if there is any file there
{
@@ -163,7 +163,7 @@ void CBreakPointWindow::OnAddBreakPointMany()
}
else
{
- wxMessageBox(_T("Couldn't find User/GameConfig/BreakPoints.ini file"));
+ wxMessageBox(_T("Couldn't find GameConfig/BreakPoints.ini file"));
}
}
@@ -183,7 +183,7 @@ void CBreakPointWindow::OnAddMemoryCheckMany()
{
// load ini
IniFile ini;
- std::string filename = std::string(FULL_GAMECONFIG_DIR "MemoryChecks.ini");
+ std::string filename = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + "MemoryChecks.ini";
if (ini.Load(filename.c_str()))
{
@@ -262,7 +262,7 @@ void CBreakPointWindow::OnAddMemoryCheckMany()
}
else
{
- wxMessageBox(_T("You have no ") T_FULL_GAMECONFIG_DIR _T("MemoryChecks.ini file"));
+ wxMessageBox(_T("You have no ") + wxString::FromAscii(File::GetUserPath(D_GAMECONFIG_IDX)) + _T("MemoryChecks.ini file"));
}
}
diff --git a/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp b/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp
index 4588fdb05c..a4f8904fbe 100644
--- a/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp
+++ b/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp
@@ -84,7 +84,7 @@ extern "C" // Bitmaps
void CCodeWindow::Load()
{
IniFile ini;
- ini.Load(DEBUGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
// The font to override DebuggerFont with
std::string fontDesc;
@@ -133,7 +133,7 @@ void CCodeWindow::Load()
void CCodeWindow::Save()
{
IniFile ini;
- ini.Load(DEBUGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
ini.Set("ShowOnStart", "DebuggerFont", std::string(DebuggerFont.GetNativeFontInfoUserDesc().mb_str()));
@@ -172,7 +172,7 @@ void CCodeWindow::Save()
ini.Set("Float", "Sound", !!FindWindowById(IDM_SOUNDWINDOW_PARENT));
ini.Set("Float", "Video", !!FindWindowById(IDM_VIDEOWINDOW_PARENT));
- ini.Save(DEBUGGER_CONFIG_FILE);
+ ini.Save(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
}
diff --git a/Source/Core/DebuggerWX/Src/MemoryWindow.cpp b/Source/Core/DebuggerWX/Src/MemoryWindow.cpp
index 2d449d4e73..8e4db3e26d 100644
--- a/Source/Core/DebuggerWX/Src/MemoryWindow.cpp
+++ b/Source/Core/DebuggerWX/Src/MemoryWindow.cpp
@@ -27,6 +27,7 @@
#include "HW/CPU.h"
#include "PowerPC/PowerPC.h"
#include "Host.h"
+#include "FileUtil.h"
#include "Debugger/PPCDebugInterface.h"
#include "PowerPC/PPCSymbolDB.h"
@@ -243,7 +244,7 @@ void CMemoryWindow::OnDumpMemory( wxCommandEvent& event )
case 0:
default:
{
- FILE* pDumpFile = fopen(MAINRAM_DUMP_FILE, "wb");
+ FILE* pDumpFile = fopen(File::GetUserPath(F_RAMDUMP_IDX), "wb");
if (pDumpFile)
{
if (Memory::m_pRAM)
@@ -257,7 +258,7 @@ void CMemoryWindow::OnDumpMemory( wxCommandEvent& event )
case 1:
{
- FILE* pDumpFile = fopen(ARAM_DUMP_FILE, "wb");
+ FILE* pDumpFile = fopen(File::GetUserPath(F_ARAMDUMP_IDX), "wb");
if (pDumpFile)
{
u8* aram = DSP::GetARAMPtr();
diff --git a/Source/Core/DiscIO/Src/BannerLoaderWii.cpp b/Source/Core/DiscIO/Src/BannerLoaderWii.cpp
index 9108d5fcd2..aa1131c5b4 100644
--- a/Source/Core/DiscIO/Src/BannerLoaderWii.cpp
+++ b/Source/Core/DiscIO/Src/BannerLoaderWii.cpp
@@ -40,8 +40,8 @@ CBannerLoaderWii::CBannerLoaderWii(DiscIO::IVolume *pVolume)
TitleID = Common::swap64(TitleID);
- sprintf(Filename, FULL_WII_USER_DIR "title/%08x/%08x/data/banner.bin",
- (u32)(TitleID>>32), (u32)TitleID);
+ sprintf(Filename, "%stitle/%08x/%08x/data/banner.bin",
+ File::GetUserPath(D_WIIUSER_IDX), (u32)(TitleID>>32), (u32)TitleID);
if (!File::Exists(Filename))
{
@@ -52,14 +52,14 @@ CBannerLoaderWii::CBannerLoaderWii(DiscIO::IVolume *pVolume)
char bnrFilename[260], titleFolder[260];
// Creating title folder
- sprintf(titleFolder, FULL_WII_USER_DIR "title/%08x/%08x/data/",
- (u32)(TitleID>>32), (u32)TitleID);
+ sprintf(titleFolder, "%stitle/%08x/%08x/data/",
+ File::GetUserPath(D_WIIUSER_IDX), (u32)(TitleID>>32), (u32)TitleID);
if(!File::Exists(titleFolder))
File::CreateFullPath(titleFolder);
// Extracting banner.bin from opening.bnr
- sprintf(bnrFilename, FULL_WII_USER_DIR "title/%08x/%08x/data/opening.bnr",
- (u32)(TitleID>>32), (u32)TitleID);
+ sprintf(bnrFilename, "%stitle/%08x/%08x/data/opening.bnr",
+ File::GetUserPath(D_WIIUSER_IDX), (u32)(TitleID>>32), (u32)TitleID);
if(!_rFileSystem.ExportFile("opening.bnr", bnrFilename)) {
m_IsValid = false;
diff --git a/Source/Core/DiscIO/Src/NANDContentLoader.cpp b/Source/Core/DiscIO/Src/NANDContentLoader.cpp
index 1fa3b57465..4a92b86377 100644
--- a/Source/Core/DiscIO/Src/NANDContentLoader.cpp
+++ b/Source/Core/DiscIO/Src/NANDContentLoader.cpp
@@ -60,7 +60,7 @@ CSharedContent CSharedContent::m_Instance;
CSharedContent::CSharedContent()
{
char szFilename[1024];
- sprintf(szFilename, "%sshared1/content.map", FULL_WII_USER_DIR);
+ sprintf(szFilename, "%sshared1/content.map", File::GetUserPath(D_WIIUSER_IDX));
if (File::Exists(szFilename))
{
FILE* pFile = fopen(szFilename, "rb");
@@ -86,7 +86,7 @@ std::string CSharedContent::GetFilenameFromSHA1(u8* _pHash)
if (memcmp(_pHash, m_Elements[i].SHA1Hash, 20) == 0)
{
char szFilename[1024];
- sprintf(szFilename, "%sshared1/%c%c%c%c%c%c%c%c.app", FULL_WII_USER_DIR,
+ sprintf(szFilename, "%sshared1/%c%c%c%c%c%c%c%c.app", File::GetUserPath(D_WIIUSER_IDX),
m_Elements[i].FileName[0], m_Elements[i].FileName[1], m_Elements[i].FileName[2], m_Elements[i].FileName[3],
m_Elements[i].FileName[4], m_Elements[i].FileName[5], m_Elements[i].FileName[6], m_Elements[i].FileName[7]);
return szFilename;
diff --git a/Source/Core/DolphinWX/Src/BootManager.cpp b/Source/Core/DolphinWX/Src/BootManager.cpp
index 883742aedb..03fce5a1e7 100644
--- a/Source/Core/DolphinWX/Src/BootManager.cpp
+++ b/Source/Core/DolphinWX/Src/BootManager.cpp
@@ -116,7 +116,7 @@ bool BootCore(const std::string& _rFilename)
// Load game specific settings
IniFile game_ini;
std::string unique_id = StartUp.GetUniqueID();
- StartUp.m_strGameIni = FULL_GAMECONFIG_DIR + unique_id + ".ini";
+ StartUp.m_strGameIni = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + unique_id + ".ini";
if (unique_id.size() == 6 && game_ini.Load(StartUp.m_strGameIni.c_str()))
{
// General settings
diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp
index 75464c48fe..aba165eeba 100644
--- a/Source/Core/DolphinWX/Src/ConfigMain.cpp
+++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp
@@ -764,7 +764,7 @@ void CConfigMain::ChooseMemcardPath(std::string& strMemcard, bool isSlotA)
{
std::string filename = std::string(wxFileSelector(
wxT("Choose a file to open"),
- T_FULL_GC_USER_DIR,
+ wxString::FromAscii(File::GetUserPath(D_GCUSER_IDX)),
isSlotA ? wxT(GC_MEMCARDA) : wxT(GC_MEMCARDB),
wxEmptyString,
wxT("Gamecube Memory Cards (*.raw,*.gcp)|*.raw;*.gcp")).mb_str());
diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp
index aa027358fa..be2499a580 100644
--- a/Source/Core/DolphinWX/Src/Frame.cpp
+++ b/Source/Core/DolphinWX/Src/Frame.cpp
@@ -414,7 +414,7 @@ CFrame::CFrame(wxFrame* parent,
else
{
IniFile ini; int pos;
- ini.Load(LOGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
ini.Get("LogWindow", "pos", &pos, 2);
m_Mgr->GetPane(wxT("Pane 0")).Show().PaneBorder(false).CaptionVisible(false).Layer(0).Center();
diff --git a/Source/Core/DolphinWX/Src/FrameAui.cpp b/Source/Core/DolphinWX/Src/FrameAui.cpp
index 26575133f7..b362a323e8 100644
--- a/Source/Core/DolphinWX/Src/FrameAui.cpp
+++ b/Source/Core/DolphinWX/Src/FrameAui.cpp
@@ -772,7 +772,7 @@ void CFrame::SetSimplePaneSize()
int Size = PercentageToPixels(50, this->GetSize().GetX());
IniFile ini;
- ini.Load(LOGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
ini.Get("LogWindow", "x", &x, Size);
ini.Get("LogWindow", "y", &y, Size);
@@ -894,7 +894,7 @@ void CFrame::SaveLocal()
std::string _Perspectives;
IniFile ini;
- ini.Load(DEBUGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
ini.Get("Perspectives", "Perspectives", &_Perspectives, "");
ini.Get("Perspectives", "Active", &ActivePerspective, 5);
SplitString(_Perspectives, ",", VPerspectives);
@@ -945,7 +945,7 @@ void CFrame::Save()
int iClientX = this->GetSize().GetX(), iClientY = this->GetSize().GetY();
IniFile ini;
- ini.Load(DEBUGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
std::string _Section = StringFromFormat("P - %s", Perspectives.at(ActivePerspective).Name.c_str());
ini.Set(_Section.c_str(), "Perspective", m_Mgr->SavePerspective().mb_str());
@@ -975,7 +975,7 @@ void CFrame::Save()
STmp = STmp.substr(0, STmp.length()-1);
ini.Set("Perspectives", "Perspectives", STmp.c_str());
ini.Set("Perspectives", "Active", ActivePerspective);
- ini.Save(DEBUGGER_CONFIG_FILE);
+ ini.Save(File::GetUserPath(F_DEBUGGERCONFIG_IDX));
// Save notebook affiliations
g_pCodeWindow->Save();
diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp
index d266656e0d..8a449e2327 100644
--- a/Source/Core/DolphinWX/Src/FrameTools.cpp
+++ b/Source/Core/DolphinWX/Src/FrameTools.cpp
@@ -196,7 +196,7 @@ void CFrame::CreateMenu()
toolsMenu->Append(IDM_NETPLAY, _T("Start &NetPlay"));
#endif
- if (DiscIO::CNANDContentManager::Access().GetNANDLoader(FULL_WII_MENU_DIR).IsValid())
+ if (DiscIO::CNANDContentManager::Access().GetNANDLoader(std::string (File::GetUserPath(D_WIIMENU_IDX))).IsValid())
{
toolsMenu->Append(IDM_LOAD_WII_MENU, _T("Load Wii Menu"));
}
@@ -874,7 +874,7 @@ void CFrame::OnShow_CheatsWindow(wxCommandEvent& WXUNUSED (event))
void CFrame::OnLoadWiiMenu(wxCommandEvent& WXUNUSED (event))
{
- StartGame(FULL_WII_MENU_DIR);
+ StartGame(std::string (File::GetUserPath(D_WIIMENU_IDX)));
}
void CFrame::OnConnectWiimote(wxCommandEvent& event)
@@ -1027,7 +1027,7 @@ void CFrame::UpdateGUI()
// Misc
GetMenuBar()->FindItem(IDM_CHANGEDISC)->Enable(Initialized);
- if (DiscIO::CNANDContentManager::Access().GetNANDLoader(FULL_WII_MENU_DIR).IsValid())
+ if (DiscIO::CNANDContentManager::Access().GetNANDLoader(std::string(File::GetUserPath(D_WIIMENU_IDX))).IsValid())
GetMenuBar()->FindItem(IDM_LOAD_WII_MENU)->Enable(!Initialized);
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE1)->Enable(Initialized && Core::GetStartupParameter().bWii);
@@ -1170,7 +1170,7 @@ void CFrame::GameListChanged(wxCommandEvent& event)
break;
case IDM_PURGECACHE:
CFileSearch::XStringVector Directories;
- Directories.push_back(FULL_CACHE_DIR);
+ Directories.push_back(File::GetUserPath(D_CACHE_IDX));
CFileSearch::XStringVector Extensions;
Extensions.push_back("*.cache");
diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp
index 656fcb2b35..9599418c33 100644
--- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp
+++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp
@@ -393,7 +393,7 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
// Load the INI file for columns that read from it
IniFile ini;
- ini.Load(std::string(FULL_GAMECONFIG_DIR + (rISOFile.GetUniqueID()) + ".ini").c_str());
+ ini.Load((std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + (rISOFile.GetUniqueID()) + ".ini").c_str());
// Emulation status
int nState;
@@ -640,8 +640,8 @@ int wxCALLBACK wxListCompare(long item1, long item2, long sortData)
return 0;
case CGameListCtrl::COLUMN_EMULATION_STATE:
IniFile ini; int nState1 = 0, nState2 = 0;
- std::string GameIni1 = FULL_GAMECONFIG_DIR + iso1->GetUniqueID() + ".ini";
- std::string GameIni2 = FULL_GAMECONFIG_DIR + iso2->GetUniqueID() + ".ini";
+ std::string GameIni1 = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + iso1->GetUniqueID() + ".ini";
+ std::string GameIni2 = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + iso2->GetUniqueID() + ".ini";
ini.Load(GameIni1.c_str());
ini.Get("EmuState", "EmulationStateId", &nState1);
@@ -746,7 +746,7 @@ void CGameListCtrl::OnMouseMotion(wxMouseEvent& event)
const GameListItem& rISO = m_ISOFiles[GetItemData(item)];
IniFile ini;
- ini.Load(std::string(FULL_GAMECONFIG_DIR + (rISO.GetUniqueID()) + ".ini").c_str());
+ ini.Load((std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + (rISO.GetUniqueID()) + ".ini").c_str());
// Emulation status
std::string emuState[5] = {"Broken", "Intro", "In-Game", "Playable", "Perfect"}, issues;
diff --git a/Source/Core/DolphinWX/Src/ISOFile.cpp b/Source/Core/DolphinWX/Src/ISOFile.cpp
index 178d150433..f1a70b260a 100644
--- a/Source/Core/DolphinWX/Src/ISOFile.cpp
+++ b/Source/Core/DolphinWX/Src/ISOFile.cpp
@@ -152,9 +152,9 @@ bool GameListItem::LoadFromCache()
void GameListItem::SaveToCache()
{
- if (!File::IsDirectory(FULL_CACHE_DIR))
+ if (!File::IsDirectory(File::GetUserPath(D_CACHE_IDX)))
{
- File::CreateDir(FULL_CACHE_DIR);
+ File::CreateDir(File::GetUserPath(D_CACHE_IDX));
}
CChunkFileReader::Save<GameListItem>(CreateCacheFilename(), CACHE_REVISION, *this);
@@ -188,7 +188,7 @@ std::string GameListItem::CreateCacheFilename()
Filename.append(".gcz");
Filename.append(".cache");
- std::string fullname(FULL_CACHE_DIR);
+ std::string fullname(std::string(File::GetUserPath(D_CACHE_IDX)));
fullname += Filename;
return fullname;
}
@@ -226,12 +226,12 @@ const std::string GameListItem::GetWiiFSPath() const
Iso->GetTitleID((u8*)&Title);
Title = Common::swap64(Title);
- sprintf(Path, FULL_WII_USER_DIR "title/%08x/%08x/data/", (u32)(Title>>32), (u32)Title);
+ sprintf(Path, "%stitle/%08x/%08x/data/", File::GetUserPath(D_WIIUSER_IDX), (u32)(Title>>32), (u32)Title);
if (!File::Exists(Path))
File::CreateFullPath(Path);
- ret = std::string(wxGetCwd().mb_str()) + std::string(Path).substr(strlen(ROOT_DIR));
+ ret = std::string(Path);
}
delete Iso;
}
diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp
index 6f9570306b..3dcf8a53b7 100644
--- a/Source/Core/DolphinWX/Src/ISOProperties.cpp
+++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp
@@ -109,7 +109,7 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
CreateGUIControls(DiscIO::IsVolumeWadFile(OpenISO));
- GameIniFile = FULL_GAMECONFIG_DIR + (OpenISO->GetUniqueID()) + ".ini";
+ GameIniFile = std::string(File::GetUserPath(D_GAMECONFIG_IDX)) + (OpenISO->GetUniqueID()) + ".ini";
if (GameIni.Load(GameIniFile.c_str()))
LoadGameConfig();
else
diff --git a/Source/Core/DolphinWX/Src/LogWindow.cpp b/Source/Core/DolphinWX/Src/LogWindow.cpp
index d295d89e95..a8fafd273e 100644
--- a/Source/Core/DolphinWX/Src/LogWindow.cpp
+++ b/Source/Core/DolphinWX/Src/LogWindow.cpp
@@ -27,6 +27,7 @@
#include "LogWindow.h"
#include "ConsoleListener.h"
#include "Console.h"
+#include "FileUtil.h"
// Milliseconds between msgQueue flushes to wxTextCtrl
@@ -175,13 +176,13 @@ void CLogWindow::SaveSettings()
ini.Set("Options", "WriteToWindow", m_writeWindow);
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
ini.Set("Logs", m_LogManager->getShortName((LogTypes::LOG_TYPE)i), m_checks->IsChecked(i));
- ini.Save(LOGGER_CONFIG_FILE);
+ ini.Save(File::GetUserPath(F_LOGGERCONFIG_IDX));
}
void CLogWindow::LoadSettings()
{
IniFile ini;
- ini.Load(LOGGER_CONFIG_FILE);
+ ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
int verbosity,font;
ini.Get("Options", "Verbosity", &verbosity, 0);
if (verbosity < 1) verbosity = 1;
diff --git a/Source/Core/DolphinWX/Src/Main.cpp b/Source/Core/DolphinWX/Src/Main.cpp
index b39a6f1411..e1feabd77d 100644
--- a/Source/Core/DolphinWX/Src/Main.cpp
+++ b/Source/Core/DolphinWX/Src/Main.cpp
@@ -135,9 +135,9 @@ bool DolphinApp::OnInit()
"Sayonara!\n");
return false;
}
-#ifndef __APPLE__
+#if ! defined(__APPLE__) && ! defined(__linux__)
// Keep the user config dir free unless user wants to save the working dir
- if (!File::Exists(FULL_CONFIG_DIR "portable"))
+ if (!File::Exists((std::string(File::GetUserPath(D_CONFIG_IDX)) + "portable").c_str()))
{
char tmp[1024];
sprintf(tmp, "%s/.dolphin%swd", (const char*)wxStandardPaths::Get().GetUserConfigDir().mb_str(),
@@ -151,7 +151,7 @@ bool DolphinApp::OnInit()
{
if (PanicYesNo("Dolphin has not been configured with an install location,\nKeep Dolphin portable?"))
{
- FILE* portable = fopen(FULL_CONFIG_DIR "portable", "w");
+ FILE* portable = fopen((std::string(File::GetUserPath(D_CONFIG_IDX)) + "portable").c_str(), "w");
if (!portable)
{
PanicAlert("Portable Setting could not be saved\n Are you running Dolphin from read only media or from a directory that dolphin is not located in?");
@@ -296,19 +296,23 @@ bool DolphinApp::OnInit()
chdir(AppSupportDir);
//create all necessary dir in user directory
- if (!File::Exists(FULL_GC_USER_DIR)) File::CreateFullPath(FULL_GC_USER_DIR);
- if (!File::Exists(FULL_WII_SYSCONF_DIR)) File::CreateFullPath(FULL_WII_SYSCONF_DIR);
- if (!File::Exists(FULL_CONFIG_DIR)) File::CreateDir(FULL_CONFIG_DIR);
- if (!File::Exists(FULL_CACHE_DIR)) File::CreateDir(FULL_CACHE_DIR);
- if (!File::Exists(FULL_DSP_DUMP_DIR)) File::CreateFullPath(FULL_DSP_DUMP_DIR);
- if (!File::Exists(FULL_DUMP_TEXTURES_DIR)) File::CreateFullPath(FULL_DUMP_TEXTURES_DIR);
- if (!File::Exists(FULL_HIRES_TEXTURES_DIR)) File::CreateFullPath(FULL_HIRES_TEXTURES_DIR);
- if (!File::Exists(FULL_MAIL_LOGS_DIR)) File::CreateFullPath(FULL_MAIL_LOGS_DIR);
- if (!File::Exists(FULL_SCREENSHOTS_DIR)) File::CreateFullPath(FULL_SCREENSHOTS_DIR);
- if (!File::Exists(FULL_STATESAVES_DIR)) File::CreateFullPath(FULL_STATESAVES_DIR);
+ char user_path[500];
+ if (!File::Exists(File::GetUserPath(D_CONFIG_IDX))) File::CreateDir(File::GetUserPath(D_CONFIG_IDX));
+ if (!File::Exists(File::GetUserPath(D_GCUSER_IDX))) File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX));
+ if (!File::Exists(File::GetUserPath(D_WIISYSCONF_IDX))) File::CreateFullPath(File::GetUserPath(D_WIISYSCONF_IDX));
+ if (!File::Exists(File::GetUserPath(D_CACHE_IDX))) File::CreateFullPath(File::GetUserPath(D_CACHE_IDX));
+ if (!File::Exists(File::GetUserPath(D_DUMPDSP_IDX))) File::CreateFullPath(File::GetUserPath(D_DUMPDSP_IDX));
+ if (!File::Exists(File::GetUserPath(D_DUMPTEXTURES_IDX))) File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX));
+ if (!File::Exists(File::GetUserPath(D_HIRESTEXTURES_IDX))) File::CreateFullPath(File::GetUserPath(D_HIRESTEXTURES_IDX));
+ if (!File::Exists(File::GetUserPath(D_MAILLOGS_IDX))) File::CreateFullPath(File::GetUserPath(D_MAILLOGS_IDX));
+ if (!File::Exists(File::GetUserPath(D_SCREENSHOTS_IDX))) File::CreateFullPath(File::GetUserPath(D_SCREENSHOTS_IDX));
+ if (!File::Exists(File::GetUserPath(D_STATESAVES_IDX))) File::CreateFullPath(File::GetUserPath(D_STATESAVES_IDX));
//copy user wii shared2 SYSCONF if not exist
- if (!File::Exists(WII_SYSCONF_FILE)) File::Copy((File::GetBundleDirectory() + DIR_SEP + "Contents" + DIR_SEP + WII_SYSCONF_FILE).c_str(),WII_SYSCONF_FILE);
+ if (!File::Exists(File::GetUserPath(F_WIISYSCONF_IDX)))
+ File::Copy((File::GetBundleDirectory() + DIR_SEP + "Contents" + DIR_SEP + USERDATA_DIR + DIR_SEP + WII_SYSCONF_DIR).c_str(),
+ File::GetUserPath(F_WIISYSCONF_IDX));
+ SConfig::GetInstance().m_SYSCONF->Reload();
//TODO : if not exist copy game config dir in user dir and detect the revision to upgrade if necessary
//TODO : if not exist copy maps dir in user dir and detect revision to upgrade if necessary
@@ -322,6 +326,30 @@ bool DolphinApp::OnInit()
#endif
#endif
+#ifdef __linux__
+ //create all necessary directories in user directory
+ //TODO : detect the revision and upgrade where necessary
+ File::CopyDir(SHARED_USER_DIR CONFIG_DIR DIR_SEP, File::GetUserPath(D_CONFIG_IDX));
+ File::CopyDir(SHARED_USER_DIR GAMECONFIG_DIR DIR_SEP, File::GetUserPath(D_GAMECONFIG_IDX));
+ File::CopyDir(SHARED_USER_DIR MAPS_DIR DIR_SEP, File::GetUserPath(D_MAPS_IDX));
+ File::CopyDir(SHARED_USER_DIR SHADERS_DIR DIR_SEP, File::GetUserPath(D_SHADERS_IDX));
+ File::CopyDir(SHARED_USER_DIR WII_USER_DIR DIR_SEP, File::GetUserPath(D_WIIUSER_IDX));
+ SConfig::GetInstance().m_SYSCONF->Reload();
+
+ if (!File::Exists(File::GetUserPath(D_GCUSER_IDX))) File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX));
+ if (!File::Exists(File::GetUserPath(D_CACHE_IDX))) File::CreateFullPath(File::GetUserPath(D_CACHE_IDX));
+ if (!File::Exists(File::GetUserPath(D_DUMPDSP_IDX))) File::CreateFullPath(File::GetUserPath(D_DUMPDSP_IDX));
+ if (!File::Exists(File::GetUserPath(D_DUMPTEXTURES_IDX))) File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX));
+ if (!File::Exists(File::GetUserPath(D_HIRESTEXTURES_IDX))) File::CreateFullPath(File::GetUserPath(D_HIRESTEXTURES_IDX));
+ if (!File::Exists(File::GetUserPath(D_SCREENSHOTS_IDX))) File::CreateFullPath(File::GetUserPath(D_SCREENSHOTS_IDX));
+ if (!File::Exists(File::GetUserPath(D_STATESAVES_IDX))) File::CreateFullPath(File::GetUserPath(D_STATESAVES_IDX));
+ if (!File::Exists(File::GetUserPath(D_LOGS_IDX))) {
+ File::CreateFullPath(File::GetUserPath(D_LOGS_IDX));
+ LogManager::GetInstance()->getFileListener()->Reload();
+ }
+ if (!File::Exists(File::GetUserPath(D_MAILLOGS_IDX))) File::CreateFullPath(File::GetUserPath(D_MAILLOGS_IDX));
+#endif
+
// Gets the passed media files from command line
wxCmdLineParser parser(cmdLineDesc, argc, argv);
diff --git a/Source/Core/DolphinWX/Src/MemcardManager.cpp b/Source/Core/DolphinWX/Src/MemcardManager.cpp
index dde45dba97..a5aedc5ef8 100644
--- a/Source/Core/DolphinWX/Src/MemcardManager.cpp
+++ b/Source/Core/DolphinWX/Src/MemcardManager.cpp
@@ -108,7 +108,7 @@ CMemcardManager::CMemcardManager(wxWindow* parent, wxWindowID id, const wxString
{
memoryCard[SLOT_A]=NULL;
memoryCard[SLOT_B]=NULL;
- if (MemcardManagerIni.Load(CONFIG_FILE))
+ if (MemcardManagerIni.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX)))
{
MemcardManagerIni.Get("MemcardManager", "Items per page", &itemsPerPage, 16);
MemcardManagerIni.Get("MemcardManager", "DefaultMemcardA", &(DefaultMemcard[SLOT_A]), ".");
@@ -143,7 +143,7 @@ CMemcardManager::~CMemcardManager()
MemcardManagerDebug = NULL;
}
#endif
- MemcardManagerIni.Load(CONFIG_FILE);
+ MemcardManagerIni.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
MemcardManagerIni.Set("MemcardManager", "Items per page", itemsPerPage);
if (!DefaultMemcard[SLOT_A].empty() && (strcmp(DefaultMemcard[SLOT_A].c_str(), ".")))
@@ -154,13 +154,13 @@ CMemcardManager::~CMemcardManager()
MemcardManagerIni.Set("MemcardManager", "DefaultMemcardB", DefaultMemcard[SLOT_B]);
else
MemcardManagerIni.DeleteKey("MemcardManager", "DefaultMemcardB");
- MemcardManagerIni.Save(CONFIG_FILE);
+ MemcardManagerIni.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
}
CMemcardManager::CMemcardListCtrl::CMemcardListCtrl(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
: wxListCtrl(parent, id, pos, size, style)
{
- if (MemcardManagerIni.Load(CONFIG_FILE))
+ if (MemcardManagerIni.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX)))
{
MemcardManagerIni.Get("MemcardManager", "Use Pages", &usePages, true);
MemcardManagerIni.Get("MemcardManager", "cBanner", &column[COLUMN_BANNER], true);
@@ -196,7 +196,7 @@ CMemcardManager::CMemcardListCtrl::CMemcardListCtrl(wxWindow* parent, const wxWi
CMemcardManager::CMemcardListCtrl::~CMemcardListCtrl()
{
- MemcardManagerIni.Load(CONFIG_FILE);
+ MemcardManagerIni.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
MemcardManagerIni.Set("MemcardManager", "Use Pages", usePages);
MemcardManagerIni.Set("MemcardManager", "cBanner", column[COLUMN_BANNER]);
@@ -208,7 +208,7 @@ CMemcardManager::CMemcardListCtrl::~CMemcardListCtrl()
#ifdef DEBUG_MCM
MemcardManagerIni.Set("MemcardManager", "cDebug", column[NUMBER_OF_COLUMN]);
#endif
- MemcardManagerIni.Save(CONFIG_FILE);
+ MemcardManagerIni.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
}
void CMemcardManager::CreateGUIControls()
@@ -242,7 +242,8 @@ void CMemcardManager::CreateGUIControls()
sPages[slot]->Add(0, 0, 1, wxEXPAND|wxALL, 0);
sPages[slot]->Add(m_NextPage[slot], 0, wxEXPAND|wxALL, 1);
- m_MemcardPath[slot] = new wxFilePickerCtrl(this, ID_MEMCARDPATH_A + slot, T_FULL_GC_USER_DIR, wxT("Choose a memory card:"),
+ m_MemcardPath[slot] = new wxFilePickerCtrl(this, ID_MEMCARDPATH_A + slot,
+ wxString::FromAscii(File::GetUserPath(D_GCUSER_IDX)), wxT("Choose a memory card:"),
wxT("Gamecube Memory Cards (*.raw,*.gcp)|*.raw;*.gcp"), wxDefaultPosition, wxDefaultSize, wxFLP_USE_TEXTCTRL|wxFLP_OPEN);
m_MemcardList[slot] = new CMemcardListCtrl(this, ID_MEMCARDLIST_A + slot, wxDefaultPosition, wxSize(350,400),
diff --git a/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp b/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp
index 641d8c9b1a..e131a113b1 100644
--- a/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp
+++ b/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp
@@ -1154,7 +1154,7 @@ bool GCMemcard::Format(bool sjis, bool New, int slot, u16 SizeMb, bool hdrOnly)
// Only Format 16MB memcards for now
if ((SizeMb != MemCard2043Mb) || (data_size != mc_data_size)) return false;
- pStream = fopen(GC_SRAM_FILE, "rb");
+ pStream = fopen(File::GetUserPath(F_GCSRAM_IDX), "rb");
if (pStream == NULL)
{
PanicAlert("Could not open SRAM file");
diff --git a/Source/Core/DolphinWX/Src/MemoryCards/WiiSaveCrypted.cpp b/Source/Core/DolphinWX/Src/MemoryCards/WiiSaveCrypted.cpp
index d69da04684..eabbad42d6 100644
--- a/Source/Core/DolphinWX/Src/MemoryCards/WiiSaveCrypted.cpp
+++ b/Source/Core/DolphinWX/Src/MemoryCards/WiiSaveCrypted.cpp
@@ -503,7 +503,7 @@ bool CWiiSaveCrypted::getPaths(bool _export)
{
if (_saveGameTitle)
{
- sprintf(pathSavedir, FULL_WII_USER_DIR "title/%08x/%08x/data/", (u32)(_saveGameTitle>>32), (u32)_saveGameTitle);
+ sprintf(pathSavedir, "%stitle/%08x/%08x/data/", File::GetUserPath(D_WIIUSER_IDX), (u32)(_saveGameTitle>>32), (u32)_saveGameTitle);
sprintf(pathBanner_bin, "%sbanner.bin", pathSavedir);
sprintf(_saveGameString, "%c%c%c%c",
(u8)(_saveGameTitle >> 24) & 0xFF, (u8)(_saveGameTitle >> 16) & 0xFF,
diff --git a/Source/Core/DolphinWX/Src/NetWindow.cpp b/Source/Core/DolphinWX/Src/NetWindow.cpp
index 191ac98bc3..cce0b6fef3 100644
--- a/Source/Core/DolphinWX/Src/NetWindow.cpp
+++ b/Source/Core/DolphinWX/Src/NetWindow.cpp
@@ -17,7 +17,7 @@
#include "NetSockets.h"
#include "NetWindow.h"
-
+#include "FileUtil.h"
// Main Frame window
@@ -52,13 +52,13 @@ NetPlay::NetPlay(wxWindow* parent, std::string GamePaths, std::string GameNames)
NetPlay::~NetPlay()
{
- ConfigIni.Load(CONFIG_FILE);
+ ConfigIni.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
ConfigIni.Set("Netplay", "Nickname", m_nick);
ConfigIni.Set("Netplay", "UsedPort", (int)m_port);
ConfigIni.Set("Netplay", "LastIP", m_address);
- ConfigIni.Save(CONFIG_FILE);
+ ConfigIni.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
}
void NetPlay::OnJoin(wxCommandEvent& WXUNUSED(event))
@@ -255,7 +255,7 @@ void NetPlay::DrawGUI()
panel->SetSizerAndFit(sMain);
sMain->SetSizeHints((wxWindow*)this);
- if (ConfigIni.Load(CONFIG_FILE))
+ if (ConfigIni.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX)))
{
ConfigIni.Get("Netplay", "Nickname", &m_nick, "Unnamed");
ConfigIni.Get("Netplay", "UsedPort", (int*)&m_port, 12345);
diff --git a/Source/Core/DolphinWX/Src/SConscript b/Source/Core/DolphinWX/Src/SConscript
index 27d6b14fa8..52a7aecf1f 100644
--- a/Source/Core/DolphinWX/Src/SConscript
+++ b/Source/Core/DolphinWX/Src/SConscript
@@ -104,8 +104,8 @@ if sys.platform == 'darwin':
))
)
else:
- exeGUI = env['binary_dir'] + 'Dolphin'
- exeNoGUI = env['binary_dir'] + 'DolphinNoGUI'
+ exeGUI = env['binary_dir'] + 'dolphin-emu'
+ exeNoGUI = env['binary_dir'] + 'dolphin-emu-nogui'
#objects = [ wxenv.Object(srcFile) for srcFile in files ]
diff --git a/Source/Core/VideoCommon/Src/AVIDump.cpp b/Source/Core/VideoCommon/Src/AVIDump.cpp
index bedaf748a9..72df3456ab 100644
--- a/Source/Core/VideoCommon/Src/AVIDump.cpp
+++ b/Source/Core/VideoCommon/Src/AVIDump.cpp
@@ -58,7 +58,7 @@ bool AVIDump::CreateFile()
m_totalBytes = 0;
m_frameCount = 0;
char movie_file_name[255];
- sprintf(movie_file_name, "%s/framedump%d.avi", FULL_FRAMES_DIR, m_fileCount);
+ sprintf(movie_file_name, "%sframedump%d.avi", File::GetUserPath(D_DUMPFRAMES_IDX), m_fileCount);
// Create path
File::CreateFullPath(movie_file_name);
diff --git a/Source/Core/VideoCommon/Src/HiresTextures.cpp b/Source/Core/VideoCommon/Src/HiresTextures.cpp
index 0d92a14c2f..4539e54357 100644
--- a/Source/Core/VideoCommon/Src/HiresTextures.cpp
+++ b/Source/Core/VideoCommon/Src/HiresTextures.cpp
@@ -36,9 +36,9 @@ void Init(const char *gameCode)
static bool bCheckedDir;
CFileSearch::XStringVector Directories;
- //Directories.push_back(std::string(FULL_HIRES_TEXTURES_DIR));
+ //Directories.push_back(std::string(File::GetUserPath(D_HIRESTEXTURES_IDX)));
char szDir[MAX_PATH];
- sprintf(szDir,"%s/%s",FULL_HIRES_TEXTURES_DIR,gameCode);
+ sprintf(szDir,"%s%s",File::GetUserPath(D_HIRESTEXTURES_IDX),gameCode);
Directories.push_back(std::string(szDir));
diff --git a/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp b/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp
index 4f8eb612fc..3baf4d10cd 100644
--- a/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp
+++ b/Source/Core/VideoCommon/Src/OpenCL/OCLTextureDecoder.cpp
@@ -62,7 +62,8 @@ void TexDecoder_OpenCL_Initialize() {
return;
std::string code;
- char* filename = "User/OpenCL/TextureDecoder.cl";
+ char filename[1024];
+ sprintf(filename, "%sOpenCL/TextureDecoder.cl", File::GetUserPath(D_USER_IDX));
if (!File::ReadFileToString(true, filename, code))
{
ERROR_LOG(VIDEO, "Failed to load OpenCL code %s - file is missing?", filename);
diff --git a/Source/Core/VideoCommon/Src/VideoConfig.cpp b/Source/Core/VideoCommon/Src/VideoConfig.cpp
index 95c8981b1c..52f3c39357 100644
--- a/Source/Core/VideoCommon/Src/VideoConfig.cpp
+++ b/Source/Core/VideoCommon/Src/VideoConfig.cpp
@@ -21,6 +21,7 @@
#include "IniFile.h"
#include "VideoConfig.h"
#include "VideoCommon.h"
+#include "FileUtil.h"
VideoConfig g_Config;
VideoConfig g_ActiveConfig;
@@ -100,7 +101,7 @@ void VideoConfig::Load(const char *ini_file)
iniFile.Get("Hardware", "SimpleFB", &bSimpleFB, false);
// Load common settings
- iniFile.Load(CONFIG_FILE);
+ iniFile.Load(File::GetUserPath(F_DOLPHINCONFIG_IDX));
bool bTmp;
iniFile.Get("Interface", "UsePanicHandlers", &bTmp, true);
SetEnableAlert(bTmp);