1#ifndef YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_MEMORY_INSPECTOR_TOOL_H_
2#define YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_MEMORY_INSPECTOR_TOOL_H_
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
78 return addr >= 0x7E0D00 && addr <= 0x7E0FFF;
140 std::string
FormatHex(
const std::vector<uint8_t>& data,
141 int bytes_per_line = 16)
const;
146 std::string
FormatAscii(
const std::vector<uint8_t>& data)
const;
151 absl::StatusOr<uint32_t>
ParseAddress(
const std::string& addr_str)
const;
166 std::string
GetName()
const override {
return "memory-analyze"; }
169 return "Analyze a memory region with structure awareness";
173 return "memory-analyze --address <addr> --length <len> [--format "
188 int sprite_index,
const std::vector<uint8_t>& wram)
const;
192 const std::vector<uint8_t>& wram)
const;
196 const std::vector<uint8_t>& wram)
const;
211 std::string
GetName()
const override {
return "memory-search"; }
214 return "Search for byte patterns in memory";
218 return "memory-search --pattern <hex> [--start <addr>] [--end <addr>] "
219 "[--max-results <n>] [--format <json|text>]";
232 absl::StatusOr<std::pair<std::vector<uint8_t>, std::vector<bool>>>
236 std::vector<PatternMatch>
FindMatches(
const std::vector<uint8_t>& memory,
237 uint32_t base_address,
238 const std::vector<uint8_t>& pattern,
239 const std::vector<bool>& mask,
240 int max_results)
const;
256 std::string
GetName()
const override {
return "memory-compare"; }
259 return "Compare memory regions or against expected values";
263 return "memory-compare --address <addr> [--expected <hex>] [--format "
289 std::string
GetName()
const override {
return "memory-check"; }
292 return "Check memory for anomalies and corruption";
296 return "memory-check [--region <region_name>] [--format <json|text>]";
310 const std::vector<uint8_t>& wram)
const;
314 const std::vector<uint8_t>& wram)
const;
318 const std::vector<uint8_t>& wram)
const;
330 std::string
GetName()
const override {
return "memory-regions"; }
333 return "List known memory regions and their descriptions";
337 return "memory-regions [--filter <pattern>] [--format <json|text>]";
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.