nescafe
nescafe copied to clipboard
NES emulator written in C# :video_game: :coffee:
NEScafé :video_game: :coffee:
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:
- Mapper 0 (NROM) - Super Mario Bros., Donkey Kong, Spy vs. Spy
- Mapper 1 (MMC1) - The Legend of Zelda, Castlevania 2, Tetris
- Mapper 2 (UxROM) - Castlevania, Mega Man, Contra
- Mapper 4 (MMC3) - Super Mario Bros. 2, Super Mario Bros 3., Mega Man 3
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