Emulator tests: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
(→Hard-To-Emulate Games: twinkle twinkle little star) |
m (1 revision: Rest of pages not related to reference) |
Revision as of 04:22, 13 June 2009
There are many ROMs available that test an emulator for problems.
Validation ROMs
Multiple
- NEStress partially tests PPU, CPU, and controller operation (old; some tests seem to always fail)
- Blargg's test ROMs partially test APU, misc PPU behavior, sprite 0 hit, and MMC3 operation. Refer to PPU Frame Timing for new information that the PPU ROMs test.
CPU
- nestest fairly thoroughly tests CPU operation (see readme for more)
- Branch Timing test ROMs
PPU
- Sprite 0 Hit test ROMs
- Misc PPU Tests
- PPU VBL/NMI Timing test ROMs
- PPU sprite overflow flag timing tests ($2002 bit 5), covering general operation, timing, and obscure pathological behavior (discussion).
- tvpassfail: NTSC color and NTSC/PAL pixel aspect ratio test ROM
Mapper
- MMC3 IRQ Counter test ROMs
Hard-To-Emulate Games
- Balloon Fight relies on reading the nametables through PPUDATA to twinkle the stars in the background. (The code is at $D603.)
- Among the most popular NROM games, which are generally the first targets against which an emulator author tests his or her work, Super Mario Bros. is probably the hardest to emulate. It relies on JMP indirect, correct palette mirroring, sprite 0 detection, the 1-byte delay when reading from CHR ROM through PPUDATA, and proper behavior of the nametable selection bits of PPUCTRL and PPUADDR.[1] In addition, there are several bad dumps floating around, some of which were ripped from pirate multicarts whose cheat menus leave several key parameters in RAM.
- Adventures of Lolo 2, Spelunker rely on 1 cycle NMI delay when PPUSTATUS bit 7 gets set inside vblank (if PPUSTATUS has not been read yet)
- Battletoads needs precise CPU and PPU timing
- Bee 52 needs accurate DMC timing and relies on PPUSTATUS bit 5 as well
- Cobra Triangle, Iron Sword relies on the dummy read for the sta $4000,X instruction to acknowledge pending APU IRQs.
- Fire Hawk needs accurate DMC timing and does mid-frame palette changes
- Micro Machines requires correct values when reading PPU $2004 during rendering, and also relies on proper background color selection when rendering is disabled and the VRAM address points to the palette
- Ms. Pac-Man (Tengen) relies on being able to read PPUSTATUS bit 7 as true before NMI occurs
- Super Mario Bros. 3 relies on an interaction between the sprite priority bit and the OAM index to put power-ups behind blocks
Game Bugs lists games that have glitches on NES hardware, so you won't go "fixing" them while breaking your emulator.