The Old Console Resolution Aspect Ratio Dilemma

320x224 and 256x224, two very confusing resolutions that are supposed to be displayed as 4:3 but obviously aren't.
How does that work you may ask, well here is how I convert them to square pixels based on how crt tv's work.

The NTSC tv standard has a total of 486 lines, what about horizontal resolution? well, that's not well defined, but to not complicate things let's say that the maximum number you can put to it is 720. so 720x486.
From where those 6 extra lines came from you ask? it was always like that, the short story about what happened to them is that digital equipment doesn't like that number because isn't divisible by 16, so those 6 extra lines had to go. Is not like anyone would notice anyway, since those lines where outside of the visible area of a consumer tv.
And so we have our 720x480 that we know and love.

As many may know, old consoles used a trick to produce non-interlaced images with consumer tv's, so out of the 480 usable lines only 240 are available and out of those 240 only 224 are used since less lines = less procesing power needed and those 16 lines where again outside of the visible area of a consumer tv. So we have 720x224 of effective resolution.
Just keep in mind that those 224 vertical lines are doubled (448 with alternating black bars).

720x224 is still too large and old consoles certainly don't have the power to draw as many pixels per line, so let's slash that 720 in half to 360. Remember that the NTSC standard doesn't care about horizontal resolution and that 720 is only the theoretical maximum, but consoles are still digital and need to have a fixed number of pixels per line to draw.

And here is where the funny part begins:
360x224 doesn't sound so bad, it's pretty close to our target but if you fit a 320x224 image into a 360x224 canvas you'll end up with borders at the sides right? well just like with vertical lines, there are horizontal parts of the screen that aren't viewable, but...

Crt tv's are very dumb and no matter what, everything that they display gets stretched or squished to span the whole screen including the non visible areas.
We already said that old consoles generate borders around the image and so the effective resolution is 320x224, but that the full resolution they are feeding to the tv is actually 360x240 to account for the non-visible area. Well we have a problem there, tv's are 4:3 so those 360 horizontal "pixels" are too wide and are squished to fit so 360 gets compresed to 320 (the scaling ratio is of 1.125, keep that number in mind) and in turn the 320x224 the console is actually drawing is also squished and now is 284x224 (all rounded to the nearest pair number).
To sumarize, the math is:
Total horizontal resolution: 360 / 1.125 = 320
Effective horizontal resolution: 320 / 1.125 = 284
Vertical resolution: no change since the vertical resolution is fixed and given by the console: 224.

Left: example without aspect correction.
Right: example with aspect correction.
View attachment 178917 View attachment 178918
View attachment 178919 View attachment 178920
Next time you play on a crt tv notice how the circle around Sonic becomes an oval.

Hey, that's not 4:3, you liar. Indeed isn't, is 71:56, but that's the funny part of all of this.
When I compare the output of my wii running a genesis game with my raspi (which can only output 720x240 in non-interlaced mode) running a genesis emulator using the same numbers used above I get exactly the same image and aspect ratio (as far as I can see).

Same thing when I do the same with snes/genesis low res.
The math is mostly the same, the difference is that there is less border so the image gets stretched instead of squished, that changes the scaling ratio to 1.111~ (better use 1.112 and round as always).
Total horizontal resolution: 288 * 1.112 = 320
Effective horizontal resolution: 256 * 1.112 = 284

Just remember that all this applies to NTSC and that crt tv's don't use square pixels, so don't really change the resolution of the image like the math suggests, they just change the aspect ratio by squishing/stretching the image.

I learned all of this while creating my crt configurations for Raspberry Pi running RetroPie.
  • Like
Reactions: 6 people

Comments

I am going to have flashbacks of filming a perfect circle on a camcorder and recreating it on screen at this rate.
 
  • Like
Reactions: 1 person
Interesting. All in all tho nothing beats the crt for snes. All these fancy screen emulation tricks still cant tough a crt. I prefer the way crts smooth out everything. CRTs aint perfect but they will always offer a true retro experiance. I always say to the noobs that think they know retro " If your not using a crt for retro, you aint doing it right".
 
Don't play street fighter 2 on the megadrive/snes, it also doesn't have the proper resolution the console supposed to output. :ninja:
 
@Captain_N Maybe so, but if you're not using something like the Sony Trinitron HD CRT TV, it can be a PITA to get certain consoles with certain HDMI cords that aren't the OEM ones *coughs in my hacked OG Xbox*. I was considering putting a CRT into a spare bedroom for the my nephews and nieces as per my parents wanting them to have their own room to retreat to as opposed to yours truly's mess of cords that are all connected to various delicate pieces of equipment that, knowing kids, they'd break something and create more trouble by not being in my room supervised, but while the Saturn plays nicely with the CRT (Saturn emulation on an ODroid XU4 is on shaky ground in my experience), I realized any system that's been connected to my 50" for some time now with support for resolutions past 480i for the particular CRT I'm borrowing atm run a risk of frying the screen, something that my older brother would use whatever Tae Kwan Do he remembers to smash my face through the TV screen in! XD
 
  • Like
Reactions: 1 person
@Captain_N well, that was actually the point of my research.
I wanted to create configs to make the raspi output a image as close to real hardware as possible.
as of now I dare to say that if I were to put a crt tv with a raspi and my configs in front of you, you wont be able to tell that isn't a real snes unless another crt tv with a real snes is right beside it.
this pictures are from back when I released my configs and are a little less precise, but show well that you can imitate the output of game consoles very closely.
 
704x480

720 is a little wider to capture signals in case of sync shift, and recenter before broadcast. The are still only 704 pixels on a scan line.



Edited because I realized you were talking about displaying on a CRT
 
  • Like
Reactions: 1 person
720x480 mentioned here, is actually 3:2, lots of DVD authors make the players play it in 4:3, DAR == Display Aspect Ratio, SAR == Storage Aspect Ratio.
Its SAR is 3:2, its DAR is 4:3. For example, American Dad/Family Guy NTSC DVD's are actually 3:2, and are animated in 3:2, but for some reason are told to play in 4:3 yet they shouldnt be.
 
@SG854
704x480

720 is a little wider to capture signals in case of sync shift, and recenter before broadcast. The are still only 704 pixels on a scan line.
I'm no expert but that seems to apply only to broadcast television (and RF I guess), I'm not talking about that here but a signal being feed directly to the tv (via composite in my case), so 720 is possible.

that and the raspi only outputs 720x480 (skipping every other line in non-progressive mode) while consoles use custom modes (pixel clock and that stuff), so I had to adjust everything around that limitation.

EDIT: btw thanks.
by making me look this once again I came across this page and made me realize that I wasn't scaling 304x224 neogeo games correctly.
 

Blog entry information

Author
Sakitoshi
Views
996
Comments
18
Last update

More entries in Personal Blogs

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: I always thought that capcom shuffled the games in these collection, but apparently they are all...