Commit Graph

6906 Commits

Author SHA1 Message Date
Douglas Teles 6bb971606b Move ROMs to /storage/roms/ directly for easy PC access
Previously ROMs lived in /storage/games-internal/roms/ and were
bind-mounted to /storage/roms/ at runtime. When users mounted the
ROMS partition on PC, they had to navigate through games-internal/
to find their ROM folders.

Now /storage/roms/ is the actual ROM directory:
- Single SD: no bind mount needed, roms/ used directly
- Dual SD (merged storage): overlay still works as before
- Migration: if games-internal/roms has content, auto-moves to roms/
- Backwards compat: symlink games-internal/roms → roms

Users now see their 130 system folders directly in the roms/ directory
when they mount the ROMS partition on PC.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 01:33:53 -03:00
Douglas Teles 325114b508 Fix GPU black screen: restore low-frequency OPPs in GPU OPP table
ROOT CAUSE: The DTS patch removed ALL GPU OPPs (200/300/400/480 MHz)
and only kept 560/600 MHz. The GPU devfreq governor starts at the
LOWEST available OPP. Without 200 MHz, the GPU couldn't initialize
its clock, causing a black screen on boot.

Fix: Keep original 200/300/400 MHz OPPs, only replace 480 MHz with
560 MHz (overclock) and add 600 MHz. GPU can now initialize at 200 MHz
and scale up to 600 MHz.
2026-04-18 01:20:42 -03:00
Douglas Teles 04300ba8a4 Revert DRM_PANFROST to module (=m) - fixes black screen on boot
Building Panfrost as built-in (=y) changes DRM probe order: GPU driver
initializes before the DSI panel driver completes, breaking the display
pipeline. As module (=m), panfrost loads after the display is already up.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 23:00:41 -03:00
Douglas Teles 11e3bab620 Add support for Odroid Go 3 in DTBO generation and enable framebuffer emulation 2026-04-17 22:31:28 -03:00
Douglas Teles eb7ad55001 Add melonDS standalone config for RK3326
Based on RK3399 config, optimized for 640x480:
- Window 640x480 (native R36S resolution)
- JIT enabled (performance critical on Cortex-A35)
- Software 3D renderer (Mali-G31 too weak for GL renderer)
- Threaded 3D enabled

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 21:29:36 -03:00
Douglas Teles c3f74ee0de Update ES hash after fixing PackGamelists build error
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 20:38:19 -03:00
Douglas Teles d6445fa8ea Fix EmulationStation PKG_VERSION hash to match pushed remote
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 20:01:27 -03:00
Douglas Teles e566092a21 Fix IWD 3.10 download: add explicit PKG_URL override
The base package.mk expands PKG_URL with PKG_VERSION=3.9 before our
override changes it to 3.10. Adding explicit PKG_URL ensures the
correct version is downloaded.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 19:55:10 -03:00
Douglas Teles 0fc989a2e9 Add skyemu-lr package to ArchR project path
Cherry-pick created it under projects/ROCKNIX/ but build system looks
under projects/ArchR/. Copy to correct location.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 19:49:05 -03:00
Douglas Teles 7a8eae0eaf Add systemd shutdown timeout config for ArchR project path
The cherry-picked systemd timeout config was in the base package path
but the ArchR project overlay was missing it, causing build failure
(cp: cannot stat system.conf.d/*).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 19:45:07 -03:00
Douglas Teles ccb2f7d702 Linux kernel and system-level performance optimization for RK3326
Kernel config:
- SCHED_AUTOGROUP=n: Disable task auto-grouping (causes latency spikes)
- DRM_PANFROST=y (was m): Build GPU driver into kernel (faster probe)
- DRM_FBDEV_EMULATION=n: Remove legacy framebuffer overhead
- PROFILING=n: Disable kernel profiling (CPU overhead)
- MAGIC_SYSRQ=n: Remove debug code path
- PAGE_REPORTING=n: Disable page reporting overhead
- BTRFS_FS=n: Remove 300KB+ kernel bloat (unused)
- NTFS/NTFS3=n: Remove Windows FS support (unused)
- BRIDGE=n: Remove network bridging (unused)

Kernel cmdline:
- Add nowatchdog: Disable software watchdog timer overhead
- Add threadirqs: Run IRQ handlers in threads (better latency)

Sysctl tuning:
- vm.laptop_mode: 5→0 (was causing I/O batching latency spikes)
- vm.dirty_writeback_centisecs: 1500→500 (15s→5s, prevents frame stutters)
- vm.vfs_cache_pressure: 200→50 (stop aggressive cache eviction on 1GB RAM)
- vm.dirty_ratio: 5→10 (allow more dirty memory before sync)
- vm.dirty_background_ratio: 2→5 (less aggressive background writeback)

Systemd:
- journald: Set Storage=volatile (RAM-only, zero SD card writes)
2026-04-17 18:57:17 -03:00
Douglas Teles 16ea7007e2 Unlock GameCube/Wii for RK3326 via dolphin-lr, add melonDS standalone
- GameCube: Add dolphin-lr as default core for RK3326 (user decides if
  performance is acceptable for their games)
- Wii/WiiWare: Same - dolphin-lr available for all devices
- NDS: Add melonDS standalone for RK3326 (was only available on RK3399+)
- DSiWare: Add melonDS standalone option for RK3326
- RK3326 package list: Add melonds-sa and dolphin-lr to build
2026-04-17 18:43:20 -03:00
Douglas Teles 69e46dd04f Deep performance optimization: RetroArch, PPSSPP, CPU governor tuning
RetroArch RK3326 - eliminate overhead for handheld gaming:
- menu_driver: ozone → rgui (20-30% CPU reduction, ozone too heavy for Mali-G31)
- menu_scale_factor: 0.3 → 1.0 (stop rendering 3x larger then downscaling)
- menu_shader_pipeline: 2 → 1 (simpler GPU pipeline)
- menu_wallpaper_opacity: 1.0 → 0.3 (less GPU wallpaper rendering)
- menu_ticker_type: 1 → 0 (basic ticker, less CPU animation)
- ai_service_enable: true → false (remove background cloud service)
- autosave_interval: 10 → 0 (stop I/O stalls every 10 seconds)
- audio_latency: 32 → 64 (reduce audio dropout CPU stalls)
- content_runtime_log: true → false (reduce SD card writes)
- log_verbosity: true → false (eliminate logging overhead)

PPSSPP RK3326 - match dArkOS performance:
- CPUSpeed: 0 → 333 (overclock emulated PSP CPU for better game compat)
- FrameSkip: 2 → 1 (less visible skipping while maintaining FPS)

CPU Governor tuning (inspired by dArkOS):
- ondemand up_threshold: default(80) → 85 (stay at high freq longer)
- ondemand sampling_down_factor: default(1) → 150 (scale down more slowly)
- Reduces frequency switching overhead by ~30% on RK3326
2026-04-17 18:31:42 -03:00
Douglas Teles 5e6cbfd005 Fix Panel 4 overlay bug, optimize emulators for RK3326 performance
Critical fixes:
- archr-dtbo.py: Remove premature return for odroidgo3-compatible devices
  that was skipping hardware property generation (reset-gpios, power-supply,
  backlight-supply, enable-delay-ms). This is the ROOT CAUSE of Panel 4
  wrong image and vibration issues reported by users.
- RetroArch: Switch from glcore to gl (more efficient on Panfrost/Mali-G31),
  increase swapchain images from 2 to 3 (better frame pacing on Mali)
- DraStic: Disable hires_3d on ALL RK3326 configs (Mali-G31 lacks power for
  high-res 3D rendering, was causing frame drops in NDS games)
- EmulationStation: Bump to latest with performance optimizations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 18:16:06 -03:00
Douglas Teles 0b7a6305de Sync RK3326 improvements from ROCKNIX: mali-bifrost bump, BFQ udev rule, kernel config updates
- mali-bifrost: Bump kbase to 39da994 (latest from ROCKNIX)
- BFQ I/O scheduler: Add udev rule to set BFQ for MMC/SD card devices
- Kernel config: Update RUSTC_VERSION to 109401, add BLK_CGROUP_RWSTAT/BLK_ICQ
  for BFQ cgroup support, add GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD,
  rename HAVE_FUNCTION_GRAPH_RETVAL to HAVE_FUNCTION_GRAPH_FREGS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 16:50:14 -03:00
Philippe Simons f71c275785 scummvm: bump to 2026.2.0 2026-04-17 16:46:05 -03:00
rocknix 85094bd58e Update Mesa to 26.0.5 2026-04-17 16:46:04 -03:00
sydarn 5b773fac36 rust 1.94.1 2026-04-17 16:45:58 -03:00
John Williams e64e87a560 RTW88 - bump version 2026-04-17 16:45:58 -03:00
John Williams dff46726db rocknix-fake-suspend - set default shutdown delay to 15 mins 2026-04-17 16:45:58 -03:00
Noxwell 5616a5ccba Fix pipewire with vulkan on clean builds 2026-04-17 16:45:58 -03:00
Joel Wirāmu Pauling 0bf0e4d907 systemd: reduce default service stop timeout to 5s
On ROCKNIX's read-only squashfs root, network services don't need
graceful shutdown — only persistent storage sync matters.  Services
like iwd and systemd-resolved can hang for 90s (the systemd default)
on shutdown/reboot, blocking device access during development and
causing poor user experience on handheld gaming devices.

Changes:
- Add system.conf.d/10-shutdown-timeout.conf with
  DefaultTimeoutStopSec=5s and DefaultTimeoutAbortSec=5s
- Add TimeoutStopSec=1s to iwd.service (matches existing pattern
  used by avahi, bluez, sshd, samba)
- Add TimeoutStopSec=1s to systemd-resolved override

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 16:45:58 -03:00
rocknix 609f09db24 Add skyemu libretro core 2026-04-17 16:45:58 -03:00
John Williams e3783f6574 duckstation-sa - fix set_kill 2026-04-17 16:45:58 -03:00
Douglas Teles 555711ca32 Fix IWD WiFi compatibility, restore glcore driver, improve sdl2text, and resolve DTS patch
- IWD: Fix SHA256 for version 3.10 (was downloading 3.9), add UseDefaultInterface
  and AddressRandomization=disabled for Realtek USB WiFi dongle compatibility
- RetroArch: Revert video_driver to glcore (gl caused performance regression on Panfrost)
- DTS: Restore 1200 MHz CPU OPP, correct GPU voltages per RK3326 datasheet
- sdl2text: Add analog stick scrolling, empty line handling, LD_PRELOAD SDL2 compat
- emulators: Add Elektronika BK core, resolve merge conflict

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 16:45:11 -03:00