kUI-0.27a
⚠ Clean install required. Format the SD card as FAT32 (MBR) and extract
kUI-0.27a.ziponto an empty card. Do not upgrade in place from 0.09a via the Updater — internal layout, paks, and binary set have all changed.
PakDek — in-house pak manager
Replaces Pak Store. Browses a curated storefront, installs/uninstalls paks, remembers cursor on back-navigation, and ships with Installed category support. Storefront is fetched live from the kUI GitHub repo, not bundled in the SD.
RA PreFetch — offline RetroAchievements pre-downloader (kUI-exclusive)
New Tools pak. Bulk-downloads RA hashes, game data, achievement sets, and badges for your whole library so achievements unlock offline (uses the offline-RA framing introduced upstream in LoveRetro#707). Three modes: By Platform / By Game / Clear Cache. Authenticate in Settings → In-Game → RetroAchievements first. Never overwrites files written by NextUI's existing offline-RA code.
Developer submenu (Settings → Developer)
Ported from nx-redux by mohammadsyuhada. Four items:
- Disable sleep — prevent deep sleep mode (handy for ADB debugging)
- Enable SSH — start/stop the SSH server now
- Start SSH on boot — persist SSH across reboots
- Clean dot files — remove macOS junk (
.DS_Store,._*,.Trashes,*_cache[0-9].db,__MACOSX) — two-press confirm
Power Profile (Settings → System)
UI for the kernel-governor refactor upstream landed in LoveRetro#695:
- Auto —
ondemandgovernor (balanced, default) - Performance — pinned to max clock
- Powersave — capped lower
Persists across reboots via /.userdata/shared/.power_profile.
Updater — extraction fix
Updater previously called unzip from the system PATH, but the device has no system unzip binary — so extraction silently failed with "Extraction failed!" after every download. Now uses the bundled /mnt/SDCARD/.tmp_update/<PLATFORM>/unzip (Info-ZIP 6.00), same path PakDek uses.
The Dude — quest variety + bug fixes
- Quest variety: Dude quests are generated once per Dude session with the mix 2 revisit + 2 marathon + 2 try — stable while you're in the app, fresh every time you reopen Dude.
- Bug fix — history refresh: playtime/XP/recent activity didn't update after returning from a launched game.
read_games()+calculate_xp()are now extracted into arefresh_state()helper and called insideaction_history()before render, plus the deltas (delta_plays/delta_time_min/delta_unique) refresh too so daily-quest progress reflects the new session. - Bug fix — sleep button: the sleep button was dead while inside The Dude. The main loop now calls
PWR_update(&dirty, &show_setting, NULL, NULL)right afterPAD_poll()so sleep + brightness OSD behave the same as everywhere else. - Bug fix — Dude-launched games now tracked: games launched via a Dude quest were never written to
game_logs.sqlitebecauseThe Dude.pak/launch.sheval'd the launch command directly, bypassingnextui.c's normalgametimectl startcall. Result: Dude's own history showed 0 progress for any game played through it, and Game Tracker missed those sessions entirely. The dude-launch command is now wrapped withgametimectl.elf start; ...; gametimectl.elf stopso sessions land in the shared DB and surface in both The Dude and Game Tracker. - Bug fix — Dude-launched games now appear in Recents: same bypass also meant Dude launches were missing from the Recents folder, Game Switcher (MENU+SELECT), and auto-resume. The Dude now updates
recent.txtitself (dedupe + prepend + cap at 24), mirroringnextui.c'saddRecent()for normal launches.
Upstream NextUI commits absorbed
| PR | Title |
|---|---|
| LoveRetro#707 | Offline RetroAchievements support |
| LoveRetro#695 | Replace userspace CPU governor with kernel scaling governors |
| LoveRetro#721 | Refactor: break minarch.c monolith into focused ma_*.c modules |
| LoveRetro#727 | Fix: slowdowns on Auto cpu speed |
| LoveRetro#728 | Fix: defer Rewind_init until after core initialization (crash fix) |
| LoveRetro#729 | Feat: support custom fonts in system settings |
| LoveRetro#733 | Fix: CPU stuck in performance mode on fresh install |
| LoveRetro#749 | Feat: font style configurable (fixes LoveRetro#748) |
| LoveRetro#750 | Fix: properly detect USB-C cards plugged in before booting |
| LoveRetro#751 | Fix: wrong label on game switcher entries w/o save state |