Les jeux des micro-ordinateurs des années 80 (Amstrad, Commodore 64, ZX Spectrum…) se jouaient au clavier — ne serait-ce que pour appuyer sur ESPACE afin de lancer la partie. Le module Pad To Keyboard (P2K) de Recalbox traduit les actions de votre manette en appuis de touches clavier (et en mouvements de souris) : ces jeux redeviennent jouables entièrement à la manette, sans clavier branché.
Le principe : au lancement d'un jeu qui possède une configuration P2K, Recalbox crée un clavier virtuel (et une souris virtuelle), vus par le système comme de vrais périphériques. Pendant la partie, chaque action de la manette est traduite instantanément en appui/relâchement de touche — sans input lag mesurable, y compris sur Raspberry Pi.
Deux exemples :
START sur ESPACE ;A sur ESPACE — le jeu se joue comme s'il avait toujours été prévu pour une manette.Recalbox livre déjà quelques configurations P2K avec certains ports (Theme Hospital, Pico-8…), et le scraper peut en télécharger automatiquement.
Une configuration P2K est un simple fichier texte, avec les mêmes règles de nommage que les surcharges de configuration :
.p2k.cfg placé dans le dossier — par exemple /recalbox/share/roms/c64/.p2k.cfg ;.p2k.cfg — par exemple monjeu.d64.p2k.cfg à côté de monjeu.d64.S'il existe plusieurs fichiers, ils sont lus du dossier le plus haut vers le dossier du jeu, puis le fichier propre au jeu : chaque niveau peut ajouter des mappings, remplacer ceux d'un niveau supérieur (même bouton, nouvelle touche), ou en supprimer (même bouton, valeur vide — 0:select =).
# La croix directionnelle vers les flèches
0:up = up
0:down = down
0:right = right
0:left = left
# Bouton A pour la barre d'espace
0:a = space
# Bouton B pour la touche Y (questions Y/N)
0:b = y
# Et le bouton START pour ENTER
0:start = enter
Chaque ligne de mapping est de la forme PAD:ACTION = TOUCHE :
PAD — le numéro de la manette, de 0 à 9 (0 = joueur 1, le cas de loin le plus courant) ;ACTION — le bouton ou la direction de la manette (tableau ci-dessous) ;TOUCHE — la touche clavier appuyée quand l'action est enclenchée, et relâchée quand l'action est relâchée.Les lignes commençant par # sont des commentaires, les lignes vides sont ignorées, et la casse comme les espaces autour du = n'ont pas d'importance.
Le mapping est du 1 pour 1 : pour obtenir
SHIFT + A, mappezleftshiftsur un bouton (L1par exemple) etasur un autre, puis appuyez sur les deux boutons ensemble — ou utilisez une combinaison de touches.
Les positions des boutons A/B/X/Y sont celles d'une manette Nintendo (Super Nintendo).
| Action | Description | Action | Description |
|---|---|---|---|
up |
croix, haut | j1up |
stick gauche, haut |
down |
croix, bas | j1down |
stick gauche, bas |
left |
croix, gauche | j1left |
stick gauche, gauche |
right |
croix, droite | j1right |
stick gauche, droite |
a |
bouton A | j2up |
stick droit, haut |
b |
bouton B | j2down |
stick droit, bas |
x |
bouton X | j2left |
stick droit, gauche |
y |
bouton Y | j2right |
stick droit, droite |
l1 / r1 |
boutons L1 / R1 | l2 / r2 |
boutons L2 / R2 |
l3 / r3 |
clics des sticks | start / select |
boutons START / SELECT |
hotkey |
bouton HOTKEY |
Préfixez une action d'un + pour qu'elle ne se déclenche qu'en combinaison avec le bouton HOTKEY :
# HOTKEY + croix directionnelle : touches F1 à F4
0:+up = f1
0:+down = f2
0:+right = f3
0:+left = f4
Toutes les actions acceptent le préfixe +, sauf select et hotkey lui-même.
Le clavier virtuel est un clavier QWERTY 105 touches, sans langue ni disposition particulière : gardez en tête que la position des lettres est celle d'un QWERTY. Les noms de touches utilisables :
| Famille | Touches |
|---|---|
| Lettres | a à z (disposition QWERTY) |
| Chiffres (rangée du haut) | 0 à 9 |
| Fonctions | f1 à f12 |
| Flèches | up, down, left, right |
| Édition | space, enter, backspace, tab, insert, delete, esc |
| Navigation | home, end, pageup, pagedown, break |
| Modificateurs | leftshift, rightshift, leftctrl, rightctrl, leftalt, rightalt |
| Pavé numérique | kp0 à kp9, kpdot, kpenter, kpplus, kpminus, kpasterisk, kpslash |
| Symboles | s01 à s11 (voir ci-dessous) |
Les touches de symboles, dont la gravure dépend du clavier, portent des noms neutres (position sur un QWERTY US) :
| Nom | Touche | Nom | Touche | Nom | Touche |
|---|---|---|---|---|---|
s01 |
` | s05 | ] | s09 | , |
||||
s02 |
- |
s06 |
; |
s10 |
. |
s03 |
= |
s07 |
' |
s11 |
/ |
s04 |
[ |
s08 |
\ |
Ajoutez ;; suivi d'un court texte à la fin d'une ligne pour la documenter :
0:left = kp4 ;; Aller à gauche
0:right = kp6 ;; Aller à droite
0:a = space ;; Tirer !
0:b = leftshift ;; Turbo !
Dans une liste de jeux, quand le jeu sélectionné possède une configuration P2K, l'aide en bas d'écran affiche P2K CONTROLS : appuyez sur X pour ouvrir la fenêtre PAD TO KEYBOARD CONTROLS, qui récapitule chaque bouton avec sa description.
📷 Capture à venir :
p2k-controls.png(fenêtre PAD TO KEYBOARD CONTROLS sur un jeu avec descriptions)
Le P2K peut aussi émuler une souris 3 boutons. Aux touches clavier s'ajoutent ces valeurs, utilisables avec n'importe quelle action :
| Valeur | Effet |
|---|---|
mouse.button.left |
bouton gauche de la souris |
mouse.button.middle |
bouton du milieu (clic molette) |
mouse.button.right |
bouton droit de la souris |
mouse.move.up / mouse.move.down |
déplacement vertical |
mouse.move.left / mouse.move.right |
déplacement horizontal |
Avec un stick analogique, la vitesse du curseur suit l'inclinaison du stick ; avec la croix ou des boutons, le curseur accélère progressivement puis se stabilise. Raccourci pratique : mouse.moves (avec un « s ») affecte d'un coup les 4 directions d'un stick — uniquement sur j1 ou j2 :
# Recalbox's Pad-to-Keyboard configuration
# Jeu DOS à la souris
# Déplacements : stick droit
0:j2 = mouse.moves ;; Déplacer la souris
# Boutons
0:a = mouse.button.left ;; Clic gauche
0:b = mouse.button.right ;; Clic droit
Vous pouvez mapper les déplacements souris sur plusieurs éléments à la fois (croix + les deux sticks, par exemple) et laisser chacun choisir son contrôle préféré.
Les valeurs souris ne peuvent pas être mélangées à des touches clavier dans une combinaison ou une séquence : une valeur souris s'utilise seule sur sa ligne.
Une action peut déclencher jusqu'à 32 touches, de deux façons.
Combinaison (touches maintenues ensemble) : listez les touches séparées par des espaces. À l'appui du bouton, elles sont pressées dans l'ordre ; au relâchement, relâchées dans l'ordre inverse :
# CTRL+C sur le bouton R1
0:r1 = leftctrl c ;; Break !
Si l'émulateur a besoin d'un délai entre les touches, préfixez la liste de + suivi d'un délai en millisecondes :
# CTRL, puis C 100 ms plus tard
0:r1 = +100 leftctrl c ;; Break !
Séquence (touches tapées l'une après l'autre, comme au clavier) : préfixez la liste de / suivi du délai en millisecondes entre chaque appui/relâchement — /0 pour aucun délai. La séquence est envoyée à l'appui du bouton (le relâchement ne fait rien) :
# Tape F, G, H, J à la suite, 25 ms entre chaque
0:r1 = /25 f g h j ;; Écrit FGHJ
# La même chose sans délai
0:select = /0 r u n enter ;; Tape RUN puis Entrée
Le préfixe
/doit toujours être suivi d'un nombre :/ f g h j(avec un/seul) est rejeté, écrivez/0 f g h j.
La communauté partage ses configurations P2K sur ScreenScraper : le scraper interne peut les installer automatiquement à côté de vos roms.
Dans SCRAPEUR → OPTIONS, activez INSTALLER LES CONFIGURATIONS PAD VERS CLAVIER (clé scraper.screenscraper.p2k de recalbox.conf, désactivée par défaut). Lors du scrape, si une configuration P2K existe pour un jeu, elle est enregistrée en <rom>.p2k.cfg à côté de la rom — sans écraser un fichier déjà présent.
Et dans l'autre sens : si vous créez de bonnes configurations, déposez-les sur ScreenScraper pour en faire profiter tout le monde, en restant intuitif (un jeu doit se lancer avec START ou A), et venez en discuter sur le Discord Recalbox.
Pour créer vos fichiers sans mémoriser la syntaxe, un générateur en ligne est à votre disposition : recalbox-p2k-gen.recalbox.com.