1#ifndef YAZE_ZELDA3_GAME_DATA_H
2#define YAZE_ZELDA3_GAME_DATA_H
9#include "absl/status/status.h"
10#include "absl/status/statusor.h"
64static const std::map<zelda3_version, zelda3_version_pointers>
65 kVersionConstantsMap = {
66 {zelda3_version::US, zelda3_us_pointers},
67 {zelda3_version::JP, zelda3_jp_pointers},
68 {zelda3_version::SD, {}},
69 {zelda3_version::RANDO, {}},
180 const GameData& data);
214 Rom& rom,
const std::array<gfx::Bitmap, kNumGfxSheets>& sheets);
227 uint32_t ptr2, uint32_t ptr3,
size_t rom_size);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Represents a bitmap image optimized for SNES ROM hacking.
void Clear()
Empties the buffer and bumps every revision.
One ROM session's graphics sheet pixels, with a revision per sheet.
zelda3_version
Different versions of the game supported by YAZE.
absl::Status SaveGfxGroups(Rom &rom, const GameData &data)
absl::StatusOr< std::vector< uint8_t > > Load2BppGraphics(const Rom &rom)
Loads 2BPP graphics sheets from ROM.
constexpr uint32_t kPalettesetIdsAddress
constexpr uint16_t kLinkGfxLength
constexpr uint32_t kFontSpriteLocation
absl::StatusOr< std::array< gfx::Bitmap, kNumLinkSheets > > LoadLinkGraphics(const Rom &rom)
Loads Link's graphics sheets from ROM.
absl::StatusOr< gfx::Bitmap > LoadFontGraphics(const Rom &rom)
Loads font graphics from ROM.
constexpr uint32_t kNumRoomBlocksets
constexpr uint32_t kUncompressedSheetSize
absl::StatusOr< GfxGroupDiff > DiffGfxGroups(const Rom &rom, const GameData &data)
absl::Status LoadGameData(Rom &rom, GameData &data, const LoadOptions &options)
Loads all Zelda3-specific game data from a generic ROM.
absl::Status LoadMetadata(const Rom &rom, GameData &data)
constexpr uint32_t kMaxGraphics
constexpr uint32_t kTile16Ptr
constexpr uint32_t kNumPalettesets
absl::Status SaveAllGraphicsData(Rom &rom, const std::array< gfx::Bitmap, kNumGfxSheets > &sheets)
Not implemented; always returns UnimplementedError.
constexpr uint32_t kLinkGfxOffset
constexpr int kDungeonPaletteBytes
constexpr uint32_t kNumMainBlocksets
constexpr uint32_t kNumGfxSheets
constexpr uint32_t kEntranceGfxGroup
constexpr uint32_t kNumSpritesets
constexpr uint32_t kNumLinkSheets
absl::Status LoadPalettes(const Rom &rom, GameData &data)
absl::Status SaveGameData(Rom &rom, GameData &data)
Saves modified game data back to the ROM.
absl::Status LoadGraphics(Rom &rom, GameData &data)
constexpr uint32_t kDungeonPalettePointerTable
uint32_t 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.
absl::Status LoadGfxGroups(Rom &rom, GameData &data)
Represents a mapping of palette groups.
std::vector< RoomDefaultEntrance > room_default_entrances
std::array< std::array< uint8_t, 4 >, kNumSpritesets > spriteset_ids
std::array< std::array< uint8_t, 4 >, kNumRoomBlocksets > room_blockset_ids
std::array< std::array< uint8_t, 4 >, kNumPalettesets > paletteset_ids
gfx::Bitmap font_graphics
gfx::PaletteGroupMap palette_groups
GraphicsLoadDiagnostics diagnostics
PitDamageTable pit_damage_table
std::array< gfx::Bitmap, kNumGfxSheets > gfx_bitmaps
std::array< gfx::Bitmap, kNumLinkSheets > link_graphics
std::array< std::array< uint8_t, 8 >, kNumMainBlocksets > main_blockset_ids
uint32_t gfx_main_group_address
std::array< std::vector< uint8_t >, kNumGfxSheets > raw_gfx_sheets
Which gfx group tables in data differ from the bytes in rom.
GraphicsSheetStore sheet_store
The Legend of Zelda: A Link to the Past - Data Structures and Constants.