pub struct Emulator { /* private fields */ }
ps1
only.Expand description
A Playstation 1 emulator that the auto splitter is attached to.
Implementations§
Source§impl Emulator
impl Emulator
Sourcepub fn attach() -> Option<Self>
pub fn attach() -> Option<Self>
Attaches to the emulator process
Returns Option<T>
if successful, None
otherwise.
Supported emulators are:
- ePSXe
- pSX
- Duckstation
- Mednafen
- Retroarch (supported cores: Beetle-PSX, Swanstation, PCSX ReARMed)
- PCSX-redux
- XEBRA
Sourcepub async fn wait_attach() -> Self
pub async fn wait_attach() -> Self
Asynchronously awaits attaching to a target emulator, yielding back to the runtime between each try.
Supported emulators are:
- ePSXe
- pSX
- Duckstation
- Mednafen
- Retroarch (supported cores: Beetle-PSX, Swanstation, PCSX ReARMed)
- PCSX-redux
- XEBRA
Sourcepub fn is_open(&self) -> bool
pub fn is_open(&self) -> bool
Checks whether the emulator is still open. If it is not open anymore, you should drop the emulator.
Sourcepub const fn until_closes<F>(&self, future: F) -> UntilEmulatorCloses<'_, F> ⓘ
pub const fn until_closes<F>(&self, future: F) -> UntilEmulatorCloses<'_, F> ⓘ
Executes a future until the emulator process closes.
Sourcepub fn update(&self) -> bool
pub fn update(&self) -> bool
Calls the internal routines needed in order to find (and update, if needed) the address of the emulated RAM.
Returns true if successful, false otherwise.
Sourcepub fn get_address(&self, offset: u32) -> Result<Address, Error>
pub fn get_address(&self, offset: u32) -> Result<Address, Error>
Converts a PS1 memory address to a real memory address in the emulator process’ virtual memory space
Valid addresses for the PS1 range from 0x80000000
to 0x817FFFFF
.
Sourcepub fn read<T: CheckedBitPattern>(&self, offset: u32) -> Result<T, Error>
pub fn read<T: CheckedBitPattern>(&self, offset: u32) -> Result<T, Error>
Reads any value from the emulated RAM.
In PS1, memory addresses are usually mapped at fixed locations starting
from 0x80000000
, and is the way many emulators, as well as the
GameShark on original hardware, access memory.
The offset provided is meant to be the same memory address as usually
mapped on the original hardware. Valid addresses range from 0x80000000
to 0x817FFFFF
.
Providing any offset outside the range of the PS1’s RAM will return
Err()
.
Sourcepub fn read_pointer_path<T: CheckedBitPattern>(
&self,
base_address: u32,
path: &[u32],
) -> Result<T, Error>
pub fn read_pointer_path<T: CheckedBitPattern>( &self, base_address: u32, path: &[u32], ) -> Result<T, Error>
Follows a path of pointers from the address given and reads a value of the type specified from the process at the end of the pointer path.