System/Load: Handle PSP Remaster (#7857)

This just makes RPCS3 execute PSP Remaster games through 
psp_emulator.self
pspemu does not work yet, so the boot will fail, but at the least it 
starts loading
This commit is contained in:
Ani 2020-03-26 17:03:00 +00:00 committed by GitHub
parent 17a9ce6fb9
commit e8177906e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -68,10 +68,12 @@ static u8 NP_RIF_KEY[0x10] = {
0xDA, 0x7D, 0x4B, 0x5E, 0x49, 0x9A, 0x4F, 0x53, 0xB1, 0xC1, 0xA1, 0x4A, 0x74, 0x84, 0x44, 0x3B 0xDA, 0x7D, 0x4B, 0x5E, 0x49, 0x9A, 0x4F, 0x53, 0xB1, 0xC1, 0xA1, 0x4A, 0x74, 0x84, 0x44, 0x3B
}; };
// PSP Minis
static u8 NP_PSP_KEY_1[0x10] = { static u8 NP_PSP_KEY_1[0x10] = {
0x2A, 0x6A, 0xFB, 0xCF, 0x43, 0xD1, 0x57, 0x9F, 0x7D, 0x73, 0x87, 0x41, 0xA1, 0x3B, 0xD4, 0x2E 0x2A, 0x6A, 0xFB, 0xCF, 0x43, 0xD1, 0x57, 0x9F, 0x7D, 0x73, 0x87, 0x41, 0xA1, 0x3B, 0xD4, 0x2E
}; };
// PSP Remasters
static u8 NP_PSP_KEY_2[0x10] = { static u8 NP_PSP_KEY_2[0x10] = {
0x0D, 0xB8, 0x57, 0x32, 0x36, 0x6C, 0xD7, 0x34, 0xFC, 0x87, 0x9E, 0x74, 0x33, 0x43, 0xBB, 0x4F 0x0D, 0xB8, 0x57, 0x32, 0x36, 0x6C, 0xD7, 0x34, 0xFC, 0x87, 0x9E, 0x74, 0x33, 0x43, 0xBB, 0x4F
}; };

View File

@ -1160,6 +1160,17 @@ game_boot_result Emulator::Load(const std::string& title_id, bool add_only, bool
fs::file card_2_file(vfs::get("/dev_hdd0/savedata/vmc/" + argv[2]), fs::write + fs::create); fs::file card_2_file(vfs::get("/dev_hdd0/savedata/vmc/" + argv[2]), fs::write + fs::create);
card_2_file.trunc(128 * 1024); card_2_file.trunc(128 * 1024);
} }
else if (m_cat == "PE" && from_hdd0_game)
{
// PSP Remaster located in dev_hdd0/game
sys_log.notice("PSP Remaster Game: %s, %s", m_title_id, m_title);
const std::string game_path = "/dev_hdd0/game/" + m_path.substr(hdd0_game.size(), 9);
argv.resize(2);
argv[0] = "/dev_flash/pspemu/psp_emulator.self";
argv[1] = game_path;
}
else if (m_cat != "DG" && m_cat != "GD") else if (m_cat != "DG" && m_cat != "GD")
{ {
// Don't need /dev_bdvd // Don't need /dev_bdvd
@ -1298,7 +1309,7 @@ game_boot_result Emulator::Load(const std::string& title_id, bool add_only, bool
// Open SELF or ELF // Open SELF or ELF
std::string elf_path = m_path; std::string elf_path = m_path;
if (m_cat == "1P") if (m_cat == "1P" || m_cat == "PE")
{ {
// Use emulator path // Use emulator path
elf_path = vfs::get(argv[0]); elf_path = vfs::get(argv[0]);