1 unstable release
|0.1.0||Oct 1, 2018|
#71 in Emulators
1 downloads per month
Euphrates is an emulator for the Sega Master System, Sega Game Gear, and Sega SG-1000 Game consoles.
It's available as a library, in the
euphrates crate. This crate,
euphrates_cli, provides a command line interface based on SDL2.
euphrates_cli, you'll need to install Rust and SDL2.
To play most Sega Master System ROMs, execute from this directory:
cargo run --release -- rom --rom PATH_TO_ROM
To play Codemasters games like Fantastic Dizzy:
cargo run --release -- rom --rom PATH_TO_ROM --memory_map codemasters --tv pal
To play Game Gear games:
cargo run --release -- rom --rom PATH_TO_ROM --kind gg
To play SG-1000 games:
cargo run --release -- rom --rom PATH_TO_ROM --memory_map sg1000_2
Compilation will take a few minutes.
During gameplay, control player 1 with keys WASDFG. Control player 2 with keys IJKL;'. Space is reset; P is pause (or, for the Game Gear, start).
If you want to be able to save states and playback, you should use the
--save_directory option like this:
cargo run --release -- rom --rom PATH_TO_ROM --save_directory PATH_TO_DIRECTORY
During gameplay, press
x to save state. Press
r to start recording gameplay
R to save recorded gameplay.
Resume from a saved state using
cargo run --release -- load --loadfile PATH_TO_SAVED_STATE
Run recorded gameplay using
cargo run --release -- loadrecord --loadfile PATH_TO_RECORDED_GAMEPLAY
To playback recorded gameplay at max speed and time the result:
cargo run --release -- playback --loadfile PATH_TO_RECORDED_GAMEPLAY --frequency unlimited
If you have an x86-64 processor with BMI2 instructions, you can get better performance like this (this will require a recompile):
cargo run --release --features euphrates_x64` -- rom --rom PATH_TO_ROM
You can disable debugging features (see below) as follows:
cargo run --release -- rom --rom PATH_TO_ROM --debug false
This will provide a performance improvement (but one that is probably unnecessary for gameplay on modern computers).
Euphrates provides some debugging features (as long as you didn't invoke
During gameplay, you can press:
nto print disassembly around the current program counter;
Nto print a whole-program disassembly;
hto hold execution;
yto step through one Z80 instruction;
Hto resume execution;
zto display the current status of the emulated Z80 CPU.
Euphrates is Copyright 2018, Michael Benfield.
Euphrates is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Euphrates is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Euphrates (see the file LICENSE). If not, see https://www.gnu.org/licenses/.