This commit is contained in:
shenweip 2013-11-24 12:52:55 +08:00 committed by Henrik Rydgård
parent f6f81eca93
commit 4c6005545b
2 changed files with 10 additions and 7 deletions

View file

@ -24,10 +24,13 @@
#include "Core/HLE/sceKernelThread.h" #include "Core/HLE/sceKernelThread.h"
#include "Core/HLE/sceKernelInterrupt.h" #include "Core/HLE/sceKernelInterrupt.h"
#include "Core/HLE/KernelWaitHelpers.h" #include "Core/HLE/KernelWaitHelpers.h"
#include "Core/FileSystems/BlockDevices.h" #include "Core/FileSystems/BlockDevices.h"
#include "Core/FileSystems/ISOFileSystem.h" #include "Core/FileSystems/ISOFileSystem.h"
#include "Core/FileSystems/VirtualDiscFileSystem.h" #include "Core/FileSystems/VirtualDiscFileSystem.h"
#include "file/file_util.h"
const u64 MICRO_DELAY_ACTIVATE = 4000; const u64 MICRO_DELAY_ACTIVATE = 4000;
static u8 umdActivated = 1; static u8 umdActivated = 1;
@ -440,7 +443,7 @@ u32 sceUmdGetErrorStat()
return umdErrorStat; return umdErrorStat;
} }
void __UmdReplace(std::string filename) { void __UmdReplace(std::string filepath) {
// Unmount old umd first. // Unmount old umd first.
pspFileSystem.Unmount("umd0:", currentUMD); pspFileSystem.Unmount("umd0:", currentUMD);
pspFileSystem.Unmount("umd1:", currentUMD); pspFileSystem.Unmount("umd1:", currentUMD);
@ -448,13 +451,13 @@ void __UmdReplace(std::string filename) {
pspFileSystem.Unmount("umd:", currentUMD); pspFileSystem.Unmount("umd:", currentUMD);
IFileSystem* umd2; IFileSystem* umd2;
PSPFileInfo info = pspFileSystem.GetFileInfo(filename); FileInfo info;
if(!info.exists) // This shouldn't happen, but for safety. if (!getFileInfo(filepath.c_str(), &info)) // This shouldn't happen, but for safety.
return; return;
if (info.type == FILETYPE_DIRECTORY) { if (info.isDirectory) {
umd2 = new VirtualDiscFileSystem(&pspFileSystem, filename); umd2 = new VirtualDiscFileSystem(&pspFileSystem, filepath);
} else { } else {
auto bd = constructBlockDevice(filename.c_str()); auto bd = constructBlockDevice(filepath.c_str());
if (!bd) if (!bd)
return; return;
umd2 = new ISOFileSystem(&pspFileSystem, bd); umd2 = new ISOFileSystem(&pspFileSystem, bd);

View file

@ -41,6 +41,6 @@ enum pspUmdType {
void __UmdInit(); void __UmdInit();
void __UmdDoState(PointerWrap &p); void __UmdDoState(PointerWrap &p);
void __UmdReplace(std::string filename); void __UmdReplace(std::string filepath);
void Register_sceUmdUser(); void Register_sceUmdUser();