Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files



  • I'm having a little trouble, even after going through the wiki pages, trying to keep things straight about configuration file locations and exactly what I need to change to accomplish several things. I'm also confused about some version numbering issues. I'm using the current version of RetroPie (downloaded about 2 weeks ago).

    At this point I have followed the instructions in the wiki to use a USB ramdrive and to have RetroPie move all the ROMs over to the ramdrive. My main goal is to be able to change the configuration so I can use the trackball on my controller. After that, if possible, I want to remap controls for some specific games. For example, on the arcade games of Star Wars and Tail Gunner, which I'm running under Mame-Libretro, the up and down on the joystick is counter-intuitive. (It's possible that's the way it is on the original arcade games, but that's not how I remember it.)

    I've been going through a number of pages on these issues, perhaps too many, since I'm getting confused.

    1. I see references to specific year versions of Mame, like Mame2003, but I see things that make me think that's the same as Mame-Libretro. If I have the right ROMs for Mame-Libretro (and the ROMs work, so I'm assuming they're the right version), does the year matter? Is Mame-Libretro the same as Mame2003? Does it really matter?

    2. I see I can edit the RetroArch config file to do things like specify what mouse device to use. (I have checked. /dev/mouse0 gives me output when I move the trackball, mouse1 responds to the mouse itself - I don't use the mouse, but it's hooked up anyway.) But if I want to configure things so Mame-Libretro can use my trackball, just what RetroArch.cfg file do I edit?

    3. From what I've seen, it looks like the RetroArch files can get quite complex or be simple. I did see one with a few gazillion comments explaining every little thing. It looks like it's wisest to edit these config files specifically through the configuration editor, just to keep track of everything. Any thoughts on if it's that hard to edit by hand? Or is it just the global file that has all the comments? (Also, when I have used the config editor, it looks like, wherever I am, I still have to pick the config file to load into the editor, is that right?)

    4. From what I see here, it looks like Core Input Remapping is the best way to remap the controls for a specific game. Am I on the right track with that, or should I be looking at other mapping methods to use for single game config changes like that?


  • Global Moderator

    I see references to specific year versions of Mame, like Mame2003, but I see things that make me think that's the same as Mame-Libretro. If I have the right ROMs for Mame-Libretro (and the ROMs work, so I'm assuming they're the right version), does the year matter? Is Mame-Libretro the same as Mame2003? Does it really matter?

    I'm not sure what you're calling 'mame-libretro', that's just a ROM folder. The emulator used is shown in the Runcommand launch screen - this is what determines if your ROMs are correct and working. Most likely what you're calling 'mame-libretro' is lr-mame2003.

    I see I can edit the RetroArch config file to do things like specify what mouse device to use. (I have checked. /dev/mouse0 gives me output when I move the trackball, mouse1 responds to the mouse itself - I don't use the mouse, but it's hooked up anyway.) But if I want to configure things so Mame-Libretro can use my trackball, just what RetroArch.cfg file do I edit?

    Why do you think you need to edit any configuration files ? Is your trackball not working in the emulator ?

    From what I've seen, it looks like the RetroArch files can get quite complex or be simple. I did see one with a few gazillion comments explaining every little thing. It looks like it's wisest to edit these config files specifically through the configuration editor, just to keep track of everything. Any thoughts on if it's that hard to edit by hand? Or is it just the global file that has all the comments? (Also, when I have used the config editor, it looks like, wherever I am, I still have to pick the config file to load into the editor, is that right?)

    The configuration file for RetroArch contains a lot of settings and can become quite confusing since there's no reference covering all of them. The configuration editor tries to be an interface for the options that would be most useful in RetroPie, so you don't have to edit that file.

    From what I see here, it looks like Core Input Remapping is the best way to remap the controls for a specific game. Am I on the right track with that, or should I be looking at other mapping methods to use for single game config changes like that?

    If we're taking about RetroArch, yes, the remapping is the way to go.



  • @mitu said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    I see references to specific year versions of Mame, like Mame2003, but I see things that make me think that's the same as Mame-Libretro. If I have the right ROMs for Mame-Libretro (and the ROMs work, so I'm assuming they're the right version), does the year matter? Is Mame-Libretro the same as Mame2003? Does it really matter?

    I'm not sure what you're calling 'mame-libretro', that's just a ROM folder. The emulator used is shown in the Runcommand launch screen - this is what determines if your ROMs are correct and working. Most likely what you're calling 'mame-libretro' is lr-mame2003.

    Okay, I got that now. I know I'm posting a lot of questions, but there's so much to this to put together, mentally. It takes a while to get it all straightened out and clarify what goes where. It's impressive that RetroPie can make something that is so close to turn-key (just needing ROMs, really). But when it comes to starting from scratch and putting all the pieces together, it takes a while to see how they all fit.

    I see I can edit the RetroArch config file to do things like specify what mouse device to use. (I have checked. /dev/mouse0 gives me output when I move the trackball, mouse1 responds to the mouse itself - I don't use the mouse, but it's hooked up anyway.) But if I want to configure things so Mame-Libretro can use my trackball, just what RetroArch.cfg file do I edit?

    Why do you think you need to edit any configuration files ? Is your trackball not working in the emulator ?

    Correct. The whole system does not seem aware of the trackball at all. Centipede isn't the same with a joystick. Haven't tried Missile Command yet, due to that.

    From what I can see, I need to make sure RetroArch is using udev for input and that I have to specify the mouse device for the trackball so it sees the trackball, but I'm not clear WHERE I tell it that. When I loaded RGUI, it looks like I can find a number of RetroArch.cfg files, but I'm not sure just how it's laid out. I figure it's hierarchical, with a global cfg, one for each emulator, and maybe one for each file, but, at this point, I'm not sure exactly what cfg file to edit to do what.

    From what I've seen, it looks like the RetroArch files can get quite complex or be simple. I did see one with a few gazillion comments explaining every little thing. It looks like it's wisest to edit these config files specifically through the configuration editor, just to keep track of everything. Any thoughts on if it's that hard to edit by hand? Or is it just the global file that has all the comments? (Also, when I have used the config editor, it looks like, wherever I am, I still have to pick the config file to load into the editor, is that right?)

    The configuration file for RetroArch contains a lot of settings and can become quite confusing since there's no reference covering all of them. The configuration editor tries to be an interface for the options that would be most useful in RetroPie, so you don't have to edit that file.

    That makes sense. It did look rather complex and RGUI seems to help.

    From what I see here, it looks like Core Input Remapping is the best way to remap the controls for a specific game. Am I on the right track with that, or should I be looking at other mapping methods to use for single game config changes like that?

    If we're taking about RetroArch, yes, the remapping is the way to go.

    That's what I thought, but that goes back to the issue of which cfg file do I edit?

    In terms of editing cfg files, I want to:

    1. Get the trackball recognized, which I assume is at a global level.
    2. Change the up/down buttons on the joystick for specific games.

    Rather than just asking, "How do I get the trackball working for this setup?" I am trying to get how it all fits together so I can understand how to fix the trackball, but, overall, how everything else fits together.


  • Global Moderator

    @Tango said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    Get the trackball recognized, which I assume is at a global level.

    This is controlled by the input_player1_mouse_index option (for P1) or input_player2_mouse_index (for P2) and so forth for other players. If you have multiple mice devices, RetroArch might pick up the wrong one.
    You can change this in the RGUI from the main menu, in the 'Settings -> Input -> Port 1 Binds'.

    Change the up/down buttons on the joystick for specific games.

    That can be done from the Core input remapping, in the Controls menu - see https://retropie.org.uk/docs/RetroArch-Configuration/#core-input-remapping. Adjust your gamepad as you see fit, then save a core/game override.



  • @mitu: Thanks, but still one bit of confusion: When I load RGUI, is it starting with an empty file or default configurations? And am I right that I should edit the global RetroArch.cfg for the trackball and that I should edit or create a separate one for each game where I want to modify the inputs?

    If that's the case, and I have a mounted ramdrive I'm using for the ROMs, where do I find the specific RetroArch.cfg files for doing this?


  • Global Moderator

    @Tango said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    When I load RGUI, is it starting with an empty file or default configurations?

    It uses a default configuration, modified with a few specific RetroPie options.

    And am I right that I should edit the global RetroArch.cfg for the trackball and that I should edit or create a separate one for each game where I want to modify the inputs?

    For the trackball, you can edit the global RetroArch config - for separate game/core input remaping I recommend you go through the RGUI and use it to save those remaps, without editing any files.

    If that's the case, and I have a mounted ramdrive I'm using for the ROMs, where do I find the specific RetroArch.cfg files for doing this?

    Ramdrive is not what you mean - if you have an USB stick for housing your ROM, then only the ROMs are stored there, not any configurations. The configuration files are available through the \\retropie\configs file share or (via SSH) at /opt/retropie/configs (same folder, different viewing angles).



  • @mitu

    @mitu said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:
    ...

    And am I right that I should edit the global RetroArch.cfg for the trackball and that I should edit or create a separate one for each game where I want to modify the inputs?

    For the trackball, you can edit the global RetroArch config - for separate game/core input remap![2_1582796707434_IMG_2882.jpg](Uploading 4%) ![1_1582796707434_IMG_2881.jpg](Uploading 4%) ![0_1582796707431_IMG_2880.jpg](Uploading 4%) ing I recommend you go through the RGUI and use it to save those remaps, without editing any files.

    If that's the case, and I have a mounted ramdrive I'm using for the ROMs, where do I find the specific RetroArch.cfg files for doing this?

    Ramdrive is not what you mean - if you have an USB stick for housing your ROM, then only the ROMs are stored there, not any configurations. The configuration files are available through the \\retropie\configs file share or (via SSH) at /opt/retropie/configs (same folder, different viewing angles).

    I didn't have time to try this until today. I checked in /opt/retropie/configs and I wasn't sure whether I should edit the retroarch.cfg file in the 'all' directory or the 'mame-libretro' directory. I went for the one in 'all,' since, for adding the trackball, I figured I'd want to have it there for all emulators. (Am I right on this?)

    I loaded that file in, but did not find a 'Settings -> Input -> Port 1 Binds." Instead of Port 1 Binds, there is a Player 1 Binds item to pic, but when I pick that item, and go through the list of items in that sub-menu, I don't see anything about a mouse or trackball. I've included screenshots from my cell (sorry about the glare) of all the choices under Player 1 Binds. (attached at the bottom)

    While trying to work with RGUI, I found two related questions to config editing:

    1. Can I run RGUI from the command line? If so, what is the name of the program? I looked for anything like "retroarch," "RGUI," or any other logical conclusions like that and couldn't find them. It's MUCH easier for me to handle something like this through my ssh connection than at the arcade machine.

    2. My control console is set to sent keyboard keystrokes. I ran into issues when I tried to configure it for Player 2. Turns out, using EmulationStation's config program to set up inputs, with the whole console acting like it's part of a keyboard, that destroys the inputs for Player 1. So I can set up for Player 1 or 2 that way, but not both. Is there any reason I can't just go through and set up the Player 2 controls manually in retroarch.cfg?

    IMG_2880.jpg

    IMG_2881.jpg

    IMG_2882.jpg


  • Global Moderator

    You're using an older version of RetroArch, where "Port X" was named "User X". In the screenshot you posted (1st one), there's a 'User 1 Mouse Index' - this is what you need to change.

    RGUI - the RetroArch menu interface, the one you've opened by pressing 'Hokey + X' and appearing in the screenshots.



  • @mitu said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    You're using an older version of RetroArch, where "Port X" was named "User X". In the screenshot you posted (1st one), there's a 'User 1 Mouse Index' - this is what you need to change.

    Good! Sounds easy enough!

    If I just downloaded RetroPie a few weeks ago, how did I end up with an older version of RetroArch? Are the downloadable images behind development? Can I update them easily with apt?

    RGUI - the RetroArch menu interface, the one you've opened by pressing 'Hokey + X' and appearing in the screenshots.

    I tried RGUI from the command line, but I get "-bash: RGUI: command not found" and when I try it in lower case, I get the same thing.



  • @Tango said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    If I just downloaded RetroPie a few weeks ago, how did I end up with an older version of RetroArch? Are the downloadable images behind development? Can I update them easily with apt?

    Did you download the image from here, this site?


  • Global Moderator

    @Tango said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    If I just downloaded RetroPie a few weeks ago, how did I end up with an older version of RetroArch? Are the downloadable images behind development? Can I update them easily with apt?

    RetroPie is constanly updated - you can update your packages and RetroPie without writing a new image - https://retropie.org.uk/docs/Updating-RetroPie/.

    RGUI - the RetroArch menu interface, the one you've opened by pressing 'Hokey + X' and appearing in the screenshots.

    I tried RGUI from the command line, but I get "-bash: RGUI: command not found" and when I try it in lower case, I get the same thing.

    Please re-read what I've said in the previous topic - RGUI is not a command, but the RetroArch menu which you have already opened and it's shown in the screenshots you posted.



  • I updated my system, both RetroPie and Debian, and fixed the “forced to log in” issue I’ve seen others write about.

    I have specifically gone through and changed these files:

    • /home/pi/.config/retroarch/config/RetroArch-0222-212144..cfg
    • /opt/retropie/configs/all/retroarch.cfg
    • /opt/retropie/configs/mame-libreto/retroarch.cfg

    With each one I loaded it into RGUI, went to Settings->Input->User 1 and changed the Mouse Index to 0 and saved them. I also verified that when I did cat /dev/input/mouse0 and moved the trackball, I got data from there. I also verified this after my upgrade of the entire system by checking Settings->Input->Port 1 Binds and, again, checked the Mouse Index and it’s set to 0.

    But when I go to play Centipede, the trackball is not recognized in any way I can tell.



  • @mitu said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:
    ...

    RGUI - the RetroArch menu interface, the one you've opened by pressing 'Hokey + X' and appearing in the screenshots.

    I have to go through the RetroPie menu on ES. For some reason, that combination has never brought up RGUI.

    I tried RGUI from the command line, but I get "-bash: RGUI: command not found" and when I try it in lower case, I get the same thing.

    Please re-read what I've said in the previous topic - RGUI is not a command, but the RetroArch menu which you have already opened and it's shown in the screenshots you posted.

    RGUI looks like a CURSES based interface, like the Debian configuration menus used for some configuration functions (like setting up wifi or networking). So is it part of ES and not a separate program that can be launched on its own?


  • Global Moderator

    I have to go through the RetroPie menu on ES. For some reason, that combination has never brought up RGUI.

    Did you set up a Hotkey when you configured your input in EmulationStation ? If you didn't , then Hotkey + X will not open up the menu.

    Please re-read what I've said in the previous topic - RGUI is not a command, but the RetroArch menu which you have already opened and it's shown in the screenshots you posted.

    RGUI looks like a CURSES based interface, like the Debian configuration menus used for some configuration functions (like setting up wifi or networking). So is it part of ES and not a separate program that can be launched on its own?

    No, it's not part of ES - it's part of RetroArch.

    For your actual issue - the mouse not getting detected or used - try loading a game with verbose logging enabled from the Runcommand launch menu, exit the game and then post the /dev/shm/runcommand.log on pastebin.com to take a look.



  • @mitu said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    I have to go through the RetroPie menu on ES. For some reason, that combination has never brought up RGUI.

    Did you set up a Hotkey when you configured your input in EmulationStation ? If you didn't , then Hotkey + X will not open up the menu.

    Yes. I use HotKey+1Player all the time to get out of games.

    Please re-read what I've said in the previous topic - RGUI is not a command, but the RetroArch menu which you have already opened and it's shown in the screenshots you posted.

    RGUI looks like a CURSES based interface, like the Debian configuration menus used for some configuration functions (like setting up wifi or networking). So is it part of ES and not a separate program that can be launched on its own?

    No, it's not part of ES - it's part of RetroArch.

    Wow - surprised it's not command line based. Interesting that EmulationStation does so much without things like X or curses, for the text based RetroArch.

    For your actual issue - the mouse not getting detected or used - try loading a game with verbose logging enabled from the Runcommand launch menu, exit the game and then post the /dev/shm/runcommand.log on pastebin.com to take a look.

    Done. It's right here.


  • Global Moderator

    Wow - surprised it's not command line based. Interesting that EmulationStation does so much without things like X or curses, for the text based RetroArch.

    RetroArch is not 'text based'. I think you're greatly oversimplifying things and confusing what 'text based' means. Just because you can't use a mouse in an interface or it doesn't use an X session, it doesn't make it 'text based'.

    For your actual issue - the mouse not getting detected or used - try loading a game with verbose logging enabled from the Runcommand launch menu, exit the game and then post the /dev/shm/runcommand.log on pastebin.com to take a look.

    Done. It's right here.

    I see in the log about 3 mice type devices detected, change the index from 0 to 1 or 2 and see if it makes a difference.

    [INFO] [udev]: Mouse #0 (/dev/input/event4).
    [INFO] [udev]: Mouse #1 (/dev/input/mouse1).
    [INFO] [udev]: Mouse #2 (/dev/input/event5).
    [INFO] [udev]: Mouse #3 (/dev/input/mouse2).
    [INFO] [udev]: Mouse #4 (/dev/input/event1).
    [INFO] [udev]: Mouse #5 (/dev/input/mouse0).
    


  • Tried all three mouse connectors. Trackball not recognized. But there’s more that might help:

    /dev/input/mouse0: Trackball
    /dev/input/mouse1: Mouse
    /dev/input/mouse2: Spinner

    The mouse is a battery powered mouse. It doesn’t work through bluetooth, but connects to a USB dongle that the keyboard also connects to. So I have to keep the dongle plugged in for the keyboard to work. Whether the mouse is on or off, the dongle is still there and still looks like it’s a mouse.

    When I changed the input to 2, which is the spinner, it worked. The spinner works in Tempest and I never configured it. But when I tried using mouse0 or mouse1, the whole arcade system doesn’t seem to recognize a thing. I tried Centipede with all 3 inputs and nothing happened at all with 0 or 1.

    Should I note that Centipede does respond to the joystick?

    I’m wondering if I may need to do some remapping of the trackball in some way - make it send a different signal for each direction than it already does? (But that wouldn’t make sense - I’m sure the mouse is standard in terms of connection and that doesn’t work through RetroArch either.)

    Also, right now, I’m finding I need to edit the retroarch.cfg in /opt/retropie/configs/mame-libretro to have an effect. I realize this is because it’s hierarchical and the most immediate one applies. Is there a way to remove this setting from this particular retroarch.cfg so the one on /opt/retropie/configs/all will be used instead?


  • Global Moderator

    @Tango

    Also, right now, I’m finding I need to edit the retroarch.cfg in /opt/retropie/configs/mame-libretro to have an effect. I realize this is because it’s hierarchical and the most immediate one applies. Is there a way to remove this setting from this particular retroarch.cfg so the one on /opt/retropie/configs/all will be used?

    the mame-libretro cfg settings will always override the all cfg settings, but typically you should have hardly anything in the former file, other than the settings you wish to override from /all/retroarch.cfg. you certainly wouldn’t expect to see any mouse settings in it by default.

    if you’ve gotten yourself into a mess, have a look at the retroarch.cfg.rp-dist file in /opt/retropie/configs/mame-libretro - this is the default skeleton version of the file that you can copy over the retroarch.cfg file to return to normal behaviour. if it’s not there, update lr-mame2003 and it will be generated.



  • @dankcushions

    @dankcushions said in Sorting out RetroArch, Libretro, Mame, Versions, and Configuration files:

    @Tango

    Also, right now, I’m finding I need to edit the retroarch.cfg in /opt/retropie/configs/mame-libretro to have an effect. I realize this is because it’s hierarchical and the most immediate one applies. Is there a way to remove this setting from this particular retroarch.cfg so the one on /opt/retropie/configs/all will be used?

    the mame-libretro cfg settings will always override the all cfg settings, but typically you should have hardly anything in the former file, other than the settings you wish to override from /all/retroarch.cfg. you certainly wouldn’t expect to see any mouse settings in it by default.

    if you’ve gotten yourself into a mess, have a look at the retroarch.cfg.rp-dist file in /opt/retropie/configs/mame-libretro - this is the default skeleton version of the file that you can copy over the retroarch.cfg file to return to normal behaviour. if it’s not there, update lr-mame2003 and it will be generated.

    I'm going to take a closer look at those configurations for that version of Mame, in case that's what's messing up the trackball. Thanks!



  • I went through config files and even used the rp-dist in /opt/retropie/configs/mame-libretro to replace the modified one in the retroarch.cfg in that directory. Still no luck.

    But I've come upon a frustrating issue that does not seem to fit in with the situation. It's so different from what I'm dealing with, I started a new thread and went into long and careful detail of what I did and what's going on. It's here.



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.