• Stars
    star
    258
  • Rank 158,189 (Top 4 %)
  • Language
    Ruby
  • License
    MIT License
  • Created almost 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RetroArch joypad autoconfig files

Joypad Autoconfig Files

This repository stores joypad autoconfig files for RetroArch, the reference frontend for the libretro API.

The autoconfig files included in this repository are used to recognize input devices and automatically setup default mappings between the physical device and the RetroPad virtual controller.

How to create an autoconfig file

If your input device is not recognized by RetroArch even after updating the controller profiles, then you can generate a new profile for it from RetroArch itself.

You can find detailed instructions to do this in the official website.

Uploading your own autoconfig file

If you want to share an autoconfig file that is missing in RetroArch, then you can upload it to this repository.

Please remember that the goal of sharing your autoconfig file is to create a bigger database of default input device mappings that can be used by other people.

If your mapping is custom-made for your own needs, then it will not be really useful for others. It is better if you share more generic and reusable mappings that can act as a "default".

To upload your autoconfig file follow these steps

1. Checking for duplicates

RetroArch uses three attributes of the input device to identify which autoconfig file to use: Vendor ID, Product ID and Device Name. Before uploading your file, please verify that there is no other autoconfig file matching those same three attributes already.

To verify, compare the values for input_vendor_id, input_product_id and input_device attributes respectively.

⚠️ Warning: If another autoconfig file exists including the same Vendor ID, Product ID and input Device Name, then your autoconfig file will cause conflicts.

2. Adding input descriptors

Input descriptors are the labels that RetroArch will display in the user interface (UI) to describe buttons and axes of your device. It is recommended to add descriptors so RetroArch can display useful labels in the UI.

Input descriptor attributes are not added by default, you need to manually add the attributes inside the autoconfig file that was generated by RetroArch. For example:

input_b_btn_label = "Cross"
input_y_btn_label = "Square"
input_a_btn_label = "Circle"
input_x_btn_label = "Triangle"

You will find more details about the attribute name syntax in the Input Descriptors section below.

3. Testing your autoconfig file

Before uploading your autoconfig file please verify that RetroArch is correctly detecting the file and also displaying all the labels for the input device. You can verify this in the Settings > Input > Port 1 Controls menu.

The best way to confirm that everything is working is:

  1. Reset controller bindings to the defaults: Settings > Input > Port 1 Controls > Reset to Default Controls
  2. Disconnect and reconnect the input device
  3. Check the bindings in Settings > Input > Port 1 Controls to confirm that they are correct
  4. If applicable, then also check the menu button binding in Settings > Input > Hotkeys > Menu (Toggle)

4. Creating a Pull Request

To upload your autoconfig file to this repository you must create a Pull Request.

You can learn how to create a Pull Request in Github in the official documentation.

⚠️ Warning: Verify that you are creating the autoconfig file in the correct folder. It must be the folder with the same name used in the input_driver attribute in the autoconfig file.

File Format

Autoconfig files consist of a list of attributes and their corresponding values using the following syntax:

attribute_name = value

All attribute names in the file use the snake_case naming scheme.

Attribute Types

There are three types of attributes for describing an input device.

1. Device Descriptors

These are attributes that identify the physical input device itself. The available attributes are:

Attribute Description
input_driver Driver in-use when the input device was detected
input_device Device Name reported by the device
input_vendor_id Vendor ID reported by the device
input_product_id Product ID reported by the device
input_device_display_name Friendly display name to show in the user inteface (optional)

2. Button/axes Mappings

These are attributes that describe the mappings between physical buttons/axes and the RetroPad virtual controller.

Button/axes attributes are named following the pattern: input_ + button/axis name + input_type. The input_type suffix can be either _axis for axes or _btn for buttons. For example:

input_b_btn = "0"
input_y_btn = "1"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"

The RetroPad virtual controller layout is shown below:

RetroPad Layout

The available attributes for input device mapping are:

Attribute Description
input_b_btn Device button mapped to RetroPad's B button
input_y_btn Device button mapped to RetroPad's Y button
input_select_btn Device button mapped to RetroPad's Select button
input_start_btn Device button mapped to RetroPad's Start button
input_up_btn Device button mapped to RetroPad's D-Pad Up button
input_down_btn Device button mapped to RetroPad's D-Pad Down button
input_left_btn Device button mapped to RetroPad's D-Pad Left button
input_right_btn Device button mapped to RetroPad's D-Pad Right button
input_a_btn Device button mapped to RetroPad's A button
input_x_btn Device button mapped to RetroPad's X button
input_l_btn Device button mapped to RetroPad's Left Shoulder button
input_r_btn Device button mapped to RetroPad's Right Shoulder button
input_l2_btn Device button mapped to RetroPad's Left Trigger button
input_r2_btn Device button mapped to RetroPad's Right Trigger button
input_l3_btn Device button mapped to RetroPad's Left Thumb button
input_r3_btn Device button mapped to RetroPad's Right Thumb button
input_l_x_plus_axis Device axis mapped to RetroPad's Left Analog axis (right)
input_l_x_minus_axis Device axis mapped to RetroPad's Left Analog axis (left)
input_l_y_plus_axis Device axis mapped to RetroPad's Left Analog axis (down)
input_l_y_minus_axis Device axis mapped to RetroPad's Left Analog axis (up)
input_r_x_plus_axis Device axis mapped to RetroPad's Right Analog axis (right)
input_r_x_minus_axis Device axis mapped to RetroPad's Right Analog axis (left)
input_r_y_plus_axis Device axis mapped to RetroPad's Right Analog axis (down)
input_r_y_minus_axis Device axis mapped to RetroPad's Right Analog axis (up)
input_menu_toggle_btn Device button mapped to RetroPad's Menu button

3. Input Descriptors

These are attributes that describe the labels that RetroArch will display in the user interface to describe buttons and axes of the input device. They should match the labels printed on the physical controller itself.

Input descriptor attributes are named following the pattern: input name + _label. The input name part is exactly the same as defined in the button/axes mappings section, including the input_ prefix and the _axis or _btn suffix. For example:

input_l2_btn = "5"          <-- Input mapping attribute
input_l2_btn_label = "L2"   <-- Input descriptor attribute

⚠️ Warning: It is important that input name matches exactly the input name defined in the autoconfig file. If the input you are describing is an axis, then the input descriptor must be for an axis as well. For example:

input_l2_axis = "+3"         <-- Input mapping attribute

input_l2_btn_label = "L2"    <-- WRONG descriptor attribute
input_l2_axis_label = "L2"   <-- CORRECT descriptor attribute

More Repositories

1

RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
C
10,167
star
2

Lakka-LibreELEC

Lakka is a lightweight Linux distribution that transforms a small computer into a full blown game console.
Makefile
1,741
star
3

common-shaders

Collection of commonly used Cg shaders. These shaders are usable by either HLSL and/or Cg runtime compilers. The cg2glsl script will translate most of these into GLSL shaders.
C
1,011
star
4

glsl-shaders

This repo is for glsl shaders converted by hand from libretro's common-shaders repo, since some don't play nicely with the cg2glsl script.
GLSL
824
star
5

libretro-database

Repository containing cheatcode files, content data files, etc.
Python
680
star
6

ludo

A libretro frontend written in golang
Go
590
star
7

libretro-super

Super repo for other libretro projects. Fetches, builds and installs.
Shell
401
star
8

libretro-thumbnails

Boxarts, titlescreen, and in-game screenshots for the no-intro DATs used by RetroArch
311
star
9

beetle-psx-libretro

Standalone port/fork of Mednafen PSX to the Libretro API.
C
307
star
10

parallel-n64

Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus.
C++
272
star
11

docs

This is a repo of the RetroArch official document page.
TeX
255
star
12

mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
C
188
star
13

retroarch-assets

Assets needed for RetroArch - e.g. menu drivers, etc. Also contains the official branding.
Shell
170
star
14

mupen64plus-libretro-nx

Improved mupen64plus libretro core reimplementation
C
169
star
15

LRPS2

C
168
star
16

libretro-lutro

An experimental lua game framework for libretro following the LΓ–VE API
C
133
star
17

libretro-common

Reusable coding blocks useful for libretro core and frontend development, written primarily in C. Permissively licensed.
C
122
star
18

swanstation

C++
122
star
19

libretro-uae

PUAE libretro
C
115
star
20

libretro-fceumm

FCEUmm libretro port.
C
107
star
21

snes9x2010

Snes9x 2010. Port of Snes9x 1.52+ to Libretro (previously called SNES9x Next). Rewritten in C and several optimizations and speedhacks.
C
95
star
22

common-overlays

Collection of overlay files for use with libretro frontends, such as RetroArch.
Shell
91
star
23

mame2003-libretro

MAME 0.78 for libretro. Compatible with MAME 0.78 sets.
C
90
star
24

gambatte-libretro

Hard fork of Gambatte to the libretro API.
C
87
star
25

nxengine-libretro

Port of NxEngine to the libretro API. NXEngine is a Cave Story game engine clone
C
81
star
26

vba-next

Optimized port of VBA-M to Libretro.
C
79
star
27

overlay-borders

A place for collecting decorative/cosmetic overlays for use with RetroArch.
67
star
28

libretro-prboom

Port of prboom to libretro - plays Doom, Doom II, Final Doom and other Doom IWAD mods.
C++
62
star
29

libretro-chailove

❀️ 2D Game Framework with ChaiScript
C++
61
star
30

neocd_libretro

Neo Geo CD emulator for libretro
C++
61
star
31

dosbox-libretro

Port of DOSBox (upstream) to the libretro API.
C++
57
star
32

libretro-samples

A set of samples to illustrate libretro API.
C
57
star
33

libretro-core-info

Mirror of libretro's core info files. Submit changes to libretro-super instead.
Makefile
57
star
34

blastem

Upstream tracking repo of BlastEm, the fast and accurate Genesis emulator, with libretro specific changes
C
51
star
35

opera-libretro

Port of 4DO/libfreedo to libretro.
C
48
star
36

arcade-overlays

Pawn
39
star
37

bsnes-mercury

Fork of bsnes with various performance improvements.
C++
39
star
38

blueMSX-libretro

Port of blueMSX to the libretro API.
C
39
star
39

nestopia

Nestopia emulator with libretro interface
C++
37
star
40

LudOS

Just enough OS for libretro using the Ludo frontend on a LibreELEC 9.2 base
Makefile
37
star
41

tyrquake

Libretro port of Tyrquake (Quake 1 engine)
C
36
star
42

fuse-libretro

A port of the Fuse Unix Spectrum Emulator to libretro
C
35
star
43

snes9x2002

Snes9x 2002. Port of SNES9x 1.39 for libretro (was previously called PocketSNES). Heavily optimized for ARM.
C
34
star
44

mame2000-libretro

2000 version of MAME (0.37b5) for libretro. Compatible with iMAME4All/MAME4Droid/MAME 0.37b5 sets.
C
34
star
45

desmume2015

Port of Desmume to libretro based on Desmume SVN circa 2015.
C++
30
star
46

mame2010-libretro

Late 2010 version of MAME (0.139) for libretro. Compatible with MAME 0.139 sets.
C
30
star
47

libretro.github.com

HTML
29
star
48

fbalpha2012

Final Burn Alpha 2012. Port of Final Burn Alpha to Libretro (0.2.97.24).
C++
29
star
49

gw-libretro

A libretro core for Game & Watch simulators
C
28
star
50

virtualjaguar-libretro

Hard fork of Virtual Jaguar (abandoned project) to Libretro
C
28
star
51

FreeIntv

A libretro emulation core for the Mattel Intellivision designed to be compatible with joypads from the SNES era forward
Assembly
26
star
52

mame2016-libretro

Late 2016 version of MAME (0.174) for libretro. Compatible with MAME 0.174 sets.
C++
26
star
53

fmsx-libretro

Port of fMSX to the libretro API.
C
25
star
54

shader-previews

A repo to store thumbnail previews for RetroArch's many shaders.
24
star
55

beetle-pce-fast-libretro

Standalone fork of Mednafen PCE Fast to libretro
C
24
star
56

tgbdual-libretro

libretro port of TGB Dual
C
23
star
57

hatari

New rebasing of Hatari based on Mercurial upstream. Tries to be a shallow fork for easy upstreaming later on.
C
23
star
58

vbam-libretro

A fork of VBA-M with libretro integration
C++
22
star
59

stella2014-libretro

Port of Stella to libretro.
C++
22
star
60

parallel-rsp

C
21
star
61

libretro-cap32

caprice32 4.2.0 libretro
C
21
star
62

PokeMini

Obscure nintendo handheld emulator
C
20
star
63

beetle-vb-libretro

Standalone hard fork of Mednafen VB to libretro.
C
19
star
64

beetle-pce-libretro

Standalone hard fork of Mednafen PCE to libretro
C
18
star
65

beetle-supergrafx-libretro

Standalone port of Mednafen PCE Fast to libretro. This one only emulates a SuperGrafx TG-16.
C
18
star
66

ecwolf

Libretro port of ECWolf
C++
18
star
67

81-libretro

A port of the EightyOne ZX81 Emulator to libretro
C
18
star
68

beetle-wswan-libretro

Standalone hard fork of Mednafen WonderSwan to libretro, itself a fork of Cygne
C
17
star
69

lutro-platformer

A platform game demo for libretro-lutro
Lua
16
star
70

Genesis-Plus-GX-Wide

Widescreen modification of Genesis Plus GX
C
16
star
71

mame2015-libretro

Late 2014/Early 2015 version of MAME (0.160-ish) for libretro. Compatible with MAME 0.160 sets.
C
16
star
72

libretro-2048

Port of 2048 puzzle game to the libretro API. http://gabrielecirulli.github.io/2048/
C
15
star
73

REminiscence

Flashback engine reimplementation
C++
15
star
74

libretro-mpv

mpv media player libretro core
C
15
star
75

pcsx_rearmed_switch

PCSX ReARMed specifically for Switch right now. Separate repo might go away later.
C
15
star
76

go-nanoarch

Minimal libretro frontend written in golang
C
14
star
77

retroarch-snap

RetroArch snap package
Shell
14
star
78

fceu-next

Port of FCEUmm / FCEUX to Libretro.
C
13
star
79

libretro-content

Content provided through the Content Downloader.
Makefile
13
star
80

prosystem-libretro

Port of ProSystem to the libretro API.
C
12
star
81

daphne

C
11
star
82

netplay-lobby-server-go

Netplay lobby server implemented in GO.
Go
11
star
83

arduous

C
11
star
84

libretro-handy

K. Wilkins' Atari Lynx emulator Handy (http://handy.sourceforge.net/) for libretro
C
11
star
85

libretro-gme

Port of blargg's Game_Music_Emu library
C
11
star
86

libretro-o2em

Port of O2EM to the libretro API, an Odyssey 2 / VideoPac emulator.
C
11
star
87

bsnes-libretro-cplusplus98

libretro implementation of the core emulation in BSNES, a Super Nintendo (SNES) emulator.
C++
11
star
88

pcsx1-libretro

PCSX1 rewritten for libretro only.
C
10
star
89

atv_menu

Android TV menu driver for RetroArch
C++
10
star
90

bsnes2014

Libretro fork of bsnes. As close to upstream as possible.
C++
9
star
91

bnes-libretro

libretro implementation of bNES
C++
9
star
92

desmume2014

Port of Desmume to libretro based on Desmume SVN circa 2015.
C++
9
star
93

fbalpha2012_neogeo

Final Burn Alpha 2012. Port of Final Burn Alpha to Libretro (0.2.97.24). Standalone core for Neo Geo.
C
9
star
94

minibrowser

C
8
star
95

beetle-ngp-libretro

Standalone port of Mednafen NGP to the libretro API, itself a fork of Neopop.
C
8
star
96

netplay-mitm-server

C++
8
star
97

smsplus-gx

Improved port of SMSPlus-GX by gameblabla for libretro
C
8
star
98

paraLLeXT

Rebased parallel build.
C
8
star
99

lutro-status

Compare Lutro's API to the LOVE API, written by @Feufochmar
Lua
8
star
100

libretro-directxbox

C
8
star