feat(build): a new version's game files linked from a version built from the same .nup #58
No reviewers
Labels
No labels
area/build
area/install
area/saves
area/ui
area/updates
good first issue
gpu/amd
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
platform/linux
platform/steam-deck
platform/windows
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/LongshotLauncher!58
Loading…
Reference in a new issue
No description provided.
Delete branch "madebyjordan/LongshotLauncher:feat/romfs-from"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Every new version, and every update into its own folder, read the player's .nup again: 26 GB written once more, and 26 GB more disk space for each version, for game files the PC already has. This passes the builder the folder of a version already built from the same .nup, so it hard-links the game files from it instead (Longshot MagicBeanDev/Longshot#360,
LONGSHOT_ROMFS_FROM).What changed
Core/BuildRegistry.cs:SameGameFiles(nup, folder)picks another build made from the same .nup: the one updated last whose folder still has its game files, and never the new build's own folder. It returns null when there's none.App/ViewModels/BuildStepViewModel.cs: for a .nup build, the build step passes that folder asBuildRequest.RomfsFrom. No visual change.Core/MakeGameCommand.cs:BuildRequest.RomfsFrombecomesLONGSHOT_ROMFS_FROMfor a .nup build. For any other build it's removed from the environment, so a value set on the PC isn't passed on.tests/launcher_core:SameGameFiles' choice: the newest with game files, another .nup, none on disk, and never its own folder.Compatibility
.longshot_romfs: the .nup's name and size) before it links anything. A wrong or stale folder is passed over, and the .nup is read.Testing
tests/test_launcher_core.pyon Windows (.NET 10.0.404): every check up toSavesCheckspasses, including the new ones inRegistryChecksandCommandChecks(Requirethrows on the first failure). The run can't finish on this PC on launcher main either: main stops atReleaseChecks(the signed release fixtures, checked out with Windows line endings). With the Windows fixes of a separate branch merged for the run, it stops atSavesChecks, which makes a symbolic link, and this Windows user has no right to (no Developer Mode).Rebased on main @
01f2797.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.