diff --git a/CHANGELIST.md b/CHANGELIST.md index 6792bda1..77fdcb0f 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -21,6 +21,7 @@ - Update to DIC version 20210202 - Add VCD detection - Fix UI not updating properly on drive change +- Add Xbox Series and PS5 to supported systems ### 1.18 (2020-11-10) - Add more information extraction and generation for Aaru diff --git a/MPF.Library/Aaru/Parameters.cs b/MPF.Library/Aaru/Parameters.cs index 03f6219e..d30ad6ea 100644 --- a/MPF.Library/Aaru/Parameters.cs +++ b/MPF.Library/Aaru/Parameters.cs @@ -1689,6 +1689,10 @@ namespace MPF.Aaru case KnownSystem.SonyPlayStation4: info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? ""; break; + + case KnownSystem.SonyPlayStation5: + info.VersionAndEditions.Version = GetPlayStation5Version(drive?.Letter) ?? ""; + break; } // Fill in any artifacts that exist, Base64-encoded diff --git a/MPF.Library/DD/Parameters.cs b/MPF.Library/DD/Parameters.cs index 654e3e1e..d85ed201 100644 --- a/MPF.Library/DD/Parameters.cs +++ b/MPF.Library/DD/Parameters.cs @@ -456,6 +456,10 @@ namespace MPF.DD case KnownSystem.SonyPlayStation4: info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? ""; break; + + case KnownSystem.SonyPlayStation5: + info.VersionAndEditions.Version = GetPlayStation5Version(drive?.Letter) ?? ""; + break; } } diff --git a/MPF.Library/Data/BaseParameters.cs b/MPF.Library/Data/BaseParameters.cs index 467bdef3..9ee2428c 100644 --- a/MPF.Library/Data/BaseParameters.cs +++ b/MPF.Library/Data/BaseParameters.cs @@ -717,6 +717,17 @@ namespace MPF.Data } } + /// + /// Get the version from a PlayStation 5 disc, if possible + /// + /// Drive letter to use to check + /// Game version if possible, null on error + protected static string GetPlayStation5Version(char? driveLetter) + { + // TODO: Implement PS5 version finding + return null; + } + #endregion #region Category Extraction diff --git a/MPF.Library/Data/Enumerations.cs b/MPF.Library/Data/Enumerations.cs index 4d731c04..9423c8a9 100644 --- a/MPF.Library/Data/Enumerations.cs +++ b/MPF.Library/Data/Enumerations.cs @@ -505,4 +505,7 @@ namespace MPF.Data PowerStateSettable = 5, PowerCyclingSupported = 6, TimedPowerOnSupported = 7, - \ No newline at end of file + } + + #endregion +} diff --git a/MPF.Library/DiscImageCreator/Parameters.cs b/MPF.Library/DiscImageCreator/Parameters.cs index f4574df3..898b565c 100644 --- a/MPF.Library/DiscImageCreator/Parameters.cs +++ b/MPF.Library/DiscImageCreator/Parameters.cs @@ -2221,6 +2221,10 @@ namespace MPF.DiscImageCreator case KnownSystem.SonyPlayStation4: info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? ""; break; + + case KnownSystem.SonyPlayStation5: + info.VersionAndEditions.Version = GetPlayStation5Version(drive?.Letter) ?? ""; + break; } // Fill in any artifacts that exist, Base64-encoded diff --git a/MPF.Library/Utilities/Converters.cs b/MPF.Library/Utilities/Converters.cs index 4b931059..065f7b84 100644 --- a/MPF.Library/Utilities/Converters.cs +++ b/MPF.Library/Utilities/Converters.cs @@ -186,6 +186,8 @@ namespace MPF.Utilities return KnownSystem.SonyPlayStation3; case RedumpSystem.SonyPlayStation4: return KnownSystem.SonyPlayStation4; + case RedumpSystem.SonyPlayStation5: + return KnownSystem.SonyPlayStation5; case RedumpSystem.SonyPlayStationPortable: return KnownSystem.SonyPlayStationPortable; case RedumpSystem.TABAustriaQuizard: @@ -431,6 +433,8 @@ namespace MPF.Utilities return RedumpSystem.SonyPlayStation3; case KnownSystem.SonyPlayStation4: return RedumpSystem.SonyPlayStation4; + case KnownSystem.SonyPlayStation5: + return RedumpSystem.SonyPlayStation5; case KnownSystem.SonyPlayStationPortable: return RedumpSystem.SonyPlayStationPortable; case KnownSystem.TABAustriaQuizard: @@ -574,6 +578,8 @@ namespace MPF.Utilities return "Sony PlayStation 3"; case KnownSystem.SonyPlayStation4: return "Sony PlayStation 4"; + case KnownSystem.SonyPlayStation5: + return "Sony PlayStation 5"; case KnownSystem.SonyPlayStationPortable: return "Sony PlayStation Portable"; case KnownSystem.TandyMemorexVisualInformationSystem: @@ -982,6 +988,8 @@ namespace MPF.Utilities return "ps3"; case KnownSystem.SonyPlayStation4: return "ps4"; + case KnownSystem.SonyPlayStation5: + return "ps5"; case KnownSystem.SonyPlayStationPortable: return "psp"; case KnownSystem.TandyMemorexVisualInformationSystem: @@ -1585,6 +1593,14 @@ namespace MPF.Utilities case "sonyplaystation4": case "sony playstation 4": return KnownSystem.SonyPlayStation4; + case "ps5": + case "playstation5": + case "playstation 5": + case "sonyps5": + case "sony ps5": + case "sonyplaystation5": + case "sony playstation 5": + return KnownSystem.SonyPlayStation5; case "psp": case "playstationportable": case "playstation portable": diff --git a/MPF.Library/Utilities/Validators.cs b/MPF.Library/Utilities/Validators.cs index 1b73d508..0f7d2700 100644 --- a/MPF.Library/Utilities/Validators.cs +++ b/MPF.Library/Utilities/Validators.cs @@ -207,6 +207,11 @@ namespace MPF.Utilities types.Add(MediaType.BluRay); break; + // https://en.wikipedia.org/wiki/PlayStation_5 + case KnownSystem.SonyPlayStation5: + types.Add(MediaType.BluRay); + break; + // https://en.wikipedia.org/wiki/PlayStation_Portable case KnownSystem.SonyPlayStationPortable: types.Add(MediaType.UMD); @@ -952,6 +957,12 @@ namespace MPF.Utilities return KnownSystem.SonyPlayStation4; } + // Sony PlayStation 5 + if (drive.VolumeLabel.Equals("PS5VOLUME", StringComparison.OrdinalIgnoreCase)) + { + return KnownSystem.SonyPlayStation5; + } + // V.Tech V.Flash / V.Smile Pro if (File.Exists(Path.Combine(drivePath, "0SYSTEM"))) { diff --git a/MPF.Library/Web/Extensions.cs b/MPF.Library/Web/Extensions.cs index cfae51e3..a6447f70 100644 --- a/MPF.Library/Web/Extensions.cs +++ b/MPF.Library/Web/Extensions.cs @@ -32,6 +32,7 @@ RedumpSystem.SegaRingEdge2, RedumpSystem.SonyPlayStation3, RedumpSystem.SonyPlayStation4, + //RedumpSystem.SonyPlayStation5, RedumpSystem.VideoCD, }; @@ -164,6 +165,7 @@ RedumpSystem.SonyPlayStation2, RedumpSystem.SonyPlayStation3, RedumpSystem.SonyPlayStation4, + //RedumpSystem.SonyPlayStation5, RedumpSystem.SonyPlayStationPortable, RedumpSystem.TABAustriaQuizard, RedumpSystem.TomyKissSite, @@ -1202,6 +1204,8 @@ return "Sony PlayStation 3"; case RedumpSystem.SonyPlayStation4: return "Sony PlayStation 4"; + case RedumpSystem.SonyPlayStation5: + return "Sony PlayStation 5"; case RedumpSystem.SonyPlayStationPortable: return "Sony PlayStation Portable"; case RedumpSystem.TABAustriaQuizard: @@ -1377,6 +1381,8 @@ return "ps3"; case RedumpSystem.SonyPlayStation4: return "ps4"; + case RedumpSystem.SonyPlayStation5: + return "ps5"; case RedumpSystem.SonyPlayStationPortable: return "psp"; case RedumpSystem.TABAustriaQuizard: @@ -1883,6 +1889,14 @@ case "sonyplaystation4": case "sony playstation 4": return RedumpSystem.SonyPlayStation4; + case "ps5": + case "playstation5": + case "playstation 5": + case "sonyps5": + case "sony ps5": + case "sonyplaystation5": + case "sony playstation 5": + return RedumpSystem.SonyPlayStation5; case "psp": case "playstationportable": case "playstation portable":