This page documents the test results on various emulators for test ROMs.
This is not a definitive source of truth, and may contain out of date information. A slightly more up-to-date table was made by Alyosha and Sour on google docs.
Links to test ROMs:
- https://github.com/christopherpow/nes-test-roms
- http://bisqwit.iki.fi/src/nes_tests
- https://dl.dropboxusercontent.com/u/75355/Emulation/full_nes_palette.nes
Note, tests below only list nesicide's test results, not nesemu1's test suite.
TODO: Elaborate more on what these roms are and format this heading nicely.
TODO: Rerun all the tests on the newest builds of everything.
TODO: Come up with a more efficient way to update the table and recalculate the results.
TODO: Rerun all the tests on the newest builds of everything.
TODO: Come up with a more efficient way to update the table and recalculate the results.
Testers, please record your results in this table, feel free to add other emulators to this list!
- Nestopia version used in tests: 1.53.1
- "nesemu1" is the workname for Bisqwit's emulator that is not yet completely published.
- A note about puNES: Since version 0.67, an option for high quality audio is available. Use this one instead of low quality audio, as it is generally more accurate.
Guidelines for testing
If there is a choice between a stable and a newer beta/unstable version, preferably, test both. If only one of them passes, indicate the passing version. If both fail or pass, indicate the stable version. If both fail on different steps of the test, indicate the one that has managed a better result, if applicable.
tvpassfail should look like this: http://bisqwit.iki.fi/kala/snap/nesemu1_tvpassfail.avi . Don't "Pass" it if it does not even resemble that.
Some notes about tests which fail the powerpak:
- Power up palette is not the most useful test. It varies between NES revisions, but we're using the one validated by this test as the canonical emulation target. It fails on powerpak because powerpak wipes the palette for its gui.
- blargg_nes_cpu_test5 fails probably on powerpak because the test is wrong? the NES may differ from the standard 6502 undocumented opcodes for this failing instruction. Someone should investigate it.
- the apu tests fail on powerpak because they depend on initial bootup state, and powerpak has already changed it for the gui.
[1] Nintendulator notes: Refer to the comments in the spreadsheet
Powerpak notes: http://dl.dropbox.com/u/4260750/permanent/powerpak-nestests.txt
Notes for several emulators: Refer to the comments in appropriate tab of the spreadsheet
Powerpak notes: http://dl.dropbox.com/u/4260750/permanent/powerpak-nestests.txt
Notes for several emulators: Refer to the comments in appropriate tab of the spreadsheet
Editing
Tables have their columns aligned in the source view. The Results table is alright that way, but the Tests table isn't wiki friendly (and has never been, given its width), but it is text editor friendly! So not to get confused and not to miss a cell (there were cases), copy the table you're about to edit to something like Notepad++ (line wrap disabled), change what you need, alight if needed (Alt + vertical selection), and then paste back to wiki.
Results
| apu | cpu | mapper | ppu | misc | demo | total | grade | |
|---|---|---|---|---|---|---|---|---|
| Amount | 40 | 50 | 13 | 45 | 5 | 3 | 156 | 100.0% |
| FCEUX old-ppu | 18 | 35 | 1 | 16 | 5 | 0 | 75 | 48.08% |
| FCEUX new-ppu | 18 | 34 | 2 | 25 | 5 | 0 | 84 | 53.85% |
| QuickNES | 17 | 44 | 10 | 33 | 4 | 0 | 108 | 69.23% |
| RockNES | 34 | 27 | 11 | 42 | 4 | 3 | 121 | 77.56% |
| Famicom AV (+InviteNES) | 34 | 47 | 5 | 32 | 2 | 3 | 123 | 78.85% |
| NES (+PowerPak)** | 29 | 42 | 8 | 44 | 1 | 2 | 126 | 80.77% |
| Famicom AV (+Everdive) | 33 | 44 | 7 | 43 | 2 | 3 | 132 | 84.62% |
| Nintendulator | 36 | 40 | 11 | 40 | 3 | 3 | 133 | 85.26% |
| MyNes | 32 | 47 | 10 | 41 | 4 | 3 | 137 | 87.82% |
| Nestopia | 36 | 47 | 13 | 45 | 4 | 3 | 148 | 94.87% |
| puNES | 40 | 50 | 13 | 45 | 2 | 3 | 153 | 98.08% |
| Mesen | 40 | 50 | 13 | 45 | 5 | 3 | 156 | 100% |
| Bizhawk | 40 | 50 | 13 | 45 | 5 | 3 | 156 | 100% |
** denotes emulators that haven't been tested against full_nes_palette yet.
Tests
| Test ROM | FCEUX(oldPPU) | FCEUX(newPPU) | Bizhawk (2.3) | Mesen | Nestopia | Nintendulator | MyNes | RockNES | puNES | NES (+PowerPak) | Famicom AV (+InviteNES) | Famicom AV (+EverDrive) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| APU tests | ||||||||||||
| apu_mixer/dmc | Fail (r2085) | Fail (r2085) | Pass | Pass | Fail | Fail (0.9.70)[1] | Fail (4.1.4488) | Fail (5.074) | Pass | Test | Pass | Pass |
| apu_mixer/noise | Fail (r2085) | Fail (r2085) | Pass | Pass | Fail | Fail (0.9.70)[1] | Fail (5.0 alpha) | Fail (5.074) | Pass | Test | Pass | Pass |
| apu_mixer/square | Fail (r2085) | Fail (r2085) | Pass | Pass | Fail | Fail (0.9.70)[1] | Fail (4.1.4488) | Fail (5.074) | Pass | Test | Pass | Pass |
| apu_mixer/triangle | Fail (r2085) | Fail (r2085) | Pass | Pass | Fail | Fail (0.9.70)[1] | Fail (5.0 alpha) | Fail (5.074) | Pass | Test | Pass | Pass |
| apu_reset/4015_cleared | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail (powerpak?) | Fail (#2) | ? |
| apu_reset/4017_timing | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.2) | Pass (5.074) | Pass | Fail (powerpak?) | Fail (#2) | Fail (#3) |
| apu_reset/4017_written | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Fail (4.2) | Pass (5.074) | Pass | Fail (powerpak?) | Fail (#2) | Fail (#2) |
| apu_reset/irq_flag_cleared | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail (powerpak?) | Fail (#2) | ? |
| apu_reset/len_ctrs_enabled | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.2) | Pass (5.074) | Pass | Fail (powerpak?) | ? | ? |
| apu_reset/works_immediately | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail (powerpak?) | Fail (#2) | ? |
| apu_test/rom_singles/1-len_ctr | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/2-len_table | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/3-irq_flag | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/4-jitter | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/5-len_timing | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/6-irq_flag_timing | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/7-dmc_basics | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| apu_test/rom_singles/8-dmc_rates | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Fail (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/01.len_ctr | Pass | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/02.len_table | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/03.irq_flag | Fail (r2085) | Fail ($06) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/04.clock_jitter | Fail ($02) (r2085) | Fail ($02) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/05.len_timing_mode0 | Fail ($03) | Fail ($02) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/06.len_timing_mode1 | Fail ($03) | Fail ($02) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/07.irq_flag_timing | Fail ($02) (r2085) | Fail ($02) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/08.irq_timing | Fail ($02) (r2085) | Fail ($02) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/09.reset_timing | Fail ($03) (r2085) | Fail ($03) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.2) | Pass (5.074) | Pass | Pass | Fail ($02) | Fail ($04) |
| blargg_apu_2005.07.30/10.len_halt_timing | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.2) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_apu_2005.07.30/11.len_reload_timing | Fail ($05) (r2085) | Fail ($05) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.2) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dmc_dma_during_read4/dma_2007_read | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Fail (4.1.4488) | Fail (5.074) | Pass | Pass? | Pass | Pass |
| dmc_dma_during_read4/dma_2007_write | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dmc_dma_during_read4/dma_4016_read | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Fail (4.1.4488) | Couldn't open (5.074) | Pass | Pass | Pass | Pass |
| dmc_dma_during_read4/double_2007_read | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass? (0.9.70)[1] | Pass (4.1.4488) | Pass? (5.074) | Pass | Pass? | Pass | Pass |
| dmc_dma_during_read4/read_write_2007 | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dmc_tests/buffer_retained | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass(0.9.70)[1] | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dmc_tests/latency | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) [1] | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dmc_tests/status_irq | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dmc_tests/status | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70)[1] | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| dpcmletterbox/dpcmletterbox | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| volume_tests/volumes | Pass? | Pass? | Pass | Pass | Pass | Pass | Pass? (4.1.4488) | Pass (5.074) | Pass | Test | Pass | Pass |
| CPU tests | ||||||||||||
| blargg_nes_cpu_test5/cpu | Fail | Fail | Pass | Pass | Pass | Fail (0.9.75b)[1] | Pass (5.0 alpha) | Fail (Test 1) (5.074) | Pass | Fail (AB ATX #n) | Fail | Pass |
| blargg_nes_cpu_test5/official | Pass | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| branch_timing_tests/1.Branch_Basics | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| branch_timing_tests/2.Backward_Branch | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| branch_timing_tests/3.Forward_Branch | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_dummy_reads/cpu_dummy_reads | Fail (r2085) | Fail (Error 3) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.2) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_dummy_writes/cpu_dummy_writes_oam | Fail (#6) (r2085) | Fail (#6) (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (5.0 alpha) | Fail (5.074) | Pass | Fail | Fail (#2) | Fail (#2) |
| cpu_dummy_writes/cpu_dummy_writes_ppumem | Pass (r2085) | Fail (#10) (r2333) | Pass | Pass | Pass | Pass (0.9.70) | Fail (#9) (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| cpu_exec_space/test_cpu_exec_space_apu | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Fail (#2) (4.1.4488) | Pass (5.074) | Pass | Test | Fail (#2) | Fail (#2) |
| cpu_exec_space/test_cpu_exec_space_ppuio | Fail (#5) (r2085) | Fail (#5) (r2085) | Pass | Pass | Pass | Fail (#18) (0.9.70) | Fail (#3) (4.1.4488) | Pass (5.074) | Pass | Test | Pass | Pass |
| cpu_interrupts_v2/cpu_interrupts | Couldn't open (r2085) | Couldn't open (r2085) | Pass | Pass | Fail | Fail (0.9.70) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_interrupts_v2/rom_singles/1-cli_latency | Pass | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_interrupts_v2/rom_singles/2-nmi_and_brk | Fail | Fail | Pass | Pass | Pass | Fail (0.9.70) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Fail | Fail |
| cpu_interrupts_v2/rom_singles/3-nmi_and_irq | Fail | Fail | Pass | Pass | Pass | Fail (0.9.70) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_interrupts_v2/rom_singles/4-irq_and_dma | Fail | Fail | Pass | Pass | Fail | Fail (0.9.70) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_interrupts_v2/rom_singles/5-branch_delays_irq | Fail | Fail | Pass | Pass | Fail | Pass (0.9.75b) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass | Pass | Pass |
| cpu_reset/ram_after_reset | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail (powerpak?) | ? | ? |
| cpu_reset/registers | Fail (#3) (r2727) | Fail (#3) (r2727) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail (powerpak?) | Fail (#2) | Fail (#2) |
| cpu_timing_test6/cpu_timing_test | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_misc/instr_misc | Fail (r2085) | Fail (#3) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.2) | Couldn't open (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/01-implied | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/02-immediate | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Fail | Pass |
| instr_test-v3/rom_singles/03-zero_page | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/04-zp_xy | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/05-absolute | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/06-abs_xy | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Fail (0.9.70) | Pass (5.0 alpha) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/07-ind_x | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/08-ind_y | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/09-branches | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/10-stack | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/11-jmp_jsr | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/12-rts | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/13-rti | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/14-brk | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/rom_singles/15-special | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_test-v3/all_instrs | Fail (r2085) | Fail (test 6) (r2085) | Pass | Pass | Pass | Fail (0.9.75b)[1] | Pass (5.0 alpha) | Fail (5.074) | Pass | Pass | Fail | Pass |
| instr_test-v3/official_only | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| instr_timing/instr_timing | Fail (r2085) | Fail (#3) (r2085) | Pass | Pass | Pass | Fail (0.9.75b) | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| other/nestest | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Fail (unofficials) (5.074) | Pass | Test | Pass | Pass |
| nes_instr_test/rom_singles/01-implied | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/02-immediate | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Fail (AB ATX #n) | Fail | Fail |
| nes_instr_test/rom_singles/03-zero_page | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/04-zp_xy | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/05-absolute | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/06-abs_xy | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Fail | Pass (5.0 alpha) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/07-ind_x | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/08-ind_y | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Fail (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/09-branches | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/10-stack | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| nes_instr_test/rom_singles/11-special | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| Mapper-specific tests | ||||||||||||
| exram/mmc5exram | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Fail | Pass |
| mmc3_irq_tests/1.Clocking | Fail (r2085) | Fail (#3) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| mmc3_irq_tests/2.Details | Fail (r2085) | Fail (#2) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Fail (#2) | Pass |
| mmc3_irq_tests/3.A12_clocking | Fail (r2085) | Fail (#4) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Fail (#4) | Pass |
| mmc3_irq_tests/4.Scanline_timing | Fail (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.08) | Pass | Fail | Fail (#5) | Pass |
| mmc3_irq_tests/5.MMC3_rev_A | Fail (r2085) | Fail (#2) (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Fail (#3) (4.1.4488) | Fail (#3) (5.074) | Pass | Fail | Fail (#3) | Pass |
| mmc3_irq_tests/6.MMC3_rev_B | Fail (r2085) | Fail (#2) (r2085) | Pass | Pass | Pass | Fail (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail | Pass | Pass |
| mmc3_test/1-clocking | Fail (r2085) | Fail (#3) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | ? |
| mmc3_test/2-details | Fail (r2085) | Fail (#2) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | ? |
| mmc3_test/3-A12_clocking | Fail (r2085) | Fail (#4) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Fail (#5) | ? |
| mmc3_test/4-scanline_timing | Fail (r2085) | Fail (#9) (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Fail (#2) (4.1.4488) | Pass (5.08) | Pass | Pass | Fail (#2) | ? |
| mmc3_test/5-MMC3 | Fail (r2085) | Fail (#2) (r2085) | Pass | Pass | Pass | Fail (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Fail (#2) | Pass | ? |
| mmc3_test/6-MMC6 | Fail (r2085) | Fail (#2) (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Fail (#3) (4.1.4488) | Fail (#3) (5.074) | Pass | Fail (#2) | Fail (#3) | ? |
| PPU/graphics tests | ||||||||||||
| blargg_ppu_tests_2005.09.15b/palette_ram | Fail | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_ppu_tests_2005.09.15b/power_up_palette | Fail | Fail ($02) (r2085) | Pass | Pass | Pass | Fail (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Fail ($02) | Fail (powerpak?) | Fail ($02) | Fail ($02) |
| blargg_ppu_tests_2005.09.15b/sprite_ram | Fail (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Fail ($02) |
| blargg_ppu_tests_2005.09.15b/vbl_clear_time | Pass | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| blargg_ppu_tests_2005.09.15b/vram_access | Fail | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| nmi_sync/demo_ntsc | Fail (r2085) | Fail (r2085) | Pass | Pass | Fail | Fail (0.9.75b) | Fail (6.2.55) | Fail (5.074) | Fail | Pass | Pass | Pass |
| oam_read/oam_read | Fail (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (66% of time) | Fail | Pass |
| oam_stress/oam_stress | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.2) | Couldn't open (5.074) | Pass | Pass (25% of time) | Fail | Fail |
| ppu_open_bus/ppu_open_bus | Fail (#3) (r2085) | Fail (#3) (r2085) | Pass | Pass | Pass | Fail (0.9.70) | Fail (#2) (4.1.4488) | Fail (#3) (5.074) | Pass | Pass | Pass | Pass |
| ppu_vbl_nmi/rom_singles/01-vbl_basics | Fail (#7) (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| ppu_vbl_nmi/rom_singles/02-vbl_set_time | Fail (r2085) | Fail | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (sometimes) | Fail | Pass |
| ppu_vbl_nmi/rom_singles/03-vbl_clear_time | Fail (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| ppu_vbl_nmi/rom_singles/04-nmi_control | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| ppu_vbl_nmi/rom_singles/05-nmi_timing | Fail (r2085) | Fail | Pass | Pass | Pass | Pass (0.9.70) | Pass (5.0 alpha) | Pass (5.074) | Pass | Pass (80% of time) | Pass | Pass |
| ppu_vbl_nmi/rom_singles/06-suppression | Fail (r2085) | Fail | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (sometimes) | Fail | Pass |
| ppu_vbl_nmi/rom_singles/07-nmi_on_timing | Fail (r2085) | Fail | Pass | Pass | Pass | Fail (0.9.70) | Fail (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| ppu_vbl_nmi/rom_singles/08-nmi_off_timing | Fail (r2085) | Fail | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (50% of time) | Pass | Pass |
| ppu_vbl_nmi/rom_singles/09-even_odd_frames | Fail (#2) (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (66% of time) | Pass | Pass |
| ppu_vbl_nmi/rom_singles/10-even_odd_timing | Fail (#2) (r2085) | Fail #3 | Pass | Pass | Pass | Pass (0.9.75b) | Fail (#3) (4.1.4488) | Pass (5.074) | Pass | Pass (25% of time) | Fail (#2) | Pass |
| scanline/scanline | Pass (r2085) | Pass (r2085) | Fail | Pass | Pass | Fail? (0.9.70)[1] | Fail (6.2.55) | Fail (5.074) | Fail | Test | Fail | Fail |
| scrolltest/scroll | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.70)[1] | Pass (4.1.4488) | Pass (5.074) | Pass | Test | Pass | Pass |
| sprdma_and_dmc_dma/sprdma_and_dmc_dma_512 | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Fail (0.9.75b) | Couldn't open (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprdma_and_dmc_dma/sprdma_and_dmc_dma | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Fail (0.9.75b) | Couldn't open (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/01.basics | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/02.alignment | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/03.corners | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/04.flip | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/05.left_clip | Fail (#3) (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/06.right_edge | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/07.screen_bottom | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/08.double_height | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/09.timing_basics | Fail (#2) (r2085) | Fail #3 | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/10.timing_order | Pass (r2085) | Fail #3 | Pass | Pass | Pass | Pass (0.9.75b) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_hit_tests_2005.10.05/11.edge_timing | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_overflow_tests/1.Basics | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_overflow_tests/2.Details | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_overflow_tests/3.Timing | Fail (#2) (r2085) | Fail #2 | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_overflow_tests/4.Obscure | Fail (#2) (r2085) | Fail #2 | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| sprite_overflow_tests/5.Emulator | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| tvpassfail/tv | Fail | Fail | Fail (needs NTSC filter?) | Pass | Pass (with NTSC filter) | Fail (0.9.70) | Fail (4.1.4488) | Fail (5.074) | Pass (with NTSC filter) | Pass | Pass | Pass |
| vbl_nmi_timing/1.frame_basics | Fail (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| vbl_nmi_timing/2.vbl_timing | Fail (r2085) | Fail (#8) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (not always) | Fail (#4) | Pass |
| vbl_nmi_timing/3.even_odd_frames | Fail (r2085) | Fail (#3) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (not always) | Fail (#2) | Pass |
| vbl_nmi_timing/4.vbl_clear_timing | Fail (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| vbl_nmi_timing/5.nmi_suppression | Fail (r2085) | Fail (#2) | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Fail (#5) | Pass |
| vbl_nmi_timing/6.nmi_disable | Fail (r2085) | Fail #3 | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| vbl_nmi_timing/7.nmi_timing | Fail (r2085) | Fail #2 | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| Miscellaneous tests | ||||||||||||
| PaddleTest3/PaddleTest | Pass (r2085) | Pass (r2085) | Pass | Pass | Pass | Pass | Fail (4.1.4488) | Fail (5.074) | Fail | Test | ? | ? |
| read_joy3/test_buttons | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.70) | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| read_joy3/thorough_test | Pass (r2085) | Pass | Pass | Pass | Pass | Pass (0.9.75b)[1] | Pass (4.1.4488) | Pass (5.074) | Pass | Test | Pass | Pass |
| Demos that require accuracy | ||||||||||||
| full_palette/flowing_palette | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass? (0.9.70)[1] | Pass (4.1.4488) | Pass (5.074) | Pass | Pass (minor artifacts) | Pass | Pass |
| full_palette/full_palette_smooth | Fail (r2085) | Fail (r2085) | Pass | Pass | Pass | Pass? (0.9.70)[1] | Pass (4.1.4488) | Pass (5.074) | Pass | Pass | Pass | Pass |
| full_nes_palette | Fail (2.2.2) | Fail (2.2.2) | Pass | Pass | Pass | Pass (0.9.70) | Pass (5.1) | Pass (5.13d) | Pass | ? | Pass | Pass |