PortMaster
Execute ports de PC nativamente no R36S
O PortMaster é um launcher e repositório de ports que executa binários nativos de PC (Half-Life, Diablo II, Doom 3, Quake, Stardew Valley, Vvvvvv...) diretamente no handheld, usando tradução via box86 / box64 quando necessário. O ArchR já vem com o PortMaster pré-instalado e configurado.
O que está incluído por padrão
PortMaster GUI /storage/roms/ports/PortMaster/
gptokeyb tradutor de eventos joypad → teclado
oga_controls integração de input específica para o dispositivo
control.txt mapa de teclas padrão
SDL2 + lib32 / box86 binários x86 de 32 bits via box86
SDL2 + box64 binários x86_64 de 64 bits via box64
Python 3 + lzma usado pela GUI e por muitos portsVerificação no boot:
python3 -c 'import lzma' # funciona
ls -la /dev/uinput # crw-rw-rw- (regra udev 91-uinput.rules)Executando um port
Abra o PortMaster
No EmulationStation, navegue até o sistema Ports. A primeira entrada é o "PortMaster", abra-a. A GUI será iniciada.
Navegue / instale
Pressione B em um port para instalá-lo. Os arquivos vão para /storage/roms/ports/<nome-do-port>/. O PortMaster baixa quaisquer arquivos de dados necessários (assets no estilo ROM não são incluídos, copie wad/mpq/etc. para a pasta do port conforme o README dele).
Saia da GUI do PortMaster
MODE + B retorna ao ES. Os ports instalados aparecem como launchers (arquivos .sh) na lista do sistema Ports.
Jogue um port
Igual a uma ROM. Selecione o launcher e pressione A. O ArchR pausa serviços em segundo plano (Syncthing, Tailscale, ZeroTier) durante a sessão, troca o governor da CPU para performance e fixa a GPU em 650 MHz.
Sair
Cada port tem seu próprio hotkey, geralmente MODE + START + SELECT. Alguns usam apenas MODE + START. A combinação está documentada no README do port em /storage/roms/ports/<port>/README.md.
Ports que exigem dados próprios
Alguns ports trazem apenas a engine. Eles esperam que você coloque os dados originais do jogo na pasta do port. Exemplos:
| Port | O que colocar |
|---|---|
| HalfLife | valve/ e cstrike/ da sua instalação do Steam |
| Diablo II | arquivos *.mpq de uma cópia legítima |
| Doom 3 | pak*.pk4 da instalação retail |
| Quake | id1/pak0.pak e pak1.pak |
| Stardew Valley | Content/, StardewValley.dll, etc. da sua instalação Steam Linux |
| TombRaider | data/ do CD original |
| DevilutionX (Diablo I) | diabdat.mpq |
O PortMaster mostra um checklist por port com os arquivos faltantes na GUI antes de permitir o lançamento.
Jogo em rede
Ports do PortMaster que suportam multiplayer (Quake, Half-Life DM, etc.) podem usar:
- Tailscale ou ZeroTier para jogar em "LAN pela internet" com amigos. Ative em ES → System Settings → Network.
- Broadcast em LAN local, funciona de cara, basta que os dois dispositivos estejam no mesmo WiFi.
O ArchR mantém todos os serviços VPN pausados até você lançar um jogo que precise deles, retomando depois que você sai.
Expectativas de desempenho
Cortex-A35 + Mali-G31 é um SoC de baixo custo. Baseline realista:
| Categoria | Exemplos | Expectativa |
|---|---|---|
| ARM nativo, leve | Vvvvvv, Stardew Valley, Cute Fame, OpenRA | velocidade plena, bateria plena |
| box86 (x86 32 bits) | Diablo II, Half-Life, Quake, Doom 3 | 25-60 fps dependendo das configurações |
| box64 (x86_64 64 bits) | Indies mais recentes (porte de Hollow Knight) | jogável mas pesado, precisa de CPU Overclock |
| 3D pesado / RT | DOOM Eternal, AAA modernos | inviável |
Ative Enable CPU Overclock no ES (eleva o limite de 1.4 para 1.5 GHz) para ports box86/64 que estão sofrendo.
Solução de problemas
Port trava em tela preta. Permissões do joypad provavelmente estão erradas. Verifique se ls -la /dev/uinput retorna modo 666. Se não, a regra udev não foi aplicada, use sudo chmod 666 /dev/uinput como paliativo e reporte o bug.
gptokeyb: Permission denied. Mesma coisa acima.
O port pede arquivos de dados faltando. Coloque-os em /storage/roms/ports/<port>/ conforme o README do port. A GUI do PortMaster lista os arquivos faltando antes do lançamento.
box86: assertion failure. O port foi compilado contra uma libstdc++ mais nova do que a que o ArchR distribui. Aguarde uma atualização ou reporte no Discord do PortMaster.
A própria GUI do PortMaster não inicia. Execute start_portmaster.sh via SSH e leia o trace. O script agora é idempotente (rm -rf + guards), então relançar é sempre seguro.
Onde as coisas ficam
/storage/roms/ports/
├── PortMaster/ GUI + scripts (gerenciado)
│ ├── PortMaster.sh
│ ├── control.txt mapa padrão joypad → tecla
│ ├── gptokeyb tradutor de input
│ └── ...
├── DiabloII.sh launcher gerado por port
├── DiabloII/ arquivos reais do port
├── HalfLife.sh
├── HalfLife/
└── ...Remover um port: apague o .sh e a pasta correspondente, depois ES → Game Settings → Rescan ROMs.