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 <json|text>]";
187 int sprite_index,
const std::vector<uint8_t>& wram)
const;
191 const std::vector<uint8_t>& wram)
const;
195 const std::vector<uint8_t>& wram)
const;
210 std::string
GetName()
const override {
return "memory-search"; }
213 return "Search for byte patterns in memory";
217 return "memory-search --pattern <hex> [--start <addr>] [--end <addr>] "
218 "[--max-results <n>] [--format <json|text>]";
231 absl::StatusOr<std::pair<std::vector<uint8_t>, std::vector<bool>>>
236 const std::vector<uint8_t>& memory, uint32_t base_address,
237 const std::vector<uint8_t>& pattern,
238 const std::vector<bool>& mask,
int max_results)
const;
254 std::string
GetName()
const override {
return "memory-compare"; }
257 return "Compare memory regions or against expected values";
261 return "memory-compare --address <addr> --expected <hex> [--format <json|text>]";
286 std::string
GetName()
const override {
return "memory-check"; }
289 return "Check memory for anomalies and corruption";
293 return "memory-check [--region <region_name>] [--format <json|text>]";
307 const std::vector<uint8_t>& wram)
const;
311 const std::vector<uint8_t>& wram)
const;
315 const std::vector<uint8_t>& wram)
const;
327 std::string
GetName()
const override {
return "memory-regions"; }
330 return "List known memory regions and their descriptions";
334 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.