yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
internal_emulator_adapter.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EMU_INTERNAL_EMULATOR_ADAPTER_H_
2#define YAZE_APP_EMU_INTERNAL_EMULATOR_ADAPTER_H_
3
5#include "app/emu/emulator.h"
7
8namespace yaze {
9namespace emu {
10
12 public:
13 explicit InternalEmulatorAdapter(Emulator* emulator);
14 ~InternalEmulatorAdapter() override = default;
15
16 // --- Core Lifecycle ---
17 bool IsConnected() const override;
18 bool IsRunning() const override;
19 void Pause() override;
20 void Resume() override;
21 void Reset() override;
22 absl::Status Step(int count) override;
23 absl::Status StepOver() override;
24 absl::Status StepOut() override;
25
26 // --- ROM ---
27 absl::Status LoadRom(const std::string& path) override;
28 std::string GetLoadedRomPath() const override;
29
30 // --- Memory ---
31 absl::StatusOr<uint8_t> ReadByte(uint32_t addr) override;
32 absl::StatusOr<std::vector<uint8_t>> ReadBlock(uint32_t addr,
33 size_t len) override;
34 absl::Status WriteByte(uint32_t addr, uint8_t val) override;
35 absl::Status WriteBlock(uint32_t addr,
36 const std::vector<uint8_t>& data) override;
37
38 // --- CPU State ---
39 absl::Status GetCpuState(CpuStateSnapshot* out_state) override;
40
41 // --- Game State (ALTTP specific) ---
42 absl::Status GetGameState(GameSnapshot* out_state) override;
43
44 // --- Breakpoints ---
45 absl::Status RunToBreakpoint(BreakpointHitResult* response) override;
46
47 absl::StatusOr<uint32_t> AddBreakpoint(
48 uint32_t addr, BreakpointKind type, CpuKind cpu,
49 const std::string& condition,
50 const std::string& description) override;
51 absl::Status RemoveBreakpoint(uint32_t breakpoint_id) override;
52 absl::Status ToggleBreakpoint(uint32_t breakpoint_id, bool enabled) override;
53 std::vector<BreakpointSnapshot> ListBreakpoints() override;
54
55 // --- Input ---
56 absl::Status PressButton(InputButton button) override;
57 absl::Status ReleaseButton(InputButton button) override;
58
59 // Additional setter for external loader callback
60 void SetRomLoader(std::function<bool(const std::string&)> loader) {
61 rom_loader_ = std::move(loader);
62 }
63 void SetRomGetter(std::function<Rom*()> getter) {
64 rom_getter_ = std::move(getter);
65 }
66
67 private:
69 std::function<bool(const std::string&)> rom_loader_;
70 std::function<Rom*()> rom_getter_;
71
74
76};
77
78} // namespace emu
79} // namespace yaze
80
81#endif // YAZE_APP_EMU_INTERNAL_EMULATOR_ADAPTER_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:28
A class for emulating and debugging SNES games.
Definition emulator.h:40
Abstract interface for emulator backends (Internal vs Mesen2)
Definition i_emulator.h:23
void CaptureCPUState(CpuStateSnapshot *state)
absl::StatusOr< uint32_t > AddBreakpoint(uint32_t addr, BreakpointKind type, CpuKind cpu, const std::string &condition, const std::string &description) override
absl::Status GetCpuState(CpuStateSnapshot *out_state) override
absl::Status WriteBlock(uint32_t addr, const std::vector< uint8_t > &data) override
absl::Status ToggleBreakpoint(uint32_t breakpoint_id, bool enabled) override
absl::Status Step(int count) override
void SetRomGetter(std::function< Rom *()> getter)
absl::Status RemoveBreakpoint(uint32_t breakpoint_id) override
~InternalEmulatorAdapter() override=default
std::string GetLoadedRomPath() const override
absl::StatusOr< std::vector< uint8_t > > ReadBlock(uint32_t addr, size_t len) override
absl::Status ReleaseButton(InputButton button) override
void SetRomLoader(std::function< bool(const std::string &)> loader)
absl::Status WriteByte(uint32_t addr, uint8_t val) override
absl::Status GetGameState(GameSnapshot *out_state) override
absl::Status RunToBreakpoint(BreakpointHitResult *response) override
std::vector< BreakpointSnapshot > ListBreakpoints() override
std::function< bool(const std::string &) rom_loader_)
absl::Status LoadRom(const std::string &path) override
absl::Status PressButton(InputButton button) override
absl::StatusOr< uint8_t > ReadByte(uint32_t addr) override
yaze::emu::debug::StepController step_controller_
Controller for intelligent step operations.