nescafe icon indicating copy to clipboard operation
nescafe copied to clipboard

NES emulator written in C# :video_game: :coffee:

NEScafé :video_game: :coffee:

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.

Running

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

Building

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:

Accuracy

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.

Limitations

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

Controls

Controls cannot currently be configured.

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

License

MIT © Rhys Rustad-Elliott