From bc1331208b92b92e64d509c038c83bf6ad4f59ed Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sun, 27 Jun 2021 13:52:43 +1000 Subject: [PATCH] System: Don't try to preload multi-disc images --- src/core/system.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/core/system.cpp b/src/core/system.cpp index 50380ae94..9d2d94212 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -653,12 +653,22 @@ std::unique_ptr OpenCDImage(const char* path, Common::Error* error, boo if (force_preload || g_settings.cdrom_load_image_to_ram) { - HostInterfaceProgressCallback callback; - std::unique_ptr memory_image = CDImage::CreateMemoryImage(media.get(), &callback); - if (memory_image) - media = std::move(memory_image); + if (media->HasSubImages()) + { + g_host_interface->AddFormattedOSDMessage( + 15.0f, + g_host_interface->TranslateString("OSDMessage", "CD image preloading not available for multi-disc image '%s'"), + FileSystem::GetDisplayNameFromPath(media->GetFileName()).c_str()); + } else - Log_WarningPrintf("Failed to preload image '%s' to RAM", path); + { + HostInterfaceProgressCallback callback; + std::unique_ptr memory_image = CDImage::CreateMemoryImage(media.get(), &callback); + if (memory_image) + media = std::move(memory_image); + else + Log_WarningPrintf("Failed to preload image '%s' to RAM", path); + } } if (check_for_patches)