1#ifndef YAZE_APP_GFX_ZSPR_LOADER_H
2#define YAZE_APP_GFX_ZSPR_LOADER_H
9#include "absl/status/status.h"
10#include "absl/status/statusor.h"
86 static absl::StatusOr<ZsprData>
LoadFromFile(
const std::string& path);
93 static absl::StatusOr<ZsprData>
LoadFromData(
const std::vector<uint8_t>& data);
123 uint32_t expected_checksum);
140 static uint16_t
ReadU16LE(
const uint8_t* data);
145 static uint32_t
ReadU32LE(
const uint8_t* data);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Loader for ZSPR (ALttP Randomizer) sprite files.
static uint16_t ReadU16LE(const uint8_t *data)
Read 16-bit little-endian value.
static absl::Status ApplyToRom(Rom &rom, const ZsprData &zspr)
Apply loaded ZSPR sprite data to ROM's Link graphics.
static bool ValidateChecksum(const std::vector< uint8_t > &data, uint32_t expected_checksum)
Validate ZSPR checksum (Adler-32)
static constexpr uint32_t kZsprMagic
static constexpr size_t kTilesPerSheet
static constexpr size_t kBytesPerTile
static constexpr size_t kExpectedPaletteDataSize
static absl::StatusOr< ZsprData > LoadFromData(const std::vector< uint8_t > &data)
Load ZSPR data from a byte buffer.
static absl::Status ApplyPaletteToRom(Rom &rom, const ZsprData &zspr)
Apply ZSPR palette data to ROM.
static constexpr size_t kExpectedSpriteDataSize
static std::string ReadNullTerminatedString(const uint8_t *data, size_t max_length, size_t &bytes_read)
Read null-terminated string from buffer.
static absl::StatusOr< ZsprData > LoadFromFile(const std::string &path)
Load ZSPR data from a file path.
static uint32_t ReadU32LE(const uint8_t *data)
Read 32-bit little-endian value.
static uint32_t CalculateAdler32(const uint8_t *data, size_t length)
Calculate Adler-32 checksum.
static constexpr size_t kLinkSheetCount
Complete data loaded from a ZSPR file.
std::vector< uint8_t > sprite_data
std::vector< uint8_t > palette_data
bool is_link_sprite() const
size_t tile_count() const
std::array< uint16_t, 2 > glove_colors