IR: Proper error in SendIrnop

This commit is contained in:
wheremyfoodat 2025-07-03 02:56:25 +03:00
parent dc7f8a48bd
commit 2a0661f968
3 changed files with 14 additions and 8 deletions

View file

@ -2,8 +2,9 @@
#include "result_cfg.hpp"
#include "result_common.hpp"
#include "result_kernel.hpp"
#include "result_os.hpp"
#include "result_fnd.hpp"
#include "result_fs.hpp"
#include "result_gsp.hpp"
#include "result_gsp.hpp"
#include "result_ir.hpp"
#include "result_kernel.hpp"
#include "result_os.hpp"

View file

@ -0,0 +1,8 @@
#pragma once
#include "result_common.hpp"
DEFINE_HORIZON_RESULT_MODULE(Result::IR, IR);
namespace Result::IR {
DEFINE_HORIZON_RESULT(NoDeviceConnected, 13, InvalidState, Status);
};

View file

@ -10,6 +10,7 @@
#include "kernel.hpp"
#include "services/ir/ir_types.hpp"
#define log printf
using namespace IR;
namespace IRUserCommands {
@ -168,10 +169,6 @@ void IRUserService::requireConnection(u32 messagePointer) {
if (enableCirclePadPro) {
cpp.connect();
// Slight hack: For some reason, CirclePad Pro breaks in some games (eg Majora's Mask 3D) unless we do this
if (receiveEvent) {
kernel.signalEvent(*receiveEvent);
}
}
mem.write8(sharedMemAddress + offsetof(SharedMemoryStatus, connectionStatus), status);
@ -217,7 +214,7 @@ void IRUserService::sendIrnop(u32 messagePointer) {
mem.write32(messagePointer + 4, Result::Success);
} else {
Helpers::warn("IR:USER: SendIrnop without connected device");
mem.write32(messagePointer + 4, Result::FailurePlaceholder);
mem.write32(messagePointer + 4, Result::IR::NoDeviceConnected);
}
}