Closed gonetz closed 7 years ago
I actually like this GUI better overall. I do have one issue (not that I'll ever use it though):
I saw there was supposed to be arrows on the buttons?
Looks good but I still think the Frame buffer copy/depth sections should use comboboxes so less text is occupying the interface in the Frame buffer tab. That would also allow us to get rid of the white space at the bottom of the window in other tabs providing a small, compact and functional UI, while making it look less cluttered with text.
Seriously though this seems like the perfect window size.
@oddMLan @gonetz
About the comboboxes vs. the radio buttons I like both layouts. The reason I changed it back to radio buttons was at gonetz' suggestion. Maybe we just need a little more input on it.
@LuigiBlood
It looks like you're using Windows 7? I'll have to find out which fonts preinstalled on Windows 7 include those arrows, or maybe just make some arrow graphics myself.
I'm getting ready to prepare another pull request with this added feature:
Yeah I'm a Windows 7 user.
I used some skills I have with Paint.net to create some new arrows. They're a bit bold but they do the job.
Looks quite nice 👍
There is a problem with custom icons. I use static build of QT libs. GLideN64.dll contains all necessary resources, but icons not displayed. I don't know why. Green N in window caption is missing. Warning icon in fb emulation tab is missing also. The same will be for arrows.
@gonetz Is it because I manually edited the .qrc file rather than using the Creator? I couldn't figure out where to add it so I manually edited the .qrc XML file.
No, I have the same issue in master branch.
@gonetz I wonder if it works with an Icon.ico rather than PNG.
Sorry. I posted in the wrong spot. See https://github.com/gonetz/GLideN64/issues/885#issuecomment-258751503
@Mario54321 For clarity, here's the comment mentioned:
Instead of just saying "Aspect ratio" you can specifically put the type of aspect ratio it is (storage aspect ratio, display aspect ratio, pixel aspect ratio)
"Display aspect ratio" or "Output aspect ratio" might be a good option.
I wonder if it works with an Icon.ico rather than PNG.
No, it does not.
I found these discussions: https://forum.qt.io/topic/13034/solved-qt-static-missing-icon-plugin https://forum.qt.io/topic/34969/static-link-q_import_plugin-qico-unresolved-external-symbol
First says, that qico plugin must be used. Second says how to do it with Visual Studio.
Unfortunately, it does not help. I imported qico plugin, but icon still missing.
I think it might be better if "Texture cache size" is placed in the Texture enhancement tab instead of the Video tab
@gonetz
Maybe adding add LIBS +=
to the .pro file?
This is where I looked this up: https://forum.qt.io/topic/13034/solved-qt-static-missing-icon-plugin/6
@Mario54321
I thought the same originally, but that texture cache only affects textures that haven't been enhanced.
Bingo! Icon.ico works. There is a problem: when QT plugin for MSVS creates .vcxproj project from .pro, it writes resources names into the project. I changed Icon.png to Icon.ico in icon.qrc, but autogenerated ui_configDialog.h still uses ":/Icon.png". I changed it to ":/Icon.ico" and finally got the main window's icon.
I generated my PNGs from ffmpeg. There must be some kind of parsing problem with them. I'll give you .ico's for each instead.
Ok.
Looks good, but again, the Framebuffer tab makes the entire window taller than it needs to be, creating tons of ugly whitepace on an UI that would look perfect if the window was shorter - could you make a prototype with comboboxes instead of radio options? These options don't have to be radio buttons if they barely need to be touched. With a proto people could decide on which layout is better.
Before After
Before After
After is much better IMO.
'Frame buffer swap on' also should be replaced by combobox then. This option hardly should be changed on desktop.
I think it might be better if "Texture cache size" is placed in the Texture enhancement tab instead of the Video tab
It is control for video memory cache. It is not related to cache for enhaced textures.
@Aquatakat looks like 'texture cache size' is confusing name for that option. It should be something like "video memory usage limit".
Alternative layout of frame buffer emulation page suggested by oddMLan: https://drive.google.com/file/d/0B0YqMPjGo3B2bllFdV93OF85UnM/view?usp=sharing
So here are my suggestions rephrased from https://github.com/gonetz/GLideN64/issues/1216:
Add a "native N64 resolution" checkbox near the resolution slider. Its description should be something like "(more accurate)" The tooltip should explain that it fixes various issues such as Quest 64's text. When the checkbox is ticked, the resolution scaler should be greyed out.
This "native N64 resolution" setting should be something that can be set globally, or per-game in the ini file, and I'll draw up a list of 2D games where forcing native resolution would arguably be best in the near future.
Add a "native N64 resolution" checkbox near the resolution slider.
It hardly will look nice with current design.
I suggest to put that checkbox into 'Emulation' page. It already has 'Render 2D elements in N64 resolution'. Add new checkbox 'Render everything in N64 resolution (accurate but low-res)' Made them mutually exclusive.
BTW, 'Render 2D elements in N64 resolution' is confusing. User may think, that 2D will be small and low-res. Actually, 2D first rendered in native resolution, then result rendered in user defined resolution. May be 'Multi-pass rendering of 2D elements'?
I suggest to put that checkbox into 'Emulation' page. It already has 'Render 2D elements in N64 resolution'. Add new checkbox 'Render everything in N64 resolution (accurate but low-res)' Made them mutually exclusive.
It's a bit muddled to have the "ratio of N64 resolution" slider and the "render at 1x native resolution" checkbox on different tabs. Especially if enabling the checkbox greys out the slider.
Would it make sense to move the render at factor of N64 resolution slider to the emulation tab? Then it could live next to a "render at N64 resolution" checkbox and not be confusing when the slider is disabled.
BTW, 'Render 2D elements in N64 resolution' is confusing. User may think, that 2D will be small and low-res. Actually, 2D first rendered in native resolution, then result rendered in user defined resolution. May be 'Multi-pass rendering of 2D elements'?
I have a few ideas about this - I'll make something.
Would it make sense to move the render at factor of N64 resolution slider to the emulation tab?
Hmm... Maybe? Dolphin does separate internal and output resolution settings. Output is on the first tab, internal+AF+AA+per pixel lighting are on the second.
Would it make sense to move the render at factor of N64 resolution slider to the emulation tab?
I don't see a contradiction here. Use of native resolution factor does not change output resolution.
To be honest since this alters the video resolution (or output), this would be more fitting under the "Video" tab.
Also I think the "Original N64 resolution" option is redundant with a slider there. You could just make the 1x option say "1x (Original N64 resolution)"
That is, if this is technically possible under QT
@oddMLan Well, Dolphin puts its internal resolution stuff on the second tab. I think this is a good compromise.
@Aquatakat I would suggest removing the 0x factor setting. So that when you select the Factor of N64 resolution setting, it starts at 1x.
What would the ini setting be to force native on a per-game basis?
I would change "Video resolution" to "Screen resolution".
Also, I would change "Render output" to "Internal resolution". I think internal resolution is a reasonably well known concept now that so many games separate their internal and output resolutions. (Doom, Call of Duty, Shadow Warrior, Serious Sam, etc.)
Internal resolution factor?
Yeah, it is a widely used term in emulators, true. But I still think N64 resolution factor sounds a bit more understandable for someone who isn't familiar with the term.
But I still think N64 resolution factor sounds a bit more understandable for someone who isn't familiar with the term.
No, I meant the section heading.
It says "Render output at:"
I would change that to "Internal Resolution:" Because you're changing the internal resolution. The output resolution is controlled by the resolution settings on the other tab.
I think "Factor of N64 resolution" is fine for that subsection.
Oh yes, then I would agree with you. Also with that change the section suddenly sounds more fitting under "Emulation".
On a sidenote:
WIP build: https://drive.google.com/file/d/0B0YqMPjGo3B2TGpsenpZeTVsWUU/view?usp=sharing
Alternative layout of frame buffer emulation page suggested by oddMLan: https://drive.google.com/file/d/0B0YqMPjGo3B2bllFdV93OF85UnM/view?usp=sharing
Something must've regressed between the first and the second build. The performance I'm getting on the second build in Mario Tennis is atrocious (48 VI/s), while the first build works super fast (166 VI/s). @gonetz Did you build debug on the second one by mistake?
@oddMLan @gonetz
I noticed the performance problems also. I was originally getting 60 VI's in The New Tetris (with frame limiting) vs. about 30-40.
I agree with @AmbientMalice:
Rename "Render output at:" to "Internal Resolution:".
It is really good explanation of that option. The first option should be "Same as output resolution" Second option is ok. Slider for the third option should start from 2.
But what about this
Also I think the "Original N64 resolution" option is redundant with a slider there. You could just make the 1x option be more specific "1x (Original N64 resolution)"
Supress the second option, just leave the slider.
@oddMLan First build is release one, others are non-optimized debug builds. These builds posted to test UI, not the plugin itself.
What would the ini setting be to force native on a per-game basis?
[frameBufferEmulation] nativeResFactor=1
@oddMLan That doesn't make it clear that literally every resolution that isn't 1x breaks things. If you want games to not be broken, you select the clearly marked "Original N64 resolution".
Slider should start from 2, because 0 and 1 correspond to first two options.
Slider should start from 2, because 0 and 1 correspond to first two options.
So in other words...
nativeResFactor=0 Plugin selects "Same as output resolution." nativeResFactor=1 Plugin selects "Native N64" nativeResFactor=2+ Plugin selects appropriate setting on slider.
That makes sense. And the ini settings will be nice and clean this way.
This is less redundant overall IMO.
@AmbientMalice People usually pick 1x resolution for faithfulness, not necessarily accuracy. That is more accurate can be specified in a tooltip when you hover over the radio option.
@gonetz We could have the radio buttons change the slider (and disable it) and the slider disable the incorrect radio buttons.
Aquatakat designed new nice GUI layout. Code is in https://github.com/gonetz/GLideN64/tree/feature_new_gui feature branch.
WIP build: https://drive.google.com/file/d/0B0YqMPjGo3B2TGpsenpZeTVsWUU/view?usp=sharing
We need your feedback.