Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
RetroArch keyboard mapping template
## RetroArch keybind config template
## Can be copypasted into an existing config, appended with --apppendconfig, used as a core or game override, or used with the include directive in an existing config
# 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.
############# Player 1 ###############
# Face Buttons
input_player1_a = x
input_player1_b = z
input_player1_x = s
input_player1_y = a
# D-Pad
input_player1_down = down
input_player1_left = left
input_player1_right = right
input_player1_up = up
# Shoulder Buttons
input_player1_l = q
input_player1_r = w
input_player1_l2 = nul
input_player1_r2 = nul
# Start and Select
input_player1_select = rshift
input_player1_start = enter
# Left Analog
input_player1_l_x_minus = nul
input_player1_l_x_plus = nul
input_player1_l_y_minus = nul
input_player1_l_y_plus = nul
# Right Analog
input_player1_r_x_minus = nul
input_player1_r_x_plus = nul
input_player1_r_y_minus = nul
input_player1_r_y_plus = nul
# Analog Buttons
input_player1_l3 = nul
input_player1_r3 = nul
# Turbo Enable
input_player1_turbo = nul
############# Player 2 ###############
# Face Buttons
input_player2_a = nul
input_player2_b = nul
input_player2_x = nul
input_player2_y = nul
# D-Pad
input_player2_down = nul
input_player2_left = nul
input_player2_right = nul
input_player2_up = nul
# Shoulder Buttons
input_player2_l = nul
input_player2_r = nul
input_player2_l2 = nul
input_player2_r2 = nul
# Start and Select
input_player2_select = nul
input_player2_start = nul
# Left Analog
input_player2_l_x_minus = nul
input_player2_l_x_plus = nul
input_player2_l_y_minus = nul
input_player2_l_y_plus = nul
# Right Analog
input_player2_r_x_minus = nul
input_player2_r_x_plus = nul
input_player2_r_y_minus = nul
input_player2_r_y_plus = nul
# Analog Buttons
input_player2_l3 = nul
input_player2_r3 = nul
# Turbo Enable
input_player2_turbo = nul
############# Player 3 ###############
# Face Buttons
input_player3_a = nul
input_player3_b = nul
input_player3_x = nul
input_player3_y = nul
# D-Pad
input_player3_down = nul
input_player3_left = nul
input_player3_right = nul
input_player3_up = nul
# Shoulder Buttons
input_player3_l = nul
input_player3_r = nul
input_player3_l2 = nul
input_player3_r2 = nul
# Start and Select
input_player3_select = nul
input_player3_start = nul
# Left Analog
input_player3_l_x_minus = nul
input_player3_l_x_plus = nul
input_player3_l_y_minus = nul
input_player3_l_y_plus = nul
# Right Analog
input_player3_r_x_minus = nul
input_player3_r_x_plus = nul
input_player3_r_y_minus = nul
input_player3_r_y_plus = nul
# Analog Buttons
input_player3_l3 = nul
input_player3_r3 = nul
# Turbo Enable
input_player3_turbo = nul
############# Player 4 ###############
# Face Buttons
input_player4_a = nul
input_player4_b = nul
input_player4_x = nul
input_player4_y = nul
# D-Pad
input_player4_down = nul
input_player4_left = nul
input_player4_right = nul
input_player4_up = nul
# Shoulder Buttons
input_player4_l = nul
input_player4_r = nul
input_player4_l2 = nul
input_player4_r2 = nul
# Start and Select
input_player4_select = nul
input_player4_start = nul
# Left Analog
input_player4_l_x_minus = nul
input_player4_l_x_plus = nul
input_player4_l_y_minus = nul
input_player4_l_y_plus = nul
# Right Analog
input_player4_r_x_minus = nul
input_player4_r_x_plus = nul
input_player4_r_y_minus = nul
input_player4_r_y_plus = nul
# Analog Buttons
input_player4_l3 = nul
input_player4_r3 = nul
# Turbo Enable
input_player4_turbo = nul
############# Hotkeys ################
# Toggle Menu
input_menu_toggle = f1
# Quit RetroArch
input_exit_emulator = escape
# Toggle Fullscreen
input_toggle_fullscreen = f
# Soft Reset
input_reset = h
# Screenshot key
input_screenshot = f8
# Mouse Grab Toggle
input_grab_mouse_toggle = f11
# Hotkey Enable
# If this key is set, then all other hotkeys are disabled until this key is pressed
input_enable_hotkey = nul
# Game Focus Toggle
# When toggled on, all RetroPad keybinds and hotkeys are ignored by the frontend, only using the core's RetroKeyboard binds.
# Does not affect joypad button binds.
input_game_focus_toggle = scroll_lock
# Fast Forward, Slow Motion, Rewind, Pause, and Frame Advance
input_toggle_fast_forward = space
input_hold_fast_forward = l
input_slowmotion = e
input_rewind = r
input_pause_toggle = p
input_frame_advance = k
# Save State controls
input_load_state = f4
input_save_state = f2
input_state_slot_decrease = f6
input_state_slot_increase = f7
# Movie Record Toggle
input_movie_record_toggle = o
# Next/Previous Shader
input_shader_next = m
input_shader_prev = n
# Cheat controls
input_cheat_toggle = u
input_cheat_index_minus = t
input_cheat_index_plus = y
# OSK and Overlay
input_osk_toggle = f12
input_overlay_next = nul
# Neplay Flip Players
input_netplay_flip_players = i
# Volume controls
input_volume_down = subtract
input_volume_up = add
input_audio_mute = f9
# Disk controls
input_disk_eject_toggle = nul
input_disk_next = nul
input_disk_prev = nul
############# Misc Input Options ################
# Input driver. Depending on video driver, it might force a different input driver.
# input_driver = raw
# Joypad driver. (Valid: linuxraw, sdl, dinput, xinput)
# input_joypad_driver = xinput
# Maximum amount of users supported by RetroArch.
input_max_users = 4
# 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 =
# Influence how input polling is done inside RetroArch.
# 0 : Early - Input polling is performed before call to retro_run.
# 1 : Normal - Input polling is performed when retro_input_poll is
# requested.
# 2 : Late - Input polling is performed on first call to retro_input_state
# per frame
#
# Setting it to 0 or 2 can result in less latency depending on
# your configuration.
#
# When netplay is enabled, the default polling behavior (1) will
# be used regardless of the value set here.
input_poll_type_behavior = 2
# allow any RetroPad to control the menu
all_users_control_menu = false
# If disabled, we use separate controls for menu operation.
# Enabled: Enter, Backspace, Spacebar and arrow keys operate the menu.
# Disabled: RetroPad keybinds operate the menu.
menu_unified_controls = false
# Mouse Index. Used in input drivers that support multiple mice (e.g. raw, udev)
input_player1_mouse_index =
input_player2_mouse_index =
input_player3_mouse_index =
input_player4_mouse_index =
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.