Homepage Forums Search Search Results for 'hotkey'

Viewing 35 results - 771 through 805 (of 1,077 total)
  • Author
    Search Results
  • Floob
    Member

    Yes, as laoracc says, try one button for the hotkey, and another for the action.
    Here is an example:
    https://www.petrockblock.com/wp-content/uploads/2014/12/USB2-axis8-buttongamepad.txt

    So:
    input_enable_hotkey_btn = “6”

    is the hotkey, and everything below that is a hotkey based action.

    laoracc
    Participant

    Try putting the 8 in quotes, and change the enable hotkey button to something else. I don’t know if your setup would work, ie – hotkey + functionality on the same button, but it would almost certainly prevent you from mapping any other hotkey functionality (like menu/save/load/etc).

    #83915
    laoracc
    Participant

    You should be able to look in /opt/retropie/emulators/RetroArch/configs for the controller that you’ve setup (USB 2-axis joypad, in my case). As mentioned, /opt/retropie/configs/all/retroarch.cfg will be the main file that is consumed by every emulator that is run by RetroArch, with the ./configs/<console>/retroarch.cfg file being a per-emulator basis.

    Just to clarify, you’ve run the ~/RetroPie-Setup/RetroPie-Setup.sh script to setup your controller? You’ve taken note of which values were associated with the DPad during this config, and matched them with the /opt/retropie/emulators/RetroArch/configs/<>.cfg file to confirm they’re the same?

    What about going into the RetroArch Menu (input_menu_toggle_btn), and confirming that 1) it’s using the correct controller file, and 2) that the input settings match up? You’ll want to see (auto) for any input that won’t need the hotkey to trigger.

    pcloadletter
    Participant

    Thanks again for the quick reply, my issue in NES was that I had set a hotkey and and exit key in the /opt/retropie/configs/nes. removed those and its working. only thing left is to set a key to exit the emulator for NES SNES and Genesis. I’d like to use what the joypad config sees as “8” so i put in input_exit_emulator_btn = 8 and input_enable_hotkey_btn = 8 but it doesnt seem to do anything

    #83882
    Floob
    Member

    I’d be tempted to strip these lines out of your retroarch.cfg as you are using autodetect anyway (input_autodetect_enable = true)

    The commands you have below will take priority over the autoconfigs – but best not to have two – plus you may need the “” around the buttons.

    ‘input_enable_hotkey = nul
    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_y_btn = 3
    input_player1_select_btn = 8
    input_player1_start_btn = 9
    input_player1_up_btn = h0up
    input_player1_down_btn = h0down
    input_player1_left_btn = h0left
    input_player1_right_btn = h0right
    input_player1_a_btn = 1
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_l2_btn = 6
    input_player1_r2_btn = 7
    input_player1_l3_btn = 10
    input_player1_r3_btn = 11
    input_player1_l_x_plus_axis = +0
    input_player1_l_x_minus_axis = -0
    input_player1_l_y_plus_axis = +1
    input_player1_l_y_minus_axis = -1
    input_player1_r_x_plus_axis = +2
    input_player1_r_x_minus_axis = -2
    input_player1_r_y_plus_axis = +3
    input_player1_r_y_minus_axis = -3`

    This may help

    #83878
    matsmith
    Participant

    I thought I made some good progess today, but same issue still.

    I finally found the retropie-joyconfig file and managed to run it which generated this .cfg file:

    input_player1_joypad_index = "0"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l2_btn = "6"
    input_player1_r2_btn = "7"
    input_player1_l3_btn = "10"
    input_player1_r3_btn = "11"
    input_player1_l_x_plus_axis = "-3"
    input_player1_l_x_minus_btn = "1"
    input_player1_l_y_plus_btn = "1"
    input_player1_l_y_minus_btn = "1"
    input_player1_r_x_plus_btn = "1"
    input_player1_r_x_minus_btn = "1"
    input_player1_r_y_plus_btn = "1"
    input_player1_r_y_minus_btn = "1"
    input_player1_joypad_index = "0"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l2_btn = "6"
    input_player1_r2_btn = "7"
    input_player1_l3_btn = "10"
    input_player1_r3_axis = "-0"
    input_player1_l_x_plus_btn = "2"
    input_player1_l_x_minus_btn = "2"
    input_player1_l_y_plus_btn = "2"
    input_player1_l_y_minus_btn = "2"
    input_player1_r_x_plus_btn = "2"
    input_player1_r_x_minus_btn = "2"
    input_player1_r_y_plus_btn = "2"
    input_player1_r_y_minus_btn = "2"
    input_player1_joypad_index = "0"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l2_btn = "6"
    input_player1_r2_btn = "7"
    input_player1_l3_btn = "10"
    input_player1_r3_btn = "11"
    input_player1_l_x_plus_axis = "+0"
    input_player1_l_x_minus_axis = "-0"
    input_player1_l_y_plus_axis = "+1"
    input_player1_l_y_minus_axis = "-1"
    input_player1_r_x_plus_axis = "+2"
    input_player1_r_x_minus_axis = "-2"
    input_player1_r_y_plus_axis = "+3"
    input_player1_r_y_minus_axis = "-3"

    And here is my retroarch.cfg file. There’s a few differences between yours and mine, but nothing I can see about the actual controller mapping:

    ## 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 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 $SRAM_PATH.auto.
    # 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/libretro.so"
    
    # 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/roms/../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 =
    
    # 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 = 0
    # video_fullscreen_y = 0
    
    # 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 = false
    
    # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
    # video_force_aspect = true
    
    # 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.33
    
    # 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 = false
    
    # 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 = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    # video_shader_enable = false
    
    # 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 = 32
    
    # 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
    
    # Audio output samplerate.
    # audio_out_rate = 48000
    
    # 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 =
    
    # 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 =
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_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 =
    
    # 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/
    
    # 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
    
    # input_libretro_device_p1 =
    # input_libretro_device_p2 =
    # 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_a = x
    # input_player1_b = z
    # input_player1_y = a
    # input_player1_x = s
    # input_player1_start = enter
    # input_player1_select = rshift
    # input_player1_l = q
    # input_player1_r = w
    # input_player1_left = left
    # input_player1_right = right
    # input_player1_up = up
    # input_player1_down = down
    # 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 =
    
    # 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
    
    # 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
    
    #### 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
    
    #### Netplay
    
    # 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 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
    
    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_y_btn = 3
    input_player1_select_btn = 8
    input_player1_start_btn = 9
    input_player1_up_btn = h0up
    input_player1_down_btn = h0down
    input_player1_left_btn = h0left
    input_player1_right_btn = h0right
    input_player1_a_btn = 1
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_l2_btn = 6
    input_player1_r2_btn = 7
    input_player1_l3_btn = 10
    input_player1_r3_btn = 11
    input_player1_l_x_plus_axis = +0
    input_player1_l_x_minus_axis = -0
    input_player1_l_y_plus_axis = +1
    input_player1_l_y_minus_axis = -1
    input_player1_r_x_plus_axis = +2
    input_player1_r_x_minus_axis = -2
    input_player1_r_y_plus_axis = +3
    input_player1_r_y_minus_axis = -3

    Hope this helps.

    #83859
    unclebobby66
    Participant

    Sorry, I didn’t realize the retroarch.cfg file wouldn’t load.
    Here it is…

    #All settings made here will override the global settings for the current emulator core
    #
    video_shader = “/opt/retropie/emulators/RetroArch/shader/snes_phosphor.glslp”
    vide_shader_enable = false
    video_smooth = false
    #
    # First XBox Controller Config
    input_player1_joypad_index = “0”
    input_player1_b_btn = “1”
    input_player1_y_btn = “3”
    input_player1_select_btn = “8”
    input_player1_start_btn = “9”
    input_player1_up_btn = “h0up”
    input_player1_down_btn = “h0down”
    input_player1_left_btn = “h0left”
    input_player1_right_btn = “h0right”
    input_player1_a_btn = “0”
    input_player1_x_btn = “2”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_btn = “6”
    input_player1_r2_btn = “7”
    input_player1_l3_btn = “11”
    input_player1_r3_btn = “12”
    input_player1_l_x_plus_axis = “+0”
    input_player1_l_x_minus_axis = “-0”
    input_player1_l_y_plus_axis = “+1”
    input_player1_l_y_minus_axis = “-1”
    input_player1_r_x_plus_axis = “+2”
    input_player1_r_x_minus_axis = “-2”
    input_player1_r_y_plus_axis = “+3”
    input_player1_r_y_minus_axis = “-3”
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    #83762
    rev138
    Participant

    @thex: I tried that. No dice. Are you using those same gamepads?


    @floob
    : I don’t have start mapped to exit right now because I need to be able to use the start button. It doesn’t matter what button I use though, it exits without holding down the hotkey.

    #83760
    thex
    Participant

    I had this exact issue.
    Try removing the quotes around the numbers for the hotkey and exit buttons, like below;

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 6

    #83751
    rev138
    Participant
    input_device = "Performance Designed Products Rock Candy Wireless Gamepad for PS"
    input_driver = "udev"
    
    input_b_btn = "1"
    input_y_btn = "0"
    input_select_btn = "8"
    input_start_btn = "9"
    input_up_btn = "h0up"
    input_down_btn = "h0down"
    input_left_btn = "h0left"
    input_right_btn = "h0right"
    input_a_btn = "2"
    input_x_btn = "3"
    input_l_btn = "4"
    input_r_btn = "5"
    input_l2_btn = "6"
    input_r2_btn = "7"
    input_l_x_plus_axis = "+0"
    input_l_x_minus_axis = "-0"
    input_l_y_plus_axis = "+1"
    input_l_y_minus_axis = "-1"
    input_r_x_plus_axis = "+2"
    input_r_x_minus_axis = "-2"
    input_r_y_plus_axis = "+3"
    input_r_y_minus_axis = "-3"
    
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "6"
    input_save_state_btn = "4"
    input_load_state_btn = "5"
    
    #83742
    pianobrad
    Participant

    [quote=82074]UPDATE: I’ve managed to make the exit btn work.
    All I had to do was put those lines in /opt/retropie/config/snes/*.cfg file.

    input_enable_hotkey_btn = “3”
    input_exit_emulator_btn = “2”

    It’s strange, but for some reason, my Zero Delay USB encoder reads from snes config file for ALL emulators.

    The only emulator that I can’t manage to work exit buttons is MAME-PI.
    [/quote]

    escher, thank you! I’ve just set up RetroPie within the last few days and couldn’t, for the life of me, figure out how to get those hotkeys and exit buttons enabled. I had a look around in the default config and “input_enable_hotkey” as a parameter, but that wasn’t working at all. Your 2 lines did the trick.

    As you’ve indicated, most emulators control fine. The one issue I’d like to resolve seems to be with MAME. Does anyone have any experience adding controller configurations, specifically mapping an snes-style usb controller, to the MAME arcade emulator under RetroPie 2.3?

    Cheers!

    #83731
    rwaqif
    Participant

    Final Update:
    I cant believe I managed to solve this on my own. Who wouldve known the Pi was such a great teaching tool!

    Anywho, here is the solution for myself and anyone else who may be stumped about this.

    Basically, whenever you manage to open up RetroArch with the F1 hotkey/whatever hotkey you set and whenever you remap everything through it, it will save a .cfg file to /otp/retropie/configs/all. (From what I noticed, depending on which emulator you chose, the filename will be different, so the filename I am using has come from the SNES emulator). My particular file went something along the lines of libretro-1.cfg, and I made a second, more optimized verison which covers both 1p and 2p and, after clicking save, it was saved in the same directory under the filename libretro-2.cfg. You’ll know when it saves. It will show up on sccreen.

    Now, exit back to EmulationStation and then hit F4. Once you are jacked into the matrix terminal, type cd /opt/retropie/configs/all. It should see that directory. Type ls to view all of the files in there, just as a refresher.

    Now, we must rename and overwrite retroarch.cfg!

    I used this to find out how to do that, and I’ll explain it here too: http://www.cyberciti.biz/faq/linux-rename-file/

    Anywho, just type in the following, replacing the [] with the name of your file. DO NOT LEAVE THE BRACKETS IN THERE, ITS JUST FOR SHOW OVER HERE. NO BRACKETS ANYWHERE IN THIS LINE OF CODE.
    mv [yourfilename.cfg] retroarch.cfg

    thats it! it should work across all emulators, so set it right the first time and, if needed, edit it and then go back and “mv” it out again. Cant believe I could find such a simple solution to this!

    *protip: with my Logitec F310’s, I managed to set the center Logitec button to toggle the RetroArch menu in case if i needed to speed-change something or if I needed to simply exit the emulator. If you have a similar controller, try it out!

    rwaqif
    Participant

    Greetings to all,

    I have been tinkering with my Pi and the RetroPi project for the past four days. Though plauged with setbacks (ranging to a defecctive board to lack of drivers), I have plowed through. This issue, however, really has me stumped.

    Long story short, I have two controllers (Logitec F310’s) hooked up to my Pi. They both function and respond perfectly in EmulationStation, and are responsive in and actual emulation run. However, their button mappings are really strange, for example: in the SNES emulator, I’m trying to play Hagane. Left moves left, but also attacks, B and Y dont do anything, down pauses the game AND crouches – it’s a mess. However, after setting theinput_enable_hotkey line in one of the .cfg files to nul, I got the f1 key to work.

    YES. I can now remap the controllers per emulator, and it works when I map it and then continue to play – but after rebooting, it looses the new and improved controller map and reverts back to the old, buggy one!! Any help would be amazing, I have been trying to get this thing to work for the past couple of hours, but I havent found a definative answer across any forum or board.

    writeson
    Participant

    Hi all,

    I’m running the RetroPie 2.3 project from downloaded binaries, which works well, accept for one thing. I’ve got XBox 360 wireless controllers hooked up to the Raspberry Pi, which looks good, I can see all the buttons when I run jstest. My problem is that in game the save/restore buttons are mapped to the “B” and “Y” buttons and nothing I do the /opt/retropie/configs/all/retroarch.cfg file seems to change that (or anything for that matter!).

    Here’s the button configuration part of my configuration file:

    input_player1_joypad_index = “0”
    input_player1_b_btn = “1”
    input_player1_y_btn = “3”
    input_player1_select_btn = “10”
    input_player1_start_btn = “9”
    input_player1_up_btn = “h0up”
    input_player1_down_btn = “h0down”
    input_player1_left_btn = “h0left”
    input_player1_right_btn = “h0right”
    input_player1_a_btn = “0”
    input_player1_x_btn = “2”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_btn = “6”
    input_player1_r2_btn = “7”
    input_player1_l3_btn = “11”
    input_player1_r3_btn = “12”
    input_player1_l_x_plus_axis = “+0”
    input_player1_l_x_minus_axis = “-0”
    input_player1_l_y_plus_axis = “+1”
    input_player1_l_y_minus_axis = “-1”
    input_player1_r_x_plus_axis = “+2”
    input_player1_r_x_minus_axis = “-2”
    input_player1_r_y_plus_axis = “+3”
    input_player1_r_y_minus_axis = “-3”

    input_player1_joypad_index = “1”
    input_player1_b_btn = “1”
    input_player1_y_btn = “3”
    input_player1_select_btn = “10”
    input_player1_start_btn = “9”
    input_player1_up_btn = “h0up”
    input_player1_down_btn = “h0down”
    input_player1_left_btn = “h0left”
    input_player1_right_btn = “h0right”
    input_player1_a_btn = “0”
    input_player1_x_btn = “2”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_btn = “6”
    input_player1_r2_btn = “7”
    input_player1_l3_btn = “11”
    input_player1_r3_btn = “12”
    input_player1_l_x_plus_axis = “+0”
    input_player1_l_x_minus_axis = “-0”
    input_player1_l_y_plus_axis = “+1”
    input_player1_l_y_minus_axis = “-1”
    input_player1_r_x_plus_axis = “+2”
    input_player1_r_x_minus_axis = “-2”
    input_player1_r_y_plus_axis = “+3”
    input_player1_r_y_minus_axis = “-3″

    input_enable_hotkey_btn=”10″
    input_exit_emulator_btn=”8″
    input_save_state_btn=”6″
    input_load_state_btn=”7”

    If anyone has any ideas, hints, pointers, obvious stuff I’ve missed, please let me know, I’m trying to get this done by Christmas!

    Thanks in advance,
    Doug

    #83627

    In reply to: Noob Needs some help

    Floob
    Member

    Check towards the end of this video for the hotkey
    To be honest your file contents look ok. Maybe that line space is confusing it?
    You could try pasting that into your main retroarch.cfg instead as something in there may be overriding it
    /opt/retropie/configs/all/

    Check this video for the retro look:

    https://www.youtube.com/watch?v=owsdsyIDU6A

    derrabe
    Participant

    Hi,

    I just got my first raspberry pi yesterday and I bought with the
    intention to run retropie on it and play all the games from my
    childhood. I bought 2 usb generic snes controllers off amazon for
    this. So far I seem to have gotten it configured and have roms
    transferred to it an playable. I currently have 2 problems.

    1. I have managed to get the controllers to work in the games and playable on several NES and SNES games and also 1 or 2 mame games. I bought this with the hope that I wont need a keyboard once I have it configured. The biggest hurdle for that so far is the inability to exit out of a game and select another with out having a keyboard plugged in. I have spent several hours today searching this forum and google to try to fix this and so far no luck. I think I found the right file but maybe not. /opt/retropi/emulators/Retroarch/configs/

    
    input_device = "2Axes 11Keys Game  Pad"
    input_driver = "udev"
    input_b_btn = "2"
    input_y_btn = "3"
    input_select_btn = "8"
    input_start_btn = "9"
    input_up_axis = "-1"
    input_down_axis = "+1"
    input_left_axis = "-0"
    input_right_axis = "+0"
    input_a_btn = "1"
    input_x_btn = "0"
    input_l_btn = "4"
    input_r_btn = "5"
    
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "4"
    input_save_state_btn = "0"
    input_load_state_btn = "1"

    2. The other ting I would like and not even sure where to look is when I was a kid I remember these games being a little more crisp. I know i am on a hd 1080p tv and not an old tube tv but some of the things are so blurry if you didnt know what they were in the original then you would have no clue what it is now. Is there any way to crispen up the graphics to make it closer to what I remember. I have no idea where to look for this.

    Thanks in advance

    copious
    Participant

    First thanks to all who posted the how to guides on controller configs. I have the 2-USB retrolink controllers and have used retroarch to configure player 1. When I edit USBGAMEPAD.CFG for the second controller everything breaks.

    This is my current working single controller file

    input_device = “USB Gamepad ”
    input_driver = “udev”
    input_b_btn = “2”
    input_y_btn = “3”
    input_select_btn = “8”
    input_start_btn = “9”
    input_up_axis = “-1”
    input_down_axis = “+1”
    input_left_axis = “-0”
    input_right_axis = “+0”
    input_a_btn = “1”
    input_x_btn = “0”
    input_l_btn = “4”
    input_r_btn = “5”
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    ##input_joypad_index = “0”
    ##input_joypad_index = “1”
    ##input_player2_device = “USB Gamepad ”
    ##input_player2_driver = “udev”
    ##input_player2_b_btn = “2”
    ##input_player2_y_btn = “3”
    ##input_player2_select_btn = “8”
    ##input_player2_start_btn = “9”
    ##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_x_btn = “0”
    ##input_player2_l_btn = “4”
    ##input_player2_r_btn = “5”
    ##input_player2_enable_hotkey_btn = 8
    ##input_player2_exit_emulator_btn = 9

    Am I supposed to register both controllers? Somehow?

    #83521
    geeks
    Participant

    gizmo, could you elaborate on this?

    > If you configure “select” as a input_enable_hotkey_btn you also need an input_enable_hotkey for your keyboard. Strange but true…

    #83518
    sludwig
    Participant

    Thanks for the help. I actually saw that video before but nothing in there seems to help. However, I followed your advice and changed the video size font to 16 in order to see the whole screen. Now when I try to save a game this is what happens:

    We will use Doom in this example:

    When I click the hotkey to save, I get:
    “Saved state to slot #0.”

    Cool, okay, now I click the load hotkey on my controller:
    “Failed to load state from “/home/pi/RetroPie/savestate/Doom (U) [!].state 1”

    If I retry to save again I still get:
    “Saved state to slot #0.”
    But if I now try to make another load on my controller it will say:
    “Failed to load state from “/home/pi/RetroPie/savestate/Doom (U) [!].state 2”

    This seems like a red flag. It seems like whenever I try to load, my retropie is loading from one integer too high. Like there is an auto interval change.

    Is there something I need to do with this line of code?

    # 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
    #83514
    Floob
    Member

    Maybe its the defaults in here:

    sudo ./retropie_setup.sh

    Option 3 – Setup
    Option 310 – Hotkey behaivour

    As per this post, I think you would want option 2

    Default configuration for RetroArch hotkey button

    #83510
    gizmo98
    Participant

    If you configure “select” as a input_enable_hotkey_btn you also need an input_enable_hotkey for your keyboard. Strange but true…

    #83498
    escher
    Participant

    arcadoff, actually I’ve solved this problem by inputing the config buttons in the snes config file (it’s strange, but it works)

    All I had to do was put those lines in /opt/retropie/config/snes/*.cfg file.

    input_enable_hotkey_btn = “3”
    input_exit_emulator_btn = “2”

    I’m not with my R-Pi with me now, but I promiss that later I’ll paste it’s config here.

    Good luck!

    sludwig
    Participant

    New to Retropie here. I setup my first Retropie a weekend ago, and I got it to where everything worked fine and I had no issues with it. My problems came in when I decided to get a Bluetooth dongle and setup my PS3 sixaxis controller.

    I originally was able to save all my games and load them with hotkeys by tweaking this into my retroarch.cfg file under the /opt/retropie/configs/all/ location:

    input_enable_hotkey_btn = "0"
    input_exit_emulator_btn = "3"
    input_save_state_btn = "16"
    input_load_state_btn = "5"

    I wanted a wireless controller since I hate sitting close to the TV. So I followed this guide to get my ps3 controller to work:

    After my ps3 controller was recognized by retropie, I realized that my old configurations for my xbox360 usb controller were making it difficult to navigate around. So I ended up deleting the various “input_player” lines in the bottom of the retroarch.cfg file in WINSCP, alt F4ed, and then ran this, which ran me through the process of setting up my ps3 controller mappings:

    sudo chown pi /opt/retropie/configs/all/retroarch.cfg
    cd /opt/retropie/emulators/RetroArch/installdir/bin
    sudo ./retroarch-joyconfig -j 0 >> /opt/retropie/configs/all/retroarch.cfg

    The controller works fines for games and in emulation station. I have no problems with it in terms of functioning as a controller and playing games. My only problem is saving and loading my saved games. When I save a game I seem to get the correct message of “Saved state to slot #0”. But, every time I try load a game I get this message on the bottom of the screen:

    “Failed to load state from “/home/pi/RetroPie/(XYZgame/whatever game I’m playing here, and it cuts off screen so i’m not sure if there’s anything else after that)”

    I also notice that if I attempt to load the game, then proceed to try to save again, the save slot # moves up.

    Also, I don’t see any .srm files being created in my rom folder like I use to. I don’t know what’s going on there. I’m thinking maybe this issue has something to do with permissions but I’m not sure.

    Here is my retroarch.cfg:

    ## 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 = /home/pi/RetroPie/savestate
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    # savestate_directory = /home/pi/RetroPie/savestate
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Automatically saves a savestate at the end of RetroArch's lifetime.
    # The path is $SRAM_PATH.auto.
    # RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
    # savestate_auto_save = false
    # savestate_auto_load = false
    
    # Load libretro from a dynamic location for dynamically built RetroArch.
    # This option is mandatory.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # 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
    
    # 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/roms/../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 =
    
    # 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_gl_context =
    
    # Windowed xscale and yscale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_xscale = 3.0
    # video_yscale = 3.0
    
    # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
    # video_fullscreen_x = 0
    # video_fullscreen_y = 0
    
    # 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
    
    # 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
    
    # 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 GL state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
    # video_force_aspect = true
    
    # 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.33
    
    # 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 = false
    
    # 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 = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    # video_shader_enable = false
    
    # 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 =
    
    # 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 = 32
    
    # 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
    
    # Audio output samplerate.
    # audio_out_rate = 48000
    
    # 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 =
    
    # 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 =
    
    # 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
    
    # 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
    
    # Enable overlay.
    # input_overlay_enable = false
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_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 =
    
    # 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
    
    # Directory for joypad autoconfigs (PC).
    # 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/
    
    # Enable debug input key reporting on-screen.
    # input_debug_enable = false
    
    # Sets which libretro device is used for a player.
    # 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
    
    # input_libretro_device_p1 =
    # input_libretro_device_p2 =
    # 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_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # 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 player 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 player 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 players.
    # 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 = escape
    
    # 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"
    
    #### 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
    
    #### Netplay
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # The nickname being used for playing online.
    # 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 player 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 XML cheat database (as used by bSNES).
    # 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.
    # A negative ratio equals no FPS cap.
    # fastforward_ratio = -1.0
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    input_player1_joypad_index = "0"
    input_player1_b_btn = "13"
    input_player1_y_btn = "12"
    input_player1_select_btn = "0"
    input_player1_start_btn = "3"
    input_player1_up_btn = "4"
    input_player1_down_btn = "6"
    input_player1_left_btn = "7"
    input_player1_right_btn = "5"
    input_player1_a_btn = "14"
    input_player1_x_btn = "15"
    input_player1_l_btn = "10"
    input_player1_r_btn = "11"
    input_player1_l2_btn = "8"
    input_player1_r2_btn = "9"
    input_player1_l3_btn = "1"
    input_player1_r3_btn = "2"
    input_player1_l_x_plus_axis = "+0"
    input_player1_l_x_minus_axis = "-0"
    input_player1_l_y_plus_axis = "+1"
    input_player1_l_y_minus_axis = "-1"
    input_player1_r_x_plus_axis = "+2"
    input_player1_r_x_minus_axis = "-2"
    input_player1_r_y_plus_axis = "+3"
    input_player1_r_y_minus_axis = "-3"
    
    savefile_directory = /home/pi/RetroPie/
    savestate_directory = /home/pi/RetroPie/
    
    input_enable_hotkey_btn = "0"
    input_exit_emulator_btn = "3"
    
    input_enable_hotkey_btn = "0"
    input_save_state_btn = "16"
    
    input_enable_hotkey_btn = "0"
    input_load_state_btn = "5"
    rev138
    Participant

    I have one of these controllers (http://www.amazon.com/gp/product/B00G6CLXRK), and it seems to work fine, except for the hotkey functions.

    I have the hotkey button mapped to the “select” button (8, in this case), and everything behaves in emulationstation, but once I launch a game, it acts as if I’m holding down “select” when I am not (i.e. I hit “start”, and it quits because I have “select+start” mapped as the exit key). I tried mapping to another button (12) and it still acts as if I have the hotkey pressed. I even tried a second one of these controllers in case that one was a dud, and it has the same issue. I’m thinking this must be a bug and/or a config issue.

    Has anyone run into this?

    PS- I have an iBuffalo SNES controller and the hotkey function works perfectly

    silvervolkano
    Participant

    I cant make the second player work.

    I’m using two 360 xbox controller both linked with the wireless reciever. When i’m playing a game just 1 controller works and this controller is controlling both players.

    this is my retroarch.cfg

    thanks in advance.

    PS: Also, i cant exit a game or save states using only the controller…

    ## 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 =

    # Automatically saves a savestate at the end of RetroArch’s lifetime.
    # The path is $SRAM_PATH.auto.
    # 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/libretro.so”

    # A directory for where to search for libretro core implementations.
    # libretro_directory =

    # 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

    # 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/roms/../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 =

    # 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_gl_context =

    # Windowed xscale and yscale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_xscale = 3.0
    # video_yscale = 3.0

    # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
    # video_fullscreen_x = 0
    # video_fullscreen_y = 0

    # 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

    # 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

    # 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 GL state changes inbetween frames.
    # video_shared_context = false

    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false

    # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
    # video_force_aspect = true

    # 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.33

    # 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 = false

    # 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 = “/path/to/shader.{cg,cgp,glsl,glslp}”

    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    # video_shader_enable = false

    # 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 =

    # 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 = 32

    # 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

    # Audio output samplerate.
    # audio_out_rate = 48000

    # 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 =

    # 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 =

    # 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

    # 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

    # Enable overlay.
    # input_overlay_enable = false

    # Path to input overlay
    # input_overlay =

    # Overlay opacity
    # input_overlay_opacity = 1.0

    # Overlay scale
    # input_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 =

    # 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

    # Directory for joypad autoconfigs (PC).
    # 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/

    # Enable debug input key reporting on-screen.
    # input_debug_enable = false

    # Sets which libretro device is used for a player.
    # 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

    # input_libretro_device_p1 =
    # input_libretro_device_p2 =
    # 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_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # 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 player 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 player 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 players.
    # 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 = escape

    # 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”

    #### 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

    #### Netplay

    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false

    # The nickname being used for playing online.
    # 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 player 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 XML cheat database (as used by bSNES).
    # 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.
    # A negative ratio equals no FPS cap.
    # fastforward_ratio = -1.0

    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false

    input_player1_joypad_index = “0”
    input_player1_b_btn = “1”
    input_player1_y_btn = “3”
    input_player1_select_btn = “6”
    input_player1_start_btn = “7”
    input_player1_up_btn = “13”
    input_player1_down_btn = “14”
    input_player1_left_btn = “11”
    input_player1_right_btn = “12”
    input_player1_a_btn = “0”
    input_player1_x_btn = “2”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_axis = “+2”
    input_player1_r2_axis = “+5”
    input_player1_l3_btn = “9”
    input_player1_r3_btn = “10”
    input_player1_l_x_plus_axis = “+0”
    input_player1_l_x_minus_axis = “-0”
    input_player1_l_y_plus_axis = “+1”
    input_player1_l_y_minus_axis = “-1”
    input_player1_r_x_plus_axis = “+3”
    input_player1_r_x_minus_axis = “-3”
    input_player1_r_y_plus_axis = “+4”
    input_player1_r_y_minus_axis = “-4”

    input_player2_joypad_index = “1”
    input_player2_b_btn = “1”
    input_player2_y_btn = “3”
    input_player2_select_btn = “6”
    input_player2_start_btn = “7”
    input_player2_up_btn = “13”
    input_player2_down_btn = “14”
    input_player2_left_btn = “11”
    input_player2_right_btn = “12”
    input_player2_a_btn = “0”
    input_player2_x_btn = “2”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_axis = “+2”
    input_player2_r2_axis = “+5”
    input_player2_l3_btn = “9”
    input_player2_r3_btn = “10”
    input_player2_l_x_plus_axis = “+0”
    input_player2_l_x_minus_axis = “-0”
    input_player2_l_y_plus_axis = “+1”
    input_player2_l_y_minus_axis = “-1”
    input_player2_r_x_plus_axis = “+3”
    input_player2_r_x_minus_axis = “-3”
    input_player2_r_y_plus_axis = “+4”
    input_player2_r_y_minus_axis = “-4”

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    #83345
    mysticdirk
    Participant

    I actually just set this up last night. These are the steps I took:

    1) in /opt/retropie/configs/all/retroarch.cfg – edit the file and add this piece of code:

    input_menu_toggle_btn = “<your button choice>”

    This will allow you to directly enter the menu while playing a rom.

    2) When in an emulator open up the menu by pushing the button you assigned above (you will need to hold in the enable hotkey button as well)

    *please note, if you do not have the left analog enabled you will need to use a keyboard for this part. when I did this I had to use both the controller and the keyboard to navigate through the menu*

    3) when in the menu go to Settings >> Input Options. Scroll down and program the following buttons:

    Left analog X+ (right)
    Left analog X- (left)
    Left analog Y+ (down)
    Left analog Y- (up)

    Fast Forward toggle

    If you click the A button you will be able to input these controls by pressing the corresponding button on your controller. (ie press A, then when prompted press right on the d-pad to enable Left analog X+).

    The analog buttons are crucial so you can navigate through the menu without having to use the keyboard. The Fast Forward Toggle will do what you are looking for.

    THIS IS IMPORTANT –> press back to get to the first menu and SAVE the configs (there is an option to do so on the bottom of the first menu screen).

    WHAT THIS DOES: Saves a new configuration to the /opt/retropie/configs/all/ file path.

    4) Exit Emulation Station and go back to the command line. From here, go to the file path where the retroarch.cfg is saved. At this point I recommend making a copy of that file and naming it something different (retroarchBACKUP.cfg or something).

    5) the file that you made in the emulationstation menu should be called libretro.cfg or something, RENAME this file to be retroarch.cfg. This will ensure that every time you boot up the emulationstation, the changes you made are the default controller (ie you can navigate through the menu and you can enable fast forward).

    save and exit. Next time you enter emulation station this should work.

    ALTERNATIVELY:

    You can just do this all manually in the retroarch.cfg (adding in all the proper button toggles and such). If you would like I can share some code with you but I will need to boot up my pie, currently I’m just typing this from memory.

    h0llow
    Participant

    Hi! I had my RetroPie working great until I deleted a few things on accident and had to restart from scratch. This time around, I cannot get my controller to configure properly at all! I am using a NES Retrokit that I have soldered and plug into the USB port. It works fine and dandy in emulation station (that i see/know of) but when I configure ANY config files for emulation, nothing works. All I can get is the B button working. Now heres the catch, the B button works but it is functioning as Start, B, A, and probably Select too. All I know is if I keep hitting B on my NES controller it will act as those here and there. I am only editing in the config file in the NES folder straight off the bat after RetroPie was installed. Reinstalled 5 times again. Maybe I am missing something.. Any suggestions??

    Works in emulationstation GUI
    Acts funny in any emulators
    Works on Mac (OpenEmu) and Windows fine

    retroarch.cfg

    input_player1_joypad_index = “0”
    input_player1_b_btn = “0”
    input_player1_select_btn = “2”
    input_player1_start_btn = “3”
    input_player1_a_btn = “1”
    input_enable_hotkey_btn = “2”
    input_exit_emulator_btn = “3”

    #83171
    gizmo98
    Participant

    Do you have the same “start” button problem with snes and other libreto cores? Sounds like a hotkey problem. Just open RetroPie-Setup, select SETUP and “Change hotkey behaviour”. Select 3 and reboot your pi.

    #83169
    rfree
    Participant

    [quote=82350]Just added mupen64plus-libretro core to RetroPie-Setup. Because retroarch is used it is possible to exit the emulator with game pad and save/load states. The problem is you need at least 1GHz OC and there must be 384MB of ram available (set GPU men 128MB). Otherwise games will be too slow or the rpi hangs after time because low memory.

    How to install:
    -Close emulationstation with “F4″
    -type:

    cd RetroPie-Setup
    sudo git pull
    sudo ./retropie_setup.sh
    select Experimental
    select mupen64plus-libretro core
    

    If you are brave enough start “sudo raspy-config” and set memory split and OC.

    [/quote]

    Using this method, the hotkey seems to be “start” so, for example, on Mario64 when it says “Press Start”…doing so will cause the game to exit.

    #83052
    prehistorikj
    Participant

    Locate this file: /opt/retropie/configs/all/retroarch.cfg
    At the very bottom you need to add in two lines:
    input_enable_hotkey_btn = 5
    input_exit_emulator_btn = 6

    Thanks. I’ll try this a little bit later)

    #83025
    proxycell
    Participant

    1 – here is the EASIEST way for you to do this:
    Step 1 – Get yourself a USB stick
    Step 2 – Insert it into the Pi, the LED light on the USB will flash, let it finish flashing completely
    Step 3 – Remove it from the Pi and insert it to your computer, you will find a lot of new folders on this USB. Look for the “nes” folder now
    Step 4 – put your NES roms into this folder and remove it from the computer
    Step 5 – Insert this USB again into your Pi, let the flashing go on again and this time it should take longer. Do not remove it! When it is done, remove the USB and reboot the Pi

    2 – You mean “roms”? Please do the steps I mentioned above and see if you don’t find a “zxspectrum” folder

    3 – To close roms/games and return to the menu… well… that will be a bit harder for you I think. You will need to modify a file on the Pi.

    Locate this file: /opt/retropie/configs/all/retroarch.cfg
    At the very bottom you need to add in two lines:
    input_enable_hotkey_btn = 5
    input_exit_emulator_btn = 6

    You have to figure out which button # to use based on your own controller. Like I said, this is a bit harder but I can certainly help you through most of it.

    #82984
    proxycell
    Participant

    you have to drop to the retroarch menu, if you have your controller mapped to use a hotkey, use that

    from there you can change it under disk options. i have successfully done this in a sega CD game switch once.

    croc
    Participant

    Hi,

    I’ve nes30 bluetooth pad and they work nicely with retroarch.

    Shortkey like exit, save/load state and going to menu with hotkey and a pad button works.

    My problem is once in the rgui retroarch menu i can’t go up/down and only A/B buttons works.

    any help plz ?

    here’s my retroarch.cfg:
    “””
    input_player1_joypad_index = “0”
    input_player1_b_btn = “14”
    input_player1_y_btn = “11”
    input_player1_select_btn = “17”
    input_player1_start_btn = “18”
    input_player1_a_btn = “13”
    input_player1_x_btn = “12”
    input_player1_l_btn = “15”
    input_player1_r_btn = “16”
    input_player1_up_axis = “-1”
    input_player1_down_axis = “+1”
    input_player1_left_axis = “-0”
    input_player1_right_axis = “+0”

    input_player2_joypad_index = “1”
    input_player2_b_btn = “14”
    input_player2_y_btn = “11”
    input_player2_select_btn = “17”
    input_player2_start_btn = “18”
    input_player2_a_btn = “13”
    input_player2_x_btn = “12”
    input_player2_l_btn = “15”
    input_player2_r_btn = “16”
    input_player2_up_axis = “-1”
    input_player2_down_axis = “+1”
    input_player2_left_axis = “-0”
    input_player2_right_axis = “+0”

    input_enable_hotkey_btn = “15”
    input_exit_emulator_btn = “12”
    input_menu_toggle_btn = “16”

    # not used anymore, want to use menu rgui for that
    #input_save_state_btn = “17”
    #input_load_state_btn = “16”

    “””

    #82946
    evilgenius
    Participant

    Still confused. The directory structure visible in Cyber duck doesn’t match what I can see though the command line. E.g. I can’t see the /opt/retropie/config or /opt/retropie/emulators directories at all, which is where retroarch.cfg is. This is a pain because I wanted to edit the file on a GUI, not through shell script as I barely know it.

    Aside from that I’ve added two lines to retroarch.cfg through shell script:

    Input_enable_hotkey_btn = “11”
    Input_exit_emulator_btn = “10”

    This aparrently should allow me to exit the emulator using select and start, but it doesn’t work.

    trimmtrabb
    Participant

    You don’t have to assign all of those buttons by the way just remove the ones you don’t need although the hotkeys are useful

Viewing 35 results - 771 through 805 (of 1,077 total)