yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze Namespace Reference

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
 

Detailed Description

Main namespace for the application.

Function Documentation

◆ GetGraphicsAddress()

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().

Here is the call graph for this function:

◆ Load2BppGraphics()

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().

◆ LoadLinkGraphics()

◆ LoadAllGraphicsData()

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().

◆ SaveAllGraphicsData()

◆ SnesToPc()

◆ PcToSnes()

◆ Get24LocalFromPC()

uint32_t yaze::Get24LocalFromPC ( uint8_t * data,
int addr,
bool pc = true )
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().

Here is the call graph for this function:

◆ AddressFromBytes()

int yaze::AddressFromBytes ( uint8_t bank,
uint8_t high,
uint8_t low )
inlinenoexcept

Definition at line 358 of file rom.h.

Referenced by GetGraphicsAddress().

◆ MapBankToWordAddress()

uint32_t yaze::MapBankToWordAddress ( uint8_t bank,
uint16_t addr )
inlinenoexcept

Definition at line 362 of file rom.h.

Variable Documentation

◆ kRecentFilesFilename

const std::string yaze::kRecentFilesFilename = "recent_files.txt"

Definition at line 14 of file project.h.

Referenced by yaze::RecentFilesManager::RecentFilesManager().

◆ kEndOfProjectFile

char yaze::kEndOfProjectFile[] = "EndOfProjectFile"
constexpr

Definition at line 15 of file project.h.

Referenced by yaze::Project::Open(), and yaze::Project::Save().

◆ Uncompressed3BPPSize

int yaze::Uncompressed3BPPSize = 0x0600
constexpr

Definition at line 31 of file rom.cc.

Referenced by LoadAllGraphicsData().

◆ kNumGfxSheets

uint32_t yaze::kNumGfxSheets = 223
constexpr

◆ kNumLinkSheets

uint32_t yaze::kNumLinkSheets = 14
constexpr

Definition at line 31 of file rom.h.

Referenced by LoadLinkGraphics().

◆ kTile16Ptr

uint32_t yaze::kTile16Ptr = 0x78000
constexpr

Definition at line 32 of file rom.h.

Referenced by yaze::Rom::ReadTile16(), and yaze::Rom::WriteTile16().

◆ kNormalGfxSpaceStart

uint32_t yaze::kNormalGfxSpaceStart = 0x87000
constexpr

Definition at line 33 of file rom.h.

◆ kNormalGfxSpaceEnd

uint32_t yaze::kNormalGfxSpaceEnd = 0xC4200
constexpr

Definition at line 34 of file rom.h.

◆ kFontSpriteLocation

uint32_t yaze::kFontSpriteLocation = 0x70000
constexpr

Definition at line 35 of file rom.h.

◆ kGfxGroupsPointer

uint32_t yaze::kGfxGroupsPointer = 0x6237
constexpr

Definition at line 36 of file rom.h.

Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().

◆ kUncompressedSheetSize

uint32_t yaze::kUncompressedSheetSize = 0x0800
constexpr

Definition at line 37 of file rom.h.

◆ kNumMainBlocksets

uint32_t yaze::kNumMainBlocksets = 37
constexpr

Definition at line 38 of file rom.h.

Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().

◆ kNumRoomBlocksets

uint32_t yaze::kNumRoomBlocksets = 82
constexpr

Definition at line 39 of file rom.h.

Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().

◆ kNumSpritesets

uint32_t yaze::kNumSpritesets = 144
constexpr

Definition at line 40 of file rom.h.

Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().

◆ kNumPalettesets

uint32_t yaze::kNumPalettesets = 72
constexpr

Definition at line 41 of file rom.h.

Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().

◆ kEntranceGfxGroup

uint32_t yaze::kEntranceGfxGroup = 0x5D97
constexpr

Definition at line 42 of file rom.h.

Referenced by yaze::Rom::LoadGfxGroups(), and yaze::Rom::SaveGroupsToRom().

◆ kMaxGraphics

uint32_t yaze::kMaxGraphics = 0x0C3FFF
constexpr

Definition at line 43 of file rom.h.

◆ kFastRomRegion

uint32_t yaze::kFastRomRegion = 0x808000
constexpr

Definition at line 326 of file rom.h.

Referenced by SnesToPc().