Screen resolution PER GAME in Mame (Retroarch) ?
motenai79 last edited by motenai79
I installed a RPi3 (Recalbox version 4.0.2) on a Samsung Syncmaster 913N 19" screen.
It's connected through a HDMI to VGA converter (correctly set up as I already followed the tutorial "Configuration résolution écran avec adaptateur HDMI vers VGA", set up to global.videomode=DMT 35 HDMI in recalbox.conf).
Everything seems to be working fine (or almost), although I have a quick question :
Is it possible, in Mame, to set a different screen resolution per game ?
I searched on the retroarch menus and didn't find game-dedicated options (always general options).
I'm a bit reluctant to set a forced resolution for the whole emulator (as I don't want to impact the games already running correctly).
For info, I use a Rom from a Romset that I found called "MAME2003_Reference_Set_MAME0.78", so no specific compatibility issue to notice.
I was surprised to notice that the screen resolution was different depending on the emulator I use. Say SF2.zip (Street Fighter 2) for instance, it runs at the correct 4/3 resolution on FBA Libretro and on a different screen resolution on Mame.
In both cases, Retroarch mentions "Core provided" on the Aspect Ration Index option (Video options).
If I force, in retroarch (in Mame), the screen resolution for SF2 as 4/3, it's perfect, but it won't stay as is (even if I select Save current configuration).
Note that changing the advanced display options of the emulator (Menu principal ==> Option des jeux ==> Avancées ==> Mame ==> Format jeux ==> 4/3) didn't change anything.
So, if you had any clue as to force a screen resolution in Retroarch per game, I would gladly take your advice.
hi, you need to create a file here : /system/configs/retroarch/mame/
the file name need to be like this : ddragon.zip.cfg
in the file, you need this parameters :
aspect_ratio_index = "22" video_smooth = "false" video_scale_integer = "false" video_threaded = "false" custom_viewport_width = "1680" custom_viewport_height = "224" custom_viewport_x = "118" custom_viewport_y = "17"
Where you define you resolution at custom_viewport_width and height.
You can set the position of the screen with custom_viewport_x and y, just paste that values that you found in retroarch.
I use this for fba_libretro, i think its the same way for mame (libretro core)
acris last edited by
Ratio in fba libretro is correct only recalbox 4.1 unstable because fba core has been updated.
Thanks a lot for such a quick and precise response.
I'll give that a try tonight.
I was wondering what the "22" meant in aspect_ratio_index, I found this :
19 = Config, 20 = 1:1 PAR, 21 = Core Provided, 22 = Custom Viewport
If I understand correctly :
- By default, it's 21: Core provided (defined by the core as a general rule),
- 20 : is defined by the rom, the emulator won't adapt the ratio to the screen size,
- 22 : allows to set manually dedicated values (as you explained), supersedes the default values.
But I don't understand the "19 - Configuration" option, what does it do ?
@acris : Weird that the aspect ration is correct only in 4.1, the one I had there (in FBA Libretro, recalbox 4.0.2) was the one I was looking for actually !
I have a micro SD ward with the unstable version of 4.1, I'll give it a look.
Again, thanks for your reactivity (to the both of you) and for the incredible work done by the developers.
For the config for a system (nes.cfg, snes.cfg, ... for the resolution and viewport of each system) i use aspect ratio index 22 too. i don't really understand what is the 19 parameter, but it's ok with 22
i don't find any other info on the web, apart the line you provided.
I gave it a try but it doesn't seem to work.
Here is what I did, if you could tell my what I did wrong :
- I created a sf2.zip.cfg file
- I put it in the /system/configs/retroarch/mame/ folder
- Rebooted Recalbox and tried (and : fail).
Note that I didn't have the "Mame" folder (my path ended at /system/configs/retroarch), so I created it.
My file looks like this :
aspect_ratio_index = "22"
video_smooth = "false"
video_scale_integer = "false"
video_threaded = "false"
custom_viewport_width = "1280"
custom_viewport_height = "960"
custom_viewport_x = "0"
custom_viewport_y = "32"
In case, I activated the option "Use per-game core option" in the configuration menu of Retroarch (i.e. game_specific_options = "true") ==> Didn't change a thing.
I tried to copy the sf2.zip.cfg file in several locations (just to test) :
Fail each time (as you figured already).
Any idea what I did wrong ? (I read your message several times just to make sure, I must have missed something).
all seems good to me... could you try the same with a fba_libretro game and his .cfg ? i haven't tried with mame, but it should be working the same way
I don't have fba_libreto folder in /system/configs/retroarch/ either.
I just spent the two last hours testing this (even with fba_libretro rom), it still won't work.
I can't explain why I have different configuration of the same rom using the same config file on both emulators (fba libretro and Mame).
I activated the per-game core options, and I can't find anywhere a config file containing the options I activated for the given game.
I don't understand. I'll try and search more and I'll come back to you if I find anything relevant. I'll also come back if I don't find anything (so that we can't set the topic as "Unsolved" or "Solved").
Unless someone else has some other lead to follow.
This sucks as I realize that despite video configuration I can't set up controls either (I mean game-specific controls).
Thanks a LOT for your taking time helping me this one. I guess there is an option somewhere that is not enabled that prevents me for getting the same result as you are. Seems like it's something as "stupid" as that, but so far I haven't found it yet.
hi, have you tried this ?
(set a configfile for a core, in hard in the recalbox.conf)
Substring last edited by
Per game .cfg is a 4.1 only feature
Yes, I did do that, and it actually works but it changes the settings for the whole emulator, not for the dedicated game.
To be honest, given all the tests that I've done, I'm getting used to the whole "save a new configuration" and "update the recalbox.conf accordingly" thing !!
Thank God ! Thanks for the info. I can stop the tests now ! I was going crazy.
It's a relief that it just can't be done right away.
I'll wait for the 4.1 version of Recalbox then.
I have a micro SD card with an unstable version of recalbox in 4.1, I'll give it a test (so that I'm ready when the official 4.1 version is released).
Thanks again to you all for taking time to try and help me.
Given that I have an answer now (even though the answer is to wait for a while), does it fit with a "solved" status of the topic so we can close it ?
you can install the 4.1 right now, its really stable. i'm on it since the launch weeks ago, haven't found a real bug yet.
No reboot, no unexpected things. All flawless
The stable 4.1 will not come in a near future i think
if you haven't done it yet, install you roms on a usb key like in this tutorial :
This way it take only 2 min to reinstall a system, 4.1 or not.
That would explain why you can set per game parameters and I can't, you're on 4.1 already.
Thanks for the link to the USB storage thing.
As I understand, the purpose is double (correct me if I'm wrong) :
- You can easily make a copy of your SD to a USB device (whichever it is) = make a ghost of your system
- Allows to play from the USB storage instead of the SD card
That's the second part I'm not quite sure of.
I guess this allows to make some tests (that will be recorded on the USB storage) without impacting the data on your SD card, am I right ?
no, the real interest is in using the usb for the storage (roms, bios, save, config...)
in the ES menu you can choose your storage (internal, or external)
if you choose external, on the next boot the recalbox will use the usb files, and not the sd files.
For this you have to put a usb key, choose external, reboot. ES will create all directory on the usb key (recalbox/rom, recalbox/bios....)
you shutdown the system, take the usb key on your pc, and fill the directory with roms bios saves from your sd.
after that, you don't use your sd anymore for all the content of the "share" folder.
The SD will just be used for the boot and the ES system, and will be read only, so no more SD crashed or corrupted.
So, 1, you dont make a ghost, you make the USB your share system.
2, totally yes
SO security of your files, easy to transfer, and if you reinstall your SD card with a new install, you choose external stockage in the config, reboot with your usb key, and all your system will be the same.
Of course, the recalbox.conf, and all the confings/retroarch/ files will be on your usb key too
Substring last edited by
I'm not in the mood to read the whole topic, but regarding per game resolution (and i do mean SCREEN resolution, not viewport or aspect ratio), that's a feature I'm planning for the coming weeks. I'm quite bugged by the PSP emulation on non xbox/ps3-like pads for now
Don't worry, no pressure. The screen resolution is not a critical subject at all (at least for me).
Reading your message, I realize that I should have mentioned viewport/aspect ratio. You're right that's more like it : changing the ratio so that the game doesn't look "flattened" for instance, but the number of actual pixels in height or width actually remains. Just the pixels by themselves are stretched.
Thanks for the correction.
Sorry for using the wrong term earlier and good luck with your work the PSP emulation and non xbox/PS3 pads !
Lumbeechief081 last edited by Lumbeechief081
Sorry I had to resurrect this thread but it seems I had just created a thread about this same issue before realizing this one existed. I just wanted to reference this thread to my new one. Here is the new thread I created https://forum.recalbox.com/topic/17567/how-to-change-resolution-per-game.