-
Search Results
-
Hi everyone,
I just installed my RetroPie and decided that I really want to use some Lightguns for MAME. I’ve been searching the internet for a few days and haven’t really found anyone yet who has used any lightguns with their Raspberry pi so I thought I’d check with you guys here. Has anyone here got any lightguns to work on RetroPie?
I’m looking to buy these: http://www.arcadeguns.com/index.php?main_page=product_info&cPath=1&products_id=1&zenid=i9is7jfthfg9r5nud9glia5u65
I contacted the support on the site above and asked them if the guns would work on a raspberry pi, unfortunately they couldn’t give me a straight answer since they haven’t tried on a Pi, but if it runs Linux and got USB 2.0 they SHOULD work, according to the retailers. Does anyone know a reason for these NOT to work, or potential problems when using them on a raspberry? Does the MAME in RetroPie support lightguns?
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 = downinput_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.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.
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 = falseinput_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.
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 = falseinput_enable_hotkey_btn = “8”
input_exit_emulator_btn = “9”input_save_state_btn = “5”
input_load_state_btn = “4”Introducing the NesBerryPi-Portable,
[img]http://oi57.tinypic.com/jgtdw3.jpg[/img]yup thats right PORTABLE…
it all started last sunday (3/23/14) i woke up and tore apart (carefully) this lcd monitor
[url]http://www.amazon.com/Lilliput-monitor-interface-dedicated-high-definition/dp/B0041I8UAO[/url]
and started poking around the circuit board in search of 5 volts.
shortly after i found it and cut the plug to my powered usb hub, soldered it onto the monitors circuit at the 5v spot i found, plugged it in and crossed my fingers. when i turned on the monitor the red led on the usb hub came on and no smoke followed. then came the moment of truth, grab the raspberry pi, minu usb, hdmi, wireless keyboard/mouse and plug it all up.
it worked like a champ. so now i have a battery powered monitor and raspberry pi, what can i do with it??? i look over and see a spare nes controller laying out from playing the night before and remember the broken nes stuffed in a closet on top of two broken ps3s and next top 5 rrod 360s (no joke) so i began gutting the nes until the shell remained i kept the power/reset switches and the controller ports.(damn this escalated quickly hahaha)
i knew the screen had to be fitted into the top half of the nes so i searched the house for some tools.
i found a power drill and a hand saw (the little thin blade kind) a few hours later i had a not to shatty job well done. i soldered two external usb female ports to two of the powered usb ports.
i then cut a small square of plexiglass to the size of the lcd panel and fired up the hot glue gun. i drilled a few holes soldered some wires and then it was time to sleep.ill finish this post with more pics/videos/info tomorrow after work because its time to sleep again…
To Be Continued…OK, so I am new to pi and retropie, but not so new to Linux. Here is my issue…
I have a Rasp Pi Model B 128GB RAM, with a 32GB SD card. I torrented the 1.9.1 SD image and have flashed is successfully. I was able to boot it and copy ROMs to it, and can play a game with my keyboard. However, I want gamepads…
I have 2 x Logitech F310s that I am connecting through a powered USB hub (keyboard directly into the other USB port, and using ethernet cable for internet), but for the life of me, I can only get one partially working.
I compiled xboxdrv 0.8.5 from source as described here and tried running xboxdrv with Daemon mode or with the instructions in the xbox360 guide on Github (using rc.local).
I get js0, but not js1, and even js0 does not work at all once the snes emulator is loaded (but will control the emulationstation interface).
I have been working for 3 days trying to get this working, and I swear I have looked everywhere I can think to find the smoking gun, but I am at my wit’s end…
Thanks in advance for your help, and please let me know if there is anything you need from me to troubleshoot…
Topic: PrBoom & Doom
I seem to be having weird problem with doom via PrBoom. When I load up the game and start a chapter, my gun sprite is missing and there is a sprite of a marine running on the left of the screen. Really bugging me what is causing this.
Topic: Save States
Hello! I look forward to fix this problem soon.
I have a problem to save games in the MAME-Emulator. All the time i hit “f2” on my keyboard the message “Core does not support savestates.” appears. I tryed to look up the RetroArch.cfg and changed the path and tryed some modifications to the autosave feature aso. nothing… To me, it seems changes in this file doesn’t have an effect. I tryed to set the screenroation to 90°. Still no effect.I hope someone knows about this problem and can help me2 with this.
Here is what i have done with my config :/
## 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/emulators/RetroArch/savestate”# Save all save states (*.state) to this directory.
# This will be overridden by explicit command line options.
# savestate_directory = “/home/pi/RetroPie/emulators/RetroArch/savestate”# 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 = true
# 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 = “home/pi/RetroPie/emulatorcores/imame4all-liberto/”# 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/RetroPi/emulators/RetroArch/# 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 = true# 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 = 00#### 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_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 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 = 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 = falseHey everyone, this will be my first post on the forums! :)
I have the raspberry pie rev B, which i’ve installed retropie on, using the prepared image version.
i had no trouble setting up the controls using my old, wired USB controller (with both a d-pad and analog sticks). But i wanted some greater distance to the system, since my couch is on the other side. So i bought a Trust GXT 30, wireless controller (USB).
Using the initial configuration in emulationstation and setting up the controller for the menus worked great. Then i set it up for retro-arch, and i wanted to use the d-pad instead of the analog sticks, since i’m only playing SNES games. However, doing this resulted in that the d-pad wouldn’t work in the games (only in emulationstation). All other keybindings worked as they should.
After a few tries without any success, i tried to map the analog stick instead of the d-pad. Which actually worked just fine! Except the great loss in precision for gaming. So i would really want the d-pad to work.
When i try to map the d-pad, i can se in the retroarch.cfg that they are represented as “hats” (up = h0up, down = h0down, and so on), which differes from my old, wired controller.
I hace tried looking around, but haven’t found any real help on the subject. Does anyone have any idea of what’s wrong?
Best regards,
gunnar90I 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