diff --git a/include/result/result.hpp b/include/result/result.hpp index 53bb725d..94fe34e1 100644 --- a/include/result/result.hpp +++ b/include/result/result.hpp @@ -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" \ No newline at end of file +#include "result_gsp.hpp" +#include "result_ir.hpp" +#include "result_kernel.hpp" +#include "result_os.hpp" \ No newline at end of file diff --git a/include/result/result_ir.hpp b/include/result/result_ir.hpp new file mode 100644 index 00000000..ef38fd1f --- /dev/null +++ b/include/result/result_ir.hpp @@ -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); +}; diff --git a/src/core/services/ir/ir_user.cpp b/src/core/services/ir/ir_user.cpp index 8e1693de..631ade57 100644 --- a/src/core/services/ir/ir_user.cpp +++ b/src/core/services/ir/ir_user.cpp @@ -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); } }