aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/service
diff options
context:
space:
mode:
authorGravatar archshift <admin@archshift.com>2014-10-28 23:41:22 -0700
committerGravatar archshift <admin@archshift.com>2014-10-29 17:43:48 -0700
commited797a43548b41391033c9add8eed800a8c9af12 (patch)
tree20ef709330bd663e505763de743758a0434da31f /src/core/hle/service
parent0fc71cb6a7e100d4cbee35ccab84e5fee5458e9f (diff)
FS:USER - Implemented IsSdmcDetected
Diffstat (limited to 'src/core/hle/service')
-rw-r--r--src/core/hle/service/fs_user.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/core/hle/service/fs_user.cpp b/src/core/hle/service/fs_user.cpp
index 01217432..845c9410 100644
--- a/src/core/hle/service/fs_user.cpp
+++ b/src/core/hle/service/fs_user.cpp
@@ -5,6 +5,7 @@
#include "common/common.h"
#include "fs_user.h"
+#include "core/settings.h"
#include "core/hle/kernel/archive.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -200,6 +201,21 @@ void OpenArchive(Service::Interface* self) {
DEBUG_LOG(KERNEL, "called");
}
+/*
+* FS_User::IsSdmcDetected service function
+* Outputs:
+* 1 : Result of function, 0 on success, otherwise error code
+* 2 : Whether the Sdmc could be detected
+*/
+void IsSdmcDetected(Service::Interface* self) {
+ u32* cmd_buff = Service::GetCommandBuffer();
+
+ cmd_buff[1] = 0;
+ cmd_buff[2] = Settings::values.use_virtual_sd ? 1 : 0;
+
+ DEBUG_LOG(KERNEL, "called");
+}
+
const Interface::FunctionInfo FunctionTable[] = {
{0x000100C6, nullptr, "Dummy1"},
{0x040100C4, nullptr, "Control"},
@@ -225,7 +241,7 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x08140000, nullptr, "GetSdmcArchiveResource"},
{0x08150000, nullptr, "GetNandArchiveResource"},
{0x08160000, nullptr, "GetSdmcFatfsErro"},
- {0x08170000, nullptr, "IsSdmcDetected"},
+ {0x08170000, IsSdmcDetected, "IsSdmcDetected"},
{0x08180000, nullptr, "IsSdmcWritable"},
{0x08190042, nullptr, "GetSdmcCid"},
{0x081A0042, nullptr, "GetNandCid"},