Hi hunterk, any news concerning the possible integration of Switchres in Retroarch?
I have talk about it on some 15hzCRT-users forums and we are really looking forward to it!
Hi hunterk, any news concerning the possible integration of Switchres in Retroarch?
I have talk about it on some 15hzCRT-users forums and we are really looking forward to it!
Iām not sure itās feasible, unfortunately. However, itās been awhile since I first looked at it and Iāve forgotten exactly why I was pessimistic about it. Iāll try to revisit it in a couple of days and post back.
Thanks a lot Hunterk, Iām crossing fingers!
Just an update and some questions about switchres. Iāve been talking with maister about this and while I donāt think itās feasible to incorporate SwitchResā code and functionality directly, we might be able to smooth using it with RetroArch.
SwitchRes has a standalone utility that can be used to generate modelines that are native to a game yet safe for your monitor, correct? Can this utility be used in a batch mode? That would allow users to set up all of their modelines ahead of time (in xorg.conf and/or EDID, for example) and then RetroArch could set fullscreen resolution based on those modes (particularly when running in KMS mode).
Approaching from another angle, I see that SwitchRes standalone has a commandline option for --emulator where you can specify emulators other than MAME for it to work with. What other emulators are supported by this? What would RetroArch need to expose to be supported in this way?
What a great news, thanks a lot guys!
I contacted the guys behind Switchres, forwarding your questions and Iāll tell you right away when Iāll get an answer.
Here is the answer by Calamity :
I think that for the specific task youāre requesting this feature (basically being able to perform resolution switching within a game for PSX and such platforms) thereās really no point in incorporating SwitchRes into RetroArch. As Hunterk is explaining it is a better idea to just assume that the modelines are already available to RetroArch in the first place.
So letās consider the scenario where you have properly configured a system with two modelines such as 2560x240@60 and 2560x480i@60 (which is trivial to achieve in both Windows & Linux).
What you want the emulator to do is to be able to dynamically switch between both modelines, depending on the vertical resolution requested by the emulated hardware.
Without having the minimal knowledge of the internal details of RA, dynamic resolution switching may involve some refactoring of the DirectX full screen implementation. Basically you need to destroy the current device and create it again with the new resolution, with all the additional caution required if youāre running several threads for the video.
You also need to implement some logic for best mode picking, in case itās not already included. This logic could operate on the whole mode list returned by the OS, or simply on an user defined mode list. I believe that like most emulators, RA only allows to specify a single resolution for full screen mode, by using the video_fullscreen_x & video_fullscreen_y options, so specifying an user mode list would involve implementing an array of these options.
A solution for not implementing that array would be using āresolution masksā, like this:
video_fullscreen_x = 2560 video_fullscreen_y = 0
Here ā0ā would be used like a wildcard. If ā0ā is already used to indicate the desktop resolution, another value could be used (ā1ā, or whatever).
Then, when the emulator detects a resolution switch request, it would decide which from the list of 2560x resolutions better fits the requested height.
As a note: a proper full screen configuration for any emulator should contain 3 values, not 2:
video_fullscreen_x = ? video_fullscreen_y = ? video_fullscreen_refresh = ?
Thatās the only way to unambiguously target a certain video mode in the Windows OS.
Finally, answering Hunterkās question, SwitchRes supports any emulator provided it takes command line options, it just launches the emulator with the specified options and performs a mode switch previously if specified, this is useful for emulators that are only capable of running at the desktop resolution. My understanding is that if the above or something similar was implemented then launching the games with SwitchRes wouldnāt be necessary.
Cool. Thanks for the info and for being the go-between
It indeed sounds like the way to go, then, is to see about setting up a mask that ties into a gameās reported resolution and refresh rate. I believe we indeed have the video_fullscreen_refresh option already and the logic for choosing proper dimensions/refresh, as maister mentioned in another thread. He pointed me in the direction of the file that likely needs editing, as well, so Iāll see if itās within my reach. If not, Iāll try to goad someone into helping out.
Thank you hunterk. Really!
Iām very happy about this news and Iām sure I will not be the only one.
I canāt wait to try it! Please let us/me know when itās working.
Any progress hunterk? =D Sorry I canāt wait to try it! :rolleyes:
Nothing to see yet, but I havenāt forgotten about it. Hopefully, weāll have something soon.
Thanks hunterk.
Any progress hunterk? =D
Unfortunately, no
This looks like itās going to be out of my skillset. However, if anyone else has interest in it, Iād be happy to try and point them in the right direction. Sorry, dudeā¦
Thank you hunterk, Iāve let a message on Groovymameās forum to see if anyone there is interested in making this happen. Letās cross fingers!
Cool, fingers crossed
Itās a feature Iād like to see, too, just none of the more capable folks here have CRTs for testing, so theyād pretty much be coding blind. Hopefully, someone at Groovymame will hook us up!
[QUOTE=hunterk;15588]Cool, fingers crossed
Itās a feature Iād like to see, too, just none of the more capable folks here have CRTs for testing, so theyād pretty much be coding blind. Hopefully, someone at Groovymame will hook us up![/QUOTE]
Hey there hunterk, could you give me pointers to how youād go around solving this on linux? I donāt have that much experience on Linux programming, but Iām eager. I have a Sony PVM plugged to my custom PC so I have the required tools. I donāt mind forking Retroarch eventually for this particular usecase, itās just that 480i on 240p just grinds my gears.
Best regards!
This is my latest update on native resolution switching for Retroarch. Currently it working with on the fly switching. Still in early stages though.
oh man, thatās looking awesome!
Another update for you guys to check out. This is Saturn switching between multiple resolutions, progressive and interlaced
whoa, shit! I didnāt think progressive/interlaced switching was even on the table
I hope you know: youāre making my wildest dreams come true.