From d062ba7aca5ac9f91e0229f6cb88f959206523c6 Mon Sep 17 00:00:00 2001 From: Justin Scofield Date: Wed, 20 Jul 2022 21:05:04 -0400 Subject: [PATCH] Convert master buffer to 8bpp sheet --- src/app/rom.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/rom.cc b/src/app/rom.cc index 03386a0d..53d46a92 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -58,7 +58,8 @@ void ROM::LoadFromPointer(uchar *data) { current_rom_ = data; } // 127-217 -> compressed 3bpp sprites -> (decompressed each) 0x600 chars // 218-222 -> compressed 2bpp -> (decompressed each) 0x800 chars void ROM::LoadAllGraphicsData() { - auto buffer = new uchar[346624]; + int buffer_size = 346624; + auto buffer = new uchar[buffer_size]; auto data = new uchar[2048]; int buffer_pos = 0; @@ -75,16 +76,17 @@ void ROM::LoadAllGraphicsData() { data = Decompress(gfx_addr, core::UncompressedSheetSize); } + auto converted_sheet = SNES3bppTo8bppSheet(data); gfx::Bitmap tilesheet_bmp(core::kTilesheetWidth, core::kTilesheetHeight, - core::kTilesheetDepth, SNES3bppTo8bppSheet(data)); + core::kTilesheetDepth, converted_sheet); tilesheet_bmp.CreateTexture(sdl_renderer_); graphics_bin_[i] = tilesheet_bmp; - for (int j = 0; j < sizeof(data); j++) { - buffer[j + buffer_pos] = data[j]; + for (int j = 0; j < sizeof(converted_sheet); j++) { + buffer[j + buffer_pos] = converted_sheet[j]; } - buffer_pos += sizeof(data); + buffer_pos += sizeof(converted_sheet); } master_gfx_bin_ = buffer;