Jump to content
LaunchBox Community Forums

Recommended Posts

Posted

What it is: 
A single PowerShell script that lets you temporarily "park" platforms -
cleanly removing them from your library so LaunchBox/BigBox doesn't parse them at startup -
and restore them later, byte-for-byte, whenever you want. No third-party software, no
installer, nothing modified except your Data XMLs (which are backed up on every run).

Why: 
LaunchBox parses every XML file in `Data\Platforms` at startup, so startup time
scales with library size. On my ~1,500,000-game / 47.4 GB library, BigBox took ~11 minutes
to reach the wheel. After parking the platforms I rarely browse (media pseudo-platforms,
obscure systems), the same install starts in about 80 seconds - and everything comes
back with one command when I want it.

Why not just delete/hide platforms in LaunchBox?
Deleting throws away your metadata and can cascade (removing category links, playlist placements).
Parking sidesteps all of that: LaunchBox never sees an inconsistent state, so it never prunes anything,
and unparking restores the exact original data.

How it works

For each parked platform the script saves a manifest in `<LaunchBox>\_parking\`
containing:

- its `<Platform>` node from `Platforms.xml`
- all its category links from `Parents.xml`
- all its emulator mappings from `Emulators.xml`

…then moves its games XML from `Data\Platforms\` into `_parking\` and removes those entries
from the live files. **Nothing is ever deleted** - your games, media, and images are not
touched at all (they're just not loaded). Unparking re-injects everything and moves the
games file back under its original name.

Safety features

- Refuses to run while LaunchBox or BigBox is open.
- Backs up `Platforms.xml`, `Parents.xml`, `Emulators.xml` and `ListCache.xml` to
  `_parking\backups\<timestamp>` before every operation.
- Saves after each platform, so an error mid-run can't leave you half-done.
- Finds games files by content when the filename doesn't match the platform name
  (LaunchBox sometimes shortens names when creating games files — e.g. a platform called
  "MS-DOS Magazines & Newsletters" can live in `MS-DOS Magazines.xml`).
- Deletes `ListCache.xml` after changes so the sidebar rebuilds with correct counts
  (skippable with `-KeepListCache`).
- Writes a log of everything it does to `_parking\parker.log`.

Usage

1. Save `LB-Platform-Parker.ps1` anywhere.
2. Close LaunchBox / BigBox completely.
3. Right-click the file → *Run with PowerShell* (or from a terminal:
   `powershell -ExecutionPolicy Bypass -File .\LB-Platform-Parker.ps1`).
4. First run: point it at your LaunchBox folder (it remembers it afterwards).
5. Use the menu:
   1) Park platforms      (remove from library, keep safe)
   2) Unpark platforms    (restore)
   3) Unpark ALL
   4) Status
   Q) Quit

The park list shows each platform's games-XML size - that's its share of your startup
time, so park the big ones you don't browse. Selection accepts numbers and ranges
(`1,4,7-12`), `all`, or type text to filter the list first.

Command-line use also works if you want to script it (e.g. park before a session, unpark
for a showcase):

(powershell)
.\LB-Platform-Parker.ps1 -Action park -Platforms 'Platform A','Platform B'
.\LB-Platform-Parker.ps1 -Action unpark-all
.\LB-Platform-Parker.ps1 -Action status

Requirements & notes

- Windows PowerShell 5.1 (built into Windows 10/11) or PowerShell 7. No modules needed.
- Always run it with LaunchBox/BigBox closed (it checks and refuses otherwise).
- Parked platforms won't appear anywhere in LaunchBox - that's the point. Your images,
  videos, manuals and game files stay exactly where they are.
- If you use cloud sync / multiple machines pointed at one install, park/unpark on one
  machine at a time.
- Tested on LaunchBox 13.x. Standard disclaimer: it backs up everything it touches, but
  you're responsible for your library - keep your normal backups too.

Restore path if anything ever looks wrong: copy the three XMLs back from the newest
`_parking\backups\<timestamp>` folder, and move any `_parking\*.games.xml` files back into
`Data\Platforms` (renaming `<name>.games.xml` → `<name>.xml`). That's the entire failure
surface.

The zip file includes these instructions (best read using Notepad++) and the powershell file.

If you find bugs, let me know and I'll fix them.

Enjoy the fast boots. Feedback welcome!

Platform-Parker.zip

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...