Netplay
Jogo em rede do RetroArch, pela internet ou entre dois consoles sem roteador
O RetroArch consegue rodar um core libretro em rede, e o EmulationStation coloca uma interface em cima disso: um navegador de salas, uma entrada para hospedar dentro das opções do jogo e um modo local em que um console vira o ponto de acesso dos outros.
Só funciona com cores libretro. Emuladores standalone (DraStic, PPSSPP, Yabasanshiro, DuckStation, ScummVM) não têm netplay aqui.
Ligar
ES → Game Settings → Netplay Settings.
Habilitar o netplay
Ligue Enable netplay e preencha o Nickname. Salvar com a chave ligada dispara uma passagem em segundo plano pela sua biblioteca, calculando um CRC para cada ROM. É assim que a sala sabe se a sua cópia do jogo é igual à do anfitrião.
Esperar a indexação
A passagem aparece como Searching netplay games no canto. Dá para rodar de novo quando quiser em Index games, escolhendo All ou Only missing e quais sistemas incluir. Index new games at startup mantém isso em dia sozinho.
Com o netplay ligado, a tela inicial ganha um atalho: aperte X no carrossel de sistemas para abrir Connect to netplay.
Jogar pela internet
O navegador de salas lista o que outras pessoas estão hospedando. Os jogos que você tem aparecem em Available games, os que você não tem em Unavailable games, e cada linha diz Same ROM, Different ROM, Unknown ROM version ou Unavailable core. Só Same ROM é uma entrada segura.
Escolha uma e depois Join game para jogar ou Watch game para assistir.
Para hospedar, abra uma lista de jogos, aperte X no jogo para ver as opções dele e escolha Start a netplay game → Host a netplay game. A mesma tela tem Netplay nickname, Player password, Publicly announce game (é o que coloca você na sala pública), Netplay host e Netplay port. A porta padrão é 55435.
Servidores de relay
Uma conexão direta precisa de uma porta aberta no roteador do anfitrião, o que a maioria das conexões domésticas não oferece. Use relay server, em Netplay Settings, faz a sessão passar por um servidor público. As opções embutidas são New York, Madrid, Montreal e Sao Paulo, mais Custom para um endereço seu. É mais lento que um link direto, mas funciona atrás de NAT.
Show relay server games only filtra a lista para as salas que são mais fáceis de entrar pelo mesmo motivo.
Jogar sem roteador nenhum
Um console pode servir de ponto de acesso para os outros, que é o que você quer no trem ou no parque.
No anfitrião
Network Settings → Enable WiFi ligado → Local play mode ligado → Local play ID = 1 (Host).
O console sobe um ponto de acesso chamado NETPLAY_AP com a senha deadbeef, no canal definido em Local network channel (6 por padrão), e assume o endereço 192.168.80.1. O EmulationStation aponta a configuração de host do netplay para esse endereço e desliga o relay.
Nos outros consoles
Mesmo menu: Enable WiFi ligado, Local play mode ligado, Local play ID = 2, 3 ou 4. Eles entram no NETPLAY_AP sozinhos, não há SSID para digitar.
Começar o jogo
Anfitrião: opções do jogo → Start a netplay game → Host a netplay game. Clientes: mesmo jogo, mesmo core, Join a netplay game.
O modo local toma conta do adaptador sem fio, então enquanto ele está ligado não há internet: sem scraping, sem atualização, sem navegador de salas.
Local play mode só aparece no menu se o adaptador sem fio informar que suporta modo ponto de acesso. O ArchR pergunta direto ao driver (wifictl has_ap_mode), então num dongle sem modo AP a linha simplesmente não existe.
O que o netplay muda enquanto está ligado
O setsettings.sh reescreve o retroarch.cfg antes de cada partida, e com o netplay habilitado ele grava três coisas independentemente de aquele jogo ser ou não uma sessão em rede:
- Carregamento e gravação automáticos de save state desligados.
- Modo hardcore do RetroAchievements desligado.
- No cliente,
netplay_client_swap_input, para o segundo console controlar o jogador 2.
Vale prestar atenção nos dois primeiros. Eles estão amarrados à chave global do netplay, não à sessão, então deixar o netplay ligado custa o autosave e as conquistas em hardcore também no modo um jogador. Desligue a chave quando terminar.
Alguns cores recebem um tratamento extra, porque o multijogador deles é cabo link e não netplay comum:
| Core | O que é configurado |
|---|---|
| gambatte | Link de Game Boy pela rede, servidor no anfitrião e cliente nos outros, usando a porta do netplay mais um |
| tgbdual | Cabo link com uma tela por console, definida pelo Local play ID |
| genesis_plus_gx | Adaptador four-way play na porta 2 |
| snes9x | Multitap na porta 2 |
Quais cores funcionam
95 dos cores libretro que vêm no sistema estão marcados para netplay, ou seja, quase todos. Os que você provavelmente vai usar:
- snes9x, snes9x2010, snes9x2002, snes9x2005_plus
- fceumm, nestopia, quicknes, mesen
- gambatte, sameboy, gearboy, tgbdual, DoubleCherryGB
- mgba, vba_next, vbam, beetle_gba, gpsp
- genesis_plus_gx, picodrive
- fbneo, fbalpha2012, mame2003_plus, mame2010, neocd
- pcsx_rearmed, pcsx_rearmed32
- flycast, flycast2021
- mupen64plus_next, parallel_n64
- beetle_pce_fast, beetle_supergrafx, opera, same_cdi
Os cores 3D pesados estão nessa lista porque o RetroArch aceita, não porque a partida fica boa. No RK3326 os quatro núcleos Cortex-A35 já estão ocupados com a renderização, e o netplay em cima disso significa queda de quadros.
Quando dá errado
A sala diz "different ROM". Seu dump não é o mesmo arquivo do anfitrião. Use a mesma versão No-Intro ou Redump dos dois lados. A comparação é pelo CRC do arquivo, então até uma cópia aparada ou com cabeçalho diferente conta como outra ROM.
"You are not connected to a network". O ES confere se existe endereço IP antes de abrir a sala ou hospedar. Veja Network Settings → IP address.
Ninguém consegue entrar no seu jogo público. Seu roteador não está encaminhando a porta 55435. Escolha um servidor de relay em Netplay Settings em vez de pedir para as pessoas chegarem direto em você.
Um jogo não aparece na lista. Ele não foi indexado. Rode Index games com Only missing selecionado.
Travadas no modo local. O canal é dividido com tudo que estiver por perto. Mude o Local network channel no anfitrião, os canais 1, 6 e 11 não se sobrepõem.
Netplay Settings não está no menu. Ele aparece em Game Settings → Accounts só quando pelo menos um sistema instalado tem um core com suporte a netplay. Se você removeu cores na mão, isso pode deixar de ser verdade.