[Solved] Issues with retroarch.cfg configuration for joypads – exit emulator

Welcome Page Forums RetroPie Project Everything else related to the RetroPie Project [Solved] Issues with retroarch.cfg configuration for joypads – exit emulator

This topic contains 18 replies, has 8 voices, and was last updated by Profile photo of laoracc laoracc 2 years, 6 months ago.

Viewing 19 posts - 1 through 19 (of 19 total)
  • Author
    Posts
  • #3162
    Profile photo of zoot
    zoot
    Participant

    I just resolved some very frustrating issues that I was having with my retroarch.cfg joystick config file. Default behavior was strange in some of the emulators, and I couldn’t quite get input_enable_hotkey_btn and input_exit_emulator_btn to work correctly. NeoGeo emulation using FBA did work for some crazy reason, but the other emulators did not. When I removed the input_enable_hotkey_btn line from the config, it would exit whenever I pressed button 0 instead of the button that I tried to configure to the cfg file. I ended up restarting from scratch, and seeing the difference between my old config files and the new config files to find out the difference.

    My first error was piping instead of appending when I used the retroarch-joyconfig program found in RetroPie/emulators/RetroArch/tools.

    What I typed was:
    ./retroarch-joyconfig | ~/RetroPie/configs/all/retroarch.cfg

    I should have typed:
    ./retroarch-joyconfig >> ~/RetroPie/configs/all/retroarch.cfg

    I then compounded my problem by manually copying and pasting the following lines into my config file (using vim over ssh, if I remember correctly):

    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = “9″

    I had not realized two things:
    My config doesn’t need the quotes.
    I had accidentally pasted two different types of quotes (“ and ″) into a config file, which likely caused the program to freak out and not read the configuration properly.

    After loading RetroPie 1.9.1 onto the card from scratch, I noticed the error of my ways, updated the configuration file correctly, and I am now able to exit emulators effectively and continue to play games.

    Learn from my lesson, RetroPie users! Beware the quotes!

    Quoted below is my working config file for a Logitech Dual Action USB controller:

    ## Skeleton config file for RetroArch
    
    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
    # This will be overridden by explicit command line options.
    # savefile_directory =
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    # savestate_directory =
    
    # 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.
    
    # If a directory, RetroArch will look through the directory until it finds an implementation
    # that appears to support the extension of the ROM loaded.
    # This could fail if ROM extensions overlap.
    # libretro_path = "/path/to/libretro.so"
    
    # 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 =
    
    # Path to ROM load history file.
    # RetroArch keeps track of all ROMs loaded in RGUI 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 ROM 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/emulatorcores/
    
    # Sets start directory for RGUI ROM browser.
    # rgui_browser_directory =
    
    # Sets start directory for RGUI config browser.
    # rgui_config_directory =
    
    # Show startup screen in RGUI.
    # 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 RGUI as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    # config_save_on_exit = 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 = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to game 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 XML/GLSL format if support is enabled.
    # video_shader = "/path/to/shader.{cg,cgp,shader}"
    
    # 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, XML) are kept for easy access.
    # video_shader_dir =
    
    # CPU-based filter. Path to a bSNES CPU filter (*.filter)
    # video_filter =
    
    # Path to a TTF 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 TTF font rendered.
    # video_font_size = 48
    
    # Attempt to scale the font to fit better for multiple window sizes.
    # video_font_scale = true
    
    # 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 games 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 driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    audio_driver = alsathread
    
    # 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 =
    
    # External DSP plugin that processes audio before it's sent to the driver.
    # 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 experimental 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
    
    #### 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 =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    # 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 =
    
    # 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 RGUI.
    # 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 normal keypresses and special keys like "left", "right", and so on.
    # 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_joypad_index = 0
    input_player1_b_btn = 1
    input_player1_y_btn = 0
    input_player1_select_btn = 8
    input_player1_start_btn = 9
    input_player1_up_axis = -5
    input_player1_down_axis = +5
    input_player1_left_axis = -4
    input_player1_right_axis = +4
    input_player1_a_btn = 2
    input_player1_x_btn = 3
    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 = -2
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    
    # 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 = 0
    # input_player1_b_btn = 1
    # input_player1_y_btn = 3
    # input_player1_x_btn = 2
    # input_player1_start_btn = 7
    # input_player1_select_btn = 6
    # input_player1_l_btn = 4
    # input_player1_r_btn = 5
    # 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 = -0
    # input_player1_right_axis = +0
    # input_player1_up_axis = -1
    # input_player1_down_axis = +1
    
    # 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 emulator cleanly. 
    # Killing it in any hard way (SIGTERM, SIGKILL, etc, will terminate emulator without saving RAM, etc.)
    input_exit_emulator = escape
    
    # Applies next and previous XML/Cg 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 game is paused
    # input_frame_advance = k
    
    # Reset the game.
    # input_reset = h
    
    # Configures DSP plugin
    # input_dsp_config = c
    
    # 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 games.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles RGUI 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 games
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = true
    
    # 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 =
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # 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 a ROM, 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, game will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which games will be run when using fast forward. (E.g. 5.0 for 60 fps game => 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 = 6
    # input_exit_emulator_btn = 7
    # input_rewind_btn = 3
    # input_save_state_btn = 4
    # input_load_state_btn = 5
    # input_player2_a_btn = 0
    # input_player2_b_btn = 1
    # input_player2_x_btn = 2
    # input_player2_y_btn = 3
    # input_player2_l_btn = 4
    # input_player2_r_btn = 5
    # input_player2_start_btn = 7
    # input_player2_select_btn = 6
    # input_player2_left_axis = -0
    # input_player2_right_axis = +0
    # input_player2_up_axis = -1
    # input_player2_down_axis = +1

    #3592
    Profile photo of prusr
    prusr
    Participant

    Zoot,
    Thanks for posting your config. I’ve been having trouble with my d-pad not working. There’s two types of direction configurations in your file. I’m not familiar with the controller you’re using, but does it have a d-pad in addition to two sets of analog joy stick direction thingies? I’m just wondering if that’s what the three types of direction statements in your config means, since I don’t have those. In its place I have something like

    “input_player1_down_btn = h0down”

    input_player1_up_axis = -5
    input_player1_down_axis = +5
    input_player1_left_axis = -4
    input_player1_right_axis = +4

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

    Looking at your config, you don’t have any “input_player1_down_btn” parameters. And comparing yours to mine, I don’t have any “up_axis” or “x_plus_axis” type parameters. Where did you get those parameters in the first place? When I run the controller configuration program, it autogenerationes the /all/retroarch.cfg, and only generates the “down_btn” or “up_btn” parameters, none of your “up_axis” and “x-plus_axis” type parameters.

    #3594
    Profile photo of
    Anonymous

    I’m in a similar boat as prusr. I copied your config Zoot, and everything was working fine in my other emulators, except my start button wasn’t working in MAME. So I ran the Input Configuration again, and then went into the config and added:

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    

    And now my dpad doesn’t work. I’m going to try removing them and see what happens when I get home from work.

    #3597
    Profile photo of zoot
    zoot
    Participant

    Indeed, my joystick has one dpad and two analog sticks. Here is a link to logitech’s info page for the controller:
    http://www.logitech.com/en-us/support/288

    @prusr, I performed this config prior to RetroPie being more joystick autoconfig-friendly. It’s possible that the config program has changed parameters slightly as far as what it outputs.

    @woodpecker, Those two lines should already be in the config, so I’d consider deleting them and adding something into the MAME config file if you’re only having issues there.

    #5737
    Profile photo of hxc4ever
    hxc4ever
    Participant

    Hi there,

    I’m trying for a week to exit retroarch emulator with my xbox 360 controller by adding

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    to my retroarch.cfg file but it’s not working when I hold select+start buttons.
    Below this is my retroarch.cfg :

    ## Skeleton config file for RetroArch
    
    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
    # This will be overridden by explicit command line options.
    # savefile_directory =
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    # savestate_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.
    
    # If a directory, RetroArch will look through the directory until it finds an implementation
    # that appears to support the extension of the ROM loaded.
    # This could fail if ROM extensions overlap.
    # libretro_path = "/path/to/libretro.so"
    
    # 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 =
    
    # Path to ROM load history file.
    # RetroArch keeps track of all ROMs loaded in RGUI 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 ROM 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 =
    
    # Sets start directory for RGUI ROM browser.
    # rgui_browser_directory =
    
    # Sets start directory for RGUI config browser.
    # rgui_config_directory =
    
    # Show startup screen in RGUI.
    # 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 RGUI as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    # config_save_on_exit = 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 = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    # video_smooth = true
    
    # Forces rendering area to stay equal to game 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 =
    
    # 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 XML/GLSL format if support is enabled.
    # video_shader = "/path/to/shader.{cg,cgp,shader}"
    
    # 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, XML) are kept for easy access.
    # video_shader_dir =
    
    # CPU-based filter. Path to a bSNES CPU filter (*.filter)
    # video_filter =
    
    # Path to a TTF 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 TTF font rendered.
    # video_font_size = 48
    
    # Attempt to scale the font to fit better for multiple window sizes.
    # video_font_scale = true
    
    # 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 games 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 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 =
    
    # External DSP plugin that processes audio before it's sent to the driver.
    # 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 experimental 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
    
    #### 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 =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    # 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 =
    
    # 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 RGUI.
    # 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 normal keypresses and special keys like "left", "right", and so on.
    # 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 = "1"
    input_player1_y_btn = "3"
    input_player1_select_btn = "6"
    input_player1_start_btn = "7"
    input_player1_up_axis = "-7"
    input_player1_down_axis = "+7"
    input_player1_left_axis = "-6"
    input_player1_right_axis = "+6"
    input_player1_a_btn = "0"
    input_player1_x_btn = "2"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l2_btn = "+2"
    input_player1_r2_btn = "+5"
    input_player1_l3_btn = "9"
    input_player1_r3_btn = "10"
    input_player1_l_x_plus_axis = "+0"
    input_player1_l_x_minus_axis = "-0"
    input_player1_l_y_plus_axis = "+1"
    input_player1_l_y_minus_axis = "-1"
    input_player1_r_x_plus_btn = "+3"
    input_player1_r_x_minus_btn = "-3"
    input_player1_r_y_plus_btn = "+4"
    input_player1_r_y_minus_btn = "-4"
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    
    # 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 emulator cleanly. 
    # Killing it in any hard way (SIGTERM, SIGKILL, etc, will terminate emulator without saving RAM, etc.)
    # input_exit_emulator = escape
    
    # Applies next and previous XML/Cg 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 game is paused
    # input_frame_advance = k
    
    # Reset the game.
    # input_reset = h
    
    # Configures DSP plugin
    # input_dsp_config = c
    
    # 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 = 6
    # input-exit_emulator = 7
    
    # 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 games.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles RGUI 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 games
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### 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 = 20
    
    # Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed.
    # rewind_granularity = 1
    
    # 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 =
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # 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 a ROM, 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, game will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which games will be run when using fast forward. (E.g. 5.0 for 60 fps game => 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
    

    Could you tell me if you see something wrong in it ? Do you have a solution to help me make this option working ?

    Thanks for any reply
    best regards

    hxc

    #6890
    Profile photo of misc1987
    misc1987
    Participant

    He Guys,

    Im having some trouble configuring my Trustmaster Dual Analog 4. When i’m in an emulator the d-pad keys als function as the A or B keys. Can you think of a reason why this can happen?

    (the left and down button of the d-pad)

    Best Regards,

    Mick

    #19650

    Antonio

    Hi folks,

    I just managed to set up my 360-Joypad with the setup-menu.

    The settings:
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    only worked when NO KEYBOARD was connected. I tried it in all variants, with quotes and without, but after restarting with just the controller connected it worked.

    #22615

    kzo

    hi i have an ipad 2 under ios 7.1.2 and i have recently installed retroarch in order to play FFVII. i have also installed controllers for all to pair my dualshock 4 to it and it’s responding very well. At least up until I try to actually play, the controller won’t work at all. i also tryed with another rom but same result. i’d like to know if there are specific options to setup in order to make this work.

    thanks

    #23135

    pseudosudo

    yeah you didn’t put “8” and “9” in quotes.

    #29394

    Borys

    for xbox360 controller
    input_enable_hotkey_btn = 6
    input_exit_emulator_btn = 7

    #53935
    Profile photo of strubdog
    Tim Struble

    Zoot, I used your retroarch.cfg and I am able to get the select + start buttton to exti out of emulator. My problem now is that the sound does not work, any ideas.

    #65683

    Mr.Fister

    Borys is right! button 6 and 7 are what worked for me 8 and 9 did not and this was with the keyboard still plugged in. I have an xbox 360 wired controller plugged into the system. Good work Borys I was trying many different things but your numbers worked perfectly with quotes around them. Set this in the retroarch.cfg and working like a champ. Now just to get another wired xbox controller to use because they are much easier to get working right out of the box.

    #69482

    RICKY

    hey guys.. can you help me… something wrong with my save state… when i’m load the state suikoden 2… and talk another people crash… auto exit whY?

    #69485

    RICKY

    btw… i use retroarch .. in ipad 4

    #77759

    prix sac celine trapeze

    Qu’est-ce que vous portez sur vos bras parle souvent long sur qui vous êtes et aspirez à être

    #81980
    Profile photo of zoot
    zoot
    Participant

    prix, are you a bot, or do really want to know what I aspire to be?

    #83245
    Profile photo of h0llow
    h0llow
    Participant

    YOU ARE A LIFE SAVER! I had to redo my retropie from scratch because I randomly got the same issue.. I accidently put the quotation marks back in and I thought I caught a bug. Removed it and now my emulators work flawlessly again 🙂

    those sneaky config files!!!! lol

    #83635
    Profile photo of jp24s
    jp24s
    Participant

    Hi,

    newbie here who’s put a good couple of hours over a couple of days trying to get this to work. I’m using usb snes controllers Almost everything is good except the following:

    1) Exit emulator through Start + Select doesn’t work HOWEVER
    whenever I press down + x, I exit the emulator

    2) Can’t save, but I figure these problems are linked

    3) Controller bugs out and starts scrolling through list of roms sometimes.

    Any help is appreciated, I may have to do a clean wipe but that’s ok. I love this thing, just really want to get it going properly.

    THANKS! =]

    #83652
    Profile photo of laoracc
    laoracc
    Participant

    jp24s,

    Are you sure you used the correct button values in the retroarch.cfg? You’re not just copy-pasting Zoot’s config, right? I have tried two different controller brands (both 2-axis SNES-type controllers), and they each had different button values for the same button (ie – ‘select’ was ‘8’ on one, and ’10’ on another). Make sure you go into

    /RetroPie-Setup/retropie_setup.sh

    and run the Retroarch config to find out what values correspond to what buttons.

Viewing 19 posts - 1 through 19 (of 19 total)

Forums are currently read only - please visit the new RetroPie forums at https://retropie.org.uk/forums/

Skip to toolbar