diff --git a/rpcsx-os/orbis-kernel-config/orbis-config.hpp b/rpcsx-os/orbis-kernel-config/orbis-config.hpp index 867242465..10a140bcf 100644 --- a/rpcsx-os/orbis-kernel-config/orbis-config.hpp +++ b/rpcsx-os/orbis-kernel-config/orbis-config.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -80,6 +81,12 @@ template [[nodiscard]] ErrorCode uwrite(ptr pointer, T data) { return uwriteRaw(pointer, &data, sizeof(T)); } +template requires (std::is_arithmetic_v && std::is_arithmetic_v && sizeof(T) > sizeof(U) && !std::is_same_v, bool>) +[[nodiscard]] ErrorCode uwrite(ptr pointer, U data) { + T converted = data; + return uwriteRaw(pointer, &converted, sizeof(T)); +} + template [[nodiscard]] ErrorCode uread(T *result, ptr pointer, std::size_t count) { return ureadRaw(&result, pointer, sizeof(T) * count);