mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 13:42:47 +00:00
Hopefully fix #466 - now it resets the GPU/LCD into a known state instead of leaving the previous one on
This commit is contained in:
parent
4890e4116f
commit
915cb2d13e
@ -19,6 +19,9 @@
|
|||||||
#include <types.h>
|
#include <types.h>
|
||||||
#include <vram.h>
|
#include <vram.h>
|
||||||
|
|
||||||
|
#include "arm/timer.h"
|
||||||
|
|
||||||
|
#include "hw/mcu.h"
|
||||||
#include "hw/gpulcd.h"
|
#include "hw/gpulcd.h"
|
||||||
|
|
||||||
/* LCD Configuration Registers */
|
/* LCD Configuration Registers */
|
||||||
@ -48,7 +51,7 @@ void LCD_Deinitialize(void)
|
|||||||
{
|
{
|
||||||
*REG_LCD(0x244) = 0;
|
*REG_LCD(0x244) = 0;
|
||||||
*REG_LCD(0xA44) = 0;
|
*REG_LCD(0xA44) = 0;
|
||||||
*REG_LCD(0x00C) = 0;
|
*REG_LCD(0x00C) = 0x10001;
|
||||||
*REG_LCD(0x014) = 0;
|
*REG_LCD(0x014) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,9 +150,16 @@ void GPU_SetFramebufferMode(u32 screen, u8 mode)
|
|||||||
|
|
||||||
void GPU_Init(void)
|
void GPU_Init(void)
|
||||||
{
|
{
|
||||||
|
if (*REG_GPU_CNT == 0x1007F) {
|
||||||
|
MCU_PushToLCD(false);
|
||||||
|
|
||||||
|
LCD_Deinitialize();
|
||||||
|
*REG_GPU_CNT = 0x10001;
|
||||||
|
TIMER_WaitTicks(CLK_MS_TO_TICKS(40));
|
||||||
|
}
|
||||||
|
|
||||||
LCD_Initialize(0x20);
|
LCD_Initialize(0x20);
|
||||||
|
|
||||||
if (*REG_GPU_CNT != 0x1007F) {
|
|
||||||
*REG_GPU_CNT = 0x1007F;
|
*REG_GPU_CNT = 0x1007F;
|
||||||
*GPU_PDC(0, 0x00) = 0x000001C2;
|
*GPU_PDC(0, 0x00) = 0x000001C2;
|
||||||
*GPU_PDC(0, 0x04) = 0x000000D1;
|
*GPU_PDC(0, 0x04) = 0x000000D1;
|
||||||
@ -218,5 +228,4 @@ void GPU_Init(void)
|
|||||||
|
|
||||||
for (u32 i = 0; i < 256; i++)
|
for (u32 i = 0; i < 256; i++)
|
||||||
*GPU_PDC(1, 0x84) = 0x10101 * i;
|
*GPU_PDC(1, 0x84) = 0x10101 * i;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user