Request Support for Games with Non-standard Aspect Ratios
#1
Hello. Long post, sorry. I would like to request an expansion of the fullscreen aspect ratio option in PCSX2 to properly display certain PS2 games with non-standard aspect ratios.

This issue has been mentioned before in the following threads but I would like to explain it more in detail because I am not sure if everyone understands what is happening.

http://forums.pcsx2.net/Thread-Custom-as...ght=aspect

http://forums.pcsx2.net/Thread-Aspect-Ra...ght=aspect

The PS2 was designed to display a 4:3 aspect ratio for television viewing. Any PS2 game with additional 16:9 support basically compressed the 4:3 image so that the game would have non-distorted dimensions when the 4:3 signal was stretched out by a widescreen television. So PCSx2 has two main aspect ratios that it supports in fullscreen which are 4:3 and 16:9. It also has the ability to stretch the image to the aspect ratio of your current display resolution.

However, while outputting in 4:3, certain PS2 games were actually designed to be viewed in non-4:3 and non-16:9 aspect ratios. This was done with letterboxing (horizontal black bars) and was almost certainly done for performance issues. The letterboxes can be of different sizes depending on the game. This information has to be located somewhere on the game disc. Due to overscan I imagine a lot of users never even noticed them. They are much easier to notice on modern televisions/displays.

I don't have many PS2 games but of the 20 or so I tested the following had some form of letterboxing.

Final Fantasy X International (NTSC JP)
Final Fantasy X-2 International (NTSC JP)
Shining Force Neo (NTSC US)
Shining Force EXA (NTSC US)

I am fairly certain the US versions of FFX and FFX-2 also have letterboxing IIRC. None of these games natively support a 16:9 aspect ratio.

When PCSX2 uses the 4:3 option for fullscreen or windowed mode with these games it does not show the letterboxing or match the wider than 4:3 aspect ratio for which these games were designed. This results in the images being stretched vertically which is most obvious when observing that all the circles and squares have become narrower and are not equidistant from their centers.

Here are comparison pics from a PS2 running on an HDTV. I had difficultity keeping the camera in the exact position but the differences in aspect ratios should be obvious when compared to the baseline pic of a game that uses the full 4:3 aspect ratio. Look at the difference between the bottom Sony logo and the bottom of the game screens.


4:3 Baseline
[Image: baselineps2talesoftheab.th.jpg]

FFX International
[Image: finalfantasyxinternatio.th.jpg]

FFX-2 International
[Image: finalfantasyx2internati.th.jpg]

Shining Force EXA
[Image: shiningforceexaps2.th.jpg]

Shining Force Neo
[Image: shiningforceneops2.th.jpg]


Now compare these to the PCSX2 pics. The PCSX2 images are narrower than the original PS2 pics. The sphere in the two FFX-2 pics is the best example I see.


FFX International
[Image: finalfantasyxinternatio.th.jpg]

FFX-2 International
[Image: finalfantasyx2internatik.th.jpg]

Shining Force EXA
[Image: shiningforceexapcsx2.th.jpg]

Shining Force Neo
[Image: shiningforceneopcsx2.th.jpg]


To display correctly the PCSX2 pics need to be stretched wider than a 4:3 aspect ratio but we need to know the actual aspect ratio that was used by the developers to be accurate.

The native resolution for FFX and FFX2 are both 512x416. This is a 1.233~ aspect ratio which is narrower than a 4:3 (1.333~) aspect ratio so native resolution was no help. FMVs are often compressed and then stretched out when displayed to save space so I couldn't use them either.

So the only two ways I can think of getting the actual intended aspect ratio is by finding the actual letterboxing data on the game discs or by running a PS2 through a device that can take screenshots of the original signal and then count up the viewable pixel dimensions to get the aspect ratio. I have no such device.

If this information can be found on the game discs PCSX2 could then modify its "Standard (4:3)" option to automatically use the originally intended aspect ratio for any game that uses non-standard aspect ratios.

Another option would be to allow a custom aspect ratio field that works in fullscreen and windowed mode where the horizontal and vertical resolutions or the floating point value of the aspect ratio can be entered. Remember for square-pixel games, (HorizontalResolutionX) / (VerticalResolutionY) = (Aspect Ratio).

640 / 480 = 1.333~ = 4:3
1280 / 720 = 1.777~ = 16:9
ResX / ResY = Decimal Aspect Ratio = ResX:ResY

The second option would be useful in that it would allow any potential game to have the correct aspect ratio in fullscreen without needed additional coding in PCSX2 but it is less user friendly. It would also require a list of the PS2 games which have non-4:3/16:9 aspect ratios with the actual values.

For example, someone takes a progressive scan game (Game X) and uses a video capture card to get the actual viewable resolution which is 640x450.

Game X
640 / 450 = 1.422~ = 640:450 = 64:45 (Reduced Ratio/Fraction)

They could then enter the data in custom aspect ratio fields which PCSX2 would then use instead of the 4:3 or 16:9 aspect ratio.

"Enter Horizontal and Vertical Resolution of game or decimal form of aspect ratio"
"Horizontal Resolution [] Vertical Resolution [] or Decimal AR []"

When one side of the field is filled out PCSX2 could then calculate the other side for the user.

"Horizontal Resolution [640] Vertical Resolution [450] or Decimal AR [1.4222222]"



Please ask if you have any questions. I am unsure how well I explained everything and I would be happy to help if I can. Thank you.



Reply

Sponsored links

#2
nice post. I skipped halfway. what you really want? precision? or what? else there's a basic aspect ratio selector in the GS window settings. I'm sure the internal of GS does aspect correct output. if that's not working there are button combos to zoom in or out slightly or squezze the picture in case you really have a problem with letterboxes or black sides. It'll turn out it works and should be enough. Wink
Reply
#3
First of all, most of the time, the native resolution is NOT the native aspect ratio of the image (e.g. many games have resolution of 512x512 but are displayed correctly at 4:3 or 16:9).

As for your request:

Best solution would be to fix PCSX2 such that it correctly recognizes and displays the proper aspect ratio. But until this happens, you can use this:

- If NOT using full-screen, you can use "Stretch to window" and set the window to the size and AR you desire.

- If you ARE using full screen, then you can set arbitrary aspect-ratio using the zoom and vertical-stretch controls, with one caveat - the vertical-stretch value is not saved when you exit PCSX2 (it was added as an experimental feature, and stayed that way).

Zoom: either via the GS window config tab or using CTRL+ [NUMPAD-PLUS/MINUS]. CTRL+[NUMPAD-*] toggles between 100% size and auto-zoom (= over zoom which removes black borders, useful for 16:9 games on 16:10 screens).

Vertical-stretch: CTRL+ALT+[NUMPAD-PLUS/MINUS], and if used with [NUMPAD-*], it resets the stretch.

You can also move the image around using CTRL+ALT+ARROWS (and reset to center with CTRL+ALT+[NUMPAD-/]).

Vertical stretch and Image position are not saved when exiting PCSX2. Zoom IS saved.

Hope this helps.


Reply
#4
Fully understanding what the SAR should be means fully understanding all of the undocumented GS registers (SMODE1, SYNC1, SYNC2, SYNCV), and how they generate video timings. As far as I know, this knowledge does not exist.




But commercial games use one of a small set of pre-canned timings, so with only a few experimental results you should be able to figure out the appropriate SAR for just about any game.

The pre-canned timings that the PS2 uses for NTSC games are a height of 480i or 240P and pixel widths of 256, 320, 384, 512, and 640. Any other display resolution you see in PCSX2 and a commercial NTSC game besides one of these is in fact one of these but with black padding added around the borders. What that means is that if you know the appropriate PAR (pixel aspect ratio) for the base resolution, you can easily compute the appropriate SAR (screen aspect ratio) for any of the derived resolutions.


Example:
Final Fantasy X requests a display resolution of 512x416. Final Fantasy XII requests a display resolution of 512x448. Both of these use the same baseline 512x480 resolution. The 512x480 resolution has a PAR of approximately 1.16:1. (I got this value by measuring PS2 output on a real NTSC TV.) Given that, you can trivially compute the appropriate SARs:

512x480 1.24:1
512x448 1.33:1 (Final Fantasy XII)
512x416 1.43:1 (Final Fantasy X)

Assuming the information provided by Idec Sdawkminn is correct: http://forums.pcsx2.net/Thread-Aspect-Ratio-in-GSdx
640x480 has a PAR of 1.00:1, giving the following SARs:

640x448 1.43:1
640x480 1.33:1



As far as "16:9" games go, I took some measurements of Final Fantasy XII in emulation, and it expects the PAR in 16:9 mode to be 4/3rds of the PAR in 4:3 mode, as would make sense. (This gives it the expected SAR of 1.78:1)

I don't think many (if any) PS2 games use the 256, 320, or 384 widths; they're holdovers from PS1. So just the information here should be enough to calculate a pretty good guess for the SAR of any NTSC PS2 game.



Reply
#5
you still calculating? give up. emulated output is 4:3 or 16:9. Wink
Reply
#6
(12-22-2011, 04:29 AM)xstyla Wrote: you still calculating? give up. emulated output is 4:3 or 16:9. Wink

If you have nothing useful to add, go elsewhere.
Reply
#7
nothign to say.

that's all too much conversion to TV-electronics. ofc they all base of 480p. most of the modes are kinda setup for the count of scanlines on a TV aka CRT. the modes of 224i or 448p usually pass out a few at the top, some at the bottom on a ntsc screen. it's the electronics timing and that can be magnified by it. it's a ***** electron ray behind the glass with two monster magnets controlling it. here's where as you may have noticed GSDX still fails sometimes to get that right and starts the picture at 00 leaving a blank underneath. maybe a scanline counter interrupt would manage on the TV-out. dunno if this the sync registers for that. anyway the stuff is uninteresting for emulation cause as said this' related to much to sync the analoque TV-out.

conclusion. if you want 1:1 pixel ratio and/or exact screen ratio on a ntsc screen you need to have 720x480. which is not available. end.
Reply
#8
(12-22-2011, 05:21 AM)xstyla Wrote: nothign to say.

that's all too much conversion to TV-electronics. ofc they all base of 480p. most of the modes are kinda setup for the count of scanlines on a TV aka CRT. the modes of 224i or 448p usually pass out a few at the top, some at the bottom on a ntsc screen. it's the electronics timing and that can be magnified by it. it's a ***** electron ray behind the glass with two monster magnets controlling it. here's where as you may have noticed GSDX still fails sometimes to get that right and starts the picture at 00 leaving a blank underneath. maybe a scanline counter interrupt would manage on the TV-out. dunno if this the sync registers for that. anyway the stuff is uninteresting for emulation cause as said this' related to much to sync the analoque TV-out.

I agree that it is far too difficult to tell exactly how any particular CRT is going to handle an incoming signal, due to the way that tracking works. But the NTSC spec (which TVs try to follow) does say how in-spec signals should be handled (including aspect ratio), so it's not entirely futile.

If your goal is to simply get more accurate aspect-ratios, then I've already provided a solution. No, it's not perfect (which as you point out, is not possible.) No it's not the next best thing to perfect (which would be using an oscilloscope on the video outputs of a PS2 while mucking around with the registers). But it is an improvement on the current status, which gives demonstrably incorrect SARs in some cases.

To clarify, I'm not complaining or whining or even requesting anyone do anything; just sharing information. Anyone who doesn't think it's relevant or important is free to ignore it.
Reply
#9
I think you're missing some things. Apart from the largely unknown registers governing timings there are the well known fields in the DISPFB registers providing magnification (which makes the 512/640 quite irrelevant, MAGH is set appropriately).

I do think you're basically probably right that we need to be setting a 640x448 (after scaling) framebuffer to be 4:3 or 16:9, not a 640x480 one and certainly not whatever framebuffer the game happens to be using.
Reply
#10
Dunno who you meant @pseudonym. I do know the mag regs I scaled a screen already. but...

I think I'll have to get a FFX nstc to check on that if it's really that wrong or somebody's talking about horses. I'd wonder if it is. but it's interesting. Biggrin
Reply




Users browsing this thread: 1 Guest(s)