Arch R v2.0 RC-2
Major update with battery fixes, performance optimizations, R36S Soysauce support improvements, and PortMaster compatibility. Built as official image on 2026-04-02.
Battery
- Fixed battery percentage dropping rapidly to 0%: Backported two upstream kernel patches (from Linux 6.13) for the RK817 charger driver. The coulomb counter calibration was being corrupted by invalid voltage readings during suspend/resume, causing the SOC to plummet. The driver now validates voltage readings (2.7V-4.45V range) before any calibration, cancels the monitoring thread during suspend, and removes the problematic automatic FCC recalibration.
- Battery full charge capacity (
CHARGE_FULL) is now writable from userspace for degraded battery support.
CPU and GPU Frequency
- Restored full CPU frequency table: 408 / 816 / 1008 / 1416 / 1512 MHz. The previous build only had 1008 / 1296 / 1416 / 1512 MHz, which prevented the CPU from entering low-power states and increased battery drain during idle.
- 408 MHz suspend OPP: New lowest frequency point at 950mV for deep sleep, replacing the previous 600 MHz.
- GPU OPP voltage correction: Fixed GPU 600 MHz operating point from 1175mV to 1150mV. The previous value exceeded the
vdd_logicregulator maximum (1150mV) per the RK3326 datasheet. - All voltages verified against the RK3326 datasheet (CPU_VDD: 0.95V-1.35V range).
R36S Soysauce Variant
- Fixed volume buttons: Mapped to correct GPIOs (GPIO3_PC5 for volume down, GPIO3_PC6 for volume up). Previously inherited wrong GPIOs from the original R36S device tree.
- Automatic extlinux switching: Flasher now correctly switches
extlinux.confto the soysauce variant (explicit FDT pointing tork3326-gameconsole-soysauce.dtb).
PortMaster Compatibility
- Python3 lzma module enabled: PortMaster GUI (harbourmaster) requires
import lzma. Previously disabled in the build. - dos2unix added: Required by ~37 PortMaster ports.
- xdelta3 added: Required by ~30+ PortMaster ports for binary delta patching.
- innoextract added: For extracting GOG Inno Setup installers (3 ports).
- squashfs-tools on target:
mksquashfsandunsquashfsnow installed on the device (previously host-only). Required by PortMaster for runtime squashfs mounting. - loop.max_loop=16: Added to kernel cmdline. PortMaster ports can mount multiple squashfs runtimes simultaneously.
- R36S device detection: Added R36S entries to PortMaster control.txt (
param_device=oga,ANALOG_STICKS=2). - /etc/os-release: Added standard
NAMEandIDfields for PortMaster CFW detection.
Emulator Performance Optimizations
Focused on extracting maximum performance from the RK3326 (Cortex-A35 + Mali-G31).
Global (all emulators):
PAN_MESA_DEBUG=forcepackenabled globally for Mali-G31: reduces draw call overhead by packing vertex attributesMESA_NO_ERROR=1enabled globally: skips GL error checking (~5-10% gain)
RetroArch:
- Video driver changed from
glcoretogl(less overhead on GLES2) - Swapchain images reduced from 3 to 2 (less VRAM pressure on 1GB RAM)
- Auto frame delay enabled (reduces input lag)
- Menu driver changed from XMB to Ozone (lighter on GPU)
PPSSPP (PSP):
- Anisotropy disabled (Mali-G31 has no hardware AF)
- High quality depth disabled, bloom hack removed
- Duplicate frame rendering disabled
- Inflight frames reduced from 3 to 2
- Audio latency increased to prevent stuttering
DuckStation (PSX):
- Renderer changed from Software to OpenGL: Major performance improvement, offloads rendering to GPU
- CD read/seek speedup enabled (faster loading)
- Readahead sectors doubled
Flycast (Dreamcast):
- Resolution set to 480p (matches R36S screen)
- Threaded rendering and dynamic recompiler enabled
- Auto frame skip enabled
- Idle skip enabled
Mupen64Plus (N64):
- GLideN64 defaults optimized for performance (legacy blending, inaccurate texcoords, LOD disabled)
- Rice fast texture loading enabled
- Audio buffers tuned to reduce latency while preventing drops
Installation
Download the image for your R36S variant and flash it using Arch R Flasher v1.2.0 or any SD card imaging tool.
- R36S Original:
ArchR-R36S.aarch64-20260402-original.img.gz - R36S Clone:
ArchR-R36S.aarch64-20260402-clone.img.gz - R36S Soysauce: Use the original image and select "Soysauce" in the Flasher. The flasher will configure the correct device tree and panel overlay.
Checksums (SHA-256)
84434e1762886ebbb90332d80ae914a9aa5054901d37b8d875059647f2320b73 ArchR-R36S.aarch64-20260402-original.img.gz
a39b8e0ee8b9f5056abc3e02e8851826dc7c74f9605932424d8a25d3ca1d2b9e ArchR-R36S.aarch64-20260402-clone.img.gz
Report issues at https://github.com/archr-linux/Arch-R/issues