From efaba1f3d92d4c42eb0c639660a1a6cf71c070fd Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 30 Mar 2015 23:04:20 +0100 Subject: [PATCH 1/8] Added support for MESS BIOS xml datlist (mess -listxml) --- ROMVault2/DatReaders/DatMessBIOSReader.cs | 412 ++++++++++++++++++++++ ROMVault2/DatReaders/DatReader.cs | 4 + ROMVault2/ROMVault2.csproj | 1 + 3 files changed, 417 insertions(+) create mode 100644 ROMVault2/DatReaders/DatMessBIOSReader.cs diff --git a/ROMVault2/DatReaders/DatMessBIOSReader.cs b/ROMVault2/DatReaders/DatMessBIOSReader.cs new file mode 100644 index 0000000..89ac491 --- /dev/null +++ b/ROMVault2/DatReaders/DatMessBIOSReader.cs @@ -0,0 +1,412 @@ +/****************************************************** + * ROMVault2 is written by Gordon J. * + * Contact gordon@romvault.com * + * Copyright 2014 * + ******************************************************/ + +// Adapted to read MESS BIOS xml dat by Natalia Portillo + +using System; +using System.Xml; +using ROMVault2.RvDB; +using ROMVault2.Utils; + +namespace ROMVault2.DatReaders +{ + public static class DatMessBIOSXmlReader + { + private static bool _cleanFileNames = true; + + public static bool ReadDat(ref RvDir tDat, XmlDocument doc) + { + FileType thisFileType = FileType.Unknown; + + if (!LoadHeaderFromDat(ref tDat, ref doc, ref thisFileType)) + return false; + + if (doc.DocumentElement == null) + return false; + + XmlNodeList dirNodeList = doc.DocumentElement.SelectNodes("dir"); + if (dirNodeList != null) + { + for (int i = 0; i < dirNodeList.Count; i++) + { + LoadDirFromDat(ref tDat, dirNodeList[i], thisFileType); + } + } + + XmlNodeList machineNodeList = doc.DocumentElement.SelectNodes("machine"); + + if (machineNodeList != null) + { + for (int i = 0; i < machineNodeList.Count; i++) + { + LoadMachineFromDat(ref tDat, machineNodeList[i], thisFileType); + } + } + + return true; + } + + public static bool ReadMessDat(ref RvDir tDat, XmlDocument doc) + { + FileType thisFileType = FileType.Unknown; + + if (!LoadMessHeaderFromDat(ref tDat, ref doc, ref thisFileType)) + return false; + + if (doc.DocumentElement == null) + return false; + + XmlNodeList dirNodeList = doc.DocumentElement.SelectNodes("dir"); + if (dirNodeList != null) + { + for (int i = 0; i < dirNodeList.Count; i++) + { + LoadDirFromDat(ref tDat, dirNodeList[i], thisFileType); + } + } + + XmlNodeList machineNodeList = doc.DocumentElement.SelectNodes("machine"); + + if (machineNodeList != null) + { + for (int i = 0; i < machineNodeList.Count; i++) + { + LoadMachineFromDat(ref tDat, machineNodeList[i], thisFileType); + } + } + + return true; + } + + + + private static bool LoadHeaderFromDat(ref RvDir tDir, ref XmlDocument doc, ref FileType thisFileType) + { + if (doc.DocumentElement == null) + return false; + XmlNode head = doc.DocumentElement.SelectSingleNode("header"); + + if (head == null) + return false; + RvDat tDat = new RvDat(); + tDat.AddData(RvDat.DatData.DatName, VarFix.CleanFileName(head.SelectSingleNode("name"))); + tDat.AddData(RvDat.DatData.RootDir, VarFix.CleanFileName(head.SelectSingleNode("rootdir"))); + tDat.AddData(RvDat.DatData.Description, VarFix.String(head.SelectSingleNode("description"))); + tDat.AddData(RvDat.DatData.Category, VarFix.String(head.SelectSingleNode("category"))); + tDat.AddData(RvDat.DatData.Version, VarFix.String(head.SelectSingleNode("version"))); + tDat.AddData(RvDat.DatData.Date, VarFix.String(head.SelectSingleNode("date"))); + tDat.AddData(RvDat.DatData.Author, VarFix.String(head.SelectSingleNode("author"))); + tDat.AddData(RvDat.DatData.Email, VarFix.String(head.SelectSingleNode("email"))); + tDat.AddData(RvDat.DatData.HomePage, VarFix.String(head.SelectSingleNode("homepage"))); + tDat.AddData(RvDat.DatData.URL, VarFix.String(head.SelectSingleNode("url"))); + + + string superDAT = VarFix.String(head.SelectSingleNode("type")); + _cleanFileNames = superDAT.ToLower() != "superdat" && superDAT.ToLower() != "gigadat"; + if (!_cleanFileNames) tDat.AddData(RvDat.DatData.SuperDat, "superdat"); + + thisFileType = FileType.ZipFile; + + // Look for: + XmlNode packingNode = head.SelectSingleNode("romvault"); + if (packingNode == null) + // Look for: + packingNode = head.SelectSingleNode("clrmamepro"); + if (packingNode != null) + { + if (packingNode.Attributes != null) + { + string val = VarFix.String(packingNode.Attributes.GetNamedItem("forcepacking")).ToLower(); + switch (val.ToLower()) + { + case "zip": + tDat.AddData(RvDat.DatData.FileType, "zip"); + thisFileType = FileType.ZipFile; + break; + case "unzip": + case "file": + tDat.AddData(RvDat.DatData.FileType, "file"); + thisFileType = FileType.File; + break; + default: + thisFileType = FileType.ZipFile; + break; + } + + val = VarFix.String(packingNode.Attributes.GetNamedItem("forcemerging")).ToLower(); + switch (val.ToLower()) + { + case "split": + tDat.AddData(RvDat.DatData.MergeType, "split"); + break; + case "full": + tDat.AddData(RvDat.DatData.MergeType, "full"); + break; + default: + tDat.AddData(RvDat.DatData.MergeType, "split"); + break; + } + val = VarFix.String(packingNode.Attributes.GetNamedItem("dir")).ToLower(); // noautodir , nogame + if (!String.IsNullOrEmpty(val)) + tDat.AddData(RvDat.DatData.DirSetup,val); + } + } + + // Look for: true + string notzipped = VarFix.String(head.SelectSingleNode("notzipped")); + if (notzipped.ToLower() == "true" || notzipped.ToLower() == "yes") thisFileType = FileType.File; + + tDir.Dat = tDat; + return true; + } + + private static bool LoadMessHeaderFromDat(ref RvDir tDir, ref XmlDocument doc, ref FileType thisFileType) + { + if (doc.DocumentElement == null) + return false; + XmlNode head = doc.SelectSingleNode("mess"); + + if (head == null || head.Attributes == null) + return false; + RvDat tDat = new RvDat(); + tDat.AddData(RvDat.DatData.DatName, VarFix.CleanFileName(head.Attributes.GetNamedItem("build"))); + tDat.AddData(RvDat.DatData.Description, VarFix.String(head.Attributes.GetNamedItem("build"))); + + thisFileType = FileType.ZipFile; + tDir.Dat = tDat; + return true; + } + + + private static void LoadDirFromDat(ref RvDir tDat, XmlNode dirNode, FileType thisFileType) + { + if (dirNode.Attributes == null) + return; + + RvDir parent = tDat; + + string fullname = VarFix.CleanFullFileName(dirNode.Attributes.GetNamedItem("name")); + while (fullname.Contains("/")) + { + int firstSlash = fullname.IndexOf("/", StringComparison.Ordinal); + string dir = fullname.Substring(0, firstSlash); + dir = VarFix.CleanFileName(dir); + + fullname = fullname.Substring(firstSlash + 1); + int index; + if (parent.ChildNameSearch(new RvDir(FileType.Dir) { Name = dir }, out index) == 0) + { + parent = (RvDir)parent.Child(index); + } + else + { + RvDir tpDir = new RvDir(FileType.Dir) + { + Name = dir, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat, + Tree = new RvTreeRow() + }; + parent.ChildAdd(tpDir, index); + parent = tpDir; + } + } + + RvDir tDir = new RvDir(FileType.Dir) + { + Name = fullname, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat, + Tree = new RvTreeRow() + }; + + int index1; + if (parent.ChildNameSearch(tDir, out index1) == 0) + tDir = (RvDir)parent.Child(index1); + else + tDat.ChildAdd(tDir, index1); + + XmlNodeList dirNodeList = dirNode.SelectNodes("dir"); + if (dirNodeList != null) + { + for (int i = 0; i < dirNodeList.Count; i++) + { + LoadDirFromDat(ref tDir, dirNodeList[i], thisFileType); + } + } + + XmlNodeList machineNodeList = dirNode.SelectNodes("machine"); + if (machineNodeList != null) + { + for (int i = 0; i < machineNodeList.Count; i++) + { + LoadMachineFromDat(ref tDir, machineNodeList[i], thisFileType); + } + } + } + + private static void LoadMachineFromDat(ref RvDir tDat, XmlNode machineNode, FileType thisFileType) + { + if (machineNode.Attributes == null) + return; + + RvDir parent = tDat; + RvDir tDir; + int index1 = 0; + + string fullname = VarFix.CleanFullFileName(machineNode.Attributes.GetNamedItem("name")); + if (_cleanFileNames) + fullname = fullname.Replace("/", "-"); + else + { + while (fullname.Contains("/")) + { + int firstSlash = fullname.IndexOf("/", StringComparison.Ordinal); + string dir = fullname.Substring(0, firstSlash); + dir = VarFix.CleanFileName(dir); + + fullname = fullname.Substring(firstSlash + 1); + int index; + if (parent.ChildNameSearch(new RvDir(FileType.Dir) { Name = dir }, out index) == 0) + { + parent = (RvDir)parent.Child(index); + } + else + { + RvDir tpDir = new RvDir(FileType.Dir) + { + Name = dir, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat, + Tree = new RvTreeRow() + }; + parent.ChildAdd(tpDir, index); + parent = tpDir; + } + } + } + + tDir = new RvDir(DBTypeGet.DirFromFile(thisFileType)) + { + Name = fullname, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat + }; + + string testName = tDir.Name; + int nameCount = 0; + while (parent.ChildNameSearch(tDir, out index1) == 0) + { + tDir.Name = testName + "_" + nameCount; + nameCount++; + } + + tDir.Game = new RvGame(); + tDir.Game.AddData(RvGame.GameData.RomOf, VarFix.CleanFileName(machineNode.Attributes.GetNamedItem("romof"))); + tDir.Game.AddData(RvGame.GameData.Description, VarFix.String(machineNode.SelectSingleNode("description"))); + + tDir.Game.AddData(RvGame.GameData.Sourcefile, VarFix.String(machineNode.Attributes.GetNamedItem("sourcefile"))); + tDir.Game.AddData(RvGame.GameData.IsBios, VarFix.String(machineNode.Attributes.GetNamedItem("isbios"))); + tDir.Game.AddData(RvGame.GameData.CloneOf, VarFix.CleanFileName(machineNode.Attributes.GetNamedItem("cloneof"))); + tDir.Game.AddData(RvGame.GameData.SampleOf, VarFix.CleanFileName(machineNode.Attributes.GetNamedItem("sampleof"))); + tDir.Game.AddData(RvGame.GameData.Board, VarFix.String(machineNode.Attributes.GetNamedItem("board"))); + tDir.Game.AddData(RvGame.GameData.Year, VarFix.String(machineNode.SelectSingleNode("year"))); + tDir.Game.AddData(RvGame.GameData.Manufacturer, VarFix.String(machineNode.SelectSingleNode("manufacturer"))); + + XmlNode trurip = machineNode.SelectSingleNode("trurip"); + if (trurip != null) + { + tDir.Game.AddData(RvGame.GameData.Trurip, "yes"); + tDir.Game.AddData(RvGame.GameData.Year, VarFix.String(trurip.SelectSingleNode("year"))); + tDir.Game.AddData(RvGame.GameData.Publisher, VarFix.String(trurip.SelectSingleNode("publisher"))); + tDir.Game.AddData(RvGame.GameData.Developer, VarFix.String(trurip.SelectSingleNode("developer"))); + tDir.Game.AddData(RvGame.GameData.Edition, VarFix.String(trurip.SelectSingleNode("edition"))); + tDir.Game.AddData(RvGame.GameData.Version, VarFix.String(trurip.SelectSingleNode("version"))); + tDir.Game.AddData(RvGame.GameData.Type, VarFix.String(trurip.SelectSingleNode("type"))); + tDir.Game.AddData(RvGame.GameData.Media, VarFix.String(trurip.SelectSingleNode("media"))); + tDir.Game.AddData(RvGame.GameData.Language, VarFix.String(trurip.SelectSingleNode("language"))); + tDir.Game.AddData(RvGame.GameData.Players, VarFix.String(trurip.SelectSingleNode("players"))); + tDir.Game.AddData(RvGame.GameData.Ratings, VarFix.String(trurip.SelectSingleNode("ratings"))); + tDir.Game.AddData(RvGame.GameData.Peripheral, VarFix.String(trurip.SelectSingleNode("peripheral"))); + tDir.Game.AddData(RvGame.GameData.Genre, VarFix.String(trurip.SelectSingleNode("genre"))); + tDir.Game.AddData(RvGame.GameData.MediaCatalogNumber, VarFix.String(trurip.SelectSingleNode("mediacatalognumber"))); + tDir.Game.AddData(RvGame.GameData.BarCode, VarFix.String(trurip.SelectSingleNode("barcode"))); + } + + RvDir tDirCHD = new RvDir(FileType.Dir) + { + Name = tDir.Name, + DatStatus = tDir.DatStatus, + Dat = tDir.Dat, + Game = tDir.Game + }; + + XmlNodeList romNodeList = machineNode.SelectNodes("rom"); + if (romNodeList != null) + for (int i = 0; i < romNodeList.Count; i++) + LoadRomFromDat(ref tDir, romNodeList[i], thisFileType); + + XmlNodeList diskNodeList = machineNode.SelectNodes("disk"); + if (diskNodeList != null) + for (int i = 0; i < diskNodeList.Count; i++) + LoadDiskFromDat(ref tDirCHD, diskNodeList[i]); + + if (tDir.ChildCount > 0) + parent.ChildAdd(tDir, index1); + if (tDirCHD.ChildCount > 0) + parent.ChildAdd(tDirCHD); + } + + private static void LoadRomFromDat(ref RvDir tGame, XmlNode romNode, FileType thisFileType) + { + if (romNode.Attributes == null) + return; + + + RvFile tRom = new RvFile(thisFileType) + { + Dat = tGame.Dat, + Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size")), + Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name")), + CRC = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("crc"), 8), + SHA1 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40), + MD5 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32), + Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge")), + Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status")) + }; + + if (tRom.Size != null) tRom.FileStatusSet(FileStatus.SizeFromDAT); + if (tRom.CRC != null) tRom.FileStatusSet(FileStatus.CRCFromDAT); + if (tRom.SHA1 != null) tRom.FileStatusSet(FileStatus.SHA1FromDAT); + if (tRom.MD5 != null) tRom.FileStatusSet(FileStatus.MD5FromDAT); + + tGame.ChildAdd(tRom); + } + + private static void LoadDiskFromDat(ref RvDir tGame, XmlNode romNode) + { + if (romNode.Attributes == null) + return; + + + RvFile tRom = new RvFile(FileType.File) + { + Dat = tGame.Dat, + Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name")) + ".chd", + SHA1CHD = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40), + MD5CHD = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32), + Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge")), + Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status")) + }; + + if (tRom.SHA1CHD != null) tRom.FileStatusSet(FileStatus.SHA1CHDFromDAT); + if (tRom.MD5CHD != null) tRom.FileStatusSet(FileStatus.MD5CHDFromDAT); + + tGame.ChildAdd(tRom); + } + + } +} diff --git a/ROMVault2/DatReaders/DatReader.cs b/ROMVault2/DatReaders/DatReader.cs index 7e11135..6187229 100644 --- a/ROMVault2/DatReaders/DatReader.cs +++ b/ROMVault2/DatReaders/DatReader.cs @@ -129,6 +129,10 @@ namespace ROMVault2.DatReaders if (mame != null) return DatXmlReader.ReadMameDat(ref tDat, doc); + XmlNode mess = doc.SelectSingleNode("mess"); + if (mess != null) + return DatMessBIOSXmlReader.ReadMessDat(ref tDat, doc); + if (doc.DocumentElement != null) { XmlNode head = doc.DocumentElement.SelectSingleNode("header"); diff --git a/ROMVault2/ROMVault2.csproj b/ROMVault2/ROMVault2.csproj index d08bdeb..b62516f 100644 --- a/ROMVault2/ROMVault2.csproj +++ b/ROMVault2/ROMVault2.csproj @@ -97,6 +97,7 @@ + From 0817f01538e69544fb4775503f5c207c8d68ed6e Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 17:20:58 -0500 Subject: [PATCH 2/8] When making a dir2dat, the "clean" routine overdoes it when translating the apostrophes, Fixed by changing order of code. --- ROMVault2/DatMaker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROMVault2/DatMaker.cs b/ROMVault2/DatMaker.cs index 06c1a14..365a321 100644 --- a/ROMVault2/DatMaker.cs +++ b/ROMVault2/DatMaker.cs @@ -57,11 +57,11 @@ namespace ROMVault2 private static string clean(string s) { + s = s.Replace("&", "&"); s = s.Replace("\"", """); s = s.Replace("'", "'"); s = s.Replace("<", "<"); s = s.Replace(">", ">"); - s = s.Replace("&", "&"); return s; } From 33f204fc3700d79a778eb92f4993e0e927042441 Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 17:41:26 -0500 Subject: [PATCH 3/8] Cleaned up Natalia Portillo's Mess Bios xml Reader. --- ROMVault2/DatReaders/DatMessBIOSReader.cs | 160 +++++++--------------- 1 file changed, 47 insertions(+), 113 deletions(-) diff --git a/ROMVault2/DatReaders/DatMessBIOSReader.cs b/ROMVault2/DatReaders/DatMessBIOSReader.cs index 89ac491..a612a13 100644 --- a/ROMVault2/DatReaders/DatMessBIOSReader.cs +++ b/ROMVault2/DatReaders/DatMessBIOSReader.cs @@ -14,41 +14,7 @@ using ROMVault2.Utils; namespace ROMVault2.DatReaders { public static class DatMessBIOSXmlReader - { - private static bool _cleanFileNames = true; - - public static bool ReadDat(ref RvDir tDat, XmlDocument doc) - { - FileType thisFileType = FileType.Unknown; - - if (!LoadHeaderFromDat(ref tDat, ref doc, ref thisFileType)) - return false; - - if (doc.DocumentElement == null) - return false; - - XmlNodeList dirNodeList = doc.DocumentElement.SelectNodes("dir"); - if (dirNodeList != null) - { - for (int i = 0; i < dirNodeList.Count; i++) - { - LoadDirFromDat(ref tDat, dirNodeList[i], thisFileType); - } - } - - XmlNodeList machineNodeList = doc.DocumentElement.SelectNodes("machine"); - - if (machineNodeList != null) - { - for (int i = 0; i < machineNodeList.Count; i++) - { - LoadMachineFromDat(ref tDat, machineNodeList[i], thisFileType); - } - } - - return true; - } - + { public static bool ReadMessDat(ref RvDir tDat, XmlDocument doc) { FileType thisFileType = FileType.Unknown; @@ -101,13 +67,9 @@ namespace ROMVault2.DatReaders tDat.AddData(RvDat.DatData.Author, VarFix.String(head.SelectSingleNode("author"))); tDat.AddData(RvDat.DatData.Email, VarFix.String(head.SelectSingleNode("email"))); tDat.AddData(RvDat.DatData.HomePage, VarFix.String(head.SelectSingleNode("homepage"))); - tDat.AddData(RvDat.DatData.URL, VarFix.String(head.SelectSingleNode("url"))); - - - string superDAT = VarFix.String(head.SelectSingleNode("type")); - _cleanFileNames = superDAT.ToLower() != "superdat" && superDAT.ToLower() != "gigadat"; - if (!_cleanFileNames) tDat.AddData(RvDat.DatData.SuperDat, "superdat"); - + tDat.AddData(RvDat.DatData.URL, VarFix.String(head.SelectSingleNode("url"))); + + thisFileType = FileType.ZipFile; // Look for: @@ -151,7 +113,7 @@ namespace ROMVault2.DatReaders } val = VarFix.String(packingNode.Attributes.GetNamedItem("dir")).ToLower(); // noautodir , nogame if (!String.IsNullOrEmpty(val)) - tDat.AddData(RvDat.DatData.DirSetup,val); + tDat.AddData(RvDat.DatData.DirSetup, val); } } @@ -203,25 +165,25 @@ namespace ROMVault2.DatReaders } else { - RvDir tpDir = new RvDir(FileType.Dir) - { - Name = dir, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat, - Tree = new RvTreeRow() - }; + RvDir tpDir = new RvDir(FileType.Dir) + { + Name = dir, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat, + Tree = new RvTreeRow() + }; parent.ChildAdd(tpDir, index); parent = tpDir; } } - RvDir tDir = new RvDir(FileType.Dir) - { - Name = fullname, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat, - Tree = new RvTreeRow() - }; + RvDir tDir = new RvDir(FileType.Dir) + { + Name = fullname, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat, + Tree = new RvTreeRow() + }; int index1; if (parent.ChildNameSearch(tDir, out index1) == 0) @@ -257,44 +219,16 @@ namespace ROMVault2.DatReaders RvDir tDir; int index1 = 0; - string fullname = VarFix.CleanFullFileName(machineNode.Attributes.GetNamedItem("name")); - if (_cleanFileNames) - fullname = fullname.Replace("/", "-"); - else - { - while (fullname.Contains("/")) - { - int firstSlash = fullname.IndexOf("/", StringComparison.Ordinal); - string dir = fullname.Substring(0, firstSlash); - dir = VarFix.CleanFileName(dir); - - fullname = fullname.Substring(firstSlash + 1); - int index; - if (parent.ChildNameSearch(new RvDir(FileType.Dir) { Name = dir }, out index) == 0) - { - parent = (RvDir)parent.Child(index); - } - else - { - RvDir tpDir = new RvDir(FileType.Dir) - { - Name = dir, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat, - Tree = new RvTreeRow() - }; - parent.ChildAdd(tpDir, index); - parent = tpDir; - } - } - } - - tDir = new RvDir(DBTypeGet.DirFromFile(thisFileType)) - { - Name = fullname, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat - }; + string fullname = VarFix.CleanFullFileName(machineNode.Attributes.GetNamedItem("name")); + + fullname = fullname.Replace("/", "-"); + + tDir = new RvDir(DBTypeGet.DirFromFile(thisFileType)) + { + Name = fullname, + DatStatus = DatStatus.InDatCollect, + Dat = tDat.Dat + }; string testName = tDir.Name; int nameCount = 0; @@ -336,13 +270,13 @@ namespace ROMVault2.DatReaders tDir.Game.AddData(RvGame.GameData.BarCode, VarFix.String(trurip.SelectSingleNode("barcode"))); } - RvDir tDirCHD = new RvDir(FileType.Dir) - { - Name = tDir.Name, - DatStatus = tDir.DatStatus, - Dat = tDir.Dat, - Game = tDir.Game - }; + RvDir tDirCHD = new RvDir(FileType.Dir) + { + Name = tDir.Name, + DatStatus = tDir.DatStatus, + Dat = tDir.Dat, + Game = tDir.Game + }; XmlNodeList romNodeList = machineNode.SelectNodes("rom"); if (romNodeList != null) @@ -366,17 +300,17 @@ namespace ROMVault2.DatReaders return; - RvFile tRom = new RvFile(thisFileType) - { - Dat = tGame.Dat, - Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size")), - Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name")), - CRC = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("crc"), 8), - SHA1 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40), - MD5 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32), - Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge")), - Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status")) - }; + RvFile tRom = new RvFile(thisFileType) + { + Dat = tGame.Dat, + Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size")), + Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name")), + CRC = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("crc"), 8), + SHA1 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40), + MD5 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32), + Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge")), + Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status")) + }; if (tRom.Size != null) tRom.FileStatusSet(FileStatus.SizeFromDAT); if (tRom.CRC != null) tRom.FileStatusSet(FileStatus.CRCFromDAT); From 5107b5b850345e2230ab62bcf2b5461e43cca0fb Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 20:01:03 -0500 Subject: [PATCH 4/8] Removed DatMessBIOSReader due to MAME and MESS being combined. --- ROMVault2/DatReaders/DatMessBIOSReader.cs | 346 ---------------------- ROMVault2/DatReaders/DatReader.cs | 4 - ROMVault2/Program.cs | 15 +- ROMVault2/ROMVault2.csproj | 1 - ROMVault2/rvImages.cs | 5 +- 5 files changed, 3 insertions(+), 368 deletions(-) delete mode 100644 ROMVault2/DatReaders/DatMessBIOSReader.cs diff --git a/ROMVault2/DatReaders/DatMessBIOSReader.cs b/ROMVault2/DatReaders/DatMessBIOSReader.cs deleted file mode 100644 index a612a13..0000000 --- a/ROMVault2/DatReaders/DatMessBIOSReader.cs +++ /dev/null @@ -1,346 +0,0 @@ -/****************************************************** - * ROMVault2 is written by Gordon J. * - * Contact gordon@romvault.com * - * Copyright 2014 * - ******************************************************/ - -// Adapted to read MESS BIOS xml dat by Natalia Portillo - -using System; -using System.Xml; -using ROMVault2.RvDB; -using ROMVault2.Utils; - -namespace ROMVault2.DatReaders -{ - public static class DatMessBIOSXmlReader - { - public static bool ReadMessDat(ref RvDir tDat, XmlDocument doc) - { - FileType thisFileType = FileType.Unknown; - - if (!LoadMessHeaderFromDat(ref tDat, ref doc, ref thisFileType)) - return false; - - if (doc.DocumentElement == null) - return false; - - XmlNodeList dirNodeList = doc.DocumentElement.SelectNodes("dir"); - if (dirNodeList != null) - { - for (int i = 0; i < dirNodeList.Count; i++) - { - LoadDirFromDat(ref tDat, dirNodeList[i], thisFileType); - } - } - - XmlNodeList machineNodeList = doc.DocumentElement.SelectNodes("machine"); - - if (machineNodeList != null) - { - for (int i = 0; i < machineNodeList.Count; i++) - { - LoadMachineFromDat(ref tDat, machineNodeList[i], thisFileType); - } - } - - return true; - } - - - - private static bool LoadHeaderFromDat(ref RvDir tDir, ref XmlDocument doc, ref FileType thisFileType) - { - if (doc.DocumentElement == null) - return false; - XmlNode head = doc.DocumentElement.SelectSingleNode("header"); - - if (head == null) - return false; - RvDat tDat = new RvDat(); - tDat.AddData(RvDat.DatData.DatName, VarFix.CleanFileName(head.SelectSingleNode("name"))); - tDat.AddData(RvDat.DatData.RootDir, VarFix.CleanFileName(head.SelectSingleNode("rootdir"))); - tDat.AddData(RvDat.DatData.Description, VarFix.String(head.SelectSingleNode("description"))); - tDat.AddData(RvDat.DatData.Category, VarFix.String(head.SelectSingleNode("category"))); - tDat.AddData(RvDat.DatData.Version, VarFix.String(head.SelectSingleNode("version"))); - tDat.AddData(RvDat.DatData.Date, VarFix.String(head.SelectSingleNode("date"))); - tDat.AddData(RvDat.DatData.Author, VarFix.String(head.SelectSingleNode("author"))); - tDat.AddData(RvDat.DatData.Email, VarFix.String(head.SelectSingleNode("email"))); - tDat.AddData(RvDat.DatData.HomePage, VarFix.String(head.SelectSingleNode("homepage"))); - tDat.AddData(RvDat.DatData.URL, VarFix.String(head.SelectSingleNode("url"))); - - - thisFileType = FileType.ZipFile; - - // Look for: - XmlNode packingNode = head.SelectSingleNode("romvault"); - if (packingNode == null) - // Look for: - packingNode = head.SelectSingleNode("clrmamepro"); - if (packingNode != null) - { - if (packingNode.Attributes != null) - { - string val = VarFix.String(packingNode.Attributes.GetNamedItem("forcepacking")).ToLower(); - switch (val.ToLower()) - { - case "zip": - tDat.AddData(RvDat.DatData.FileType, "zip"); - thisFileType = FileType.ZipFile; - break; - case "unzip": - case "file": - tDat.AddData(RvDat.DatData.FileType, "file"); - thisFileType = FileType.File; - break; - default: - thisFileType = FileType.ZipFile; - break; - } - - val = VarFix.String(packingNode.Attributes.GetNamedItem("forcemerging")).ToLower(); - switch (val.ToLower()) - { - case "split": - tDat.AddData(RvDat.DatData.MergeType, "split"); - break; - case "full": - tDat.AddData(RvDat.DatData.MergeType, "full"); - break; - default: - tDat.AddData(RvDat.DatData.MergeType, "split"); - break; - } - val = VarFix.String(packingNode.Attributes.GetNamedItem("dir")).ToLower(); // noautodir , nogame - if (!String.IsNullOrEmpty(val)) - tDat.AddData(RvDat.DatData.DirSetup, val); - } - } - - // Look for: true - string notzipped = VarFix.String(head.SelectSingleNode("notzipped")); - if (notzipped.ToLower() == "true" || notzipped.ToLower() == "yes") thisFileType = FileType.File; - - tDir.Dat = tDat; - return true; - } - - private static bool LoadMessHeaderFromDat(ref RvDir tDir, ref XmlDocument doc, ref FileType thisFileType) - { - if (doc.DocumentElement == null) - return false; - XmlNode head = doc.SelectSingleNode("mess"); - - if (head == null || head.Attributes == null) - return false; - RvDat tDat = new RvDat(); - tDat.AddData(RvDat.DatData.DatName, VarFix.CleanFileName(head.Attributes.GetNamedItem("build"))); - tDat.AddData(RvDat.DatData.Description, VarFix.String(head.Attributes.GetNamedItem("build"))); - - thisFileType = FileType.ZipFile; - tDir.Dat = tDat; - return true; - } - - - private static void LoadDirFromDat(ref RvDir tDat, XmlNode dirNode, FileType thisFileType) - { - if (dirNode.Attributes == null) - return; - - RvDir parent = tDat; - - string fullname = VarFix.CleanFullFileName(dirNode.Attributes.GetNamedItem("name")); - while (fullname.Contains("/")) - { - int firstSlash = fullname.IndexOf("/", StringComparison.Ordinal); - string dir = fullname.Substring(0, firstSlash); - dir = VarFix.CleanFileName(dir); - - fullname = fullname.Substring(firstSlash + 1); - int index; - if (parent.ChildNameSearch(new RvDir(FileType.Dir) { Name = dir }, out index) == 0) - { - parent = (RvDir)parent.Child(index); - } - else - { - RvDir tpDir = new RvDir(FileType.Dir) - { - Name = dir, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat, - Tree = new RvTreeRow() - }; - parent.ChildAdd(tpDir, index); - parent = tpDir; - } - } - - RvDir tDir = new RvDir(FileType.Dir) - { - Name = fullname, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat, - Tree = new RvTreeRow() - }; - - int index1; - if (parent.ChildNameSearch(tDir, out index1) == 0) - tDir = (RvDir)parent.Child(index1); - else - tDat.ChildAdd(tDir, index1); - - XmlNodeList dirNodeList = dirNode.SelectNodes("dir"); - if (dirNodeList != null) - { - for (int i = 0; i < dirNodeList.Count; i++) - { - LoadDirFromDat(ref tDir, dirNodeList[i], thisFileType); - } - } - - XmlNodeList machineNodeList = dirNode.SelectNodes("machine"); - if (machineNodeList != null) - { - for (int i = 0; i < machineNodeList.Count; i++) - { - LoadMachineFromDat(ref tDir, machineNodeList[i], thisFileType); - } - } - } - - private static void LoadMachineFromDat(ref RvDir tDat, XmlNode machineNode, FileType thisFileType) - { - if (machineNode.Attributes == null) - return; - - RvDir parent = tDat; - RvDir tDir; - int index1 = 0; - - string fullname = VarFix.CleanFullFileName(machineNode.Attributes.GetNamedItem("name")); - - fullname = fullname.Replace("/", "-"); - - tDir = new RvDir(DBTypeGet.DirFromFile(thisFileType)) - { - Name = fullname, - DatStatus = DatStatus.InDatCollect, - Dat = tDat.Dat - }; - - string testName = tDir.Name; - int nameCount = 0; - while (parent.ChildNameSearch(tDir, out index1) == 0) - { - tDir.Name = testName + "_" + nameCount; - nameCount++; - } - - tDir.Game = new RvGame(); - tDir.Game.AddData(RvGame.GameData.RomOf, VarFix.CleanFileName(machineNode.Attributes.GetNamedItem("romof"))); - tDir.Game.AddData(RvGame.GameData.Description, VarFix.String(machineNode.SelectSingleNode("description"))); - - tDir.Game.AddData(RvGame.GameData.Sourcefile, VarFix.String(machineNode.Attributes.GetNamedItem("sourcefile"))); - tDir.Game.AddData(RvGame.GameData.IsBios, VarFix.String(machineNode.Attributes.GetNamedItem("isbios"))); - tDir.Game.AddData(RvGame.GameData.CloneOf, VarFix.CleanFileName(machineNode.Attributes.GetNamedItem("cloneof"))); - tDir.Game.AddData(RvGame.GameData.SampleOf, VarFix.CleanFileName(machineNode.Attributes.GetNamedItem("sampleof"))); - tDir.Game.AddData(RvGame.GameData.Board, VarFix.String(machineNode.Attributes.GetNamedItem("board"))); - tDir.Game.AddData(RvGame.GameData.Year, VarFix.String(machineNode.SelectSingleNode("year"))); - tDir.Game.AddData(RvGame.GameData.Manufacturer, VarFix.String(machineNode.SelectSingleNode("manufacturer"))); - - XmlNode trurip = machineNode.SelectSingleNode("trurip"); - if (trurip != null) - { - tDir.Game.AddData(RvGame.GameData.Trurip, "yes"); - tDir.Game.AddData(RvGame.GameData.Year, VarFix.String(trurip.SelectSingleNode("year"))); - tDir.Game.AddData(RvGame.GameData.Publisher, VarFix.String(trurip.SelectSingleNode("publisher"))); - tDir.Game.AddData(RvGame.GameData.Developer, VarFix.String(trurip.SelectSingleNode("developer"))); - tDir.Game.AddData(RvGame.GameData.Edition, VarFix.String(trurip.SelectSingleNode("edition"))); - tDir.Game.AddData(RvGame.GameData.Version, VarFix.String(trurip.SelectSingleNode("version"))); - tDir.Game.AddData(RvGame.GameData.Type, VarFix.String(trurip.SelectSingleNode("type"))); - tDir.Game.AddData(RvGame.GameData.Media, VarFix.String(trurip.SelectSingleNode("media"))); - tDir.Game.AddData(RvGame.GameData.Language, VarFix.String(trurip.SelectSingleNode("language"))); - tDir.Game.AddData(RvGame.GameData.Players, VarFix.String(trurip.SelectSingleNode("players"))); - tDir.Game.AddData(RvGame.GameData.Ratings, VarFix.String(trurip.SelectSingleNode("ratings"))); - tDir.Game.AddData(RvGame.GameData.Peripheral, VarFix.String(trurip.SelectSingleNode("peripheral"))); - tDir.Game.AddData(RvGame.GameData.Genre, VarFix.String(trurip.SelectSingleNode("genre"))); - tDir.Game.AddData(RvGame.GameData.MediaCatalogNumber, VarFix.String(trurip.SelectSingleNode("mediacatalognumber"))); - tDir.Game.AddData(RvGame.GameData.BarCode, VarFix.String(trurip.SelectSingleNode("barcode"))); - } - - RvDir tDirCHD = new RvDir(FileType.Dir) - { - Name = tDir.Name, - DatStatus = tDir.DatStatus, - Dat = tDir.Dat, - Game = tDir.Game - }; - - XmlNodeList romNodeList = machineNode.SelectNodes("rom"); - if (romNodeList != null) - for (int i = 0; i < romNodeList.Count; i++) - LoadRomFromDat(ref tDir, romNodeList[i], thisFileType); - - XmlNodeList diskNodeList = machineNode.SelectNodes("disk"); - if (diskNodeList != null) - for (int i = 0; i < diskNodeList.Count; i++) - LoadDiskFromDat(ref tDirCHD, diskNodeList[i]); - - if (tDir.ChildCount > 0) - parent.ChildAdd(tDir, index1); - if (tDirCHD.ChildCount > 0) - parent.ChildAdd(tDirCHD); - } - - private static void LoadRomFromDat(ref RvDir tGame, XmlNode romNode, FileType thisFileType) - { - if (romNode.Attributes == null) - return; - - - RvFile tRom = new RvFile(thisFileType) - { - Dat = tGame.Dat, - Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size")), - Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name")), - CRC = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("crc"), 8), - SHA1 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40), - MD5 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32), - Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge")), - Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status")) - }; - - if (tRom.Size != null) tRom.FileStatusSet(FileStatus.SizeFromDAT); - if (tRom.CRC != null) tRom.FileStatusSet(FileStatus.CRCFromDAT); - if (tRom.SHA1 != null) tRom.FileStatusSet(FileStatus.SHA1FromDAT); - if (tRom.MD5 != null) tRom.FileStatusSet(FileStatus.MD5FromDAT); - - tGame.ChildAdd(tRom); - } - - private static void LoadDiskFromDat(ref RvDir tGame, XmlNode romNode) - { - if (romNode.Attributes == null) - return; - - - RvFile tRom = new RvFile(FileType.File) - { - Dat = tGame.Dat, - Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name")) + ".chd", - SHA1CHD = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40), - MD5CHD = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32), - Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge")), - Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status")) - }; - - if (tRom.SHA1CHD != null) tRom.FileStatusSet(FileStatus.SHA1CHDFromDAT); - if (tRom.MD5CHD != null) tRom.FileStatusSet(FileStatus.MD5CHDFromDAT); - - tGame.ChildAdd(tRom); - } - - } -} diff --git a/ROMVault2/DatReaders/DatReader.cs b/ROMVault2/DatReaders/DatReader.cs index fae7e89..8f620b9 100644 --- a/ROMVault2/DatReaders/DatReader.cs +++ b/ROMVault2/DatReaders/DatReader.cs @@ -129,10 +129,6 @@ namespace ROMVault2.DatReaders if (mame != null) return DatXmlReader.ReadMameDat(ref tDat, doc); - XmlNode mess = doc.SelectSingleNode("mess"); - if (mess != null) - return DatMessBIOSXmlReader.ReadMessDat(ref tDat, doc); - if (doc.DocumentElement != null) { XmlNode head = doc.DocumentElement.SelectSingleNode("header"); diff --git a/ROMVault2/Program.cs b/ROMVault2/Program.cs index 90505e3..abf9a20 100644 --- a/ROMVault2/Program.cs +++ b/ROMVault2/Program.cs @@ -16,10 +16,7 @@ namespace ROMVault2 public static readonly Encoding Enc = Encoding.GetEncoding(28591); public const string Version = "2.2"; public const int SubVersion = 3; - - public static string ErrorMessage; - public static string URL; - + public static SynchronizationContext SyncCont; /// @@ -39,15 +36,7 @@ namespace ROMVault2 progress.ShowDialog(); progress.Dispose(); - - if (!String.IsNullOrEmpty(ErrorMessage)) - { - MessageBox.Show(ErrorMessage); - if (!String.IsNullOrEmpty(URL)) - System.Diagnostics.Process.Start(URL); - return; - } - + Application.Run(new FrmMain()); } } diff --git a/ROMVault2/ROMVault2.csproj b/ROMVault2/ROMVault2.csproj index 4e22406..08f50fc 100644 --- a/ROMVault2/ROMVault2.csproj +++ b/ROMVault2/ROMVault2.csproj @@ -97,7 +97,6 @@ - diff --git a/ROMVault2/rvImages.cs b/ROMVault2/rvImages.cs index c867a9b..2ffd128 100644 --- a/ROMVault2/rvImages.cs +++ b/ROMVault2/rvImages.cs @@ -11,10 +11,7 @@ namespace ROMVault2 { public static class rvImages { - private static List names; - private static List images; - - + public static Bitmap GetBitmap(string bitmapName) { object bmObj = rvImages1.ResourceManager.GetObject(bitmapName); From b6be1a9ec1bc118cb0075b8951fb959d185d9438 Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 20:09:54 -0500 Subject: [PATCH 5/8] #19 Fixed possible hard Crash when scanning files. --- ROMVault2/SupportedFiles/Files/UnCompFiles.cs | 49 ++++++++++++------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/ROMVault2/SupportedFiles/Files/UnCompFiles.cs b/ROMVault2/SupportedFiles/Files/UnCompFiles.cs index 11bc1fb..c0f157b 100644 --- a/ROMVault2/SupportedFiles/Files/UnCompFiles.cs +++ b/ROMVault2/SupportedFiles/Files/UnCompFiles.cs @@ -26,11 +26,7 @@ namespace ROMVault2.SupportedFiles.Files bSHA1 = null; crc = null; - Stream ds; - int errorCode = IO.FileStream.OpenFileRead(filename, out ds); - if (errorCode != 0) - return errorCode; - + Stream ds=null; CRC32Hash crc32 = new CRC32Hash(); MD5 md5 = null; @@ -38,24 +34,39 @@ namespace ROMVault2.SupportedFiles.Files SHA1 sha1 = null; if (testDeep) sha1 = SHA1.Create(); - long sizetogo = ds.Length; - - while (sizetogo > 0) + try { - int sizenow = sizetogo > Buffersize ? Buffersize : (int)sizetogo; + int errorCode = IO.FileStream.OpenFileRead(filename, out ds); + if (errorCode != 0) + return errorCode; - ds.Read(Buffer, 0, sizenow); - crc32.TransformBlock(Buffer, 0, sizenow, null, 0); - if (testDeep) md5.TransformBlock(Buffer, 0, sizenow, null, 0); - if (testDeep) sha1.TransformBlock(Buffer, 0, sizenow, null, 0); - sizetogo -= sizenow; + long sizetogo = ds.Length; + + while (sizetogo > 0) + { + int sizenow = sizetogo > Buffersize ? Buffersize : (int)sizetogo; + + ds.Read(Buffer, 0, sizenow); + crc32.TransformBlock(Buffer, 0, sizenow, null, 0); + if (testDeep) md5.TransformBlock(Buffer, 0, sizenow, null, 0); + if (testDeep) sha1.TransformBlock(Buffer, 0, sizenow, null, 0); + sizetogo -= sizenow; + } + + crc32.TransformFinalBlock(Buffer, 0, 0); + if (testDeep) md5.TransformFinalBlock(Buffer, 0, 0); + if (testDeep) sha1.TransformFinalBlock(Buffer, 0, 0); + + ds.Close(); + } + catch + { + if (ds != null) + ds.Close(); + + return 0x17; } - crc32.TransformFinalBlock(Buffer, 0, 0); - if (testDeep) md5.TransformFinalBlock(Buffer, 0, 0); - if (testDeep) sha1.TransformFinalBlock(Buffer, 0, 0); - - ds.Close(); crc = crc32.Hash; if (testDeep) bMD5 = md5.Hash; From 2d6c5a7e26013b1f6bcee46a289943d03c33b6a9 Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 20:14:17 -0500 Subject: [PATCH 6/8] #18 replaced: Environment.SpecialFolder.DesktopDirectory with Environment.SpecialFolder.MyComputer --- ROMVault2/FrmSetDir.cs | 2 +- ROMVault2/FrmSettings.cs | 2 +- ROMVault2/Report.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ROMVault2/FrmSetDir.cs b/ROMVault2/FrmSetDir.cs index b646f2a..ff72870 100644 --- a/ROMVault2/FrmSetDir.cs +++ b/ROMVault2/FrmSetDir.cs @@ -80,7 +80,7 @@ namespace ROMVault2 { ShowNewFolderButton = true, Description = Resources.FrmSetDir_BtnSetRomLocationClick_Please_select_a_folder_for_This_Rom_Set, - RootFolder = (Settings.IsMono ? Environment.SpecialFolder.MyComputer : Environment.SpecialFolder.DesktopDirectory), + RootFolder = Environment.SpecialFolder.MyComputer, SelectedPath = DBHelper.GetRealPath(_datLocation) }; if (browse.ShowDialog() == DialogResult.OK) diff --git a/ROMVault2/FrmSettings.cs b/ROMVault2/FrmSettings.cs index 371e042..37ed2f4 100644 --- a/ROMVault2/FrmSettings.cs +++ b/ROMVault2/FrmSettings.cs @@ -88,7 +88,7 @@ namespace ROMVault2 { ShowNewFolderButton = true, Description = Resources.FrmSettings_BtnDatClick_Please_select_a_folder_for_DAT_Root, - RootFolder = (Settings.IsMono ? Environment.SpecialFolder.MyComputer : Environment.SpecialFolder.DesktopDirectory), + RootFolder = Environment.SpecialFolder.MyComputer, SelectedPath = Settings.DatRoot }; diff --git a/ROMVault2/Report.cs b/ROMVault2/Report.cs index d801e8d..cb2b916 100644 --- a/ROMVault2/Report.cs +++ b/ROMVault2/Report.cs @@ -40,7 +40,7 @@ namespace ROMVault2 { ShowNewFolderButton = true, Description = @"Please select a folder for Dats", - RootFolder = (Settings.IsMono ? Environment.SpecialFolder.MyComputer : Environment.SpecialFolder.DesktopDirectory), + RootFolder = Environment.SpecialFolder.MyComputer , SelectedPath = @"apps" }; From c61eead2ba7441048176210bf5b666d8c45c1a75 Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 20:18:21 -0500 Subject: [PATCH 7/8] #16 Changed SelectedPath = @"apps" to SelectedPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Reports") --- ROMVault2/Report.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ROMVault2/Report.cs b/ROMVault2/Report.cs index cb2b916..afe1300 100644 --- a/ROMVault2/Report.cs +++ b/ROMVault2/Report.cs @@ -40,8 +40,8 @@ namespace ROMVault2 { ShowNewFolderButton = true, Description = @"Please select a folder for Dats", - RootFolder = Environment.SpecialFolder.MyComputer , - SelectedPath = @"apps" + RootFolder = Environment.SpecialFolder.MyComputer, + SelectedPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Reports") }; if (browse.ShowDialog() != DialogResult.OK) return; @@ -195,7 +195,7 @@ namespace ROMVault2 SaveFileDialog saveFileDialog1 = new SaveFileDialog { Title = @"Generate Full Report", - FileName = @"RVFullReport"+CleanTime()+".txt", + FileName = @"RVFullReport" + CleanTime() + ".txt", Filter = @"Rom Vault Report (*.txt)|*.txt|All Files (*.*)|*.*", FilterIndex = 1 }; @@ -226,7 +226,7 @@ namespace ROMVault2 SaveFileDialog saveFileDialog1 = new SaveFileDialog { Title = @"Generate Fix Report", - FileName = @"RVFixReport"+CleanTime()+".txt", + FileName = @"RVFixReport" + CleanTime() + ".txt", Filter = @"Rom Vault Fixing Report (*.txt)|*.txt|All Files (*.*)|*.*", FilterIndex = 1 }; From e6e0c73dcdee9b76547a2896b126778efa4317d9 Mon Sep 17 00:00:00 2001 From: gjefferyes Date: Wed, 16 Sep 2015 20:52:03 -0500 Subject: [PATCH 8/8] Version 2.2.4 --- ROMVault2/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROMVault2/Program.cs b/ROMVault2/Program.cs index abf9a20..d47b0df 100644 --- a/ROMVault2/Program.cs +++ b/ROMVault2/Program.cs @@ -15,7 +15,7 @@ namespace ROMVault2 //public static UsernamePassword Up; public static readonly Encoding Enc = Encoding.GetEncoding(28591); public const string Version = "2.2"; - public const int SubVersion = 3; + public const int SubVersion = 4; public static SynchronizationContext SyncCont;