NES emulator written in C# 🎮 ☕️
Switch branches/tags
Nothing to show
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Nescafe Don't crash on long frames Jun 16, 2018
.gitignore Ignore .vs directory Jun 16, 2018
.travis.yml Capitalize project name Aug 19, 2017
LICENSE Move license and readme to proper directory (derp) Aug 13, 2017
Nescafe.sln Capitalize project name in solution file Aug 19, 2017 Make build badges display master status Dec 1, 2017

NEScafé 🎮 ☕️

Travis AppVeyor

A Nintendo Entertainment System (NES) emulator written in C#.

So named since almost all of the work on this was done in various cafés while drinking large quantities of coffee.


Grab the latest build from AppVeyor or build it yourself (see below).


Compile with Visual Studio or from the command line with:

msbuild /property:Configuration=Release Nescafe.sln

Loading a ROM

Load an iNES ROM using File->Load ROM. The game should start immediately or an error will be displayed indicating why the ROM could not be loaded.

Mapper Support

The following iNES mappers are supported:


The NES CPU and PPU have been implemented to a fairly cycle accurate extent. Certain things (eg. sprite evaluation) are not totally cycle accurate, but this doesn't seem to be a problem for the majority of games.


  • The NES APU is currently not implemented meaning no audio.
  • Battery backed persistent memory is not currently supported


Controls cannot currently be configured.

  • Arrow Keys = up,down,left,right
  • Z = A
  • X = B
  • Q = Start
  • W = Select


MIT © Rhys Rustad-Elliott