Filter: #all #release #emulation #programming #untagged Archive
bsnes Fast PPU Scanline Timings2019-08-23 15:15:09
An interesting detail with SNES emulation is that a dozen or so games write to the display registers a bit early or a bit late into scanlines, and with a pixel-based renderer, it doesn't end up mattering because the overshoot portion of the scanline was invisible. Think something like a background layer showing status text overlaying another background.
The answer is a pixel-based renderer, but that is of course much slower than a scanline-based renderer.
When it comes to scanline rendering, we have to pick a specific cycle to render at. But there is no universal value that works for all games, so traditionally after years of testing, cycle 512 was determined to be the most compatible location.
But for the few games where this still doesn't work, rather than require this performance penalty for accurate emulation, I've decided to include per-game rendering position information so that every game other than Air Strike Patrol will render 100% correctly out of the box with bsnes.