yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
game_data.h File Reference
#include <array>
#include <cstdint>
#include <map>
#include <vector>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "app/gfx/core/bitmap.h"
#include "app/gfx/types/snes_palette.h"
#include "rom/rom.h"
#include "rom/rom_diagnostics.h"
#include "zelda.h"

Go to the source code of this file.

Classes

struct  yaze::zelda3::GameData
 
struct  yaze::zelda3::LoadOptions
 

Namespaces

namespace  yaze
 
namespace  yaze::zelda3
 Zelda 3 specific classes and functions.
 

Functions

absl::Status yaze::zelda3::LoadGameData (Rom &rom, GameData &data, const LoadOptions &options={})
 Loads all Zelda3-specific game data from a generic ROM.
 
absl::Status yaze::zelda3::SaveGameData (Rom &rom, GameData &data)
 Saves modified game data back to the ROM.
 
absl::Status yaze::zelda3::LoadMetadata (const Rom &rom, GameData &data)
 
absl::Status yaze::zelda3::LoadPalettes (const Rom &rom, GameData &data)
 
absl::Status yaze::zelda3::LoadGfxGroups (Rom &rom, GameData &data)
 
absl::Status yaze::zelda3::LoadGraphics (Rom &rom, GameData &data)
 
absl::Status yaze::zelda3::SaveGfxGroups (Rom &rom, const GameData &data)
 
absl::StatusOr< std::array< gfx::Bitmap, kNumLinkSheets > > yaze::zelda3::LoadLinkGraphics (const Rom &rom)
 Loads Link's graphics sheets from ROM.
 
absl::StatusOr< std::vector< uint8_t > > yaze::zelda3::Load2BppGraphics (const Rom &rom)
 Loads 2BPP graphics sheets from ROM.
 
absl::StatusOr< gfx::Bitmapyaze::zelda3::LoadFontGraphics (const Rom &rom)
 Loads font graphics from ROM.
 
absl::Status yaze::zelda3::SaveAllGraphicsData (Rom &rom, const std::array< gfx::Bitmap, kNumGfxSheets > &sheets)
 Saves all graphics sheets back to ROM.
 
uint32_t yaze::zelda3::GetGraphicsAddress (const uint8_t *data, uint8_t addr, uint32_t ptr1, uint32_t ptr2, uint32_t ptr3, size_t rom_size)
 Gets the graphics address for a sheet index.
 

Variables

constexpr uint32_t yaze::zelda3::kNumGfxSheets = 223
 
constexpr uint32_t yaze::zelda3::kNumLinkSheets = 14
 
constexpr uint32_t yaze::zelda3::kNumMainBlocksets = 37
 
constexpr uint32_t yaze::zelda3::kNumRoomBlocksets = 82
 
constexpr uint32_t yaze::zelda3::kNumSpritesets = 144
 
constexpr uint32_t yaze::zelda3::kNumPalettesets = 72
 
constexpr uint32_t yaze::zelda3::kEntranceGfxGroup = 0x5D97
 
constexpr uint32_t yaze::zelda3::kMaxGraphics = 0x0C3FFF
 
constexpr uint32_t yaze::zelda3::kPalettesetIdsAddress = 0x75460
 
constexpr uint32_t yaze::zelda3::kDungeonPalettePointerTable = 0xDEC4B
 
constexpr uint32_t yaze::zelda3::kLinkGfxOffset = 0x80000
 
constexpr uint16_t yaze::zelda3::kLinkGfxLength = 0x800
 
constexpr uint32_t yaze::zelda3::kFontSpriteLocation = 0x70000
 
constexpr uint32_t yaze::zelda3::kUncompressedSheetSize = 0x0800
 
constexpr uint32_t yaze::zelda3::kTile16Ptr = 0x78000