Files
ppsspp/UI
Henrik RydgårdandClaude Opus 5 ad06cbe2c4 Auto-install firmware from the game disc on boot
Most UMDs carry a firmware updater, and having a real firmware in the NAND is
what the LLE modules want. On boot, if the disc's updater is newer than what's
installed - or nothing identifiable is installed, which is what a fonts-only
NAND looks like - unpack it, with a progress bar on the OSD. Controlled by
bAutoUpgradeFirmware, on by default, with a checkbox on the firmware screen.
Off in headless, which shouldn't rewrite the NAND during a test run.

The install itself is now shared with the install screen, and hardened, since
it can run without anyone watching:

- It stages into <NAND>/install-staging and only erases the installed firmware
  once the new one is complete on disk, so a failure leaves what's there alone.
- A single entry that didn't unpack fails the whole install. A firmware with
  holes still looks installed, so nothing would ever replace it.
- A truncated archive is rejected instead of unpacking to half a firmware that
  every stat reports as a clean install. The PSAR header records the length;
  it was being clamped to the buffer rather than checked against it.

Also falls back to the version in the archive's own header when the PARAM.SFO
next to the updater is unreadable, which it is on a fair number of discs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 15:52:53 -06:00
..
2025-11-24 20:33:13 +01:00
2025-08-22 21:21:19 +02:00
2026-08-07 08:49:29 +02:00
2026-08-29 00:05:42 +02:00
2026-05-28 10:56:35 +02:00
2026-06-24 23:04:17 +02:00
2026-06-24 23:04:17 +02:00
2026-06-24 23:04:17 +02:00
2025-03-26 18:57:38 +01:00
2026-01-02 14:20:20 +01:00
2026-02-24 00:56:45 +01:00
2026-02-24 00:56:45 +01:00
2026-07-18 11:57:48 +02:00