What's new

Widescreen aspect ratio?

Tillin9

Mupen64Plus Dev.
Project64 has a nice option which basically sets up an OpenGL viewport in widescreen, Adjust game aspect ratio to match yours. This is really nice for fullscreen viewing for people with widescreen monitors. Mine are both kind of odd, 1600x1024 and 1920x1200, so just sticking in a 1920x1080 resolution won't be the best option.

How difficult would this be to add something similar to Mupen?
 
Last edited:

Richard42

Emulator Developer
All of the resolution setting / OpenGL handling code is in the video plugins. So it might not be too hard to add this feature, but it would have to be added to each video plugin separately. Which plugin do you use the most? I can add this to the TODO file.
 
OP
T

Tillin9

Mupen64Plus Dev.
Thanks. Currently I use Rice the most. With the recent document drop by AMD/ATI my r300 now works fine with it, so long as fog is turned off. However, I'm rather sure this is a driver issue and not a plugin one.
 

kdubya

New member
Tillin9, you can set any resolution you want by editing the rice video .cfg file. Everytime you save the config from the gui it will overwrite your custom resolution and you will have to change it again.

I think the solution to this is to let people type in their own resolution in the rice config dialog. Right now you can only select from a drop down list.
 
OP
T

Tillin9

Mupen64Plus Dev.
It's not just the window resolution, its the aspect ratio. I can set Rice to 1920x1200 but I essentially see the same thing if I set it to 1600x1200 and let my monitor stretch to 1920x1200, i.e. the aspect ratio of the viewport is still 4:3. In Project64 the aspect ratio of the world is still 4:3 but the viewport is extended to an aspect ratio of 16:10. I'm only just learning OpenGL, but the issue isn't just window size but altering the GL_PROJECTION matrix to keep the right aspect ratio for the new viewport.

As I know I'm probably not explaining this correctly, see 9.140 here for more info: http://www.opengl.org/resources/faq/technical/transformations.htm
 

TD-Linux

Failed Homebrewer
Yeah I have this same problem. Either adding black bars or adjusting viewport size would work, though viewport size adjusting would look odd in a lot of games where the background image(s) would not cover the whole screen and you would get black bars anyway.

Setting custom resolution stretches the image. I think it stretches the 3D too, or it *should*, to be consistent.

BTW the RiceVideoLinux fog bug is not a driver bug, it's a bug in RiceVideoLinux.
 

Richard42

Emulator Developer
Yep it needs to be pillarboxed in widescreen to keep the same pixel aspect ratio. I added it to the TODO list in RiceVideo.
 
OP
T

Tillin9

Mupen64Plus Dev.
I know pillarboxing is easier than changing the aspect ratio of the viewport, but many games, Zelda64, Mario64, etc. look great in 16:10, so it should definitely be on the TODO.

@TD-Linux, the fog bug isn't what other people see as the fog bug (clipping), when fog is enabled most textures don't display, i.e. Link is black polygons. Since its part of OpenGL 1.2, and the r300 only has documentation for 1.1, I'm almost sure its a driver issue.
 

TD-Linux

Failed Homebrewer
Okay, do other emulators do 16:10? Or is this a feature of the nintendo 64, or what?

Because I would think the prerendered backgrounds in buildings in Zelda, the UI, etc would be problematic.
 
OP
T

Tillin9

Mupen64Plus Dev.
As I said in the original post, Project64 can do it, specifically Jabo's graphics plugin. I had though Rice's plugin for Project64 could do it as well (and could have sworn I played Zelda with aspect ratio corrections, hi-res textures, and FSAA on my 25:16 monitor) which is why I originally addressed this toward Mupen and not just the plugin but after firing up a Windows machine as I couldn't get Rice to work with Project64 under WINE, I don't think it actually can.

Non-4:3 aspect ratios are not part of the N64, but neither are high-res textures, so there is some precedent for doing things to help make the graphics nicer beyond the original capacity of the N64.

As far as the fake backgrounds in Zelda (ands other games), those are stretched, but the true 3D parts (and UI) in those areas are rendered properly, and full 3D scenes just have more of the world rendered and look very nice. IMHO, this is nicer than either stretching the entire scene or pillarboxing it. Since some people might not want / think this, that is why making the aspect ratio match the screen is an option.
 

Richard42

Emulator Developer
Non-4:3 aspect ratios are not part of the N64, but neither are high-res textures, so there is some precedent for doing things to help make the graphics nicer beyond the original capacity of the N64.

That's an interesting feature. Is the source code available for the Jabo plugin?

Doing hi-res textures is actually pretty easy; most of the work is in saving/loading the image files and keeping track of all of them. The extra code necessary in the OpenGL-specific part is very small. But actually increasing the width of the viewport and rendering everything correctly will be very tricky and in some cases impossible. The N64 game code (which is being emulated) for most of the games probably does some frustrum clipping and doesn't render the objects which fall outside of the expected viewport. Even if you expand the viewport, if it's clipped in the game software it won't be rendered and there's nothing you can do about it aside from re-writing the game. This may lead to strange effects like objects popping in and out when they're near the left/right edges.
 

Top