User talk:Sour: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
Line 31: Line 31:
{| class="wikitable"
{| class="wikitable"
|-
|-
| blargg_ppu_tests_2005.09.15b||  
| 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
| full_palette || Displays the full palette with all emphasis states, demonstrates direct PPU color control
|-
|-  
| nmi_sync ||  
| nmi_sync || Verifies NMI timing by creating a specific pattern on the screen (NTSC & PAL versions)
|-
|-
| oam_read ||  
| oam_read || Tests OAM reading ($2004), being sure it reads the byte from OAM at the current address in $2003.
|-
|-
| oam_stress||  
| oam_stress || Thoroughly tests OAM address ($2003) and read/write ($2004)
|-
|-
| ppu_open_bus ||  
| ppu_open_bus || Tests behavior when reading from open-bus PPU bits/registers
|-
|-
| ppu_sprite_hit ||  
| ppu_sprite_hit || Tests sprite 0 hit behavior and timing
|-
|-
| ppu_sprite_overflow ||  
| 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.
| 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 ||
| scanline || Displays a test screen that will contain glitches if certain portions of the emulation are not perfect.
|-  
|-  
| sprite_hit_tests_2005.10.05 ||  
| 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 ||
| 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 ||
| 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
| tvpassfail || NTSC color and NTSC/PAL pixel aspect ratio test ROM
|-
|-
| vbl_nmi_timing ||  
| vbl_nmi_timing || Generally the same as ppu_vbl_nmi (older revision of the tests - ppu_vbl_nmi is most likely better)
|}
|}



Revision as of 14:52, 7 January 2017

CPU Tests

branch_timing_tests These ROMs test timing of the branch instruction, including edge cases
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_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 NES APU sweep cutoff (silence) thresholds and sweep subtract mode
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

Misc Tests