From 82154b3b408e5f8c3d6ec363d7ae5c74e3ab61e6 Mon Sep 17 00:00:00 2001 From: Nomi Date: Mon, 25 Sep 2023 12:04:55 +0200 Subject: [PATCH] Add NS service stub --- CMakeLists.txt | 4 ++-- include/services/ns.hpp | 24 ++++++++++++++++++++++++ src/core/services/ns.cpp | 19 +++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 include/services/ns.hpp create mode 100644 src/core/services/ns.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index a9688fe3..80d31788 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,7 +151,7 @@ set(SERVICE_SOURCE_FILES src/core/services/service_manager.cpp src/core/services src/core/services/act.cpp src/core/services/nfc.cpp src/core/services/dlp_srvr.cpp src/core/services/ir_user.cpp src/core/services/http.cpp src/core/services/soc.cpp src/core/services/ssl.cpp src/core/services/news_u.cpp src/core/services/amiibo_device.cpp - src/core/services/csnd.cpp src/core/services/nwm_uds.cpp + src/core/services/csnd.cpp src/core/services/nwm_uds.cpp src/core/services/ns.cpp ) set(PICA_SOURCE_FILES src/core/PICA/gpu.cpp src/core/PICA/regs.cpp src/core/PICA/shader_unit.cpp src/core/PICA/shader_interpreter.cpp src/core/PICA/dynapica/shader_rec.cpp @@ -196,7 +196,7 @@ set(HEADER_FILES include/emulator.hpp include/helpers.hpp include/termcolor.hpp include/applets/applet.hpp include/applets/mii_selector.hpp include/math_util.hpp include/services/soc.hpp include/services/news_u.hpp include/applets/software_keyboard.hpp include/applets/applet_manager.hpp include/fs/archive_user_save_data.hpp include/services/amiibo_device.hpp include/services/nfc_types.hpp include/swap.hpp include/services/csnd.hpp include/services/nwm_uds.hpp - include/fs/archive_system_save_data.hpp include/lua.hpp + include/fs/archive_system_save_data.hpp include/lua.hpp include/services/ns.hpp ) cmrc_add_resource_library( diff --git a/include/services/ns.hpp b/include/services/ns.hpp new file mode 100644 index 00000000..0e615703 --- /dev/null +++ b/include/services/ns.hpp @@ -0,0 +1,24 @@ +#pragma once +#include "helpers.hpp" +#include "kernel_types.hpp" +#include "logger.hpp" +#include "memory.hpp" +#include "result/result.hpp" + +class NSService { + Memory& mem; + MAKE_LOG_FUNCTION(log, nsLogger) + + // Service commands + +public: + enum class Type { + S, // ns:s + P, // ns:p + C, // ns:c + }; + + NSService(Memory& mem) : mem(mem) {} + void reset(); + void handleSyncRequest(u32 messagePointer, Type type); +}; \ No newline at end of file diff --git a/src/core/services/ns.cpp b/src/core/services/ns.cpp new file mode 100644 index 00000000..35cfcc2d --- /dev/null +++ b/src/core/services/ns.cpp @@ -0,0 +1,19 @@ +#include "services/ns.hpp" +#include "ipc.hpp" + +namespace NSCommands { + enum : u32 { + a, + }; +} + +void NSService::reset() {} + +void NSService::handleSyncRequest(u32 messagePointer, Type type) { + const u32 command = mem.read32(messagePointer); + + // ns:s commands + switch (command) { + default: Helpers::panic("NS service requested. Command: %08X\n", command); + } +} \ No newline at end of file