User talk:Sour: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
Line 3: Line 3:


{| class="wikitable"
{| class="wikitable"
|-
| blargg_nes_cpu_test5 || Similar to cpu_timing_test6 (an older or newer revision?)
|-
|-
| branch_timing_tests || These ROMs test timing of the branch instruction, including edge cases
| branch_timing_tests || These ROMs test timing of the branch instruction, including edge cases
|-
| cli_latency || This ROM tests the CLI and related instructions' delay in taking effect, and related IRQ behavior.
|-
|-
| cpu_dummy_reads || Tests the CPU's dummy reads
| cpu_dummy_reads || Tests the CPU's dummy reads
Line 42: Line 46:
|-
|-
| ppu_open_bus || Tests behavior when reading from open-bus PPU bits/registers
| ppu_open_bus || Tests behavior when reading from open-bus PPU bits/registers
|-
| ppu_read_buffer || Mammoth test pack tests many aspects of the NES system, mostly centering around the PPU $2007 read buffer
|-
|-
| ppu_sprite_hit || Tests sprite 0 hit behavior and timing
| ppu_sprite_hit || Tests sprite 0 hit behavior and timing
Line 70: Line 76:
| apu_reset || Tests initial APU state at power, and the effect of reset.
| apu_reset || Tests initial APU state at power, and the effect of reset.
|-  
|-  
| apu_sweep || Tests NES APU sweep cutoff (silence) thresholds and sweep subtract mode
| apu_sweep || Tests the sweep unit's add, subtract, overflow cutoff, and minimum period behaviors.
|-  
|-  
| apu_test || Tests many aspects of the APU that are visible to the CPU. Really obscure things are not tested here.
| apu_test || Tests many aspects of the APU that are visible to the CPU. Really obscure things are not tested here.
Line 116: Line 122:
|-
|-
| Holy Diver Batman || Detects over a dozen mappers and verifies that all PRG ROM and CHR ROM banks are reachable, that PRG RAM and CHR RAM can be written and read back without error, and that nametable mirroring, IRQ, and WRAM protection work. (by tepples)
| Holy Diver Batman || Detects over a dozen mappers and verifies that all PRG ROM and CHR ROM banks are reachable, that PRG RAM and CHR RAM can be written and read back without error, and that nametable mirroring, IRQ, and WRAM protection work. (by tepples)
|-
| MMC1_A12 || (Not sure?)
|-
|-
| mmc3bigchrram || MMC3 test for large 32kb CHR RAM with NES 2.0 headers
| mmc3bigchrram || MMC3 test for large 32kb CHR RAM with NES 2.0 headers
|-
|-
| mmc3_irq_tests / mmc3_test / mmc3_test_2 || Three different revisions of the same MMC3 scanline counter and IRQ generation tests.
| mmc3_irq_tests  
mmc3_test  
| Three different revisions of the same MMC3 scanline counter and IRQ generation tests.
|-
|-
| serom || Tests the constraints of SEROM / SHROM / SH1ROM variations of the MMC1 boards.
| serom || Tests the constraints of SEROM / SHROM / SH1ROM variations of the MMC1 boards.
Line 132: Line 142:
|-
|-
| test28 || Tests for mapper 28
| test28 || Tests for mapper 28
|-
| vrc6test || VRC6 mirroring tests
|}
|}


== Input Tests ==
== Input Tests ==
{| class="wikitable"
{| class="wikitable"
|-
| allpads || Multiple controller test supporting NES controller, Super NES controller, Famicom microphone, Four Score, Zapper, NES Arkanoid controller, and Super NES Mouse
|-
| mousetest || Test for a Super Famicom mouse wired in a Famicom expansion port as controller 3
|-
|-
| PaddleTest3 || Test for the Arkanoid controller
| PaddleTest3 || Test for the Arkanoid controller
Line 141: Line 157:
| read_joy3 || Various NES controllers tests, including read corruption due to DMC DMA
| read_joy3 || Various NES controllers tests, including read corruption due to DMC DMA
|-
|-
| ruder || "Zap Ruder" - tests Zapper behavior
| ruder || Test for the Zapper, including dual wield but not the serial Vs. variant
|-
| spadtest-nes || Super Nintendo controller test (when connected to a NES)
|-
|-
| vaus_test || Another test for the Arkanoid controller
| vaus_test || Another test for the Arkanoid controller
|}
== Misc Tests ==
{| class="wikitable"
|-
| characterize-vs || VS System tests
|-
| NEStress || Old test - some of the tests are supposed to fail on real hardware.
|-
| oc-r1a || Detects and displays accurate clock rate of the NES
|}
|}

Revision as of 16:06, 7 January 2017

CPU Tests

blargg_nes_cpu_test5 Similar to cpu_timing_test6 (an older or newer revision?)
branch_timing_tests These ROMs test timing of the branch instruction, including edge cases
cli_latency This ROM tests the CLI and related instructions' delay in taking effect, and related IRQ behavior.
cpu_dummy_reads Tests the CPU's dummy reads
cpu_dummy_writes Tests the CPU's dummy writes
cpu_exec_space Verifies that the CPU can execute code from any possible memory location, even if that is mapped as I/O space
cpu_interrupts_v2 Tests the behavior and timing of CPU in the presence of interrupts, both IRQ and NMI; see CPU interrupts.
cpu_reset Tests CPU registers just after power and changes during reset, and that RAM isn't changed during reset.
cpu_timing_test6 This program tests instruction timing for all official and unofficial NES 6502 instructions except the 8 branch instructions (Bxx) and the 12 halt instructions (HLT)
instr_misc Tests some miscellaneous aspects of instructions, including behavior when 16-bit address wraps around, and dummy reads.
instr_test_v5 Tests official and unofficial CPU instructions and lists which ones failed. It will work even if emulator has no PPU and only supports NROM, writing a copy of output to $6000 (see readme). This more thoroughly tests instructions, but can't help you figure out what's wrong beyond what instruction(s) are failing, so it's better for testing mature CPU emulators.
instr_timing Tests timing of all instructions, including unofficial ones, page-crossing, etc.
nestest fairly thoroughly tests CPU operation. This is the best test to start with when getting a CPU emulator working for the first time. Start execution at $C000 and compare execution with a log from Nintendulator, an emulator whose CPU is known to work correctly (apart from some details of the power-up state).

PPU Tests

blargg_ppu_tests_2005.09.15b Miscellaneous PPU tests (palette ram, sprite ram, etc.)
full_palette Displays the full palette with all emphasis states, demonstrates direct PPU color control
nmi_sync Verifies NMI timing by creating a specific pattern on the screen (NTSC & PAL versions)
oam_read Tests OAM reading ($2004), being sure it reads the byte from OAM at the current address in $2003.
oam_stress Thoroughly tests OAM address ($2003) and read/write ($2004)
ppu_open_bus Tests behavior when reading from open-bus PPU bits/registers
ppu_read_buffer Mammoth test pack tests many aspects of the NES system, mostly centering around the PPU $2007 read buffer
ppu_sprite_hit Tests sprite 0 hit behavior and timing
ppu_sprite_overflow Tests sprite overflow behavior and timing
ppu_vbl_nmi Tests the behavior and timing of the NTSC PPU's VBL flag, NMI enable, and NMI interrupt. Timing is tested to an accuracy of one PPU clock.
scanline Displays a test screen that will contain glitches if certain portions of the emulation are not perfect.
sprite_hit_tests_2005.10.05 Generally the same as ppu_sprite_hit (older revision of the tests - ppu_sprite_hit is most likely better)
sprite_overflow_tests Generally the same as ppu_sprite_overflow (older revision of the tests - ppu_sprite_overflow is most likely better)
sprdma_and_dmc_dma Tests the cycle stealing behavior of the DMC DMA while running Sprite DMAs
tvpassfail NTSC color and NTSC/PAL pixel aspect ratio test ROM
vbl_nmi_timing Generally the same as ppu_vbl_nmi (older revision of the tests - ppu_vbl_nmi is most likely better)

APU Tests

apu_mixer Verifies proper operation of the APU's sound channel mixer, including relative volumes of channels and non-linear mixing. recordings when run on NES are available for comparison, though the tests are made so that you don't really need these.
apu_reset Tests initial APU state at power, and the effect of reset.
apu_sweep Tests the sweep unit's add, subtract, overflow cutoff, and minimum period behaviors.
apu_test Tests many aspects of the APU that are visible to the CPU. Really obscure things are not tested here.
blargg_apu_2005.07.30 Tests APU length counters, frame counter, IRQ, etc.
dmc_dma_during_read4 Tests register read/write behavior while DMA is running
dmc_tests ??
dpcmletterbox Tests accuracy of the DMC channel's IRQ
pal_apu_tests PAL version of the blargg_apu_2005.07.30 tests
square_timer_div2 Tests the square timer's period
test_apu_2 11 tests that verify a number of behaviors with the APU (including the frame counter)
test_apu_env Tests the APU envelope for correctness.
test_apu_sweep Tests the sweep unit's add, subtract, overflow cutoff, and minimum period behaviors.
test_apu_timers Tests frequency timer of all 5 channels
test_tri_lin_ctr Tests triangle's linear counter and clocking by the frame counter
volume_tests Plays tones on all the APU's channels to show their relative volumes at various settings of $4011. Package includes a recording from an NES's audio output for comparison.

Mapper-specific Tests

31_test Tests for mapper 31 (with various NES 2.0 headers for PRG ROM sizes)
BNTest Tests how many PRG banks are reachable in BxROM and AxROM.
bxrom_512k_test Similar to the BxROM test in BNTest above.
exram MMC5 exram test
fme7acktest-r1 Checks some IRQ acknowledgment behiaviors of Sunsoft FME-7 that emulators were getting wrong in 2015. (by tepples)
fme7ramtest-r1 Checks how much work ram the Sunsoft FME-7 can access
Holy Diver Batman Detects over a dozen mappers and verifies that all PRG ROM and CHR ROM banks are reachable, that PRG RAM and CHR RAM can be written and read back without error, and that nametable mirroring, IRQ, and WRAM protection work. (by tepples)
MMC1_A12 (Not sure?)
mmc3bigchrram MMC3 test for large 32kb CHR RAM with NES 2.0 headers
mmc3_irq_tests

mmc3_test

Three different revisions of the same MMC3 scanline counter and IRQ generation tests.
serom Tests the constraints of SEROM / SHROM / SH1ROM variations of the MMC1 boards.
Submapper Tests 2_test - Mapper 2, Submappers 0, 1 and 2
3_test - Mapper 3, Submappers 0, 1 and 2
7_test - Mapper 7, Submappers 0, 1 and 2
34_test - Mapper 34, Submappers 1 and 2
test28 Tests for mapper 28
vrc6test VRC6 mirroring tests

Input Tests

allpads Multiple controller test supporting NES controller, Super NES controller, Famicom microphone, Four Score, Zapper, NES Arkanoid controller, and Super NES Mouse
mousetest Test for a Super Famicom mouse wired in a Famicom expansion port as controller 3
PaddleTest3 Test for the Arkanoid controller
read_joy3 Various NES controllers tests, including read corruption due to DMC DMA
ruder Test for the Zapper, including dual wield but not the serial Vs. variant
spadtest-nes Super Nintendo controller test (when connected to a NES)
vaus_test Another test for the Arkanoid controller

Misc Tests

characterize-vs VS System tests
NEStress Old test - some of the tests are supposed to fail on real hardware.
oc-r1a Detects and displays accurate clock rate of the NES