Kulor posted a really interesting GIF in that other thread, and I wanted something I could play around with for myself, test out on my various hardware, tweak the source, etc.
So, I put together a quick demo ROM heavily inspired by the composition of Kulor's GIF, with some art I gathered from OpenGameArt.Org.
- ROM: twoship.sfc
- Source: github
So, I tried to make two versions of a scene, as equivalent as I could to try and make the comparison fair. Pressing B or A switches between "normal" Mode 1 (256x240p) and interlaced Mode 5 (512x480i).
A few notes based on my tests:
- The high resolution contrast really does come through well, even through composite on my CRT which is hardly well focused. I was surprised how good it looks. In some ways it's hard to make a fair comparison, since the low resolution art is necessarily a downscaled version of the high resolution. I feel like some hand work to make cleaner pixel art would improve its showing and make it more fair, but I didn't want to spend too much time on this.
- The effects works best with high contrast. Maybe that's unsurprising, but the nature of the are makes a big difference in that respect. This ship, which doesn't really have a lot of colour variation, but does have a lot of detailed luminance variation, I think gets a much stronger benefit than, e.g. the very colourful and saturated Wind Waker art used in dougeff's test a few days ago.
- I think the 4x memory footprint for the high resolution is a really huge compromise to make. Maybe it's worth it, maybe not... it kinda feels like being knocked back a console generation in terms of environmental variability... but at the same time you can still do a lot with less.
- This demo doesn't do anything to account for odd/even frames, and you definitely get that "windowshade" rippling whenever the vertical scroll shifts against the grain of the fields. If you're going to use this you might want to account for that.
- Interlacing in general has always been mildly irritating to me. I don't know if I just have an overly sensitive persistance-of-vision, but I could always see interlacing jitter on video games. Movies are fine, because they're organic and in motion, but with video games where things are clean and move in straight lines, the feel of the jitter has always been very present for me on interlacing CRTs. For me there's an overall discomfort tradeoff here, maybe equivalent to putting on a pair of 3D glasses.
- Switching between interlaced and not causes all of my modern television devices to lose picture and have to resync over a few seconds. That includes my Framemeister upscaler. Care should probably be taken not to switch interlacing often, and especially not do something important and missable just after a transition. Probably want a very hard pause to wait for user input after any switch like this.
- Of course, interlacing is not a requirement for horizontal high-resolution, and not using it also scales back the memory compromise by half too. I wanted to compare extremes so I didn't include this variation in my test. My Framemeister seems to do fine with 512-pixel rows, though I have seen people streaming with other upscaler hardware that does a very poor job with it.
Edit 1: replaced $33 byte in header with $00 to avoid indicating v3 header.
Edit 2: added a proper checksum to the header.
Edit 3: moved to github