int GSPPid = 0x14;
int isGSPPatchRequired = 0;
uintptr_t gspPatchAddr = 0;
int bklightValue = 50;
int checkBacklightSupported() {
Handle hGSPProcess = 0;
u32 ret;
u8 buf[16] = { 0 };
static u8 desiredHeader[16] = { 0x30, 0x40, 0x2D, 0xE9, 0x00, 0x40, 0xA0, 0xE1, 0x01, 0x5C, 0x80, 0xE2, 0x8C, 0x01, 0xD0, 0xE5 };
if (!(ntrConfig->isNew3DS)) {
return 1;
}
ret = svc_openProcess(&hGSPProcess, GSPPid);
if (ret != 0) {
return 0;
}
gspPatchAddr = 0x0010740C;
copyRemoteMemory(getCurrentProcessHandle(), buf, hGSPProcess, (void*) gspPatchAddr, 16);
if (memcmp(buf, desiredHeader, 16) == 0) {
goto requirePatch;
}
// 11.3.0
gspPatchAddr = 0x0010743C;
copyRemoteMemory(getCurrentProcessHandle(), buf, hGSPProcess, (void*) gspPatchAddr, 16);
if (memcmp(buf, desiredHeader, 16) == 0) {
goto requirePatch;
}
svc_closeHandle(hGSPProcess);
return 0;
requirePatch:
svc_closeHandle(hGSPProcess);
isGSPPatchRequired = 1;
return 1;
}
from source/tools.c
line 651
This would fix the brightness control not working in system versions past 11.3