1#ifndef YAZE_ZELDA3_OVERWORLD_DIGGABLE_TILES_PATCH_H
2#define YAZE_ZELDA3_OVERWORLD_DIGGABLE_TILES_PATCH_H
7#include "absl/status/status.h"
64 const std::string& output_path,
107 uint32_t table_address);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Generates ASM patches for table-based diggable tile lookup.
static std::string GenerateDataTable(const DiggableTiles &diggable_tiles, uint32_t table_address)
Generate the data table section of the patch.
static bool DetectZSDiggingHooks(const Rom &rom)
Detect if ROM has ZSCustomOverworld modifications to digging code.
static std::string GenerateVanillaRoutine(const DiggableTiles &diggable_tiles, const DiggableTilesPatchConfig &config)
Generate the vanilla-mode lookup routine ASM.
static std::string GenerateZSCompatibleRoutine(const DiggableTiles &diggable_tiles, const DiggableTilesPatchConfig &config)
Generate the ZS-compatible lookup routine ASM.
static absl::Status ExportPatchFile(const DiggableTiles &diggable_tiles, const std::string &output_path, const DiggableTilesPatchConfig &config={})
Export ASM patch to a file.
static std::string GeneratePatch(const DiggableTiles &diggable_tiles, const DiggableTilesPatchConfig &config={})
Generate ASM patch code for the diggable tiles table.
static DiggableTilesPatchConfig GetRecommendedConfig(const Rom &rom)
Get recommended patch configuration based on ROM analysis.
Manages diggable tile state as a 512-bit bitfield.
Zelda 3 specific classes and functions.
Configuration for diggable tiles ASM patch generation.
uint32_t diggable_handler
uint32_t freespace_address
bool use_zs_compatible_mode