User talk:Sour: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
No edit summary |
|||
Line 4: | Line 4: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| branch_timing_tests || | | branch_timing_tests || These ROMs test timing of the branch instruction, including edge cases | ||
|- | |- | ||
| cpu_dummy_reads || | | cpu_dummy_reads || Tests the CPU's dummy reads | ||
|- | |- | ||
| cpu_dummy_writes || | | cpu_dummy_writes || Tests the CPU's dummy writes | ||
|- | |- | ||
| cpu_exec_space || | | 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 || | | cpu_interrupts_v2 || Tests the behavior and timing of CPU in the presence of interrupts, both IRQ and NMI; see CPU interrupts. | ||
|- | |- | ||
| cpu_reset || | | cpu_reset || Tests CPU registers just after power and changes during reset, and that RAM isn't changed during reset. | ||
|- | |- | ||
| cpu_timing_test6 || | | 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 || | | instr_misc || Tests some miscellaneous aspects of instructions, including behavior when 16-bit address wraps around, and dummy reads. | ||
|- | |- | ||
| instr_test_v5 || | | 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 || | | instr_timing || Tests timing of all instructions, including unofficial ones, page-crossing, etc. | ||
|- | |- | ||
| nestest || | | 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). | ||
|} | |} | ||
Revision as of 14:46, 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 | |
full_palette | displays the full palette with all emphasis states, demonstrates direct PPU color control |
nmi_sync | |
oam_read | |
oam_stress | |
ppu_open_bus | |
ppu_sprite_hit | |
ppu_sprite_overflow | |
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 | |
sprite_hit_tests_2005.10.05 | |
sprite_overflow_tests | |
sprdma_and_dmc_dma | |
tvpassfail | NTSC color and NTSC/PAL pixel aspect ratio test ROM |
vbl_nmi_timing |
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. |