mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-03 04:52:14 +01:00
POPS: Multi-disc on every firmware from 5.01, by leaving the descrambling to the emulator
With the converted header's key of zeros, the emulator's descrambling of its disc switching strings only reverses them, so ours go in backwards and its code is left alone. The tables are found by the code that indexes them, which is the same from 3.95 on with only the registers differing. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
966aab50ec
commit
31fd8e8a1c
4 files changed
+23
-46
No files matched your search
@@ -1108,8 +1108,8 @@ void PS1EbootFileLoader::BuildHeaders() {
|
||||
if (multiDisc) {
|
||||
// The fields the emulator reads (pops +1B2F0 in 6.60): the disc offsets, the first disc's ID, and the
|
||||
// title. The end of the last disc and its +0x2D31 are where a STARTDAT would follow, as in a PSISOIMG.
|
||||
// The MACs a store game's header has, and the key its disc switching strings are descrambled with,
|
||||
// stay zero: PopsBoot sees to both.
|
||||
// The MACs a store game's header has stay zero (PopsBoot passes them), and so does the key its disc
|
||||
// switching strings are descrambled with, which then only reverses PopsBoot's strings.
|
||||
u8 *title = pbp + psarOffset_;
|
||||
memcpy(title, "PSTITLEIMG000000", 16);
|
||||
*(u32_le *)(title + 0x10) = (u32)end;
|
||||
|
||||
Reference in new issue
Block a user