Homepage Forums Search Search Results for 'dual'

Viewing 35 results - 736 through 770 (of 888 total)
  • Author
    Search Results
  • djdtime
    Participant

    I am hoping to get help with this!, I am using Ipac2 as a controller, I have MAME and NeoGeo, they map without problem, but SNES, genesis and Atari do not respond to the key mapping, I had been trying different things, I had spent more than forty hours on it, without results. I tried to modify /all/retroarch.cfg and even the individual ones on the Super Nintendo and Genesis, when I do map it, I get this; RetroArch [WARN] :: Key name Lctrl not found ,1,5 and Lalt not found
    Do you have any idea of what the problem may be?
    Here is a copy of my configuration.

    #### 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 = Lctrl
    input_player1_b = Lalt
    input_player1_y = space
    input_player1_x = Lshift
    input_player1_l = z
    input_player1_r = x
    input_player1_start = 5
    input_player1_select = 1
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down

    input_player2_a = a
    input_player2_b = s
    input_player2_y = q
    input_player2_x = w
    input_player2_l = i
    input_player2_r = k
    input_player2_start = 2
    input_player2_left = d
    input_player2_right = g
    input_player2_up = r
    input_player2_down = f

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

    #82189
    whoismezero
    Participant

    [quote=82162]Guys, this is somewhat pointless. The time ES needs to load varies depending on the number of systems and ROMs present in your folders. If you overlay a video with omxplayer, you would have to stop the time ES needs to load completely for your individual installation. And then it’s only valid until you add more ROMS. The video would always play either longer than ES needs to get to the carousel or shorter.
    EmulationStation is branded, it will stay like this, but you can always take the source, replace the svg for the logo and compile it. Easiest way.
    [/quote]

    It’s not pointless.

    I’m not trying to cover up the EmulationStation logo, I am trying to cover up the RaspberryPi boot up messages. I time my video to end during the EmulationStation loading screen so that I can make sure that the branding is visible during boot up, and I also end my video with the EmulaitonStation logo so that there is, not only, a seamless transition between my video and the program but also so that I can ensure that the logo will be visible no matter how long it takes to boot up.

    Replacing the svg is not the easiest way.
    For somebody who has never worked with any type of programming before and is using this arcade machine project as an introduction to Linux, modifying source code and compiling would be a very daunting and difficult task.

    Besides that, it actually isn’t as easy as replacing the svg and compiling. After you replace the svg, you have to run a script (after you’ve changed it’s permissions) that creates a file based from the svg, and then you have to analyse and modify that file before you compile otherwise it will fail. Also, if you are compiling on a RaspberryPi, compiling the source code takes multiple hours. This is not ideal for a beginner.

    Making a simple modification to a splashscreen script and transferring a video file is much, much easier.

    #82181
    ex
    Participant

    @mikedpitt

    Have you configured the controller settings for MAME4ALL and Neo Geo? They don’t use retroarch and require you to enter individual settings for them.

    Also, ES looks for images and descriptions from thegamesdb.net. The site has been down more often than not the past few days, so this could be the reason for problems your having.

    #82162
    nilsbyte
    Participant

    Guys, this is somewhat pointless. The time ES needs to load varies depending on the number of systems and ROMs present in your folders. If you overlay a video with omxplayer, you would have to stop the time ES needs to load completely for your individual installation. And then it’s only valid until you add more ROMS. The video would always play either longer than ES needs to get to the carousel or shorter.

    EmulationStation is branded, it will stay like this, but you can always take the source, replace the svg for the logo and compile it. Easiest way.

    mikedpitt
    Participant

    Hi, I am rebuilding an old midway cocktail cabinet. I have an IPAC Ultimate keyboard emulator AND 2 ps3 controllers for a total of 4 players. What I would like to do, is add another instance of MAME to Emulationstation, with it’s own retroarch.cfg file, which contains “force screen rotation=1” and it’s own theme (just the same MAME theme, but with the SFV file edited to say something like “MAME Cocktail”). I have all of the controls working, but I cannot add the extra emulator. What I’ve done so far, is to install another copy of mame, which I put into /opt/retropie/emulators/MAMEFLIP/, I also added a folder in /opt/retropie/emulators/cfg/mameflip. I then copied the lines defining the MAME emulator system in es_system.cfg. I changed the path to it’s own rom folder /mnt/usbhdd/roms/mameflip (to specifically hold roms for cocktail flip). I changed the executable path to match where the second instance of mame is (/opt/retropie/emulators/MAMEFLIP). I also copied /etc/emulationstation/mame to /etc/emulationstation/mameflip.

    Ideally what I’m trying to accomplish is:
    Having in the main emulationstation menu, an instance of MAME4ALL-PI which points to a retroarch.cfg file that keeps the screen oriented the way it is, and utilizes the ps3 controls.
    Having a second instance of MAME on the main emulationstation menu (preferably with an altered graphic that said “MAME Cocktail” or something, but I understand that SFV files cannot be edited in this way) that points to it’s own romset and it’s own retroarch.cfg file that rotates the screen 90 degrees, and utilizes the joysticks as controllers.
    So I guess my question is, how do I add another MAME emulator, with it’s own menu graphics, and romset, etc.
    If there’s anyone with a better way to accomplish this goal without adding another instance of MAME, like possibly how to program MAME to flip an individual game 90 degrees when it’s loaded?

    Thanks for any help you can give me.

    davidesm
    Participant

    [quote=81968]Odd that ES doesnt see the other systems. Do the roms show happily within EmulationStation itself – so to check if the rom extension is good? Perhaps it was a temporary network glitch and it would work if you tried again?
    [/quote]
    It saw the other systems, but would fail to pull anything for each game. I tried to scrape for each system individually and it would sit on each game for 30ish seconds, then go to the next without finding anything.

    The roms all appeared fine under each system and with the exception of the GBA and Game Gear, they were playing fine.

    Perhaps it was something network related. Will try again tonight. If no luck, I will simply move on to sselph and hope that works.

    Thanks for the bios suggestion as well.

    goodwinsplace
    Participant

    Hi All,

    Running latest version of download from here around 2-3 weeks ago.

    New to Retropie but been reading loads and gotten quite a way through myself without having to ask any noob questions, but I can’t sort this out.

    Question 1, If I launch the SNES emulator the games load, I can play the games, restart using the start + select combo, great. But for some reason the X button restarts the emulator also????
    Here is the retroarch.cfg details for the control pad:

    ## 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 =
    
    # 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_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”
    
    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"

    Question 2, how do I configure the second control pad? I’ve tried copying the above and pasting, but changing player1 to player2 and the joypad_index = “1”, but when this code is in place it controls both P1 and P2 from the one control pad.

    Any ideas or pointers welcome.

    #81749
    GreenAdder
    Participant

    What are the button aliases for individual emulators? If I wanted to change the button layout on the TG16 or NES for instance, what would the config files for those emulators look like?

    Thanks.

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

    #81648
    shywolf28
    Participant

    I am dualbooting with Raspbmc, if thats how you are doing yours, then follow this way: We need to install advance launcher, two ways of doing this one you can go to terminal and type
    wget http://www.gwenael.org/Repository/repository.angelscry.xbmc-plugins/repository.angelscry.xbmc-plugins-1.2.2.zip

    or download angelcry’s repository and do it through there, assuming you know how to install add ons..

    First create RetroPie.sh(just copy that one that is attached and save it to home/pi/…..

    Make it executable

    sudo chmod +x RetroPie.sh

    Now open Advanced Launcher

    Select Default>>Standalone Launcher >>Home folder >> RetroPie.sh
    Leave Application Arguments Blank, set the title as you wish, platform doesn’t matter, i chose Linux, i did not provide a thumbnail or fan art (just select OK)

    With that done I recommend you add the newly created launcher to your favorites to avoid having to dig for it every time you want to switch.

    next create a new directory: sudo nano /media/RECOVERY/autoboot.txt
    and type : boot_partition=5

    sudo reboot and you should have it…let me know how it goes

    sjo102784
    Participant

    Hello everyone

    I picked up a Raspberry Pi B+ and have been working with EmulationStation/RetroPie for the last several days.

    Everything is set up correctly – the Pi/OS settings, SSH, etc. I have ROMs on the device that are recognized and my controllers are picked up by EmulationStation without any issue.

    I’ve had a hell of a time getting the controller set up. I’m using a Logitech Dual Action controller – basically a generic USB controller that mimics the PS1 design (dpad, two joysticks, L1, L2, R1, R2, start, select, four buttons on the right side for A,B,X,Y). I’ve run the controller setup in the RetroPie setup screen, the command line, and I’ve tried manually changing the retroarch.cfg file through the GUI OS in the .cfg file using the actual key numbers for each key. No matter what I try, the controller either isn’t picked up by the emulator (tried NES, SNES, Gameboy, PSX) or the only button that seems to register is R2 as the start button.

    I’m at a loss. I had two wireless Xbox controllers hooked up and working together for a two player game, but the blinking “X” light made it more annoying than it was worth. I couldn’t get the blinking light to stop despite following a very specific online guide to do so.

    I’ve tried looking all over this forum and about four or five other forums/blogs/online guides for setting up controllers. The main issue I’m running into is the instructions and directory listings are not for the current version of EmulationStation (2.3) and nearly every command or directory I try to set up/use is listed as invalid.

    Please help, I’m at my wit’s end. Is there an up-to-date guide for setting up controllers on 2.3 anywhere on the internet? Believe me, I’ve looked through this forum and others with no luck. I’d appreciate any help you’re willing to offer. Thank you in advance.

    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
    #81511
    bobbyt
    Participant

    I’m not sure what you mean by RetroPie setup script.

    At first I thought you meant ./retropie_setup.sh but I quickly found this is a tool for downloading an updating the RetroPie binaries (which suffers from the EXACT same connection issue (111: Connection refused) when I try using it).

    The only other thing I can find corresponding with setup is the USB controller setup inside the emulator environment. The problem with this is it seems that mapping doesn’t carry though to the emulators too well, or at all…

    When I run one emulator only the direction pad and 1 button seem to be mapped correctly, the others are all over the place or non existent (‘start’ seems to be hiding in one of the primary keypad buttons, and one of the shoulder buttons has no effect (while the other shoulder button is the only one mapped correctly)).

    When I run another emulator I get no response from any of the buttons. I’m stuck at the intro screen…

    In spite of this, it appears the gamepad itself is properly recognized during setup (even though it only has me assign about half the buttons the gamepad has built in).

    This is why I planned on manually modifying the key mappings files in the individual emulator directories, but I ran into a complete inability to run any installers or updaters because there appears to be some kind of proxy automatically enabled on the SD 2.3 card image (and I’ve yet to figure out how to modify this setting).

    If there is something else I’m overlooking, I would really appreciate the help…

    #81484

    In reply to: Wireless controllers

    sixfthick
    Participant
    sixfthick
    Participant
    #81300
    matthew798
    Participant

    login as: root
    root@192.168.2.11’s password:
    Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Fri Sep 26 20:59:04 2014 from 192.168.2.12
    root@raspberrypi:~# cd ..
    root@raspberrypi:/# cd opt/
    root@raspberrypi:/opt# cd retropie
    root@raspberrypi:/opt/retropie# cd emulators
    root@raspberrypi:/opt/retropie/emulators# cd mupen64plus-rpi
    root@raspberrypi:/opt/retropie/emulators/mupen64plus-rpi# ./mupen64plus /home/pi /RetroPie/roms/n64/Supersmash.z64
    -bash: ./mupen64plus: No such file or directory
    root@raspberrypi:/opt/retropie/emulators/mupen64plus-rpi# cd test
    root@raspberrypi:/opt/retropie/emulators/mupen64plus-rpi/test# ./mupen64plus /ho me/pi/RetroPie/roms/n64/Supersmash.z64
    __ __ __ _ _ ____ _
    | \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
    | |\/| | | | | ‘_ \ / _ \ ‘_ \| ‘_ \| || |_| |_) | | | | / __|
    | | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
    |_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
    |_| http://code.google.com/p/mupen64plus/
    Mupen64Plus Console User-Interface Version 2.0.0

    UI-Console: attached to core library ‘Mupen64Plus Core’ version 2.0.0
    UI-Console: Includes support for Dynamic Recompiler.
    UI-Console Error: core gave error while setting/unsetting verbose print
    Core: Goodname: Super Smash Bros. (U) [!]
    Core: Name: SMASH BROTHERS
    Core: MD5: F7C52568A31AADF26E14DC2B6416B2ED
    Core: CRC: 916b8b5b 780b85a4
    Core: Imagetype: .z64 (native)
    Core: Rom size: 16777216 bytes (or 16 Mb or 128 Megabits)
    Core: Version: 1449
    Core: Manufacturer: Nintendo
    Core: Country: USA
    UI-Console Status: Cheat codes disabled.
    Video: DEBUG Video-Rice InitConfiguration() 658
    Video: DEBUG Video-Rice set default configuration
    UI-Console: using Video plugin: ‘Mupen64Plus OpenGL Video Plugin by Rice’ v2.0.0
    UI-Console: using Audio plugin: ‘Mupen64Plus OMX Audio Plugin’ v2.0.0
    UI-Console: using Input plugin: ‘Mupen64Plus SDL Input Plugin’ v2.0.0
    UI-Console: using RSP plugin: ‘Hacktarux/Azimer High-Level Emulation RSP Plugin’ v2.0.0
    Video: DEBUG Video-Rice InitConfiguration() 835
    Video: DEBUG Video-Rice set default configuration
    Input: 1 SDL joysticks were found.
    Input: N64 Controller #1: Using auto-config with SDL joystick 0 (‘Logitech Logit ech Dual Action’)
    Input: 1 controller(s) found, 1 plugged in and usable in the emulator
    Input Warning: No rumble supported on N64 joystick #1. features = 0x0 0x0 0x0 0x0
    Input: Mupen64Plus SDL Input Plugin version 2.0.0 initialized.
    Video: Disabled SSE processing.
    Video: Found ROM ‘SMASH BROTHERS’, CRC 5b8b6b91a4850b78-45
    Video: Initializing OpenGL Device Context.
    Video: Using OpenGL: Broadcom – VideoCore IV HW : OpenGL ES 2.0
    Audio: OMX Audio plugin Initialized. Output Frequency 33600 Hz
    Core: Starting R4300 emulator: Dynamic Recompiler
    Core: Init new dynarec
    Audio: OMX Audio plugin Initialized. Output Frequency 32006 Hz
    Audio Warning: Audio Buffer under run(0)

    …..

    Audio Warning: Audio Buffer under run(1790)
    ^C
    root@raspberrypi:/opt/retropie/emulators/mupen64plus-rpi/test# sudo raspi_config
    sudo: raspi_config: command not found
    root@raspberrypi:/opt/retropie/emulators/mupen64plus-rpi/test# sudo raspi-config
    update-rc.d: using dependency based boot sequencing
    update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match switch_cpu_governor Default-Start values (S)
    update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match switch_cpu_governor Default-Stop values (none)

    Broadcast message from root@raspberrypi (pts/0) (Fri Sep 26 21:19:50 2014):
    The system is going down for reboot NOW!
    root@raspberrypi:/opt/retropie/emulators/mupen64plus-rpi/test#

    #59364
    rromo12
    Guest

    I wanted a setup like superkoal’s so I decided to write up a tutorial on how to dualboot Raspbmc/Retropie and I thought people looking at this thread would be interested.

    This is my first time writing a tutorial and I’m a little bit of a linux noob so there are probably better ways of doing things so don’t judge but provide feedback:

    http://rromo12.wordpress.com/2014/09/10/raspberry-pi-raspbmcretropie-dualboot/

    #55553

    In reply to: UAE and BerryBoot

    spfunnell
    Participant

    I hadn’t realised that Noobs did dual boot. I thought it was just a simple install for beginners. I’ll take a look.

    Cheers
    Simon

    #53949
    Alex
    Guest

    With my settings above you can use the DPad and analog stick at the same time but the emulator recognizes both as DPad inputs..
    I just mapped the controls up, down, left and right on the dpad and the analog stick. The emulator reacts with the same input when i use the dpad or the analog stick.

    I haven’t figured out how to activate the real analog stick. I read somewhere else that you could activate it with some command but can’t find the source of that. There was written that if you activate the analog stick it will only work in games that require a dualshock 2 controller.

    #53645
    samuraipinguin
    Participant

    Can you post you complete config and the directory that the configuration is in? I changed it to yours in my specific PSX config file but still only the analog works with it and not the d-pad. Basically Im just trying to play Ape Escape and it says it does not detect a dual analog controller and will not let me play the game.

    #51267

    In reply to: BerryBoot

    max
    Guest

    ok I got it. after berry boot is booted, you can click some advance config button, then click the config.txt tab and enter your setting there (LIKE IN THIS THIS IMAGE HERE – but there cmdline.txt is shown). To my understanding whatever you enter there will apply to all your installed Operating Systems(?). Memory split can be changed for each OS individually though…

    #49279
    shrapnel09
    Guest

    Hey all, just got the pi a few weeks ago for the retropie project. I’m a bit of an enthusiast in trying trying to get my personal ‘retro experience’ project up and going.

    For controllers my end goal is do have this: . Most of the controllers will be originals I already own but I would have USB adapters, just not sure how well they would work with the Pi.

    I’m still new and not even sure how to map individual controller buttons to individual emulators, so I have a way to go yet, any assistance would be awesome! Thank you! :)

    paul
    Guest

    Hi, I went through this tutorial and it seems that the location of the config files has changed from $home/RetroPie/configs/ to /opt/retropie/emulators/RetroArch/configs. While the configs for the individual emulators is in /opt/retropie/configs/.

    Thanks for the tutorial!

    RippinAndTyrion
    Participant

    Does anybody know how to (or if you can) change volume settings for ES or RetroArch individually? The volume on ES is much louder than games running in RetroArch. It’s not that big of a problem, but when you exit a game and then select another game without lowering the volume, it is really loud.

    Thanks in advance.

    #44891
    borlandoflorida
    Participant

    I’m also having the same issue. I can access the emulator menu by pressing TAB, but when I try and assign a new button from the joystick it does not register any input, however I can use the joystick in all the other emulators without issue.

    I’m using the official Sony PS3 Dualshock pad via Bluetooth (again, works flawlessly in the other emulators).

    djlynk
    Participant

    I have checked the individual folders and configs listed here /opt/retropie/configs/ and everything is default with no controller configs per emulator.

    Do they need to mirror what is configured within retroarch.cfg within /opt/retropie/configs/all?

    woabash
    Participant

    So I’m using usb snes controllers. Both of them work and I can quit the game with “select + start” but the save/load states don’t work? Anyone help me out?

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

    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    savestate_directory = /home/pi/RetroPie/

    # 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_joypad_index = 0
    input_player1_b_btn =
    input_player1_a_btn =
    input_player1_y_btn =
    input_player1_x_btn =
    input_player1_l_btn =
    input_player1_r_btn =
    input_player1_start_btn =
    input_player1_select_btn =
    input_player1_l_y_plus =
    input_player1_up_axis =
    input_player1_l_y_minus =
    input_player1_down_axis =
    input_player1_l_x_minus =
    input_player1_left_axis =
    input_player1_l_x_plus =
    input_player1_right_axis =

    # 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_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    input_save_state_btn = “5”
    input_load_state_btn = “4”

    #43806
    isarai
    Participant

    OK, so i gave up on the 360 gamepad, figured the one that works easiest on PC would work on the pi but that didn’t work out, after going through a few more USB controllers i had laying around i found that the best and easiest one is the Dualshock 4 (PS4 controller) my guess is that the RetroPie/RetroArch has an issue managing analog inputs since my PS3 controller didn’t work and only the face buttons worked for the 360, and also that the PS4 switched to a purely digital input system from the PS3’s analog.

    All i had to do was boot it up while wired via USB, go through the RetroArch gamepad registration, and now everything works great (though be sure to just barely tap the triggers when registering with RetroArch, otherwise it’ll go a bit wonky and register it for more than one button really fast)

    So i’d say use your PS4 controller if you have one, otherwise fond a simple gamepad that has little to no analog systems in it (a standard PC gamepad should do fine) to keep from going through all the hassle.

    Still hope this issue gets solved though for the many others having the same issue

    #40570
    Jordan McNally
    Guest

    # 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

    how much of this do I copy to add a second controller? Can I add it to the end like the exit game code? How do you save/exit the retroarch file from putty through ssh?
    Any help would be awesome as I’m new to this(you can probably tell)

    Thanx So Much!

    purplemarek
    Participant

    I am trying to use a standard Dualshock to USB controller. Setup in emulation station works fine but when I try to use it in any emulator it is completely un responsive. The only thing that does work is my keyboard. After thinking that it defaulted to my keyboard because it was plugged in when i first setup everything i re-installed retropie with just my controller plugged in. I searched the website and the wiki and nothing was of any help. All i would get is directory not found and file not found type of errors. If anyone could help me it would be much appreciated.

    boblablah
    Participant

    I am using a wifi dongle and xarcade dual tankstick on my model b. At startup, the unit gets an address but I notice it’s slow to actually engage the IP stack. I am using a cifs share to host my games. The problem is that the network portion is unable to resolve the server (even though it’s in /etc/hosts) for a while.

    I exit ES and from there ping the server by name, and on the second attempt it will respond. I also added the cifs share to /etc/fstab in order to basically replace the /home/pi/RetroPie/roms/ location from local sd card to remote share.

    After I can ping the server – which is always up, and should resolve instantly based on /etc/hosts entry, i run sudo mount -a and then exit the shell, thereby restarting ES> Everything is great after that,

    I want to either build in a requirement that the network has to be up and “tested working” by some script, or delay the ES starting with the inclusion of a sleep statement or something like that. The problem is, I know enough to be dangerous but not enough to get this done without help.

    Can anyone help me to get this order of operations working and timed appropriately so as to no have to do this everytime i start the pi?

    I would like to know how/where ES is started from/called from so I can at least make attempts to create the necessary changes to delay the startup of ES for a small sleep interval or run a subsequent script to ensure all things are rosey.

    #30321
    erik
    Guest

    I seem to be having a lot of the same problems you were having. I finally found the location of the retroarch.cfg file. When I open it though, it looks nothing like any of the examples I’ve seen online. Here a sample, it’s a long file. Any ideas what I’m doing wrong???? My controller works fine, I just want to add the emulation exit.

    this is what my retroarch.cfg contains:

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

    lunarkingdom
    Participant

    Hi,

    I am using dual 3 watt amplifiers to power 4 speakers, to power the entire setup (5v Pi, 5v monitor and 5v dual 3 watt amplifiers) I am using a dc to dc step down converter, in a project previously using similar technology for sound I was told to use one of these on the power to the amps:

    vang1
    Participant

    hello.

    im making my own portable Retropie. so i hacked up a Trust Gamepad GXT28 Dualstick and solder external buttons for it. but have some problems and need help. i need to use the HAT buttons for mame. HOW?
    they work fine in emulationstation. i need to use HAT 0 UP, HAT 0 LEFT and HAT 0 Right for Coin 1player, start and UI cancel. they work fine in emulationstation when it detects a new joypad. but when im trying to press the buttons in mame input config they wont be detected at all. is there a way to manually type them in to make them work or something?

    hope someone can help me since i need to start making the case for the postable pie this weekend. and dont want to use another gamepad for the coin, start and ui cancel

Viewing 35 results - 736 through 770 (of 888 total)