Viewing 22 posts - 1 through 22 (of 22 total)
  • Author
  • ragnaer
    Post count: 13

    Hi All,

    I’m new to RetroPie and have just build & setup my system (retropie 3.0).

    I’ve got a bunch of games working, but have hit a brick wall with trying to get hotkeys working so I can save my game state, and exit a game easily.

    I’ve built an arcade cabinet, so am using sanwa joysticks and buttons via an ipac-2 (therefore using keyboard controls).

    I’ve tried Floob’s suggestions and deleted all supplementary configs, but no luck. I’ve updated the Retroarch config file to what I think the hotkeys should be, but still no luck. (all the buttons/joysticks are working, but not the hotkeys).

    I used to be able to exit a game easily by holding start1 (num1) and pressing start2 (num2) buttons, but after I tried changing the hotkey setup script to “2” it changed to ALT, and now I have no idea how to change it back.

    Any help would be MOST appreciated~! Thanks in advance !

    Here is my /opt/retropie/configs/all/retroarch.cfg file:

    ## Skeleton config file for RetroArch

    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc …
    # This will be overridden by explicit command line options.
    savefile_directory = /home/pi/RetroPie/savestate

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

    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =

    # Save all input remapping files to this directory.
    # input_remapping_directory =

    # Save all playlist files to this directory.
    # playlist_directory =

    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =

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

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

    # A directory for where to search for libretro core information.
    # libretro_info_path =

    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0

    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (–verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0

    # Enable or disable verbosity level of frontend.
    # log_verbosity = false

    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true

    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false

    # Path to core options config file.
    # This config file is used to expose core-specific options.
    # It will be written to by RetroArch.
    # A default path will be assigned if not set.
    core_options_path = /opt/retropie/configs/all/retroarch-core-options.cfg

    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu and from CLI directly for convenient quick loading.
    # A default path will be assigned if not set.
    # game_history_path =

    # Number of entries that will be kept in content history file.
    # game_history_size = 100

    # Sets the “system” directory.
    # Implementations can query for this directory to load BIOSes, system-specific configs, etc.
    system_directory = /home/pi/RetroPie/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 = /opt/retropie/emulators/retroarch/assets

    # Sets start directory for menu config browser.
    # rgui_config_directory =

    # Show startup screen in menu.
    # Is automatically set to false when seen for the first time.
    # This is only updated in config if config_save_on_exit is set to true, however.
    # rgui_show_start_screen = true

    # Flushes config to disk on exit. Useful for menu as settings can be modified.
    # Overwrites the config. #include’s and comments are not preserved.
    config_save_on_exit = false

    # Load up a specific config file based on the core being used.
    # core_specific_config = false

    #### Video

    # Video driver to use. “gl”, “xvideo”, “sdl”
    # video_driver = “gl”

    # Which OpenGL context implementation to use.
    # Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl.
    # By default, tries to use first suitable driver.
    # video_context_driver =

    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 3.0

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

    # Start in fullscreen. Can be changed at runtime.
    # video_fullscreen = false

    # If fullscreen, prefer using a windowed fullscreen mode.
    # video_windowed_fullscreen = true

    # Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
    # suggests RetroArch to use that particular monitor.
    # video_monitor_index = 0

    # Forcibly disable composition. Only works in Windows Vista/7 for now.
    # video_disable_composition = false

    # Video vsync.
    # video_vsync = true

    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false

    # Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance.
    # video_hard_sync = false

    # Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
    # Maximum is 3.
    # video_hard_sync_frames = 0

    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 0

    # Inserts a black frame inbetween frames.
    # Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
    # video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
    # video_black_frame_insertion = false

    # Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
    video_threaded = true

    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false

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

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

    # Only scales video in integer steps.
    # The base size depends on system-reported geometry and aspect ratio.
    # If video_force_aspect is not set, X/Y will be integer scaled independently.
    # video_scale_integer = false

    # A floating point value for video aspect ratio (width / height).
    # If this is not set, aspect ratio is assumed to be automatic.
    # Behavior then is defined by video_aspect_ratio_auto.
    # video_aspect_ratio =

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

    # Forces cropping of overscanned frames.
    # Exact behavior of this option is implementation specific.
    # video_crop_overscan = true

    # Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset)
    # video_shader = “/path/to/shader.{cg,cgp,glsl,glslp}”

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

    # Defines a directory where shaders (Cg, CGP, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/

    # CPU-based video filter. Path to a dynamic library.
    # video_filter =

    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =

    # Path to a font used for rendering messages. This path must be defined to enable fonts.
    # Do note that the _full_ path of the font is necessary!
    # video_font_path =

    # Size of the font rendered.
    video_font_size = 12

    # 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

    # Mutes audio.
    # audio_mute_enable = false

    # Audio output samplerate.
    # audio_out_rate = 48000

    # Audio resampler backend. Which audio resampler to use.
    # Default will use “sinc”.
    # audio_resampler =

    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =

    # Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on …
    # audio_device =

    # Audio DSP plugin that processes audio before it’s sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =

    # Directory where DSP plugins are kept.
    # audio_filter_dir =

    # Will sync (block) on audio. Recommended.
    # audio_sync = true

    # Desired audio latency in milliseconds. Might not be honored if driver can’t provide given latency.
    # audio_latency = 64

    # Enable audio rate control.
    # audio_rate_control = true

    # Controls audio rate control delta. Defines how much input rate can be adjusted dynamically.
    # Input rate = in_rate * (1.0 +/- audio_rate_control_delta)
    # audio_rate_control_delta = 0.005

    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05

    # Audio volume. Volume is expressed in dB.
    # 0 dB is normal volume. No gain will be applied.
    # Gain can be controlled in runtime with input_volume_up/input_volume_down.
    # audio_volume = 0.0

    #### Overlay

    # Defines a directory where overlays are kept for easy access.
    overlay_directory = /opt/retropie/emulators/retroarch/overlays

    # Enable or disable the current overlay.
    # input_overlay_enable = true

    # Path to input overlay
    # input_overlay =

    # Overlay opacity
    # input_overlay_opacity = 1.0

    # Overlay scale
    # input_overlay_scale = 1.0

    #### OSK (Onscreen Keyboard) Overlay

    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =

    # Enable OSK overlay.
    # input_osk_overlay_enable = true

    # Path to OSK overlay
    # input_osk_overlay =

    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0

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

    # Path to input remapping file.
    # input_remapping_path =

    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true

    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16

    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. “no”), or a layout and variant separated with colon (“no:nodeadkeys”).
    # input_keyboard_layout =

    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5

    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true

    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true

    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false

    # Directory for joypad autoconfigs.
    # If a joypad is plugged in, that joypad will be autoconfigured if a config file
    # corresponding to that joypad is present in joypad_autoconfig_dir.
    # Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs.
    # Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend.
    # Requires input_autodetect_enable to be enabled.
    joypad_autoconfig_dir = /opt/retropie/emulators/retroarch/configs/

    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # Device IDs are found in libretro.h.
    # These settings are overridden by explicit command-line arguments which refer to input devices.
    # None: 0
    # Joypad (RetroPad): 1
    # Mouse: 2
    # Keyboard: 3
    # Generic Lightgun: 4
    # Joypad w/ Analog (RetroPad + Analog sticks): 5
    # Multitap (SNES specific): 257
    # Super Scope (SNES specific): 260
    # Justifier (SNES specific): 516
    # Justifiers (SNES specific): 772

    # input_libretro_device_p1 =
    # input_libretro_device_p2 =
    # input_libretro_device_p3 =
    # input_libretro_device_p4 =
    # input_libretro_device_p5 =
    # input_libretro_device_p6 =
    # input_libretro_device_p7 =
    # input_libretro_device_p8 =

    # Keyboard input. Will recognize letters (“a” to “z”) and the following special keys (where “kp_”
    # is for keypad keys):
    # left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    # rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    # f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    # num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    # keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    # period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    # tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    # backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    # Keyboard input, Joypad and Joyaxis will all obey the “nul” bind, which disables the bind completely,
    # rather than relying on a default.
    input_player1_a = ctrl
    input_player1_b = alt
    input_player1_y = shift
    input_player1_x = space
    input_player1_start = num1
    input_player1_select = num5
    input_player1_l = z
    input_player1_r = x
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    input_player1_coin1 = 5
    input_player2_a = a
    input_player2_b = s
    input_player2_y = q
    input_player2_x = w
    input_player2_start = num2
    input_player2_select = num6
    input_player2_l = i
    input_player2_r = k
    input_player2_left = d
    input_player2_right = g
    input_player2_up = r
    input_player2_down = f
    input_player2_coin2 = 6
    input_enable_hotkey_btn = num1
    input_exit_emulator_btn = num2
    input_save_state_btn = 5
    input_load_state_btn = 6
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =

    # Two analog sticks (DualShock-esque).
    # Bound as usual, however, if a real analog axis is bound,
    # it can be read as a true analog.
    # Positive X axis is right, Positive Y axis is down.
    # input_player1_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =

    # If desired, it is possible to override which joypads are being used for user 1 through 8.
    # First joypad available is 0.
    # input_player1_joypad_index = 0
    # input_player2_joypad_index = 1
    # input_player3_joypad_index = 2
    # input_player4_joypad_index = 3
    # input_player5_joypad_index = 4
    # input_player6_joypad_index = 5
    # input_player7_joypad_index = 6
    # input_player8_joypad_index = 7

    # Joypad buttons.
    # Figure these out by using RetroArch-Phoenix or retroarch-joyconfig.
    # You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction.
    # E.g. “h0up”
    # input_player1_a_btn =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # input_player1_left_btn =
    # input_player1_right_btn =
    # input_player1_up_btn =
    # input_player1_down_btn =
    # input_player1_l2_btn =
    # input_player1_r2_btn =
    # input_player1_l3_btn =
    # input_player1_r3_btn =

    # Axis for RetroArch D-Pad.
    # Needs to be either ‘+’ or ‘-‘ in the first character signaling either positive or negative direction of the axis, then the axis number.
    # Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity.
    # input_player1_left_axis =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =

    # Holding the turbo while pressing another button will let the button enter a turbo mode
    # where the button state is modulated with a periodic signal.
    # The modulation stops when the button itself (not turbo button) is released.
    # input_player1_turbo =

    # Describes the period and how long of that period a turbo-enabled button should behave.
    # Numbers are described in frames.
    # input_turbo_period = 6
    # input_turbo_duty_cycle = 3

    # This goes all the way to user 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.
    # All input binds have corresponding binds for keyboard (none), joykeys (_btn) and joyaxes (_axis) as well.

    # Toggles fullscreen.
    # input_toggle_fullscreen = f

    # Saves state.
    input_save_state_btn = 5
    # Loads state.
    input_load_state_btn = 6

    # State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline).
    # When slot is != 0, path will be $path%d, where %d is slot number.
    # input_state_slot_increase = f7
    # input_state_slot_decrease = f6

    # Toggles between fast-forwarding and normal speed.
    # input_toggle_fast_forward = space

    # Hold for fast-forward. Releasing button disables fast-forward.
    # input_hold_fast_forward = l

    # Key to exit RetroArch cleanly.
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape

    # Applies next and previous shader in directory.
    input_shader_next = m
    input_shader_prev = n

    # Hold button down to rewind. Rewinding must be enabled.
    input_rewind = r

    # Toggle between recording and not.
    # input_movie_record_toggle = o

    # Toggle between paused and non-paused state
    # input_pause_toggle = p

    # Frame advance when content is paused
    # input_frame_advance = k

    # Reset the content.
    # input_reset = h

    # Cheats.
    # input_cheat_index_plus = y
    # input_cheat_index_minus = t
    # input_cheat_toggle = u

    # Mute/unmute audio
    # input_audio_mute = f9

    # Take screenshot
    # input_screenshot = f8

    # Netplay flip users.
    # input_netplay_flip_players = i

    # Hold for slowmotion.
    # input_slowmotion = e

    # Enable other hotkeys.
    # If this hotkey is bound to either keyboard, joybutton or joyaxis,
    # all other hotkeys will be disabled unless this hotkey is also held at the same time.
    # This is useful for RETRO_KEYBOARD centric implementations
    # which query a large area of the keyboard, where it is not desirable
    # that hotkeys get in the way.

    # Alternatively, all hotkeys for keyboard could be disabled by the user.
    input_enable_hotkey_btn = num1

    # Increases audio volume.
    # input_volume_up = kp_plus
    # Decreases audio volume.
    # input_volume_down = kp_minus

    # Toggles to next overlay. Wraps around.
    # input_overlay_next =

    # Toggles eject for disks. Used for multiple-disk content.
    # input_disk_eject_toggle =

    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =

    # Toggles menu.
    input_menu_toggle = F1

    # Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse,
    # and keeps the mouse pointer inside the window to allow relative mouse input
    # to work better.
    # input_grab_mouse_toggle = f11

    #### Menu

    # Menu driver to use. “rgui”, “lakka”, etc.
    # menu_driver = “rgui”

    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false

    # Enable mouse input inside the menu.
    # menu_mouse_enable = false

    # Enable touch input inside the menu.
    # menu_pointer_enable = false

    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true

    # Shows current core inside menu.
    # menu_core_enable = true

    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =

    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false

    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false

    # Filter files being show in ‘Load Content’ by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true

    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false

    #### UI

    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable = true

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

    #### Core Updater

    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = “;

    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = “;

    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true

    #### Network

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

    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname =

    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0

    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false

    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false

    # The IP Address of the host to connect to.
    # netplay_ip_address =

    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435

    #### Misc

    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false

    # Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer.
    # The buffer should be approx. 20MB per minute of buffer time.
    rewind_buffer_size = 10

    # Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed.
    rewind_granularity = 2

    # Pause gameplay when window focus is lost.
    # pause_nonactive = true

    # Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise.
    # The interval is measured in seconds. A value of 0 disables autosave.
    autosave_interval = 5

    # Path to content database directory.
    # content_database_path =

    # Path to cheat database directory.
    # cheat_database_path =

    # Path to XML cheat config, a file which keeps track of which
    # cheat settings are used for individual games.
    # If the file does not exist, it will be created.
    # cheat_settings_path =

    # Directory to dump screenshots to.
    # screenshot_directory =

    # Records video after CPU video filter.
    # video_post_filter_record = false

    # Records output of GPU shaded material if available.
    # video_gpu_record = false

    # Screenshots output of GPU shaded material if available.
    video_gpu_screenshot = true

    # Block SRAM from being overwritten when loading save states.
    # Might potentially lead to buggy games.
    # block_sram_overwrite = false

    # When saving a savestate, save state index is automatically increased before
    # it is saved.
    # Also, when loading content, the index will be set to the highest existing index.
    # There is no upper bound on the index.
    # savestate_auto_index = false

    # Slowmotion ratio. When slowmotion, content will slow down by factor.
    # slowmotion_ratio = 3.0

    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 300 fps cap).
    # RetroArch will go to sleep to ensure that the maximum rate will not be exceeded.
    # Do not rely on this cap to be perfectly accurate.
    # fastforward_ratio = 1.0

    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false

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

    Post count: 1629

    You’ve made quite a few changes to the stock retroarch.cfg there, I’d be tempted to revert to stock and get one part working at a time.

    But as a quick fix, try:

    Comment out this line

    # Alternatively, all hotkeys for keyboard could be disabled by the user.
    input_enable_hotkey_btn = num1

    so it reads

    # Alternatively, all hotkeys for keyboard could be disabled by the user.
    # input_enable_hotkey_btn = num1

    and change

    input_enable_hotkey_btn = num1
    input_exit_emulator_btn = num2
    input_save_state_btn = 5
    input_load_state_btn = 6


    input_enable_hotkey = num1
    input_exit_emulator = num2
    input_save_state = 5
    input_load_state = 6

    assuming that num1 and num2 are the keyboard keys that your ipac sends.

    Post count: 13

    Hi Floob, thanks so much for the help! I will try it as soon as I get home.

    I assume I should change the save state under the below section as well (not just under the Keyboard inputs) ?

    # Saves state.
    input_save_state_btn = 5
    # Loads state.
    input_load_state_btn = 6

    Also, taking the ‘btn’ out of the lines, does this impact at all my other keyboard inputs?

    eg. under keyboard inputs I currently have:
    input_player2_start = num2
    If I change:
    input_exit_emulator_btn = num2
    input_exit_emulator = num2
    as you have suggested, will my Player 2 start button still work as a player 2 start button? (I assumed having the ‘btn’ in the line made it so exit only worked when the hotkey button was held down, or am I on the wrong track here?)

    Hope my question makes sense, I’m new to all of this so it’s a big learning curve!

    Thanks so much for your help! :-)

    Post count: 13

    Hi again Floob,

    I’ve tried your suggestion and no luck I’m afraid :-(

    I have a suspicion that the config file does not get recognized as for hotkeys, but some other file is overwriting it or something.

    As you can see in the pic I have attached, my screen is different than yours was in your guide. Also, when I changed the hotkey setting under setup to ‘ALT’, it did not change anything in my config file.

    Any ideas?

    Thanks :-)

    Post count: 56

    I had the same problem.
    I don’t know anymore exactly but if I setup the hotkey for keyboard AND for gamepad in the retroarch.cfg, it works for me:
    input_enable_hotkey = alt
    input_enable_hotkey_btn = 2

    I also can push the hotkeybutton on gamepad and e.g. the key for save on the keyboard.

    Post count: 1629

    Yes the _btn refers to mapping a button on the joypad – without the btn its the keyboard equivalent.

    Maybe you could try a clean retroarch.cfg file and specify a hotkey for the keyboard then, pretty much as patl has mentioned above.

    Post count: 13

    Tried and no luck I’m afraid :-(

    Could another file be overwriting it?

    I see there is also a ‘retroarch.cfg.rp-dist’ under /opt/retropie/configs which looks the same as the retroarch.cfg file but clean?

    Also, any thoughts on where the changes in my setup (attachment) got written to? (as it didn’t show what it changed, and when I changed it to option 2 – ALT, it didn’t change anything in my retroarch.cfg file.

    Appreciate the help ! :-)

    Post count: 1629

    Hi ragnaer. To be honest given the amount of changes in your system I’d be tempted to set your retroarch.cfg back to the default and start from there.

    This one should be clean – or rewrite the image if thats feasible:

    Then edit the keyboard section to get your ipac working then we can get hotkeys working one step at a time.

    Which should largely be setting this value to be a keyboard key that is sent from the ipac:
    input_enable_hotkey = alt

    Post count: 13

    Hi Floob, thanks for the help again !! :-)

    Ok so i’ve done as you have suggested, and have made some progress – the exit game hotkey seems to work now, although for some reason it is only working when I hold num2 down and press num1 (not the other way around). ANyway this is fine – as long as it works ! :-)

    The next step is saves – can you suggest what to change to get this working?

    I used your base file and changed the keyboard section to:
    # 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 = ctrl
    input_player1_b = alt
    input_player1_y = shift
    input_player1_x = space
    input_player1_start = num1
    input_player1_select = num5
    input_player1_l = z
    input_player1_r = x
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    input_player1_coin1 = 5
    input_player2_a = a
    input_player2_b = s
    input_player2_y = q
    input_player2_x = w
    input_player2_start = num2
    input_player2_select = num6
    input_player2_l = i
    input_player2_r = k
    input_player2_left = d
    input_player2_right = g
    input_player2_up = r
    input_player2_down = f
    input_player2_coin2 = 6
    input_exit_emulator = num2
    input_exit_emulator_btn = num2
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =

    In addition, the last line in the file is:
    input_enable_hotkey = num1

    Thanks for your help !

    Post count: 13

    Hi again! Ok so i’ve made some progress, but still really confused.

    I’ve uncommented this section and change to true:

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

    So now, once I leave a game and then re-enter it comes back at the same spot. yay!

    Ok but here’s the issue –
    I can’t get manual save/load states working.

    I’ve tried uncommenting this section (and commenting the last one):
    # Saves state.
    input_save_state = 5
    # Loads state.
    input_load_state = 6

    But no luck.

    Also i’ve tried adding the following lines to the keyboard section. Also tried adding them to the bottom of the config file, but both have no luck.

    input_save_state = 5
    input_save_state_btn = 5
    input_load_state = 6
    input_load_state_btn = 6

    Sooooo… any ideas? :-)

    Post count: 1629

    Ok, so based on your 08:52 post.
    (I’m presuming there is no joypad plugged in, and just the iPac)

    Are you able to verify the button you press for Num1 is definitely sending that signal and not Num2?

    What happens if you remove this line:
    input_exit_emulator_btn = num2

    For saves, you are on the right lines.
    Dont use the _btn variants. And hold your hotkey as you press the save function.

    Post count: 13

    Hi Floob,

    Yes no joypad, just ipac.

    num1 is my Start player 1 button as per this line:
    input_player1_start = num1

    it definately works like this as it functions as start. Eg. when I play Alien 3 on Mame that button starts player 1, and when I press num2, player 2 joins the game as well.

    I tried removing this line:
    input_exit_emulator_btn = num2
    And doesn’t look like there is any change.

    I tested Addams family on Snes and holding num2 then pressing num1 was the only way to get out of the game. The strange thing is, when I tested Alien 3, the only way to exit the game was hold num1, and press num2. Also, when I re-entered Alien 3 there was no save state and I had to start from the beginning. Whereas when I re-started Addams family, it auto-started where I was up to before as the save state.

    Why is there such a difference?

    Also, tried adding just this to the bottom of the config file, and still save state manually is not working:
    input_save_state = 5
    input_load_state = 6

    Really at a loss here…

    Thanks for the help ! :-)

    Post count: 1629

    Lets come back to the restoration of save states when starting (its to do with the difference between srm and .state file usually – check out my 2 videos on youtube about saving games)

    Going back to your save games hotkeys:

    Are you saying when you have this (dont add extra lines, just use these)

    # Saves state.
    input_save_state = 5
    # Loads state.
    input_load_state = 6

    AND you hold your hotkey enbale key (so hold Start and press whatever 5 is, it doesnt work? Yellow text should appear at the bottom of the screen if it does work.
    If it doesnt, try putting the 5 in quotes “5”

    Post count: 1629

    I’m also assuming your SNES specific retroarch.cfg is untouched.

    Post count: 13

    Hi Floob,

    Yes the SNES config is untouched.

    I’ve tried changing it to “5” “6” in quotes and still no luck. I’ve also tried changing it to other keys (ctrl, alt, etc) and no luck.

    I hold down num1 and press those keys and nothing. also with num2 nothing.

    I know the yellow text you are talking about – I see it when I load my game (as I said, that part is working now as it’s auto loading upon start of game).

    On a whim, I also tried changing the code to this to see if it would change anything:
    # Saves state.
    input_player1_save_state = 5
    # Loads state.
    input_player1_load_state = 6

    But nothing happened :-(

    I think the problem must still lie with the hotkey. For whatever reason, it is not registering that num1 is the hotkey. Is the hotkey saved somewhere else? I’m going to try going back into the setup and choosing option 2 – change hotkey to alt. As per my keyboard alt is my 2nd player 1 button (input_player1_b = alt). So maybe if I change that back to alt, and try holding the 2nd button and then 5, it may work.

    Will let you know how I go, but I’m not holding my breath :-)

    Post count: 13

    Ok, interesting results.

    I chose option 2 in the setup to change the hotkey to ALT.

    First thing I noticed is that in the cfg file the last line has now changed to:
    input_enable_hotkey = ALT

    Tried Addams Family sns again, and now holding num2 and pressing num1 does not exit the game BUT holding alt (my 2nd player 1 button) and then pressing num2 exits the game. No other changes though.

    So the hotkey button is definately working. num2 is working as the exit. However still no luck with saving or loading save states.

    Any ideas?

    Post count: 13

    Maybe it’s not working because my 5 / 6 buttons are already mapped in the keyboard?

    input_player1_coin1 = 5
    input_player2_coin2 = 6

    Does having this as well cause a conflict?
    input_save_state = 5
    input_load_state = 6

    Just wondering how this code (input_save_state) knows to only work when the hotkey button is held down?

    Post count: 1629

    Have you double checked your ipac has the latest firmware – that has caused issues before.

    If you unmap a save game button totally and only have it for the purpose of saving (to test) does it work?

    Post count: 13

    Tried unmapping so that the key is only for the save state, but no luck.

    Will try upgrading the ipac firmare.


    Post count: 13

    Well, looks like it’s not a firmware issue…

    Any other ideas? :-)

    Post count: 1629

    Do you have a spare SD card to try a clean RetroPie 3 beta 2 image?
    Then you could make sure it is wholly standard and it’ll be easier to debug one step at a time?
    i.e. first step is to literally change
    input_enable_hotkey =
    to be a key your ipac sends (As well as add in your main ipac settings to the keyboard section

    then we can see exactly whats going on.

    Or just try remapping your ipac to not use any of

    keys, as I’ve seen this could cause some issues before.

    Post count: 13

    Hi Floob,

    I will have to buy another SD card to check this option out.

    Will do so and let you know if I have any issues.

    Thanks for your help !

Viewing 22 posts - 1 through 22 (of 22 total)
  • The forum ‘Controller Configuration in RetroPie’ is closed to new topics and replies.