From 0809573f4d345013b1287a2e1ede6aa6e8ade449 Mon Sep 17 00:00:00 2001 From: beirich Date: Tue, 11 Mar 2014 04:09:58 +0000 Subject: [PATCH] dbman: add size field to database --- BizHawk.Client.DBMan/DB.cs | 5 +- .../DBMan_MainForm.Designer.cs | 357 ++++++++++-------- BizHawk.Client.DBMan/DBMan_MainForm.cs | 2 +- BizHawk.Client.DBMan/DirectoryScan.cs | 5 +- BizHawk.Client.DBMan/RomHasher.cs | 2 + output/game.db | Bin 327680 -> 360448 bytes 6 files changed, 200 insertions(+), 171 deletions(-) diff --git a/BizHawk.Client.DBMan/DB.cs b/BizHawk.Client.DBMan/DB.cs index 6f1f2ccbb5..c999e1119a 100644 --- a/BizHawk.Client.DBMan/DB.cs +++ b/BizHawk.Client.DBMan/DB.cs @@ -19,6 +19,7 @@ namespace BizHawk.Client.DBMan public string RomMetadata; public string RomStatus; public string Catalog; + public long Size; public override string ToString() { return Name + " " + VersionTags; } public Game Game; @@ -32,6 +33,7 @@ namespace BizHawk.Client.DBMan return Game.GameMetadata + ";" + RomMetadata; } } + public string SizeFriendly { get { return string.Format("{0} bytes ({1}k)", Size, Size / 1024); } } } public class Game @@ -100,7 +102,7 @@ namespace BizHawk.Client.DBMan static void LoadRoms(string system) { var cmd = Con.CreateCommand(); - cmd.CommandText = "SELECT rom_id, crc32, md5, sha1, system, name, region, version_tags, rom_metadata, rom_status, catalog FROM rom WHERE system = @System"; + cmd.CommandText = "SELECT rom_id, crc32, md5, sha1, system, name, region, version_tags, rom_metadata, rom_status, catalog, size FROM rom WHERE system = @System"; cmd.Parameters.Add(new SqliteParameter("@System", system)); var reader = cmd.ExecuteReader(); while (reader.NextResult()) @@ -117,6 +119,7 @@ namespace BizHawk.Client.DBMan rom.RomMetadata = reader.GetString(8); rom.RomStatus = reader.GetString(9); rom.Catalog = reader.GetString(10); + rom.Size = reader.GetInt64(11); rom.Game = GameMap[rom.Name]; Roms.Add(rom); } diff --git a/BizHawk.Client.DBMan/DBMan_MainForm.Designer.cs b/BizHawk.Client.DBMan/DBMan_MainForm.Designer.cs index 06a6c989dc..d769c5197f 100644 --- a/BizHawk.Client.DBMan/DBMan_MainForm.Designer.cs +++ b/BizHawk.Client.DBMan/DBMan_MainForm.Designer.cs @@ -41,6 +41,22 @@ this.romListColumnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.romListColumnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.detailPanel = new System.Windows.Forms.Panel(); + this.notesLabel = new System.Windows.Forms.Label(); + this.notesBox = new System.Windows.Forms.TextBox(); + this.altNamesLabel = new System.Windows.Forms.Label(); + this.altNamesBox = new System.Windows.Forms.TextBox(); + this.cancelButton = new System.Windows.Forms.Button(); + this.saveButton = new System.Windows.Forms.Button(); + this.playersBox = new System.Windows.Forms.TextBox(); + this.catalogLabel = new System.Windows.Forms.Label(); + this.catalogBox = new System.Windows.Forms.TextBox(); + this.playersLabel = new System.Windows.Forms.Label(); + this.releaseDateLabel = new System.Windows.Forms.Label(); + this.releaseDateBox = new System.Windows.Forms.TextBox(); + this.classificationLabel = new System.Windows.Forms.Label(); + this.classificationBox = new System.Windows.Forms.ComboBox(); + this.publisherLabel = new System.Windows.Forms.Label(); + this.publisherBox = new System.Windows.Forms.TextBox(); this.developerLabel = new System.Windows.Forms.Label(); this.developerBox = new System.Windows.Forms.TextBox(); this.romStatusLabel = new System.Windows.Forms.Label(); @@ -68,23 +84,9 @@ this.mainMenuStrip = new System.Windows.Forms.MenuStrip(); this.databaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.directoryScanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.publisherBox = new System.Windows.Forms.TextBox(); - this.publisherLabel = new System.Windows.Forms.Label(); - this.classificationBox = new System.Windows.Forms.ComboBox(); - this.classificationLabel = new System.Windows.Forms.Label(); - this.releaseDateBox = new System.Windows.Forms.TextBox(); - this.releaseDateLabel = new System.Windows.Forms.Label(); - this.playersLabel = new System.Windows.Forms.Label(); - this.catalogBox = new System.Windows.Forms.TextBox(); - this.catalogLabel = new System.Windows.Forms.Label(); - this.playersBox = new System.Windows.Forms.TextBox(); - this.saveButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); this.cleanupDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.altNamesBox = new System.Windows.Forms.TextBox(); - this.altNamesLabel = new System.Windows.Forms.Label(); - this.notesBox = new System.Windows.Forms.TextBox(); - this.notesLabel = new System.Windows.Forms.Label(); + this.sizeBox = new System.Windows.Forms.TextBox(); + this.sizeLabel = new System.Windows.Forms.Label(); this.filterPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); @@ -153,7 +155,7 @@ // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.detailPanel); - this.splitContainer1.Size = new System.Drawing.Size(963, 588); + this.splitContainer1.Size = new System.Drawing.Size(963, 624); this.splitContainer1.SplitterDistance = 492; this.splitContainer1.TabIndex = 0; this.splitContainer1.TabStop = false; @@ -172,7 +174,7 @@ this.romListView.Location = new System.Drawing.Point(0, 0); this.romListView.MultiSelect = false; this.romListView.Name = "romListView"; - this.romListView.Size = new System.Drawing.Size(492, 588); + this.romListView.Size = new System.Drawing.Size(492, 624); this.romListView.TabIndex = 0; this.romListView.TabStop = false; this.romListView.UseCompatibleStateImageBehavior = false; @@ -206,6 +208,8 @@ // // detailPanel // + this.detailPanel.Controls.Add(this.sizeLabel); + this.detailPanel.Controls.Add(this.sizeBox); this.detailPanel.Controls.Add(this.notesLabel); this.detailPanel.Controls.Add(this.notesBox); this.detailPanel.Controls.Add(this.altNamesLabel); @@ -249,9 +253,158 @@ this.detailPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.detailPanel.Location = new System.Drawing.Point(0, 0); this.detailPanel.Name = "detailPanel"; - this.detailPanel.Size = new System.Drawing.Size(467, 588); + this.detailPanel.Size = new System.Drawing.Size(467, 624); this.detailPanel.TabIndex = 0; // + // notesLabel + // + this.notesLabel.AutoSize = true; + this.notesLabel.Location = new System.Drawing.Point(3, 408); + this.notesLabel.Name = "notesLabel"; + this.notesLabel.Size = new System.Drawing.Size(35, 13); + this.notesLabel.TabIndex = 48; + this.notesLabel.Text = "Notes"; + // + // notesBox + // + this.notesBox.Location = new System.Drawing.Point(80, 408); + this.notesBox.Multiline = true; + this.notesBox.Name = "notesBox"; + this.notesBox.Size = new System.Drawing.Size(296, 61); + this.notesBox.TabIndex = 44; + // + // altNamesLabel + // + this.altNamesLabel.AutoSize = true; + this.altNamesLabel.Location = new System.Drawing.Point(3, 381); + this.altNamesLabel.Name = "altNamesLabel"; + this.altNamesLabel.Size = new System.Drawing.Size(55, 13); + this.altNamesLabel.TabIndex = 46; + this.altNamesLabel.Text = "Alt Names"; + // + // altNamesBox + // + this.altNamesBox.Location = new System.Drawing.Point(80, 381); + this.altNamesBox.Name = "altNamesBox"; + this.altNamesBox.Size = new System.Drawing.Size(296, 20); + this.altNamesBox.TabIndex = 42; + // + // cancelButton + // + this.cancelButton.Location = new System.Drawing.Point(125, 589); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 48; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // saveButton + // + this.saveButton.Location = new System.Drawing.Point(6, 589); + this.saveButton.Name = "saveButton"; + this.saveButton.Size = new System.Drawing.Size(75, 23); + this.saveButton.TabIndex = 46; + this.saveButton.Text = "&Save"; + this.saveButton.UseVisualStyleBackColor = true; + this.saveButton.Click += new System.EventHandler(this.saveButton_Click); + // + // playersBox + // + this.playersBox.AutoCompleteCustomSource.AddRange(new string[] { + "1 Player", + "2 Players Alternating", + "2 Players Cooperative", + "2 Players Versus"}); + this.playersBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.playersBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; + this.playersBox.Location = new System.Drawing.Point(80, 326); + this.playersBox.Name = "playersBox"; + this.playersBox.Size = new System.Drawing.Size(194, 20); + this.playersBox.TabIndex = 38; + // + // catalogLabel + // + this.catalogLabel.AutoSize = true; + this.catalogLabel.Location = new System.Drawing.Point(3, 354); + this.catalogLabel.Name = "catalogLabel"; + this.catalogLabel.Size = new System.Drawing.Size(43, 13); + this.catalogLabel.TabIndex = 41; + this.catalogLabel.Text = "Catalog"; + // + // catalogBox + // + this.catalogBox.Location = new System.Drawing.Point(80, 354); + this.catalogBox.Name = "catalogBox"; + this.catalogBox.Size = new System.Drawing.Size(194, 20); + this.catalogBox.TabIndex = 40; + // + // playersLabel + // + this.playersLabel.AutoSize = true; + this.playersLabel.Location = new System.Drawing.Point(3, 326); + this.playersLabel.Name = "playersLabel"; + this.playersLabel.Size = new System.Drawing.Size(41, 13); + this.playersLabel.TabIndex = 39; + this.playersLabel.Text = "Players"; + // + // releaseDateLabel + // + this.releaseDateLabel.AutoSize = true; + this.releaseDateLabel.Location = new System.Drawing.Point(3, 299); + this.releaseDateLabel.Name = "releaseDateLabel"; + this.releaseDateLabel.Size = new System.Drawing.Size(48, 13); + this.releaseDateLabel.TabIndex = 37; + this.releaseDateLabel.Text = "Rls Date"; + // + // releaseDateBox + // + this.releaseDateBox.Location = new System.Drawing.Point(80, 299); + this.releaseDateBox.Name = "releaseDateBox"; + this.releaseDateBox.Size = new System.Drawing.Size(100, 20); + this.releaseDateBox.TabIndex = 36; + // + // classificationLabel + // + this.classificationLabel.AutoSize = true; + this.classificationLabel.Location = new System.Drawing.Point(3, 271); + this.classificationLabel.Name = "classificationLabel"; + this.classificationLabel.Size = new System.Drawing.Size(32, 13); + this.classificationLabel.TabIndex = 35; + this.classificationLabel.Text = "Class"; + // + // classificationBox + // + this.classificationBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.classificationBox.FormattingEnabled = true; + this.classificationBox.Items.AddRange(new object[] { + "Licensed", + "Unlicensed", + "Homebrew", + "Firmware"}); + this.classificationBox.Location = new System.Drawing.Point(80, 271); + this.classificationBox.Name = "classificationBox"; + this.classificationBox.Size = new System.Drawing.Size(121, 21); + this.classificationBox.TabIndex = 34; + // + // publisherLabel + // + this.publisherLabel.AutoSize = true; + this.publisherLabel.Location = new System.Drawing.Point(3, 244); + this.publisherLabel.Name = "publisherLabel"; + this.publisherLabel.Size = new System.Drawing.Size(50, 13); + this.publisherLabel.TabIndex = 33; + this.publisherLabel.Text = "Publisher"; + // + // publisherBox + // + this.publisherBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.publisherBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; + this.publisherBox.Location = new System.Drawing.Point(80, 244); + this.publisherBox.Name = "publisherBox"; + this.publisherBox.Size = new System.Drawing.Size(194, 20); + this.publisherBox.TabIndex = 32; + // // developerLabel // this.developerLabel.AutoSize = true; @@ -494,171 +647,39 @@ // directoryScanToolStripMenuItem // this.directoryScanToolStripMenuItem.Name = "directoryScanToolStripMenuItem"; - this.directoryScanToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.directoryScanToolStripMenuItem.Size = new System.Drawing.Size(150, 22); this.directoryScanToolStripMenuItem.Text = "Directory Scan"; this.directoryScanToolStripMenuItem.Click += new System.EventHandler(this.directoryScanToolStripMenuItem_Click); // - // publisherBox - // - this.publisherBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.publisherBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; - this.publisherBox.Location = new System.Drawing.Point(80, 244); - this.publisherBox.Name = "publisherBox"; - this.publisherBox.Size = new System.Drawing.Size(194, 20); - this.publisherBox.TabIndex = 32; - // - // publisherLabel - // - this.publisherLabel.AutoSize = true; - this.publisherLabel.Location = new System.Drawing.Point(3, 244); - this.publisherLabel.Name = "publisherLabel"; - this.publisherLabel.Size = new System.Drawing.Size(50, 13); - this.publisherLabel.TabIndex = 33; - this.publisherLabel.Text = "Publisher"; - // - // classificationBox - // - this.classificationBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.classificationBox.FormattingEnabled = true; - this.classificationBox.Items.AddRange(new object[] { - "Licensed", - "Unlicensed", - "Homebrew", - "Firmware"}); - this.classificationBox.Location = new System.Drawing.Point(80, 271); - this.classificationBox.Name = "classificationBox"; - this.classificationBox.Size = new System.Drawing.Size(121, 21); - this.classificationBox.TabIndex = 34; - // - // classificationLabel - // - this.classificationLabel.AutoSize = true; - this.classificationLabel.Location = new System.Drawing.Point(3, 271); - this.classificationLabel.Name = "classificationLabel"; - this.classificationLabel.Size = new System.Drawing.Size(32, 13); - this.classificationLabel.TabIndex = 35; - this.classificationLabel.Text = "Class"; - // - // releaseDateBox - // - this.releaseDateBox.Location = new System.Drawing.Point(80, 299); - this.releaseDateBox.Name = "releaseDateBox"; - this.releaseDateBox.Size = new System.Drawing.Size(100, 20); - this.releaseDateBox.TabIndex = 36; - // - // releaseDateLabel - // - this.releaseDateLabel.AutoSize = true; - this.releaseDateLabel.Location = new System.Drawing.Point(3, 299); - this.releaseDateLabel.Name = "releaseDateLabel"; - this.releaseDateLabel.Size = new System.Drawing.Size(48, 13); - this.releaseDateLabel.TabIndex = 37; - this.releaseDateLabel.Text = "Rls Date"; - // - // playersLabel - // - this.playersLabel.AutoSize = true; - this.playersLabel.Location = new System.Drawing.Point(3, 326); - this.playersLabel.Name = "playersLabel"; - this.playersLabel.Size = new System.Drawing.Size(41, 13); - this.playersLabel.TabIndex = 39; - this.playersLabel.Text = "Players"; - // - // catalogBox - // - this.catalogBox.Location = new System.Drawing.Point(80, 354); - this.catalogBox.Name = "catalogBox"; - this.catalogBox.Size = new System.Drawing.Size(194, 20); - this.catalogBox.TabIndex = 40; - // - // catalogLabel - // - this.catalogLabel.AutoSize = true; - this.catalogLabel.Location = new System.Drawing.Point(3, 354); - this.catalogLabel.Name = "catalogLabel"; - this.catalogLabel.Size = new System.Drawing.Size(43, 13); - this.catalogLabel.TabIndex = 41; - this.catalogLabel.Text = "Catalog"; - // - // playersBox - // - this.playersBox.AutoCompleteCustomSource.AddRange(new string[] { - "1 Player", - "2 Players Alternating", - "2 Players Cooperative", - "2 Players Versus"}); - this.playersBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.playersBox.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; - this.playersBox.Location = new System.Drawing.Point(80, 326); - this.playersBox.Name = "playersBox"; - this.playersBox.Size = new System.Drawing.Size(194, 20); - this.playersBox.TabIndex = 38; - // - // saveButton - // - this.saveButton.Location = new System.Drawing.Point(6, 556); - this.saveButton.Name = "saveButton"; - this.saveButton.Size = new System.Drawing.Size(75, 23); - this.saveButton.TabIndex = 46; - this.saveButton.Text = "&Save"; - this.saveButton.UseVisualStyleBackColor = true; - this.saveButton.Click += new System.EventHandler(this.saveButton_Click); - // - // cancelButton - // - this.cancelButton.Location = new System.Drawing.Point(125, 556); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(75, 23); - this.cancelButton.TabIndex = 48; - this.cancelButton.Text = "Cancel"; - this.cancelButton.UseVisualStyleBackColor = true; - this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); - // // cleanupDBToolStripMenuItem // this.cleanupDBToolStripMenuItem.Name = "cleanupDBToolStripMenuItem"; - this.cleanupDBToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.cleanupDBToolStripMenuItem.Size = new System.Drawing.Size(150, 22); this.cleanupDBToolStripMenuItem.Text = "Cleanup DB"; this.cleanupDBToolStripMenuItem.Click += new System.EventHandler(this.cleanupDBToolStripMenuItem_Click); // - // altNamesBox + // sizeBox // - this.altNamesBox.Location = new System.Drawing.Point(80, 381); - this.altNamesBox.Name = "altNamesBox"; - this.altNamesBox.Size = new System.Drawing.Size(296, 20); - this.altNamesBox.TabIndex = 42; + this.sizeBox.Location = new System.Drawing.Point(80, 557); + this.sizeBox.Name = "sizeBox"; + this.sizeBox.ReadOnly = true; + this.sizeBox.Size = new System.Drawing.Size(255, 20); + this.sizeBox.TabIndex = 49; // - // altNamesLabel + // sizeLabel // - this.altNamesLabel.AutoSize = true; - this.altNamesLabel.Location = new System.Drawing.Point(3, 381); - this.altNamesLabel.Name = "altNamesLabel"; - this.altNamesLabel.Size = new System.Drawing.Size(55, 13); - this.altNamesLabel.TabIndex = 46; - this.altNamesLabel.Text = "Alt Names"; - // - // notesBox - // - this.notesBox.Location = new System.Drawing.Point(80, 408); - this.notesBox.Multiline = true; - this.notesBox.Name = "notesBox"; - this.notesBox.Size = new System.Drawing.Size(296, 61); - this.notesBox.TabIndex = 44; - // - // notesLabel - // - this.notesLabel.AutoSize = true; - this.notesLabel.Location = new System.Drawing.Point(3, 408); - this.notesLabel.Name = "notesLabel"; - this.notesLabel.Size = new System.Drawing.Size(35, 13); - this.notesLabel.TabIndex = 48; - this.notesLabel.Text = "Notes"; + this.sizeLabel.AutoSize = true; + this.sizeLabel.Location = new System.Drawing.Point(6, 557); + this.sizeLabel.Name = "sizeLabel"; + this.sizeLabel.Size = new System.Drawing.Size(27, 13); + this.sizeLabel.TabIndex = 50; + this.sizeLabel.Text = "Size"; // // DBMan_MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(963, 642); + this.ClientSize = new System.Drawing.Size(963, 678); this.Controls.Add(this.splitContainer1); this.Controls.Add(this.filterPanel); this.Controls.Add(this.mainMenuStrip); @@ -740,6 +761,8 @@ private System.Windows.Forms.TextBox altNamesBox; private System.Windows.Forms.Label notesLabel; private System.Windows.Forms.TextBox notesBox; + private System.Windows.Forms.Label sizeLabel; + private System.Windows.Forms.TextBox sizeBox; } } diff --git a/BizHawk.Client.DBMan/DBMan_MainForm.cs b/BizHawk.Client.DBMan/DBMan_MainForm.cs index 2e63077903..d0b6faa51e 100644 --- a/BizHawk.Client.DBMan/DBMan_MainForm.cs +++ b/BizHawk.Client.DBMan/DBMan_MainForm.cs @@ -117,6 +117,7 @@ namespace BizHawk.Client.DBMan crcBox.Text = rom.CRC32; md5Box.Text = rom.MD5; sha1Box.Text = rom.SHA1; + sizeBox.Text = rom.SizeFriendly; regionBox.Text = rom.Region; versionBox.Text = rom.VersionTags; gameMetaBox.Text = rom.Game.GameMetadata; @@ -181,7 +182,6 @@ namespace BizHawk.Client.DBMan if (saveMode == 1) DB.SaveRom1(SelectedRom, origSystem, origName); if (saveMode == 2) DB.SaveRom2(SelectedRom); - if (romListView.SelectedItems.Count > 0) { // Update the side listing diff --git a/BizHawk.Client.DBMan/DirectoryScan.cs b/BizHawk.Client.DBMan/DirectoryScan.cs index ce40ef092f..4196af3d3a 100644 --- a/BizHawk.Client.DBMan/DirectoryScan.cs +++ b/BizHawk.Client.DBMan/DirectoryScan.cs @@ -91,11 +91,12 @@ namespace BizHawk.Client.DBMan using (var cmd = DB.Con.CreateCommand()) { cmd.CommandText = - "INSERT INTO rom (crc32, md5, sha1, system, name, region, version_tags) "+ - "VALUES (@crc32, @md5, @sha1, @System, @Name, @Region, @VersionTags)"; + "INSERT INTO rom (crc32, md5, sha1, size, system, name, region, version_tags) "+ + "VALUES (@crc32, @md5, @sha1, @size, @System, @Name, @Region, @VersionTags)"; cmd.Parameters.Add(new SqliteParameter("@crc32", rom.CRC32)); cmd.Parameters.Add(new SqliteParameter("@md5", rom.MD5)); cmd.Parameters.Add(new SqliteParameter("@sha1", rom.SHA1)); + cmd.Parameters.Add(new SqliteParameter("@size", rom.Size)); cmd.Parameters.Add(new SqliteParameter("@System", rom.GuessedSystem)); cmd.Parameters.Add(new SqliteParameter("@Name", rom.Name)); cmd.Parameters.Add(new SqliteParameter("@Region", rom.GuessedRegion)); diff --git a/BizHawk.Client.DBMan/RomHasher.cs b/BizHawk.Client.DBMan/RomHasher.cs index 40a6c471bb..fde2e52cfc 100644 --- a/BizHawk.Client.DBMan/RomHasher.cs +++ b/BizHawk.Client.DBMan/RomHasher.cs @@ -17,6 +17,7 @@ namespace BizHawk.Client.DBMan public string CRC32; public string MD5; public string SHA1; + public long Size; public override string ToString() { @@ -167,6 +168,7 @@ namespace BizHawk.Client.DBMan info.CRC32 = Hash_CRC32(romBytes); info.MD5 = Hash_MD5(romBytes); info.SHA1 = Hash_SHA1(romBytes); + info.Size = romBytes.Length; return info; } diff --git a/output/game.db b/output/game.db index 95701bc8c4e63d9c0e595d32b3dfc8a1d7cc7829..b7ea78ff5bb1410ac8f5f87bac76e21befce1563 100644 GIT binary patch delta 55329 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 nK&bLhDEf?6IikLuVbD*r?4(@LC;8Um~2T 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 delta 38399 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 F_kUnw{gMCx