Search Results for 'hotkey'

Welcome Page Forums Search Search Results for 'hotkey'

Viewing 35 results - 246 through 280 (of 1,077 total)
  • Author
    Search Results
  • #107747


    I have a problem. The shader(s) works when scrolling through the dir with hotkey, but I can’t seem to get the shader to load on startup

    Am I doing something wrong? My retroarch.cfg looks like this:

    video_shader = /opt/retropie/emulators/retroarch/shader/pe358shader.glsl

    video_shader_enable = “true”

    video_shader_dir = /opt/retropie/emulators/retroarch/shader/



    I’ve been trying to get to the bottom of this one as there’s not a single MAME/FBA libretro core that doesn’t have this issue! Turns out it’s intentional behaviour in retroarch, which seems crazy to me as if the hotkey always took up a button and turned off that buttons normal behaviour, you would never be able to, for example, use SNES controllers in SNES emulators, as they have no buttons to spare!

    fortunately, it seems every emulator core EXCEPT the mame/fba cores (and only for some games within), don’t function as intended 😛 but we’re still left with this problem in all the arcade cores.

    i’ve raised this as an issue with retroarch but they seem dismissive of it for some reason:


    path found


    I have edited the file retroarch.cfg

    #Hotkeys- Hotkeys enable you to press a combination of buttons to do such things as exit emulators, save states,
    # and load states, as well as any other functionality in an emulator. (In the example below 8 is the select key
    # and 9 is the start key so when I hold down select and press start it will exit the emulator.)
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    I attach the full cfg file.

    Unfortunately still not working




    Thank you for taking the time to post. I really appreciate it. I think I figured it out, at least enough to have everything in a workable state.

    What I did was disable the change I made for the exit button in the all cfg, and in the 360 cfg file it listed the menu option as 2, with hotkey as 8. So, I held down select, pushed X and the menu came up (which wasn’t before with the exit button change). I made all the changes in the menu to the controls, saved the config (which outputs the name of the emulator.cfg, which wouldn’t load automatically upon relaunch), then quit. Then, from WinSCP I renamed the original retroarch.cfg file in each emulator folder to something irrelevant in case I ever needed it, and renamed the newly saved cfg as retroarch.cfg and it worked. Now, whenever I load up the emulator, it has my control settings saved between sessions without any menu fiddling.

    Not sure what the repercussions are from doing this, if any, but it seems to do the job for now.


    You have to set up hotkeys in your controller config file. You should add the following lines:

    input_enable_hotkey_btn = “0”
    input_exit_emulator_btn = “9”

    This would exit the emulator when you press start while holding down select. If preferred you can change either value to any other button you would rather use.


    Raspberry Pi 2, Wheezy, Current emulationstation/retropie (afaik) installed from the binary option during the initial retropie script install when following the setup guide. Using a 360 wireless controller. Most everything functions as intended; stuff launches games, Kodi is listed under ports and working, and I can quit back to the menu most of the time without having to ssh in from somewhere else and issuing a reboot.

    I’m somewhat comfortable with Linux, most of my background is in Windows with a little Unix. I picked up a Raspberry Pi 2 as a learning exercise mostly, and found about this project after purchase and am now too far down the rabbit hole to back out. Anyway…

    I did the initial 360 controller config during startup, and controller works fine with default controls under everything I’ve tested. However, the controls are backwards from default SNES, NES, etc, plus some controls are missing from some emulators so I’d like to adjust buttons around uniquely on a case by case basis.

    I also need to assign different hotkeys like save states, core options menu, etc, but when I change the retroarch.cfg file in the emulator folder it doesn’t seem to have any effect. I’m copying settings either from the 360 config file from /retroarch-joypads/, or the retroarch.cfg file under /opt/retropie/configs/all/. The only thing I’ve been able to successfully do so far is to add:

    input_enable_hotkey_btn = “10”
    input_exit_emulator_btn = “10”

    to the /all/retroarch.cfg to make the xbox button quit back to the menu. I read something about the input_enable_hotkey needing to be set to enable shortcuts, but I couldn’t figure it out based on trial and error.

    If I could pull up the options menu once the emulator has launched at the very least, I could do it from there instead of editing files by hand, but I can’t get it to open using any controller buttons or by mashing the keyboard.

    I’ve been at this for about a week now and have done a ton of research, and I find conflicting information in places, or suggestions that do not seem to work.

    Here are some example links that I’ve been referencing:

    Change one button for an emulator

    Based on everything I’ve seen/read, I’ve found at least 4 separate places where there could be configuration files:


    I’ve made changes to all of these, and all I successfully got working was the xbox home button under /all/, however, in the SNES emulator the START button quits the emulator and not the home button like in everything else, so I have no idea what’s going on there.

    I know I’m doing something wrong somewhere, but I can’t figure out what it is. Anyone have any suggestions?



    Found a workaround for this…. Just leave the hotkey as select and use the second Buffalo controller to add coins instead.


    Hello everyone !

    I’m working on building a bartop based on Retropie and Raspberry 2. I’m loving the way Retropie emulates good old times games.

    I’m trying to make hotkey work with fba2x.cfg and play Neogeo games. I configured fba2x.cfg and all/retroarch.cfg for other emulators.

    I quit emulator when I press Shift + enter, which I have not defined anywhere for NeoGeo Games. I tried to configure fba/retroarch.cfg adding hotkey button with “U” and “Y” key but there is no effect. I’ve understood sometimes there are conflicts between the hotkeys and insert coin buttons but I’m not able to make it for fba.

    Is there anyone who can help me fixing this issue ?

    Billy T. Pilgrim

    I love getting the bezel artwork just right on my arcade games, and with the RetroArch versions of MAME and FBA it’s very customisable. For an example, let’s say we’re making artwork for the Simpsons arcade game, which is in your roms folder.

    You will need:

    – an Overlays folder somewhere on your Pi. This will contain an image for each game with that game’s bezel artwork, and a .cfg file for each to tell Retroarch what to do with the image. For our example we’ll use /home/pi/mame-overlays.

    – a custom .cfg file in the rom folder for each game, which tells Retroarch which overlay to use and where to draw the screen.


    – Go into Photoshop/GIMP/image editor of your choice and make a new transparent file of whatever size your screen resolution is. In a new layer, make a rectangle to represent the screen of the emulator. The size isn’t crucial, but particularly if you’re using shaders you might want to make it a whole multiple of the game’s original resolution. Colour the rectangle in whatever bright colour you want – it’s just there as a guide.

    – Paste in the images you want for the bezels etc, and move the images and the screen placeholder you just made into whatever arrangement you like. Here’s what your image should look like:

    Bezel guide

    The green is where you want the emulator’s screen to be, and the red is the instructions, bezel images and so on. The white areas are transparent.

    – Measure the pixel dimensions of the emulator screen, which are A and B on the diagram, and note them down somewhere. Then do the same with the distances of the emulator screen from the left and the top of the image – distances C and D in the diagram.

    – Now delete the emulator screen placeholder so you’ve just got a transparent image with the bezel images in the right places. Save the image as a transparent PNG and put it in the overlays folder on your Pi. For our example, let’s call it /home/pi/mame-overlays/simpsons.png.


    RetroArch has pretty powerful tools for creating overlays, as you can make fancy ones with working controls overlaid for touchscreen devices. We don’t need to worry about that here, though, our overlay is just a single image.

    Create a new text file, and paste in the following:

    overlays = 1
    overlay0_overlay = (path to your overlay image)
    overlay0_descs = 0
    overlay0_fullscreen = true

    That’s it. All we’re doing is telling Retroarch to use a particular image and to display it fullscreen. So, our example would look like this:

    overlays = 1
    overlay0_overlay = /home/pi/mame-overlays/simpsons.png
    overlay0_descs = 0
    overlay0_fullscreen = true

    Save your file in the overlays folder with the same name as the image file – in our example it would be saved as /home/pi/mame-overlays/simpsons.cfg.


    Now you need to create a .cfg file for each game you’ve made a bezel for. This contains settings which override the ones in the main retroarch.cfg, but just for one particular ROM file.

    Open a new text file and paste in the following – don’t paste the bits in brackets, they just explain what the different lines do:

    input_overlay_enable = true (Tells RetroArch to use an overlay.)
    input_overlay = [path to your overlay cfg file] (Tells RetroArch which overlay to use.)
    input_overlay_opacity = 1.0 (Tells RetroArch to display the overlay completely opaque.)
    input_overlay_scale = 1.0 (Tells RetroArch to scale the overlay to fullscreen.)

    Now, we need the values you noted down earlier when you made the overlay image. This bit tells RetroArch to display the emulator screen at a specific size and location on your monitor / TV.

    Paste in the following lines (again, not the bits in brackets):

    aspect_ratio_index = “22” (Tells RetroArch to use a custom “viewport”)
    custom_viewport_width = “A” (Tells RetroArch the width of the emulator screen)
    custom_viewport_height = “B” (Tells RetroArch the height of the emulator screen)
    custom_viewport_x = “C” (Tells Retroarch how far from the left of the monitor to draw the emulator screen)
    custom_viewport_y = “D” (Tells Retroarch how far from the left of the monitor to draw the emulator screen)

    In place of A, B, C and D put in your own values that you measured when making the overlay image. Here’s our example:

    input_overlay_enable = true
    input_overlay = /home/pi/mame-overlays/simpsons.cfg
    input_overlay_opacity = 1.0
    input_overlay_scale = 1.0

    aspect_ratio_index = “22”
    custom_viewport_width = “1152”
    custom_viewport_height = “864”
    custom_viewport_x = “384”
    custom_viewport_y = “108”

    Now we just need to save the .cfg file. It needs to be saved in your ROMs folder, named the same as your ROM file with .cfg on the end INCLUDING THE ORIGINAL EXTENSION – so in our example where we use, we’d save the file as

    Now, when you start the game in RetroArch, it should come up with the overlay in just the right place.

    This method also works for anything else that plays in RetroArch – I use an overlay for all of my consoles, to give a very slight TV curvature and to display the console’s logo and a guide to the controller hotkeys.

    To apply an overlay to a whole console rather than an individual game, just follow the steps above but instead of saving a new .cfg file in the rom folder, just add or change those lines in the retroarch.cfg file in your console’s own folder in the configs directory.


    There are a couple of things you can try if it’s not working, which actually apply to a lot of stuff on the Pi generally.

    – Are your file permissions okay? Check you have full access to the all the configs and images by typing the following at the console:

    sudo chmod -R 777 [path to your overlays folder]
    sudo chmod -R 777 [path to your roms folder]

    – Is the case on everything correct? Long time Linux users probably know this already, but to Linux, SIMPSONS.PNG is very different from simpsons.png. If you’re asking for one and the file’s called the other, it won’t find it.

    – Are your line-endings correct in the config files? If you made your configs on a Windows system, they may well have Windows-style line endings. To change this, check them in a text editor that displays EOL (end of line) characters. I find Notepad++ really good, and it can automatically change Windows to Unix-style line endings.

    Hope this is helpful to people! Any questions or issues, please feel free to reply or PM me.



    Can configure the options with 2buttons?? (For example input_disk_eject_toggle_btn = “1+3” (“L2+R2″) As??
    How many other commands can write in the config file to configure more options?? Like savestate, loadstate etcetc Anyone have a list of this options?? Thanks and sorry for bad english 😉

    No. Unfortunatly you can’t bind 2 buttons to 1 command.

    I post you my list of hotkeys:

    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "6"
    input_save_state_btn = "5"
    input_load_state_btn = "4"
    input_pause_toggle_btn = "2"
    input_reset_btn = "1"
    input_menu_toggle_btn = "7"
    input_state_slot_increase_btn = "h0right"
    input_state_slot_decrease_btn = "h0left"
    input_disk_eject_toggle_btn = "10"
    input_disk_next_btn = "h0up"
    input_disk_prev_btn = "h0down"
    input_hold_fast_forward_btn = "3"
    input_rewind_axis = "+5"


    (Thanks for taking the time to make the helpful setup vids by the way Floob – awesome work!)

    Issue is when you then use the shoulder + another button then as a combo, or a special that involves say all punch buttons… you end triggering something related to the hotkey then… or if you use shoulder + a direction it knocks is on a save state for example.

    It’s driving me nuts trying to find a way around it!

    If I had a 7th button on the controller it would be fine!

    I’ve tried re-assigning the hotkey to the keyboard from within the FBA in-game menu also but it only detects controller presses.



    You could use a shoulder button for hotkey anyway? Its just it would punch or kick etc.. at the same time – it would still act as the hotkey enable though.

    RetroPie help guides -->
    Please read this before asking for help -->



    Select is the default button for enter coin… start is well, start game.

    If you change hotkey to select then you can’t enter a coin.

    If you change it start, then you can’t start the game.

    It’s well documented that under FBA you have to change the hotkey from the DEFAULT button of SELECT for this reason…

    Any other game would be fine as there will be a spare button (such as a shoulder button).


    The /all/retroarch.cfg differs a fair bit from the 2.6 version.

    In yours, comment out these lines

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_save_state_btn = 4
    input_load_state_btn = 5
    input_player1_a_btn = 2
    input_player1_b_btn = 3
    input_player1_y_btn = 1
    input_player1_x_btn = 0
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    input_player1_enable_hotkey_btn = 8
    input_player1_exit_emulator_btn = 9
    input_player1_menu_toggle_btn = 0
    input_player1_load_state_btn = 4
    input_player1_save_state_btn = 5
    input_player1_reset_btn = 2
    input_player1_state_slot_increase_axis = +0
    input_player1_state_slot_decrease_axis = -0

    Your setup should be using the auto controller files, as it has this line:
    input_autodetect_enable = true

    It then looks here for them
    joypad_autoconfig_dir = /opt/retropie/emulators/retroarch/configs/all/

    Check this video for more info

    RetroPie help guides -->
    Please read this before asking for help -->



    I understand that I should only edit controller configurations. But like I said, editing those does absolutely nothing. I think program does not use autodetect? I could be the issue. Could you post your retroarch.cfg so I can compare mine.

    Here is mine, please inform if you see odd stuff there.

    ## Skeleton config file for RetroArch
    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
    # This will be overridden by explicit command line options.
    # savefile_directory =
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    # savestate_directory =
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    # Save all input remapping files to this directory.
    # input_remapping_directory =
    # Save all playlist files to this directory.
    # playlist_directory =
    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =
    # Automatically saves a savestate at the end of RetroArch's lifetime.
    # The path is $
    # RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
    # savestate_auto_save = false
    # savestate_auto_load = true
    # Load libretro from a dynamic location for dynamically built RetroArch.
    # This option is mandatory.
    # Path to a libretro implementation.
    # libretro_path = /path/to/
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    # A directory for where to search for libretro core information.
    # libretro_info_path =
    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    # Path to core options config file.
    # This config file is used to expose core-specific options.
    # It will be written to by RetroArch.
    # A default path will be assigned if not set.
    core_options_path = /opt/retropie/configs/all/retroarch-core-options.cfg
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu and from CLI directly for convenient quick loading.
    # A default path will be assigned if not set.
    # game_history_path =
    # Number of entries that will be kept in content history file.
    # game_history_size = 100
    # Sets the system directory.
    # Implementations can query for this directory to load BIOSes, system-specific configs, etc.
    system_directory = /home/pi/RetroPie/BIOS
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    assets_directory = /opt/retropie/emulators/retroarch/assets
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    # Show startup screen in menu.
    # Is automatically set to false when seen for the first time.
    # This is only updated in config if config_save_on_exit is set to true, however.
    # rgui_show_start_screen = true
    # Flushes config to disk on exit. Useful for menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    # Load up a specific config file based on the core being used.
    # core_specific_config = false
    #### Video
    # Video driver to use. gl, xvideo, sdl
    # video_driver = gl
    # Which OpenGL context implementation to use.
    # Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl.
    # By default, tries to use first suitable driver.
    # video_context_driver =
    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 3.0
    # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
    video_fullscreen_x = 1280
    video_fullscreen_y = 720
    # Start in fullscreen. Can be changed at runtime.
    # video_fullscreen = false
    # If fullscreen, prefer using a windowed fullscreen mode.
    # video_windowed_fullscreen = true
    # Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
    # suggests RetroArch to use that particular monitor.
    # video_monitor_index = 0
    # Forcibly disable composition. Only works in Windows Vista/7 for now.
    # video_disable_composition = false
    # Video vsync.
    video_vsync = true
    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false
    # Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance.
    # video_hard_sync = false
    # Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
    # Maximum is 3.
    # video_hard_sync_frames = 0
    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 0
    # Inserts a black frame inbetween frames.
    # Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
    # video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
    # video_black_frame_insertion = false
    # Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
    video_threaded = true
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = true
    # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
    video_force_aspect = false
    # Only scales video in integer steps.
    # The base size depends on system-reported geometry and aspect ratio.
    # If video_force_aspect is not set, X/Y will be integer scaled independently.
    # video_scale_integer = false
    # A floating point value for video aspect ratio (width / height).
    # If this is not set, aspect ratio is assumed to be automatic.
    # Behavior then is defined by video_aspect_ratio_auto.
    video_aspect_ratio = 1.77
    #1.333333 (4:3) Traditional SDTV
    #1.56 (14:9) 4:3/16:9 Compromise aspect ratio
    #1.6667 (5:3 Super 16mm)
    #1.77 (16:9) HDTV US standard 
    #1.78 (16:9) HDTV US standard alternate
    #1.6 (16:10) Common computer screen ratio
    #1.6667 (5:3) Common European widescreen standard
    #1.85 Common US widescreen cinema
    #2.39 Current widescreen cinema alternate
    #2.40 Current widescreen cinema alternate
    # If this is true and video_aspect_ratio is not set,
    # aspect ratio is decided by libretro implementation.
    # If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set.
    #video_aspect_ratio_auto = true
    # Forces cropping of overscanned frames.
    # Exact behavior of this option is implementation specific.
    video_crop_overscan = true
    # Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset)
    #video_shader = /opt/retropie/emulators/retroarch/shader/crt/crt-hyllian-glow/crt-hyllian.glsl
    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    #video_shader_enable = true
    # Defines a directory where shaders (Cg, CGP, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =
    # Path to a font used for rendering messages. This path must be defined to enable fonts.
    # Do note that the _full_ path of the font is necessary!
    # video_font_path = 
    # Size of the font rendered.
    video_font_size = 12
    # Enable usage of OSD messages.
    # video_font_enable = true
    # Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values. 
    # [0.0, 0.0] maps to the lower left corner of the screen.
    # video_message_pos_x = 0.05
    # video_message_pos_y = 0.05
    # Color for message. The value is treated as a hexadecimal value.
    # It is a regular RGB hex number, i.e. red is ff0000.
    # video_message_color = ffffff
    # Video refresh rate of your monitor.
    # Used to calculate a suitable audio input rate.
    # video_refresh_rate = 59.95
    # Allows libretro cores to set rotation modes.
    # Setting this to false will honor, but ignore this request.
    # This is useful for vertically oriented content where one manually rotates the monitor.
    # video_allow_rotate = true
    # Forces a certain rotation of the screen.
    # The rotation is added to rotations which the libretro core sets (see video_allow_rotate).
    # The angle is <value> * 90 degrees counter-clockwise.
    # video_rotation = 0
    #### Audio
    # Enable audio.
    # audio_enable = true
    # Mutes audio.
    # audio_mute_enable = false
    # Audio output samplerate.
    audio_out_rate = 44100
    # Audio resampler backend. Which audio resampler to use.
    # Default will use sinc.
    # audio_resampler =
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver = sdl
    # Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ...
    # audio_device =
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    # Directory where DSP plugins are kept.
    # audio_filter_dir =
    # Will sync (block) on audio. Recommended.
    # audio_sync = true
    # Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency.
    # audio_latency = 64
    # Enable audio rate control.
    # audio_rate_control = true
    # Controls audio rate control delta. Defines how much input rate can be adjusted dynamically.
    # Input rate = in_rate * (1.0 +/- audio_rate_control_delta)
    # audio_rate_control_delta = 0.005
    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05
    # Audio volume. Volume is expressed in dB.
    # 0 dB is normal volume. No gain will be applied.
    # Gain can be controlled in runtime with input_volume_up/input_volume_down.
    # audio_volume = 0.0
    #### Overlay
    # Defines a directory where overlays are kept for easy access.
    overlay_directory = /opt/retropie/emulators/retroarch/overlays
    # Enable or disable the current overlay.
    # input_overlay_enable = true
    # Path to input overlay
    # input_overlay =
    # Overlay opacity
    # input_overlay_opacity = 1.0
    # Overlay scale
    # input_overlay_scale = 1.0
    #### OSK (Onscreen Keyboard) Overlay
    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =
    # Enable OSK overlay.
    # input_osk_overlay_enable = true
    # Path to OSK overlay
    # input_osk_overlay =
    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0
    # OSK Overlay scale
    # input_osk_overlay_scale = 1.0
    #### Input
    # Input driver. Depending on video driver, it might force a different input driver.
    # input_driver = sdl
    # Joypad driver. (Valid: linuxraw, sdl, dinput)
    # input_joypad_driver =
    input_joypad_driver = udev
    # Path to input remapping file.
    # input_remapping_path =
    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true
    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. no), or a layout and variant separated with colon (no:nodeadkeys).
    # input_keyboard_layout =
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true
    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true
    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false
    # Directory for joypad autoconfigs.
    # If a joypad is plugged in, that joypad will be autoconfigured if a config file
    # corresponding to that joypad is present in joypad_autoconfig_dir.
    # Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs.
    # Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend.
    # Requires input_autodetect_enable to be enabled.
    joypad_autoconfig_dir = /opt/retropie/emulators/retroarch/configs/all/
    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # Device IDs are found in libretro.h.
    # These settings are overridden by explicit command-line arguments which refer to input devices.
    # None: 0
    # Joypad (RetroPad): 1
    # Mouse: 2
    # Keyboard: 3
    # Generic Lightgun: 4
    # Joypad w/ Analog (RetroPad + Analog sticks): 5
    # Multitap (SNES specific): 257
    # Super Scope (SNES specific): 260
    # Justifier (SNES specific): 516
    # Justifiers (SNES specific): 772
    #joypad hotkeys
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_save_state_btn = 4
    input_load_state_btn = 5
    input_player1_a_btn = 2
    input_player1_b_btn = 3
    input_player1_y_btn = 1
    input_player1_x_btn = 0
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    input_player1_enable_hotkey_btn = 8
    input_player1_exit_emulator_btn = 9
    input_player1_menu_toggle_btn = 0
    input_player1_load_state_btn = 4
    input_player1_save_state_btn = 5
    input_player1_reset_btn = 2
    input_player1_state_slot_increase_axis = +0
    input_player1_state_slot_decrease_axis = -0
    # input_libretro_device_p3 =
    # input_libretro_device_p4 =
    # input_libretro_device_p5 =
    # input_libretro_device_p6 =
    # input_libretro_device_p7 =
    # input_libretro_device_p8 =
    # Keyboard input. Will recognize letters (a to z) and the following special keys (where kp_
    # is for keypad keys):
    #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    # Keyboard input, Joypad and Joyaxis will all obey the nul bind, which disables the bind completely, 
    # rather than relying on a default.
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =
    # Two analog sticks (DualShock-esque).
    # Bound as usual, however, if a real analog axis is bound,
    # it can be read as a true analog.
    # Positive X axis is right, Positive Y axis is down.
    # input_player1_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    # If desired, it is possible to override which joypads are being used for user 1 through 8.
    # First joypad available is 0.
    # input_player1_joypad_index = 0
    # input_player2_joypad_index = 1
    # input_player3_joypad_index = 2
    # input_player4_joypad_index = 3
    # input_player5_joypad_index = 4
    # input_player6_joypad_index = 5
    # input_player7_joypad_index = 6
    # input_player8_joypad_index = 7
    # Joypad buttons.
    # Figure these out by using RetroArch-Phoenix or retroarch-joyconfig.
    # You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction. 
    # E.g. h0up
    # input_player1_a_btn =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # input_player1_left_btn =
    # input_player1_right_btn =
    # input_player1_up_btn =
    # input_player1_down_btn =
    # input_player1_l2_btn =
    # input_player1_r2_btn =
    # input_player1_l3_btn =
    # input_player1_r3_btn =
    # Axis for RetroArch D-Pad. 
    # Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number. 
    # Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity.
    # input_player1_left_axis =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    # Holding the turbo while pressing another button will let the button enter a turbo mode
    # where the button state is modulated with a periodic signal.
    # The modulation stops when the button itself (not turbo button) is released.
    # input_player1_turbo =
    # Describes the period and how long of that period a turbo-enabled button should behave.
    # Numbers are described in frames.
    # input_turbo_period = 6
    # input_turbo_duty_cycle = 3
    # This goes all the way to user 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.
    # All input binds have corresponding binds for keyboard (none), joykeys (_btn) and joyaxes (_axis) as well.
    # Toggles fullscreen.
    # input_toggle_fullscreen = f
    # Saves state.
    # input_save_state = f2
    # Loads state.
    # input_load_state = f4
    # State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline).
    # When slot is != 0, path will be $path%d, where %d is slot number.
    # input_state_slot_increase = f7
    # input_state_slot_decrease = f6
    # Toggles between fast-forwarding and normal speed.
    # input_toggle_fast_forward = space
    # Hold for fast-forward. Releasing button disables fast-forward.
    # input_hold_fast_forward = l
    # Key to exit RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    # Applies next and previous shader in directory.
    input_shader_next = m
    input_shader_prev = n
    # Hold button down to rewind. Rewinding must be enabled.
    #input_rewind = r
    # Toggle between recording and not.
    # input_movie_record_toggle = o
    # Toggle between paused and non-paused state
    # input_pause_toggle = p
    # Frame advance when content is paused
    # input_frame_advance = k
    # Reset the content.
    # input_reset = h
    # Cheats.
    # input_cheat_index_plus = y
    # input_cheat_index_minus = t
    # input_cheat_toggle = u
    # Mute/unmute audio
    # input_audio_mute = f9
    # Take screenshot
    # input_screenshot = f8
    # Netplay flip users.
    # input_netplay_flip_players = i
    # Hold for slowmotion.
    # input_slowmotion = e
    # Enable other hotkeys.
    # If this hotkey is bound to either keyboard, joybutton or joyaxis,
    # all other hotkeys will be disabled unless this hotkey is also held at the same time.
    # This is useful for RETRO_KEYBOARD centric implementations
    # which query a large area of the keyboard, where it is not desirable
    # that hotkeys get in the way.
    # Alternatively, all hotkeys for keyboard could be disabled by the user.
    #input_enable_hotkey_btn = 8
    #input_enable_hotkey_btn = 12
    # Increases audio volume.
    # input_volume_up = kp_plus
    # Decreases audio volume.
    # input_volume_down = kp_minus
    # Toggles to next overlay. Wraps around.
    # input_overlay_next =
    # Toggles eject for disks. Used for multiple-disk content.
    # input_disk_eject_toggle =
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    # Toggles menu.
    input_menu_toggle = f1
    # Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse,
    # and keeps the mouse pointer inside the window to allow relative mouse input
    # to work better.
    # input_grab_mouse_toggle = f11
    #### Menu
    # Menu driver to use. rgui, lakka, etc. 
    # menu_driver = rgui
    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false
    # Enable mouse input inside the menu.
    # menu_mouse_enable = false
    # Enable touch input inside the menu.
    # menu_pointer_enable = false
    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true
    # Shows current core inside menu.
    # menu_core_enable = true
    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =
    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false
    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false
    # Filter files being show in 'Load Content' by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true
    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false
    #### UI
    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable  = true
    #### Camera
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    # Override the default privacy permission for cores that want to access camera services. Is false by default.
    # camera_allow = false
    #### Location
    # Override the default privacy permission for cores that want to access location services. Is false by default.
    # location_allow = false
    #### Core Updater
    # URL to core update directory on buildbot.
    # core_updater_buildbot_url =
    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url =
    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true
    #### Network
    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false
    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname = 
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    #### Misc
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    # Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer.
    # The buffer should be approx. 20MB per minute of buffer time.
    rewind_buffer_size = 10
    # Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed.
    rewind_granularity = 2
    # Pause gameplay when window focus is lost.
    # pause_nonactive = true
    # Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise.
    # The interval is measured in seconds. A value of 0 disables autosave.
    # autosave_interval =
    # Path to content database directory.
    # content_database_path =
    # Path to cheat database directory.
    # cheat_database_path =
    # Path to XML cheat config, a file which keeps track of which
    # cheat settings are used for individual games.
    # If the file does not exist, it will be created.
    # cheat_settings_path =
    # Directory to dump screenshots to.
    # screenshot_directory =
    # Records video after CPU video filter.
    # video_post_filter_record = false
    # Records output of GPU shaded material if available.
    # video_gpu_record = false
    # Screenshots output of GPU shaded material if available.
    video_gpu_screenshot = true
    # Block SRAM from being overwritten when loading save states.
    # Might potentially lead to buggy games.
    # block_sram_overwrite = false
    # When saving a savestate, save state index is automatically increased before
    # it is saved.
    # Also, when loading content, the index will be set to the highest existing index.
    # There is no upper bound on the index.
    # savestate_auto_index = false
    # Slowmotion ratio. When slowmotion, content will slow down by factor.
    # slowmotion_ratio = 3.0
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 300 fps cap).
    # RetroArch will go to sleep to ensure that the maximum rate will not be exceeded.
    # Do not rely on this cap to be perfectly accurate.
    # fastforward_ratio = 1.0
    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    input_enable_hotkey = nul


    As far as I know, Street Fighter doesn’t use button combinations involving start and select. The whole point of hotkeys is that you hold down a button and then press down another button to perform the action you want. If the hotkey you are trying to set up is to exit the emulator, just set it so you hold down select and then push a shoulder button or something.


    In reply to: 2 x joystick config



    No problem!

    I understand the logic for the auto config files like you mentioned but since I only use a Xin-Mo with my setup, I’ve not really delved into utilising them I’m afraid.

    If it helps, here are the steps that I took to set up my controls once I had added the entry to cmdline.txt:

    Quit to the terminal using F4
    Type “cd /dev/input” to change to that directory
    Type “ls” and it will show the directory contents
    Look for js0, js1, js2, etc.
    Type “jstest js0”
    Press buttons to see what they are identified as and make a list/diagram, press Ctrl-C to quit jstest

    Type “sudo nano /opt/retropie/configs/all/retroarch.cfg”
    Go to the end of this file and add custom controls using the list/diagram such as:

    input_enable_hotkey_btn = “9”
    input_pause_toggle_btn = “7”
    input_exit_emulator_btn = “10”
    input_menu_toggle_btn = “6”
    input_volume_up_axis = “-1”
    input_volume_down_axis = “+1”
    input_audio_mute_btn = “8”

    input_player1_joypad_index = “1”

    input_player1_up_axis = “-1”
    input_player1_down_axis = “+1”
    input_player1_left_axis = “-0”
    input_player1_right_axis = “+0”
    input_player1_a_btn = “1”
    input_player1_b_btn = “0”
    input_player1_x_btn = “2”
    input_player1_y_btn = “3”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_select_btn = “6”
    input_player1_start_btn = “7”

    input_player2_joypad_index = “0”

    input_player2_up_axis = “-1”
    input_player2_down_axis = “+1”
    input_player2_left_axis = “-0”
    input_player2_right_axis = “+0”
    input_player2_a_btn = “1”
    input_player2_b_btn = “0”
    input_player2_x_btn = “2”
    input_player2_y_btn = “3”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_select_btn = “6”
    input_player2_start_btn = “7”

    input_player1_joypad_index = “1” should refer to the js name found previously
    Press Ctrl-X to quit and make sure to press Y to save
    Type “emulationstation” to get back to the familiar menus and try one of the retroarch emulators!

    Hope this helps! Maybe not the clearest steps but if you need any more help just ask!



    No… the buffalo controller has 6 buttons + start and select. All of the buttons are used in some games such as Street fighter… for most games it’s fine as the may only use 2 or maybe 4 buttons (so you can assign the shoulder buttons as a hotkey).



    Thank you so much! This worked like a charm!

    I also used nano to change retroarch.cfg in regards to the hotkey buttons

    input_enable_hotkey_btn =”N”

    input_exit_emulator_btn = “N”
    input_reset_btn = “N”
    input_menu_toggle_btn = “N”

    (N beeing the corresponding button on my joypad.)



    @atimmins Yes, there does seem to be an issue with the shoulder buttons on that model – I think it may relate to the firmware on the controller. Perhaps an update will come out to resolve that. In the meantime you could remap the hotkey to something else.

    To set a controller as P1, try plugging it into the top left usb port, and p2 into the bottom left port. (p3 is top right and p4 is bottom right).

    RetroPie help guides -->
    Please read this before asking for help -->


    Is there a way to set a specific controller key or disable the game launch menu from activating when “any” button is pressed during game launch?

    I’m using a DualShock 4 controller and the gyroscope triggers the game launch menu unless I keep the controller perfectly still (near impossible).

    If I could just set the hotkey to a specific controller key rather than ANY key it would make gameplay a little more seamless.

    I’m not sure the terminology for this feature or if it’s an EmulationStation or RetroArch setting. I did a ton of digging in the config files but couldn’t find anything.

    A little push in the right direction would be most appreciated.



    You can’t use select as your hotkey as this is also the key for add coin in Final Burn Alpha emulator….

    That’s the reason you remap it to something else….



    Most people use hotkeys set up so that you have to hold down select then press another button to do the action they want. Most people do select + start to exit the emulator and select + left/right to load/save save states.


    To the original poster, did you ever get this to work? I just got my 8bitdo SNES30 controller set up last night. I used the guide found at

    I had the controller connect via bluetooth within about 20 minutes. That was the easy part. The trouble that I had was that the buttons seem to be different for controlling emulationstation (selecting games and systems) than for controlling the actual games.

    The trick I found was that the config for emulationstation is found at /home/pi/.emulationstation/es_input.cfg and uses the button numbers you got from step 5 of the guide. For whatever reason, I was unable to program the d-pad directions, but they just worked already. The config for actual games is found in /opt/retropie/configs/all/retroarch-joypads and is created in step 6. Don’t try to use the same button numbers in the two config files or it won’t work.

    I am still having trouble trying to get the shoulder buttons to work as hotkeys for loading/saving save states, but otherwise it works great. Hopefully this helps.



    I have the SNES30 controller which works fine in emulationstation and in games, but I can’t seem to get the hotkeys to work for saving and loading save states. The controller config file at opt/retropie/configs/all has the following lines but they don’t seem to work;

    input_save_state_btn = “18”
    input_save_state_btn = “17”

    I know hotkeys have been enabled because it works to push select + start to exit the emulator. All the hotkeys for my original SNES controllers plugged in to a usb adapter still work fine.

    Is there some reason that I can’t use the shoulder buttons on the SNES30 controller for hotkeys? I saw a post on some other forum where someone said he could never get the shoulder buttons to work either, so he had to re-map the hotkeys to something else.

    Also, if my usb controller is plugged in and I used the 8bitdo controller, it will select the game from emulationstation, but I lose control once in the game. I’m guessing that it assumes the usb controller is player 1. Is there a way to make the 8bitdo controller have priority for player 1?



    Hi all! newbie here! so far loving the project, but i have a problem some of you may have encountered already.

    Whenever i try to “insert a coin” in the FBA next games using the select button the game doesn’t recognize it, I’ve been told the problem is that it interferes with the hotkey button command to quit the game (select and start)

    My question is, is there a solution to this? how do i configure the hotkeys to other buttons? ( i’m using a PS3 pad, was thinking of mapping to the home button) any help would be greatly appreciated, thank you!



    The problem is that i do not have controller any more (the other ports like doom, quake, play normally). A yellow text for XBox controller also appears. Any thoughts?

    Very strange. The wadfile is running via lr-prboom which is a retroarch emulator therefore the controls should work just fine? Especially since you are seeing the yellow text, which would indicate your pad has been detected (I assume you have an Xbox pad!). I would suggest going into the retroarch GUI when in the game (normally via F1 key, or ‘hotkey+F1’) and setting up the controls manually, see if that works. If it does, then save a config file which you can then rename to retroarch.cfg and place in the lr-prboom folder for it to load when prboom is loaded. Should sort you out.



    Hi guys,

    I currently have my retropie setup with a hot key (select). I’m using L1,L2, R1,R2 to save, load and switch between slots respectively. It works well but it’s prone to error (sometimes I mix up load and save). I was wondering if there is a quick menu option available or in the pipeline? It would be really handy to combine the hotkey and something else to open it. If it’s not available (I couldn’t find anything) I might make one myself..


    Ok, in the retroarch.cfg, there were two entries that I had to remove that pre-defined the hotkey, once removed everything worked as expected.

    So what does this mean if you are reading this:
    1). Clean the retroarch.cfg file for any Joystick mapping
    2). A generic PS3 does not equate to an actual PS3 remote, which is the most interesting tid-bit. (This is for a RockCandy PS3 remote).
    2a. If you don’t have a PS3 remote, you may not have to install the bluetooth drivers. (didn’t have to for the rockcandy PS3 remote).
    2b. Some controller require you to use the dongle that comes with the remote vs a generic blue tooth.

    These are just some lesson learned, and I hope it helps someone else from having the same issues I did.



    I ended up removing the code and used the GUI from emulation station to remap the keys and I ended up with this:
    input_device = “Performance Designed Products Wireless Controller for PS3”
    input_driver = “udev”
    input_y_btn = “0”
    input_b_btn = “1”
    input_a_btn = “2”
    input_x_btn = “3”
    input_l2_btn = “4”
    input_r2_btn = “5”
    input_l_btn = “6”
    input_r_btn = “7”
    input_start_btn = “8”
    input_select_btn = “9”
    input_l3_btn = “10”
    input_r3_btn = “11”
    input_l_x_minus_axis = “-0”
    input_l_x_plus_axis = “+0”
    input_l_y_plus_axis = “+1”
    input_l_y_minus_axis = “-1”
    input_r_y_plus_axis = “+3”
    input_r_y_minus_axis = “-3”
    input_r_x_minus_axis = “-2”
    input_r_x_plus_axis = “+2”
    input_up_btn = “h0up”
    input_down_btn = “h0down”
    input_left_btn = “h0left”
    input_right_btn = “h0right”
    input_menu_toggle_btn = “3”
    input_enable_hotkey_btn = “9”
    input_state_slot_decrease_btn = “h0left”
    input_save_state_btn = “7”
    input_exit_emulator_btn = “8”
    input_load_state_btn = “6”
    input_reset_btn = “1”
    input_state_slot_increase_btn = “h0right”

    I do have some questions though.

    I want to remap the following controls:
    input_menu_toggle_btn = “3”
    input_enable_hotkey_btn = “9”
    input_state_slot_decrease_btn = “h0left”
    input_save_state_btn = “7”
    input_exit_emulator_btn = “8”
    input_load_state_btn = “6”
    input_reset_btn = “1”
    input_state_slot_increase_btn = “h0right”

    So the
    save is Select + L2
    load is Select + R2
    Exit is Select + Start

    How do you make these key combinations?




    Select+x is the hotkey to open up the rgui: see this video:


    Nothing has changed in retropie relating to that, so it may be firmware / kernel / raspbian related.

    Have you tried without Xarcade2Jstick btw ? if the xarcade by default registers as keyboard presses, you can just use it as a keyboard – might work better – also we see where the problem initiates from.

    I am trying to setup my X-Arcade Dual Joystick freshly but having issue with exiting emulators (MAME) back to ES. I am using it as a keyboard (Xarcade2Jstick/Xarcade-to-GamepadDevice.cfg didn’t work and jstest revealed that button 9 wasn’t represented).

    To what .cfg file, and what do I need to add to be able to exit back to ES?

    I tried this in /opt/retropie/configs/all/retroarch.cfg to no avail:
    input_enable_hotkey = x
    input_exit_emulator = space

    I have to have a keyboard hooked up and only escape works. Escape is not represented on the X-Arcade Dual Joystick though.



    I’ve searched forums, tried a few different setups but have not been able to find anything that answers this.

    I’m using a Buffalo USB SNES controller and playing Street Fighter.

    It uses all the controller buttons, so no spares, so I need to find an alternative hotkey button (ie: not on the controller)

    Is it possible to setup the hotkey as a keyboard key instead of a Buffalo controller button?

    I can’t seem to get it to work using Pii wireless mini keyboard… I always have to setup as a controller button for it to work.




    Have you tried Ctrl+q? The default emulator I believe is lr-stella which uses retroarch configs so default hotkeys to exit are select+start. See this page:



    @xd31 RetroArch hotkeys use only one key.
    So you hold the hotkey enable button (usually “Select”), then press the hotkey you want. It wont deal with two buttons.

    RetroPie help guides -->
    Please read this before asking for help -->

Viewing 35 results - 246 through 280 (of 1,077 total)

We use Cookies and similar technology to collect and analyse information about the users of this website. We use this information to enhance the content, advertising and other services available on the site. Please click ‘Accept cookies’ to consent to the use of this technology by petrockblock. You can manage your preferences at any time by visiting our Cookies Policy page.