An open API service indexing awesome lists of open source software.

https://github.com/jsgroth/jgenesis

Sega Genesis / Sega CD / SNES / Master System / Game Gear emulator
https://github.com/jsgroth/jgenesis

emulator rust

Last synced: 3 months ago
JSON representation

Sega Genesis / Sega CD / SNES / Master System / Game Gear emulator

Awesome Lists containing this project

README

          

# jgenesis

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

Linux, Windows, and web (WASM) are officially supported. Other platforms may work but have not been tested.

## Features

* Emulation for the following consoles:
* Sega Genesis / Mega Drive
* Sega CD / Mega CD
* Sega 32X / Mega 32X
* SG-1000
* Sega Master System / Mark III
* Game Gear
* Nintendo Entertainment System (NES) / Famicom
* Super Nintendo Entertainment System (SNES) / Super Famicom
* Game Boy / Game Boy Color
* Game Boy Advance
* GPU-based renderer with integer prescaling and optional linear interpolation
* Configurable pixel aspect ratio for each console with several different options: accurate to original hardware/TVs, square pixels, and stretched to fill the window
* Support for the Sega Master System FM sound unit expansion
* Support for the Sega Genesis SVP chip, used in _Virtua Racing_
* Support for the most common NES mappers, plus a number of less common mappers
* Support for most SNES coprocessors (e.g. Super FX, SA-1, DSP-1, CX4, S-DD1, SPC7110)
* Support for both 3-button and 6-button Genesis controllers
* Support for keyboard controls and DirectInput gamepad controls
* Save states, fast forward, and rewind
* Some simple horizontal blur and naive anti-dither shaders for blending dithered pixel patterns, which were extremely common on these consoles due to limited color palettes and lack of hardware-supported transparency
* Optional CPU overclocking for Sega Master System, Game Gear, and Genesis emulation
* Optional 2-4x GSU overclocking for SNES Super FX games
* Can run the Titan Overdrive and Titan Overdrive 2 demos for the Mega Drive

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

## Build & Run

See [BUILD.md](BUILD.md)

## Screenshots

![Screenshot from 2023-08-27 22-47-13](https://github.com/jsgroth/jgenesis/assets/1137683/d2ec2bc6-de7d-4ff1-98c5-10a0c4db7391)

![Screenshot from 2023-08-27 22-53-09](https://github.com/jsgroth/jgenesis/assets/1137683/05a7c309-0706-4627-9b45-313f259cc494)

![Screenshot from 2023-09-27 19-36-19](https://github.com/jsgroth/jgenesis/assets/1137683/2684be78-c2db-4af3-81dc-4325eb25f440)

![Screenshot from 2023-09-29 17-12-35](https://github.com/jsgroth/jgenesis/assets/1137683/69ab2eb5-1a5f-42e3-abac-c660b5c359e7)

![Screenshot from 2023-11-06 21-42-49](https://github.com/jsgroth/jgenesis/assets/1137683/437bd22f-f1ec-43a2-9340-62c042d489de)

![Screenshot from 2023-08-27 22-45-06](https://github.com/jsgroth/jgenesis/assets/1137683/7d1567ce-39ba-4645-9aff-3c6d6e0afb80)

![Screenshot from 2023-08-27 22-45-32](https://github.com/jsgroth/jgenesis/assets/1137683/90d96e18-57a8-4327-8d9d-385f55a718b3)

![Screenshot from 2023-09-18 15-44-28](https://github.com/jsgroth/jgenesis/assets/1137683/d70b708c-c1dc-4a9e-adda-11d2b1b8fa00)

## Sources

### Sega Master System / Game Gear
* Z80 User Manual:
* The Undocumented Z80 Documented: http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf
* Sega Master System architecture:
* Sega Master System / Game Gear documentation:
* YM2413 application manual:
* Reverse engineering of the YM2413:

### Sega Genesis / Mega Drive
* M68000 Family Programmer's Reference Manual:
* Motorola 68000 Opcodes: http://goldencrystal.free.fr/M68kOpcodes.pdf
* Mega Drive / Genesis architecture:
* Mega Drive official documentation:
* Sega Genesis hardware notes by Charles MacDonald:
* Aggregating Community Research:
* Mega Drive video timings:
* Genesis ROM header reference:
* Genesis - Going beyond 4MB:
* SEGA Mega Drive / Genesis hardware notes by Kabuto:
* Huge thread discussing and detailing the YM2612:
* Genesis EEPROM games:
* SVP documentation by notaz, as well as earlier documentation work by Tasco Deluxe:

### Sega CD / Mega CD
* Mega CD official documentation:
* ECMA-130 standard:
* Thread discussing details of Mega CD emulation:

### 32X
* 32X official documentation:
* SH-1/SH-2 programming manual:
* SH7604 hardware manual:

### NES
* 6502 Instruction Set:
* 6502 Hardware Manual:
* Documentation for the NMOS 65xx/85xx Instruction Set:
* Nintendo Entertainment System (NES) architecture:
* NESDev NES reference guide:

### SNES
* A 65816 Primer:
* Super Nintendo architecture:
* fullsnes - nocash SNES hardware specifications:
* Anomie's SNES documents:
* SFC Development Wiki:

### Game Boy / Game Boy Color
* Game Boy CPU (SM83) Instruction Set:
* Pan Docs:
* Game Boy Complete Technical Reference:
* Gameboy Sound Hardware:
* The Cycle-Accurate Game Boy Docs:
* This contains some outdated/incorrect information but is still useful

### Game Boy Advance
* Game Boy Advance Architecture:
* ARM7TDMI Technical Reference Manual:
* GBATEK - GBA/NDS technical info:
* Tonc - GBA programming guide:
* mGBA blog:
* NanoBoyAdvance hardware documentation: