From 83dfd10c44646a6ee77c4316912445224545119b Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 6 Aug 2017 11:50:29 -0400 Subject: [PATCH] Implement GSPGPU_SetLedForceOff as well --- libctru/include/3ds/services/gspgpu.h | 5 +++++ libctru/source/services/gspgpu.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libctru/include/3ds/services/gspgpu.h b/libctru/include/3ds/services/gspgpu.h index 8c359a6..f342391 100644 --- a/libctru/include/3ds/services/gspgpu.h +++ b/libctru/include/3ds/services/gspgpu.h @@ -218,3 +218,8 @@ Result GSPGPU_UnregisterInterruptRelayQueue(void); /// Triggers a handling of commands written to shared memory. Result GSPGPU_TriggerCmdReqQueue(void); +/** + * @brief Sets 3D_LEDSTATE to the input state value. + * @param state 0 = 3D LED enable, 1 = 3D LED disable. + */ +Result GSPGPU_SetLedForceOff(u8 state); \ No newline at end of file diff --git a/libctru/source/services/gspgpu.c b/libctru/source/services/gspgpu.c index 8d86689..3730ec4 100644 --- a/libctru/source/services/gspgpu.c +++ b/libctru/source/services/gspgpu.c @@ -430,3 +430,15 @@ Result GSPGPU_RestoreVramSysArea(void) return cmdbuf[1]; } +Result GSPGPU_SetLedForceOff(u8 state) +{ + u32 *cmdbuf = getThreadCommandBuffer(); + + cmdbuf[0] = IPC_MakeHeader(0x1C,1,0); // 0x1C0040 + cmdbuf[1] = state; + + Result ret=0; + if (R_FAILED(ret = svcSendSyncRequest(gspGpuHandle))) return ret; + + return cmdbuf[1]; +} \ No newline at end of file