1#ifndef YAZE_CORE_ASAR_WRAPPER_H
2#define YAZE_CORE_ASAR_WRAPPER_H
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
81 const std::string& patch_path, std::vector<uint8_t>& rom_data,
82 const std::vector<std::string>& include_paths = {});
85 const std::string& patch_content, std::vector<uint8_t>& rom_data,
86 const std::string& base_path =
"");
89 const std::string& asm_path,
90 const std::vector<std::string>& include_paths = {});
95 std::optional<AsarSymbol>
FindSymbol(
const std::string& name)
const;
103 absl::Status
CreatePatch(
const std::vector<uint8_t>& original_rom,
104 const std::vector<uint8_t>& modified_rom,
105 const std::string& patch_path);
111 const std::string& patch_path, std::vector<uint8_t>& rom_data,
112 const std::vector<std::string>& include_paths);
115 const std::string& patch_path, std::vector<uint8_t>& rom_data,
116 const std::vector<std::string>& include_paths);
Modern C++ wrapper for Asar 65816 assembler integration.
absl::StatusOr< AsarPatchResult > ApplyPatchWithBinary(const std::string &patch_path, std::vector< uint8_t > &rom_data, const std::vector< std::string > &include_paths)
absl::StatusOr< AsarPatchResult > ApplyPatchFromString(const std::string &patch_content, std::vector< uint8_t > &rom_data, const std::string &base_path="")
AsarSymbol ConvertAsarSymbol(const void *asar_symbol_data) const
std::vector< std::string > GetLastWarnings() const
std::vector< std::string > GetLastErrors() const
bool IsInitialized() const
absl::StatusOr< AsarPatchResult > ApplyPatch(const std::string &patch_path, std::vector< uint8_t > &rom_data, const std::vector< std::string > &include_paths={})
absl::Status CreatePatch(const std::vector< uint8_t > &original_rom, const std::vector< uint8_t > &modified_rom, const std::string &patch_path)
std::vector< std::string > last_warnings_
absl::Status ValidateAssembly(const std::string &asm_path)
std::optional< AsarSymbol > FindSymbol(const std::string &name) const
std::string GetVersion() const
void ExtractSymbolsFromLastOperation()
std::optional< std::string > ResolveAsarBinary() const
std::map< std::string, AsarSymbol > symbol_table_
absl::Status Initialize()
std::vector< std::string > last_errors_
absl::StatusOr< AsarPatchResult > ApplyPatchWithLibrary(const std::string &patch_path, std::vector< uint8_t > &rom_data, const std::vector< std::string > &include_paths)
AsarWrapper(AsarWrapper &&)=default
int GetApiVersion() const
absl::Status LoadSymbolsFromFile(const std::string &symbol_path)
absl::StatusOr< std::vector< AsarSymbol > > ExtractSymbols(const std::string &asm_path, const std::vector< std::string > &include_paths={})
AsarWrapper & operator=(const AsarWrapper &)=delete
std::vector< AsarSymbol > GetSymbolsAtAddress(uint32_t address) const
AsarWrapper(const AsarWrapper &)=delete
std::map< std::string, AsarSymbol > GetSymbolTable() const
AsarWrapper & operator=(AsarWrapper &&)=default
Asar patch result information.
std::string sourcemap_json
std::vector< AssemblyDiagnostic > structured_diagnostics
std::vector< std::string > errors
std::string annotations_json
std::vector< AsarSymbol > symbols
std::vector< std::string > warnings
Symbol information extracted from Asar assembly.