Repository navigation
Pm overhaul - #1655
Merged
Merged
Pm overhaul#1655
Conversation
PortMaster launchers compute GAMEDIR=/$directory/ports/<game>, with $directory the ports drive. Naming the folder PORTS forced spruce to bind Roms/PORTS onto Roms/PORTS/ports on five devices, plus a dynamic one for the Flip's second card, and the Flip's card (vfat, iocharset=utf8) is case-sensitive so 'ports' could never simply mean 'PORTS' there. The folder is Roms/ports now and control.txt points $directory at Roms/. All binds are gone, including the A30's and the Nursery's; A30 scripts address A30PORTS directly (rewritten on migration and on download). Migration runs once, on the first boot after an install or update: the shipped flag spruce/flags/ports_PORTS_migration travels in every release and OTA package like the first-boot locks. It renames PORTS through a temporary name (works on case-insensitive and case-sensitive mounts), merges a lowercase folder an OTA or PC extract left beside it, rewrites persisted paths, then deletes the flag. Idempotent; no cost on other boots. Untested on hardware.
control.txt, PortMaster.txt and the new mod_spruce.txt now hold only what spruce IS - where PortMaster lives, the ports folder, the bundled Python - and each ends by sourcing a hook on the card under spruce/portmaster/. Every device-specific thing (which SDL2 pugwash loads per device, library paths, pad maps, the Anbernic two-SDL2 juggling from mod_BaseOS.txt) moved into those hooks, where it can change without touching PortMaster. launch.sh stages the three files as before, but uniformly: mod_spruce.txt lands as mod_<CFW_NAME>.txt for whatever device_info.txt calls the firmware (Miyoo, TrimUI, Base OS, Unknown), replacing the per-device mod_BaseOS / mod_RGB30 / appended-pm_message handling. When a bundle ships PortMaster/spruce/control.txt - the upstream PR - staging switches off and PortMaster's own PortMaster.sh is used. Untested on hardware.
The chroot's SDCARD/ dir never existed, so the mount always failed. Nothing runs inside the chroot; it is only a lib32 source.
A self-update leaves spruce/ behind, so the folder proved nothing.
Also make the GUI hook source helperFunctions when its function is missing.
Sundownersport
requested review from
chrisj951 and
ryanmsartor
as code owners
September 9, 2026 23:43
# Conflicts: # spruce/scripts/emu/lib/ports_functions.sh
PR #337 merged upstream, so the bundle now ships PlatformSpruce, the spruce-first device_info and config.py's real paths. launch.sh's merged test fires on it: no staging, PortMaster.sh comes from spruce/.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.