From a4fe03c0a53ad89960f4934ea677ff0a7c0bc1f7 Mon Sep 17 00:00:00 2001 From: rsn8887 Date: Wed, 28 Mar 2018 22:58:39 -0500 Subject: PSP2: allow loading games from uma0: in addition to ux0: --- backends/fs/posix/posix-fs.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'backends/fs/posix') diff --git a/backends/fs/posix/posix-fs.cpp b/backends/fs/posix/posix-fs.cpp index 3f90fc1a19..01c2751857 100644 --- a/backends/fs/posix/posix-fs.cpp +++ b/backends/fs/posix/posix-fs.cpp @@ -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"); @@ -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; @@ -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(); -- cgit v1.2.3