From fddc517a6bacaee8b3be9ef842c3269c93266dd8 Mon Sep 17 00:00:00 2001 From: TuxSH <1922548+TuxSH@users.noreply.github.com> Date: Sat, 2 May 2020 13:10:10 +0100 Subject: [PATCH] Fix srv/srvpm sysver checks: - Kernel major version is 3 on SAFE_FIRM - osGetFirmVersion() is not always equal to osGetKernelVersion() --- libctru/source/services/srvpm.c | 2 +- libctru/source/srv.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libctru/source/services/srvpm.c b/libctru/source/services/srvpm.c index 7be5c52..151092e 100644 --- a/libctru/source/services/srvpm.c +++ b/libctru/source/services/srvpm.c @@ -8,7 +8,7 @@ #include <3ds/ipc.h> #include <3ds/os.h> -#define IS_PRE_7X (osGetFirmVersion() < SYSTEM_VERSION(2, 39, 4)) +#define IS_PRE_7X (GET_VERSION_MINOR(osGetFirmVersion()) < 39) static Handle srvPmHandle; static int srvPmRefCount; diff --git a/libctru/source/srv.c b/libctru/source/srv.c index 6954914..d371401 100644 --- a/libctru/source/srv.c +++ b/libctru/source/srv.c @@ -31,7 +31,7 @@ Result srvInit(void) if (AtomicPostIncrement(&srvRefCount)) return 0; - if(osGetFirmVersion() < SYSTEM_VERSION(2, 39, 4) && *srvPmGetSessionHandle() != 0) + if(GET_VERSION_MINOR(osGetKernelVersion()) < 39 && *srvPmGetSessionHandle() != 0) rc = svcDuplicateHandle(&srvHandle, *srvPmGetSessionHandle()); // Prior to system version 7.0 srv:pm was a superset of srv: else rc = svcConnectToPort(&srvHandle, "srv:");