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"
60static const std::map<zelda3_version, zelda3_version_pointers>
61 kVersionConstantsMap = {
62 {zelda3_version::US, zelda3_us_pointers},
63 {zelda3_version::JP, zelda3_jp_pointers},
64 {zelda3_version::SD, {}},
65 {zelda3_version::RANDO, {}},
174 Rom& rom,
const std::array<gfx::Bitmap, kNumGfxSheets>& sheets);
187 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.
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::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)
Saves all graphics sheets back to ROM.
constexpr uint32_t kLinkGfxOffset
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::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
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
std::array< std::vector< uint8_t >, kNumGfxSheets > raw_gfx_sheets
std::vector< uint8_t > graphics_buffer
The Legend of Zelda: A Link to the Past - Data Structures and Constants.