Pair in your system Bluetooth settings, then press a controller button.
Xbox A / Y → NES A
B / X → NES B
View → Select · Menu → Start
D-pad or left stick → Move
L1 / L2 → Quick Save · R1 / R2 → Quick Load (Player 1; local first, Drive syncs when connected)
Choose Player 1 or Player 2 for each connected controller. If your browser/OS reports different button numbers (common with multi-mode pads such as 8BitDo), use Remap buttons once; the mapping is remembered in this browser.
Keyboard still works.
Sound starts at full volume after a click or keypress. Use system volume to adjust.
A very accurate JavaScript NES emulator.
High-quality NES emulation, directly in your browser!
0 NROM · 1 MMC1 · 2 UxROM · 3 CNROM · 4 MMC3 · 5 MMC5 · 7 AxROM · 9 MMC2 · 10 MMC4 · 11 Color Dreams · 13 CPROM · 16/153/157/159 Bandai FCG/Datach · 18 Jaleco SS88006 · 19 Namco 163 · 21/22/23/25 Konami VRC2/VRC4 · 24/26 Konami VRC6 · 32 Irem G-101 · 33/48 Taito TC0190/TC0690 · 34 BNROM/NINA-001 · 64/158 Tengen RAMBO-1 · 65 Irem H3001 · 66 GxROM · 67 Sunsoft-3 · 68 Sunsoft-4 · 69 Sunsoft FME-7/5B · 70/152 Bandai/UNROM-style · 71 Camerica/Codemasters · 72/92 Jaleco JF-17 family · 73 Konami VRC3 · 75 Konami VRC1 · 76 NAMCOT-3446 · 77 Napoleon Senki · 78 Irem 74HC161/Jaleco JF-16 · 79 NINA-03/06 · 80/207 Taito X1-005 · 82/552 Taito X1-017 · 85 Konami VRC7 · 86 Jaleco JF-13 · 87 J87 · 88 NAMCOT-3433/3443 · 89 Sunsoft-2 · 93 Sunsoft-2/Sunsoft-3R · 94 UN1ROM · 95 NAMCOT-3425 · 96 Oeka Kids · 105 NES-EVENT / Nintendo World Championships · 118 TxSROM · 119 TQROM · 155 MMC1 variant · 180 Crazy Climber/UNROM variant · 184 Sunsoft-1 · 185 CNROM protection · 206 Namco 108/MIMIC-1 · 210 Namco 175/340 · 228 Action 52 · 232 Camerica/Codemasters Quattro
Mapper support is actively expanding. Passing mapper unit tests does not yet guarantee every commercial game on that mapper is compatible.
If a game fails, shows a grey screen, has broken graphics/audio, or behaves incorrectly, email vajnes1@gmail.com. Please include the game title/region and, if known, the ROM hash.
Automated release-candidate verification
AccuracyCoin has been an invaluable tool throughout the development of VajNES, helping identify and resolve numerous CPU, PPU, APU, DMA and hardware-timing inaccuracies.
However, AccuracyCoin is actively developed and frequently updated. We have encountered newer revisions that hang on previously passing tests, fail to produce a conclusive PASS or FAIL result, or report failures where earlier revisions passed.
Changes to a test ROM can introduce new requirements, expose previously undetected emulator inaccuracies, or occasionally introduce regressions in the tests themselves.
VajNES no longer treats the latest AccuracyCoin score as a definitive measurement of emulator accuracy.
Instead, our accuracy assessments prioritise reproducible, version-pinned regression suites, exhaustive CPU instruction vectors, independent PPU and APU tests, framebuffer comparisons, and real-world game compatibility.
This remains a documented development milestone, rather than a claim of universal hardware accuracy.
An additional 6 diagnostic-complete ROMs and 1 informational hardware-specific ROM are tracked separately and are not counted as deterministic passes.
These figures describe the automated suites currently wired into VajNES CI. They are accuracy evidence, not a claim that every NES ROM or every hardware edge case in existence has been tested.
ROM-aware cheats without modifying the loaded ROM
No ROM loaded.
Enter a 6- or 8-character NES Game Genie code. Multi-code cheats can be joined with +.
Built-in sets are matched from the Libretro NES Game Genie database by ROM identity. Cheats are applied to CPU ROM reads after mapper translation; ROM bytes are never rewritten.
Choose how the NES picture fills the display.
Press F11 to exit Full Screen.