Main namespace for the application. More...
Namespaces | |
namespace | cli |
Namespace for the command line interface. | |
namespace | core |
namespace | editor |
Editors are the view controllers for the application. | |
namespace | emu |
SNES Emulation and debugging tools. | |
namespace | gfx |
Contains classes for handling graphical data. | |
namespace | gui |
Graphical User Interface (GUI) components for the application. | |
namespace | test |
namespace | util |
namespace | zelda3 |
Zelda 3 specific classes and functions. | |
Classes | |
class | GraphicsSheetManager |
struct | Project |
Represents a project in the application. More... | |
class | RecentFilesManager |
class | Renderer |
The Renderer class represents the renderer for the Yaze application. More... | |
struct | ResourceLabelManager |
class | Rom |
The Rom class is used to load, save, and modify Rom data. More... | |
class | SharedRom |
A class to hold a shared pointer to a Rom object. More... | |
Functions | |
uint32_t | GetGraphicsAddress (const uint8_t *data, uint8_t addr, uint32_t ptr1, uint32_t ptr2, uint32_t ptr3) |
absl::StatusOr< std::vector< uint8_t > > | Load2BppGraphics (const Rom &rom) |
Loads 2bpp graphics from Rom data. | |
absl::StatusOr< std::array< gfx::Bitmap, kNumLinkSheets > > | LoadLinkGraphics (const Rom &rom) |
Loads the players 4bpp graphics sheet from Rom data. | |
absl::StatusOr< std::array< gfx::Bitmap, kNumGfxSheets > > | LoadAllGraphicsData (Rom &rom, bool defer_render=false) |
This function iterates over all graphics sheets in the Rom and loads them into memory. Depending on the sheet's index, it may be uncompressed or compressed using the LC-LZ2 algorithm. The uncompressed sheets are 3 bits per pixel (BPP), while the compressed sheets are 4 BPP. The loaded graphics data is converted to 8 BPP and stored in a bitmap. | |
absl::Status | SaveAllGraphicsData (Rom &rom, std::array< gfx::Bitmap, kNumGfxSheets > &gfx_sheets) |
uint32_t | SnesToPc (uint32_t addr) noexcept |
uint32_t | PcToSnes (uint32_t addr) |
uint32_t | Get24LocalFromPC (uint8_t *data, int addr, bool pc=true) |
int | AddressFromBytes (uint8_t bank, uint8_t high, uint8_t low) noexcept |
uint32_t | MapBankToWordAddress (uint8_t bank, uint16_t addr) noexcept |
Variables | |
const std::string | kRecentFilesFilename = "recent_files.txt" |
constexpr char | kEndOfProjectFile [] = "EndOfProjectFile" |
constexpr int | Uncompressed3BPPSize = 0x0600 |
constexpr uint32_t | kNumGfxSheets = 223 |
constexpr uint32_t | kNumLinkSheets = 14 |
constexpr uint32_t | kTile16Ptr = 0x78000 |
constexpr uint32_t | kNormalGfxSpaceStart = 0x87000 |
constexpr uint32_t | kNormalGfxSpaceEnd = 0xC4200 |
constexpr uint32_t | kFontSpriteLocation = 0x70000 |
constexpr uint32_t | kGfxGroupsPointer = 0x6237 |
constexpr uint32_t | kUncompressedSheetSize = 0x0800 |
constexpr uint32_t | kNumMainBlocksets = 37 |
constexpr uint32_t | kNumRoomBlocksets = 82 |
constexpr uint32_t | kNumSpritesets = 144 |
constexpr uint32_t | kNumPalettesets = 72 |
constexpr uint32_t | kEntranceGfxGroup = 0x5D97 |
constexpr uint32_t | kMaxGraphics = 0x0C3FFF |
constexpr uint32_t | kFastRomRegion = 0x808000 |
Main namespace for the application.
uint32_t yaze::GetGraphicsAddress | ( | const uint8_t * | data, |
uint8_t | addr, | ||
uint32_t | ptr1, | ||
uint32_t | ptr2, | ||
uint32_t | ptr3 ) |
Definition at line 33 of file rom.cc.
References AddressFromBytes(), and SnesToPc().
Referenced by Load2BppGraphics(), LoadAllGraphicsData(), and SaveAllGraphicsData().
absl::StatusOr< std::vector< uint8_t > > yaze::Load2BppGraphics | ( | const Rom & | rom | ) |
Loads 2bpp graphics from Rom data.
This function loads 2bpp graphics from Rom data by iterating over a list of sheet IDs, decompressing the sheet data, converting it to 8bpp format, and appending the converted sheet data to a byte vector.
Definition at line 39 of file rom.cc.
References ASSIGN_OR_RETURN, yaze::Rom::data(), yaze::gfx::lc_lz2::DecompressV2(), GetGraphicsAddress(), zelda3_version_pointers::kOverworldGfxPtr1, zelda3_version_pointers::kOverworldGfxPtr2, zelda3_version_pointers::kOverworldGfxPtr3, yaze::gfx::SnesTo8bppSheet(), and yaze::Rom::version_constants().
Referenced by yaze::zelda3::Inventory::BuildTileset().
absl::StatusOr< std::array< gfx::Bitmap, kNumLinkSheets > > yaze::LoadLinkGraphics | ( | const Rom & | rom | ) |
Loads the players 4bpp graphics sheet from Rom data.
Definition at line 58 of file rom.cc.
References ASSIGN_OR_RETURN, yaze::Renderer::GetInstance(), kNumLinkSheets, yaze::gfx::kTilesheetDepth, yaze::gfx::kTilesheetHeight, yaze::gfx::kTilesheetWidth, yaze::Rom::palette_group(), yaze::Rom::ReadByteVector(), yaze::core::Renderer::RenderBitmap(), RETURN_IF_ERROR, and yaze::gfx::SnesTo8bppSheet().
Referenced by yaze::editor::GraphicsEditor::UpdateLinkGfxView().
absl::StatusOr< std::array< gfx::Bitmap, kNumGfxSheets > > yaze::LoadAllGraphicsData | ( | Rom & | rom, |
bool | defer_render = false ) |
This function iterates over all graphics sheets in the Rom and loads them into memory. Depending on the sheet's index, it may be uncompressed or compressed using the LC-LZ2 algorithm. The uncompressed sheets are 3 bits per pixel (BPP), while the compressed sheets are 4 BPP. The loaded graphics data is converted to 8 BPP and stored in a bitmap.
The graphics sheets are divided into the following ranges:
Range | Compression Type | Decompressed Size | Number of Chars |
---|---|---|---|
0-112 | Compressed 3bpp BGR | 0x600 chars | Decompressed each |
113-114 | Compressed 2bpp | 0x800 chars | Decompressed each |
115-126 | Uncompressed 3bpp sprites | 0x600 chars | Each |
127-217 | Compressed 3bpp sprites | 0x600 chars | Decompressed each |
218-222 | Compressed 2bpp | 0x800 chars | Decompressed each |
Definition at line 78 of file rom.cc.
References ASSIGN_OR_RETURN, yaze::Rom::data(), yaze::gfx::lc_lz2::DecompressV2(), GetGraphicsAddress(), yaze::Renderer::GetInstance(), kNumGfxSheets, zelda3_version_pointers::kOverworldGfxPtr1, zelda3_version_pointers::kOverworldGfxPtr2, zelda3_version_pointers::kOverworldGfxPtr3, yaze::gfx::kTilesheetDepth, yaze::gfx::kTilesheetHeight, yaze::gfx::kTilesheetWidth, yaze::Rom::mutable_graphics_buffer(), yaze::Rom::palette_group(), RETURN_IF_ERROR, yaze::gfx::SnesTo8bppSheet(), Uncompressed3BPPSize, and yaze::Rom::version_constants().
Referenced by yaze::editor::EditorManager::Update(), and yaze::editor::Tile16Editor::UpdateTransferTileCanvas().
absl::Status yaze::SaveAllGraphicsData | ( | Rom & | rom, |
std::array< gfx::Bitmap, kNumGfxSheets > & | gfx_sheets ) |
Definition at line 137 of file rom.cc.
References yaze::Rom::begin(), yaze::gfx::Bpp8SnesToIndexed(), yaze::Rom::data(), GetGraphicsAddress(), yaze::gfx::HyruleMagicCompress(), kNumGfxSheets, zelda3_version_pointers::kOverworldGfxPtr1, zelda3_version_pointers::kOverworldGfxPtr2, zelda3_version_pointers::kOverworldGfxPtr3, and yaze::Rom::version_constants().
Referenced by yaze::editor::EditorManager::SaveRom().
|
inlinenoexcept |
Definition at line 328 of file rom.h.
References kFastRomRegion.
Referenced by yaze::editor::BuildDictionaryEntries(), yaze::zelda3::Overworld::DecompressAllMapTiles(), Get24LocalFromPC(), GetGraphicsAddress(), yaze::cli::SnesToPcCommand::handle(), yaze::zelda3::Room::LoadAnimatedGraphics(), yaze::zelda3::Room::LoadChests(), yaze::editor::ScreenEditor::LoadDungeonMaps(), yaze::Rom::LoadGfxGroups(), yaze::zelda3::Room::LoadHeader(), yaze::zelda3::Overworld::LoadItems(), yaze::zelda3::Room::LoadObjects(), yaze::zelda3::Room::LoadRoomFromROM(), yaze::zelda3::Room::LoadSprites(), yaze::zelda3::Overworld::LoadSpritesFromMap(), yaze::zelda3::TitleScreen::LoadTitleScreen(), yaze::editor::ScreenEditor::SaveDungeonMaps(), yaze::Rom::SaveGroupsToRom(), yaze::zelda3::Overworld::SaveMap16Expanded(), and yaze::editor::MemoryEditorWithDiffChecker::Update().
|
inline |
Definition at line 336 of file rom.h.
Referenced by Get24LocalFromPC(), yaze::cli::PcToSnesCommand::handle(), yaze::zelda3::Overworld::SaveItems(), yaze::zelda3::Overworld::SaveMap16Expanded(), yaze::zelda3::Overworld::SaveMap32Expanded(), and yaze::zelda3::Overworld::SaveOverworldMaps().
|
inline |
Definition at line 349 of file rom.h.
References PcToSnes(), and SnesToPc().
Referenced by yaze::editor::ParseSingleMessage(), yaze::editor::MessageEditor::ReadAllTextData(), and yaze::editor::MessageEditor::ReadAllTextDataV2().
|
inlinenoexcept |
Definition at line 358 of file rom.h.
Referenced by GetGraphicsAddress().
|
inlinenoexcept |
const std::string yaze::kRecentFilesFilename = "recent_files.txt" |
Definition at line 14 of file project.h.
Referenced by yaze::RecentFilesManager::RecentFilesManager().
|
constexpr |
Definition at line 15 of file project.h.
Referenced by yaze::Project::Open(), and yaze::Project::Save().
|
constexpr |
Definition at line 31 of file rom.cc.
Referenced by LoadAllGraphicsData().
|
constexpr |
Definition at line 30 of file rom.h.
Referenced by yaze::gui::GfxSheetAssetBrowser::Initialize(), LoadAllGraphicsData(), SaveAllGraphicsData(), and yaze::editor::GraphicsEditor::UpdateGfxSheetList().
|
constexpr |
Definition at line 31 of file rom.h.
Referenced by LoadLinkGraphics().
|
constexpr |
Definition at line 32 of file rom.h.
Referenced by yaze::Rom::ReadTile16(), and yaze::Rom::WriteTile16().
|
constexpr |
Definition at line 36 of file rom.h.
Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().
|
constexpr |
Definition at line 38 of file rom.h.
Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().
|
constexpr |
Definition at line 39 of file rom.h.
Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().
|
constexpr |
Definition at line 40 of file rom.h.
Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().
|
constexpr |
Definition at line 41 of file rom.h.
Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().
|
constexpr |
Definition at line 42 of file rom.h.
Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().
|
constexpr |
Definition at line 326 of file rom.h.
Referenced by SnesToPc().