diff --git a/libctru/include/3ds/services/ptmsysm.h b/libctru/include/3ds/services/ptmsysm.h index 253ca3d..f65eab9 100644 --- a/libctru/include/3ds/services/ptmsysm.h +++ b/libctru/include/3ds/services/ptmsysm.h @@ -109,9 +109,10 @@ Result PTMSYSM_GetRtcTime(s64 *outMsY2k); Result PTMSYSM_SetRtcTime(s64 msY2k); /** - * @brief Returns 1 if it's a New 3DS, otherwise 0. + * @brief Checks whether the system is a New 3DS. + * @param[out] out Pointer to write the New 3DS flag to. */ -Result PTMSYSM_CheckNew3DS(void); +Result PTMSYSM_CheckNew3DS(bool *out); /** * @brief Configures the New 3DS' CPU clock speed and L2 cache. diff --git a/libctru/source/services/ptmsysm.c b/libctru/source/services/ptmsysm.c index f376f0d..f7a9938 100644 --- a/libctru/source/services/ptmsysm.c +++ b/libctru/source/services/ptmsysm.c @@ -98,13 +98,14 @@ Result PTMSYSM_Awaken(void) return (Result)cmdbuf[1]; } -Result PTMSYSM_CheckNew3DS(void) +Result PTMSYSM_CheckNew3DS(bool *out) { Result ret; u32 *cmdbuf = getThreadCommandBuffer(); cmdbuf[0] = IPC_MakeHeader(0x040A,0,0); // 0x040A0000 - if(R_FAILED(ret = svcSendSyncRequest(ptmSysmHandle)))return 0; + if(R_FAILED(ret = svcSendSyncRequest(ptmSysmHandle)))return ret; + *out = (bool)cmdbuf[2]; // if cmdbuf[1] is != 0 then this is uninitialized (this is fine) return (Result)cmdbuf[1]; }