AlexSutila / nesEmulator

A hobbyist NES emulator written in C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DorcelessNESs - NES Emulator

A hobbyist, cross-platform, NES emulator written entirely in C++ using SDL2 for rendering. Future plans consist of improvements on the MMC1 support, potentially adding more mappers, USB controller support, and audio support (there is currently no audio at all).

Untitled

Compatability

The games shown in the screenshot above are known to play quite well, however the compatability for games is not limited to the games shown in the screenshot alone.

As mentioned above, this is a hobbyist emulator and is by no means perfect. That being said even if a ROM for a specific game was originally implemented with a well tested mapper there is still a chance it might not work as expected. The table below shows the following mapper types supported as of now, there is still a chance that more will come:

Mapper Type State
Mapper 0 Implemented, works well
Mapper 1 Implemented, needs work
Mapper 2 Implemented, works well

Compiling

This emulator uses SDL2. The development package for SDL2 can be installed using the following if you're using apt:

sudo apt-get install libsdl2-dev

The makefile included can compile everything either with or without debug mode. The debugger I wrote for this is by no means user friendly.

Without debugging stuff:

make # Suggested as the debugger is yucky

With debugging stuff:

make debug

Running

The final binary just takes a path to the ROM as it's only argument.

./nes ~/Documents/Path/To/Rom.nes

Controls

There is currently only support for a regular keyboard, but talk about potential support for USB controller support. The keybinds are only configurable through the source code and are mapped as follows by default:

Keyboard Button Nes Controller Button
W up
A left
S down
D right
start backspace
select escape
left arrow A
right arrow B

There is also talk about potentially adding support for a 'turbo' like feature, similar to what Mesen has for all the cheaters out there >:)

About

A hobbyist NES emulator written in C++


Languages

Language:C++ 94.2%Language:Python 5.6%Language:Makefile 0.2%