ARCH R

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 ports

Verificaçã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.

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:

PortO que colocar
HalfLifevalve/ e cstrike/ da sua instalação do Steam
Diablo IIarquivos *.mpq de uma cópia legítima
Doom 3pak*.pk4 da instalação retail
Quakeid1/pak0.pak e pak1.pak
Stardew ValleyContent/, StardewValley.dll, etc. da sua instalação Steam Linux
TombRaiderdata/ 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:

CategoriaExemplosExpectativa
ARM nativo, leveVvvvvv, Stardew Valley, Cute Fame, OpenRAvelocidade plena, bateria plena
box86 (x86 32 bits)Diablo II, Half-Life, Quake, Doom 325-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 / RTDOOM Eternal, AAA modernosinviá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.

On this page