From 2c9eb5132d0fa5b567fcf9d53872c2c7ee7bbd9c Mon Sep 17 00:00:00 2001 From: scawful Date: Tue, 12 Jul 2022 23:23:29 -0400 Subject: [PATCH] Add LoadFromPointer routine --- src/app/rom.cc | 12 ++++++------ src/app/rom.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/app/rom.cc b/src/app/rom.cc index 7c30f46d..3c06d78d 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -52,6 +52,8 @@ void ROM::LoadFromFile(const std::string &path) { is_loaded_ = true; } +void ROM::LoadFromPointer(uchar *data) { current_rom_ = data; } + uchar *ROM::DecompressGraphics(int pos, int size) { return Decompress(pos, size, false); } @@ -152,12 +154,10 @@ uchar *ROM::SNES3bppTo8bppSheet(uchar *buffer_in, int sheet_id, int size) { for (int y = 0; y < 8; y++) { //[0] + [1] + [16] for (int x = 0; x < 8; x++) { - auto b1 = - (uchar)((buffer_in[(y * 2) + (24 * pos)] & (kGraphicsBitmap[x]))); - auto b2 = (uchar)(buffer_in[((y * 2) + (24 * pos)) + 1] & - (kGraphicsBitmap[x])); - auto b3 = - (uchar)(buffer_in[(16 + y) + (24 * pos)] & (kGraphicsBitmap[x])); + auto b1 = ((buffer_in[(y * 2) + (24 * pos)] & (kGraphicsBitmap[x]))); + auto b2 = + (buffer_in[((y * 2) + (24 * pos)) + 1] & (kGraphicsBitmap[x])); + auto b3 = (buffer_in[(16 + y) + (24 * pos)] & (kGraphicsBitmap[x])); unsigned char b = 0; if (b1 != 0) { b |= 1; diff --git a/src/app/rom.h b/src/app/rom.h index e334f354..81f5cb25 100644 --- a/src/app/rom.h +++ b/src/app/rom.h @@ -28,10 +28,12 @@ class ROM { void Close(); void SetupRenderer(std::shared_ptr renderer); void LoadFromFile(const std::string& path); + void LoadFromPointer(uchar *data); uchar* DecompressGraphics(int pos, int size); uchar* DecompressOverworld(int pos, int size); uchar* Decompress(int pos, int size = 0x800, bool reversed = false); + uchar* SNES3bppTo8bppSheet(uchar* buffer_in, int sheet_id = 0, int size = 0x1000); uint GetGraphicsAddress(uint8_t id) const; @@ -48,10 +50,8 @@ class ROM { private: bool is_loaded_ = false; - bool has_header_ = false; - long size_ = 0; int num_sheets_ = 0; - uint compressed_size_; + long size_ = 0; uchar* current_rom_; uchar title[21] = "ROM Not Loaded"; enum rom_type type_ = LoROM;