Comandos de rede para RetroArch

Os comandos de rede são usados ​​para controlar partes do RetroArch. Para fazer isso, os comandos são enviados para RetroArch via UDP (User Datagram Protocol). Normalmente, esses comandos são enviados por meio da função Hotkey do controle. Por exemplo, para reiniciar o jogo você pressiona Hotkey + A ou para salvar o jogo você pressiona Hotkey + Y.

Ativar​

Mas esses comandos também podem ser enviados para o RetroArch por meio da linha de comando ou pinos GPIO. Para fazer isso, você deve ativar a opção de comandos de rede no menu RetroArch, ou, modificar a seguinte linha emretroarch.cfg :

  • network_cmd_enable = "true"

​

Enviar um comando através da linha de comando​

Abaixo você vê como enviar um comando de rede por meio da linha de comando no Linux:

  • echo -n "QUIT" | nc -u -w1 127.0.0.1 55355

RetroArch está na porta 55355 por padrão.

​

Transmita um comando via GPIO​

Exemplo de aplicação:

Você está usando uma carcaça de console de jogo retro existente (NES, N64, etc.) e deseja usar o botão de reinicialização original para reiniciar o jogo que está jogando atualmente e não para reiniciar todo o hardware (Raspberry Pi , etc.).

O script a seguir mostra como enviar o comando de rede RESET ao RetroArch por meio dos pinos 5 e 6 do GPIO para reiniciar o jogo atual:

import RPi.GPIO as GPIO
import time
import socket
# addressing information of target
IPADDR = "127.0.0.1"
PORTNUM = 55355
# enter the data content of the UDP packet
COMMAND = "RESET"
# initialize a socket, think of it as a cable
# SOCK_DGRAM specifies that this is UDP
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
except socket.error:
print 'Failed to create socket'
sys.exit()
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def exitEmulator(channel):
s.sendto(COMMAND, (IPADDR, PORTNUM))
GPIO.add_event_detect(3, GPIO.FALLING, callback=exitEmulator, bouncetime=500)
while True:
time.sleep(10)

​Comandos​

Os seguintes comandos são suportados:

  • 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