Non-Official PPU Rendering

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Non-Official PPU Rendering
by on (#7217)
Does anyone know of any emulators that ignore the brad taylor rendering docs and just render the whole screen at a time or execute 113 CPU CC's then draw the whole scanline etc. etc.

by on (#7218)
I don't think any emu does the whole screen at once (since most games do some kind of split-screen effect). However many emus have scanline-based rendering. In fact most/all older emus (the ones made before BT's doc came out)... like NESticle, and the Nester family. Older versions of FCEU (not newer ones though), probably loopyNES, fwNES. Maybe even NESten.

by on (#7246)
PocketNES, a Free NES emulator for Game Boy Advance by the developer of loopyNES, is scanline-based. Because it's running on a 16.8 MHz CPU, it maps NES video onto GBA video hardware: tiles into tiles, sprites into sprites, palettes into palettes, and timed $2000/$2001/$2005/$2006 writes into HDMA to DISPSTAT, BG0CNT, BG0HOFS, and BG0VOFS. But because the GBA always uses VRAM, it has to do some trickery to get VROM banking to work. And because the GBA PPU runs asynchronously of the emulated NES CPU, it can't do mid-scanline effects (MMC2/MMC4 banking, timed writes to $2000, timed writes to mapper, etc), and because of limitations in raster DMA, it uses the same sort of palettes-onto-palettes mapping that Nesticle used, which might preclude mid-screen palette effects.

At least Jaleco considered PocketNES accurate enough for a classics collection on the GBA, even if Nintendo does use its own emulator (called "acNES" by pirates) for Animal Crossing, e-reader cards, and the Classic NES Series.