jsgroth / jgenesis

Sega Genesis / Sega CD / SNES / Master System / Game Gear emulator
MIT License
36 stars 3 forks source link
emulator rust

jgenesis

Cross-platform multi-console emulator supporting a number of 8-bit and 16-bit gaming consoles.

Features

TODOs:

Dev Builds

The GitHub Actions workflow compiles release builds on every commit, which will stay available for 90 days afterwards: https://github.com/jsgroth/jgenesis/actions

Note that these builds are not always well-tested and may have bugs.

Dependencies

Rust

This project requires the latest stable version of the Rust toolchain to build.

SDL2

This project requires SDL2 core headers to build.

Linux (Debian-based):

sudo apt install libsdl2-dev

Windows:

Build & Run

GUI:

cargo run --release --bin jgenesis-gui

CLI:

cargo run --release --bin jgenesis-cli -- -f <path_to_rom_file>

To view all CLI args:

cargo run --release --bin jgenesis-cli -- -h

To build with maximum optimizations (better runtime performance + smaller binary size at the cost of long compile time):

RUSTFLAGS="-C target-cpu=native" cargo build --profile release-lto

...After which the executables will be in target/release-lto/.

Screenshots

Screenshot from 2023-08-27 22-47-13

Screenshot from 2023-08-27 22-53-09

Screenshot from 2023-09-27 19-36-19

Screenshot from 2023-09-29 17-12-35

Screenshot from 2023-11-06 21-42-49

Screenshot from 2023-08-27 22-45-06

Screenshot from 2023-08-27 22-45-32

Screenshot from 2023-09-18 15-44-28

Sources

Sega Master System / Game Gear

Sega Genesis / Mega Drive

Sega CD / Mega CD

NES

SNES

Game Boy / Game Boy Color