#game-console #game #emulator #console #z80 #video

euphrates

A library for emulating video game consoles, in particular the Sega Master System, Game Gear, and SG-1000

1 unstable release

Uses old Rust 2015

0.1.0 Oct 1, 2018

#303 in Emulators

21 downloads per month
Used in 4 crates

GPL-3.0-or-later

510KB
11K SLoC

Euphrates: A Game Console Emulator

Euphrates is an emulator for the Sega Master System, Sega Game Gear, and Sega SG-1000 Game consoles.

This crate, euphrates, is the main emulation library. It features emulation for the Z80 processor and other hardware components including the Sega Master System VDP. It also has a disassembler and debugger.

Euphrates is also available as a command line program; see the euphrates_cli crate.

Euphrates is intended to be a platform for exploring artificial intelligence and reinforcement learning, but there are a few features that need to be added.

Future

The goal is to make Euphrates very fast, so that AI search methods may run extensive simulations as quickly as possible.

To that end, the most significant feature I will be adding soon is

  • dynamic recompilation,

and some time after that I will add

  • GPU emulation of the video display processor.

Dynamic recompilation will be a fairly large undertaking. In the meantime, some relatively straightforward features I will probably add are

  • Colecovision emulation;

  • sound emulation via sine waves instead of square wves.

Some bigger non-priority features I may add someday include

  • MSX emulation;

  • MSX2 emulation;

  • ZX Spectrum emulation;

  • Gameboy emulation.

Finally, it's conceivable but not particularly likely that I will add emulation for systems based on processors other than the Z80.

Bugs

  • Two VDP graphical modes are not implemented. These are not used by any official Master System, Game Gear, or SG-1000 game, but I'll need to implement them for the Colecovision.

License

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/.

Dependencies

~1.6–2.4MB
~46K SLoC