Skip to content

Port OnionUI PRs #1936–#1946 (launch prep, fb transitions, GameSwitcher favorites/crash fixes, theme previews) — thanks @robcodedev - #217

Merged
Amiga500 merged 3 commits into
onionplus-compactfrom
copilot/overlap-launch-preparation
Sep 9, 2026
Merged

Amiga500 merged 3 commits into
onionplus-compactfrom
copilot/overlap-launch-preparation

Conversation

Copilot AI commented Sep 9, 2026 •

Copy link
Copy Markdown

Summary

Ports 11 upstream PRs from OnionUI/Onion onto the OnionPlus build, with full bug-check and build verification.

🙏 Credits: all the original work behind these PRs is by @robcodedev — a fantastic optimization and hardening effort on Onion. This PR only ports his changes onto our build, adapting them where the fork diverges (Flip support, advmenu, extended keymon, the fork's existing process_* / file_resolvePath helpers).

Ported PRs

Upstream PR Title Files touched
#1936 keymon: refresh system state before acting on SELECT src/keymon/keymon.c
#1937 Fix JSON error in lt.lang (missing comma) static/build/miyoo/app/lang/lt.lang
#1938 ThemeSwitcher: load theme previews on demand (5-slot LRU cache) + archive stat cache src/themeSwitcher/*, themes_extract_previews.sh
#1939 GameSwitcher: Favorites toggle + crash/game-switching fixes (save-state scan thread safety, targeted RetroArch kill by PID) src/gameSwitcher/* (new gs_favorites.h), src/common/system/lang.h, en.lang
#1940 New fbmode tool + improved framebuffer transitions and screen init src/fbmode/* (new), Makefile, runtime.sh, change_resolution.sh, .force640Res_
#1941 Clear /tmp/.forceKillRetroarch before each launch (atomic consume) runtime.sh
#1942 Keep ROM list positions (romwinidx.json) on the SD card runtime.sh
#1943 Track theme icon reapply per device, not per card runtime.sh
#1944 Cap recents at 200 when toggling hidden games runtime.sh
#1945 Stop repatching retroarch.cfg on every launch runtime.sh
#1946 Overlap launch preparation (background playActivity + killall, joined before emulator handoff) runtime.sh

Adaptations vs upstream

  • gs_overlay.h: kept the fork's native process_killall_signal/process_killall fallback on the no-captured-PID path, with the original waits (10×500 ms)
  • installTheme.h: preserved the *count >= NUMBER_OF_THEMES bound check already present in the fork (extended with log + snprintf)
  • keymon.c: inserted system_state_update() into the fork's extended SELECT handler (AXP/Flip)
  • No behaviour removed: all upstream fbset fallback paths were preserved

Verification

  • ✅ Host test suite: 1,414 tests / 71,400 assertions — ALL PASSED (including test_gs_popmenu, test_lang, test_list, test_process)
  • ✅ Clean cross-compile (miyoomini toolchain) for gameSwitcher, themeSwitcher, keymon, fbmode — the only warning is a pre-existing strncpy one in untouched state.h
  • ✅ sh -n on runtime.sh and change_resolution.sh; valid JSON for lt.lang and en.lang
  • ✅ Code review: no findings; CodeQL: 0 alerts
  • ⚠️ To be validated on real hardware (Mini / Mini+ / Flip): the Improve framebuffer transitions and 640x480 handling OnionUI/Onion#1940 framebuffer (mi_fb) and Overlap launch preparation OnionUI/Onion#1946 launch-timing paths, which the host suite cannot cover

Copilot AI and others added 2 commits September 9, 2026 03:25
…1943 OnionUI#1944 OnionUI#1945 OnionUI#1946 (runtime.sh, keymon, lt.lang)

Co-authored-by: Amiga500 <16525337+Amiga500@users.noreply.github.com>
…and previews, GameSwitcher favorites + crash fixes, fbmode framebuffer transitions

Co-authored-by: Amiga500 <16525337+Amiga500@users.noreply.github.com>
Copilot AI requested a review from Amiga500 September 9, 2026 03:48
@Amiga500 Amiga500 changed the title Port OnionUI PRs #1936–#1946 (launch prep, fb transitions, GameSwitcher favorites/crash fix, theme previews) — grazie @robcodedev Port OnionUI PRs #1936–#1946 (launch prep, fb transitions, GameSwitcher favorites/crash fixes, theme previews) — thanks @robcodedev Sep 9, 2026
@Amiga500
Amiga500 marked this pull request as ready for review September 9, 2026 03:58
@Amiga500
Amiga500 merged commit f87e778 into onionplus-compact Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants