semiversus / jeg

NES emulator with focus at hardware abstraction, testability and performance

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JEG Emulation Gathering

License: MIT

The main goal is to build a NES emulator with developers as target audience. Porting the emulator to various embedded platforms is made possible by having a clean abstraction of hardware dependent components. Whether your need is to have hundreds of instances running in parallel or replace audio and video components for experiments - JEG will be your friend.

Features

  • Platform independent
  • Cycle catch-up emulator design
  • Plain C (C99) implementation
  • Unit tested

What's working

  • CPU 6502 completed
  • PPU nearly completed (ppu_vbl_nmi timing test is failing)
  • APU missing
  • Cartridge abstraction draft is working
  • Supported Mappers: INES #0
  • Prototype UI using SDL library (for graphics and audio)

Usefull projects during developlemt

Test ROMs

Just call make test do run all tests. Taken from NESDev and github:christopherpow/nes-test-roms.

Valid

Not working (yet)

These tests are also not called by make test.

Thanks

  • GorgonMeducer doing the EmbeddedNES-Project for discussing a lot of optimisation patterns, sharing his know how and bring in usefull code!

About

NES emulator with focus at hardware abstraction, testability and performance

License:MIT License


Languages

Language:C 96.4%Language:C++ 1.9%Language:CMake 1.0%Language:Objective-C 0.5%Language:Makefile 0.1%