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":