void __ctru_speedup_config(void) { if (R_SUCCEEDED(ptmSysmInit())) { PTMSYSM_ConfigureNew3DSCPU(__ctru_speedup ? 3 : 0); ptmSysmExit(); } }
// https://www.3dbrew.org/wiki/PTMSYSM:LaunchFIRMRebootSystem void PTM_RebootAsync(void) { ptmSysmInit(); Handle serviceHandle = 0; Result result = srvGetServiceHandle(&serviceHandle, "ptm:sysm"); if (result != 0) { return; } u32 *commandBuffer = getThreadCommandBuffer(); commandBuffer[0] = 0x04090080; commandBuffer[1] = 0x00000000; commandBuffer[2] = 0x00000000; svcSendSyncRequest(serviceHandle); svcCloseHandle(serviceHandle); ptmSysmExit(); }
STATIC mp_obj_t mod_citrus_ptmsysm_init(void) { INIT_ONCE(_mod_citrus_ptmsysm_is_init); return mp_obj_new_int(ptmSysmInit()); }