Documentation
Rechercher…
Interactions d'émulateur via un mappage GPIO
Les commandes réseau sont utilisées pour contrôler certaines parties de RetroArch. Pour ce faire, les commandes sont envoyées à RetroArch via UDP (User Datagram Protocol).
Habituellement dans la Recalbox, ces commandes sont transmises par la fonction Hotkey du contrôleur. Par exemple, pour réinitialiser le jeu, vous appuyez sur les touches de Hotkey + A ou pour sauvegarder le jeu, vous appuyez sur les touches de Hotkey + Y.
Rappelez-vous que cela ne fonctionne qu'avec RetroArch / les émulateurs qui font partie de libretro.

Activer

Mais ces commandes peuvent également être envoyées à RetroArch via une ligne de commande ou des broches GPIO. Pour cela, vous devez activer l'option commandes réseau dans le menu RetroArch ou modifier la ligne suivante dans retroarch.cfg :
    network_cmd_enable = «true»

Envoyer une commande via GPIO

Exemples d'application :

Vous utilisez un boîtier existant de console de jeu rétro (NES, N64, etc.) et vous voulez utiliser le bouton de réinitialisation d'origine pour réinitialiser le jeu auquel vous jouez actuellement et non pas pour réinitialiser tout le matériel (Raspberry Pi, etc.). Le script suivant montre comment envoyer la commande réseau RESET à RetroArch via les broches GPIO 5 et 6 pour réinitialiser le jeu en cours.
1
import RPi.GPIO as GPIO
2
import time
3
import socket
4
# addressing information of target
5
IPADDR = "127.0.0.1"
6
PORTNUM = 55355
7
# enter the data content of the UDP packet
8
COMMAND = "RESET"
9
# initialize a socket, think of it as a cable
10
# SOCK_DGRAM specifies that this is UDP
11
try:
12
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
13
except socket.error:
14
print 'Failed to create socket'
15
sys.exit()
16
GPIO.setmode(GPIO.BCM)
17
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
18
def exitEmulator(channel):
19
s.sendto(COMMAND, (IPADDR, PORTNUM))
20
GPIO.add_event_detect(3, GPIO.FALLING, callback=exitEmulator, bouncetime=500)
21
while True:
22
time.sleep(10)
Copied!
Avec ce script, il est non seulement possible de RESET les émulateurs, mais vous pouvez également utiliser la commande nécessaire à partir de diverses commandes. Vous pouvez QUITTER les émulateurs (retour à EmulationStation), CHARGER ou SAUVEGARDER un état de jeu, PAUSER la partie, etc. Pour cela, il suffit de remplacer la commande RESET de la COMMAND = RESET par une commande de votre choix.
ATTENTION :
Ce script peut ne pas fonctionner avec toutes les commandes réseau de RetroArch. Pour certains, il fonctionne, mais pour d'autres, il nécessite plus de travail pour le faire fonctionner (par exemple, FASTFORWARD_HOLD).
Vous pouvez également remapper les broches Raspberry Pi.
Et n'oubliez pas : Recalbox dispose déjà d'options intégrées pour réinitialiser, démarrer et arrêter le matériel que vous utilisez via des boutons et GPIO.

Commandes

Les commandes suivantes sont prises en charge par RetroArch :
    FAST_FORWARD
    FAST_FORWARD_HOLD
    LOAD_STATE
    SAVE_STATE
    FULLSCREEN_TOGGLE
    QUIT
    STATE_SLOT_PLUS
    STATE_SLOT_MINUS
    REWIND
    MOVIE_RECORD_TOGGLE
    PAUSE_TOGGLE
    FRAMEADVANCE
    RESET
    SHADER_NEXT
    SHADER_PREV
    CHEAT_INDEX_PLUS
    CHEAT_INDEX_MINUS
    CHEAT_TOGGLE
    SCREENSHOT
    MUTE
    NETPLAY_FLIP
    SLOWMOTION
    VOLUME_UP
    VOLUME_DOWN
    OVERLAY_NEXT
    DISK_EJECT_TOGGLE
    DISK_NEXT
    DISK_PREV
    GRAB_MOUSE_TOGGLE
    MENU_TOGGLE

Envoyer une commande via la ligne de commande

Vous pouvez également envoyer des commandes réseau via la ligne de commande sous Linux. Voici comment procéder :
    echo -n "QUIT" | nc -u -w1 127.0.0.1 55355
RetroArch est à l'écoute du port 55355 par défaut.
Dernière mise à jour 7mo ago