diff --git a/src/app/editor/graphics_editor.h b/src/app/editor/graphics_editor.h index 3c8dafe9..ff654d88 100644 --- a/src/app/editor/graphics_editor.h +++ b/src/app/editor/graphics_editor.h @@ -15,7 +15,6 @@ #include "app/gui/canvas.h" #include "app/gui/input.h" #include "app/rom.h" -#include "app/viewer/cgx_viewer.h" namespace yaze { namespace app { @@ -148,8 +147,6 @@ class GraphicsEditor { gfx::SNESPalette palette_; gfx::SNESPalette col_file_palette_; - viewer::CgxViewer cgx_viewer_; - absl::Status status_; }; diff --git a/src/app/viewer/cgx_viewer.cc b/src/app/viewer/cgx_viewer.cc deleted file mode 100644 index 5320f6d0..00000000 --- a/src/app/viewer/cgx_viewer.cc +++ /dev/null @@ -1,121 +0,0 @@ -#include "cgx_viewer.h" - -#include -#include -#include -#include - -#include "app/core/pipeline.h" -#include "app/gfx/bitmap.h" -#include "app/gfx/snes_palette.h" -#include "app/gfx/snes_tile.h" - -namespace yaze { -namespace app { -namespace viewer { - -constexpr uint16_t kMatchedBytes[] = {0x4E, 0x41, 0x4B, 0x31, 0x39, 0x38, 0x39}; -constexpr uint16_t kOffsetFromMatchedBytesEnd = 0x1D; - -void CgxViewer::LoadCgx(ROM& cgx_rom) { - int matching_position = -1; - bool matched = false; - - for (int i = 0; - i < cgx_rom.size() - sizeof(kMatchedBytes) - kOffsetFromMatchedBytesEnd; - i++) { - raw_data_.push_back(cgx_rom[i]); - bool is_match = std::equal(std::begin(kMatchedBytes), - std::end(kMatchedBytes), &cgx_rom[i]); - if (is_match) { - matching_position = i; - matched = true; - break; - } - } - - if (matched) { - int bpp_marker_position = - matching_position + sizeof(kMatchedBytes) + kOffsetFromMatchedBytesEnd; - int bpp_marker = cgx_rom[bpp_marker_position]; - std::string bpp_type = (bpp_marker == 0x31) ? "8bpp" : "4bpp"; - current_selection_ = (bpp_type == "8bpp") ? 0 : 2; - label1_text = absl::StrCat( - "CGX In Folder L : ", absl::StrFormat("%X4", matching_position), - " BPP Type : ", bpp_type); - } else { - label1_text = "No match found in CGX"; - } - - LoadGfx(current_selection_); -} - -void CgxViewer::LoadGfx(int combo_bpp) { - if (combo_bpp == 0) { - bpp_ = 4; - } else if (combo_bpp == 1) { - bpp_ = 2; - } else if (combo_bpp == 2) { - bpp_ = 8; - } else if (combo_bpp == 3) { - bpp_ = 40; - for (int i = 0; i < raw_data_.size(); i++) { - all_tiles_data_[i] = raw_data_[i]; - } - // Refresh palettes and "picture box" aka canvas - RefreshPalettes(); - return; - } - - Bytes decomp_sheet = gfx::BPP8SNESToIndexed(raw_data_.vector(), bpp_); - for (int i = 0; i < decomp_sheet.size(); i++) { - all_tiles_data_.push_back(decomp_sheet[i]); - } - - RefreshPalettes(); -} - -void CgxViewer::DrawBG1(int p, int bpp) { - auto* ptr = (uchar*)screen_bitmap_.data(); - // for each tile on the tile buffer - for (int i = 0; i < 0x400; i++) { - if (room_bg1_bitmap_.data()[i + p] != 0xFFFF) { - gfx::TileInfo t = gfx::GetTilesInfo(room_bg1_bitmap_.data()[i + p]); - - for (uint16_t yl = 0; yl < 8; yl++) { - for (uint16_t xl = 0; xl < 8; xl++) { - int mx = xl * (1 - t.horizontal_mirror_) + - (7 - xl) * (t.horizontal_mirror_); - int my = - yl * (1 - t.vertical_mirror_) + (7 - yl) * (t.vertical_mirror_); - - int ty = (t.id_ / 16) * 1024; - int tx = (t.id_ % 16) * 8; - uchar pixel = all_tiles_data_[(tx + ty) + (yl * 128) + xl]; - - int index = - (((i % 32) * 8) + ((i / 32) * 2048) + ((mx) + (my * 256))); - - if (bpp != 8) { - ptr[index] = (uchar)((((pixel)&0xFF) + t.palette_ * 16)); - } else { - ptr[index] = (uchar)((((pixel)&0xFF))); - } - } - } - } - } - - // Apply data to Bitmap -} -void CgxViewer::DrawBG2() {} - -void CgxViewer::DrawOAM(int bpp, int drawmode, gfx::OAMTile data, int frame) {} - -void CgxViewer::LoadScr() {} - -void CgxViewer::RefreshPalettes() {} - -} // namespace viewer -} // namespace app -} // namespace yaze \ No newline at end of file diff --git a/src/app/viewer/cgx_viewer.h b/src/app/viewer/cgx_viewer.h deleted file mode 100644 index 96c9e872..00000000 --- a/src/app/viewer/cgx_viewer.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef YAZE_APP_VIEWER_CGX_VIEWER_H -#define YAZE_APP_VIEWER_CGX_VIEWER_H -#include -#include -#include -#include - -#include "app/core/pipeline.h" -#include "app/gfx/bitmap.h" -#include "app/gfx/snes_palette.h" -#include "app/gfx/snes_tile.h" -#include "app/rom.h" - -namespace yaze { -namespace app { -namespace viewer { - - -class CgxViewer { - public: - void LoadCgx(ROM&); - auto GetCgxData() const { return all_tiles_data_; } - - void DrawBG1(int p, int bpp); - void DrawBG2(); - void DrawOAM(int bpp, int drawmode, gfx::OAMTile data, int frame); - - private: - void LoadGfx(int comboBpp); - void LoadScr(); - - void RefreshPalettes(); - - gfx::Bitmap screen_bitmap_; - gfx::Bitmap room_bg1_bitmap_; - gfx::Bitmap room_bg2_bitmap_; - gfx::Bitmap indexed_bitmap_; - - std::string label1_text; - - int bpp_; - int current_selection_ = 2; - - ROM all_tiles_data_; - ROM raw_data_; -}; - -} // namespace viewer -} // namespace app -} // namespace yaze - -#endif // YAZE_APP_VIEWER_CGX_VIEWER_H \ No newline at end of file