From 7893b73e809d844d5c6694618bd91ac17361e312 Mon Sep 17 00:00:00 2001 From: Naim Arnold Date: Wed, 12 Aug 2026 20:57:22 -0500 Subject: [PATCH 1/2] check _console_buffer against current console destbuffer --- libogc/console.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libogc/console.c b/libogc/console.c index 0d64c868..89da6fb7 100644 --- a/libogc/console.c +++ b/libogc/console.c @@ -183,7 +183,7 @@ static inline void *__console_get_buffer_start_ptr() // writing characters/pixels to the console buffer via stdio/etc does not involve those values otherwise // only console dimensions (con_xres/con_yres/con_stride) and cursor/window values (cursorX/cursorY/con_cols/con_rows/...) - return _console_buffer != NULL + return (_console_buffer != NULL && _console_buffer == currentConsole->destbuffer) ? _console_buffer // same as currentConsole->destbuffer, don't need to load from a struct access : __console_offset_by_pixels(currentConsole->destbuffer, currentConsole->target_y, currentConsole->tgt_stride, currentConsole->target_x); } From a0e9c7aafd520c082b3e0c80ff236fee11eef68b Mon Sep 17 00:00:00 2001 From: Naim Arnold Date: Wed, 2 Sep 2026 18:13:31 -0500 Subject: [PATCH 2/2] just set _console_buffer to NULL instead --- libogc/console.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libogc/console.c b/libogc/console.c index 89da6fb7..de54f9e3 100644 --- a/libogc/console.c +++ b/libogc/console.c @@ -183,7 +183,7 @@ static inline void *__console_get_buffer_start_ptr() // writing characters/pixels to the console buffer via stdio/etc does not involve those values otherwise // only console dimensions (con_xres/con_yres/con_stride) and cursor/window values (cursorX/cursorY/con_cols/con_rows/...) - return (_console_buffer != NULL && _console_buffer == currentConsole->destbuffer) + return _console_buffer != NULL ? _console_buffer // same as currentConsole->destbuffer, don't need to load from a struct access : __console_offset_by_pixels(currentConsole->destbuffer, currentConsole->target_y, currentConsole->tgt_stride, currentConsole->target_x); } @@ -496,6 +496,8 @@ void __console_init(void *destbuffer,int xstart,int ystart,int xres,int yres,int _CPU_ISR_Disable(level); + _console_buffer = NULL; // exception handler workaround + __set_default_console(destbuffer, xstart, ystart, stride, xres, yres, stride); _CPU_ISR_Restore(level);