掌機 - Nintendo 3DS - C/C++ - LCD Backlight



參考資訊:
https://hub.docker.com/r/greatwizard/devkitarm-3ds

main.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <3ds.h>
 
#ifndef REG_LCDBACKLIGHTMAIN
    #define REG_LCDBACKLIGHTMAIN (u32)(0x1ED02240 - 0x1EB00000)
#endif

#ifndef REG_LCDBACKLIGHTSUB
    #define REG_LCDBACKLIGHTSUB (u32)(0x1ED02A40 - 0x1EB00000)
#endif

int main(void)
{
    u32 off = 0;
    u32 brightnessSub = 0;
    u32 brightnessMain = 0;

    gfxInitDefault();
    consoleInit(GFX_TOP, NULL);

    GSPGPU_ReadHWRegs(REG_LCDBACKLIGHTMAIN, &brightnessMain, 4);
    GSPGPU_ReadHWRegs(REG_LCDBACKLIGHTSUB, &brightnessSub, 4);
    printf("backlight main=%d, sub=%d\n", brightnessMain, brightnessSub);
    svcSleepThread(3000000000LL);
    
    GSPGPU_WriteHWRegs(REG_LCDBACKLIGHTMAIN, &off, 4);
    GSPGPU_WriteHWRegs(REG_LCDBACKLIGHTSUB, &off, 4);
    svcSleepThread(3000000000LL);

    GSPGPU_WriteHWRegs(REG_LCDBACKLIGHTMAIN, &brightnessMain, 4);
    GSPGPU_WriteHWRegs(REG_LCDBACKLIGHTSUB, &brightnessSub, 4);
         
    gspWaitForVBlank();
    gfxSwapBuffers();
    svcSleepThread(3000000000LL);
    gfxExit();
    return 0;
}