diff --git a/desmume/src/frontend/windows/DeSmuME.vcxproj b/desmume/src/frontend/windows/DeSmuME.vcxproj
index 27264e586..7d3002da1 100644
--- a/desmume/src/frontend/windows/DeSmuME.vcxproj
+++ b/desmume/src/frontend/windows/DeSmuME.vcxproj
@@ -56,175 +56,176 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -316,7 +317,7 @@
-
+
@@ -342,6 +343,10 @@
+
+
+
+
@@ -368,7 +373,6 @@
-
@@ -388,6 +392,9 @@
+
+
+
@@ -404,7 +411,6 @@
-
@@ -446,7 +452,6 @@
-
@@ -605,6 +610,7 @@
+
diff --git a/desmume/src/frontend/windows/DeSmuME.vcxproj.filters b/desmume/src/frontend/windows/DeSmuME.vcxproj.filters
index 6d951c804..586489780 100644
--- a/desmume/src/frontend/windows/DeSmuME.vcxproj.filters
+++ b/desmume/src/frontend/windows/DeSmuME.vcxproj.filters
@@ -124,204 +124,210 @@
{db5dc512-2b75-4476-8cac-75fd4acfd85f}
+
+ {2fa3e628-6c05-4f93-8543-dc1737844f89}
+
+
+ {7f9106f6-6228-4333-bc30-f3aa42054661}
+
+
+ {15ea6bdf-cacd-4fcb-b2ed-5290b6f05007}
+
+
+ {3b540aa2-669b-494c-9181-9d7b38549d3a}
+
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
+
Core
-
- Core
-
-
- Core
-
-
+
Core\addons
-
+
Core\addons
-
+
Core\addons
-
+
Core\addons
-
+
Core\addons
-
+
Core\gdbstub
-
+
Core\utils
-
+
Core\utils
-
+
Core\utils
-
+
Core\utils
-
+
Core\utils
-
+
Core\utils\decrypt
-
+
Core\utils\decrypt
-
+
Core\utils\decrypt
-
+
Core\metaspu
-
+
Core\metaspu
-
+
Core\metaspu
-
+
Core\metaspu\win32
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
-
+
Core\metaspu\SoundTouch
@@ -360,9 +366,6 @@
Windows
-
- Windows
-
Windows
@@ -429,244 +432,244 @@
Windows\tools
-
+
Core\addons
-
+
Core\utils
-
+
Core\addons
-
+
Core\addons
-
+
Core\addons
-
+
Core\utils
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core\utils\libfat
-
+
Core
-
+
Core\addons
-
+
Core\utils
-
+
Core\utils
-
+
Core\addons
-
+
Core\utils\tinyxml
-
+
Core\utils\tinyxml
-
+
Core\utils\tinyxml
-
+
Core\utils\tinyxml
-
+
Core\filter
-
+
Core\filter
-
+
Core\filter
-
+
Core\filter
-
+
Core\filter
-
+
Core\filter
-
+
Core\filter
Windows
-
+
Core
Windows
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\core
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core\utils\AsmJit\x86
-
+
Core
Windows
-
+
Core
-
+
Core\addons
-
+
Core\addons
-
+
Core\addons
-
+
Core\addons
-
+
Core\utils
-
+
Core\addons
-
+
Core\addons
-
+
Core\utils
Windows\tools
-
+
Core\addons
-
+
Core\addons
-
+
Core\filter
@@ -897,87 +900,99 @@
Windows\File_Extractor\unrar
-
+
Core\libretro-common\rthreads
-
+
Core\frontend\modules
-
+
Core\libretro-common\formats\png
-
+
Core\libretro-common\formats\png
-
+
Core\libretro-common\formats\bmp
-
+
Core\libretro-common\file\nbio
-
+
Core\libretro-common\compat
-
+
Core\libretro-common\compat
-
+
Core\libretro-common\compat
-
+
Core\libretro-common\compat
-
+
Core\libretro-common\compat
-
+
Core\libretro-common\file
-
+
Core\libretro-common\file
-
+
Core\libretro-common\file
-
+
Core\libretro-common\hash
-
+
Core\libretro-common\rthreads
-
+
Core\libretro-common\compat
-
+
Core\libretro-common\include\streams
-
+
Core\libretro-common\include\streams
-
+
Core\libretro-common\file
-
+
Core\libretro-common\lists
-
+
Core\libretro-common\lists
-
+
Core\libretro-common\lists
-
+
Core\libretro-common\file
-
+
Core\utils\colorspacehandler
-
- Core\utils\colorspacehandler
-
-
+
Core\filter
+
+ Core\frontend\modules\osd\agg
+
+
+ Core\frontend\modules\osd\agg
+
+
+ Windows
+
+
+ Core
+
+
+ Core\libretro-common\features
+
@@ -1025,9 +1040,6 @@
Core
-
- Core
-
Core
@@ -1091,9 +1103,6 @@
Core
-
- Core
-
Core
@@ -1754,8 +1763,26 @@
Core\utils\colorspacehandler
-
- Core\utils\colorspacehandler
+
+ Core\frontend\modules\osd\agg
+
+
+ Core\frontend\modules\osd\agg
+
+
+ Core\frontend\modules\osd\agg
+
+
+ Core\utils
+
+
+ Core
+
+
+ Core\libretro-common\include\features
+
+
+ Core
@@ -1840,6 +1867,9 @@
Windows\resources
+
+ Core\frontend\modules\osd\agg
+
diff --git a/desmume/src/mc.cpp b/desmume/src/mc.cpp
index dc28c0281..7c24b79ae 100644
--- a/desmume/src/mc.cpp
+++ b/desmume/src/mc.cpp
@@ -31,6 +31,7 @@
#include "NDSSystem.h"
#include "path.h"
#include "utils/advanscene.h"
+#include "utils/xstring.h"
#include "emufile.h"
//#define _DONT_SAVE_BACKUP
diff --git a/desmume/src/utils/vfat.cpp b/desmume/src/utils/vfat.cpp
index cd0e8cd6b..0d4fa0b88 100644
--- a/desmume/src/utils/vfat.cpp
+++ b/desmume/src/utils/vfat.cpp
@@ -69,7 +69,7 @@ static void list_files(const char *filepath, ListCallback list_callback)
list_callback(rdir,EListCallbackArg_Item);
printf("cflash added %s\n",fname);
- if(retro_dirent_is_dir(rdir) && (strcmp(fname, ".")) && (strcmp(fname, "..")))
+ if (retro_dirent_is_dir(rdir, filepath) && (strcmp(fname, ".")) && strcmp(fname, ".."))
{
std::string subdir = (std::string)filepath + path_default_slash() + fname;
list_files(subdir.c_str(), list_callback);
@@ -109,8 +109,8 @@ static void DirectoryListCallback(RDIR* rdir, EListCallbackArg arg)
virtPathStack.pop();
return;
}
-
- if(retro_dirent_is_dir(rdir))
+
+ if(retro_dirent_is_dir(rdir,currVirtPath.c_str()))
{
if(!strcmp(fname,".")) return;
if(!strcmp(fname,"..")) return;