POPS: Multi-disc on firmware 6.20 and later, the reset dialog's disc number, and a POPS string category

Every MAC comparison the manager makes passes for a converted EBOOT, rather
than the one in 6.60's disc header check: the export it's in has a
different NID in each firmware. The disc switching text is found in the
emulators of 6.20 to 6.61 (earlier ones have the same descrambling,
compiled differently), so a playlist on an earlier firmware fails with a
message saying so.

The reset dialog's disc number is the disc picker label's, moved by a
table of its own per language, which is now laid out for our text too.

The PS1 strings get a category of their own, POPS, with the experimental
warning moved there. langtool gets add-section, to make the section for a
new category, and inserts into an empty section rather than dropping the
line (which move-key had already removed from the old one).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-10-23 18:05:06 +02:00
1 parent 85e51ba23a
commit 572260101c
55 files changed
+710 -112

No files matched your search

+2 -2
View File
@@ -1026,8 +1026,8 @@ static bool NeedsOtherFiles(const std::string &ext) {
PS1EbootFileLoader::PS1EbootFileLoader(const Path &path) : path_(path) {
const std::string ext = path.GetFileExtension();
if (path.Type() == PathType::CONTENT_URI && NeedsOtherFiles(ext) && !AndroidContentURI(path.ToString()).IsTreeURI()) {
auto er = GetI18NCategory(I18NCat::ERRORS);
error_ = er->T("PS1NeedsFolderAccess", "This game is made of several files, and PPSSPP was only given access to one of them. Add the folder it's in with Browse... on the Games tab, and start it from there.");
auto po = GetI18NCategory(I18NCat::POPS);
error_ = po->T("PS1NeedsFolderAccess", "This game is made of several files, and PPSSPP was only given access to one of them. Add the folder it's in with Browse... on the Games tab, and start it from there.");
return;
}