FakeNES – a portable, Open Source NES emulator. It uses the Allegro library for input, graphics, and sound across various platforms.
FakeNES is written in 100% C language code. This makes it very portable, but also very slow compared to many other NES/Famicom emulators.
Do not expect FakeNES to run fast or even be playable on a 486 or Pentium. I recommend at least a 500 MHz processor for full speed. A 2 GHz+ processor may be required if you want special features like HQ2X. More recent versions focus entirely on accuracy and recreating the original experience, and thus may run very slowly on the default settings.
OpenGL is supported, through AllegroGL. For best results, disable any “enhancements” that your video drivers may force upon the program. OpenAL is also supported.
FakeNES supports two keyboard layouts, four joysticks, and a mouse.
It is distributed under the zlib/libpng license. Contributed and third-party code is included under GNU licenses.