yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::emu::IEmulator Class Referenceabstract

Abstract interface for emulator backends (Internal vs Mesen2) More...

#include <i_emulator.h>

Inheritance diagram for yaze::emu::IEmulator:

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< BreakpointSnapshotListBreakpoints ()=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)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~IEmulator()

virtual yaze::emu::IEmulator::~IEmulator ( )
virtualdefault

Member Function Documentation

◆ IsConnected()

virtual bool yaze::emu::IEmulator::IsConnected ( ) const
pure virtual

◆ IsRunning()

virtual bool yaze::emu::IEmulator::IsRunning ( ) const
pure virtual

◆ Pause()

virtual void yaze::emu::IEmulator::Pause ( )
pure virtual

◆ Resume()

virtual void yaze::emu::IEmulator::Resume ( )
pure virtual

◆ Reset()

virtual void yaze::emu::IEmulator::Reset ( )
pure virtual

◆ Step()

virtual absl::Status yaze::emu::IEmulator::Step ( int count)
pure virtual

◆ StepOver()

virtual absl::Status yaze::emu::IEmulator::StepOver ( )
pure virtual

◆ StepOut()

virtual absl::Status yaze::emu::IEmulator::StepOut ( )
pure virtual

◆ LoadRom()

virtual absl::Status yaze::emu::IEmulator::LoadRom ( const std::string & path)
pure virtual

◆ GetLoadedRomPath()

virtual std::string yaze::emu::IEmulator::GetLoadedRomPath ( ) const
pure virtual

◆ ReadByte()

virtual absl::StatusOr< uint8_t > yaze::emu::IEmulator::ReadByte ( uint32_t addr)
pure virtual

◆ ReadBlock()

virtual absl::StatusOr< std::vector< uint8_t > > yaze::emu::IEmulator::ReadBlock ( uint32_t addr,
size_t len )
pure virtual

◆ WriteByte()

virtual absl::Status yaze::emu::IEmulator::WriteByte ( uint32_t addr,
uint8_t val )
pure virtual

◆ WriteBlock()

virtual absl::Status yaze::emu::IEmulator::WriteBlock ( uint32_t addr,
const std::vector< uint8_t > & data )
pure virtual

◆ GetCpuState()

◆ GetGameState()

virtual absl::Status yaze::emu::IEmulator::GetGameState ( GameSnapshot * out_state)
pure virtual

◆ RunToBreakpoint()

virtual absl::Status yaze::emu::IEmulator::RunToBreakpoint ( BreakpointHitResult * response)
pure virtual

◆ AddBreakpoint()

virtual absl::StatusOr< uint32_t > yaze::emu::IEmulator::AddBreakpoint ( uint32_t addr,
BreakpointKind type,
CpuKind cpu,
const std::string & condition,
const std::string & description )
pure virtual

◆ RemoveBreakpoint()

virtual absl::Status yaze::emu::IEmulator::RemoveBreakpoint ( uint32_t breakpoint_id)
pure virtual

◆ ToggleBreakpoint()

virtual absl::Status yaze::emu::IEmulator::ToggleBreakpoint ( uint32_t breakpoint_id,
bool enabled )
pure virtual

◆ ListBreakpoints()

◆ PressButton()

virtual absl::Status yaze::emu::IEmulator::PressButton ( InputButton button)
pure virtual

◆ ReleaseButton()

◆ SaveState()

virtual absl::Status yaze::emu::IEmulator::SaveState ( int slot)
inlinevirtual

Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.

Definition at line 71 of file i_emulator.h.

◆ LoadState()

virtual absl::Status yaze::emu::IEmulator::LoadState ( int slot)
inlinevirtual

Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.

Definition at line 74 of file i_emulator.h.

◆ SupportsFeature()

virtual bool yaze::emu::IEmulator::SupportsFeature ( EmulatorFeature feature) const
inlinevirtual

Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.

Definition at line 79 of file i_emulator.h.

◆ SetCollisionOverlay()

virtual absl::Status yaze::emu::IEmulator::SetCollisionOverlay ( bool enable)
inlinevirtual

Reimplemented in yaze::emu::mesen::MesenEmulatorAdapter.

Definition at line 85 of file i_emulator.h.


The documentation for this class was generated from the following file: