mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-12 00:59:41 +01:00
UMD Video: Boot the XMB for a video disc however it's started
The game list already did, but booting a video disc any other way (the command line, a file association, dropping it on a running game, headless) tried it as a game and failed. The loader now swaps in vshmain.prx with the disc mounted and auto-start on whenever it identifies a UMD Video disc and the installed firmware can play it. GetUmdVideoVSHPath() moves from the UI to Core/Util/PSARUnpack. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5bd94f9fa3
commit
a1ade54aac
6 files changed
+31
-14
No files matched your search
@@ -823,6 +823,23 @@ bool PSP_InitStart(const CoreParameter &coreParam) {
|
||||
IdentifiedFileType fileType;
|
||||
FileLoader *loadedFile = ResolveFileLoaderTarget(ConstructFileLoader(filename), &fileType, errorString);
|
||||
|
||||
// UMD Video only plays in the XMB, so however it was asked for, boot that with the disc in
|
||||
// the drive and auto-start on. Without a firmware that can, CPU_Init says what's needed.
|
||||
if (fileType == IdentifiedFileType::PSP_UMD_VIDEO_ISO) {
|
||||
const Path vshmain = GetUmdVideoVSHPath();
|
||||
if (!vshmain.empty()) {
|
||||
INFO_LOG(Log::Loader, "UMD Video: booting the XMB (%s) to play %s", vshmain.c_str(), filename.c_str());
|
||||
delete loadedFile;
|
||||
g_CoreParameter.mountIso = filename;
|
||||
g_CoreParameter.fileToStart = vshmain;
|
||||
if (!g_CoreParameter.umdAutoboot) {
|
||||
g_CoreParameter.umdAutoboot = true;
|
||||
}
|
||||
filename = vshmain;
|
||||
loadedFile = ResolveFileLoaderTarget(ConstructFileLoader(filename), &fileType, errorString);
|
||||
}
|
||||
}
|
||||
|
||||
if (System_GetPropertyBool(SYSPROP_ENOUGH_RAM_FOR_FULL_ISO)) {
|
||||
if (g_Config.bCacheFullIsoInRam) {
|
||||
switch (fileType) {
|
||||
|
||||
Reference in new issue
Block a user