sceFont: use the fonts in NAND, and take them off the disc if we have none

sceFont never looked at flash0:, so a firmware the user installed was
ignored and we always fell back to our bundled substitutes - despite
the "ignoring NAND" warning suggesting otherwise. It reads flash0:/font
now, after the game's own fonts and the classic ms0 override.

And if there's nothing in NAND, we unpack just flash0:/font out of the
firmware updater on the running disc, which most UMDs carry. That turns
"install a firmware first" into something that happens by itself for
anyone playing a retail game.

EmulatedModelGeneration moves from InstallUpdateScreen into PSARUnpack
so both callers pick the same firmware file list.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JvJR8oJNSCimCM9KXVLjfq
This commit is contained in:
Henrik Rydgård
2026-09-04 18:35:07 -06:00
co-authored by Claude Opus 5
parent f929a74780
commit a641305c75
4 changed files with 57 additions and 7 deletions
-7
View File
@@ -36,13 +36,6 @@
#include "UI/MiscViews.h"
#include "UI/EmuScreen.h"
// An updater carries one file list per hardware revision, and anything the chosen model's list
// doesn't name isn't part of its firmware. Unpacking the model we claim to be keeps flash0
// consistent with what the emulator reports to games.
static PSPModelGeneration EmulatedModelGeneration() {
return g_Config.iPSPModel == PSP_MODEL_FAT ? PSPModelGeneration::PSP_1000 : PSPModelGeneration::PSP_2000;
}
InstallUpdateScreen::InstallUpdateScreen(const Path &path, std::string_view title)
: UISimpleBaseDialogScreen(Path(), SimpleDialogFlags::ContentsCanScroll), path_(path), title_(title) {
destination_ = GetSysDirectory(DIRECTORY_NAND);