Skip to content

Commit

Permalink
PSP2: allow loading games from uma0: in addition to ux0:
Browse files Browse the repository at this point in the history
  • Loading branch information
rsn8887 committed Mar 29, 2018
1 parent b875f46 commit a4fe03c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
23 changes: 23 additions & 0 deletions backends/fs/posix/posix-fs.cpp
Expand Up @@ -62,6 +62,16 @@ void POSIXFilesystemNode::setFlags() {
POSIXFilesystemNode::POSIXFilesystemNode(const Common::String &p) {
assert(p.size() > 0);

#ifdef PSP2
if (p == "/") {
_isDirectory = true;
_isValid = false;
_path = p;
_displayName = p;
return;
}
#endif

// Expand "~/" to the value of the HOME env variable
if (p.hasPrefix("~/")) {
const char *home = getenv("HOME");
Expand Down Expand Up @@ -152,6 +162,15 @@ bool POSIXFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, boo
return true;
}
#endif
#ifdef PSP2
if (_path == "/") {
POSIXFilesystemNode *entry1 = new POSIXFilesystemNode("ux0:");
myList.push_back(entry1);
POSIXFilesystemNode *entry2 = new POSIXFilesystemNode("uma0:");
myList.push_back(entry2);
return true;
}
#endif

DIR *dirp = opendir(_path.c_str());
struct dirent *dp;
Expand Down Expand Up @@ -230,6 +249,10 @@ AbstractFSNode *POSIXFilesystemNode::getParent() const {
// This is a root directory of a drive
return makeNode("/"); // return a virtual root for a list of drives
#endif
#ifdef PSP2
if (_path.hasSuffix(":"))
return makeNode("/");
#endif

const char *start = _path.c_str();
const char *end = start + _path.size();
Expand Down
2 changes: 1 addition & 1 deletion backends/fs/psp2/psp2-fs-factory.cpp
Expand Up @@ -32,7 +32,7 @@
#include "backends/fs/psp2/psp2-fs-factory.h"

AbstractFSNode *PSP2FilesystemFactory::makeRootFileNode() const {
return new POSIXFilesystemNode("ux0:");
return new POSIXFilesystemNode("/");
}

AbstractFSNode *PSP2FilesystemFactory::makeCurrentDirectoryFileNode() const {
Expand Down

0 comments on commit a4fe03c

Please sign in to comment.