yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
mesen_emulator_adapter.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EMU_MESEN_MESEN_EMULATOR_ADAPTER_H_
2#define YAZE_APP_EMU_MESEN_MESEN_EMULATOR_ADAPTER_H_
3
4#include <memory>
5
8
9namespace yaze {
10namespace emu {
11namespace mesen {
12
14 public:
16 ~MesenEmulatorAdapter() override;
17
19 absl::Status Connect();
20 absl::Status Connect(const std::string& socket_path);
21
22 // --- Core Lifecycle ---
23 bool IsConnected() const override;
24 bool IsRunning() const override;
25 void Pause() override;
26 void Resume() override;
27 void Reset() override;
28 absl::Status Step(int count) override;
29 absl::Status StepOver() override;
30 absl::Status StepOut() override;
31
32 // --- ROM ---
33 absl::Status LoadRom(const std::string& path) override;
34 std::string GetLoadedRomPath() const override;
35
36 // --- Memory ---
37 absl::StatusOr<uint8_t> ReadByte(uint32_t addr) override;
38 absl::StatusOr<std::vector<uint8_t>> ReadBlock(uint32_t addr,
39 size_t len) override;
40 absl::Status WriteByte(uint32_t addr, uint8_t val) override;
41 absl::Status WriteBlock(uint32_t addr,
42 const std::vector<uint8_t>& data) override;
43
44 // --- CPU State ---
45 absl::Status GetCpuState(CpuStateSnapshot* out_state) override;
46
47 // --- Game State (ALTTP specific) ---
48 absl::Status GetGameState(GameSnapshot* out_state) override;
49
50 // --- Breakpoints ---
51 absl::Status RunToBreakpoint(BreakpointHitResult* response) override;
52
53 absl::StatusOr<uint32_t> AddBreakpoint(
54 uint32_t addr, BreakpointKind type, CpuKind cpu,
55 const std::string& condition,
56 const std::string& description) override;
57 absl::Status RemoveBreakpoint(uint32_t breakpoint_id) override;
58 absl::Status ToggleBreakpoint(uint32_t breakpoint_id, bool enabled) override;
59 std::vector<BreakpointSnapshot> ListBreakpoints() override;
60
61 // --- Input ---
62 absl::Status PressButton(InputButton button) override;
63 absl::Status ReleaseButton(InputButton button) override;
64
65 // --- Save State ---
66 absl::Status SaveState(int slot) override;
67 absl::Status LoadState(int slot) override;
68
69 // --- Feature Query ---
70 bool SupportsFeature(EmulatorFeature feature) const override;
71
72 // --- Overlays ---
73 absl::Status SetCollisionOverlay(bool enable) override;
74
75 private:
76 std::unique_ptr<MesenSocketClient> client_;
77};
78
79} // namespace mesen
80} // namespace emu
81} // namespace yaze
82
83#endif // YAZE_APP_EMU_MESEN_MESEN_EMULATOR_ADAPTER_H_
Abstract interface for emulator backends (Internal vs Mesen2)
Definition i_emulator.h:23
absl::Status ReleaseButton(InputButton button) override
bool SupportsFeature(EmulatorFeature feature) const override
absl::Status GetGameState(GameSnapshot *out_state) override
std::unique_ptr< MesenSocketClient > client_
std::string GetLoadedRomPath() const override
absl::Status GetCpuState(CpuStateSnapshot *out_state) override
absl::StatusOr< uint8_t > ReadByte(uint32_t addr) override
absl::Status PressButton(InputButton button) override
absl::StatusOr< std::vector< uint8_t > > ReadBlock(uint32_t addr, size_t len) override
absl::Status SetCollisionOverlay(bool enable) override
absl::Status WriteBlock(uint32_t addr, const std::vector< uint8_t > &data) override
absl::Status Step(int count) override
std::vector< BreakpointSnapshot > ListBreakpoints() override
absl::Status LoadState(int slot) override
absl::StatusOr< uint32_t > AddBreakpoint(uint32_t addr, BreakpointKind type, CpuKind cpu, const std::string &condition, const std::string &description) override
absl::Status ToggleBreakpoint(uint32_t breakpoint_id, bool enabled) override
absl::Status WriteByte(uint32_t addr, uint8_t val) override
absl::Status RemoveBreakpoint(uint32_t breakpoint_id) override
absl::Status Connect()
Explicitly connect to a Mesen2 socket (replaces auto-connect).
absl::Status LoadRom(const std::string &path) override
absl::Status RunToBreakpoint(BreakpointHitResult *response) override
absl::Status SaveState(int slot) override
EmulatorFeature
Features that emulator backends may optionally support. Use with IEmulator::SupportsFeature() to quer...