Skip to content
/ jeg Public

NES emulator with focus at hardware abstraction, testability and performance

License

Notifications You must be signed in to change notification settings

semiversus/jeg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages