Convert master buffer to 8bpp sheet

This commit is contained in:
Justin Scofield
2022-07-20 21:05:04 -04:00
parent cd1fe3f2e4
commit d062ba7aca

View File

@@ -58,7 +58,8 @@ void ROM::LoadFromPointer(uchar *data) { current_rom_ = data; }
// 127-217 -> compressed 3bpp sprites -> (decompressed each) 0x600 chars // 127-217 -> compressed 3bpp sprites -> (decompressed each) 0x600 chars
// 218-222 -> compressed 2bpp -> (decompressed each) 0x800 chars // 218-222 -> compressed 2bpp -> (decompressed each) 0x800 chars
void ROM::LoadAllGraphicsData() { void ROM::LoadAllGraphicsData() {
auto buffer = new uchar[346624]; int buffer_size = 346624;
auto buffer = new uchar[buffer_size];
auto data = new uchar[2048]; auto data = new uchar[2048];
int buffer_pos = 0; int buffer_pos = 0;
@@ -75,16 +76,17 @@ void ROM::LoadAllGraphicsData() {
data = Decompress(gfx_addr, core::UncompressedSheetSize); data = Decompress(gfx_addr, core::UncompressedSheetSize);
} }
auto converted_sheet = SNES3bppTo8bppSheet(data);
gfx::Bitmap tilesheet_bmp(core::kTilesheetWidth, core::kTilesheetHeight, gfx::Bitmap tilesheet_bmp(core::kTilesheetWidth, core::kTilesheetHeight,
core::kTilesheetDepth, SNES3bppTo8bppSheet(data)); core::kTilesheetDepth, converted_sheet);
tilesheet_bmp.CreateTexture(sdl_renderer_); tilesheet_bmp.CreateTexture(sdl_renderer_);
graphics_bin_[i] = tilesheet_bmp; graphics_bin_[i] = tilesheet_bmp;
for (int j = 0; j < sizeof(data); j++) { for (int j = 0; j < sizeof(converted_sheet); j++) {
buffer[j + buffer_pos] = data[j]; buffer[j + buffer_pos] = converted_sheet[j];
} }
buffer_pos += sizeof(data); buffer_pos += sizeof(converted_sheet);
} }
master_gfx_bin_ = buffer; master_gfx_bin_ = buffer;