• Print

fixNES


Description

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.

 

Loading Files:

  • 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, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 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, 224, 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:

  • AUDIO_LOWERFREQ
    • Reduces the output frequency of the emulator for more performance
  • COL_32BIT
    • Changes the output texture to be 32bit per pixel (RGBA8) instead of 16bit (RGB565)
  • COL_BGRA
    • Used in combination with COL_32BIT, this will change the output texture to BGRA8 instead of RGBA8
  • COL_TEX_BSWAP
    • In 32bit per pixel mode, this will change the byte order of the output texture, in 16bit mode this will output in BGR565
  • DO_INLINE_ATTRIBS
    • Will use optimized function inline attributes for more overall performance

 

These defines are specific to the standalone version:

  • AUDIO_FLOAT
    • Will output the audio as 32bit float instead of 16bit short
  • COL_GL_BSWAP
    • 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
  • WINDOWS_BUILD
    • Changes some calls to make it easily compilable on windows with something like mingw gcc
  • ZIPSUPPORT
    • Allows you to load roms directly from .zip files if you have a usable zlib installation
  • DISPLAY_PPUWRITES
    • Will show red dots each frame of when the PPU was written to which can be useful for understanding certain rendering aspects.
    • Also extends the emu window size to show all the normally invisible Hblank/Vblank areas so you can see all write activity.

Links

GitHub - FIX94/fixNES: Yet Another NES Emulator

Downloads

Gallery