Homepage Forums Search Search Results for 'hotkey'

Viewing 35 results - 841 through 875 (of 1,077 total)
  • Author
    Search Results
  • ekcentrik
    Participant

    I’ve had the RPi for about 2 weeks and it works great. My PS2 controller works perfectly except the exit emulator button. I’ve tried editing retroarch.cfg with the

    # input_hotkey_btn = 
    # input_exit_emulator_btn = 

    With the corresponding number (with and without quotations) but to no avail.

    I’ve read countless posts about this and tried many things but it’s still not working. I always have to use a keyboard and hit the escape key to return to ES.

    I’m a noob to Linux and most of coding, so please excuse me if I’m doing something wrong.

    #81846
    Anonymous
    Inactive

    If I remember correctly retroarch.cfg has moved since that guide was written. It is now located in /RetroPie/configs/all/retroarch.cfg

    I use SNES USB controllers. You can get one for less than $10 on amazon. That will save some of your investment. Anyway, if you find the retroarch.cfg file and use the USB SNES controller you can paste the code below into the file and will work very well. It even gets you save states and emulator exit ability.

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_y_btn = 3
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_enable_hotkey_btn = 8
    input_save_state_btn = 4
    input_enable_hotkey_btn = 8
    input_load_state_btn = 5
    input_player2_joypad_index = 1
    input_player2_b_btn = 2
    input_player2_a_btn = 1
    input_player2_y_btn = 3
    input_player2_x_btn = 0
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 9
    input_player2_select_btn = 8
    input_player2_l_y_plus = -1
    input_player2_up_axis = -1
    input_player2_l_y_minus = +1
    input_player2_down_axis = +1
    input_player2_l_x_minus = -0
    input_player2_left_axis = -0
    input_player2_l_x_plus = +0
    input_player2_right_axis = +0
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_enable_hotkey_btn = 8
    input_save_state_btn = 4
    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    brain1024
    Participant

    Hi folks,

    im trying to do a gameboy classic mod (the grey fat one) i want to replace the hardware with a raspberry pi, an accu pack a 3,5″ display and some more stuff.
    i want to emulate the games with RetroPie. For e.g. gameboy advance games it is nessesarry to use x/y buttons to play a game. But according to the layout of the old gamebay: it has not an x or y button. can i config the retropie as followed?:

    pressing select and A => R
    pressing select and B => L

    is it possible to work with input_enable_hotkey_btn or something?

    hope you guys can tell me that this is possible, because this will keep me away from buying additional buttons :P

    thank you verry much :)

    brain2014

    #81693
    sjo102784
    Participant

    Thank you for all your replies, I was able to solve the configuration problem. For future reference, my controller config file (retroarch.cfg) for a Logitech Dual Action USB controller is as follows:

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

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

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

    input_player2_joypad_index = “1”
    input_player2_b_btn = “2”
    input_player2_y_btn = “3”
    input_player2_select_btn = “8”
    input_player2_start_btn = “9”
    input_player2_up_btn = “h0up”
    input_player2_down_btn = “h0down”
    input_player2_left_btn = “h0left”
    input_player2_right_btn = “h0right”
    input_player2_a_btn = “1”
    input_player2_x_btn = “0”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_btn = “6”
    input_player2_r2_btn = “7”
    input_player2_l3_btn = “10”
    input_player2_r3_btn = “11”
    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 = “+2”
    input_player2_r_x_minus_axis = “-2”
    input_player2_r_y_plus_axis = “+3”
    input_player2_r_y_minus_axis = “-3”

    input_enable_hotkey_btn = “8”
    input_menu_toggle = “11”
    input_exit_emulator_btn = “9”
    input_save_state_btn = “6”
    input_save_state_btn = “7”
    input_volume_up_axis = “+3”
    input_volume_down_axis = “-3”

    I had to configure the NES and SNES emulator mapping in their own respective config folders (/opt/retroarch/configs/<emulator name>/retroarch.cfg, but the controller works flawlessly throughout the system. Thank you all so much for you help.

    sjo102784
    Participant

    Hi everyone:

    I have my controller config solved (per my last post), however I’m running in to one incredibly annoying mapping issue.

    The input_menu_toggle mapping is not working. I’ve tried multiple keys and nothing works. My current hotkey config is as follows:

    input_enable_hotkey_btn = “8”
    input_menu_toggle = “11”
    input_exit_emulator_btn = “9”
    input_save_state_btn = “6”
    input_load_state_btn = “7”
    input_volume_up_axis = “+3”
    input_volume_down_axis = “-3”

    As it sits, my hotkeys for volume, saving, and loading as well as exiting the emulator work perfectly, its just the menu toggle button that doesn’t work. I’m not sure if its related to the rest of my config, a typo, or a new input_menu_xxxx that I’m unaware of, but I need a second/third set of eyes on my code. Please help.

    My entire config is as follows:

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

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

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

    input_player2_joypad_index = “1”
    input_player2_b_btn = “2”
    input_player2_y_btn = “3”
    input_player2_select_btn = “8”
    input_player2_start_btn = “9”
    input_player2_up_btn = “h0up”
    input_player2_down_btn = “h0down”
    input_player2_left_btn = “h0left”
    input_player2_right_btn = “h0right”
    input_player2_a_btn = “1”
    input_player2_x_btn = “0”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_btn = “6”
    input_player2_r2_btn = “7”
    input_player2_l3_btn = “10”
    input_player2_r3_btn = “11”
    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 = “+2”
    input_player2_r_x_minus_axis = “-2”
    input_player2_r_y_plus_axis = “+3”
    input_player2_r_y_minus_axis = “-3”

    input_enable_hotkey_btn = “8”
    input_menu_toggle = “11”
    input_exit_emulator_btn = “9”
    input_save_state_btn = “6”
    input_save_state_btn = “7”
    input_volume_up_axis = “+3”
    input_volume_down_axis = “-3”

    I’m not sure what the problem is, I had this working on a previous install of EmulationStation – but I had to reinstall due to a failed SD card.

    #81669
    wafflers
    Participant

    SOLVED IT! I feel so dumb right now.

    Setting both players to the same index does work. I just had all the buttons set to “nul” accidentally :(

    For anyone else looking to fix this problem too here is what I’m using (only works with 1 player)

    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_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "0"
    input_player1_x_btn = "2"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    
    input_player2_joypad_index = "0"
    input_player2_b_btn = "1"
    input_player2_y_btn = "3"
    input_player2_select_btn = "6"
    input_player2_start_btn = "7"
    input_player2_up_axis = "-1"
    input_player2_down_axis = "+1"
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    input_player2_a_btn = "0"
    input_player2_x_btn = "2"
    input_player2_l_btn = "4"
    input_player2_r_btn = "5"
    
    input_player1_a = "nul"
    input_player1_b = "nul"
    input_player1_y = "nul"
    input_player1_x = "nul"
    input_player1_start = "nul"
    input_player1_select = "nul"
    input_player1_l = "nul"
    input_player1_r = "nul"
    input_player1_left = "nul"
    input_player1_right = "nul"
    input_player1_up = "nul"
    input_player1_down = "nul"
    input_exit_emulator = "nul"
    
    input_player2_a = "nul"
    input_player2_b = "nul"
    input_player2_y = "nul"
    input_player2_x = "nul"
    input_player2_start = "nul"
    input_player2_select = "nul"
    input_player2_l = "nul"
    input_player2_r = "nul"
    input_player2_left = "nul"
    input_player2_right = "nul"
    input_player2_up = "nul"
    input_player2_down = "nul"
    input_exit_emulator = "nul"
    
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    
    input_save_state_btn = "5"
    input_load_state_btn = "4"
    wafflers
    Participant

    Hello,

    So I’ve got got my Raspberry pi a few days ago. Never used linux before. Complete noob.

    However! I have gotten retropie loaded, have it working quite well with my gamepad (using these).

    I currently only have one gamepad.

    Ok. So I know Super Mario All-Stars is a bit broken. It seems to switch the controller to second player whenever the game is started.

    In order to fix this, I’ve heard that you can modify the controller so player 2 doesn’t exist but that this can mess up other games..

    So I made just this one rom run off of “pisnes” instead of just the snes emulator. I then created a secondary config file for pisnes for the controller input. I’ve tested this config file and know that it is running the correct one.

    However, I am still unable to get the gamepad to work properly with this rom.

    Here are the different techniques I’ve tried:

    First try: What this “should” do (according to what my mind is telling me) is make both players run off of index 0.. right? Or am I wrong?

    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_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "0"
    input_player1_x_btn = "2"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    
    input_player2_joypad_index = "0"
    input_player2_b_btn = "nul"
    input_player2_y_btn = "nul"
    input_player2_select_btn = "nul"
    input_player2_start_btn = "nul"
    input_player2_up_axis = "nul"
    input_player2_down_axis = "nul"
    input_player2_left_axis = "nul"
    input_player2_right_axis = "nul"
    input_player2_a_btn = "nul"
    input_player2_x_btn = "nul"
    input_player2_l_btn = "nul"
    input_player2_r_btn = "nul"
    input_enable_hotkey_btn = "nul"
    input_exit_emulator_btn = "nul"
    
    input_player1_a = "nul"
    input_player1_b = "nul"
    input_player1_y = "nul"
    input_player1_x = "nul"
    input_player1_start = "nul"
    input_player1_select = "nul"
    input_player1_l = "nul"
    input_player1_r = "nul"
    input_player1_left = "nul"
    input_player1_right = "nul"
    input_player1_up = "nul"
    input_player1_down = "nul"
    input_exit_emulator = "nul"
    
    input_player2_a = "nul"
    input_player2_b = "nul"
    input_player2_y = "nul"
    input_player2_x = "nul"
    input_player2_start = "nul"
    input_player2_select = "nul"
    input_player2_l = "nul"
    input_player2_r = "nul"
    input_player2_left = "nul"
    input_player2_right = "nul"
    input_player2_up = "nul"
    input_player2_down = "nul"
    input_exit_emulator = "nul"
    
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    
    input_save_state_btn = "5"
    input_load_state_btn = "4"

    Second try: (credit to KitchUK for this one)

    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_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    
    input_player2_joypad_index = "nul"
    input_player2_b_btn = "nul"
    input_player2_y_btn = "nul"
    input_player2_select_btn = "nul"
    input_player2_start_btn = "nul"
    input_player2_up_axis = "nul"
    input_player2_down_axis = "nul"
    input_player2_left_axis = "nul"
    input_player2_right_axis = "nul"
    input_player2_a_btn = "nul"
    input_player2_x_btn = "nul"
    input_player2_l_btn = "nul"
    input_player2_r_btn = "nul"
    input_enable_hotkey_btn = "nul"
    input_exit_emulator_btn = "nul"
    
    input_player1_a = "nul"
    input_player1_b = "nul"
    input_player1_y = "nul"
    input_player1_x = "nul"
    input_player1_start = "nul"
    input_player1_select = "nul"
    input_player1_l = "nul"
    input_player1_r = "nul"
    input_player1_left = "nul"
    input_player1_right = "nul"
    input_player1_up = "nul"
    input_player1_down = "nul"
    input_exit_emulator = "nul"
    
    input_player2_a = "nul"
    input_player2_b = "nul"
    input_player2_y = "nul"
    input_player2_x = "nul"
    input_player2_start = "nul"
    input_player2_select = "nul"
    input_player2_l = "nul"
    input_player2_r = "nul"
    input_player2_left = "nul"
    input_player2_right = "nul"
    input_player2_up = "nul"
    input_player2_down = "nul"
    input_exit_emulator = "nul"

    Neither of these worked.. Looking at them it looks like they should work.. I’m having trouble figuring out why it is still switching over to second player, when second player either doesn’t exist or is the same index as player 1.

    Anyone have any suggestions?

    kenno7
    Participant

    Hello,

    I have Save and Load states working BUT only if I have a hotkey set…
    I don’t want to use a hotkey….
    I just want them to work without the hotkey!

    I’ve tried setting input_enable_hotkey = “nul”
    But that won’t let me save, load, exit or anything!

    I’ve tried putting multiple values for it in for the hot key like

    input_enable_hotkey = n
    input_enable_hotkey = m
    input_enable_hotkey = escape

    (and have save state set for n , load state set for m , exit set for escape) But that will just use whichever line of code is on top in the cfg file as the hotkey

    A strange issue seems to be happening aswell… I’ve set my screenshot key to ‘e’
    When I press the hotkey + e it does screenshot but also puts the emulation into Slow Motion. I’ve tried commenting out the Slow Motion part of the config file AND removing the lines all together but it still works….

    Is there something I’m missing here?

    Would really appreciate it if someone could give me a hand.

    Thanks

    #81627
    sjo102784
    Participant

    If it helps, this is my retroarch.cfg file information, coming from retroarch/configs/all/:

    system_directory = /home/pi/RetroPie/roms/../BIOS
    config_save_on_exit = false
    video_aspect_ratio = 1.33
    video_smooth = false
    video_threaded = true
    rewind_enable = false
    rewind_buffer_size = 10
    rewind_granularity = 2
    input_rewind = r
    video_gpu_screenshot = true
    joypad_autoconfig_dir = /home/pi/RetroPie/configs/all/
    #
    #Audio Settings
    #audio_out_rate = 48000
    audio_out_rate = 44100
    audio_driver = alsathread
    audio_volume = 20.0
    #
    #GamePad 1 Settings
    #
    input_enable_hotkey_btn = @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”
    #
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”
    input_save_state_btn = “6”
    input_load_state_btn = “7”
    #
    #GamePad 2 Setting
    input_enable_hotkey_btn = @input_player1_joypad_index = “1”
    input_player2_b_btn = “2”
    input_player2_y_btn = “3”
    input_player2_select_btn = “8”
    input_player2_start_btn = “9”
    input_player2_up_btn = “h0up”
    input_player2_down_btn = “h0down”
    input_player2_left_btn = “h0left”
    input_player2_right_btn = “h0right”
    input_player2_a_btn = “1”
    input_player2_x_btn = “0”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_btn = “6”
    input_player2_r2_btn = “7”
    input_player2_l3_btn = “10”
    input_player2_r3_btn = “11”
    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 = “+2”
    input_player2_r_x_minus_axis = “-2”
    input_player2_r_y_plus_axis = “+3”
    input_player2_r_y_minus_axis = “-3”
    #
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”
    input_save_state_btn = “6”
    input_load_state_btn = “7”

    I made sure the gamepad button numbers were correct – I used the numbers my RasPi used when identifying buttons rather than the actual button numbers themselves, so this is accurate. The main GUI screen works fine when switching between emulators and selecting games, but when I enter an emulator the button mapping is all over the place. Start and select remap to R2 and L2, A and B aren’t correct, and my Dpad isn’t registering at all.

    Any ideas?

    GreenAdder
    Participant

    Currently all of the emulators underneath RetroPie are deferring to the default retroarch.cfg. I can see that each emulator has its own config file in the appropriate folders, but I’m at a loss as to what the actual names for the button bindings are.

    I’d like to be able to rebind the Game Boy (and variants), NES, TG16 and possibly Genesis to “friendlier” layouts – specifically I’d like to remap the Game Boy and NES button bindings to a more “Super Game Boy” styled layout. (top/left = “B” and bottom/left =”A”)

    Currently these are my button bindings. So for instance, the RetroArch.cfg file just has “input_player1_a_btn” as its “A” button binding for the first gamepad. But what would be the name of the binding on the NES or Game Boy? The TG16 has “1” and “2” buttons. What name am I binding buttons to for that?

    Here’s my current RetroArch setup, if it helps:

    #GamePad 1 Settings
    input_player1_joypad_index = "0"
    input_player1_a_btn = "1"
    input_player1_b_btn = "0"
    input_player1_x_btn = "3"
    input_player1_y_btn = "2"
    input_player1_select_btn = "6"
    input_player1_start_btn = "7"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l3_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"
    #
    input_enable_hotkey_btn = 7
    input_exit_emulator_btn = 6
    #
    #GamePad 2 Settings
    input_player2_joypad_index = "1"
    input_player2_a_btn = "1"
    input_player2_b_btn = "0"
    input_player2_x_btn = "3"
    input_player2_y_btn = "2"
    input_player2_select_btn = "6"
    input_player2_start_btn = "7"
    input_player2_up_btn = "h0up"
    input_player2_down_btn = "h0down"
    input_player2_left_btn = "h0left"
    input_player2_right_btn = "h0right"
    input_player2_l_btn = "4"
    input_player2_r_btn = "5"
    input_player2_l3_btn = "11"
    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 = "+2"
    input_player2_r_x_minus_axis = "-2"
    input_player2_r_y_plus_axis = "+3"
    input_player2_r_y_minus_axis = "-3"
    #
    input_enable_hotkey_btn = 7
    input_exit_emulator_btn = 6
    #81518

    In reply to: Mayflash Arcade Stick

    copypaste
    Participant

    Yes I have. This is what came out in the MY-POWERCO.,LTD.MayflashArcadeStick.cfg. It never lets me skip the buttons or timeout so I just put the rest to the same button. When I first image the card, I can use the stick to navigate around. The second I configure it, the stick becomes worthless and I can’t use it to navigate in the menus or in emulators.

    input_device = “MY-POWER CO.,LTD. Mayflash Arcade Stick”
    input_driver = “linuxraw”
    input_b_btn = “0”
    input_y_btn = “4”
    input_select_btn = “8”
    input_start_btn = “9”
    input_up_axis = “-3”
    input_down_axis = “+3”
    input_left_axis = “-2”
    input_right_axis = “+2”
    input_a_btn = “1”
    input_x_btn = “5”
    input_l_btn = “6”
    input_r_btn = “2”
    input_l2_btn = “7”
    input_r2_btn = “7”
    input_l3_btn = “7”
    input_r3_btn = “7”
    input_l_x_plus_btn = “7”
    input_l_x_minus_btn = “7”
    input_l_y_plus_btn = “7”
    input_l_y_minus_btn = “7”
    input_r_x_plus_btn = “7”
    input_r_x_minus_btn = “7”
    input_r_y_plus_btn = “7”
    input_r_y_minus_btn = “7”
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”
    input_menu_toggle_btn = “5”
    input_load_state_btn = “6”
    input_save_state_btn = “2”
    input_reset_btn = “0”
    input_state_slot_increase_axis = “+2”
    input_state_slot_decrease_axis = “-2”

    #81409

    In reply to: Exit emulator problem

    doublej
    Participant

    Hello
    I am having the same issues with my controller, I have a SNes remote and all the controls work except the hotkeys. I’ve tried putting the codes into different areas and it still does not work in any of the emulators. Can someone please point me in the right direction to resolve this issue? I am running the newest version of retropie 2.3.

    #74326
    kenno7
    Participant

    Okay .. Half way through solving another one of my issues..

    Save and Load states now seem to work BUT only if I have a hotkey set…
    I don’t want to use a hotkey….
    I just want them to work!

    I’ve tried setting input_enable_hotkey = “nul”
    But that won’t let me save, load, exit or anything!

    I’ve tried putting multiple values for it in like
    input_enable_hotkey = n
    input_enable_hotkey = m
    input_enable_hotkey = escape

    But that will just use whichever line is on top in the cfg file as the hotkey

    A strange issue seems to be happening aswell… I’ve set my screenshot key to ‘e’
    When I press the hotkey + e it does screenshot but also puts the emulation into Slow Motion. I’ve tried commenting out the Slow Motion part of the config file AND removing the lines all together but it still works….

    Is there something I’m missing here?

    Would really appreciate it if someone could give me a hand.

    Thanks

    #73607
    droopie
    Participant

    i could not get this to work. i found similar lines input_enable_hotkey = “escape”
    input_exit_emulator = “escape”. neither the post above or the default works for me.

    Ben
    Guest

    I was able to setup a way to exit out of an emulator with my controller by configuring a hotkey and an exit button. However, a lot of times I simply want to reset the ROM because I picked 1 player instead of 2 for example. Exiting and re-selecting the ROM does take a little while. A simple ROM reset wold be much quicker and I know it’s possible to do with most emulators I’ve ever used in Windows or Linux. Is there a function I can map to the controller with the hotkey where I could just reset the ROM? I’ve googled everywhere and I can’t find anything.

    Thanks

    #72072
    Floob
    Member

    Thats a great tip. Thanks.
    The post referenced is now at:
    http://www.libretro.com/forums/viewtopic.php?f=2&t=201

    For reference the file I needed to edit to do this was:
    /opt/retropie/emulators/RetroArch/configs/USBGamepad.cfg

    As explained above, your start and select codes may be different, but this is shown by the keys you have already mapped. Here is my 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"
    electromaster64
    Participant

    I know how this is done for USB gamepad but I cannot get it to work using a keyboard. I have a teensy 2.0 set up as a USB keyboard that is set up like a SNES controller so there is not a dedicated escape button.

    Right now I have
    # input_enable_hotkey_btn = enter
    # input_exit_emulator = tab

    This is not working any suggestions?

    #68114

    In reply to: Map Escape to Button

    Arnaud
    Guest

    Hi, I’m glad it worked for you.

    For Mame it’s normal, it doens’t come under the retroarch umbrella. If you use Mame4All you press the TAb key and a menu pops up where you can assign a key. However, there is no “hotkey” therefore you need to use a specific button to exit the emulator that won’t be used for anything else.

    #67339
    gizmo98
    Participant

    Problem:
    retroarch-joyconfig creates a autoconfig file with hotkeys, which can be used if the hotkey “select” is pushed. So you can exit a game with select + start, you can open RGUI with select + Y and you can save a state with select + R1. The only problem: If there is no input_enable_hotkey keyboard mapping the select button will not work…

    Please open /opt/RetroPie/configs/all/retroarch.cfg. Add a input_enable_hotkey keyboard mapping. For example add “input_enable_hotkey = f12” and save.

    #67328
    gizmo98
    Participant

    Game colorization is a core option. Open RGUI (F1 or any Hotkey+Menu key combination), select core options and enable colorization.

    #66152

    In reply to: Map Escape to Button

    Arnaud
    Guest

    Hi,

    Are you using retroarch (i.e. NES, SNES, Genesis, Atari,…) emulators ?

    If yo you need to edit your retroarch.cfg file in /opt/retropie/configs/all.

    You need to map a button for the hotkey, i.e. you will have to press this first to trigger the special key mode such as exit, save state and load state.

    input_enable_hotkey_btn = your joypad key

    then you need to map the actual escape button

    input_exit_emulator_btn

    There are many posts on this in the forum

    #63634
    Giorgio
    Guest

    Hi,
    i’m pretty to new to Emulationstation and RetroPie. I’m stuck on a problem related to the joypad.

    I have this pad:

    http://www.rgdigital.it/rg_catalog/images/extra/large/IMG_5167Custom_VLSG7FpZ0K7W_large.jpg

    It works like a charm, the only thing is that i can’t configure select+start as the exit button.
    I’ve put

    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"

    in /opt/retropie/emulators/RetroArch/retroarch.cfg, but it doesn’t work.

    I suppose that 8 and 9 are not select and start on my pad, but how can i discover what numbers are?
    Thank you

    #56742
    Anonymous
    Inactive

    Why are you setting up your controllers in /opt/retropie/configs/all/retroarch.cfg?

    Here’s how I do it and how I believe it should be done (you can do this either through SSH from another machine or locally using a keyboard):
    cd RetroPie-Setup
    sudo ./retropie_setup.sh
    Select number 3 (Setup)
    Select number 315 (Register RetroArch controller)
    Follow the instructions

    Your controller config will now be saved in its own file in /opt/retropie/emulators/RetroArch/configs/ and it will be used only for this specific controller so you can have different mappings for different controllers.

    Sadly the hotkey, exit, load state and save state buttons seems to have to be in the main retroarch.cfg which kind of limits the possibility to mix controller types.

    #54521
    gamecubator
    Guest

    Okay done, thanks to gizmo98, josy-cotter and foob.

    I had bought 2 low-cost SNES USB controllers for PC/MAC (Tomee) and wanted to play 2-player NES games with them on my retropie distro.

    Here is that part of /opt/retropie/configs/all/retroarch.cfg that configures both gamepads as well as sets up emulator exit via “start+select” buttons combo:

    input_player1_joypad_index = 0
    input_player2_joypad_index = 1

    input_player1_b_btn = “2”
    input_player1_y_btn = “3”
    input_player1_select_btn = “8”
    input_player1_start_btn = “9”
    input_player1_up_axis = “-1”
    input_player1_down_axis = “+1”
    input_player1_left_axis = “-0”
    input_player1_right_axis = “+0”
    input_player1_a_btn = “1”
    input_player1_x_btn = “0”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    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_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    I hope it helps.
    Alex

    #49705
    kindofblue
    Guest

    hey were you guys able to resolve this?

    This is what my /opt/retropie/emulators/Retroarch/configs/USBGamepad.cfg looks like:

    input_driver = “udev”
    input_b_btn = “2″
    input_y_btn = “3″
    input_select_btn = “9″
    input_start_btn = “8″
    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″

    savefile_directory = /home/pi/RetroPie/
    savestate_directory = /home/pi/RetroPie/
    #autosave_interval = 300
    #input_player1_joypad_index = “0”
    #input_player1_a_btn = “1”
    #input_player1_b_btn = “2”
    #input_player1_x_btn = “3”
    #input_player1_y_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_start_btn = “9”
    #input_player1_select_btn = “8”
    #input_player1_left_axis = “-0”
    #input_player1_up_axis = “-1”
    #input_player1_right_axis = “+0”
    #input_player1_down_axis = “+1”
    #input_player1_l_x_plus_btn = “h0right”
    #input_player1_l_y_plus_btn = “h0up”
    #input_player1_l_x_minus_btn = “h0left”
    #input_player1_l_y_minus_btn = “h0down”
    #input_player1_r_x_plus_axis = “+2”
    #input_player1_r_y_plus_axis = “+3”
    #input_player1_r_x_minus_axis = “-2
    #input_player1_r_y_minus_axis = “-3”

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    input_save_state_btn = “6”
    input_load_state_btn = “7”

    #48606
    johnnieg78
    Participant

    I too am having some controller issues, but I have a USB Logitech Duel Action. I can do a basic configuration of it, but I can’t seem to figure out how to add a quit game hotkey and a save game state hotkey.

    I found code to do that and figuring out which buttons are numbered what will drive you crazy.

    The thing is, I’d like to find the Retroarch.config file via the GUI. I can’t seem to locate it.

    I am running RetroPie 2.3. Any help?

    #47114
    fonzman
    Participant

    Yes, its working!

    Thanks for all the suggestions.

    For future reference: the only cfg-files that matter are in ‘/opt/retropie/configs’
    In my case I added the two lines to ‘/opt/retropie/configs/all/retroarch.cfg’

    (My ‘/home/pi/RetroPie/configs/retroarch.cfg’ was simply ignored)

    I also set ‘input_enable_hotkey = tab’
    (Perhaps that triggered the ‘input_enable_hotkey_btn’ to work … I don’t know)

    #47042
    isarai
    Participant

    What file exactly did you put these hotkeys in? they’re supposed to be in the retroarch.cfg file, also you don’t need the quotes (mine works fine without it) and make sure input_exit_emulator_btn is right below input_enable_hotkey_btn with no empty line in between

    #46756
    petrockblog
    Keymaster

    Does this behavior change when you set the parameter input_enable_hotkey to some value? There might be a dependency on this parameter …

    #46699
    fonzman
    Participant

    I want to press “select + L3” to exit the emulator.
    however, it already exits if I only press L3.

    I created the configs using the “Configure RetroArch controller” option in the retropie-setup menu, and afterwards inserted the two lines for input_enable_hotkey_btn and input_exit_emulator_btn.

    If I open the RetroArch menu inside an emulator (by pressing F1), I see both assigned buttons with the word “auto” in front (because it takes the settings from /opt/retropie/emulators/RetroArch/configs ).

    fonzman
    Participant

    Hi Folks!

    I just recently installed RetroPie to my RaspberryPi and I am really happy with it.
    The only thing that bugs me is, that the “input_enable_hotkey_btn” is simply ignored!

    For example, simply pressing “input_exit_emulator_btn” is enough to exit the emulator, without any need of pressing the hotkey_btn.

    I tried different controllers and put the two lines nearly everywhere in my config files:

    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "11"

    (btn 8 is select on my controller and btn 11 is L3 on my controller)

    I tried the controller-specific files retroarch creates in /opt/retropie/emulators/RetroArch/configs
    as well as /opt/retropie/configs/all/retroarch.cfg
    I even created /home/pi/RetroPie/configs/all/retroarch.cfg (whicht didn’t exist!) and put the lines there to no avail.

    Is there any specific setting to enable the use of a hotkey_btn in RetroArch? Did I miss something?

    For clarification: should all the buttons I define after the line input_enable_hotkey_btn only be active while holding down the hotkey? Or how does RetroArch decide which btn to use in combination with the hotkey_btn?

    thanks,
    best regards,
    fonzman

    #46501
    borlandoflorida
    Participant

    Ok, I am with you now.

    You need to adjust the settings from within the emulator menu (usually in NES/SNES/Genesis etc it is accessed by pressing F1 on your keyboard).

    Then go into settings -> Video settings, then choose a custom resolution and then adjust to fit your screen.

    You need to save the settings (there is a save function on the main options screen), but this will save the settings as a new .cfg file (usually libretro.cfg or something similar).

    This means when you re-load the emulator, it will load the file retroarch.cfg and not the new one you just created with your new resolutions.

    To fix this, you will need to SSH into your Pi (I use WinSCP so you can browse the file structure) and locate the new libretro.cfg file within the relevant folder (I think it might be in the all folder, but I cannot remember exactly as I’m at work at the moment I have just seen on another topic that the file is saved here: /opt/retropie/emulators/RetroArch/configs), then rename this retroarch.cfg (may be worth backing up the existing retroarch.cfg first by downloading it to your PC desktop) and then reboot the pi.

    If all has gone well, the emulator should boot using the new settings and should now be displaying in full screen!

    PS – This is also very useful when setting up controllers, shaders etc. I would recommend doing it all in one go, then saving the new .cfg file before renaming it to retroarch.cfg otherwise you’ll be constantly to-ing and fro-ing.

    PPS – If you cannot access the emulator menu when you launch the game, it may be because the hotkey option is not working. This requires some SSH-ing and editing of the retroarch.cfg file to set the relevant hotkey (I set my hotkey to F2, so I hold F2 then press F1 to bring up the menu). There is a separate post on this topic here (https://www.petrockblock.com/forums/topic/how-to-setup-a-controller-in-2-2/#post-13105) which is worth reading too (plus it saves repeating information that is already on this forum).

    Hope this helps!

    #45833
    papabear
    Participant

    However, I found it sometimes problematic accessing the menu by pressing F1. I managed to fix this by editing the relevant .cfg file and changing the hotkey to F2. I could then access the menu by holding F2 then pressing F1.

    Could you be so kind too tell me how to get too the ‘relevant.cfg file’ .. because f1 doesnt bring up a menu, as you mentioned, and I don’t know what .cfg you are refering to.

    Thanks!!

    #45826
    borlandoflorida
    Participant

    The easiest way to do this is from within the emulator menu itself. It’s much quicker than messing around with .cfg files etc.

    Play a game – I would usually go for something NES/SNES/Megadrive related (not MAME or the other ports).

    Access the emulator menu (usually you press F1) and then you can go to the settings etc. Choose input and then assign the relevant buttons on your control pad.

    However, I found it sometimes problematic accessing the menu by pressing F1. I managed to fix this by editing the relevant .cfg file and changing the hotkey to F2. I could then access the menu by holding F2 then pressing F1.

    Check out this post here: https://www.petrockblock.com/forums/topic/how-to-setup-a-controller-in-2-2/#post-13105 as this should help.

    papabear
    Participant

    When i config my wired xbox 360 controller using the ‘register retroarch controller’ in the ‘retropie setup’ , it all works find and i get the message that the file MircosoftX-Box360pad.cfg is made.

    But OFCOURSE i want too exit my games using the xbox controller.. my guess is that i need find that MircosoftX-Box360pad.cfg and edit the input_enable_hotkey_btn = 10
    input_exit_emulator_btn = 9.

    But I can´t find the config file. Can u help me?

Viewing 35 results - 841 through 875 (of 1,077 total)