We dug into what Melee was actually outputting, but results more or less said that it wasn't strange/different. We'll have to search through the output more to see if there's anything telling us why it'd be output different.
Correct aspect ratio option?
|
07-07-2015, 01:19 PM
I'm excited Dolphin devs are being made aware of the issue.
It's my understanding the melee guys went into the game's files took the shield texture and compared it vs what shows up in game. You got me on the math stuff though. 07-07-2015, 01:45 PM
Who says the textures were/weren't designed with a specific pixel aspect ratio already accounted for...
07-07-2015, 02:45 PM
(This post was last modified: 07-07-2015, 03:26 PM by mirrorbender.)
I'm going to do my best to explain my understanding of the questions that have been brought up.
To come up with the aspect ratios for melee, I measured the shield and came up with a ratio that made it as circular as I could. It's based on the assumption that shields should be circles (supported by the circular texture file). 21/23 was what I came up with, it's basically a guess and check value that is very close to whatever the value was intended to be. In terms of why there is so much variety between games, there are a few reasons that I can think of. Firstly many games use the VI's horizontal scaler to change the width of the output on a console. Melee does not, but many games do (for example LoZ: Twilight Princess). The second thing is that some games render at different vertical resolutions. I think F-Zero GX renders at 448p, for instance. So that changes the aspect ratio. The third thing is that developers may have used different aspect ratios when doing the math for their games. The gamecube developers manual doesn't specify a standard, it just says something about using an approximately 0.9:1 pixel aspect ratio for 4:3 TV's, so I don't know what individual developers actually did. One other thing to note is that on an actual console, the VI introduces a bit of underscan to most games in the horizontal direction, and in some games in the vertical direction as well. Dolphin does not do this (and it shouldn't, we don't want black bars in our emulation), but this difference causes further distortion of the aspect ratio if Dolphin is being run with the aspect ratio set to 4:3. CRT TV's, being analog, don't have pixels and even two of the same model TV may not display the same signal with exactly the same geometry, so it is hard to use CRT displays as a precise standard. Oh and one more thing about this: (07-07-2015, 06:04 AM)Aleron Ives Wrote: More importantly, 720 is not the correct horizontal resolution to use. NTSC only uses ~711 of the available 720 horizontal pixels, which means the border pixels do not contain useful image information and should be cropped before scaling the image. As such, it is incorrect to resample 720 to 657 directly, because including those border pixels will distort the resulting image; you'd need to crop 720 to 711 and then resample to 657 using a SAR of 73:79, not 73:80. (For the record, PAL uses 702 of the 720 available horizontal pixels, rather than 711, as in NTSC; as such, you need a separate SAR for PAL video.) This is written with video capture/digitization/streaming in mind. In my experience most capture devices for NTSC sample the signal into 720 pixels per line, and don't discard any. So that is what resolution is being used regardless of what is correct. Based on my measurements with a few devices, the game image is 8/9 of the width of the digitized image, which matches up to 640 (the rendered width) out of the 720, implying that the GC uses 720 as the width internally even though that is slightly more than what is supposed to be displayed. It's good to know that the active frame is specified to be ~711x486 though, I didn't know that. 07-07-2015, 03:09 PM
(07-07-2015, 02:45 PM)mirrorbender Wrote: To come up with the aspect ratios for melee, I measured the shield and came up with a ratio that made it as circular as I could. It's based on the assumption that shields should be circles (supported by the circular texture file). 21/23 was what I came up with, it's basically a guess and check value that is very close to whatever the value was intended to be.To be frank, as tueidj said, who are you to second guess the developers as to what the game's aspect ratio should be? There's no proof that the shield is supposed to be perfectly round, as textures get stretched in games all the time. Maybe it was a deliberate choice, and maybe making the shield an oval was a compensation to prevent other aspects of the game from appearing excessively distorted instead, but the point is that your calculations are based on somewhat unfounded assumptions. I'm all for Dolphin having more options, including the ability to stretch games into whatever AR the user might want, but I certainly don't want Dolphin to start stretching games automatically based on one person's calculations of how he arbitrarily thinks they should look. 07-07-2015, 03:37 PM
(This post was last modified: 07-07-2015, 03:39 PM by mirrorbender.)
(07-07-2015, 03:09 PM)Aleron Ives Wrote:(07-07-2015, 02:45 PM)mirrorbender Wrote: To come up with the aspect ratios for melee, I measured the shield and came up with a ratio that made it as circular as I could. It's based on the assumption that shields should be circles (supported by the circular texture file). 21/23 was what I came up with, it's basically a guess and check value that is very close to whatever the value was intended to be.To be frank, as tueidj said, who are you to second guess the developers as to what the game's aspect ratio should be? There's no proof that the shield is supposed to be perfectly round, as textures get stretched in games all the time. Maybe it was a deliberate choice, and maybe making the shield an oval was a compensation to prevent other aspects of the game from appearing excessively distorted instead, but the point is that your calculations are based on somewhat unfounded assumptions. Fair enough. I wish I knew exactly what the devs intended so that I didn't have to do all of this guess and check and STILL not be sure that it's right. But I don't, and I don't think anyone does. The Shield texture in Melee is more of a sprite than a texture, it's just overlaid onto the 3d image, not applied to any 3d object. It is never rotated or tilted. It's aspect ratio never changes, it just gets bigger or smaller. I don't know 100% that it should be a circle, you'd have to ask the devs to know for sure, but I'd be willing to bet basically anything that it is, and that is the best I can do at this point. 07-07-2015, 03:38 PM
So far there is so much handwaving and math based on assumed values that I can't see any merit at all in implementing any changes. But having said that, what Dolphin currently does is not right (just look at the Rogue Squadron games where the cutscenes get rendered fullscreen instead of letterboxed), the only "proper" way to fix it would be to fully implement VI scaling (complete with blank overscan areas used by most games) and allow customizable borders for cropping, just like how you can choose a TV based on how much of the viewing area is hidden by the screen bezel.
07-07-2015, 03:47 PM
(07-07-2015, 03:38 PM)tueidj Wrote: So far there is so much handwaving and math based on assumed values that I can't see any merit at all in implementing any changes. But having said that, what Dolphin currently does is not right (just look at the Rogue Squadron games where the cutscenes get rendered fullscreen instead of letterboxed), the only "proper" way to fix it would be to fully implement VI scaling (complete with blank overscan areas used by most games) and allow customizable borders for cropping, just like how you can choose a TV based on how much of the viewing area is hidden by the screen bezel. Technically, that would solve everything, but the average user just wouldn't know what to do with the settings. Maybe we could implement some kind of "default CRT" setting to get a good quick and dirty (and accessible) approximation that doesn't require measuring pixels in high resolution screenshots and doing the math by hand. 07-07-2015, 04:02 PM
A proper implementation of the VI hardware wouldn't even use pixels, the closest thing it has is "ticks" of the 27MHz (or 54MHz when progressive mode is activated) clock that drives the D/A convertor. All the horizontal values (line width, post-blank border, active area, pre-blank border) are given as units of time based on that clock.
07-07-2015, 04:48 PM
Would it be difficult to determine how much vertical/horizontal overscan there would be without actually drawing the overscan area to the screen? I'd think that you could just read the values sent to the VI and then do some math to determine the proper width/height so that you can correct the aspect ratio and so that you don't actually have to draw the black overscan areas to the screen.
For example say a game is rendered @ 600x400 (made up for simplicity's sake), and then stretched by the VI scaler to be 640 pixels (or ticks after the DAC) wide by 480 lines tall. You would then want that game to display @ 4:3 in dolphin despite the fact that it is rendered @ 3:2 on a console. If the internal resolution was native or some multiple thereof, you'd have to scale to 4:3, or if you are rendering to the window size, you'd force the window to 4:3 and render at that 4:3 resolution. This of course doesn't solve the issue of square vs non square pixels. For that, you'd multiply the width by whatever the NTSC standard sample aspect ratio (did I use that right?), to get the proper aspect ratio. But then you could emulate the proper aspect ratio defined by the NTSC standard without having to do full-fledged VI emulation. That is how I'd imagine going about doing it. Sorry if I'm missing something or misunderstanding anything, but would something like that work? |
« Next Oldest | Next Newest »
|
Users browsing this thread: 1 Guest(s)