Recalbox 7.0

Screen resolution PER GAME in Mame (Retroarch) ?

  • Hello all,

    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 (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.


  • CRT Fan

    hi, you need to create a file here : /system/configs/retroarch/mame/
    the file name need to be like this :

    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)

  • Global moderator

    Ratio in fba libretro is correct only recalbox 4.1 unstable because fba core has been updated.

  • @idarius


    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.

  • CRT Fan

    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.

  • @idarius
    Good Evening,
    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 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 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).

  • CRT Fan

    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 😕

  • @idarius
    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.

  • CRT Fan

    hi, have you tried this ?
    (set a configfile for a core, in hard in the recalbox.conf)

  • Per game .cfg is a 4.1 only feature

  • @idarius
    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 ?

  • CRT Fan

    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.

  • @idarius
    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) :

    1. You can easily make a copy of your SD to a USB device (whichever it is) = make a ghost of your system
    2. 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 ?

  • CRT Fan

    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 😉

  • 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

  • @Substring

    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 !

  • 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
    It does seem that RecalBox is rather behind in-terms of useful settings compared to RetroPie.

Want to support us ?