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 commandVersions 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 fallbackNot 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.dtboThe ArchR Flasher can copy the file for you while it writes the card, or afterwards from its Overlay tab.
Network features
| Feature | Service | Default |
|---|---|---|
| WiFi | iwd (wifictl, iwctl) | auto-on if config present |
| Wired / USB Ethernet | connman | auto |
| Bluetooth audio + gamepad | bluez | enabled |
| Local play | RetroArch netplay | UDP discovery |
| Remote play | Tailscale / ZeroTier / WireGuard | opt-in via UI |
| Sync ROMs/saves | Syncthing | opt-in |
| Web server | simple-http-server | opt-in |
| Samba (file share) | smbd + nmbd + wsdd | opt-in |
| SSH | sshd | opt-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 playFirst 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_armregulator-max bumped to 1.45 V (RK817 DCDC_REG2 spec is 1.5 V max) mali_kbasePM 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=2on microSD I/O queue (irq landing on the issuing core)- BFQ scheduler with
low_latency=1andread_ahead_kb=2048