12#ifndef YAZE_ROM_TRANSACTION_H_
13#define YAZE_ROM_TRANSACTION_H_
20#include "absl/status/status.h"
40 operations_.push_back({address,
static_cast<uint8_t
>(*original),
56 operations_.push_back({address,
static_cast<uint16_t
>(*original),
72 operations_.push_back({address,
static_cast<uint32_t
>(*original),
99 if (!original_word.ok()) {
100 status_ = original_word.status();
105 operations_.push_back({address,
static_cast<uint16_t
>(*original_word),
120 const auto& op = *it;
124 std::get<uint8_t>(op.original_value));
128 std::get<uint16_t>(op.original_value));
132 std::get<uint32_t>(op.original_value));
136 op.address, std::get<std::vector<uint8_t>>(op.original_value));
140 std::get<uint16_t>(op.original_value));
158 std::variant<uint8_t, uint16_t, uint32_t, std::vector<uint8_t>>
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
absl::StatusOr< std::vector< uint8_t > > ReadByteVector(uint32_t offset, uint32_t length) const
absl::Status WriteColor(uint32_t address, const gfx::SnesColor &color)
absl::Status WriteByte(int addr, uint8_t value)
absl::StatusOr< uint8_t > ReadByte(int offset) const
void set_dirty(bool dirty)
absl::Status WriteVector(int addr, std::vector< uint8_t > data)
absl::StatusOr< uint16_t > ReadWord(int offset) const
auto set_filename(std::string_view name)
absl::Status WriteWord(int addr, uint16_t value)
absl::Status WriteLong(uint32_t addr, uint32_t value)
absl::StatusOr< uint32_t > ReadLong(int offset) const
ScopedRomTransaction(Rom &rom)
ScopedRomTransaction(const ScopedRomTransaction &)=delete
std::vector< uint8_t > data_
ScopedRomTransaction & operator=(const ScopedRomTransaction &)=delete
Transaction & WriteVector(int address, const std::vector< uint8_t > &data)
std::vector< Operation > operations_
Transaction & WriteLong(int address, uint32_t value)
Transaction & WriteWord(int address, uint16_t value)
Transaction & WriteByte(int address, uint8_t value)
Transaction & WriteColor(int address, const gfx::SnesColor &color)
std::variant< uint8_t, uint16_t, uint32_t, std::vector< uint8_t > > original_value