This is yet another NES Emulator which was written so I can learn about the NES, right now it is not in the most "complete" or cleanest state.
If you want to check it out for some reason I do include a windows binary in the "Releases" tab, if you want to compile it see the compiling infos below.
NTSC and PAL .nes ROMs are supported, it also creates .sav files if the chosen game supports saving. If you are starting a PAL NES title then make sure it has (E),(Europe),(PAL),(Australia),(France),(Germany),(Italy),(Spain) or (Sweden) in the filename to be started in PAL mode.
You can also play FDS titles if you have the FDS BIOS named disksys.rom in the same folder as your .fds/.qd files.
You can also listen to .nsf music files, changing tracks works by pressing left/right.
To start a file, simply drag and drop it into the fixNES Application or call it via command line with the file as argument.
You can also load from a .zip file, the first found supported file from that .zip will be used.
Supported .nes Mappers:
0,1,2,3,4,5,7,9,10,11,12,13,15,19,21,22,23,24,25,26,28,30,31,32,33,34,36,37,38,41,44,45,46,47,48,49,52,57,58,60,61,62,64,65,66,67,68,69,70,71,73,75,76,77,78,79,80,82,85,87,88,89,93,94,95,97,101,107,112,113,118,119,132,133,136,137,138,139,140,141,144,145,146,147,148,149,152,154,155,156,158,172,173,174,180,184,185,193,200,201,202,203,205,206,207,210,212,221,225,226,228,229,230,231,232,235,237,240 and 242.
Supported Audio Expansions (for both ROMs and NSF Files):
VRC6, VRC7, FDS, MMC5, N163, Sunsoft 5B
Controls right now are keyboard only and do the following:
Y/Z is A
X is B
A is Start
S is select
Arrow Keys is DPad
Keys 1-9 integer-scale the window to number
P is Pause
Ctrl+R is Soft Reset
B is Disk Switching (for FDS)
O is Enable/Disable vertical Overscan
If you really want controller support and you are on windows, go grab joy2key, it works just fine with fixNES (and fixGB).
Infos on compiling:
The easiest you can do is use the build .bat/.sh files to just call up gcc with the full command line to compile the standalone version.
For the standalone you will at least need freeglut as well as openal-soft, it should run on most systems since it is fairly generic C code.
Also you can use this as a core for retroarch by using the Makefile in the libretro folder.
There are several defines you can add/remove for different options for both the standalone version and the retroarch core:
Reduces the output frequency of the emulator for more performance
Changes the output texture to be 32bit per pixel (RGBA8) instead of 16bit (RGB565)
Used in combination with COL_32BIT, this will change the output texture to BGRA8 instead of RGBA8
In 32bit per pixel mode, this will change the byte order of the output texture, in 16bit mode this will output in BGR565
Will use optimized function inline attributes for more overall performance
These defines are specific to the standalone version:
Will output the audio as 32bit float instead of 16bit short
Switches the byte order used for the drawn opengl texture, does not need to be touched if you dont have performance issues on your system
Changes some calls to make it easily compilable on windows with something like mingw gcc
Allows you to load roms directly from .zip files if you have a usable zlib installation