diff --git a/src/core/hle/service/ptm/ptm.cpp b/src/core/hle/service/ptm/ptm.cpp
index da7d56ced..4d374ba17 100644
--- a/src/core/hle/service/ptm/ptm.cpp
+++ b/src/core/hle/service/ptm/ptm.cpp
@@ -110,6 +110,7 @@ void CheckNew3DS(Service::Interface* self) {
 void Init() {
     AddService(new PTM_Gets);
     AddService(new PTM_Play);
+    AddService(new PTM_S);
     AddService(new PTM_Sets);
     AddService(new PTM_Sysm);
     AddService(new PTM_U);
diff --git a/src/core/hle/service/ptm/ptm_sysm.cpp b/src/core/hle/service/ptm/ptm_sysm.cpp
index a5db93e44..f95dfdbb1 100644
--- a/src/core/hle/service/ptm/ptm_sysm.cpp
+++ b/src/core/hle/service/ptm/ptm_sysm.cpp
@@ -59,6 +59,10 @@ const Interface::FunctionInfo FunctionTable[] = {
     {0x08180040, nullptr, "ConfigureNew3DSCPU"},
 };
 
+PTM_S::PTM_S() {
+    Register(FunctionTable);
+}
+
 PTM_Sysm::PTM_Sysm() {
     Register(FunctionTable);
 }
diff --git a/src/core/hle/service/ptm/ptm_sysm.h b/src/core/hle/service/ptm/ptm_sysm.h
index e9938a530..8afcebbba 100644
--- a/src/core/hle/service/ptm/ptm_sysm.h
+++ b/src/core/hle/service/ptm/ptm_sysm.h
@@ -9,6 +9,15 @@
 namespace Service {
 namespace PTM {
 
+class PTM_S final : public Interface {
+public:
+    PTM_S();
+
+    std::string GetPortName() const override {
+        return "ptm:s";
+    }
+};
+
 class PTM_Sysm final : public Interface {
 public:
     PTM_Sysm();