mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Fix detection of BD-R when profile is set wrong by drive.
This commit is contained in:
@@ -271,8 +271,8 @@ public static class MMC
|
|||||||
Features.SeparatedFeatures ftr = Features.Separate(cmdBuf);
|
Features.SeparatedFeatures ftr = Features.Separate(cmdBuf);
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.GET_CONFIGURATION_current_profile_is_0,
|
Localization.Core.GET_CONFIGURATION_current_profile_is_0,
|
||||||
ftr.CurrentProfile);
|
ftr.CurrentProfile);
|
||||||
|
|
||||||
mediaType = ftr.CurrentProfile switch
|
mediaType = ftr.CurrentProfile switch
|
||||||
{
|
{
|
||||||
@@ -394,15 +394,15 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
case true when hasAudioTrack && allFirstSessionTracksAreAudio && sessions == 2:
|
case true when hasAudioTrack && allFirstSessionTracksAreAudio && sessions == 2:
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core
|
Localization.Core
|
||||||
.Disc_has_audio_and_data_two_sessions_all_data_second_CD_Plus);
|
.Disc_has_audio_and_data_two_sessions_all_data_second_CD_Plus);
|
||||||
|
|
||||||
mediaType = MediaType.CDPLUS;
|
mediaType = MediaType.CDPLUS;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case false when hasAudioTrack && sessions == 1:
|
case false when hasAudioTrack && sessions == 1:
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.Disc_has_only_audio_in_a_session_CD_Digital_Audio);
|
Localization.Core.Disc_has_only_audio_in_a_session_CD_Digital_Audio);
|
||||||
|
|
||||||
mediaType = MediaType.CDDA;
|
mediaType = MediaType.CDDA;
|
||||||
|
|
||||||
@@ -689,8 +689,7 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
mediaType = MediaType.CDIREADY;
|
mediaType = MediaType.CDIREADY;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Disc_has_hidden_CD_i_pregap_CD_i_Ready);
|
||||||
Localization.Core.Disc_has_hidden_CD_i_pregap_CD_i_Ready);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -782,7 +781,7 @@ public static class MMC
|
|||||||
mediaType = MediaType.CDIREADY;
|
mediaType = MediaType.CDIREADY;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.Disc_has_hidden_CD_i_pregap_CD_i_Ready);
|
Localization.Core.Disc_has_hidden_CD_i_pregap_CD_i_Ready);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1497,7 +1496,7 @@ public static class MMC
|
|||||||
if(DMI.IsXbox(cmdBuf))
|
if(DMI.IsXbox(cmdBuf))
|
||||||
{
|
{
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
"Found Xbox DMI, setting disc type to Xbox Game Disc (XGD).");
|
"Found Xbox DMI, setting disc type to Xbox Game Disc (XGD).");
|
||||||
|
|
||||||
mediaType = MediaType.XGD;
|
mediaType = MediaType.XGD;
|
||||||
|
|
||||||
@@ -1510,7 +1509,7 @@ public static class MMC
|
|||||||
if(blocks is 25063 or 4229664 or 4246304) // Wxripper unlock
|
if(blocks is 25063 or 4229664 or 4246304) // Wxripper unlock
|
||||||
{
|
{
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
"Found Xbox 360 DMI with {0} blocks, setting disc type to Xbox 360 Game Disc 3 (XGD3).");
|
"Found Xbox 360 DMI with {0} blocks, setting disc type to Xbox 360 Game Disc 3 (XGD3).");
|
||||||
|
|
||||||
mediaType = MediaType.XGD3;
|
mediaType = MediaType.XGD3;
|
||||||
|
|
||||||
@@ -1518,7 +1517,7 @@ public static class MMC
|
|||||||
}
|
}
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
"Found Xbox 360 DMI with {0} blocks, setting disc type to Xbox 360 Game Disc 2 (XGD2).");
|
"Found Xbox 360 DMI with {0} blocks, setting disc type to Xbox 360 Game Disc 2 (XGD2).");
|
||||||
|
|
||||||
mediaType = MediaType.XGD2;
|
mediaType = MediaType.XGD2;
|
||||||
|
|
||||||
@@ -1760,8 +1759,7 @@ public static class MMC
|
|||||||
case "PHOTO_CD":
|
case "PHOTO_CD":
|
||||||
mediaType = MediaType.PCD;
|
mediaType = MediaType.PCD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Photo_CD_description_file);
|
||||||
Localization.Core.Found_Photo_CD_description_file);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1847,15 +1845,14 @@ public static class MMC
|
|||||||
string ps2BootSectorsHash = Sha256Context.Data(ps2BootSectors, out _);
|
string ps2BootSectorsHash = Sha256Context.Data(ps2BootSectors, out _);
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.PlayStation_2_boot_sectors_SHA256_0,
|
Localization.Core.PlayStation_2_boot_sectors_SHA256_0,
|
||||||
ps2BootSectorsHash);
|
ps2BootSectorsHash);
|
||||||
|
|
||||||
if(ps2BootSectorsHash is PS2_PAL_HASH or PS2_NTSC_HASH or PS2_JAPANESE_HASH)
|
if(ps2BootSectorsHash is PS2_PAL_HASH or PS2_NTSC_HASH or PS2_JAPANESE_HASH)
|
||||||
{
|
{
|
||||||
mediaType = MediaType.PS2CD;
|
mediaType = MediaType.PS2CD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Sony_PlayStation_2_boot_sectors);
|
||||||
Localization.Core.Found_Sony_PlayStation_2_boot_sectors);
|
|
||||||
|
|
||||||
goto hasPs2CdBoot;
|
goto hasPs2CdBoot;
|
||||||
}
|
}
|
||||||
@@ -1960,8 +1957,7 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
mediaType = MediaType.MilCD;
|
mediaType = MediaType.MilCD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Sega_Dreamcast_IP_BIN_on_second_session);
|
||||||
Localization.Core.Found_Sega_Dreamcast_IP_BIN_on_second_session);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2021,8 +2017,7 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
mediaType = MediaType.CDEG;
|
mediaType = MediaType.CDEG;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_enhanced_graphics_RW_packet);
|
||||||
Localization.Core.Found_enhanced_graphics_RW_packet);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2382,8 +2377,7 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
mediaType = MediaType.NeoGeoCD;
|
mediaType = MediaType.NeoGeoCD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_correct_IPL_TXT_file_in_root);
|
||||||
Localization.Core.Found_correct_IPL_TXT_file_in_root);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2484,22 +2478,20 @@ public static class MMC
|
|||||||
case "VIDEO_CD":
|
case "VIDEO_CD":
|
||||||
mediaType = MediaType.VCD;
|
mediaType = MediaType.VCD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Video_CD_description_file);
|
||||||
Localization.Core.Found_Video_CD_description_file);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
case "SUPERVCD":
|
case "SUPERVCD":
|
||||||
mediaType = MediaType.SVCD;
|
mediaType = MediaType.SVCD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Super_Video_CD_description_file);
|
||||||
Localization.Core.Found_Super_Video_CD_description_file);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "HQ-VCD":
|
case "HQ-VCD":
|
||||||
mediaType = MediaType.CVD;
|
mediaType = MediaType.CVD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.Found_China_Video_Disc_description_file);
|
Localization.Core.Found_China_Video_Disc_description_file);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2600,8 +2592,7 @@ public static class MMC
|
|||||||
case "PHOTO_CD":
|
case "PHOTO_CD":
|
||||||
mediaType = MediaType.PCD;
|
mediaType = MediaType.PCD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Photo_CD_description_file);
|
||||||
Localization.Core.Found_Photo_CD_description_file);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2697,16 +2688,14 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
mediaType = MediaType.PS1CD;
|
mediaType = MediaType.PS1CD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_correct_SYSTEM_CNF_file_in_root_PS1);
|
||||||
Localization.Core.Found_correct_SYSTEM_CNF_file_in_root_PS1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ps2BootFile != null && rootEntries.Contains(ps2BootFile.ToUpperInvariant()))
|
if(ps2BootFile != null && rootEntries.Contains(ps2BootFile.ToUpperInvariant()))
|
||||||
{
|
{
|
||||||
mediaType = MediaType.PS2CD;
|
mediaType = MediaType.PS2CD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_correct_SYSTEM_CNF_file_in_root_PS2);
|
||||||
Localization.Core.Found_correct_SYSTEM_CNF_file_in_root_PS2);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2733,13 +2722,12 @@ public static class MMC
|
|||||||
string ps2BootSectorsHash = Sha256Context.Data(ps2BootSectors, out _);
|
string ps2BootSectorsHash = Sha256Context.Data(ps2BootSectors, out _);
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.PlayStation_2_boot_sectors_SHA256_0,
|
Localization.Core.PlayStation_2_boot_sectors_SHA256_0,
|
||||||
ps2BootSectorsHash);
|
ps2BootSectorsHash);
|
||||||
|
|
||||||
if(ps2BootSectorsHash is PS2_PAL_HASH or PS2_NTSC_HASH or PS2_JAPANESE_HASH)
|
if(ps2BootSectorsHash is PS2_PAL_HASH or PS2_NTSC_HASH or PS2_JAPANESE_HASH)
|
||||||
{
|
{
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Sony_PlayStation_2_boot_sectors_DVD);
|
||||||
Localization.Core.Found_Sony_PlayStation_2_boot_sectors_DVD);
|
|
||||||
|
|
||||||
mediaType = MediaType.PS2DVD;
|
mediaType = MediaType.PS2DVD;
|
||||||
}
|
}
|
||||||
@@ -2755,15 +2743,14 @@ public static class MMC
|
|||||||
switch(mediaType)
|
switch(mediaType)
|
||||||
{
|
{
|
||||||
case MediaType.BDROM:
|
case MediaType.BDROM:
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Sony_PlayStation_3_boot_sectors);
|
||||||
Localization.Core.Found_Sony_PlayStation_3_boot_sectors);
|
|
||||||
|
|
||||||
mediaType = MediaType.PS3BD;
|
mediaType = MediaType.PS3BD;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case MediaType.DVDROM:
|
case MediaType.DVDROM:
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.Found_Sony_PlayStation_3_boot_sectors_DVD);
|
Localization.Core.Found_Sony_PlayStation_3_boot_sectors_DVD);
|
||||||
|
|
||||||
mediaType = MediaType.PS3DVD;
|
mediaType = MediaType.PS3DVD;
|
||||||
|
|
||||||
@@ -2778,8 +2765,7 @@ public static class MMC
|
|||||||
{
|
{
|
||||||
mediaType = MediaType.PS4BD;
|
mediaType = MediaType.PS4BD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Found_Sony_PlayStation_4_boot_sectors);
|
||||||
Localization.Core.Found_Sony_PlayStation_4_boot_sectors);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2789,9 +2775,14 @@ public static class MMC
|
|||||||
|
|
||||||
switch(blurayType)
|
switch(blurayType)
|
||||||
{
|
{
|
||||||
|
case "BDR":
|
||||||
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Blu_ray_type_BDR_setting_disc_type_BDR);
|
||||||
|
|
||||||
|
mediaType = MediaType.BDR;
|
||||||
|
|
||||||
|
break;
|
||||||
case "XG4":
|
case "XG4":
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Blu_ray_type_XG4_setting_disc_type_XGD4);
|
||||||
Localization.Core.Blu_ray_type_XG4_setting_disc_type_XGD4);
|
|
||||||
|
|
||||||
mediaType = MediaType.XGD4;
|
mediaType = MediaType.XGD4;
|
||||||
|
|
||||||
@@ -2809,14 +2800,13 @@ public static class MMC
|
|||||||
mediaType = MediaType.PS5BD;
|
mediaType = MediaType.PS5BD;
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME,
|
||||||
Localization.Core.Found_Sony_PlayStation_5_boot_sectors);
|
Localization.Core.Found_Sony_PlayStation_5_boot_sectors);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AaruLogging.Debug(MODULE_NAME,
|
AaruLogging.Debug(MODULE_NAME, Localization.Core.Blu_ray_type_BDU_setting_disc_type_UHD);
|
||||||
Localization.Core.Blu_ray_type_BDU_setting_disc_type_UHD);
|
|
||||||
|
|
||||||
mediaType = MediaType.UHDBD;
|
mediaType = MediaType.UHDBD;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user