github archr-linux/Arch-R v2.0-rc2
Arch R v2.0 RC-2

5 hours ago

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_logic regulator 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.conf to the soysauce variant (explicit FDT pointing to rk3326-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: mksquashfs and unsquashfs now 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 NAME and ID fields 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=forcepack enabled globally for Mali-G31: reduces draw call overhead by packing vertex attributes
  • MESA_NO_ERROR=1 enabled globally: skips GL error checking (~5-10% gain)

RetroArch:

  • Video driver changed from glcore to gl (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

Don't miss a new Arch-R release

NewReleases is sending notifications on new releases.