Abstract interface for emulator backends (Internal vs Mesen2) More...
#include <i_emulator.h>

Public Member Functions | |
| virtual | ~IEmulator ()=default |
| virtual bool | IsConnected () const =0 |
| virtual bool | IsRunning () const =0 |
| virtual void | Pause ()=0 |
| virtual void | Resume ()=0 |
| virtual void | Reset ()=0 |
| virtual absl::Status | Step (int count)=0 |
| virtual absl::Status | StepOver ()=0 |
| virtual absl::Status | StepOut ()=0 |
| virtual absl::Status | LoadRom (const std::string &path)=0 |
| virtual std::string | GetLoadedRomPath () const =0 |
| virtual absl::StatusOr< uint8_t > | ReadByte (uint32_t addr)=0 |
| virtual absl::StatusOr< std::vector< uint8_t > > | ReadBlock (uint32_t addr, size_t len)=0 |
| virtual absl::Status | WriteByte (uint32_t addr, uint8_t val)=0 |
| virtual absl::Status | WriteBlock (uint32_t addr, const std::vector< uint8_t > &data)=0 |
| virtual absl::Status | GetCpuState (CpuStateSnapshot *out_state)=0 |
| virtual absl::Status | GetGameState (GameSnapshot *out_state)=0 |
| virtual absl::Status | RunToBreakpoint (BreakpointHitResult *response)=0 |
| virtual absl::StatusOr< uint32_t > | AddBreakpoint (uint32_t addr, BreakpointKind type, CpuKind cpu, const std::string &condition, const std::string &description)=0 |
| virtual absl::Status | RemoveBreakpoint (uint32_t breakpoint_id)=0 |
| virtual absl::Status | ToggleBreakpoint (uint32_t breakpoint_id, bool enabled)=0 |
| virtual std::vector< BreakpointSnapshot > | ListBreakpoints ()=0 |
| virtual absl::Status | PressButton (InputButton button)=0 |
| virtual absl::Status | ReleaseButton (InputButton button)=0 |
| virtual absl::Status | SaveState (int slot) |
| virtual absl::Status | LoadState (int slot) |
| virtual bool | SupportsFeature (EmulatorFeature feature) const |
| virtual absl::Status | SetCollisionOverlay (bool enable) |
Abstract interface for emulator backends (Internal vs Mesen2)
This interface uses native C++ types from emulator_types.h rather than proto types, so it compiles and is testable without gRPC/protobuf. The gRPC service layer converts between these types and proto types via proto_converter.h.
Definition at line 23 of file i_emulator.h.
|
virtualdefault |
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::ControlEmulator(), and yaze::net::EmulatorServiceImpl::StepEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::GetDebugStatus().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::ControlEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::ControlEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::ControlEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::StepEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::StepEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::StepEmulator().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::LoadRom().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::GetLoadedRomPath().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
|
pure virtual |
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::WriteMemory().
|
pure virtual |
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::GetGameState().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::RunToBreakpoint().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::BreakpointControl().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::BreakpointControl().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::BreakpointControl().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::BreakpointControl(), and yaze::net::EmulatorServiceImpl::GetDebugStatus().
|
pure virtual |
Implemented in yaze::emu::InternalEmulatorAdapter, and yaze::emu::mesen::MesenEmulatorAdapter.
Referenced by yaze::net::EmulatorServiceImpl::HoldButtons(), and yaze::net::EmulatorServiceImpl::PressButtons().
|
pure virtual |
|
inlinevirtual |
Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.
Definition at line 71 of file i_emulator.h.
|
inlinevirtual |
Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.
Definition at line 74 of file i_emulator.h.
|
inlinevirtual |
Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.
Definition at line 79 of file i_emulator.h.
|
inlinevirtual |
Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.
Definition at line 85 of file i_emulator.h.