diff --git a/libctru/include/3ds/services/ptm.h b/libctru/include/3ds/services/ptm.h index 7c595b9..825d503 100644 --- a/libctru/include/3ds/services/ptm.h +++ b/libctru/include/3ds/services/ptm.h @@ -5,3 +5,4 @@ Result ptmExit(); Result PTMU_GetBatteryLevel(Handle* servhandle, u8 *out); Result PTMU_GetBatteryChargeState(Handle* servhandle, u8 *out); +Result PTMU_GetTotalStepCount(Handle* servhandle, u32 *steps); diff --git a/libctru/source/services/ptm.c b/libctru/source/services/ptm.c index 8fa21fc..ddd298c 100644 --- a/libctru/source/services/ptm.c +++ b/libctru/source/services/ptm.c @@ -42,3 +42,18 @@ Result PTMU_GetBatteryChargeState(Handle* servhandle, u8 *out) return (Result)cmdbuf[1]; } + +Result PTMU_GetTotalStepCount(Handle* servhandle, u32 *steps) +{ + if(!servhandle)servhandle=&ptmHandle; + Result ret=0; + u32 *cmdbuf = getThreadCommandBuffer(); + + cmdbuf[0] = 0x000C0000; + + if((ret = svcSendSyncRequest(*servhandle))!=0)return ret; + + *steps = cmdbuf[2]; + + return (Result)cmdbuf[1]; +}