Просмотр исходного кода

Update ACT:U and create ACT:A (#1809)

* Update ACT_U
* Create act_a.h
* Create act_a.cpp
* Add service ACT:A
* Add ACT:A source and header
* Fix wrong header
András Domonkos 10 лет назад
Родитель
Сommit
960297e577

+ 2 - 0
src/core/CMakeLists.txt

@@ -42,6 +42,7 @@ set(SRCS
             hle/kernel/timer.cpp
             hle/kernel/timer.cpp
             hle/kernel/vm_manager.cpp
             hle/kernel/vm_manager.cpp
             hle/service/ac_u.cpp
             hle/service/ac_u.cpp
+            hle/service/act_a.cpp
             hle/service/act_u.cpp
             hle/service/act_u.cpp
             hle/service/am/am.cpp
             hle/service/am/am.cpp
             hle/service/am/am_app.cpp
             hle/service/am/am_app.cpp
@@ -176,6 +177,7 @@ set(HEADERS
             hle/kernel/vm_manager.h
             hle/kernel/vm_manager.h
             hle/result.h
             hle/result.h
             hle/service/ac_u.h
             hle/service/ac_u.h
+            hle/service/act_a.h
             hle/service/act_u.h
             hle/service/act_u.h
             hle/service/am/am.h
             hle/service/am/am.h
             hle/service/am/am_app.h
             hle/service/am/am_app.h

+ 26 - 0
src/core/hle/service/act_a.cpp

@@ -0,0 +1,26 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "core/hle/service/act_a.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Namespace ACT_A
+
+namespace ACT_A {
+
+const Interface::FunctionInfo FunctionTable[] = {
+    {0x041300C2, nullptr, "UpdateMiiImage"},
+    {0x041B0142, nullptr, "AgreeEula"},
+    {0x04210042, nullptr, "UploadMii"},
+    {0x04230082, nullptr, "ValidateMailAddress"},
+};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Interface class
+
+Interface::Interface() {
+    Register(FunctionTable);
+}
+
+} // namespace

+ 23 - 0
src/core/hle/service/act_a.h

@@ -0,0 +1,23 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/hle/service/service.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Namespace ACT_A
+
+namespace ACT_A {
+
+class Interface : public Service::Interface {
+public:
+    Interface();
+
+    std::string GetPortName() const override {
+        return "act:a";
+    }
+};
+
+} // namespace

+ 3 - 0
src/core/hle/service/act_u.cpp

@@ -10,7 +10,10 @@
 namespace ACT_U {
 namespace ACT_U {
 
 
 const Interface::FunctionInfo FunctionTable[] = {
 const Interface::FunctionInfo FunctionTable[] = {
+    {0x00010084, nullptr, "Initialize"},
+    {0x00020040, nullptr, "GetErrorCode"},
     {0x000600C2, nullptr, "GetAccountDataBlock"},
     {0x000600C2, nullptr, "GetAccountDataBlock"},
+    {0x000D0040, nullptr, "GenerateUuid"},
 };
 };
 
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////////////////////////

+ 2 - 0
src/core/hle/service/service.cpp

@@ -7,6 +7,7 @@
 
 
 #include "core/hle/service/service.h"
 #include "core/hle/service/service.h"
 #include "core/hle/service/ac_u.h"
 #include "core/hle/service/ac_u.h"
+#include "core/hle/service/act_a.h"
 #include "core/hle/service/act_u.h"
 #include "core/hle/service/act_u.h"
 #include "core/hle/service/csnd_snd.h"
 #include "core/hle/service/csnd_snd.h"
 #include "core/hle/service/dlp_srvr.h"
 #include "core/hle/service/dlp_srvr.h"
@@ -119,6 +120,7 @@ void Init() {
     Service::PTM::Init();
     Service::PTM::Init();
 
 
     AddService(new AC_U::Interface);
     AddService(new AC_U::Interface);
+    AddService(new ACT_A::Interface);
     AddService(new ACT_U::Interface);
     AddService(new ACT_U::Interface);
     AddService(new CSND_SND::Interface);
     AddService(new CSND_SND::Interface);
     AddService(new DLP_SRVR::Interface);
     AddService(new DLP_SRVR::Interface);