Skip to content

Pm overhaul - #1655

Merged
Sundownersport merged 15 commits into
Developmentfrom
PM_Overhaul
Sep 11, 2026
Merged

Sundownersport merged 15 commits into
Developmentfrom
PM_Overhaul

Conversation

@Sundownersport

Copy link
Copy Markdown
Member

No description provided.

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
Sundownersport merged commit 4ae2524 into Development Sep 11, 2026
@Sundownersport
Sundownersport deleted the PM_Overhaul branch September 11, 2026 21:09
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.

1 participant