Messing around with hi-res mode, interlacing, overscan, and fake HDMA. (Plus some bonuses)

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
User avatar
LucianoTheWindowsFan
Posts: 62
Joined: Mon Jun 22, 2020 9:39 am

Messing around with hi-res mode, interlacing, overscan, and fake HDMA. (Plus some bonuses)

Post by LucianoTheWindowsFan »

Hi, Super Famicoders!

So what I did is to use hi-res mode, mixed with interlacing and overscan, so we get a resolution of 512x478. Since it uses overscanning, it gets cropped to 512x448 on NTSC televisions (including mine). This feature isn't implemented on ZSNES, and given that emulator wasn't updated since 2007, it is very unlikely that the emulator will support this.

Tested with BSNES, Mesen-S, SNES9x, ZMZ, and ZSNES (ZSNES works, but doesn't get the effect due to its infamous inaccuracies).

It is only 32 kilobytes (256 kilobits), making it the smallest SNES ROM with a header.

One interesting fact about this mode is that you could use dithering so that the colors could blend in, which creates the illusion of more colors (32,768 total colors to over 2 million total colors). Even some developers used this trick for semi-transparency, such as HAL Laboratory, who used it in Kirby's Dream Land 3, and Blizzard Entertainment, who used it in RPM Racing for higher-resolution maps. That's why I did a fake HDMA gradient to make it smoother.

The ROM for this fake HDMA demo is in the attachment.

And now, here's the bonuses:
  • My Super Famicom (SHVC-001) stopped having sound.
  • You could also interlace sprites by setting bit 0 of $2133, though if using SPEZ, then you must change the sprite's position grid to 8x4, rather than 8x8 as you would expect
Attachments
SNES_13.sfc
(32 KiB) Downloaded 68 times
The SNES is my favorite console, not only because it is an upgrade to the NES, but because it had some quality games as well (e.g. EarthBound and Kirby's Dream Land 3).
User avatar
Nikku4211
Posts: 569
Joined: Sun Dec 15, 2019 1:28 pm
Location: Florida
Contact:

Re: Messing around with hi-res mode, interlacing, overscan, and fake HDMA. (Plus some bonuses)

Post by Nikku4211 »

LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm So what I did is to use hi-res mode, mixed with interlacing and overscan, so we get a resolution of 512x478. Since it uses overscanning, it gets cropped to 512x448 on NTSC televisions (including mine). This feature isn't implemented on ZSNES, and given that emulator wasn't updated since 2007, it is very unlikely that the emulator will support this.

Tested with BSNES, Mesen-S, SNES9x, ZMZ, and ZSNES (ZSNES works, but doesn't get the effect due to its infamous inaccuracies).
No one should be using ZSNES anyway as it's not secure and even for low-end modern computers SNES9x is better.
LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm One interesting fact about this mode is that you could use dithering so that the colors could blend in, which creates the illusion of more colors (32,768 total colors to over 2 million total colors).
It's especially effective when your SNES is NTSC and hooked up to an NTSC TV through composite, where the NTSC artefacts help blend the colours in hi-res mode.

No idea where you got the 2M figure from, though.

Technically, pseudo hi-res can do the trick. If you don't know what that is, I'm getting to that.
LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm Even some developers used this trick for semi-transparency, such as HAL Laboratory, who used it in Kirby's Dream Land 3, and Blizzard Entertainment, who used it in RPM Racing for higher-resolution maps.
Actually, Kirby's Dream Land 3 uses pseudo hi-res, which is different from RPM Racing's real hi-res. Pseudo hi-res has its own bit in SETINI that's independent of the mode used. Kirby's Dream Land 3 normally uses mode 1, and RPM Racing uses mode 5.

As far as results go, on a typical TV using composite, 512px horizontal would have been blurred anyway. Though I guess you can't see the individual pixels on composite, so it did not look pixelated to anyone with composite or RF, so I guess true hi-res has that going for it.
LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm That's why I did a fake HDMA gradient to make it smoother.
Why not convert over some public domain art(like for example any piece of art from 1925 and earlier)?

Yes, you might end up having to tile it because the SNES' VRAM can't fit a full 4BPP 512x448 image with all-unique tiles, but at least you can still take advantage of the smaller pixels and use the extra resolution for both dithering and detail.
LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm And now, here's the bonuses:
  • My Super Famicom (SHVC-001) stopped having sound.
That sucks. Hopefully you can afford a repair.
LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm
  • You could also interlace sprites by setting bit 0 of $2133, though if using SPEZ, then you must change the sprite's position grid to 8x4, rather than 8x8 as you would expect
Yeah, it's pretty cool that sprites can take advantage of the extra vertical resolution, even if they can't take advantage of the extra horizontal resolution.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.
iNCEPTIONAL

Re: Messing around with hi-res mode, interlacing, overscan, and fake HDMA. (Plus some bonuses)

Post by iNCEPTIONAL »

LucianoTheWindowsFan wrote: Mon Dec 27, 2021 2:20 pm Hi, Super Famicoders!

So what I did is to use hi-res mode, mixed with interlacing and overscan, so we get a resolution of 512x478. Since it uses overscanning, it gets cropped to 512x448 on NTSC televisions (including mine). This feature isn't implemented on ZSNES, and given that emulator wasn't updated since 2007, it is very unlikely that the emulator will support this.

Tested with BSNES, Mesen-S, SNES9x, ZMZ, and ZSNES (ZSNES works, but doesn't get the effect due to its infamous inaccuracies).

It is only 32 kilobytes (256 kilobits), making it the smallest SNES ROM with a header.

One interesting fact about this mode is that you could use dithering so that the colors could blend in, which creates the illusion of more colors (32,768 total colors to over 2 million total colors). Even some developers used this trick for semi-transparency, such as HAL Laboratory, who used it in Kirby's Dream Land 3, and Blizzard Entertainment, who used it in RPM Racing for higher-resolution maps. That's why I did a fake HDMA gradient to make it smoother.

The ROM for this fake HDMA demo is in the attachment.

And now, here's the bonuses:
  • My Super Famicom (SHVC-001) stopped having sound.
  • You could also interlace sprites by setting bit 0 of $2133, though if using SPEZ, then you must change the sprite's position grid to 8x4, rather than 8x8 as you would expect
All I'm seeing is a single screen with a colour gradient. Am I missing something? If not, how can I tell this is doing most of the stuff you say, and wouldn't it help to maybe have an actual image or something so I can see the difference from a normal low-res game no using interlacing or overscan and so on? I'm a laymen, so it might just be me that can't see much beyond a colour gradient here.
User avatar
Nikku4211
Posts: 569
Joined: Sun Dec 15, 2019 1:28 pm
Location: Florida
Contact:

Re: Messing around with hi-res mode, interlacing, overscan, and fake HDMA. (Plus some bonuses)

Post by Nikku4211 »

iNCEPTIONAL wrote: Sun Jan 30, 2022 1:22 pm All I'm seeing is a single screen with a colour gradient. Am I missing something?
Nope, the ROM is nothing more than a fake HDMA gradient.
iNCEPTIONAL wrote: Sun Jan 30, 2022 1:22 pm If not, how can I tell this is doing most of the stuff you say, and wouldn't it help to maybe have an actual image or something so I can see the difference from a normal low-res game no using interlacing or overscan and so on? I'm a laymen, so it might just be me that can't see much beyond a colour gradient here.
That's what I was suggesting, that he use public domain art to demonstrate hi-res mode's ability to display extra detail.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.
Post Reply