diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index c2c04473c..e26677079 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -77,6 +77,7 @@ set(SRCS hle/service/cecd/cecd_u.cpp hle/service/cfg/cfg.cpp hle/service/cfg/cfg_i.cpp + hle/service/cfg/cfg_nor.cpp hle/service/cfg/cfg_s.cpp hle/service/cfg/cfg_u.cpp hle/service/csnd_snd.cpp @@ -239,6 +240,7 @@ set(HEADERS hle/service/cecd/cecd_u.h hle/service/cfg/cfg.h hle/service/cfg/cfg_i.h + hle/service/cfg/cfg_nor.h hle/service/cfg/cfg_s.h hle/service/cfg/cfg_u.h hle/service/csnd_snd.h diff --git a/src/core/hle/service/cfg/cfg.cpp b/src/core/hle/service/cfg/cfg.cpp index d554c3f54..65655f45d 100644 --- a/src/core/hle/service/cfg/cfg.cpp +++ b/src/core/hle/service/cfg/cfg.cpp @@ -12,6 +12,7 @@ #include "core/hle/result.h" #include "core/hle/service/cfg/cfg.h" #include "core/hle/service/cfg/cfg_i.h" +#include "core/hle/service/cfg/cfg_nor.h" #include "core/hle/service/cfg/cfg_s.h" #include "core/hle/service/cfg/cfg_u.h" #include "core/hle/service/fs/archive.h" @@ -528,9 +529,10 @@ ResultCode LoadConfigNANDSaveFile() { } void Init() { - AddService(new CFG_I_Interface); - AddService(new CFG_S_Interface); - AddService(new CFG_U_Interface); + AddService(new CFG_I); + AddService(new CFG_NOR); + AddService(new CFG_S); + AddService(new CFG_U); LoadConfigNANDSaveFile(); } diff --git a/src/core/hle/service/cfg/cfg_i.cpp b/src/core/hle/service/cfg/cfg_i.cpp index 46312da4b..e8db0fc42 100644 --- a/src/core/hle/service/cfg/cfg_i.cpp +++ b/src/core/hle/service/cfg/cfg_i.cpp @@ -56,7 +56,7 @@ const Interface::FunctionInfo FunctionTable[] = { {0x08180042, nullptr, "SecureInfoGetSerialNo"}, }; -CFG_I_Interface::CFG_I_Interface() { +CFG_I::CFG_I() { Register(FunctionTable); } diff --git a/src/core/hle/service/cfg/cfg_i.h b/src/core/hle/service/cfg/cfg_i.h index d0a2cce39..8cfd47633 100644 --- a/src/core/hle/service/cfg/cfg_i.h +++ b/src/core/hle/service/cfg/cfg_i.h @@ -9,9 +9,9 @@ namespace Service { namespace CFG { -class CFG_I_Interface : public Service::Interface { +class CFG_I final : public Interface { public: - CFG_I_Interface(); + CFG_I(); std::string GetPortName() const override { return "cfg:i"; diff --git a/src/core/hle/service/cfg/cfg_nor.cpp b/src/core/hle/service/cfg/cfg_nor.cpp new file mode 100644 index 000000000..4ce02d115 --- /dev/null +++ b/src/core/hle/service/cfg/cfg_nor.cpp @@ -0,0 +1,23 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/hle/service/cfg/cfg.h" +#include "core/hle/service/cfg/cfg_nor.h" + +namespace Service { +namespace CFG { + +const Interface::FunctionInfo FunctionTable[] = { + {0x00010040, nullptr, "Initialize"}, + {0x00020000, nullptr, "Shutdown"}, + {0x00050082, nullptr, "ReadData"}, + {0x00060082, nullptr, "WriteData"}, +}; + +CFG_NOR::CFG_NOR() { + Register(FunctionTable); +} + +} // namespace CFG +} // namespace Service diff --git a/src/core/hle/service/cfg/cfg_nor.h b/src/core/hle/service/cfg/cfg_nor.h new file mode 100644 index 000000000..c337718e7 --- /dev/null +++ b/src/core/hle/service/cfg/cfg_nor.h @@ -0,0 +1,22 @@ +// 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 Service { +namespace CFG { + +class CFG_NOR final : public Interface { +public: + CFG_NOR(); + + std::string GetPortName() const override { + return "cfg:nor"; + } +}; + +} // namespace CFG +} // namespace Service diff --git a/src/core/hle/service/cfg/cfg_s.cpp b/src/core/hle/service/cfg/cfg_s.cpp index 564a9bb08..9386fe33d 100644 --- a/src/core/hle/service/cfg/cfg_s.cpp +++ b/src/core/hle/service/cfg/cfg_s.cpp @@ -33,7 +33,7 @@ const Interface::FunctionInfo FunctionTable[] = { {0x04090000, nullptr, "UpdateConfigBlk00040003"}, }; -CFG_S_Interface::CFG_S_Interface() { +CFG_S::CFG_S() { Register(FunctionTable); } diff --git a/src/core/hle/service/cfg/cfg_s.h b/src/core/hle/service/cfg/cfg_s.h index 5568d6485..99fea46ee 100644 --- a/src/core/hle/service/cfg/cfg_s.h +++ b/src/core/hle/service/cfg/cfg_s.h @@ -9,9 +9,9 @@ namespace Service { namespace CFG { -class CFG_S_Interface : public Service::Interface { +class CFG_S final : public Interface { public: - CFG_S_Interface(); + CFG_S(); std::string GetPortName() const override { return "cfg:s"; diff --git a/src/core/hle/service/cfg/cfg_u.cpp b/src/core/hle/service/cfg/cfg_u.cpp index 4c82846c0..7b66fee22 100644 --- a/src/core/hle/service/cfg/cfg_u.cpp +++ b/src/core/hle/service/cfg/cfg_u.cpp @@ -23,7 +23,7 @@ const Interface::FunctionInfo FunctionTable[] = { {0x000B0000, nullptr, "IsFangateSupported"}, }; -CFG_U_Interface::CFG_U_Interface() { +CFG_U::CFG_U() { Register(FunctionTable); } diff --git a/src/core/hle/service/cfg/cfg_u.h b/src/core/hle/service/cfg/cfg_u.h index 5303d8ac6..fc7844714 100644 --- a/src/core/hle/service/cfg/cfg_u.h +++ b/src/core/hle/service/cfg/cfg_u.h @@ -9,9 +9,9 @@ namespace Service { namespace CFG { -class CFG_U_Interface : public Service::Interface { +class CFG_U final : public Interface { public: - CFG_U_Interface(); + CFG_U(); std::string GetPortName() const override { return "cfg:u";