|
1 | 1 | #include <string.h> |
| 2 | +#include <time.h> |
2 | 3 | #include <3ds/types.h> |
3 | 4 | #include <3ds/result.h> |
4 | 5 | #include <3ds/svc.h> |
@@ -150,6 +151,55 @@ Result PTMSYSM_RebootAsync(u64 timeout) |
150 | 151 | return (Result)cmdbuf[1]; |
151 | 152 | } |
152 | 153 |
|
| 154 | +Result PTMSYSM_ClearStepHistory(void) |
| 155 | +{ |
| 156 | + Result ret; |
| 157 | + u32 *cmdbuf = getThreadCommandBuffer(); |
| 158 | + cmdbuf[0] = IPC_MakeHeader(0x805,0,0); // 0x8050000 |
| 159 | + |
| 160 | + if(R_FAILED(ret = svcSendSyncRequest(ptmSysmHandle)))return ret; |
| 161 | + |
| 162 | + return (Result)cmdbuf[1]; |
| 163 | +} |
| 164 | + |
| 165 | +Result PTMSYSM_SetStepHistory(u32 hours, const u16 *stepValue) |
| 166 | +{ |
| 167 | + Result ret; |
| 168 | + |
| 169 | + time_t raw; |
| 170 | + time(&raw); |
| 171 | + double msTime = difftime(raw, 0x386D4380); // 01.01.2000 00:00:00 UTC |
| 172 | + msTime = msTime * 1000.0f; |
| 173 | + |
| 174 | + s64 msiTime = (s64)msTime; |
| 175 | + u32 msiTimeLo, msiTimeHi; |
| 176 | + msiTimeLo = (u32)(msiTime & 0xFFFFFFFF); // Low 32 Bit |
| 177 | + msiTimeHi = (u32)((msiTime >> 32) & 0xFFFFFFFF); // High 32 Bit |
| 178 | + |
| 179 | + u32 *cmdbuf = getThreadCommandBuffer(); |
| 180 | + cmdbuf[0] = IPC_MakeHeader(0x806, 3, 2); // 0x80600C2 |
| 181 | + cmdbuf[1] = hours; |
| 182 | + cmdbuf[2] = msiTimeLo; |
| 183 | + cmdbuf[3] = msiTimeHi; |
| 184 | + cmdbuf[4] = IPC_Desc_Buffer(hours, IPC_BUFFER_R); |
| 185 | + cmdbuf[5] = (u32)stepValue; |
| 186 | + |
| 187 | + if(R_FAILED(ret = svcSendSyncRequest(ptmSysmHandle)))return ret; |
| 188 | + |
| 189 | + return (Result)cmdbuf[1]; |
| 190 | +} |
| 191 | + |
| 192 | +Result PTMSYSM_ClearPlayHistory(void) |
| 193 | +{ |
| 194 | + Result ret; |
| 195 | + u32 *cmdbuf = getThreadCommandBuffer(); |
| 196 | + cmdbuf[0] = IPC_MakeHeader(0x80A,0,0); // 0x80A0000 |
| 197 | + |
| 198 | + if(R_FAILED(ret = svcSendSyncRequest(ptmSysmHandle)))return ret; |
| 199 | + |
| 200 | + return (Result)cmdbuf[1]; |
| 201 | +} |
| 202 | + |
153 | 203 | Result PTMSYSM_SetUserTime(s64 msY2k) |
154 | 204 | { |
155 | 205 | Result ret; |
|
0 commit comments