• Print

My Nes 7.0.6475 Beta


My NES is a portable, open source, low level NES/Famicom emulator written in C#. The compatibility of My NES is very high, running most games without any bugs. The aim of the project is to reproduce any hardware quirks that games may rely on as elegantly as possible. My NES doesn't employ any game specific hacks or hash checks (Aside from filling in pot holes left behind by the iNES file format).



  • Powerful Launcher that uses NesCart DB and SQLite databases to organize roms.
  • Uses NesCart DB to show and use accurate game information.
  • Ability to save snapshots of current game.
  • Run game in windowed or fullscreen mode with useful video options like keep aspect ratio.
  • Ability to record sound.
  • Multilingual interface.
  • Save and load state ability.
  • Accuracy, My Nes pass almost all known nes tests by emulating the real hardware behaviors without any kind of emulation hack.
  • Compatibility, My Nes support more than 100 board/mapper which mean thousands of games are playable.
  • Multithreaded Emulator, the emulation process run in thread separated from renderer threads. This may improve performance especially with multi core cpus.
  • CPU 6502:All CPU 6502 instructions implemented including the so called illegal opcodes.
  • Interrupts: Implement exact interrupt timings like interrupt check before the last instruction behavior
  • PPU: Implement the Picture Processor Unit as described in the wiki docs http://wiki.nesdev.com/w/index.php/PPU_rendering with exact timing
  • Palettes: Implement the palette generator of NTSC video as described at http://wiki.nesdev.com/w/index.php/NTSC_video
  • TV Formats:NTSC, PALB and DENDY.
  • Sound: Implement all Nes 5 sound channels, MMC5 external sound channels and VRC6 external sound channels. Also the DC Blocker filter is applied to the output.
  • Sound Playback And Record: Fixed to 44100 Hz - 16 bit - Mono. Applied for playback and record. Sound record depends on emulation speed not on sound playback so record doesn't affected if the emulator run fast or slow.
  • Mappers And Boards: Implement about 97% of known and documented mappers
  • Controllers: 4 players joypads, Zapper and VSUnisystem DIP. Note that you'll need to connect Zapper or 4 Player in settings manually in order to use it


This is a BETA release for major version 7.
This package should work on both Windows and Linux.
Not much still to work on, i decided to release a beta release for evaluation purposes.


Current version: 7.0.6475
Latest build at: 9/24/2017 23:15


Notes for version 7:

  • THIS IS BETA: only mappers 0, 1, 2, 4, 7 and 71 are implemented for testing purposes.
  • My Nes emulation core is built from scratch, 2 months of 5-6 hours daily working (and another month for "My Engine" building, 5-6 hours daily). I tried my best to care of each detail, using latest documentations and diagrams. The accuracy level is 99% !! and yes, i mean it !!
  • My Nes emulation work AS EXACTLY as mensioned in the documents in Nes Wiki and other places, I even able to discover things related to nes hardware that it is not documented or not explainable.
  • PPU BUS is emulated, My Nes passes all VBL-NMI tests by emulating the REAL ppu bus, if you want to know why #2000 writes and #2002 reads do unusal stuff, just look at the source-code of My Nes. I noted everythings there.
  • PPU OAM EVALUATION is also built to match the real hardware, let's just ppu emulation is very accurate. Use the scanline.nes test to see the timing is perfect !!
  • Emulation optimized, i mean it this time. My Nes tested in old machines and run perfectly 60 fps.
  • My Nes now is multi-cross platform application, thanks to SDL2 and #SDL-CS for making this happen !
  • I build a simple engine and called "My Engine". This is just a simple GUI engine built using SDL2, so that user can access everything from emulation configuration to output and input settings in the same window, in all platforms. 






blog comments powered by Disqus