This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Dither patterns in motion look horrible on real hardware?

Dither patterns in motion look horrible on real hardware?
by on (#138562)
I recently got an Everdrive and front-loader and have been testing on a 13" Sony CRT as well as a 60" modern LCD, and on both displays I noticed that dither patterns in motion seems to look quite bad.

Some examples being the blue "Theater" building on the first stage of Batman, and the green foliage at the start of Castlevania 3.
When you walk (scroll the screen), certain patterns become distracting with strobe-like effects.
The catch is that greyscale colors don't have this issue at all.

Does this have something to do with how the PPU hardware creates a signal? Emulators don't feature this.

I've also noticed certain brighter dither patterns have a flicker-like quality to them, almost appearing to strobe.
Re: Dither patterns in motion look horrible on real hardware
by on (#138565)
psc wrote:
Does this have something to do with how the PPU hardware creates a signal?

Yes. I can't tell you the details because I don't understand much about NTSC encoding myself, but it has something to do with the amount of generated color samples not being a multiple of the number of pixels, meaning that colors bleed differently depending on the alignment of the pixels, which changes rapidly when the screen scrolls.

Quote:
Emulators don't feature this.

They do if they include blargg's NTSC filter, which accurately encodes and decodes each scanline like a PPU and a TV would. Nestopia and the recent versions of FCEUX for exemple have this filter available (but not enabled by default).
Re: Dither patterns in motion look horrible on real hardware
by on (#138567)
To save costs, the NES PPU generates the signal directly in the composite domain, with each pixel taking two-thirds of a cycle of the NTSC subcarrier. This means the TV has a harder time separating the luma (brightness information) from the chroma (color information), and they bleed into each other.

Want to see real strobing? Try running my tvpassfail demo on your EverDrive. (Or, if you have a seizure disorder, don't.) This program displays a pattern designed to be the worst case of flicker. On an NTSC NES or Famicom, or on an emulator with NTSC filtering, a flickering word "PASS" will be easy to see. But it'll show nothing discernable on a PlayChoice, an RGB-modded NES, or an emulator without NTSC filtering.
Re: Dither patterns in motion look horrible on real hardware
by on (#138639)
In less technical terms, the NES outputs the picture signal using a method that is simple, acceptable, but not ideal, and a side effect is is that colored pixels have "rounding errors" (pretty much) in the places where they touch other differently-colored pixels horizontally. 50% dithering patterns look like they're covered in glitter because you're seeing a large concentration of these rounding errors. They only shimmer when the screen scrolls because the NES has a special optimization in place that makes still-pictures look better (the optimization being there's no dot-crawl, meaning, the rounding errors are the same on every frame, rather than alternating or "crawling"), and without this optimization, still-pictures with dithering would have the same shimmering glitter effect as when you scroll.
Re: Dither patterns in motion look horrible on real hardware
by on (#138735)
In fact, isn't that optimization reversed in PAL PPUs? Shimmering when still and none when scrolling?
Re: Dither patterns in motion look horrible on real hardware
by on (#138737)
Shouldn't be... PAL PPUs has 341 pixels per scanline and 5 master clock cycles per pixel, for 1705 master clock cycles per scanline, or 284+1/6 chroma periods per scanline. Multiply by 312 scanlines to get 88660 (exactly) chroma periods per field, so the output from the 2C07 should be identical from refresh to refresh ... unlike on the 2C02 where it alternates every other field.
Re: Dither patterns in motion look horrible on real hardware
by on (#138780)
I seemed to remember reading that there was a difference in scroll speed between NTSC and PAL builds of SMB1 due to something like that, although perhaps it was not exactly what I was thinking of (I do remember reading that there is a difference in the phase shifting between PAL and NTSC, or hell maybe I'm just thinking about the difference between rendering on and off such as one sees in Battletoads). My NES knowledge is not as thorough as I'd like :P
Re: Dither patterns in motion look horrible on real hardware
by on (#138812)
PAL Battletoads doesn't even turn on the screen late, it doesn't need to because it's PAL.
Re: Dither patterns in motion look horrible on real hardware
by on (#138841)
On that, I was of course referring to NTSC Battletoads. I know from my C64 days that almost all such systems have heaps more rastertime available in the border on PAL vs NTSC.
Re: Dither patterns in motion look horrible on real hardware
by on (#138987)
Find an emulator that does Blargg NTSC filtering to test this..

See example video file how it looks on those emulators.

Example Video file (7Z)