Hello.
Let’s start fresh and anew, this thread will be a common spot for those wanting to play the games how they were supposed to be played (instead of how you used to play them). Aspect ratio has an incidence on how you play and the experience you take specially on reaction based gameplays (easy example, predicting the path of a moving diagonal shot/object). I hope this is a positive thread with users alike adding positive and informative data and opinions on what correct geometry said game/system should run.
Here you can add your screenshots and ask for help. I will keep adding images and systems. Try to look for things that you think should be perfectly round (wheel, planets…) or square (some boxes, HUD), and add the applied aspect ratio you used for the image based on the below guidelines:
Although not 100% correct, here I will talk in pixels and resolutions instead of frequencies, for the sake of comprehension. There are 2 types of resolutions for retro games. Full signal with a height of 240 pixels, which is what the original hardware used as output (because it’s what matches NTSC TVs height resolution) and cropped signal, commonly 224 pixels, which is what most emulators do (included RetroArch). Width varies upon system depending on sported CPU and its clock rate. The reason why some emulators crop the signal (read as resolution) is because on the original there was a vertical normally black padding that was ultimately being hidden by the TVs overscan, so this is thought to be useless data. This padding is technically referred by the NAB acronym and also present on commercial DVDs. Overscan is used on old CRT TVs to hide signal artifacts, and surprisingly new LCDs also make use of overscan by default, although you can remove that if you access TVs service menu. This padding also was a way to comply to the 240 pixels height, so some systems would only render at 192 pixels high, but pad to 240 to comply to NTSC.
So we have two vertical resolution variants for each system, with and without NAB. And then we have many width resolution variants one (or so) for each system. Actually not so many since many share video chip. Here you can find the clock rates that give number to the width, although no resolution is given but that is a known bit you can find elsewhere, what is important to know is the PAR value. PAR is the difference in height and width within a pixel, or in other words the ratio in which a pixel is not square. This can be as literal as it sounds where images do have rectangular pixels, or in a figurative manner where the PAR defines the ratio in which the image would look before the anamorphic scale (presumably geometry correct).
This second definition is the kind of PAR we have. This target aspect ratio is roughly (I’m not technically versed) the difference in approximation in which the clock rate needs to show a 1:1 square pixel compared to industry standard frequencies. (Check here on D2: “industry standard”)
For example, using Snes, genesis, etc clock rate. (display freq/interlacing) / system clock rate = PAR (12.272727 MHz /2) / 5.37 MHz = 1.14 = 8:7
What is not widely known are system clock rates (haven’t found reliable specs outside the Pin Eight page linked above). Active area is easy to know since it is the typical height resolution that you can find specced for any system in wiki pages, etc. Real output resolution would always pad that active area to 240px for NTSC compliant height. With PAR values active area looks kind of unnecessary, but there are cases where the ratio scaling (DAR not PAR) needs to be done without the NAB to be geometry correct, this might be due to odd decisions on the game’s development stage, but the only way for us to know is by testing said DAR to with and without NAB resolutions and decide which one looks best, although I’m yet to find one example that agrees with this.
*: Stands for presumably correct geometry. Note: because RetroArch doesn’t allow the output of the full signal, screenshots have them removed (that’s why height is never a multiple of 240 but 224 instead)
Super Nintendo Entertainment System Full(256x240) Active(256x224) (12.272727 MHz /2) / 5.37 MHz = (1.14 = 8:7) 256*(8/7)x240 = 293x240 (8:7 PAR with NAB) 1* 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)2 224*(4/3)x224 = 299x224 (4:3 DAR without NAB)1 256x240 = 256x240 (1:1 PAR with NAB)2* note: Some games had different/esoteric resolutions to accommodate to some neat effects. These are only a few but it would only affect on the DAR screenshots in any case.
These are all the combinations we need to try before judging which one we would stay with. In case of snes and genesis, developers didn’t burn their brains much. They drew everything at a 1:1 ratio (most games) regardless of how it ended being looked on real displays. With rare exceptions, F-Zero, Mortal Kombat, Street Fighters, etc were developed correctly with deviation on mind and should use the first case 293x240. In practice it doesn’t matter whether you use 224 or 240 for height, when using PAR height size is not a relevant figure.
Sega Genesis H40 mode Full(320x240) Active(320x224) (12.272727 MHz /2) / 6.71 MHz = (0.914 = 32:35) 320*(32/35)x240 = 293x240 (32:35 PAR with NAB)12 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)1*2* 224*(4/3)x224 = 299x224 (4:3 DAR without NAB)12 320x240 = 320x240 (1:1 PAR with NAB)1*2*
H32 mode (list of games) Full(256x240) Active(256x224) (12.272727 MHz /2) / 5.37 MHz = (1.14 = 8:7) 256*(8/7)x240 = 293x240 (8:7 PAR with NAB)1122 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)1122 224*(4/3)x224 = 299x224 (4:3 DAR without NAB)1122 256x240 = 256x240 (1:1 PAR with NAB)1*1*2*2* note: some ports from snes or other consoles had resolution untouched so to comply to the original sprite geometry picture was drawn at 5.37 Mhz (H32 mode) making it 8:7 PAR.
Nintendo Entertainment System Full(256x240) Active(256x224) (12.272727 MHz /2) / 5.37 MHz = (1.14 = 8:7) 256*(8/7)x240 = 293x240 (8:7 PAR with NAB)111 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look) 224*(4/3)x224 = 299x224 (4:3 DAR without NAB) 256x240 = 256x240 (1:1 PAR with NAB)1*1*1*
Nintendo Famicom Disk System Full(256x240) Active(256x224) (12.272727 MHz /2) / 5.37 MHz = (1.14 = 8:7) 256*(8/7)x240 = 293x240 (8:7 PAR with NAB)12 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look) 224*(4/3)x224 = 299x224 (4:3 DAR without NAB) 256x240 = 256x240 (1:1 PAR with NAB)1*2*
Sega Master System Full(256x240) Active(256x192) (12.272727 MHz /2) / 5.37 MHz = (1.14 = 8:7) 256*(8/7)x240 = 293x240 (8:7 PAR with NAB)11*1* 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)1*11 192*(4/3)x192 = 256x192 (4:3 DAR without NAB) 256x240 = 256x240 (1:1 PAR with NAB)111
Game Gear (GG is based on Master System hardware so except this one all handhelds are 1:1 PAR) Full(256x240) Active(160x144) (12.272727 MHz /2) / 5.37 MHz = (1.14 = 8:7) 160*(8/7)x144 = 183x144 (8:7 PAR)1*1*22 160*(4/3)x144 = 192x144 (4:3 DAR with NAB, old GG look) 160x144 = 160x144 (1:1 PAR)112*2* note: full signal is 256x240 (hardware is practically master system’s), but the same is cropped before reaching screen and probably after having the signal corrected for the 8:7 PAR natural of the master system -assuming GG’s screen is square pixels-). edit: the signal is not corrected to 8:7 PAR but to 4:3 DAR to judge by some real GG screenshots. It tries to mimic how the master system looks on CRT, whether that’s right or wrong. Some games though (arguably master system ports) are geometry correct at 8:7, while GameGear exclusives are indeed 1:1 PAR.
Sega Saturn (We don’t know but I suspect it’s the same as many of the previous systems; 8:7) Full(320x240) Active(320x240) (12.272727 MHz /2) / 5.37 MHz? = (1.14 = 8:7) ? 320*(8/7)x240 = 366x240 (8:7 PAR with NAB) (All mostly fall into this ratio, still shots to add) 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look) 240*(4/3)x240 = 320x240 (4:3 DAR without NAB) 320x240 = 320x240 (1:1 PAR with NAB)
CPS3 Full(384x240) Active(384x224) (12,272727 MHz /2) / 7.50 MHz = (0.81 = 9:11) 384*(9/11)x240 = 314x240 (9:11 PAR with NAB)1*2* 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)12 224*(4/3)x224 = 299x224 (4:3 DAR without NAB) 384x240 = 384x240 (1:1 PAR with NAB)
CPS1, CPS2 Full(384x240) Active(384x224) (12,272727 MHz /2) / 8.0 MHz = (0.767 = 135:176) 384*(135/176)x240 = 295x240 (135:176 PAR with NAB)111122 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)1*1*1*1*2?2? 224*(4/3)x224 = 299x224 (4:3 DAR without NAB)2?2? 384x240 = 384x240 (1:1 PAR with NAB)
SNK Neo Geo Full(320x240) Active(320x224) (12,272727 MHz /2) / 6.0 MHz = (1.02 = 45:44) 320*(45/44)x240 = 327x240 (45:44 PAR with NAB)1 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look) 224*(4/3)x224 = 299x224 (4:3 DAR without NAB)11 320x240 = 320x240 (1:1 PAR with NAB)1*1*
SNK Neo Geo games with horizontal padding. Full(320x240) Active(304x224) (12,272727 MHz /2) / 6.0 MHz = (1.02 = 45:44) 320*(45/44)x240 = 327x240 (45:44 PAR with NAB) 304*(45/44)x224 = 311x224 (45:44 PAR without NAB)11 240*(4/3)x240 = 320x240 (4:3 DAR with NAB, old TV look)1*1* 224*(4/3)x224 = 299x224 (4:3 DAR without NAB) 320x240 = 320x240 (1:1 PAR with NAB)1*1* note: most games make use of whole horizontal resolution, but this would leave you with a letterbox type of image, to optimize screen (4:3) area many games also added horizontal padding to compensate (ie mslug series). As with other systems designers might have accounted for the system clock rate in order to draw sprites, but here changing horizontal active area (not usual) has an effect on PAR, so as we don’t know which both of active areas designers aimed at I include both.
GameCube NTSC - DAR 4:3 (12,272727 MHz ) / 13.5 MHz = (0.909 = 10:11)
GameCube PAL - DAR 4:3 (12,272727 MHz ) / 14.75 MHz = (0.832 = 104:125)
##################################################
Settings to get the above “correct” ratios working on your config, with integer scaling and centered on a 1080 display. First set “Aspect Ratio” to “Custom” and Integer to OFF (we will input integer manually at least for the vertical resolution which is important for the scanlines). The commented ( entries are not necessary since by default RetroArch allows the 1:1 ratio option.
You will just need to swap figures for the next parameters: custom_viewport_width = “1256” custom_viewport_height = “896” custom_viewport_x = “12” custom_viewport_y = “64”
Integer (vertical) and centered for 1080p: snes:1170x896 (8:7) (x=375, y=92) ;snes:1024x896 (1:1) (x=448, y=92)
;genesis(H40):1280x896 (1:1 & 4:3) (x=320, y=92)
master system:1463x960 (8:7) (x=228, y=60) gamegear:1280x1008 (8:7) (x=320, y=36)
cps3:1257x896 (9:11) (x=332, y=92) cps1,cps2:1280x896 (4:3 w/ NAB) (x=320, y=92)
;neogeo:1280x896 (1:1) (x=320, y=92)
PD: if you want to correct or add something, please be polite and stay on topic.