From 0c2ab8225230f3e8bb1b864b3cc48768cc4961cc Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 11 Oct 2024 16:54:46 +1000 Subject: [PATCH] System: Fix no-disc startup in later versions --- src/core/bios.cpp | 8 ++++++-- src/core/cdrom.cpp | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/core/bios.cpp b/src/core/bios.cpp index bb572df3a..767b5f53d 100644 --- a/src/core/bios.cpp +++ b/src/core/bios.cpp @@ -63,8 +63,8 @@ static constexpr const ImageInfo s_image_info_by_hash[] = { {"SCPH-7001, 7501, 7503, 9001, 9003, 9903 (v4.1 12-16-97 A)", ConsoleRegion::NTSC_U, false, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("1e68c231d0896b7eadcad1d7d8e76129")}, {"SCPH-7002, 7502, 9002 (v4.1 12-16-97 E)", ConsoleRegion::PAL, false, ImageInfo::FastBootPatch::Type1, 20, MakeHashFromString("b9d9a0286c33dc6b7237bb13cd46fdee")}, {"SCPH-100 (v4.3 03-11-00 J)", ConsoleRegion::NTSC_J, true, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("8abc1b549a4a80954addc48ef02c4521")}, - {"SCPH-101 (v4.4 03-24-00 A)", ConsoleRegion::NTSC_U, true, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("9a09ab7e49b422c007e6d54d7c49b965")}, - {"SCPH-101 (v4.5 05-25-00 A)", ConsoleRegion::NTSC_U, true, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("6e3735ff4c7dc899ee98981385f6f3d0")}, + {"SCPH-101 (v4.4 03-24-00 A)", ConsoleRegion::NTSC_U, false, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("9a09ab7e49b422c007e6d54d7c49b965")}, + {"SCPH-101 (v4.5 05-25-00 A)", ConsoleRegion::NTSC_U, false, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("6e3735ff4c7dc899ee98981385f6f3d0")}, {"SCPH-102 (v4.4 03-24-00 E)", ConsoleRegion::PAL, true, ImageInfo::FastBootPatch::Type1, 20, MakeHashFromString("b10f5e0e3d9eb60e5159690680b1e774")}, {"SCPH-102 (v4.5 05-25-00 E)", ConsoleRegion::PAL, true, ImageInfo::FastBootPatch::Type1, 20, MakeHashFromString("de93caec13d1a141a40a79f5c86168d6")}, {"SCPH-1000R (v4.5 05-25-00 J)", ConsoleRegion::NTSC_J, true, ImageInfo::FastBootPatch::Type1, 10, MakeHashFromString("476d68a94ccec3b9c8303bbd1daf2810")}, @@ -166,6 +166,10 @@ bool BIOS::ImageInfo::CanSlowBootDisc(DiscRegion disc_region) const if (!region_check) return true; + // Boot to BIOS for non-PS1 discs, e.g. audio. + if (disc_region == DiscRegion::NonPS1) + return true; + switch (region) { case ConsoleRegion::NTSC_J: diff --git a/src/core/cdrom.cpp b/src/core/cdrom.cpp index e1e3c88a3..87cadb27e 100644 --- a/src/core/cdrom.cpp +++ b/src/core/cdrom.cpp @@ -389,7 +389,7 @@ struct CDROMState Command command = Command::None; Command command_second_response = Command::None; DriveState drive_state = DriveState::Idle; - DiscRegion disc_region = DiscRegion::Other; + DiscRegion disc_region = DiscRegion::NonPS1; StatusRegister status = {}; @@ -524,6 +524,8 @@ static std::array s_command_info = {{ void CDROM::Initialize() { + s_state.disc_region = DiscRegion::NonPS1; + if (g_settings.cdrom_readahead_sectors > 0) s_reader.StartThread(g_settings.cdrom_readahead_sectors);