#emulator #builder #executor #command #tas #data-structures

emu-runner

Command builder and executor for various emulators

2 releases

0.1.1 Oct 12, 2023
0.1.0 Sep 12, 2023

#134 in Emulators

39 downloads per month

MIT license

33KB
697 lines

License: MIT Crates.io Documentation

Description

emu-runner is a command builder intended to make it easier to run a wide range of emulators using a consistent interface. This utility attempts to handle any version differences automatically, such as determining how to execute a particular emulator depending on the current OS, or recognizing which CLI argument to use based on the version of the emulator.

For example, for any given version of FCEUX, it has multiple build types, all which contain different executable names, and two entirely different sets of CLI argument names. emu-runner simplifies this by providing an abiguous data structure:

let ctx = FceuxContext::new("path/to/emulator")?
    .with_lua("/a/lua/script.lua")
    .with_movie("SuperMario.fm2")
    .with_rom("roms/Super Mario Bros.nes");

ctx.run();

Current supported emulators include: BizHawk, FCEUX, and Gens.

Other emulator contexts can be made by implementing the EmulatorContext trait on your own types.

Dependencies

~145KB