Digamos que una NDS V5 LITE o en una NDSL el brillo se maneja a través del Power Management de la siguiente manera:
#define PM_NDSLITE_ADR (4)
#define PM_NDSLITE_ISLITE BIT(6)
#define PM_NDSLITE_BRIGHTNESS(x) ((x & 0x03)<<0)
#define PM_NDSLITE_BRIGHTNESS_MASK (PM_NDSLITE_BRIGHTNESS(3))
(*) Comprobar si se trata de una NDS con control del brillo:
isNDSLite = ( (PM_GetRegister(PM_NDSLITE_ADR) & PM_NDSLITE_ISLITE) != 0) ? true : false;
(*) Establecer un nivel de brillo:
u8 data;
data=PM_GetRegister(PM_NDSLITE_ADR);
data&=~PM_NDSLITE_BRIGHTNESS_MASK;
data|=PM_NDSLITE_BRIGHTNESS(NIVEL_DE_BRILLO);
PM_SetRegister(PM_NDSLITE_ADR,data);
fuente: Moonlight
La cuestión es que las NDS < V5 no disponen del mismo chip PM que las NDSL, que no tiene la funcionalidad de cambiar el brillo (esto no está del todo comprobado, yo me inclino a que sí pueden pero no está documentado).
Seguimos investigando ...