Funcionalidades
Especificações de hardware, pilha de software e o que vem pré-instalado
Hardware
SoC Rockchip RK3326 (4× Cortex-A35, in-order dual-issue)
CPU 1416 MHz padrão · 1512 MHz com "Enable CPU Overclock"
GPU Mali-G31 MP2 (Bifrost), fixada em 650 MHz durante o jogo
DRAM 1 GB DDR3L @ 924 MHz
Display 640×480 MIPI DSI, painel descrito por um overlay que você gera
Audio Codec RK817: alto-falante, jack de fone, áudio USB
Network WiFi RK915 por SDIO em algumas placas clone; nas outras, adaptador USB
(família Realtek RTL81xx/88x2 ou o AIC8800, como no Tenda AX300)
Battery 3200 mAh (rk817-battery + rk817-charger), aviso por LED em bateria baixa
Storage microSD (hot-swap suportado, imagem funciona em qualquer tamanho 8 GB+)Pilha de software
Kernel 6.12 LTS, autodetecção de placa via SARADC
GPU driver libmali (inicia por padrão) ou Mesa Panfrost (gpu.driver no system.cfg)
├─ Mesa com +speed +lto, otimizado para NEON
└─ zlib-ng para inflate/deflate via SIMD
Init systemd
Frontend EmulationStation
Backend RetroArch mais os emuladores standalone listados abaixo
Shell bash + GNU coreutils (compatibilidade total com PortMaster)
Updates pacman, acionado pelo comando archr-updateVersões no build atual: Linux 6.12.94, Mesa 26.1.3, systemd 255.8, U-Boot v2025.10, pacman 7.0.0, iwd 3.12.
CMA: 96 MB (aumentado de 64 MB depois que um audit identificou que as alocações de V4L2/Mali estavam apertadas mesmo em idle).
ZRAM: 512 MB lzo-rle (escolhido em vez de zstd porque o Cortex-A35 in-order roda lzo-rle 3–4× mais rápido).
Emuladores pré-instalados
SNES, NES, GB/GBC/GBA, NDS, MD, MS, GG, PCE, NeoGeo, Atari (2600/5200/7800/Lynx/Jaguar),
WonderSwan, PC-FX, ColecoVision, Intellivision, Vectrex, ScummVM, DOS
PSX pcsx_rearmed (padrão), beetle_psx_hw, swanstation, duckstation (software)
N64 Mupen64Plus standalone (GLideN64 performance / Rice como fallback)
PSP PPSSPP standalone (frameskip 3, cap de FPS em 30, GLTHREAD on)
Dreamcast Flycast standalone (resolução 240, renderização threaded, GLTHREAD on)
Saturn yabasanshiro standalone (experimental no A35)
Arcade MAME 2003+, FBNeo, FBA-CPS1/CPS2/Neogeo
NDS DraStic (padrão), melonDS como fallbackNão incluídos no RK3326: GameCube, Wii, Wii U. O Cortex-A35 não roda esses jogos em framerates aceitáveis, então eles ficam ocultos do menu.
Painéis de display
A imagem não traz nenhum overlay de painel. Todas as placas usam a mesma interface MIPI DSI de 640x480, mas com painéis diferentes, e a diferença está na sequência de init e nos timings, que só o device tree original do próprio console conhece.
Então você monta o overlay uma vez, a partir do .dtb do seu cartão original:
- no navegador, em /overlay-generator
- ou com o
archr-dtbo-offline.zip, o mesmo gerador como script de terminal
O resultado se chama sempre mipi-panel.dtbo e vai sempre para overlays/ na partição de boot, porque esse é o único caminho que o extlinux.conf carrega:
FDTOVERLAYS /overlays/mipi-panel.dtboO ArchR Flasher pode copiar o arquivo enquanto grava o cartão, ou depois, pela aba Overlay.
Funcionalidades de rede
| Funcionalidade | Serviço | Padrão |
|---|---|---|
| WiFi | iwd (wifictl, iwctl) | auto-ligado se houver configuração |
| Cabo / Ethernet USB | connman | automático |
| Áudio Bluetooth + gamepad | bluez | habilitado |
| Multiplayer local | RetroArch netplay | descoberta por UDP |
| Multiplayer remoto | Tailscale / ZeroTier / WireGuard | opt-in pela UI |
| Sincronia de ROMs/saves | Syncthing | opt-in |
| Servidor web | simple-http-server | opt-in |
| Samba (compartilhamento de arquivos) | smbd + nmbd + wsdd | opt-in |
| SSH | sshd | opt-in (toggle no ES) |
Quatro deles são pausados automaticamente enquanto um jogo roda, para não disputar CPU com o emulador: Syncthing, Tailscale, ZeroTier e o servidor HTTP simples. O runemu.sh para esses serviços quando o jogo começa e devolve tudo ao sair.
O connman é compilado com --disable-wifi --disable-iwd --disable-bluetooth, então cuida só de conexões com fio. Tudo que envolve WiFi passa pelo wifictl e pelo iwctl, nunca pelo connmanctl.
Linha do tempo do boot
0.0 s Início do U-Boot
0.7 s Splash do initramfs + seleção de DTB
~7 s Hand-off do kernel
~9 s Target do systemd
~12 s archr-autostart (quirks + governor + display)
~17 s EmulationStation
~19 s Pronto para jogarO primeiro boot adiciona uns 10 s para o resize de partição e cria os diretórios de ROM, somente no primeiríssimo power-on depois da gravação.
O que foi ajustado para o RK3326
Pontos altos do trabalho específico para RK3326 (lista completa em Técnico):
- GPU OPP 650 MHz turbo a 1.150 V (mesma voltagem do 600 MHz, evitando os 1.175 V do BSP original que eram instáveis em alguns chips)
- CPU OPP 1512 MHz a 1.400 V com
vdd_armregulator-max elevado para 1.45 V (o spec do RK817 DCDC_REG2 é 1.5 V máx) - Patch de PM no
mali_kbase: elimina os warnings de desbalanceio de regulador/clock que estavam causando estalos de áudio no Mario 64 - Partição BOOT mantida em 256 MB FAT32 com clusters de 16 KB, de propósito abaixo do mínimo de clusters do FAT32, porque é essa a geometria contra a qual os bootloaders dos fabricantes de RK3326 são testados
rq_affinity=2na fila de I/O do microSD (a IRQ pousa no core que emitiu a requisição)- Scheduler BFQ com
low_latency=1eread_ahead_kb=2048