diff --git a/include/buffers.h b/include/buffers.h index 22cf065894..fe9fa41964 100644 --- a/include/buffers.h +++ b/include/buffers.h @@ -15,9 +15,6 @@ typedef union { }; } BufferLow; -// Equivalent to gLoBuffer.framebufferHiRes, but a different symbol is required to match -extern u16 gFramebufferHiRes1[HIRES_BUFFER_WIDTH][HIRES_BUFFER_HEIGHT]; - extern BufferLow gLoBuffer; @@ -36,9 +33,6 @@ typedef union { }; } BufferHigh; -// Equivalent to gHiBuffer.framebufferHiRes, but a different symbol is required to match -extern u16 gFramebufferHiRes0[HIRES_BUFFER_HEIGHT][HIRES_BUFFER_WIDTH]; - extern BufferHigh gHiBuffer; #ifndef FRAMEBUFFERS_START_ADDR diff --git a/linker_scripts/final/undefined_syms.ld b/linker_scripts/final/undefined_syms.ld index de8f5fe595..85d27e3a80 100644 --- a/linker_scripts/final/undefined_syms.ld +++ b/linker_scripts/final/undefined_syms.ld @@ -1,8 +1,3 @@ -// sys_cfb buffers - -gFramebufferHiRes1 = gLoBuffer; -gFramebufferHiRes0 = gHiBuffer; - // Ucode symbols rspbootTextEnd = rspbootTextStart + 0x160; diff --git a/src/code/sys_cfb.c b/src/code/sys_cfb.c index 974e6cdf7b..cd3d5897f4 100644 --- a/src/code/sys_cfb.c +++ b/src/code/sys_cfb.c @@ -88,10 +88,16 @@ void SysCfb_SetHiResMode(void) { } void SysCfb_Init(void) { - sCfbLoRes1 = gLoBuffer.framebuffer; - sCfbLoRes0 = gHiBuffer.framebuffer; - sCfbHiRes1 = gFramebufferHiRes1; - sCfbHiRes0 = gFramebufferHiRes0; + do { + sCfbLoRes1 = gLoBuffer.framebuffer; + sCfbLoRes0 = gHiBuffer.framebuffer; + } while ((u64)0); + + do { + sCfbHiRes1 = gLoBuffer.framebufferHiRes; + sCfbHiRes0 = gHiBuffer.framebufferHiRes; + } while ((u64)0); + SysCfb_SetLoResMode(); }