diff --git a/include/hardware/gfx.h b/include/hardware/gfx.h index 8f67eeb..285648a 100644 --- a/include/hardware/gfx.h +++ b/include/hardware/gfx.h @@ -62,7 +62,7 @@ void GX_memoryFill(u64 *buf0a, u32 buf0v, u32 buf0Sz, u32 val0, u64 *buf1a, u32 buf1v, u32 buf1Sz, u32 val1); void GX_displayTransfer(u64 *in, u32 indim, u64 *out, u32 outdim, u32 flags); void GX_textureCopy(u64 *in, u32 indim, u64 *out, u32 outdim, u32 size); -void GFX_setBrightness(u32 brightness); +void GFX_setBrightness(u32 top, u32 sub); void* GFX_getFramebuffer(u8 screen); void GFX_swapFramebufs(void); void GFX_waitForEvent(GfxEvent event, bool discard); diff --git a/source/arm11/hardware/gfx.c b/source/arm11/hardware/gfx.c index 8842753..1ddc55a 100644 --- a/source/arm11/hardware/gfx.c +++ b/source/arm11/hardware/gfx.c @@ -182,6 +182,8 @@ void GX_displayTransfer(u64 *in, u32 indim, u64 *out, u32 outdim, u32 flags) { + if(!in || !out) return; + REGs_TRANS_ENGINE[0] = (u32)in>>3; REGs_TRANS_ENGINE[1] = (u32)out>>3; REGs_TRANS_ENGINE[2] = indim; @@ -195,6 +197,8 @@ // Copies every second line of a 240x400 framebuffer. void GX_textureCopy(u64 *in, u32 indim, u64 *out, u32 outdim, u32 size) { + if(!in || !out) return; + REGs_TRANS_ENGINE[0] = (u32)in>>3; REGs_TRANS_ENGINE[1] = (u32)out>>3; REGs_TRANS_ENGINE[4] = 1u<<3; @@ -204,10 +208,10 @@ REGs_TRANS_ENGINE[6] = 1; } -void GFX_setBrightness(u32 brightness) +void GFX_setBrightness(u32 top, u32 sub) { - REG_LCD_BACKLIGHT_MAIN = brightness; - REG_LCD_BACKLIGHT_SUB = brightness; + REG_LCD_BACKLIGHT_MAIN = top; + REG_LCD_BACKLIGHT_SUB = sub; } void* GFX_getFramebuffer(u8 screen) @@ -250,8 +254,7 @@ *((vu32*)0x1020200C) &= 0xFFFEFFFE; REG_LCD_COLORFILL_MAIN = 1u<<24; // Force blackscreen REG_LCD_COLORFILL_SUB = 1u<<24; // Force blackscreen - REG_LCD_BACKLIGHT_MAIN = DEFAULT_BRIGHTNESS; - REG_LCD_BACKLIGHT_SUB = DEFAULT_BRIGHTNESS; + GFX_setBrightness(DEFAULT_BRIGHTNESS, DEFAULT_BRIGHTNESS); *((vu32*)0x10202244) = 0x1023E; *((vu32*)0x10202A44) = 0x1023E; @@ -264,8 +267,7 @@ { REG_LCD_COLORFILL_MAIN = 1u<<24; // Force blackscreen REG_LCD_COLORFILL_SUB = 1u<<24; // Force blackscreen - REG_LCD_BACKLIGHT_MAIN = DEFAULT_BRIGHTNESS; - REG_LCD_BACKLIGHT_SUB = DEFAULT_BRIGHTNESS; + GFX_setBrightness(DEFAULT_BRIGHTNESS, DEFAULT_BRIGHTNESS); gfxSetupFramebuffers(); }