ARCH R

Features

Hardware specs, software stack, and what's pre-installed

Hardware

SoC          Rockchip RK3326 (4× Cortex-A35, in-order dual-issue)
CPU          1416 MHz default · 1512 MHz with "Enable CPU Overclock"
GPU          Mali-G31 MP2 (Bifrost), pinned at 650 MHz during gameplay
DRAM         1 GB DDR3L @ 924 MHz
Display      640×480 MIPI DSI, panel described by an overlay you generate
Audio        RK817 codec, speaker, headphone jack, USB audio
Network      RK915 SDIO WiFi on some clone boards; the rest use a USB adapter
             (Realtek RTL81xx/88x2 family or the AIC8800, as in the Tenda AX300)
Battery      3200 mAh (rk817-battery + rk817-charger), LED warning at low
Storage      microSD (hot-swap supported, image works on any size 8 GB+)

Software stack

Kernel       6.12 LTS, board auto-detect via SARADC
GPU driver   libmali (boots by default) or Mesa Panfrost (gpu.driver in system.cfg)
              ├─ Mesa with +speed +lto, NEON-optimised
              └─ zlib-ng for SIMD inflate/deflate
Init         systemd
Frontend     EmulationStation
Backend      RetroArch plus the standalone emulators listed below
Shell        bash + GNU coreutils (full PortMaster compatibility)
Updates      pacman, driven by the archr-update command

Versions in the current build: 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 (raised from 64 MB after audit found V4L2/Mali allocations were tight in idle).

ZRAM: 512 MB lzo-rle (chosen over zstd because Cortex-A35 in-order runs lzo-rle 3–4× faster).


Pre-installed emulators

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 (default), beetle_psx_hw, swanstation, duckstation (software)
N64           Mupen64Plus standalone (GLideN64 performance / Rice fallback)
PSP           PPSSPP standalone (frameskip 3, FPS cap 30, GLTHREAD on)
Dreamcast     Flycast standalone (240 res, threaded rendering, GLTHREAD on)
Saturn        yabasanshiro standalone (experimental on A35)
Arcade        MAME 2003+, FBNeo, FBA-CPS1/CPS2/Neogeo
NDS           DraStic (default), melonDS as fallback

Not included on RK3326: GameCube, Wii, Wii U: Cortex-A35 doesn't run them at usable framerates, so they're hidden from the menu.


Display panels

The image ships no panel overlay. Every board pairs the same 640x480 MIPI DSI interface with a different panel, and the differences live in the init sequence and the timings, which only the console's own original device tree knows.

So you build the overlay once, from the .dtb of your original card:

  • in the browser at /overlay-generator
  • or with archr-dtbo-offline.zip, the same generator as a terminal script

The result is always called mipi-panel.dtbo and always goes into overlays/ on the boot partition, because that is the single path extlinux.conf loads:

FDTOVERLAYS /overlays/mipi-panel.dtbo

The ArchR Flasher can copy the file for you while it writes the card, or afterwards from its Overlay tab.


Network features

FeatureServiceDefault
WiFiiwd (wifictl, iwctl)auto-on if config present
Wired / USB Ethernetconnmanauto
Bluetooth audio + gamepadbluezenabled
Local playRetroArch netplayUDP discovery
Remote playTailscale / ZeroTier / WireGuardopt-in via UI
Sync ROMs/savesSyncthingopt-in
Web serversimple-http-serveropt-in
Samba (file share)smbd + nmbd + wsddopt-in
SSHsshdopt-in (ES toggle)

Four of these are paused automatically while a game runs, so they do not compete with the emulator for CPU: Syncthing, Tailscale, ZeroTier and the simple HTTP server. runemu.sh stops them when the game starts and puts them back when you exit.

connman is built with --disable-wifi --disable-iwd --disable-bluetooth, so it only handles wired connections. Anything about WiFi goes through wifictl and iwctl, never through connmanctl.


Boot timeline

0.0 s    U-Boot start
0.7 s    Initramfs splash + DTB selection
~7 s     Kernel hand-off
~9 s     systemd target
~12 s    archr-autostart (quirks + governor + display)
~17 s    EmulationStation
~19 s    Ready to play

First boot adds ~10 s for the partition resize and creates ROM directories, only on the very first power-on after flashing.


What's tuned for the RK3326

Highlights of the RK3326-specific work (full list in Technical):

  • GPU OPP 650 MHz turbo at 1.150 V (same voltage as 600 MHz, avoided the original BSP 1.175 V which was unstable on some chips)
  • CPU OPP 1512 MHz at 1.400 V with vdd_arm regulator-max bumped to 1.45 V (RK817 DCDC_REG2 spec is 1.5 V max)
  • mali_kbase PM patch, eliminates the regulator/clock unbalance warnings that were causing audio crackle in Mario 64
  • BOOT partition kept at 256 MB FAT32 with 16 KB clusters, which is deliberately below the FAT32 cluster-count minimum, because that is the geometry the RK3326 vendor bootloaders are tested against
  • rq_affinity=2 on microSD I/O queue (irq landing on the issuing core)
  • BFQ scheduler with low_latency=1 and read_ahead_kb=2048

On this page