From cf298474bcaf57a6c10cfcbe050eb61e630c269f Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sat, 12 Oct 2013 02:11:57 -0700 Subject: [PATCH] Use 5_6_5 with SDL --- CMakeLists.txt | 1 + src/gba/renderers/video-software.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c21bcb09..ebf4d7a10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ if(BUILD_RASPI AND BUILD_EGL) set(OPENGL_INCLUDE_DIR "") add_definitions(-DBUILD_RASPI) elseif(BUILD_BBB OR BUILD_RASPI) + add_definitions(-DCOLOR_16_BIT -DCOLOR_5_6_5) set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/sdl-main.c) else() set(MAIN_SRC ${CMAKE_SOURCE_DIR}/src/gl-main.c) diff --git a/src/gba/renderers/video-software.c b/src/gba/renderers/video-software.c index 238a3a6af..f5c12b665 100644 --- a/src/gba/renderers/video-software.c +++ b/src/gba/renderers/video-software.c @@ -405,7 +405,11 @@ static void GBAVideoSoftwareRendererDrawScanline(struct GBAVideoRenderer* render #ifdef COLOR_16_BIT for (x = 0; x < VIDEO_HORIZONTAL_PIXELS; ++x) { - row[x] = softwareRenderer->row[x]; + uint32_t c = softwareRenderer->row[x]; +#ifdef COLOR_5_6_5 + c = ((c & 0x001F) << 11) | ((c & 0x03E0) << 1) | ((c & 0x7C00) >> 10); +#endif + row[x] = c; } #else memcpy(row, softwareRenderer->row, VIDEO_HORIZONTAL_PIXELS * sizeof(*row));