Add news:s service

This commit is contained in:
Nomi 2023-09-26 03:47:20 +02:00
parent a2ed44e6a7
commit cb9ba4508b
6 changed files with 42 additions and 2 deletions

View file

@ -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/ns.cpp
src/core/services/csnd.cpp src/core/services/nwm_uds.cpp src/core/services/ns.cpp src/core/services/news_s.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/services/ns.hpp
include/fs/archive_system_save_data.hpp include/lua.hpp include/services/ns.hpp include/services/news_s.hpp
)
cmrc_add_resource_library(

View file

@ -40,6 +40,7 @@ namespace KernelHandles {
NDM, // ?????
NS_S, // Nintendo Shell service
NWM_UDS, // Local multiplayer
NEWS_S, // news:u on steroids
NEWS_U, // This service literally has 1 command (AddNotification) and I don't even understand what it does
PTM_U, // PTM service (Used for accessing various console info, such as battery, shell and pedometer state)
PTM_SYSM, // PTM system service
@ -98,6 +99,7 @@ namespace KernelHandles {
case MCU_HWC: return "MCU::HWC";
case MIC: return "MIC";
case NDM: return "NDM";
case NEWS_S: return "NEWS_S";
case NEWS_U: return "NEWS_U";
case NWM_UDS: return "nwm::UDS";
case NFC: return "NFC";

View file

@ -0,0 +1,18 @@
#pragma once
#include "helpers.hpp"
#include "kernel_types.hpp"
#include "logger.hpp"
#include "memory.hpp"
class NewsSService {
Handle handle = KernelHandles::NEWS_S;
Memory& mem;
MAKE_LOG_FUNCTION(log, newsLogger)
// Service commands
public:
NewsSService(Memory& mem) : mem(mem) {}
void reset();
void handleSyncRequest(u32 messagePointer);
};

View file

@ -29,6 +29,7 @@
#include "services/mic.hpp"
#include "services/ndm.hpp"
#include "services/nwm_uds.hpp"
#include "services/news_s.hpp"
#include "services/news_u.hpp"
#include "services/nfc.hpp"
#include "services/nim.hpp"
@ -72,6 +73,7 @@ class ServiceManager {
LDRService ldr;
MICService mic;
NDMService ndm;
NewsSService news_s;
NewsUService news_u;
NFCService nfc;
NwmUdsService nwm_uds;

View file

@ -0,0 +1,15 @@
#include "ipc.hpp"
#include "services/news_s.hpp"
namespace NewsCommands {
enum : u32 {};
}
void NewsSService::reset() {}
void NewsSService::handleSyncRequest(u32 messagePointer) {
const u32 command = mem.read32(messagePointer);
switch (command) {
default: Helpers::panic("news:s service requested. Command: %08X\n", command);
}
}

View file

@ -37,9 +37,11 @@ void ServiceManager::reset() {
mcu_hwc.reset();
mic.reset();
ndm.reset();
news_s.reset();
news_u.reset();
nfc.reset();
nim.reset();
ns.reset();
ptm.reset();
soc.reset();
ssl.reset();
@ -125,6 +127,7 @@ static std::map<std::string, Handle> serviceMap = {
{ "mcu::HWC", KernelHandles::MCU_HWC },
{ "mic:u", KernelHandles::MIC },
{ "ndm:u", KernelHandles::NDM },
{ "news:s", KernelHandles::NEWS_S },
{ "news:u", KernelHandles::NEWS_U },
{ "nfc:u", KernelHandles::NFC },
{ "ns:s", KernelHandles::NS_S },