/// <inheritdoc/>
        public string GetInternalName(Stream romStream)
        {
            romStream.Seek(0, SeekOrigin.Begin);
            var disk = new PlaystationDisc(new CDXADisc(romStream));

            return(disk.InternalName);
        }
        /// <inheritdoc/>
        public string GetSerial(Stream romStream)
        {
            romStream.Seek(0, SeekOrigin.Begin);
            var    disk   = new PlaystationDisc(new CDXADisc(romStream));
            string syscnf = disk.GetMeta();
            string exe    = syscnf.Substring(14, 11);

            return(exe.Replace(".", string.Empty).Replace("_", "-"));
        }
        /// <inheritdoc/>
        public string GetSerial(Stream romStream)
        {
            romStream.Seek(0, SeekOrigin.Begin);
            var    reader    = new PlaystationDisc(new CDXADisc(romStream));
            string systemcnf = reader.GetMeta();

            if (systemcnf == null)
            {
                return(null);
            }
            return(Regex.Match(systemcnf, "[A-Z]+_[0-9][0-9][0-9].[0-9][0-9]",
                               RegexOptions.IgnoreCase).Value.Replace(".", string.Empty).Replace("_", "-"));
        }
 /// <inheritdoc/>
 public bool HeaderSignatureMatches(Stream romStream)
 {
     try
     {
         romStream.Seek(0, SeekOrigin.Begin);
         var    reader    = new PlaystationDisc(new CDXADisc(romStream));
         string systemcnf = reader.GetMeta();
         return(systemcnf?.Contains("BOOT2") ?? false);
     }
     catch
     {
         return(false);
     }
 }
        /// <inheritdoc/>
        public bool HeaderSignatureMatches(Stream romStream)
        {
            try
            {
                romStream.Seek(0, SeekOrigin.Begin);
                var disk = new PlaystationDisc(new CDXADisc(romStream));

                return(disk.IsPlaystation());
            }
            catch
            {
                return(false);
            }
        }