housekeeping

This commit is contained in:
Justin Scofield
2022-06-20 14:49:02 -04:00
parent 9c7c9bc1e4
commit f7d793ecc2
19 changed files with 84 additions and 56 deletions

View File

@@ -37,10 +37,11 @@ add_executable(
gui/editor/editor.cc gui/editor/editor.cc
gui/editor/overworld_editor.cc gui/editor/overworld_editor.cc
app/rom.cc app/rom.cc
app/core/constants.cc
app/core/controller.cc app/core/controller.cc
app/gfx/bitmap.cc app/gfx/bitmap.cc
app/gfx/tile.cc app/gfx/tile.cc
app/gfx/palette.cc app/gfx/snes_palette.cc
app/zelda3/overworld.cc app/zelda3/overworld.cc
app/zelda3/overworld_map.cc app/zelda3/overworld_map.cc
# GUI libraries # GUI libraries
@@ -67,7 +68,6 @@ target_include_directories(
/ /
Library/ Library/
app/ app/
gui/
"C:/msys64/mingw64/include/libpng16" "C:/msys64/mingw64/include/libpng16"
"C:/msys64/mingw64/include/SDL2" "C:/msys64/mingw64/include/SDL2"
"C:/msys64/mingw64/include" "C:/msys64/mingw64/include"

View File

@@ -0,0 +1 @@
#include "app/core/constants.h"

View File

@@ -1,8 +1,10 @@
#include "bitmap.h" #include "bitmap.h"
#include <SDL2/SDL.h>
#include <rommapping.h> #include <rommapping.h>
#include "rom.h" #include "app/core/constants.h"
#include "app/rom.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -28,7 +30,7 @@ int GetPCGfxAddress(char *romData, char id) {
char gfxGamePointer3 = romData[gfxPointer3 + id]; char gfxGamePointer3 = romData[gfxPointer3 + id];
return lorom_snes_to_pc( return lorom_snes_to_pc(
AddressFromBytes(gfxGamePointer1, gfxGamePointer2, gfxGamePointer3), yaze::app::rom::AddressFromBytes(gfxGamePointer1, gfxGamePointer2, gfxGamePointer3),
info1); info1);
} }

View File

@@ -2,8 +2,10 @@
#define YAZE_APP_UTILS_BITMAP_H #define YAZE_APP_UTILS_BITMAP_H
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include <rommapping.h>
#include "Core/constants.h" #include "app/core/constants.h"
#include "app/rom.h"
namespace yaze { namespace yaze {
namespace app { namespace app {

View File

@@ -1,7 +1,17 @@
#include "palette.h" #include "snes_palette.h"
#include <SDL2/SDL.h>
#include <imgui/imgui.h>
#include <palette.h>
#include <tile.h>
#include <cstdint>
#include <cstdlib> #include <cstdlib>
#include <cstring> #include <cstring>
#include <iostream>
#include <memory>
#include <vector>
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -57,7 +67,7 @@ SNESPalette::SNESPalette(const unsigned char* snes_pal) {
size_ = sizeof(snes_pal) / 2; size_ = sizeof(snes_pal) / 2;
for (unsigned i = 0; i < sizeof(snes_pal); i += 2) { for (unsigned i = 0; i < sizeof(snes_pal); i += 2) {
SNESColor col; SNESColor col;
col.snes = snes_pal[i + 1] << (uint16_t) 8; col.snes = snes_pal[i + 1] << (uint16_t)8;
col.snes = col.snes | snes_pal[i]; col.snes = col.snes | snes_pal[i];
m_color mColor = convertcolor_snes_to_rgb(col.snes); m_color mColor = convertcolor_snes_to_rgb(col.snes);
col.rgb = ImVec4(mColor.red, mColor.green, mColor.blue, 1.f); col.rgb = ImVec4(mColor.red, mColor.green, mColor.blue, 1.f);

View File

@@ -7,6 +7,8 @@
#include <tile.h> #include <tile.h>
#include <cstdint> #include <cstdint>
#include <cstdlib>
#include <cstring>
#include <iostream> #include <iostream>
#include <memory> #include <memory>
#include <vector> #include <vector>

View File

@@ -13,8 +13,8 @@
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
#include "app/core/constants.h" #include "app/gfx/snes_palette.h"
#include "app/gfx/palette.h"
namespace yaze { namespace yaze {
namespace app { namespace app {

View File

@@ -14,13 +14,17 @@
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
#include "app/core/constants.h" #include "app/gfx/snes_palette.h"
#include "app/gfx/palette.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
namespace gfx { namespace gfx {
using ushort = unsigned short;
using uchar = unsigned char;
using ulong = unsigned long;
using uint = unsigned int;
// vhopppcc cccccccc // vhopppcc cccccccc
// [0, 1] // [0, 1]
// [2, 3] // [2, 3]

View File

@@ -18,7 +18,7 @@
namespace yaze { namespace yaze {
namespace app { namespace app {
namespace rom {
int AddressFromBytes(uchar addr1, uchar addr2, uchar addr3) { int AddressFromBytes(uchar addr1, uchar addr2, uchar addr3) {
return (addr1 << 16) | (addr2 << 8) | addr3; return (addr1 << 16) | (addr2 << 8) | addr3;
} }
@@ -301,6 +301,6 @@ SDL_Texture *ROM::DrawgfxSheet(int offset) {
} }
return sheet_texture; return sheet_texture;
} }
} // namespace rom
} // namespace app } // namespace app
} // namespace yaze } // namespace yaze

View File

@@ -19,7 +19,7 @@
namespace yaze { namespace yaze {
namespace app { namespace app {
namespace rom {
int AddressFromBytes(uchar addr1, uchar addr2, uchar addr3); int AddressFromBytes(uchar addr1, uchar addr2, uchar addr3);
class ROM { class ROM {
@@ -68,6 +68,7 @@ class ROM {
std::shared_ptr<SDL_Renderer> sdl_renderer_; std::shared_ptr<SDL_Renderer> sdl_renderer_;
}; };
} // namespace rom
} // namespace app } // namespace app
} // namespace yaze } // namespace yaze

View File

@@ -1,7 +1,7 @@
#include "overworld.h" #include "overworld.h"
#include "gfx/tile.h" #include "app/gfx/tile.h"
#include "rom.h" #include "app/rom.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -41,7 +41,7 @@ static TileInfo GetTilesInfo(ushort tile) {
return TileInfo(tid, p, v, h, o); return TileInfo(tid, p, v, h, o);
} }
void Overworld::Load(ROM& rom) { void Overworld::Load(app::rom::ROM& rom) {
rom_ = rom; rom_ = rom;
for (int i = 0; i < 0x2B; i++) { for (int i = 0; i < 0x2B; i++) {
tileLeftEntrance.push_back(constants::overworldEntranceAllowedTilesLeft + tileLeftEntrance.push_back(constants::overworldEntranceAllowedTilesLeft +

View File

@@ -6,11 +6,11 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include "Core/constants.h" #include "app/core/constants.h"
#include "gfx/bitmap.h" #include "app/gfx/bitmap.h"
#include "gfx/tile.h" #include "app/gfx/tile.h"
#include "overworld_map.h" #include "app/rom.h"
#include "rom.h" #include "app/zelda3/overworld_map.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -21,7 +21,7 @@ class Overworld {
Overworld() = default; Overworld() = default;
~Overworld(); ~Overworld();
void Load(ROM& rom); void Load(app::rom::ROM& rom);
char* overworldMapPointer = new char[0x40000]; char* overworldMapPointer = new char[0x40000];
gfx::Bitmap* overworldMapBitmap; gfx::Bitmap* overworldMapBitmap;
@@ -30,7 +30,7 @@ class Overworld {
gfx::Bitmap* owactualMapBitmap; gfx::Bitmap* owactualMapBitmap;
private: private:
ROM rom_; app::rom::ROM rom_;
int gameState = 1; int gameState = 1;
bool isLoaded = false; bool isLoaded = false;
uchar mapParent[160]; uchar mapParent[160];

View File

@@ -1,7 +1,11 @@
#include "overworld_map.h" #include "overworld_map.h"
#include "gfx/tile.h" #include <cstddef>
#include "rom.h" #include <memory>
#include "app/gfx/bitmap.h"
#include "app/gfx/tile.h"
#include "app/rom.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -10,7 +14,7 @@ namespace zelda3 {
using namespace core; using namespace core;
using namespace gfx; using namespace gfx;
OverworldMap::OverworldMap(ROM& rom, const std::vector<gfx::Tile16> tiles16, OverworldMap::OverworldMap(app::rom::ROM& rom, const std::vector<gfx::Tile16> tiles16,
uchar index) uchar index)
: rom_(rom), index(index), tiles16_(tiles16), parent(index) { : rom_(rom), index(index), tiles16_(tiles16), parent(index) {
if (index != 0x80) { if (index != 0x80) {

View File

@@ -3,9 +3,9 @@
#include <cstddef> #include <cstddef>
#include <memory> #include <memory>
#include "gfx/bitmap.h" #include "app/gfx/bitmap.h"
#include "gfx/tile.h" #include "app/gfx/tile.h"
#include "rom.h" #include "app/rom.h"
namespace yaze { namespace yaze {
namespace app { namespace app {
@@ -37,12 +37,12 @@ class OverworldMap {
ushort** tilesUsed; ushort** tilesUsed;
bool needRefresh = false; bool needRefresh = false;
ROM rom_; app::rom::ROM rom_;
uchar* currentOWgfx16Ptr = new uchar[(128 * 512) / 2]; uchar* currentOWgfx16Ptr = new uchar[(128 * 512) / 2];
std::vector<gfx::Tile16> tiles16_; std::vector<gfx::Tile16> tiles16_;
OverworldMap(ROM& rom, const std::vector<gfx::Tile16> tiles16, uchar index); OverworldMap(app::rom::ROM& rom, const std::vector<gfx::Tile16> tiles16, uchar index);
void BuildMap(uchar* mapParent, int count, int gameState, void BuildMap(uchar* mapParent, int count, int gameState,
ushort** allmapsTilesLW, ushort** allmapsTilesDW, ushort** allmapsTilesLW, ushort** allmapsTilesDW,
ushort** allmapsTilesSP); ushort** allmapsTilesSP);

View File

@@ -6,13 +6,13 @@
#include <imgui/imgui_memory_editor.h> #include <imgui/imgui_memory_editor.h>
#include <imgui/misc/cpp/imgui_stdlib.h> #include <imgui/misc/cpp/imgui_stdlib.h>
#include "core/constants.h" #include "app/core/constants.h"
#include "gfx/palette.h" #include "app/gfx/snes_palette.h"
#include "gfx/tile.h" #include "app/gfx/tile.h"
#include "app/rom.h"
#include "gui/editor/overworld_editor.h" #include "gui/editor/overworld_editor.h"
#include "gui/icons.h" #include "gui/icons.h"
#include "gui/input.h" #include "gui/input.h"
#include "rom.h"
namespace yaze { namespace yaze {
namespace gui { namespace gui {
@@ -518,6 +518,6 @@ void Editor::DrawHUDEditor() {
} }
} }
} // namespace Editor } // namespace editor
} // namespace app } // namespace gui
} // namespace yaze } // namespace yaze

View File

@@ -7,12 +7,12 @@
#include <imgui/imgui_memory_editor.h> #include <imgui/imgui_memory_editor.h>
#include <imgui/misc/cpp/imgui_stdlib.h> #include <imgui/misc/cpp/imgui_stdlib.h>
#include "core/constants.h" #include "app/core/constants.h"
#include "gfx/tile.h" #include "app/gfx/tile.h"
#include "app/rom.h"
#include "gui/editor/overworld_editor.h" #include "gui/editor/overworld_editor.h"
#include "gui/icons.h" #include "gui/icons.h"
#include "gui/input.h" #include "gui/input.h"
#include "rom.h"
namespace yaze { namespace yaze {
namespace gui { namespace gui {
@@ -45,7 +45,7 @@ class Editor {
void *rom_data_; void *rom_data_;
bool is_loaded_ = true; bool is_loaded_ = true;
app::ROM rom_; app::rom::ROM rom_;
TextEditor asm_editor_; TextEditor asm_editor_;
TextEditor::LanguageDefinition language_65816_; TextEditor::LanguageDefinition language_65816_;
OverworldEditor overworld_editor_; OverworldEditor overworld_editor_;
@@ -66,7 +66,7 @@ class Editor {
}; };
} // namespace editor } // namespace editor
} // namespace app } // namespace gui
} // namespace yaze } // namespace yaze
#endif // YAZE_APP_VIEW_EDITOR_H #endif // YAZE_APP_VIEW_EDITOR_H

View File

@@ -4,11 +4,12 @@
#include <cmath> #include <cmath>
#include "gfx/bitmap.h" #include "app/gfx/bitmap.h"
#include "gfx/tile.h" #include "app/gfx/snes_palette.h"
#include "app/gfx/tile.h"
#include "app/zelda3/overworld.h"
#include "gui/icons.h" #include "gui/icons.h"
// first step would be to decompress all gfx data from the game // first step would be to decompress all gfx data from the game
// (in alttp that's easy they're all located in the same location all the // (in alttp that's easy they're all located in the same location all the
// same sheet size 128x32) have a code that convert PC address to SNES and // same sheet size 128x32) have a code that convert PC address to SNES and
@@ -31,7 +32,7 @@ namespace yaze {
namespace gui { namespace gui {
namespace editor { namespace editor {
void OverworldEditor::SetupROM(app::ROM &rom) { rom_ = rom; } void OverworldEditor::SetupROM(app::rom::ROM &rom) { rom_ = rom; }
void OverworldEditor::Update() { void OverworldEditor::Update() {
if (rom_.isLoaded()) { if (rom_.isLoaded()) {
@@ -377,6 +378,6 @@ void OverworldEditor::Loadgfx() {
} }
} }
} // namespace Editor } // namespace editor
} // namespace app } // namespace gui
} // namespace yaze } // namespace yaze

View File

@@ -1,12 +1,13 @@
#ifndef YAZE_APP_EDITOR_OVERWORLDEDITOR_H #ifndef YAZE_APP_EDITOR_OVERWORLDEDITOR_H
#define YAZE_APP_EDITOR_OVERWORLDEDITOR_H #define YAZE_APP_EDITOR_OVERWORLDEDITOR_H
#include <imgui/imgui.h> #include <imgui.h>
#include "gfx/palette.h" #include "app/gfx/bitmap.h"
#include "gfx/tile.h" #include "app/gfx/snes_palette.h"
#include "app/gfx/tile.h"
#include "app/zelda3/overworld.h"
#include "gui/icons.h" #include "gui/icons.h"
#include "zelda3/overworld.h"
namespace yaze { namespace yaze {
namespace gui { namespace gui {
@@ -16,7 +17,7 @@ static constexpr unsigned int k4BPP = 4;
class OverworldEditor { class OverworldEditor {
public: public:
void SetupROM(app::ROM &rom); void SetupROM(app::rom::ROM &rom);
void Update(); void Update();
private: private:
@@ -29,7 +30,7 @@ class OverworldEditor {
void Loadgfx(); void Loadgfx();
app::ROM rom_; app::rom::ROM rom_;
app::zelda3::Overworld overworld_; app::zelda3::Overworld overworld_;
app::gfx::Bitmap allgfxBitmap; app::gfx::Bitmap allgfxBitmap;
app::gfx::SNESPalette palette_; app::gfx::SNESPalette palette_;

View File

@@ -19,7 +19,7 @@ add_executable(
../src/app/rom.cc ../src/app/rom.cc
../src/app/gfx/tile.cc ../src/app/gfx/tile.cc
../src/app/gfx/tile.cc ../src/app/gfx/tile.cc
../src/app/gfx/palette.cc ../src/app/gfx/snes_palette.cc
${SNESHACKING_PATH}/compressions/alttpcompression.c ${SNESHACKING_PATH}/compressions/alttpcompression.c
${SNESHACKING_PATH}/compressions/stdnintendo.c ${SNESHACKING_PATH}/compressions/stdnintendo.c
${SNESHACKING_PATH}/tile.c ${SNESHACKING_PATH}/tile.c