yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::cli::automation::RomAutomationAPI Class Reference

High-level API for ROM manipulation and automation. More...

#include <rom_automation_api.h>

Collaboration diagram for yaze::cli::automation::RomAutomationAPI:

Classes

struct  BatchOperation
 Batch operation for multiple ROM modifications. More...
 
struct  RomSnapshot
 Snapshot of ROM state at a point in time. More...
 
struct  ValidationResult
 Validation result for ROM integrity checks. More...
 

Public Member Functions

 RomAutomationAPI (Rom *rom)
 
absl::StatusOr< std::vector< uint8_t > > ReadBytes (uint32_t address, size_t length) const
 Read bytes from ROM at specified address.
 
absl::Status WriteBytes (uint32_t address, const std::vector< uint8_t > &data, bool verify=true)
 Write bytes to ROM at specified address.
 
absl::StatusOr< std::vector< uint32_t > > FindPattern (const std::vector< uint8_t > &pattern, uint32_t start_address=0, size_t max_results=100) const
 Find pattern in ROM.
 
absl::StatusOr< RomSnapshotCreateSnapshot (const std::string &name, bool compress=true)
 Create a snapshot of current ROM state.
 
absl::Status RestoreSnapshot (const RomSnapshot &snapshot, bool verify=true)
 Restore ROM to a previous snapshot.
 
std::vector< nlohmann::json > ListSnapshots () const
 List all available snapshots.
 
absl::StatusOr< nlohmann::json > CompareWithSnapshot (const RomSnapshot &snapshot) const
 Compare current ROM with snapshot.
 
ValidationResult ValidateHeaders () const
 Validate ROM headers.
 
ValidationResult ValidateChecksums () const
 Validate ROM checksums.
 
ValidationResult ValidateRegions (const std::vector< std::string > &regions) const
 Validate specific ROM regions.
 
ValidationResult ValidateFull () const
 Comprehensive ROM validation.
 
absl::Status ApplyPatch (const std::vector< uint8_t > &patch_data, const std::string &patch_format)
 Apply IPS/BPS patch to ROM.
 
absl::StatusOr< std::vector< uint8_t > > GeneratePatch (const Rom &target_rom, const std::string &patch_format) const
 Generate patch between current ROM and target.
 
absl::StatusOr< std::vector< uint8_t > > ExportRegion (const std::string &region_name, uint32_t start_address=0, uint32_t end_address=0) const
 Export a region of ROM to file.
 
absl::Status ImportRegion (const std::string &region_name, const std::vector< uint8_t > &data, uint32_t address)
 Import data to a ROM region.
 
absl::StatusOr< std::vector< nlohmann::json > > ExecuteBatch (const std::vector< BatchOperation > &operations, bool stop_on_error=true)
 Execute multiple ROM operations atomically.
 
std::string BeginTransaction ()
 Begin a ROM modification transaction.
 
absl::Status CommitTransaction (const std::string &transaction_id)
 Commit a ROM modification transaction.
 
absl::Status RollbackTransaction (const std::string &transaction_id)
 Rollback a ROM modification transaction.
 
nlohmann::json GetStatistics () const
 Get ROM statistics.
 
nlohmann::json AnalyzePatterns () const
 Analyze ROM for common patterns.
 
std::vector< std::pair< uint32_t, size_t > > FindFreeSpace (size_t min_size=16) const
 Find unused space in ROM.
 

Private Member Functions

std::vector< uint8_t > CompressData (const std::vector< uint8_t > &data) const
 
std::vector< uint8_t > DecompressData (const std::vector< uint8_t > &data) const
 
bool VerifyWrite (uint32_t address, const std::vector< uint8_t > &expected) const
 

Private Attributes

Romrom_
 
std::map< std::string, RomSnapshotsnapshots_
 
std::map< std::string, std::unique_ptr< class Transaction > > transactions_
 

Detailed Description

High-level API for ROM manipulation and automation.

Provides a clean interface for AI agents and automation scripts to interact with ROM data without direct memory manipulation.

Definition at line 23 of file rom_automation_api.h.

Constructor & Destructor Documentation

◆ RomAutomationAPI()

yaze::cli::automation::RomAutomationAPI::RomAutomationAPI ( Rom * rom)
inlineexplicit

Definition at line 25 of file rom_automation_api.h.

Member Function Documentation

◆ ReadBytes()

absl::StatusOr< std::vector< uint8_t > > yaze::cli::automation::RomAutomationAPI::ReadBytes ( uint32_t address,
size_t length ) const

Read bytes from ROM at specified address.

Parameters
addressStarting address
lengthNumber of bytes to read
Returns
Vector of bytes or error

◆ WriteBytes()

absl::Status yaze::cli::automation::RomAutomationAPI::WriteBytes ( uint32_t address,
const std::vector< uint8_t > & data,
bool verify = true )

Write bytes to ROM at specified address.

Parameters
addressStarting address
dataBytes to write
verifyIf true, read back and verify write succeeded
Returns
Status of write operation

◆ FindPattern()

absl::StatusOr< std::vector< uint32_t > > yaze::cli::automation::RomAutomationAPI::FindPattern ( const std::vector< uint8_t > & pattern,
uint32_t start_address = 0,
size_t max_results = 100 ) const

Find pattern in ROM.

Parameters
patternBytes to search for
start_addressOptional starting address
max_resultsMaximum number of results to return
Returns
Vector of addresses where pattern was found

◆ CreateSnapshot()

absl::StatusOr< RomSnapshot > yaze::cli::automation::RomAutomationAPI::CreateSnapshot ( const std::string & name,
bool compress = true )

Create a snapshot of current ROM state.

Parameters
nameSnapshot identifier
compressIf true, compress the snapshot data
Returns
Created snapshot or error

◆ RestoreSnapshot()

absl::Status yaze::cli::automation::RomAutomationAPI::RestoreSnapshot ( const RomSnapshot & snapshot,
bool verify = true )

Restore ROM to a previous snapshot.

Parameters
snapshotSnapshot to restore
verifyIf true, verify restoration succeeded
Returns
Status of restoration

◆ ListSnapshots()

std::vector< nlohmann::json > yaze::cli::automation::RomAutomationAPI::ListSnapshots ( ) const

List all available snapshots.

Returns
Vector of snapshot metadata

◆ CompareWithSnapshot()

absl::StatusOr< nlohmann::json > yaze::cli::automation::RomAutomationAPI::CompareWithSnapshot ( const RomSnapshot & snapshot) const

Compare current ROM with snapshot.

Parameters
snapshotSnapshot to compare against
Returns
Difference report as JSON

◆ ValidateHeaders()

ValidationResult yaze::cli::automation::RomAutomationAPI::ValidateHeaders ( ) const

Validate ROM headers.

Returns
Validation result

◆ ValidateChecksums()

ValidationResult yaze::cli::automation::RomAutomationAPI::ValidateChecksums ( ) const

Validate ROM checksums.

Returns
Validation result

◆ ValidateRegions()

ValidationResult yaze::cli::automation::RomAutomationAPI::ValidateRegions ( const std::vector< std::string > & regions) const

Validate specific ROM regions.

Parameters
regionsList of region names to validate
Returns
Validation result

◆ ValidateFull()

ValidationResult yaze::cli::automation::RomAutomationAPI::ValidateFull ( ) const

Comprehensive ROM validation.

Returns
Combined validation result

◆ ApplyPatch()

absl::Status yaze::cli::automation::RomAutomationAPI::ApplyPatch ( const std::vector< uint8_t > & patch_data,
const std::string & patch_format )

Apply IPS/BPS patch to ROM.

Parameters
patch_dataPatch file contents
patch_formatFormat of patch (IPS, BPS, etc.)
Returns
Status of patch application

◆ GeneratePatch()

absl::StatusOr< std::vector< uint8_t > > yaze::cli::automation::RomAutomationAPI::GeneratePatch ( const Rom & target_rom,
const std::string & patch_format ) const

Generate patch between current ROM and target.

Parameters
target_romTarget ROM to diff against
patch_formatFormat to generate (IPS, BPS)
Returns
Generated patch data or error

◆ ExportRegion()

absl::StatusOr< std::vector< uint8_t > > yaze::cli::automation::RomAutomationAPI::ExportRegion ( const std::string & region_name,
uint32_t start_address = 0,
uint32_t end_address = 0 ) const

Export a region of ROM to file.

Parameters
region_nameNamed region or custom range
start_addressStart of region (if custom)
end_addressEnd of region (if custom)
Returns
Exported data or error

◆ ImportRegion()

absl::Status yaze::cli::automation::RomAutomationAPI::ImportRegion ( const std::string & region_name,
const std::vector< uint8_t > & data,
uint32_t address )

Import data to a ROM region.

Parameters
region_nameNamed region or custom range
dataData to import
addressStarting address for import
Returns
Status of import operation

◆ ExecuteBatch()

absl::StatusOr< std::vector< nlohmann::json > > yaze::cli::automation::RomAutomationAPI::ExecuteBatch ( const std::vector< BatchOperation > & operations,
bool stop_on_error = true )

Execute multiple ROM operations atomically.

Parameters
operationsList of operations to execute
stop_on_errorIf true, abort on first error
Returns
Results of each operation or error

◆ BeginTransaction()

std::string yaze::cli::automation::RomAutomationAPI::BeginTransaction ( )

Begin a ROM modification transaction.

Returns
Transaction ID

◆ CommitTransaction()

absl::Status yaze::cli::automation::RomAutomationAPI::CommitTransaction ( const std::string & transaction_id)

Commit a ROM modification transaction.

Parameters
transaction_idTransaction to commit
Returns
Status of commit

◆ RollbackTransaction()

absl::Status yaze::cli::automation::RomAutomationAPI::RollbackTransaction ( const std::string & transaction_id)

Rollback a ROM modification transaction.

Parameters
transaction_idTransaction to rollback
Returns
Status of rollback

◆ GetStatistics()

nlohmann::json yaze::cli::automation::RomAutomationAPI::GetStatistics ( ) const

Get ROM statistics.

Returns
JSON object with ROM statistics

◆ AnalyzePatterns()

nlohmann::json yaze::cli::automation::RomAutomationAPI::AnalyzePatterns ( ) const

Analyze ROM for common patterns.

Returns
Analysis results as JSON

◆ FindFreeSpace()

std::vector< std::pair< uint32_t, size_t > > yaze::cli::automation::RomAutomationAPI::FindFreeSpace ( size_t min_size = 16) const

Find unused space in ROM.

Parameters
min_sizeMinimum size of free space to report
Returns
List of free regions

◆ CompressData()

std::vector< uint8_t > yaze::cli::automation::RomAutomationAPI::CompressData ( const std::vector< uint8_t > & data) const
private

◆ DecompressData()

std::vector< uint8_t > yaze::cli::automation::RomAutomationAPI::DecompressData ( const std::vector< uint8_t > & data) const
private

◆ VerifyWrite()

bool yaze::cli::automation::RomAutomationAPI::VerifyWrite ( uint32_t address,
const std::vector< uint8_t > & expected ) const
private

Member Data Documentation

◆ rom_

Rom* yaze::cli::automation::RomAutomationAPI::rom_
private

Definition at line 273 of file rom_automation_api.h.

◆ snapshots_

std::map<std::string, RomSnapshot> yaze::cli::automation::RomAutomationAPI::snapshots_
private

Definition at line 274 of file rom_automation_api.h.

◆ transactions_

std::map<std::string, std::unique_ptr<class Transaction> > yaze::cli::automation::RomAutomationAPI::transactions_
private

Definition at line 275 of file rom_automation_api.h.


The documentation for this class was generated from the following file: