Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/hakchi2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FdsGame.cs94
-rw-r--r--GameGenieCodeAddModForm.cs2
-rw-r--r--GameGenieDataBase.cs6
-rw-r--r--GameGeniePatcher.cs (renamed from GameGenie.cs)25
-rw-r--r--INesMenuElement.cs2
-rw-r--r--MainForm.Designer.cs140
-rw-r--r--MainForm.cs118
-rw-r--r--MainForm.resx2436
-rw-r--r--MainForm.ru-RU.resx2
-rw-r--r--NesGame.cs470
-rw-r--r--NesMenuCollection.cs14
-rw-r--r--NesMenuFolder.cs3
-rw-r--r--NesMiniApplication.cs395
-rw-r--r--Properties/AssemblyInfo.cs2
-rw-r--r--SearchForm.cs2
-rw-r--r--TreeContructorForm.cs20
-rw-r--r--TreeContructorForm.resx158
-rw-r--r--TreeContructorForm.ru-RU.resx48
-rw-r--r--WorkerForm.cs177
-rw-r--r--hakchi_gui.csproj15
-rw-r--r--images/blank_sm.pngbin229 -> 276 bytes
-rw-r--r--images/blank_sm_tr.pngbin229 -> 275 bytes
-rw-r--r--images/folder_sm.pngbin217 -> 244 bytes
-rw-r--r--images/folder_sm_tr.pngbin206 -> 244 bytes
-rw-r--r--images/original_sm.pngbin348 -> 410 bytes
-rw-r--r--nQuant.Core/Box.cs15
-rw-r--r--nQuant.Core/ColorData.cs45
-rw-r--r--nQuant.Core/CubeCut.cs14
-rw-r--r--nQuant.Core/IWuQuantizer.cs9
-rw-r--r--nQuant.Core/Lookup.cs10
-rw-r--r--nQuant.Core/LookupData.cs16
-rw-r--r--nQuant.Core/Pixel.cs21
-rw-r--r--nQuant.Core/QuantizationException.cs15
-rw-r--r--nQuant.Core/QuantizedPalette.cs16
-rw-r--r--nQuant.Core/WuQuantizer.cs99
-rw-r--r--nQuant.Core/WuQuantizerBase.cs573
36 files changed, 2142 insertions, 2820 deletions
diff --git a/FdsGame.cs b/FdsGame.cs
new file mode 100644
index 00000000..721006c4
--- /dev/null
+++ b/FdsGame.cs
@@ -0,0 +1,94 @@
+using com.clusterrr.Famicom;
+using com.clusterrr.hakchi_gui.Properties;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Windows.Forms;
+using System.Xml.XPath;
+
+namespace com.clusterrr.hakchi_gui
+{
+ public class FdsGame : NesMiniApplication
+ {
+ protected const char prefixCode = 'D';
+
+ public readonly string FdsPath;
+ const string DefaultArgs = "--guest-overscan-dimensions 0,0,9,3 --initial-fadein-durations 10,2 --volume 75 --enable-armet --fds-auto-disk-side-switch-on-keypress";
+
+ public string Args
+ {
+ get
+ {
+ if (Command.Contains(".fds"))
+ return Command.Substring(Command.IndexOf(".fds") + 4).Trim();
+ else
+ return "";
+ }
+ set
+ {
+ Command = string.Format("/usr/bin/clover-kachikachi /usr/share/games/nes/kachikachi/{0}/{0}.fds {1}", code, value);
+ }
+ }
+
+ public FdsGame(string path, bool ignoreEmptyConfig)
+ : base(path, ignoreEmptyConfig)
+ {
+ FdsPath = Path.Combine(GamePath, Code + ".fds");
+ Args = DefaultArgs;
+ hasUnsavedChanges = false;
+ }
+
+ public static FdsGame Import(string fdsFileName, byte[] rawRomData = null)
+ {
+ if (rawRomData == null)
+ rawRomData = File.ReadAllBytes(fdsFileName);
+ var crc32 = CRC32(rawRomData);
+ var code = GenerateCode(crc32, prefixCode);
+ var gamePath = Path.Combine(GamesDirectory, code);
+ var fdsPath = Path.Combine(gamePath, code + ".fds");
+ Directory.CreateDirectory(gamePath);
+ File.WriteAllBytes(fdsPath, rawRomData);
+ var game = new FdsGame(gamePath, true);
+
+ game.Name = Path.GetFileNameWithoutExtension(fdsFileName);
+ game.Name = Regex.Replace(game.Name, @" ?\(.*?\)", string.Empty).Trim();
+ game.Name = Regex.Replace(game.Name, @" ?\[.*?\]", string.Empty).Trim();
+ game.Name = game.Name.Replace("_", " ").Replace(" ", " ")/*.Replace(", The", "")*/.Trim();
+
+ // Trying to find cover file
+ Image cover = null;
+ if (!string.IsNullOrEmpty(fdsFileName))
+ {
+ var imagePath = Path.Combine(Path.GetDirectoryName(fdsFileName), Path.GetFileNameWithoutExtension(fdsFileName) + ".png");
+ if (File.Exists(imagePath))
+ cover = LoadBitmap(imagePath);
+ imagePath = Path.Combine(Path.GetDirectoryName(fdsFileName), Path.GetFileNameWithoutExtension(fdsFileName) + ".jpg");
+ if (File.Exists(imagePath))
+ cover = LoadBitmap(imagePath);
+ var artDirectory = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "art");
+ Directory.CreateDirectory(artDirectory);
+ imagePath = Path.Combine(artDirectory, Path.GetFileNameWithoutExtension(fdsFileName) + ".png");
+ if (File.Exists(imagePath))
+ cover = LoadBitmap(imagePath);
+ imagePath = Path.Combine(artDirectory, Path.GetFileNameWithoutExtension(fdsFileName) + ".jpg");
+ if (File.Exists(imagePath))
+ cover = LoadBitmap(imagePath);
+ var covers = Directory.GetFiles(artDirectory, string.Format("{0:X8}*.*", crc32), SearchOption.AllDirectories);
+ if (covers.Length > 0)
+ cover = LoadBitmap(covers[0]);
+ }
+ if (cover == null)
+ cover = Resources.blank_fds;
+ game.Image = cover;
+ game.Save();
+ return game;
+ }
+ }
+}
+
diff --git a/GameGenieCodeAddModForm.cs b/GameGenieCodeAddModForm.cs
index b99f2e09..b94892c1 100644
--- a/GameGenieCodeAddModForm.cs
+++ b/GameGenieCodeAddModForm.cs
@@ -57,7 +57,7 @@ namespace com.clusterrr.hakchi_gui
NesFile lGame = new NesFile(FGame.NesPath);
try
{
- lGame.PRG = GameGenie.Patch(lGame.PRG, textBoxCode.Text);
+ lGame.PRG = GameGeniePatcher.Patch(lGame.PRG, textBoxCode.Text);
}
catch (GameGenieFormatException)
{
diff --git a/GameGenieDataBase.cs b/GameGenieDataBase.cs
index c6c5571a..07823daa 100644
--- a/GameGenieDataBase.cs
+++ b/GameGenieDataBase.cs
@@ -70,7 +70,7 @@ namespace com.clusterrr.hakchi_gui
private XmlNode FGameNode = null;
private List<GameGenieCode> FGameCodes = null;
private string FDBName = "";
- private NesGame FGame = null;
+ private NesMiniApplication FGame = null;
private bool FModified = false;
private XmlNode GameNode
@@ -134,7 +134,7 @@ namespace com.clusterrr.hakchi_gui
}
- public GameGenieDataBase(NesGame AGame)
+ public GameGenieDataBase(NesMiniApplication AGame)
{
DataBasePath = Path.Combine(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "data"), "GameGenieDB.xml");
FGame = AGame;
@@ -216,7 +216,7 @@ namespace com.clusterrr.hakchi_gui
NesFile lGame = new NesFile(lGameFileName);
try
{
- lGame.PRG = GameGenie.Patch(lGame.PRG, lCurCode["genie"].InnerText);
+ lGame.PRG = GameGeniePatcher.Patch(lGame.PRG, lCurCode["genie"].InnerText);
lCodeNode = FXml.CreateElement("gamegenie");
GameNode.AppendChild(lCodeNode);
diff --git a/GameGenie.cs b/GameGeniePatcher.cs
index 1d2c11d8..2f24d207 100644
--- a/GameGenie.cs
+++ b/GameGeniePatcher.cs
@@ -4,7 +4,7 @@ using System.Text;
namespace com.clusterrr.Famicom
{
- public static class GameGenie
+ public static class GameGeniePatcher
{
public static byte[] Patch(byte[] data, string code)
{
@@ -21,7 +21,7 @@ namespace com.clusterrr.Famicom
if (binaryCode.Length == 24)
{
- if (binaryCode[8] != '0') throw new GameGenieFormatException();
+ if (binaryCode[8] != '0') throw new GameGenieFormatException(code);
try
{
@@ -30,7 +30,7 @@ namespace com.clusterrr.Famicom
}
catch
{
- throw new GameGenieFormatException();
+ throw new GameGenieFormatException(code);
}
if (result.Length <= 0x8000)
@@ -49,7 +49,7 @@ namespace com.clusterrr.Famicom
}
else if (binaryCode.Length == 32)
{
- if (binaryCode[8] != '1') throw new GameGenieFormatException();
+ if (binaryCode[8] != '1') throw new GameGenieFormatException(code);
try
{
@@ -59,7 +59,7 @@ namespace com.clusterrr.Famicom
}
catch
{
- throw new GameGenieFormatException();
+ throw new GameGenieFormatException(code);
}
bool replaced = false;
@@ -75,7 +75,7 @@ namespace com.clusterrr.Famicom
}
if (!replaced) throw new GameGenieNotFoundException("Can't apply code: " + code);
}
- else throw new GameGenieFormatException();
+ else throw new GameGenieFormatException(code);
return result;
}
@@ -103,19 +103,20 @@ namespace com.clusterrr.Famicom
public class GameGenieFormatException : Exception
{
- public GameGenieFormatException()
- : base("Неправильный формат Game Genie кода")
- {
- }
- public GameGenieFormatException(string message) : base(message)
+ public readonly string Code;
+ public GameGenieFormatException(string code) : base()
{
+ Code = code;
}
}
public class GameGenieNotFoundException : Exception
{
- public GameGenieNotFoundException(string message) : base(message)
+ public readonly string Code;
+ public GameGenieNotFoundException(string code)
+ : base()
{
+ Code = code;
}
}
}
diff --git a/INesMenuElement.cs b/INesMenuElement.cs
index ef368b45..9426414f 100644
--- a/INesMenuElement.cs
+++ b/INesMenuElement.cs
@@ -7,7 +7,7 @@ namespace com.clusterrr.hakchi_gui
{
public interface INesMenuElement
{
- string Code { get; set; }
+ string Code { get; }
string Name { get; set; }
}
}
diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs
index 3e83d28e..56524540 100644
--- a/MainForm.Designer.cs
+++ b/MainForm.Designer.cs
@@ -141,17 +141,16 @@
//
// menuStrip
//
- resources.ApplyResources(this.menuStrip, "menuStrip");
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.kernelToolStripMenuItem,
this.settingsToolStripMenuItem,
this.helpToolStripMenuItem});
+ resources.ApplyResources(this.menuStrip, "menuStrip");
this.menuStrip.Name = "menuStrip";
//
// fileToolStripMenuItem
//
- resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addMoreGamesToolStripMenuItem,
this.presetsToolStripMenuItem,
@@ -160,98 +159,98 @@
this.toolStripMenuItem1,
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ resources.ApplyResources(this.fileToolStripMenuItem, "fileToolStripMenuItem");
//
// addMoreGamesToolStripMenuItem
//
- resources.ApplyResources(this.addMoreGamesToolStripMenuItem, "addMoreGamesToolStripMenuItem");
this.addMoreGamesToolStripMenuItem.Name = "addMoreGamesToolStripMenuItem";
+ resources.ApplyResources(this.addMoreGamesToolStripMenuItem, "addMoreGamesToolStripMenuItem");
this.addMoreGamesToolStripMenuItem.Click += new System.EventHandler(this.buttonAddGames_Click);
//
// presetsToolStripMenuItem
//
- resources.ApplyResources(this.presetsToolStripMenuItem, "presetsToolStripMenuItem");
this.presetsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem2,
this.addPresetToolStripMenuItem,
this.deletePresetToolStripMenuItem});
this.presetsToolStripMenuItem.Name = "presetsToolStripMenuItem";
+ resources.ApplyResources(this.presetsToolStripMenuItem, "presetsToolStripMenuItem");
//
// toolStripMenuItem2
//
- resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
+ resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2");
//
// addPresetToolStripMenuItem
//
- resources.ApplyResources(this.addPresetToolStripMenuItem, "addPresetToolStripMenuItem");
this.addPresetToolStripMenuItem.Name = "addPresetToolStripMenuItem";
+ resources.ApplyResources(this.addPresetToolStripMenuItem, "addPresetToolStripMenuItem");
this.addPresetToolStripMenuItem.Click += new System.EventHandler(this.AddPreset);
//
// deletePresetToolStripMenuItem
//
- resources.ApplyResources(this.deletePresetToolStripMenuItem, "deletePresetToolStripMenuItem");
this.deletePresetToolStripMenuItem.Name = "deletePresetToolStripMenuItem";
+ resources.ApplyResources(this.deletePresetToolStripMenuItem, "deletePresetToolStripMenuItem");
//
// searchToolStripMenuItem
//
- resources.ApplyResources(this.searchToolStripMenuItem, "searchToolStripMenuItem");
this.searchToolStripMenuItem.Name = "searchToolStripMenuItem";
+ resources.ApplyResources(this.searchToolStripMenuItem, "searchToolStripMenuItem");
this.searchToolStripMenuItem.Click += new System.EventHandler(this.searchToolStripMenuItem_Click);
//
// downloadCoversForAllGamesToolStripMenuItem
//
- resources.ApplyResources(this.downloadCoversForAllGamesToolStripMenuItem, "downloadCoversForAllGamesToolStripMenuItem");
this.downloadCoversForAllGamesToolStripMenuItem.Name = "downloadCoversForAllGamesToolStripMenuItem";
+ resources.ApplyResources(this.downloadCoversForAllGamesToolStripMenuItem, "downloadCoversForAllGamesToolStripMenuItem");
this.downloadCoversForAllGamesToolStripMenuItem.Click += new System.EventHandler(this.downloadCoversForAllGamesToolStripMenuItem_Click);
//
// toolStripMenuItem1
//
- resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
+ resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1");
//
// exitToolStripMenuItem
//
- resources.ApplyResources(this.exitToolStripMenuItem, "exitToolStripMenuItem");
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+ resources.ApplyResources(this.exitToolStripMenuItem, "exitToolStripMenuItem");
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// kernelToolStripMenuItem
//
- resources.ApplyResources(this.kernelToolStripMenuItem, "kernelToolStripMenuItem");
this.kernelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.dumpKernelToolStripMenuItem,
this.flashOriginalKernelToolStripMenuItem,
this.flashCustomKernelToolStripMenuItem,
this.uninstallToolStripMenuItem});
this.kernelToolStripMenuItem.Name = "kernelToolStripMenuItem";
+ resources.ApplyResources(this.kernelToolStripMenuItem, "kernelToolStripMenuItem");
//
// dumpKernelToolStripMenuItem
//
- resources.ApplyResources(this.dumpKernelToolStripMenuItem, "dumpKernelToolStripMenuItem");
this.dumpKernelToolStripMenuItem.Name = "dumpKernelToolStripMenuItem";
+ resources.ApplyResources(this.dumpKernelToolStripMenuItem, "dumpKernelToolStripMenuItem");
this.dumpKernelToolStripMenuItem.Click += new System.EventHandler(this.dumpKernelToolStripMenuItem_Click);
//
// flashOriginalKernelToolStripMenuItem
//
- resources.ApplyResources(this.flashOriginalKernelToolStripMenuItem, "flashOriginalKernelToolStripMenuItem");
this.flashOriginalKernelToolStripMenuItem.Name = "flashOriginalKernelToolStripMenuItem";
+ resources.ApplyResources(this.flashOriginalKernelToolStripMenuItem, "flashOriginalKernelToolStripMenuItem");
this.flashOriginalKernelToolStripMenuItem.Click += new System.EventHandler(this.flashOriginalKernelToolStripMenuItem_Click);
//
// flashCustomKernelToolStripMenuItem
//
- resources.ApplyResources(this.flashCustomKernelToolStripMenuItem, "flashCustomKernelToolStripMenuItem");
this.flashCustomKernelToolStripMenuItem.Name = "flashCustomKernelToolStripMenuItem";
+ resources.ApplyResources(this.flashCustomKernelToolStripMenuItem, "flashCustomKernelToolStripMenuItem");
this.flashCustomKernelToolStripMenuItem.Click += new System.EventHandler(this.flashCustomKernelToolStripMenuItem_Click);
//
// uninstallToolStripMenuItem
//
- resources.ApplyResources(this.uninstallToolStripMenuItem, "uninstallToolStripMenuItem");
this.uninstallToolStripMenuItem.Name = "uninstallToolStripMenuItem";
+ resources.ApplyResources(this.uninstallToolStripMenuItem, "uninstallToolStripMenuItem");
this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.uninstallToolStripMenuItem_Click);
//
// settingsToolStripMenuItem
//
- resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem");
this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.consoleTypeToolStripMenuItem,
this.epilepsyProtectionToolStripMenuItem,
@@ -261,132 +260,132 @@
this.betterPNGCompressionlowerQualityToolStripMenuItem,
this.globalCommandLineArgumentsexpertsOnluToolStripMenuItem});
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
+ resources.ApplyResources(this.settingsToolStripMenuItem, "settingsToolStripMenuItem");
//
// consoleTypeToolStripMenuItem
//
- resources.ApplyResources(this.consoleTypeToolStripMenuItem, "consoleTypeToolStripMenuItem");
this.consoleTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.nESMiniToolStripMenuItem,
this.famicomMiniToolStripMenuItem});
this.consoleTypeToolStripMenuItem.Name = "consoleTypeToolStripMenuItem";
+ resources.ApplyResources(this.consoleTypeToolStripMenuItem, "consoleTypeToolStripMenuItem");
//
// nESMiniToolStripMenuItem
//
- resources.ApplyResources(this.nESMiniToolStripMenuItem, "nESMiniToolStripMenuItem");
this.nESMiniToolStripMenuItem.Checked = true;
this.nESMiniToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.nESMiniToolStripMenuItem.Name = "nESMiniToolStripMenuItem";
+ resources.ApplyResources(this.nESMiniToolStripMenuItem, "nESMiniToolStripMenuItem");
this.nESMiniToolStripMenuItem.Click += new System.EventHandler(this.nESMiniToolStripMenuItem_Click);
//
// famicomMiniToolStripMenuItem
//
- resources.ApplyResources(this.famicomMiniToolStripMenuItem, "famicomMiniToolStripMenuItem");
this.famicomMiniToolStripMenuItem.Name = "famicomMiniToolStripMenuItem";
+ resources.ApplyResources(this.famicomMiniToolStripMenuItem, "famicomMiniToolStripMenuItem");
this.famicomMiniToolStripMenuItem.Click += new System.EventHandler(this.famicomMiniToolStripMenuItem_Click);
//
// epilepsyProtectionToolStripMenuItem
//
- resources.ApplyResources(this.epilepsyProtectionToolStripMenuItem, "epilepsyProtectionToolStripMenuItem");
this.epilepsyProtectionToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItemArmetLevel0,
this.ToolStripMenuItemArmetLevel1,
this.ToolStripMenuItemArmetLevel2});
this.epilepsyProtectionToolStripMenuItem.Name = "epilepsyProtectionToolStripMenuItem";
+ resources.ApplyResources(this.epilepsyProtectionToolStripMenuItem, "epilepsyProtectionToolStripMenuItem");
//
// ToolStripMenuItemArmetLevel0
//
- resources.ApplyResources(this.ToolStripMenuItemArmetLevel0, "ToolStripMenuItemArmetLevel0");
this.ToolStripMenuItemArmetLevel0.Checked = true;
this.ToolStripMenuItemArmetLevel0.CheckState = System.Windows.Forms.CheckState.Checked;
this.ToolStripMenuItemArmetLevel0.Name = "ToolStripMenuItemArmetLevel0";
+ resources.ApplyResources(this.ToolStripMenuItemArmetLevel0, "ToolStripMenuItemArmetLevel0");
this.ToolStripMenuItemArmetLevel0.Click += new System.EventHandler(this.ToolStripMenuItemArmet_Click);
//
// ToolStripMenuItemArmetLevel1
//
- resources.ApplyResources(this.ToolStripMenuItemArmetLevel1, "ToolStripMenuItemArmetLevel1");
this.ToolStripMenuItemArmetLevel1.Name = "ToolStripMenuItemArmetLevel1";
+ resources.ApplyResources(this.ToolStripMenuItemArmetLevel1, "ToolStripMenuItemArmetLevel1");
this.ToolStripMenuItemArmetLevel1.Click += new System.EventHandler(this.ToolStripMenuItemArmet_Click);
//
// ToolStripMenuItemArmetLevel2
//
- resources.ApplyResources(this.ToolStripMenuItemArmetLevel2, "ToolStripMenuItemArmetLevel2");
this.ToolStripMenuItemArmetLevel2.Name = "ToolStripMenuItemArmetLevel2";
+ resources.ApplyResources(this.ToolStripMenuItemArmetLevel2, "ToolStripMenuItemArmetLevel2");
this.ToolStripMenuItemArmetLevel2.Click += new System.EventHandler(this.ToolStripMenuItemArmet_Click);
//
// cloverconHackToolStripMenuItem
//
- resources.ApplyResources(this.cloverconHackToolStripMenuItem, "cloverconHackToolStripMenuItem");
this.cloverconHackToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.resetUsingCombinationOfButtonsToolStripMenuItem,
this.selectButtonCombinationToolStripMenuItem,
this.enableAutofireToolStripMenuItem,
this.upABStartOnSecondControllerToolStripMenuItem});
this.cloverconHackToolStripMenuItem.Name = "cloverconHackToolStripMenuItem";
+ resources.ApplyResources(this.cloverconHackToolStripMenuItem, "cloverconHackToolStripMenuItem");
//
// resetUsingCombinationOfButtonsToolStripMenuItem
//
- resources.ApplyResources(this.resetUsingCombinationOfButtonsToolStripMenuItem, "resetUsingCombinationOfButtonsToolStripMenuItem");
this.resetUsingCombinationOfButtonsToolStripMenuItem.Checked = true;
this.resetUsingCombinationOfButtonsToolStripMenuItem.CheckOnClick = true;
this.resetUsingCombinationOfButtonsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.resetUsingCombinationOfButtonsToolStripMenuItem.Name = "resetUsingCombinationOfButtonsToolStripMenuItem";
+ resources.ApplyResources(this.resetUsingCombinationOfButtonsToolStripMenuItem, "resetUsingCombinationOfButtonsToolStripMenuItem");
this.resetUsingCombinationOfButtonsToolStripMenuItem.Click += new System.EventHandler(this.cloverconHackToolStripMenuItem_Click);
//
// selectButtonCombinationToolStripMenuItem
//
- resources.ApplyResources(this.selectButtonCombinationToolStripMenuItem, "selectButtonCombinationToolStripMenuItem");
this.selectButtonCombinationToolStripMenuItem.Name = "selectButtonCombinationToolStripMenuItem";
+ resources.ApplyResources(this.selectButtonCombinationToolStripMenuItem, "selectButtonCombinationToolStripMenuItem");
this.selectButtonCombinationToolStripMenuItem.Click += new System.EventHandler(this.selectButtonCombinationToolStripMenuItem_Click);
//
// enableAutofireToolStripMenuItem
//
- resources.ApplyResources(this.enableAutofireToolStripMenuItem, "enableAutofireToolStripMenuItem");
this.enableAutofireToolStripMenuItem.CheckOnClick = true;
this.enableAutofireToolStripMenuItem.Name = "enableAutofireToolStripMenuItem";
+ resources.ApplyResources(this.enableAutofireToolStripMenuItem, "enableAutofireToolStripMenuItem");
this.enableAutofireToolStripMenuItem.Click += new System.EventHandler(this.enableAutofireToolStripMenuItem_Click);
//
// upABStartOnSecondControllerToolStripMenuItem
//
- resources.ApplyResources(this.upABStartOnSecondControllerToolStripMenuItem, "upABStartOnSecondControllerToolStripMenuItem");
this.upABStartOnSecondControllerToolStripMenuItem.CheckOnClick = true;
this.upABStartOnSecondControllerToolStripMenuItem.Name = "upABStartOnSecondControllerToolStripMenuItem";
+ resources.ApplyResources(this.upABStartOnSecondControllerToolStripMenuItem, "upABStartOnSecondControllerToolStripMenuItem");
this.upABStartOnSecondControllerToolStripMenuItem.Click += new System.EventHandler(this.upABStartOnSecondControllerToolStripMenuItem_Click);
//
// guiHacksToolStripMenuItem
//
- resources.ApplyResources(this.guiHacksToolStripMenuItem, "guiHacksToolStripMenuItem");
this.guiHacksToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.useExtendedFontToolStripMenuItem,
this.removeThumbnailsAtTheBottomToolStripMenuItem,
this.disableMenuMusicToolStripMenuItem});
this.guiHacksToolStripMenuItem.Name = "guiHacksToolStripMenuItem";
+ resources.ApplyResources(this.guiHacksToolStripMenuItem, "guiHacksToolStripMenuItem");
//
// useExtendedFontToolStripMenuItem
//
- resources.ApplyResources(this.useExtendedFontToolStripMenuItem, "useExtendedFontToolStripMenuItem");
this.useExtendedFontToolStripMenuItem.Checked = true;
this.useExtendedFontToolStripMenuItem.CheckOnClick = true;
this.useExtendedFontToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.useExtendedFontToolStripMenuItem.Name = "useExtendedFontToolStripMenuItem";
+ resources.ApplyResources(this.useExtendedFontToolStripMenuItem, "useExtendedFontToolStripMenuItem");
this.useExtendedFontToolStripMenuItem.Click += new System.EventHandler(this.useExtendedFontToolStripMenuItem_Click);
//
// removeThumbnailsAtTheBottomToolStripMenuItem
//
- resources.ApplyResources(this.removeThumbnailsAtTheBottomToolStripMenuItem, "removeThumbnailsAtTheBottomToolStripMenuItem");
this.removeThumbnailsAtTheBottomToolStripMenuItem.CheckOnClick = true;
this.removeThumbnailsAtTheBottomToolStripMenuItem.Name = "removeThumbnailsAtTheBottomToolStripMenuItem";
+ resources.ApplyResources(this.removeThumbnailsAtTheBottomToolStripMenuItem, "removeThumbnailsAtTheBottomToolStripMenuItem");
this.removeThumbnailsAtTheBottomToolStripMenuItem.Click += new System.EventHandler(this.removeThumbnailsAtTheBottomToolStripMenuItem_Click);
//
// disableMenuMusicToolStripMenuItem
//
- resources.ApplyResources(this.disableMenuMusicToolStripMenuItem, "disableMenuMusicToolStripMenuItem");
this.disableMenuMusicToolStripMenuItem.CheckOnClick = true;
this.disableMenuMusicToolStripMenuItem.Name = "disableMenuMusicToolStripMenuItem";
+ resources.ApplyResources(this.disableMenuMusicToolStripMenuItem, "disableMenuMusicToolStripMenuItem");
this.disableMenuMusicToolStripMenuItem.Click += new System.EventHandler(this.disableMenuMusicToolStripMenuItem_Click);
//
// pagesfoldersTypeToolStripMenuItem
//
- resources.ApplyResources(this.pagesfoldersTypeToolStripMenuItem, "pagesfoldersTypeToolStripMenuItem");
this.pagesfoldersTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.disablePagefoldersToolStripMenuItem,
this.toolStripMenuItem3,
@@ -402,32 +401,33 @@
this.toolStripMenuItem4,
this.customToolStripMenuItem});
this.pagesfoldersTypeToolStripMenuItem.Name = "pagesfoldersTypeToolStripMenuItem";
+ resources.ApplyResources(this.pagesfoldersTypeToolStripMenuItem, "pagesfoldersTypeToolStripMenuItem");
//
// disablePagefoldersToolStripMenuItem
//
- resources.ApplyResources(this.disablePagefoldersToolStripMenuItem, "disablePagefoldersToolStripMenuItem");
this.disablePagefoldersToolStripMenuItem.Name = "disablePagefoldersToolStripMenuItem";
+ resources.ApplyResources(this.disablePagefoldersToolStripMenuItem, "disablePagefoldersToolStripMenuItem");
this.disablePagefoldersToolStripMenuItem.Tag = "0";
this.disablePagefoldersToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// toolStripMenuItem3
//
- resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
+ resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3");
//
// automaticToolStripMenuItem
//
- resources.ApplyResources(this.automaticToolStripMenuItem, "automaticToolStripMenuItem");
this.automaticToolStripMenuItem.Checked = true;
this.automaticToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.automaticToolStripMenuItem.Name = "automaticToolStripMenuItem";
+ resources.ApplyResources(this.automaticToolStripMenuItem, "automaticToolStripMenuItem");
this.automaticToolStripMenuItem.Tag = "2";
this.automaticToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// automaticOriginalToolStripMenuItem
//
- resources.ApplyResources(this.automaticOriginalToolStripMenuItem, "automaticOriginalToolStripMenuItem");
this.automaticOriginalToolStripMenuItem.Name = "automaticOriginalToolStripMenuItem";
+ resources.ApplyResources(this.automaticOriginalToolStripMenuItem, "automaticOriginalToolStripMenuItem");
this.automaticOriginalToolStripMenuItem.Tag = "3";
this.automaticOriginalToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
@@ -447,35 +447,34 @@
//
// foldersToolStripMenuItem
//
- resources.ApplyResources(this.foldersToolStripMenuItem, "foldersToolStripMenuItem");
this.foldersToolStripMenuItem.Name = "foldersToolStripMenuItem";
+ resources.ApplyResources(this.foldersToolStripMenuItem, "foldersToolStripMenuItem");
this.foldersToolStripMenuItem.Tag = "6";
this.foldersToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// foldersOriginalToolStripMenuItem
//
- resources.ApplyResources(this.foldersOriginalToolStripMenuItem, "foldersOriginalToolStripMenuItem");
this.foldersOriginalToolStripMenuItem.Name = "foldersOriginalToolStripMenuItem";
+ resources.ApplyResources(this.foldersOriginalToolStripMenuItem, "foldersOriginalToolStripMenuItem");
this.foldersOriginalToolStripMenuItem.Tag = "7";
this.foldersOriginalToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// foldersSplitByFirstLetterToolStripMenuItem
//
- resources.ApplyResources(this.foldersSplitByFirstLetterToolStripMenuItem, "foldersSplitByFirstLetterToolStripMenuItem");
this.foldersSplitByFirstLetterToolStripMenuItem.Name = "foldersSplitByFirstLetterToolStripMenuItem";
+ resources.ApplyResources(this.foldersSplitByFirstLetterToolStripMenuItem, "foldersSplitByFirstLetterToolStripMenuItem");
this.foldersSplitByFirstLetterToolStripMenuItem.Tag = "8";
this.foldersSplitByFirstLetterToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// foldersSplitByFirstLetterOriginalToolStripMenuItem
//
- resources.ApplyResources(this.foldersSplitByFirstLetterOriginalToolStripMenuItem, "foldersSplitByFirstLetterOriginalToolStripMenuItem");
this.foldersSplitByFirstLetterOriginalToolStripMenuItem.Name = "foldersSplitByFirstLetterOriginalToolStripMenuItem";
+ resources.ApplyResources(this.foldersSplitByFirstLetterOriginalToolStripMenuItem, "foldersSplitByFirstLetterOriginalToolStripMenuItem");
this.foldersSplitByFirstLetterOriginalToolStripMenuItem.Tag = "9";
this.foldersSplitByFirstLetterOriginalToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// maximumGamesPerFolderToolStripMenuItem
//
- resources.ApplyResources(this.maximumGamesPerFolderToolStripMenuItem, "maximumGamesPerFolderToolStripMenuItem");
this.maximumGamesPerFolderToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.max20toolStripMenuItem,
this.max25toolStripMenuItem,
@@ -490,135 +489,136 @@
this.max90toolStripMenuItem,
this.max100toolStripMenuItem});
this.maximumGamesPerFolderToolStripMenuItem.Name = "maximumGamesPerFolderToolStripMenuItem";
+ resources.ApplyResources(this.maximumGamesPerFolderToolStripMenuItem, "maximumGamesPerFolderToolStripMenuItem");
//
// max20toolStripMenuItem
//
- resources.ApplyResources(this.max20toolStripMenuItem, "max20toolStripMenuItem");
this.max20toolStripMenuItem.Name = "max20toolStripMenuItem";
+ resources.ApplyResources(this.max20toolStripMenuItem, "max20toolStripMenuItem");
this.max20toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max25toolStripMenuItem
//
- resources.ApplyResources(this.max25toolStripMenuItem, "max25toolStripMenuItem");
this.max25toolStripMenuItem.Name = "max25toolStripMenuItem";
+ resources.ApplyResources(this.max25toolStripMenuItem, "max25toolStripMenuItem");
this.max25toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max30toolStripMenuItem
//
- resources.ApplyResources(this.max30toolStripMenuItem, "max30toolStripMenuItem");
this.max30toolStripMenuItem.Name = "max30toolStripMenuItem";
+ resources.ApplyResources(this.max30toolStripMenuItem, "max30toolStripMenuItem");
this.max30toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max35toolStripMenuItem
//
- resources.ApplyResources(this.max35toolStripMenuItem, "max35toolStripMenuItem");
this.max35toolStripMenuItem.Name = "max35toolStripMenuItem";
+ resources.ApplyResources(this.max35toolStripMenuItem, "max35toolStripMenuItem");
this.max35toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max40toolStripMenuItem
//
- resources.ApplyResources(this.max40toolStripMenuItem, "max40toolStripMenuItem");
this.max40toolStripMenuItem.Name = "max40toolStripMenuItem";
+ resources.ApplyResources(this.max40toolStripMenuItem, "max40toolStripMenuItem");
this.max40toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max45toolStripMenuItem
//
- resources.ApplyResources(this.max45toolStripMenuItem, "max45toolStripMenuItem");
this.max45toolStripMenuItem.Name = "max45toolStripMenuItem";
+ resources.ApplyResources(this.max45toolStripMenuItem, "max45toolStripMenuItem");
this.max45toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max50toolStripMenuItem
//
- resources.ApplyResources(this.max50toolStripMenuItem, "max50toolStripMenuItem");
this.max50toolStripMenuItem.Name = "max50toolStripMenuItem";
+ resources.ApplyResources(this.max50toolStripMenuItem, "max50toolStripMenuItem");
this.max50toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max60toolStripMenuItem
//
- resources.ApplyResources(this.max60toolStripMenuItem, "max60toolStripMenuItem");
this.max60toolStripMenuItem.Name = "max60toolStripMenuItem";
+ resources.ApplyResources(this.max60toolStripMenuItem, "max60toolStripMenuItem");
this.max60toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max70toolStripMenuItem
//
- resources.ApplyResources(this.max70toolStripMenuItem, "max70toolStripMenuItem");
this.max70toolStripMenuItem.Name = "max70toolStripMenuItem";
+ resources.ApplyResources(this.max70toolStripMenuItem, "max70toolStripMenuItem");
this.max70toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max80toolStripMenuItem
//
- resources.ApplyResources(this.max80toolStripMenuItem, "max80toolStripMenuItem");
this.max80toolStripMenuItem.Name = "max80toolStripMenuItem";
+ resources.ApplyResources(this.max80toolStripMenuItem, "max80toolStripMenuItem");
this.max80toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max90toolStripMenuItem
//
- resources.ApplyResources(this.max90toolStripMenuItem, "max90toolStripMenuItem");
this.max90toolStripMenuItem.Name = "max90toolStripMenuItem";
+ resources.ApplyResources(this.max90toolStripMenuItem, "max90toolStripMenuItem");
this.max90toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// max100toolStripMenuItem
//
- resources.ApplyResources(this.max100toolStripMenuItem, "max100toolStripMenuItem");
this.max100toolStripMenuItem.Name = "max100toolStripMenuItem";
+ resources.ApplyResources(this.max100toolStripMenuItem, "max100toolStripMenuItem");
this.max100toolStripMenuItem.Click += new System.EventHandler(this.toolStripMenuMaxGamesPerFolder_Click);
//
// toolStripMenuItem4
//
- resources.ApplyResources(this.toolStripMenuItem4, "toolStripMenuItem4");
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
+ resources.ApplyResources(this.toolStripMenuItem4, "toolStripMenuItem4");
//
// customToolStripMenuItem
//
- resources.ApplyResources(this.customToolStripMenuItem, "customToolStripMenuItem");
this.customToolStripMenuItem.Name = "customToolStripMenuItem";
+ resources.ApplyResources(this.customToolStripMenuItem, "customToolStripMenuItem");
this.customToolStripMenuItem.Tag = "99";
this.customToolStripMenuItem.Click += new System.EventHandler(this.pagesModefoldersToolStripMenuItem_Click);
//
// betterPNGCompressionlowerQualityToolStripMenuItem
//
- resources.ApplyResources(this.betterPNGCompressionlowerQualityToolStripMenuItem, "betterPNGCompressionlowerQualityToolStripMenuItem");
this.betterPNGCompressionlowerQualityToolStripMenuItem.CheckOnClick = true;
this.betterPNGCompressionlowerQualityToolStripMenuItem.Name = "betterPNGCompressionlowerQualityToolStripMenuItem";
+ resources.ApplyResources(this.betterPNGCompressionlowerQualityToolStripMenuItem, "betterPNGCompressionlowerQualityToolStripMenuItem");
this.betterPNGCompressionlowerQualityToolStripMenuItem.Click += new System.EventHandler(this.betterPNGCompressionlowerQualityToolStripMenuItem_Click);
//
// globalCommandLineArgumentsexpertsOnluToolStripMenuItem
//
- resources.ApplyResources(this.globalCommandLineArgumentsexpertsOnluToolStripMenuItem, "globalCommandLineArgumentsexpertsOnluToolStripMenuItem");
this.globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Name = "globalCommandLineArgumentsexpertsOnluToolStripMenuItem";
+ resources.ApplyResources(this.globalCommandLineArgumentsexpertsOnluToolStripMenuItem, "globalCommandLineArgumentsexpertsOnluToolStripMenuItem");
this.globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Click += new System.EventHandler(this.globalCommandLineArgumentsexpertsOnluToolStripMenuItem_Click);
//
// helpToolStripMenuItem
//
- resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.gitHubPageWithActualReleasesToolStripMenuItem,
this.fAQToolStripMenuItem,
this.aboutToolStripMenuItem});
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
+ resources.ApplyResources(this.helpToolStripMenuItem, "helpToolStripMenuItem");
//
// gitHubPageWithActualReleasesToolStripMenuItem
//
- resources.ApplyResources(this.gitHubPageWithActualReleasesToolStripMenuItem, "gitHubPageWithActualReleasesToolStripMenuItem");
this.gitHubPageWithActualReleasesToolStripMenuItem.Name = "gitHubPageWithActualReleasesToolStripMenuItem";
+ resources.ApplyResources(this.gitHubPageWithActualReleasesToolStripMenuItem, "gitHubPageWithActualReleasesToolStripMenuItem");
this.gitHubPageWithActualReleasesToolStripMenuItem.Click += new System.EventHandler(this.gitHubPageWithActualReleasesToolStripMenuItem_Click);
//
// fAQToolStripMenuItem
//
- resources.ApplyResources(this.fAQToolStripMenuItem, "fAQToolStripMenuItem");
this.fAQToolStripMenuItem.Name = "fAQToolStripMenuItem";
+ resources.ApplyResources(this.fAQToolStripMenuItem, "fAQToolStripMenuItem");
this.fAQToolStripMenuItem.Click += new System.EventHandler(this.fAQToolStripMenuItem_Click);
//
// aboutToolStripMenuItem
//
- resources.ApplyResources(this.aboutToolStripMenuItem, "aboutToolStripMenuItem");
this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
+ resources.ApplyResources(this.aboutToolStripMenuItem, "aboutToolStripMenuItem");
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
//
// checkedListBoxGames
//
- resources.ApplyResources(this.checkedListBoxGames, "checkedListBoxGames");
this.checkedListBoxGames.AllowDrop = true;
+ resources.ApplyResources(this.checkedListBoxGames, "checkedListBoxGames");
this.checkedListBoxGames.FormattingEnabled = true;
this.checkedListBoxGames.Name = "checkedListBoxGames";
this.checkedListBoxGames.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.checkedListBoxGames_ItemCheck);
@@ -788,16 +788,16 @@
//
// statusStrip
//
- resources.ApplyResources(this.statusStrip, "statusStrip");
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabelSelected});
+ resources.ApplyResources(this.statusStrip, "statusStrip");
this.statusStrip.Name = "statusStrip";
this.statusStrip.SizingGrip = false;
//
// toolStripStatusLabelSelected
//
- resources.ApplyResources(this.toolStripStatusLabelSelected, "toolStripStatusLabelSelected");
this.toolStripStatusLabelSelected.Name = "toolStripStatusLabelSelected";
+ resources.ApplyResources(this.toolStripStatusLabelSelected, "toolStripStatusLabelSelected");
//
// openFileDialogNes
//
@@ -807,29 +807,29 @@
//
// contextMenuStrip
//
- resources.ApplyResources(this.contextMenuStrip, "contextMenuStrip");
this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.selectAllToolStripMenuItem,
this.unselectAllToolStripMenuItem,
this.deleteGameToolStripMenuItem});
this.contextMenuStrip.Name = "contextMenuStrip";
+ resources.ApplyResources(this.contextMenuStrip, "contextMenuStrip");
//
// selectAllToolStripMenuItem
//
- resources.ApplyResources(this.selectAllToolStripMenuItem, "selectAllToolStripMenuItem");
this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem";
+ resources.ApplyResources(this.selectAllToolStripMenuItem, "selectAllToolStripMenuItem");
this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click);
//
// unselectAllToolStripMenuItem
//
- resources.ApplyResources(this.unselectAllToolStripMenuItem, "unselectAllToolStripMenuItem");
this.unselectAllToolStripMenuItem.Name = "unselectAllToolStripMenuItem";
+ resources.ApplyResources(this.unselectAllToolStripMenuItem, "unselectAllToolStripMenuItem");
this.unselectAllToolStripMenuItem.Click += new System.EventHandler(this.unselectAllToolStripMenuItem_Click);
//
// deleteGameToolStripMenuItem
//
- resources.ApplyResources(this.deleteGameToolStripMenuItem, "deleteGameToolStripMenuItem");
this.deleteGameToolStripMenuItem.Name = "deleteGameToolStripMenuItem";
+ resources.ApplyResources(this.deleteGameToolStripMenuItem, "deleteGameToolStripMenuItem");
this.deleteGameToolStripMenuItem.Click += new System.EventHandler(this.deleteGameToolStripMenuItem_Click);
//
// openFileDialogImage
diff --git a/MainForm.cs b/MainForm.cs
index 1f7302d8..19d89c82 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -18,7 +18,6 @@ namespace com.clusterrr.hakchi_gui
public partial class MainForm : Form
{
public static string BaseDirectory;
- public static string GamesDirectory;
//readonly string UBootDump;
readonly string KernelDump;
@@ -94,7 +93,6 @@ namespace com.clusterrr.hakchi_gui
InitializeComponent();
ConfigIni.Load();
BaseDirectory = Path.GetDirectoryName(Application.ExecutablePath);
- GamesDirectory = Path.Combine(BaseDirectory, "games");
KernelDump = Path.Combine(Path.Combine(BaseDirectory, "dump"), "kernel.img");
LoadGames();
LoadHidden();
@@ -160,9 +158,9 @@ namespace com.clusterrr.hakchi_gui
{
Debug.WriteLine("Loading games");
var selected = ConfigIni.SelectedGames.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
- Directory.CreateDirectory(GamesDirectory);
- var gameDirs = Directory.GetDirectories(GamesDirectory);
- var games = new List<NesGame>();
+ Directory.CreateDirectory(NesMiniApplication.GamesDirectory);
+ var gameDirs = Directory.GetDirectories(NesMiniApplication.GamesDirectory);
+ var games = new List<NesMiniApplication>();
foreach (var gameDir in gameDirs)
{
try
@@ -170,7 +168,7 @@ namespace com.clusterrr.hakchi_gui
// Removing empty directories without errors
try
{
- var game = new NesGame(gameDir);
+ var game = NesMiniApplication.FromDirectory(gameDir);
games.Add(game);
}
catch (FileNotFoundException ex) // Remove bad directories if any
@@ -216,7 +214,7 @@ namespace com.clusterrr.hakchi_gui
textBoxArguments.Text = "";
pictureBoxArt.Image = null;
}
- else if (!(selected is NesGame))
+ else if (!(selected is NesMiniApplication))
{
groupBoxDefaultGames.Visible = true;
groupBoxOptions.Visible = false;
@@ -224,26 +222,31 @@ namespace com.clusterrr.hakchi_gui
}
else
{
- var game = selected as NesGame;
+ var app = selected as NesMiniApplication;
groupBoxDefaultGames.Visible = false;
groupBoxOptions.Visible = true;
- labelID.Text = "ID: " + game.Code;
- textBoxName.Text = game.Name;
- if (game.Simultaneous && game.Players == 2)
+ labelID.Text = "ID: " + app.Code;
+ textBoxName.Text = app.Name;
+ if (app.Simultaneous && app.Players == 2)
radioButtonTwoSim.Checked = true;
- else if (game.Players == 2)
+ else if (app.Players == 2)
radioButtonTwo.Checked = true;
else
radioButtonOne.Checked = true;
- maskedTextBoxReleaseDate.Text = game.ReleaseDate;
- textBoxPublisher.Text = game.Publisher;
- textBoxArguments.Text = game.Args;
- if (File.Exists(game.IconPath))
- pictureBoxArt.Image = NesGame.LoadBitmap(game.IconPath);
+ maskedTextBoxReleaseDate.Text = app.ReleaseDate;
+ textBoxPublisher.Text = app.Publisher;
+ if (app is NesGame)
+ textBoxArguments.Text = (app as NesGame).Args;
+ else if (app is FdsGame)
+ textBoxArguments.Text = (app as FdsGame).Args;
+ else
+ textBoxArguments.Text = app.Command;
+ if (File.Exists(app.IconPath))
+ pictureBoxArt.Image = NesMiniApplication.LoadBitmap(app.IconPath);
else
pictureBoxArt.Image = null;
- textBoxGameGenie.Enabled = game.Type == NesGame.GameType.Cartridge;
- textBoxGameGenie.Text = game.GameGenie;
+ textBoxGameGenie.Enabled = app is NesGame;
+ textBoxGameGenie.Text = (app is NesGame) ? (app as NesGame).GameGenie : "";
groupBoxOptions.Enabled = true;
}
}
@@ -276,7 +279,7 @@ namespace com.clusterrr.hakchi_gui
checkedListBoxGames.SetItemChecked(0, selected.Contains("default"));
for (int j = 1; j < checkedListBoxGames.Items.Count; j++)
checkedListBoxGames.SetItemChecked(j,
- selected.Contains((checkedListBoxGames.Items[j] as NesGame).Code));
+ selected.Contains((checkedListBoxGames.Items[j] as NesMiniApplication).Code));
for (int j = 0; j < checkedListBoxDefaultGames.Items.Count; j++)
checkedListBoxDefaultGames.SetItemChecked(j,
!hide.Contains(((NesDefaultGame)checkedListBoxDefaultGames.Items[j]).Code));
@@ -323,9 +326,9 @@ namespace com.clusterrr.hakchi_gui
if (openFileDialogImage.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
- game.SetImage(NesGame.LoadBitmap(openFileDialogImage.FileName), ConfigIni.EightBitPngCompression);
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
+ game.Image = NesMiniApplication.LoadBitmap(openFileDialogImage.FileName);
ShowSelected();
}
}
@@ -333,12 +336,12 @@ namespace com.clusterrr.hakchi_gui
private void buttonGoogle_Click(object sender, EventArgs e)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
var googler = new ImageGooglerForm(game.Name + ImageGooglerForm.Suffix);
if (googler.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
- game.SetImage(googler.Result, ConfigIni.EightBitPngCompression);
+ game.Image = googler.Result;
ShowSelected();
}
}
@@ -346,16 +349,16 @@ namespace com.clusterrr.hakchi_gui
private void textBoxName_TextChanged(object sender, EventArgs e)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
game.Name = textBoxName.Text;
}
private void radioButtonOne_CheckedChanged(object sender, EventArgs e)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
game.Players = (byte)(radioButtonOne.Checked ? 1 : 2);
game.Simultaneous = radioButtonTwoSim.Checked;
}
@@ -363,24 +366,29 @@ namespace com.clusterrr.hakchi_gui
private void textBoxPublisher_TextChanged(object sender, EventArgs e)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
game.Publisher = textBoxPublisher.Text.ToUpper();
}
private void textBoxArguments_TextChanged(object sender, EventArgs e)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
- game.Args = textBoxArguments.Text;
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
+ if (game is NesGame)
+ (game as NesGame).Args = textBoxArguments.Text;
+ else if (game is FdsGame)
+ (game as FdsGame).Args = textBoxArguments.Text;
+ else
+ game.Command = textBoxArguments.Text;
}
private void maskedTextBoxReleaseDate_TextChanged(object sender, EventArgs e)
{
var selected = checkedListBoxGames.SelectedItem;
- if (selected == null || !(selected is NesGame)) return;
- var game = (selected as NesGame);
+ if (selected == null || !(selected is NesMiniApplication)) return;
+ var game = (selected as NesMiniApplication);
game.ReleaseDate = maskedTextBoxReleaseDate.Text;
}
@@ -397,8 +405,8 @@ namespace com.clusterrr.hakchi_gui
var selected = new List<string>();
foreach (var game in checkedListBoxGames.CheckedItems)
{
- if (game is NesGame)
- selected.Add((game as NesGame).Code);
+ if (game is NesMiniApplication)
+ selected.Add((game as NesMiniApplication).Code);
else
selected.Add("default");
}
@@ -419,8 +427,8 @@ namespace com.clusterrr.hakchi_gui
{
try
{
- if (game is NesGame)
- (game as NesGame).Save();
+ if (game is NesMiniApplication)
+ (game as NesMiniApplication).Save();
}
catch (Exception ex)
{
@@ -441,7 +449,7 @@ namespace com.clusterrr.hakchi_gui
int c = 0;
foreach (var game in checkedListBoxGames.CheckedItems)
{
- if (game is NesGame)
+ if (game is NesMiniApplication)
c++;
else
c += checkedListBoxDefaultGames.CheckedItems.Count;
@@ -569,8 +577,8 @@ namespace com.clusterrr.hakchi_gui
bool needOriginal = false;
foreach (var game in checkedListBoxGames.CheckedItems)
{
- if (game is NesGame)
- workerForm.Games.Add(game as NesGame);
+ if (game is NesMiniApplication)
+ workerForm.Games.Add(game as NesMiniApplication);
else
needOriginal = true;
}
@@ -608,12 +616,12 @@ namespace com.clusterrr.hakchi_gui
{
SaveConfig();
MessageBoxManager.Register(); // Tweak button names
- NesGame nesGame = null;
+ NesMiniApplication nesGame = null;
var workerForm = new WorkerForm();
workerForm.Text = Resources.LoadingGames;
workerForm.Task = WorkerForm.Tasks.AddGames;
if (files.Length <= 1)
- nesGame = workerForm.AddGames(GamesDirectory, files, this);
+ nesGame = workerForm.AddGames(files, this);
else
{
workerForm.GamesToAdd = files;
@@ -624,7 +632,7 @@ namespace com.clusterrr.hakchi_gui
if (files.Length == 1 && nesGame != null) // if added only one game select it
{
for (int i = 1; i < checkedListBoxGames.Items.Count; i++)
- if ((checkedListBoxGames.Items[i] as NesGame).Code == nesGame.Code)
+ if ((checkedListBoxGames.Items[i] as NesMiniApplication).Code == nesGame.Code)
{
checkedListBoxGames.SelectedIndex = i;
break;
@@ -672,8 +680,8 @@ namespace com.clusterrr.hakchi_gui
workerForm.Games = new NesMenuCollection();
foreach (var game in checkedListBoxGames.Items)
{
- if (game is NesGame)
- workerForm.Games.Add(game as NesGame);
+ if (game is NesMiniApplication)
+ workerForm.Games.Add(game as NesMiniApplication);
}
return workerForm.Start() == DialogResult.OK;
}
@@ -874,7 +882,7 @@ namespace com.clusterrr.hakchi_gui
{
try
{
- var game = checkedListBoxGames.Items[pos] as NesGame;
+ var game = checkedListBoxGames.Items[pos] as NesMiniApplication;
if (MessageBox.Show(this, string.Format(Resources.DeleteGame, game.Name), Resources.AreYouSure, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.Yes)
{
Directory.Delete(game.GamePath, true);
@@ -955,14 +963,14 @@ namespace com.clusterrr.hakchi_gui
int counter = 0;
foreach (var g in checkedListBoxGames.Items)
{
- if (g is NesGame)
+ if (g is NesMiniApplication)
{
- var game = g as NesGame;
- if (game.Type == NesGame.GameType.Cartridge)
+ var game = g as NesMiniApplication;
+ if (game is NesGame)
{
try
{
- if (game.TryAutofill(new NesFile(game.NesPath).CRC32))
+ if ((game as NesGame).TryAutofill(new NesFile((game as NesGame).NesPath).CRC32))
counter++;
}
catch { }
@@ -994,7 +1002,7 @@ namespace com.clusterrr.hakchi_gui
private void buttonShowGameGenieDatabase_Click(object sender, EventArgs e)
{
if (!(checkedListBoxGames.SelectedItem is NesGame)) return;
- NesGame nesGame = (NesGame)checkedListBoxGames.SelectedItem;
+ NesGame nesGame = checkedListBoxGames.SelectedItem as NesGame;
GameGenieCodeForm lFrm = new GameGenieCodeForm(nesGame);
if (lFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
textBoxGameGenie.Text = nesGame.GameGenie;
diff --git a/MainForm.resx b/MainForm.resx
index 73896d30..f2fc9121 100644
--- a/MainForm.resx
+++ b/MainForm.resx
@@ -117,602 +117,1214 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
- <data name="&gt;&gt;statusStrip.Type" xml:space="preserve">
- <value>System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
+ <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>13, 18</value>
+ </metadata>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
- <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
- <value>CenterScreen</value>
+ <data name="addMoreGamesToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
+ <value>Ctrl+O</value>
</data>
- <data name="&gt;&gt;flashCustomKernelToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="addMoreGamesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>236, 22</value>
</data>
- <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
- <value>10</value>
+ <data name="addMoreGamesToolStripMenuItem.Text" xml:space="preserve">
+ <value>Add more &amp;games</value>
</data>
- <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
- <data name="radioButtonTwo.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="toolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
+ <value>139, 6</value>
</data>
- <data name="&gt;&gt;foldersSplitByFirstLetterOriginalToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="addPresetToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>142, 22</value>
</data>
- <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
- <value>5</value>
+ <data name="addPresetToolStripMenuItem.Text" xml:space="preserve">
+ <value>Add preset</value>
</data>
- <data name="radioButtonTwoSim.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="deletePresetToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>142, 22</value>
</data>
- <data name="label7.Text" xml:space="preserve">
- <value>Game Genie codes (comma separated):</value>
+ <data name="deletePresetToolStripMenuItem.Text" xml:space="preserve">
+ <value>Delete preset</value>
</data>
- <data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
- <value>4</value>
+ <data name="presetsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>236, 22</value>
+ </data>
+ <data name="presetsToolStripMenuItem.Text" xml:space="preserve">
+ <value>Selection presets</value>
+ </data>
+ <data name="searchToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
+ <value>Ctrl+F</value>
+ </data>
+ <data name="searchToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>236, 22</value>
+ </data>
+ <data name="searchToolStripMenuItem.Text" xml:space="preserve">
+ <value>Search</value>
+ </data>
+ <data name="downloadCoversForAllGamesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>236, 22</value>
+ </data>
+ <data name="downloadCoversForAllGamesToolStripMenuItem.Text" xml:space="preserve">
+ <value>Download covers for all games</value>
+ </data>
+ <data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
+ <value>233, 6</value>
+ </data>
+ <data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>236, 22</value>
+ </data>
+ <data name="exitToolStripMenuItem.Text" xml:space="preserve">
+ <value>&amp;Exit</value>
+ </data>
+ <data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>37, 20</value>
+ </data>
+ <data name="fileToolStripMenuItem.Text" xml:space="preserve">
+ <value>&amp;File</value>
+ </data>
+ <data name="dumpKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>179, 22</value>
+ </data>
+ <data name="dumpKernelToolStripMenuItem.Text" xml:space="preserve">
+ <value>Dump kernel</value>
+ </data>
+ <data name="flashOriginalKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>179, 22</value>
+ </data>
+ <data name="flashOriginalKernelToolStripMenuItem.Text" xml:space="preserve">
+ <value>Flash original kernel</value>
+ </data>
+ <data name="flashCustomKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>179, 22</value>
+ </data>
+ <data name="flashCustomKernelToolStripMenuItem.Text" xml:space="preserve">
+ <value>Flash custom kernel</value>
+ </data>
+ <data name="uninstallToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>179, 22</value>
+ </data>
+ <data name="uninstallToolStripMenuItem.Text" xml:space="preserve">
+ <value>Uninstall</value>
+ </data>
+ <data name="kernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>52, 20</value>
+ </data>
+ <data name="kernelToolStripMenuItem.Text" xml:space="preserve">
+ <value>&amp;Kernel</value>
+ </data>
+ <data name="nESMiniToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>151, 22</value>
+ </data>
+ <data name="nESMiniToolStripMenuItem.Text" xml:space="preserve">
+ <value>NES Mini</value>
+ </data>
+ <data name="famicomMiniToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>151, 22</value>
+ </data>
+ <data name="famicomMiniToolStripMenuItem.Text" xml:space="preserve">
+ <value>Famicom Mini</value>
+ </data>
+ <data name="consoleTypeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
+ </data>
+ <data name="consoleTypeToolStripMenuItem.Text" xml:space="preserve">
+ <value>Console type</value>
+ </data>
+ <data name="ToolStripMenuItemArmetLevel0.Size" type="System.Drawing.Size, System.Drawing">
+ <value>211, 22</value>
+ </data>
+ <data name="ToolStripMenuItemArmetLevel0.Text" xml:space="preserve">
+ <value>Default</value>
+ </data>
+ <data name="ToolStripMenuItemArmetLevel1.Size" type="System.Drawing.Size, System.Drawing">
+ <value>211, 22</value>
+ </data>
+ <data name="ToolStripMenuItemArmetLevel1.Text" xml:space="preserve">
+ <value>Disable for original games</value>
+ </data>
+ <data name="ToolStripMenuItemArmetLevel2.Size" type="System.Drawing.Size, System.Drawing">
+ <value>211, 22</value>
+ </data>
+ <data name="ToolStripMenuItemArmetLevel2.Text" xml:space="preserve">
+ <value>Disable for all games</value>
+ </data>
+ <data name="epilepsyProtectionToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
+ </data>
+ <data name="epilepsyProtectionToolStripMenuItem.Text" xml:space="preserve">
+ <value>Epilepsy protection</value>
+ </data>
+ <data name="resetUsingCombinationOfButtonsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>262, 22</value>
+ </data>
+ <data name="resetUsingCombinationOfButtonsToolStripMenuItem.Text" xml:space="preserve">
+ <value>Use button combination to reset</value>
+ </data>
+ <data name="selectButtonCombinationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>262, 22</value>
+ </data>
+ <data name="selectButtonCombinationToolStripMenuItem.Text" xml:space="preserve">
+ <value>Select reset button combination</value>
+ </data>
+ <data name="enableAutofireToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>262, 22</value>
</data>
<data name="enableAutofireToolStripMenuItem.Text" xml:space="preserve">
<value>Enable autofire</value>
</data>
- <data name="&gt;&gt;label3.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="upABStartOnSecondControllerToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>262, 22</value>
</data>
- <data name="&gt;&gt;labelID.Name" xml:space="preserve">
- <value>labelID</value>
+ <data name="upABStartOnSecondControllerToolStripMenuItem.Text" xml:space="preserve">
+ <value>"Up+A+B = Start" on 2nd controller</value>
</data>
- <data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
- <value>6</value>
+ <data name="cloverconHackToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
</data>
- <data name="&gt;&gt;textBoxArguments.Name" xml:space="preserve">
- <value>textBoxArguments</value>
+ <data name="cloverconHackToolStripMenuItem.Text" xml:space="preserve">
+ <value>Controller hacks</value>
</data>
- <data name="label4.TabIndex" type="System.Int32, mscorlib">
- <value>11</value>
+ <data name="useExtendedFontToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>256, 22</value>
</data>
- <data name="&gt;&gt;kernelToolStripMenuItem.Name" xml:space="preserve">
- <value>kernelToolStripMenuItem</value>
+ <data name="useExtendedFontToolStripMenuItem.Text" xml:space="preserve">
+ <value>Use extended font</value>
</data>
- <data name="&gt;&gt;uninstallToolStripMenuItem.Name" xml:space="preserve">
- <value>uninstallToolStripMenuItem</value>
+ <data name="removeThumbnailsAtTheBottomToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>256, 22</value>
</data>
- <data name="&gt;&gt;toolStripStatusLabelSelected.Name" xml:space="preserve">
- <value>toolStripStatusLabelSelected</value>
+ <data name="removeThumbnailsAtTheBottomToolStripMenuItem.Text" xml:space="preserve">
+ <value>Remove thumbnails at the bottom</value>
</data>
- <data name="&gt;&gt;max50toolStripMenuItem.Name" xml:space="preserve">
- <value>max50toolStripMenuItem</value>
+ <data name="disableMenuMusicToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>256, 22</value>
</data>
- <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
- <data name="maskedTextBoxReleaseDate.Size" type="System.Drawing.Size, System.Drawing">
- <value>65, 20</value>
+ <data name="disableMenuMusicToolStripMenuItem.Text" xml:space="preserve">
+ <value>Disable menu music</value>
</data>
- <data name="&gt;&gt;gitHubPageWithActualReleasesToolStripMenuItem.Name" xml:space="preserve">
- <value>gitHubPageWithActualReleasesToolStripMenuItem</value>
+ <data name="guiHacksToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
</data>
- <data name="label7.Size" type="System.Drawing.Size, System.Drawing">
- <value>194, 13</value>
+ <data name="guiHacksToolStripMenuItem.Text" xml:space="preserve">
+ <value>GUI hacks</value>
</data>
- <data name="buttonStart.Size" type="System.Drawing.Size, System.Drawing">
- <value>293, 38</value>
+ <data name="disablePagefoldersToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="&gt;&gt;max70toolStripMenuItem.Name" xml:space="preserve">
- <value>max70toolStripMenuItem</value>
+ <data name="disablePagefoldersToolStripMenuItem.Text" xml:space="preserve">
+ <value>Disable page/folders</value>
</data>
- <data name="&gt;&gt;pagesOriginalToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="toolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing">
+ <value>353, 6</value>
</data>
- <data name="groupBoxDefaultGames.Location" type="System.Drawing.Point, System.Drawing">
- <value>306, 27</value>
+ <data name="automaticToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="statusStrip.TabIndex" type="System.Int32, mscorlib">
- <value>6</value>
+ <data name="automaticToolStripMenuItem.Text" xml:space="preserve">
+ <value>Automatic</value>
</data>
- <data name="groupBoxOptions.Text" xml:space="preserve">
- <value>Game options</value>
+ <data name="automaticOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="max100toolStripMenuItem.Text" xml:space="preserve">
- <value>100</value>
+ <data name="automaticOriginalToolStripMenuItem.Text" xml:space="preserve">
+ <value>Original games in root -&gt; Automatic in subfolder</value>
</data>
- <data name="foldersOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <data name="pagesToolStripMenuItem.ImageScaling" type="System.Windows.Forms.ToolStripItemImageScaling, System.Windows.Forms">
+ <value>None</value>
+ </data>
+ <data name="pagesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>356, 22</value>
</data>
- <data name="&gt;&gt;addPresetToolStripMenuItem.Name" xml:space="preserve">
- <value>addPresetToolStripMenuItem</value>
+ <data name="pagesToolStripMenuItem.Text" xml:space="preserve">
+ <value>Pages, split games equally</value>
+ </data>
+ <data name="pagesOriginalToolStripMenuItem.ImageScaling" type="System.Windows.Forms.ToolStripItemImageScaling, System.Windows.Forms">
+ <value>None</value>
+ </data>
+ <data name="pagesOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
<data name="pagesOriginalToolStripMenuItem.Text" xml:space="preserve">
<value>Original games in root -&gt; Pages, split games equally</value>
</data>
- <data name="&gt;&gt;radioButtonTwo.Name" xml:space="preserve">
- <value>radioButtonTwo</value>
+ <data name="foldersToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="toolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
- <value>233, 6</value>
+ <data name="foldersToolStripMenuItem.Text" xml:space="preserve">
+ <value>Folders, split games equally</value>
</data>
- <data name="buttonShowGameGenieDatabase.Size" type="System.Drawing.Size, System.Drawing">
- <value>25, 20</value>
+ <data name="foldersOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="buttonStart.Location" type="System.Drawing.Point, System.Drawing">
- <value>306, 568</value>
+ <data name="foldersOriginalToolStripMenuItem.Text" xml:space="preserve">
+ <value>Original games in root -&gt; Folders, split games equally</value>
</data>
- <data name="&gt;&gt;max60toolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="foldersSplitByFirstLetterToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="&gt;&gt;timerCalculateGames.Name" xml:space="preserve">
- <value>timerCalculateGames</value>
+ <data name="foldersSplitByFirstLetterToolStripMenuItem.Text" xml:space="preserve">
+ <value>Folders, split by first letter</value>
</data>
- <data name="&gt;&gt;buttonGoogle.ZOrder" xml:space="preserve">
- <value>7</value>
+ <data name="foldersSplitByFirstLetterOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
</data>
- <data name="&gt;&gt;max20toolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="foldersSplitByFirstLetterOriginalToolStripMenuItem.Text" xml:space="preserve">
+ <value>Original games in root -&gt; Folders, split by first letter</value>
</data>
- <data name="buttonBrowseImage.TabIndex" type="System.Int32, mscorlib">
- <value>13</value>
+ <data name="max20toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max20toolStripMenuItem.Text" xml:space="preserve">
+ <value>20</value>
+ </data>
+ <data name="max25toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max25toolStripMenuItem.Text" xml:space="preserve">
+ <value>25</value>
+ </data>
+ <data name="max30toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max30toolStripMenuItem.Text" xml:space="preserve">
+ <value>30</value>
+ </data>
+ <data name="max35toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max35toolStripMenuItem.Text" xml:space="preserve">
+ <value>35</value>
+ </data>
+ <data name="max40toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max40toolStripMenuItem.Text" xml:space="preserve">
+ <value>40</value>
+ </data>
+ <data name="max45toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max45toolStripMenuItem.Text" xml:space="preserve">
+ <value>45</value>
+ </data>
+ <data name="max50toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max50toolStripMenuItem.Text" xml:space="preserve">
+ <value>50</value>
+ </data>
+ <data name="max60toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max60toolStripMenuItem.Text" xml:space="preserve">
+ <value>60</value>
+ </data>
+ <data name="max70toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max70toolStripMenuItem.Text" xml:space="preserve">
+ <value>70</value>
+ </data>
+ <data name="max80toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max80toolStripMenuItem.Text" xml:space="preserve">
+ <value>80</value>
+ </data>
+ <data name="max90toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max90toolStripMenuItem.Text" xml:space="preserve">
+ <value>90</value>
+ </data>
+ <data name="max100toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>92, 22</value>
+ </data>
+ <data name="max100toolStripMenuItem.Text" xml:space="preserve">
+ <value>100</value>
+ </data>
+ <data name="maximumGamesPerFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
+ </data>
+ <data name="maximumGamesPerFolderToolStripMenuItem.Text" xml:space="preserve">
+ <value>Maximum games per page/folder</value>
+ </data>
+ <data name="toolStripMenuItem4.Size" type="System.Drawing.Size, System.Drawing">
+ <value>353, 6</value>
+ </data>
+ <data name="customToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>356, 22</value>
+ </data>
+ <data name="customToolStripMenuItem.Text" xml:space="preserve">
+ <value>Custom - show Folders Manager every time</value>
+ </data>
+ <data name="pagesfoldersTypeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
</data>
<data name="pagesfoldersTypeToolStripMenuItem.Text" xml:space="preserve">
<value>Pages/folders structure</value>
</data>
- <data name="ToolStripMenuItemArmetLevel2.Size" type="System.Drawing.Size, System.Drawing">
- <value>211, 22</value>
+ <data name="betterPNGCompressionlowerQualityToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
</data>
- <data name="&gt;&gt;toolStripMenuItem4.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="betterPNGCompressionlowerQualityToolStripMenuItem.Text" xml:space="preserve">
+ <value>8bit PNG compression (less size/low quality)</value>
+ </data>
+ <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="betterPNGCompressionlowerQualityToolStripMenuItem.Visible" type="System.Boolean, mscorlib">
+ <value>False</value>
+ </data>
+ <data name="globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>325, 22</value>
+ </data>
+ <data name="globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Text" xml:space="preserve">
+ <value>Global command line arguments (experts only!)</value>
+ </data>
+ <data name="settingsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>61, 20</value>
+ </data>
+ <data name="settingsToolStripMenuItem.Text" xml:space="preserve">
+ <value>&amp;Settings</value>
</data>
<data name="gitHubPageWithActualReleasesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 22</value>
</data>
- <data name="labelID.Location" type="System.Drawing.Point, System.Drawing">
- <value>15, 21</value>
+ <data name="gitHubPageWithActualReleasesToolStripMenuItem.Text" xml:space="preserve">
+ <value>GitHub page with actual releases</value>
</data>
- <data name="&gt;&gt;maximumGamesPerFolderToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="fAQToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>246, 22</value>
</data>
- <data name="&gt;&gt;menuStrip.Parent" xml:space="preserve">
- <value>$this</value>
+ <data name="fAQToolStripMenuItem.Text" xml:space="preserve">
+ <value>FAQ</value>
</data>
- <data name="&gt;&gt;famicomMiniToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="aboutToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>246, 22</value>
+ </data>
+ <data name="aboutToolStripMenuItem.Text" xml:space="preserve">
+ <value>About...</value>
+ </data>
+ <data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>44, 20</value>
+ </data>
+ <data name="helpToolStripMenuItem.Text" xml:space="preserve">
+ <value>&amp;Help</value>
</data>
<data name="menuStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
- <data name="max90toolStripMenuItem.Text" xml:space="preserve">
- <value>90</value>
+ <data name="menuStrip.Size" type="System.Drawing.Size, System.Drawing">
+ <value>609, 24</value>
</data>
- <data name="&gt;&gt;customToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="menuStrip.TabIndex" type="System.Int32, mscorlib">
+ <value>1</value>
</data>
- <data name="&gt;&gt;max80toolStripMenuItem.Name" xml:space="preserve">
- <value>max80toolStripMenuItem</value>
+ <data name="menuStrip.Text" xml:space="preserve">
+ <value>menuStrip</value>
</data>
- <data name="labelName.Location" type="System.Drawing.Point, System.Drawing">
- <value>15, 49</value>
+ <data name="&gt;&gt;menuStrip.Name" xml:space="preserve">
+ <value>menuStrip</value>
</data>
- <data name="buttonGoogle.Size" type="System.Drawing.Size, System.Drawing">
- <value>61, 23</value>
+ <data name="&gt;&gt;menuStrip.Type" xml:space="preserve">
+ <value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="maximumGamesPerFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
+ <data name="&gt;&gt;menuStrip.Parent" xml:space="preserve">
+ <value>$this</value>
</data>
- <data name="&gt;&gt;labelName.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;menuStrip.ZOrder" xml:space="preserve">
+ <value>6</value>
</data>
- <data name="labelName.Size" type="System.Drawing.Size, System.Drawing">
- <value>38, 13</value>
+ <data name="checkedListBoxGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>None</value>
</data>
- <data name="&gt;&gt;openFileDialogImage.Name" xml:space="preserve">
- <value>openFileDialogImage</value>
+ <data name="checkedListBoxGames.Location" type="System.Drawing.Point, System.Drawing">
+ <value>12, 57</value>
</data>
- <data name="&gt;&gt;label4.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="checkedListBoxGames.Size" type="System.Drawing.Size, System.Drawing">
+ <value>282, 499</value>
</data>
- <data name="checkedListBoxDefaultGames.Size" type="System.Drawing.Size, System.Drawing">
- <value>282, 454</value>
+ <data name="checkedListBoxGames.TabIndex" type="System.Int32, mscorlib">
+ <value>1</value>
</data>
- <data name="label1.TabIndex" type="System.Int32, mscorlib">
+ <data name="&gt;&gt;checkedListBoxGames.Name" xml:space="preserve">
+ <value>checkedListBoxGames</value>
+ </data>
+ <data name="&gt;&gt;checkedListBoxGames.Type" xml:space="preserve">
+ <value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;checkedListBoxGames.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name="&gt;&gt;checkedListBoxGames.ZOrder" xml:space="preserve">
<value>5</value>
</data>
- <data name="&gt;&gt;buttonStart.Name" xml:space="preserve">
- <value>buttonStart</value>
+ <data name="groupBoxOptions.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>None</value>
</data>
- <data name="&gt;&gt;pagesToolStripMenuItem.Name" xml:space="preserve">
- <value>pagesToolStripMenuItem</value>
+ <data name="buttonShowGameGenieDatabase.Location" type="System.Drawing.Point, System.Drawing">
+ <value>252, 286</value>
</data>
- <data name="label6.Location" type="System.Drawing.Point, System.Drawing">
- <value>15, 101</value>
+ <data name="buttonShowGameGenieDatabase.Size" type="System.Drawing.Size, System.Drawing">
+ <value>25, 20</value>
</data>
- <data name="&gt;&gt;textBoxPublisher.Parent" xml:space="preserve">
+ <data name="buttonShowGameGenieDatabase.TabIndex" type="System.Int32, mscorlib">
+ <value>12</value>
+ </data>
+ <data name="buttonShowGameGenieDatabase.Text" xml:space="preserve">
+ <value>+</value>
+ </data>
+ <data name="&gt;&gt;buttonShowGameGenieDatabase.Name" xml:space="preserve">
+ <value>buttonShowGameGenieDatabase</value>
+ </data>
+ <data name="&gt;&gt;buttonShowGameGenieDatabase.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;buttonShowGameGenieDatabase.Parent" xml:space="preserve">
<value>groupBoxOptions</value>
</data>
- <data name="&gt;&gt;groupBoxOptions.ZOrder" xml:space="preserve">
- <value>7</value>
+ <data name="&gt;&gt;buttonShowGameGenieDatabase.ZOrder" xml:space="preserve">
+ <value>0</value>
</data>
- <data name="automaticOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
+ <data name="maskedTextBoxReleaseDate.Location" type="System.Drawing.Point, System.Drawing">
+ <value>168, 154</value>
</data>
- <data name="&gt;&gt;max30toolStripMenuItem.Name" xml:space="preserve">
- <value>max30toolStripMenuItem</value>
+ <data name="maskedTextBoxReleaseDate.Mask" xml:space="preserve">
+ <value>0000-00-00</value>
</data>
- <data name="openFileDialogImage.Title" xml:space="preserve">
- <value>Select cover for game</value>
+ <data name="maskedTextBoxReleaseDate.Size" type="System.Drawing.Size, System.Drawing">
+ <value>65, 20</value>
</data>
- <data name="&gt;&gt;betterPNGCompressionlowerQualityToolStripMenuItem.Name" xml:space="preserve">
- <value>betterPNGCompressionlowerQualityToolStripMenuItem</value>
+ <data name="maskedTextBoxReleaseDate.TabIndex" type="System.Int32, mscorlib">
+ <value>6</value>
</data>
- <data name="deleteGameToolStripMenuItem.Text" xml:space="preserve">
- <value>Delete game</value>
+ <data name="&gt;&gt;maskedTextBoxReleaseDate.Name" xml:space="preserve">
+ <value>maskedTextBoxReleaseDate</value>
</data>
- <data name="textBoxName.Size" type="System.Drawing.Size, System.Drawing">
- <value>216, 20</value>
+ <data name="&gt;&gt;maskedTextBoxReleaseDate.Type" xml:space="preserve">
+ <value>System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;automaticOriginalToolStripMenuItem.Name" xml:space="preserve">
- <value>automaticOriginalToolStripMenuItem</value>
+ <data name="&gt;&gt;maskedTextBoxReleaseDate.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="addPresetToolStripMenuItem.Text" xml:space="preserve">
- <value>Add preset</value>
+ <data name="&gt;&gt;maskedTextBoxReleaseDate.ZOrder" xml:space="preserve">
+ <value>1</value>
</data>
- <data name="useExtendedFontToolStripMenuItem.Text" xml:space="preserve">
- <value>Use extended font</value>
+ <data name="label1.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="&gt;&gt;pagesfoldersTypeToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 157</value>
</data>
- <data name="groupBoxDefaultGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>None</value>
+ <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+ <value>150, 13</value>
</data>
- <data name="&gt;&gt;max90toolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="label1.TabIndex" type="System.Int32, mscorlib">
+ <value>5</value>
</data>
- <data name="buttonBrowseImage.Size" type="System.Drawing.Size, System.Drawing">
- <value>61, 23</value>
+ <data name="label1.Text" xml:space="preserve">
+ <value>Release date (YYYY-MM-DD):</value>
</data>
- <data name="&gt;&gt;disableMenuMusicToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;label1.Name" xml:space="preserve">
+ <value>label1</value>
</data>
- <data name="uninstallToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>179, 22</value>
+ <data name="&gt;&gt;label1.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;buttonShowGameGenieDatabase.ZOrder" xml:space="preserve">
- <value>0</value>
+ <data name="&gt;&gt;label1.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="enableAutofireToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>262, 22</value>
+ <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
+ <value>2</value>
</data>
- <data name="&gt;&gt;epilepsyProtectionToolStripMenuItem.Name" xml:space="preserve">
- <value>epilepsyProtectionToolStripMenuItem</value>
+ <data name="textBoxGameGenie.Location" type="System.Drawing.Point, System.Drawing">
+ <value>19, 286</value>
</data>
- <data name="betterPNGCompressionlowerQualityToolStripMenuItem.Text" xml:space="preserve">
- <value>8bit PNG compression (less size/low quality)</value>
+ <data name="textBoxGameGenie.Size" type="System.Drawing.Size, System.Drawing">
+ <value>227, 20</value>
</data>
- <data name="groupBoxDefaultGames.Size" type="System.Drawing.Size, System.Drawing">
- <value>293, 529</value>
+ <data name="textBoxGameGenie.TabIndex" type="System.Int32, mscorlib">
+ <value>11</value>
</data>
- <data name="&gt;&gt;buttonAddGames.ZOrder" xml:space="preserve">
+ <data name="&gt;&gt;textBoxGameGenie.Name" xml:space="preserve">
+ <value>textBoxGameGenie</value>
+ </data>
+ <data name="&gt;&gt;textBoxGameGenie.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;textBoxGameGenie.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;textBoxGameGenie.ZOrder" xml:space="preserve">
<value>3</value>
</data>
- <data name="&gt;&gt;guiHacksToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="label7.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="&gt;&gt;deletePresetToolStripMenuItem.Name" xml:space="preserve">
- <value>deletePresetToolStripMenuItem</value>
+ <data name="label7.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+ <value>NoControl</value>
+ </data>
+ <data name="label7.Location" type="System.Drawing.Point, System.Drawing">
+ <value>16, 269</value>
+ </data>
+ <data name="label7.Size" type="System.Drawing.Size, System.Drawing">
+ <value>194, 13</value>
+ </data>
+ <data name="label7.TabIndex" type="System.Int32, mscorlib">
+ <value>17</value>
+ </data>
+ <data name="label7.Text" xml:space="preserve">
+ <value>Game Genie codes (comma separated):</value>
+ </data>
+ <data name="&gt;&gt;label7.Name" xml:space="preserve">
+ <value>label7</value>
</data>
<data name="&gt;&gt;label7.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="selectButtonCombinationToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>262, 22</value>
+ <data name="&gt;&gt;label7.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="groupBoxOptions.TabIndex" type="System.Int32, mscorlib">
+ <data name="&gt;&gt;label7.ZOrder" xml:space="preserve">
<value>4</value>
</data>
- <data name="addMoreGamesToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
- <value>Ctrl+O</value>
+ <data name="label6.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>236, 22</value>
+ <data name="label6.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 101</value>
</data>
- <data name="&gt;&gt;label7.Parent" xml:space="preserve">
+ <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
+ <value>66, 13</value>
+ </data>
+ <data name="label6.TabIndex" type="System.Int32, mscorlib">
+ <value>16</value>
+ </data>
+ <data name="label6.Text" xml:space="preserve">
+ <value>Max players:</value>
+ </data>
+ <data name="&gt;&gt;label6.Name" xml:space="preserve">
+ <value>label6</value>
+ </data>
+ <data name="&gt;&gt;label6.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;label6.Parent" xml:space="preserve">
<value>groupBoxOptions</value>
</data>
- <data name="&gt;&gt;textBoxName.ZOrder" xml:space="preserve">
- <value>17</value>
+ <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
+ <value>5</value>
</data>
- <data name="&gt;&gt;radioButtonOne.Type" xml:space="preserve">
+ <data name="radioButtonTwoSim.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="radioButtonTwoSim.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+ <value>NoControl</value>
+ </data>
+ <data name="radioButtonTwoSim.Location" type="System.Drawing.Point, System.Drawing">
+ <value>103, 122</value>
+ </data>
+ <data name="radioButtonTwoSim.Size" type="System.Drawing.Size, System.Drawing">
+ <value>156, 17</value>
+ </data>
+ <data name="radioButtonTwoSim.TabIndex" type="System.Int32, mscorlib">
+ <value>5</value>
+ </data>
+ <data name="radioButtonTwoSim.Text" xml:space="preserve">
+ <value>Two players, simultaneously</value>
+ </data>
+ <data name="&gt;&gt;radioButtonTwoSim.Name" xml:space="preserve">
+ <value>radioButtonTwoSim</value>
+ </data>
+ <data name="&gt;&gt;radioButtonTwoSim.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label1.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="&gt;&gt;radioButtonTwoSim.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="&gt;&gt;selectAllToolStripMenuItem.Name" xml:space="preserve">
- <value>selectAllToolStripMenuItem</value>
+ <data name="&gt;&gt;radioButtonTwoSim.ZOrder" xml:space="preserve">
+ <value>6</value>
+ </data>
+ <data name="buttonGoogle.Location" type="System.Drawing.Point, System.Drawing">
+ <value>219, 427</value>
+ </data>
+ <data name="buttonGoogle.Size" type="System.Drawing.Size, System.Drawing">
+ <value>61, 23</value>
+ </data>
+ <data name="buttonGoogle.TabIndex" type="System.Int32, mscorlib">
+ <value>15</value>
+ </data>
+ <data name="buttonGoogle.Text" xml:space="preserve">
+ <value>Google</value>
+ </data>
+ <data name="&gt;&gt;buttonGoogle.Name" xml:space="preserve">
+ <value>buttonGoogle</value>
</data>
<data name="&gt;&gt;buttonGoogle.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxName.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;buttonGoogle.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="foldersSplitByFirstLetterOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
+ <data name="&gt;&gt;buttonGoogle.ZOrder" xml:space="preserve">
+ <value>7</value>
+ </data>
+ <data name="buttonBrowseImage.Location" type="System.Drawing.Point, System.Drawing">
+ <value>219, 384</value>
+ </data>
+ <data name="buttonBrowseImage.Size" type="System.Drawing.Size, System.Drawing">
+ <value>61, 23</value>
+ </data>
+ <data name="buttonBrowseImage.TabIndex" type="System.Int32, mscorlib">
+ <value>13</value>
+ </data>
+ <data name="buttonBrowseImage.Text" xml:space="preserve">
+ <value>Browse</value>
</data>
<data name="&gt;&gt;buttonBrowseImage.Name" xml:space="preserve">
<value>buttonBrowseImage</value>
</data>
- <data name="upABStartOnSecondControllerToolStripMenuItem.Text" xml:space="preserve">
- <value>"Up+A+B = Start" on 2nd controller</value>
+ <data name="&gt;&gt;buttonBrowseImage.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;ToolStripMenuItemArmetLevel1.Name" xml:space="preserve">
- <value>ToolStripMenuItemArmetLevel1</value>
+ <data name="&gt;&gt;buttonBrowseImage.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
- <value>53, 13</value>
+ <data name="&gt;&gt;buttonBrowseImage.ZOrder" xml:space="preserve">
+ <value>8</value>
</data>
- <data name="menuStrip.Text" xml:space="preserve">
- <value>menuStrip</value>
+ <data name="pictureBoxArt.Location" type="System.Drawing.Point, System.Drawing">
+ <value>71, 316</value>
</data>
- <data name="&gt;&gt;groupBoxOptions.Parent" xml:space="preserve">
- <value>$this</value>
+ <data name="pictureBoxArt.Size" type="System.Drawing.Size, System.Drawing">
+ <value>140, 204</value>
</data>
- <data name="labelID.AutoSize" type="System.Boolean, mscorlib">
+ <data name="pictureBoxArt.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+ <value>Zoom</value>
+ </data>
+ <data name="pictureBoxArt.TabIndex" type="System.Int32, mscorlib">
+ <value>12</value>
+ </data>
+ <data name="&gt;&gt;pictureBoxArt.Name" xml:space="preserve">
+ <value>pictureBoxArt</value>
+ </data>
+ <data name="&gt;&gt;pictureBoxArt.Type" xml:space="preserve">
+ <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;pictureBoxArt.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;pictureBoxArt.ZOrder" xml:space="preserve">
+ <value>9</value>
+ </data>
+ <data name="label4.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
- <data name="deleteGameToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>140, 22</value>
+ <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 409</value>
</data>
- <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
- <value>14</value>
+ <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+ <value>43, 13</value>
</data>
- <data name="fAQToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>246, 22</value>
+ <data name="label4.TabIndex" type="System.Int32, mscorlib">
+ <value>11</value>
</data>
- <data name="checkedListBoxDefaultGames.Location" type="System.Drawing.Point, System.Drawing">
- <value>5, 49</value>
+ <data name="label4.Text" xml:space="preserve">
+ <value>Box art:</value>
</data>
- <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
- <value>2</value>
+ <data name="&gt;&gt;label4.Name" xml:space="preserve">
+ <value>label4</value>
</data>
- <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
- <value>6, 13</value>
+ <data name="&gt;&gt;label4.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;toolStripMenuItem2.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;label4.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="&gt;&gt;helpToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
+ <value>10</value>
</data>
- <data name="settingsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>61, 20</value>
+ <data name="textBoxArguments.Location" type="System.Drawing.Point, System.Drawing">
+ <value>18, 237</value>
</data>
- <data name="deletePresetToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>142, 22</value>
+ <data name="textBoxArguments.Size" type="System.Drawing.Size, System.Drawing">
+ <value>257, 20</value>
</data>
- <data name="&gt;&gt;openFileDialogNes.Name" xml:space="preserve">
- <value>openFileDialogNes</value>
+ <data name="textBoxArguments.TabIndex" type="System.Int32, mscorlib">
+ <value>10</value>
</data>
- <data name="&gt;&gt;max25toolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;textBoxArguments.Name" xml:space="preserve">
+ <value>textBoxArguments</value>
</data>
- <data name="&gt;&gt;radioButtonTwo.Parent" xml:space="preserve">
+ <data name="&gt;&gt;textBoxArguments.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;textBoxArguments.Parent" xml:space="preserve">
<value>groupBoxOptions</value>
</data>
- <data name="radioButtonOne.Text" xml:space="preserve">
- <value>One player</value>
+ <data name="&gt;&gt;textBoxArguments.ZOrder" xml:space="preserve">
+ <value>11</value>
</data>
- <data name="searchToolStripMenuItem.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
- <value>Ctrl+F</value>
+ <data name="label3.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="&gt;&gt;groupBoxDefaultGames.Parent" xml:space="preserve">
- <value>$this</value>
+ <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 220</value>
</data>
- <data name="flashOriginalKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>179, 22</value>
+ <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+ <value>253, 13</value>
</data>
- <data name="&gt;&gt;menuStrip.Type" xml:space="preserve">
- <value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="label3.TabIndex" type="System.Int32, mscorlib">
+ <value>9</value>
</data>
- <data name="&gt;&gt;foldersOriginalToolStripMenuItem.Name" xml:space="preserve">
- <value>foldersOriginalToolStripMenuItem</value>
+ <data name="label3.Text" xml:space="preserve">
+ <value>Command line arguments (for advanced users only!):</value>
</data>
- <data name="removeThumbnailsAtTheBottomToolStripMenuItem.Text" xml:space="preserve">
- <value>Remove thumbnails at the bottom</value>
+ <data name="&gt;&gt;label3.Name" xml:space="preserve">
+ <value>label3</value>
</data>
- <data name="&gt;&gt;max70toolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;label3.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="addMoreGamesToolStripMenuItem.Text" xml:space="preserve">
- <value>Add more &amp;games</value>
+ <data name="&gt;&gt;label3.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="selectAllToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>140, 22</value>
+ <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
+ <value>12</value>
+ </data>
+ <data name="textBoxPublisher.Location" type="System.Drawing.Point, System.Drawing">
+ <value>77, 186</value>
+ </data>
+ <data name="textBoxPublisher.Size" type="System.Drawing.Size, System.Drawing">
+ <value>198, 20</value>
+ </data>
+ <data name="textBoxPublisher.TabIndex" type="System.Int32, mscorlib">
+ <value>8</value>
+ </data>
+ <data name="&gt;&gt;textBoxPublisher.Name" xml:space="preserve">
+ <value>textBoxPublisher</value>
+ </data>
+ <data name="&gt;&gt;textBoxPublisher.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;textBoxPublisher.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;textBoxPublisher.ZOrder" xml:space="preserve">
+ <value>13</value>
+ </data>
+ <data name="label2.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>15, 189</value>
</data>
- <data name="&gt;&gt;deleteGameToolStripMenuItem.Name" xml:space="preserve">
- <value>deleteGameToolStripMenuItem</value>
+ <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+ <value>53, 13</value>
</data>
- <data name="settingsToolStripMenuItem.Text" xml:space="preserve">
- <value>&amp;Settings</value>
+ <data name="label2.TabIndex" type="System.Int32, mscorlib">
+ <value>7</value>
</data>
- <data name="presetsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>236, 22</value>
+ <data name="label2.Text" xml:space="preserve">
+ <value>Publisher:</value>
</data>
- <data name="&gt;&gt;buttonAddGames.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;label2.Name" xml:space="preserve">
+ <value>label2</value>
</data>
- <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
- <value>43, 13</value>
+ <data name="&gt;&gt;label2.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;$this.Type" xml:space="preserve">
- <value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;label2.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="openFileDialogImage.Filter" xml:space="preserve">
- <value>Images (*.bmp;*.png;*.jpg;*.jpeg;*.gif)|*.bmp;*.png;*.jpg;*.jpeg;*.gif|All files|*.*</value>
+ <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
+ <value>14</value>
</data>
- <data name="&gt;&gt;settingsToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="radioButtonTwo.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="&gt;&gt;flashCustomKernelToolStripMenuItem.Name" xml:space="preserve">
- <value>flashCustomKernelToolStripMenuItem</value>
+ <data name="radioButtonTwo.Location" type="System.Drawing.Point, System.Drawing">
+ <value>103, 99</value>
</data>
- <data name="exitToolStripMenuItem.Text" xml:space="preserve">
- <value>&amp;Exit</value>
+ <data name="radioButtonTwo.Size" type="System.Drawing.Size, System.Drawing">
+ <value>174, 17</value>
</data>
- <data name="buttonAddGames.TabIndex" type="System.Int32, mscorlib">
- <value>5</value>
+ <data name="radioButtonTwo.TabIndex" type="System.Int32, mscorlib">
+ <value>4</value>
</data>
- <data name="max20toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="radioButtonTwo.Text" xml:space="preserve">
+ <value>Two players, not simultaneously</value>
+ </data>
+ <data name="&gt;&gt;radioButtonTwo.Name" xml:space="preserve">
+ <value>radioButtonTwo</value>
+ </data>
+ <data name="&gt;&gt;radioButtonTwo.Type" xml:space="preserve">
+ <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;radioButtonTwo.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;radioButtonTwo.ZOrder" xml:space="preserve">
+ <value>15</value>
+ </data>
+ <data name="radioButtonOne.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="radioButtonOne.Location" type="System.Drawing.Point, System.Drawing">
+ <value>103, 76</value>
</data>
<data name="radioButtonOne.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
- <data name="checkedListBoxDefaultGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Top, Bottom, Left, Right</value>
+ <data name="radioButtonOne.TabIndex" type="System.Int32, mscorlib">
+ <value>3</value>
</data>
- <data name="&gt;&gt;dumpKernelToolStripMenuItem.Name" xml:space="preserve">
- <value>dumpKernelToolStripMenuItem</value>
+ <data name="radioButtonOne.Text" xml:space="preserve">
+ <value>One player</value>
</data>
- <data name="maximumGamesPerFolderToolStripMenuItem.Text" xml:space="preserve">
- <value>Maximum games per page/folder</value>
+ <data name="&gt;&gt;radioButtonOne.Name" xml:space="preserve">
+ <value>radioButtonOne</value>
</data>
- <data name="buttonShowGameGenieDatabase.TabIndex" type="System.Int32, mscorlib">
- <value>12</value>
+ <data name="&gt;&gt;radioButtonOne.Type" xml:space="preserve">
+ <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="buttonShowGameGenieDatabase.Location" type="System.Drawing.Point, System.Drawing">
- <value>252, 286</value>
+ <data name="&gt;&gt;radioButtonOne.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="checkedListBoxGames.TabIndex" type="System.Int32, mscorlib">
+ <data name="&gt;&gt;radioButtonOne.ZOrder" xml:space="preserve">
+ <value>16</value>
+ </data>
+ <data name="textBoxName.Location" type="System.Drawing.Point, System.Drawing">
+ <value>59, 46</value>
+ </data>
+ <data name="textBoxName.Size" type="System.Drawing.Size, System.Drawing">
+ <value>216, 20</value>
+ </data>
+ <data name="textBoxName.TabIndex" type="System.Int32, mscorlib">
+ <value>2</value>
+ </data>
+ <data name="&gt;&gt;textBoxName.Name" xml:space="preserve">
+ <value>textBoxName</value>
+ </data>
+ <data name="&gt;&gt;textBoxName.Type" xml:space="preserve">
+ <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;textBoxName.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;textBoxName.ZOrder" xml:space="preserve">
+ <value>17</value>
+ </data>
+ <data name="labelName.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="labelName.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 49</value>
+ </data>
+ <data name="labelName.Size" type="System.Drawing.Size, System.Drawing">
+ <value>38, 13</value>
+ </data>
+ <data name="labelName.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
- <data name="&gt;&gt;disableMenuMusicToolStripMenuItem.Name" xml:space="preserve">
- <value>disableMenuMusicToolStripMenuItem</value>
+ <data name="labelName.Text" xml:space="preserve">
+ <value>Name:</value>
</data>
- <data name="customToolStripMenuItem.Text" xml:space="preserve">
- <value>Custom - show Folders Manager every time</value>
+ <data name="&gt;&gt;labelName.Name" xml:space="preserve">
+ <value>labelName</value>
</data>
- <data name="automaticOriginalToolStripMenuItem.Text" xml:space="preserve">
- <value>Original games in root -&gt; Automatic in subfolder</value>
+ <data name="&gt;&gt;labelName.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="pagesOriginalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
+ <data name="&gt;&gt;labelName.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
</data>
- <data name="&gt;&gt;radioButtonTwo.ZOrder" xml:space="preserve">
- <value>15</value>
+ <data name="&gt;&gt;labelName.ZOrder" xml:space="preserve">
+ <value>18</value>
</data>
- <data name="buttonBrowseImage.Text" xml:space="preserve">
- <value>Browse</value>
+ <data name="labelID.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
</data>
- <data name="&gt;&gt;famicomMiniToolStripMenuItem.Name" xml:space="preserve">
- <value>famicomMiniToolStripMenuItem</value>
+ <data name="labelID.Location" type="System.Drawing.Point, System.Drawing">
+ <value>15, 21</value>
</data>
- <data name="famicomMiniToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>151, 22</value>
+ <data name="labelID.Size" type="System.Drawing.Size, System.Drawing">
+ <value>21, 13</value>
</data>
- <data name="&gt;&gt;max40toolStripMenuItem.Name" xml:space="preserve">
- <value>max40toolStripMenuItem</value>
+ <data name="labelID.TabIndex" type="System.Int32, mscorlib">
+ <value>0</value>
</data>
- <data name="textBoxName.TabIndex" type="System.Int32, mscorlib">
+ <data name="labelID.Text" xml:space="preserve">
+ <value>ID:</value>
+ </data>
+ <data name="&gt;&gt;labelID.Name" xml:space="preserve">
+ <value>labelID</value>
+ </data>
+ <data name="&gt;&gt;labelID.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;labelID.Parent" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;labelID.ZOrder" xml:space="preserve">
+ <value>19</value>
+ </data>
+ <data name="groupBoxOptions.Location" type="System.Drawing.Point, System.Drawing">
+ <value>306, 27</value>
+ </data>
+ <data name="groupBoxOptions.Size" type="System.Drawing.Size, System.Drawing">
+ <value>293, 529</value>
+ </data>
+ <data name="groupBoxOptions.TabIndex" type="System.Int32, mscorlib">
+ <value>4</value>
+ </data>
+ <data name="groupBoxOptions.Text" xml:space="preserve">
+ <value>Game options</value>
+ </data>
+ <data name="&gt;&gt;groupBoxOptions.Name" xml:space="preserve">
+ <value>groupBoxOptions</value>
+ </data>
+ <data name="&gt;&gt;groupBoxOptions.Type" xml:space="preserve">
+ <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;groupBoxOptions.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name="&gt;&gt;groupBoxOptions.ZOrder" xml:space="preserve">
+ <value>7</value>
+ </data>
+ <data name="label5.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>None</value>
+ </data>
+ <data name="label5.AutoSize" type="System.Boolean, mscorlib">
+ <value>True</value>
+ </data>
+ <data name="label5.Location" type="System.Drawing.Point, System.Drawing">
+ <value>12, 33</value>
+ </data>
+ <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
+ <value>74, 13</value>
+ </data>
+ <data name="label5.TabIndex" type="System.Int32, mscorlib">
+ <value>4</value>
+ </data>
+ <data name="label5.Text" xml:space="preserve">
+ <value>Select games:</value>
+ </data>
+ <data name="&gt;&gt;label5.Name" xml:space="preserve">
+ <value>label5</value>
+ </data>
+ <data name="&gt;&gt;label5.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;label5.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
+ <value>4</value>
+ </data>
+ <data name="buttonAddGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>None</value>
+ </data>
+ <data name="buttonAddGames.Location" type="System.Drawing.Point, System.Drawing">
+ <value>12, 568</value>
+ </data>
+ <data name="buttonAddGames.Size" type="System.Drawing.Size, System.Drawing">
+ <value>282, 38</value>
+ </data>
+ <data name="buttonAddGames.TabIndex" type="System.Int32, mscorlib">
+ <value>5</value>
+ </data>
+ <data name="buttonAddGames.Text" xml:space="preserve">
+ <value>Add more games</value>
+ </data>
+ <data name="&gt;&gt;buttonAddGames.Name" xml:space="preserve">
+ <value>buttonAddGames</value>
+ </data>
+ <data name="&gt;&gt;buttonAddGames.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;buttonAddGames.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name="&gt;&gt;buttonAddGames.ZOrder" xml:space="preserve">
+ <value>3</value>
+ </data>
+ <metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>105, 18</value>
+ </metadata>
+ <data name="toolStripStatusLabelSelected.Size" type="System.Drawing.Size, System.Drawing">
+ <value>118, 17</value>
+ </data>
+ <data name="toolStripStatusLabelSelected.Text" xml:space="preserve">
+ <value>toolStripStatusLabel1</value>
+ </data>
+ <data name="statusStrip.Location" type="System.Drawing.Point, System.Drawing">
+ <value>0, 615</value>
+ </data>
+ <data name="statusStrip.Size" type="System.Drawing.Size, System.Drawing">
+ <value>609, 22</value>
+ </data>
+ <data name="statusStrip.TabIndex" type="System.Int32, mscorlib">
+ <value>6</value>
+ </data>
+ <data name="statusStrip.Text" xml:space="preserve">
+ <value>statusStrip1</value>
+ </data>
+ <data name="&gt;&gt;statusStrip.Name" xml:space="preserve">
+ <value>statusStrip</value>
+ </data>
+ <data name="&gt;&gt;statusStrip.Type" xml:space="preserve">
+ <value>System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;statusStrip.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name="&gt;&gt;statusStrip.ZOrder" xml:space="preserve">
<value>2</value>
</data>
- <data name="foldersOriginalToolStripMenuItem.Text" xml:space="preserve">
- <value>Original games in root -&gt; Folders, split games equally</value>
+ <metadata name="openFileDialogNes.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>198, 18</value>
+ </metadata>
+ <data name="openFileDialogNes.Filter" xml:space="preserve">
+ <value>NES files and applications|*.nes;*.fds;*.desktop;*.zip;*.7z;*.rar|All files|*.*</value>
</data>
- <data name="famicomMiniToolStripMenuItem.Text" xml:space="preserve">
- <value>Famicom Mini</value>
+ <data name="openFileDialogNes.Title" xml:space="preserve">
+ <value>Select NES file(s)</value>
</data>
- <data name="disableMenuMusicToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>256, 22</value>
+ <metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>336, 18</value>
+ </metadata>
+ <data name="selectAllToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>140, 22</value>
+ </data>
+ <data name="selectAllToolStripMenuItem.Text" xml:space="preserve">
+ <value>Select all</value>
</data>
<data name="unselectAllToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 22</value>
</data>
- <data name="&gt;&gt;deleteGameToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="unselectAllToolStripMenuItem.Text" xml:space="preserve">
+ <value>Unselect all</value>
</data>
- <data name="&gt;&gt;nESMiniToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="deleteGameToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>140, 22</value>
</data>
- <data name="label4.Text" xml:space="preserve">
- <value>Box art:</value>
+ <data name="deleteGameToolStripMenuItem.Text" xml:space="preserve">
+ <value>Delete game</value>
</data>
- <data name="pagesfoldersTypeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
+ <data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
+ <value>141, 70</value>
</data>
- <data name="fileToolStripMenuItem.Text" xml:space="preserve">
- <value>&amp;File</value>
+ <data name="&gt;&gt;contextMenuStrip.Name" xml:space="preserve">
+ <value>contextMenuStrip</value>
</data>
- <data name="dumpKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>179, 22</value>
+ <data name="&gt;&gt;contextMenuStrip.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;groupBoxDefaultGames.Type" xml:space="preserve">
- <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <metadata name="openFileDialogImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>469, 18</value>
+ </metadata>
+ <data name="openFileDialogImage.Filter" xml:space="preserve">
+ <value>Images (*.bmp;*.png;*.jpg;*.jpeg;*.gif)|*.bmp;*.png;*.jpg;*.jpeg;*.gif|All files|*.*</value>
</data>
- <data name="&gt;&gt;consoleTypeToolStripMenuItem.Name" xml:space="preserve">
- <value>consoleTypeToolStripMenuItem</value>
+ <data name="openFileDialogImage.Title" xml:space="preserve">
+ <value>Select cover for game</value>
</data>
- <data name="buttonBrowseImage.Location" type="System.Drawing.Point, System.Drawing">
- <value>219, 384</value>
+ <data name="buttonStart.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>None</value>
</data>
- <data name="&gt;&gt;label1.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="buttonStart.Location" type="System.Drawing.Point, System.Drawing">
+ <value>306, 568</value>
</data>
- <data name="guiHacksToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
+ <data name="buttonStart.Size" type="System.Drawing.Size, System.Drawing">
+ <value>293, 38</value>
</data>
- <data name="gitHubPageWithActualReleasesToolStripMenuItem.Text" xml:space="preserve">
- <value>GitHub page with actual releases</value>
+ <data name="buttonStart.TabIndex" type="System.Int32, mscorlib">
+ <value>6</value>
</data>
- <data name="&gt;&gt;ToolStripMenuItemArmetLevel2.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="buttonStart.Text" xml:space="preserve">
+ <value>Synchronize selected games with NES Mini</value>
</data>
- <data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
- <value>625, 675</value>
+ <data name="&gt;&gt;buttonStart.Name" xml:space="preserve">
+ <value>buttonStart</value>
</data>
- <data name="&gt;&gt;addMoreGamesToolStripMenuItem.Name" xml:space="preserve">
- <value>addMoreGamesToolStripMenuItem</value>
+ <data name="&gt;&gt;buttonStart.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
- <value>150, 13</value>
+ <data name="&gt;&gt;buttonStart.Parent" xml:space="preserve">
+ <value>$this</value>
</data>
- <data name="upABStartOnSecondControllerToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>262, 22</value>
+ <data name="&gt;&gt;buttonStart.ZOrder" xml:space="preserve">
+ <value>1</value>
</data>
- <data name="radioButtonOne.TabIndex" type="System.Int32, mscorlib">
- <value>3</value>
+ <data name="groupBoxDefaultGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>None</value>
</data>
- <data name="label7.Location" type="System.Drawing.Point, System.Drawing">
- <value>16, 269</value>
+ <data name="checkedListBoxDefaultGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Bottom, Left, Right</value>
</data>
- <data name="groupBoxDefaultGames.TabIndex" type="System.Int32, mscorlib">
+ <data name="checkedListBoxDefaultGames.Location" type="System.Drawing.Point, System.Drawing">
+ <value>5, 49</value>
+ </data>
+ <data name="checkedListBoxDefaultGames.Size" type="System.Drawing.Size, System.Drawing">
+ <value>282, 454</value>
+ </data>
+ <data name="checkedListBoxDefaultGames.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
- <data name="label6.TabIndex" type="System.Int32, mscorlib">
- <value>16</value>
+ <data name="&gt;&gt;checkedListBoxDefaultGames.Name" xml:space="preserve">
+ <value>checkedListBoxDefaultGames</value>
</data>
- <data name="deletePresetToolStripMenuItem.Text" xml:space="preserve">
- <value>Delete preset</value>
+ <data name="&gt;&gt;checkedListBoxDefaultGames.Type" xml:space="preserve">
+ <value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="pictureBoxArt.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
- <value>Zoom</value>
+ <data name="&gt;&gt;checkedListBoxDefaultGames.Parent" xml:space="preserve">
+ <value>groupBoxDefaultGames</value>
</data>
- <data name="&gt;&gt;foldersSplitByFirstLetterToolStripMenuItem.Name" xml:space="preserve">
- <value>foldersSplitByFirstLetterToolStripMenuItem</value>
+ <data name="&gt;&gt;checkedListBoxDefaultGames.ZOrder" xml:space="preserve">
+ <value>0</value>
</data>
- <data name="max45toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="groupBoxDefaultGames.Location" type="System.Drawing.Point, System.Drawing">
+ <value>306, 27</value>
</data>
- <data name="&gt;&gt;openFileDialogImage.Type" xml:space="preserve">
- <value>System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="groupBoxDefaultGames.Size" type="System.Drawing.Size, System.Drawing">
+ <value>293, 529</value>
</data>
- <data name="&gt;&gt;disablePagefoldersToolStripMenuItem.Name" xml:space="preserve">
- <value>disablePagefoldersToolStripMenuItem</value>
+ <data name="groupBoxDefaultGames.TabIndex" type="System.Int32, mscorlib">
+ <value>3</value>
</data>
- <data name="labelName.TabIndex" type="System.Int32, mscorlib">
- <value>1</value>
+ <data name="groupBoxDefaultGames.Text" xml:space="preserve">
+ <value>You can hide some default games</value>
</data>
- <data name="helpToolStripMenuItem.Text" xml:space="preserve">
- <value>&amp;Help</value>
+ <data name="groupBoxDefaultGames.Visible" type="System.Boolean, mscorlib">
+ <value>False</value>
</data>
- <data name="foldersSplitByFirstLetterToolStripMenuItem.Text" xml:space="preserve">
- <value>Folders, split by first letter</value>
+ <data name="&gt;&gt;groupBoxDefaultGames.Name" xml:space="preserve">
+ <value>groupBoxDefaultGames</value>
+ </data>
+ <data name="&gt;&gt;groupBoxDefaultGames.Type" xml:space="preserve">
+ <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
+ <data name="&gt;&gt;groupBoxDefaultGames.Parent" xml:space="preserve">
+ <value>$this</value>
+ </data>
+ <data name="&gt;&gt;groupBoxDefaultGames.ZOrder" xml:space="preserve">
+ <value>8</value>
+ </data>
+ <metadata name="timerCalculateGames.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>620, 18</value>
+ </metadata>
+ <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <value>True</value>
+ </metadata>
+ <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
+ <value>6, 13</value>
+ </data>
+ <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
+ <value>609, 637</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@@ -1846,1060 +2458,448 @@
//////////////////////////////////8=
</value>
</data>
- <data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>37, 20</value>
- </data>
- <data name="&gt;&gt;label1.Name" xml:space="preserve">
- <value>label1</value>
- </data>
- <data name="textBoxArguments.Location" type="System.Drawing.Point, System.Drawing">
- <value>18, 237</value>
+ <data name="$this.MaximumSize" type="System.Drawing.Size, System.Drawing">
+ <value>625, 675</value>
</data>
- <data name="label7.TabIndex" type="System.Int32, mscorlib">
- <value>17</value>
+ <data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
+ <value>625, 675</value>
</data>
- <data name="&gt;&gt;statusStrip.Name" xml:space="preserve">
- <value>statusStrip</value>
+ <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
+ <value>CenterScreen</value>
</data>
- <data name="&gt;&gt;label7.Name" xml:space="preserve">
- <value>label7</value>
+ <data name="$this.Text" xml:space="preserve">
+ <value>hakchi2</value>
</data>
<data name="&gt;&gt;fileToolStripMenuItem.Name" xml:space="preserve">
<value>fileToolStripMenuItem</value>
</data>
- <data name="textBoxGameGenie.Size" type="System.Drawing.Size, System.Drawing">
- <value>227, 20</value>
- </data>
- <data name="globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
- </data>
- <data name="&gt;&gt;maximumGamesPerFolderToolStripMenuItem.Name" xml:space="preserve">
- <value>maximumGamesPerFolderToolStripMenuItem</value>
- </data>
- <data name="labelName.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
- </data>
- <data name="&gt;&gt;automaticToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;fileToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label4.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
- </data>
- <data name="radioButtonOne.Location" type="System.Drawing.Point, System.Drawing">
- <value>103, 76</value>
- </data>
- <data name="label1.Text" xml:space="preserve">
- <value>Release date (YYYY-MM-DD):</value>
- </data>
- <data name="downloadCoversForAllGamesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>236, 22</value>
- </data>
- <data name="ToolStripMenuItemArmetLevel0.Text" xml:space="preserve">
- <value>Default</value>
- </data>
- <data name="maskedTextBoxReleaseDate.Mask" xml:space="preserve">
- <value>0000-00-00</value>
- </data>
- <data name="radioButtonTwoSim.Text" xml:space="preserve">
- <value>Two players, simultaneously</value>
- </data>
- <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
- <value>66, 13</value>
- </data>
- <data name="&gt;&gt;pictureBoxArt.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="labelName.Text" xml:space="preserve">
- <value>Name:</value>
- </data>
- <data name="&gt;&gt;label6.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;addMoreGamesToolStripMenuItem.Name" xml:space="preserve">
+ <value>addMoreGamesToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;kernelToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;addMoreGamesToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;checkedListBoxGames.Type" xml:space="preserve">
- <value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="&gt;&gt;timerCalculateGames.Type" xml:space="preserve">
- <value>System.Windows.Forms.Timer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="toolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing">
- <value>353, 6</value>
- </data>
- <data name="&gt;&gt;checkedListBoxDefaultGames.Parent" xml:space="preserve">
- <value>groupBoxDefaultGames</value>
- </data>
- <data name="label7.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
- </data>
- <data name="menuStrip.TabIndex" type="System.Int32, mscorlib">
- <value>1</value>
- </data>
- <data name="disablePagefoldersToolStripMenuItem.Text" xml:space="preserve">
- <value>Disable page/folders</value>
- </data>
- <data name="checkedListBoxGames.Size" type="System.Drawing.Size, System.Drawing">
- <value>282, 499</value>
+ <data name="&gt;&gt;presetsToolStripMenuItem.Name" xml:space="preserve">
+ <value>presetsToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;flashOriginalKernelToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;presetsToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="max25toolStripMenuItem.Text" xml:space="preserve">
- <value>25</value>
- </data>
- <data name="label5.Text" xml:space="preserve">
- <value>Select games:</value>
- </data>
- <data name="&gt;&gt;foldersSplitByFirstLetterOriginalToolStripMenuItem.Name" xml:space="preserve">
- <value>foldersSplitByFirstLetterOriginalToolStripMenuItem</value>
- </data>
- <data name="buttonAddGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>None</value>
- </data>
- <data name="disablePagefoldersToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
+ <data name="&gt;&gt;toolStripMenuItem2.Name" xml:space="preserve">
+ <value>toolStripMenuItem2</value>
</data>
- <data name="fAQToolStripMenuItem.Text" xml:space="preserve">
- <value>FAQ</value>
+ <data name="&gt;&gt;toolStripMenuItem2.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="buttonAddGames.Text" xml:space="preserve">
- <value>Add more games</value>
+ <data name="&gt;&gt;addPresetToolStripMenuItem.Name" xml:space="preserve">
+ <value>addPresetToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;consoleTypeToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;addPresetToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="resetUsingCombinationOfButtonsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>262, 22</value>
+ <data name="&gt;&gt;deletePresetToolStripMenuItem.Name" xml:space="preserve">
+ <value>deletePresetToolStripMenuItem</value>
</data>
<data name="&gt;&gt;deletePresetToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
- <value>253, 13</value>
- </data>
- <data name="toolStripStatusLabelSelected.Size" type="System.Drawing.Size, System.Drawing">
- <value>118, 17</value>
- </data>
- <data name="&gt;&gt;selectButtonCombinationToolStripMenuItem.Name" xml:space="preserve">
- <value>selectButtonCombinationToolStripMenuItem</value>
- </data>
- <data name="textBoxPublisher.Location" type="System.Drawing.Point, System.Drawing">
- <value>77, 186</value>
- </data>
- <data name="&gt;&gt;label2.Name" xml:space="preserve">
- <value>label2</value>
- </data>
- <data name="&gt;&gt;maskedTextBoxReleaseDate.ZOrder" xml:space="preserve">
- <value>1</value>
- </data>
- <data name="pagesOriginalToolStripMenuItem.ImageScaling" type="System.Windows.Forms.ToolStripItemImageScaling, System.Windows.Forms">
- <value>None</value>
- </data>
- <data name="&gt;&gt;toolStripMenuItem1.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="pagesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
- </data>
- <data name="&gt;&gt;helpToolStripMenuItem.Name" xml:space="preserve">
- <value>helpToolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;groupBoxOptions.Name" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="&gt;&gt;radioButtonTwoSim.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="&gt;&gt;settingsToolStripMenuItem.Name" xml:space="preserve">
- <value>settingsToolStripMenuItem</value>
- </data>
- <data name="label5.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>None</value>
- </data>
- <data name="presetsToolStripMenuItem.Text" xml:space="preserve">
- <value>Selection presets</value>
- </data>
- <data name="buttonGoogle.TabIndex" type="System.Int32, mscorlib">
- <value>15</value>
- </data>
- <data name="&gt;&gt;enableAutofireToolStripMenuItem.Name" xml:space="preserve">
- <value>enableAutofireToolStripMenuItem</value>
- </data>
- <data name="kernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>52, 20</value>
- </data>
- <data name="&gt;&gt;radioButtonTwoSim.ZOrder" xml:space="preserve">
- <value>6</value>
- </data>
<data name="&gt;&gt;searchToolStripMenuItem.Name" xml:space="preserve">
<value>searchToolStripMenuItem</value>
</data>
- <data name="openFileDialogNes.Title" xml:space="preserve">
- <value>Select NES file(s)</value>
- </data>
- <data name="useExtendedFontToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>256, 22</value>
+ <data name="&gt;&gt;searchToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label3.Text" xml:space="preserve">
- <value>Command line arguments (for advanced users only!):</value>
+ <data name="&gt;&gt;downloadCoversForAllGamesToolStripMenuItem.Name" xml:space="preserve">
+ <value>downloadCoversForAllGamesToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;dumpKernelToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;downloadCoversForAllGamesToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;selectAllToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;toolStripMenuItem1.Name" xml:space="preserve">
+ <value>toolStripMenuItem1</value>
</data>
- <data name="&gt;&gt;maskedTextBoxReleaseDate.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;toolStripMenuItem1.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;automaticToolStripMenuItem.Name" xml:space="preserve">
- <value>automaticToolStripMenuItem</value>
+ <data name="&gt;&gt;exitToolStripMenuItem.Name" xml:space="preserve">
+ <value>exitToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;selectButtonCombinationToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;exitToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;maskedTextBoxReleaseDate.Name" xml:space="preserve">
- <value>maskedTextBoxReleaseDate</value>
- </data>
- <data name="&gt;&gt;ToolStripMenuItemArmetLevel0.Name" xml:space="preserve">
- <value>ToolStripMenuItemArmetLevel0</value>
+ <data name="&gt;&gt;kernelToolStripMenuItem.Name" xml:space="preserve">
+ <value>kernelToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;menuStrip.Name" xml:space="preserve">
- <value>menuStrip</value>
+ <data name="&gt;&gt;kernelToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="flashOriginalKernelToolStripMenuItem.Text" xml:space="preserve">
- <value>Flash original kernel</value>
+ <data name="&gt;&gt;dumpKernelToolStripMenuItem.Name" xml:space="preserve">
+ <value>dumpKernelToolStripMenuItem</value>
</data>
- <data name="radioButtonTwoSim.TabIndex" type="System.Int32, mscorlib">
- <value>5</value>
+ <data name="&gt;&gt;dumpKernelToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;flashOriginalKernelToolStripMenuItem.Name" xml:space="preserve">
<value>flashOriginalKernelToolStripMenuItem</value>
</data>
- <data name="max50toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
- </data>
- <data name="flashCustomKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>179, 22</value>
- </data>
- <data name="buttonShowGameGenieDatabase.Text" xml:space="preserve">
- <value>+</value>
- </data>
- <data name="&gt;&gt;max80toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;flashOriginalKernelToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Text" xml:space="preserve">
- <value>Global command line arguments (experts only!)</value>
- </data>
- <data name="&gt;&gt;exitToolStripMenuItem.Name" xml:space="preserve">
- <value>exitToolStripMenuItem</value>
- </data>
- <data name="menuStrip.Size" type="System.Drawing.Size, System.Drawing">
- <value>609, 24</value>
- </data>
- <data name="selectAllToolStripMenuItem.Text" xml:space="preserve">
- <value>Select all</value>
- </data>
- <data name="max40toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;flashCustomKernelToolStripMenuItem.Name" xml:space="preserve">
+ <value>flashCustomKernelToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max30toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;flashCustomKernelToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;openFileDialogNes.Type" xml:space="preserve">
- <value>System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;uninstallToolStripMenuItem.Name" xml:space="preserve">
+ <value>uninstallToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;cloverconHackToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;uninstallToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="aboutToolStripMenuItem.Text" xml:space="preserve">
- <value>About...</value>
- </data>
- <data name="&gt;&gt;maskedTextBoxReleaseDate.Type" xml:space="preserve">
- <value>System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="max90toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
- </data>
- <data name="radioButtonTwo.Size" type="System.Drawing.Size, System.Drawing">
- <value>174, 17</value>
- </data>
- <data name="&gt;&gt;unselectAllToolStripMenuItem.Name" xml:space="preserve">
- <value>unselectAllToolStripMenuItem</value>
- </data>
- <data name="customToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
- </data>
- <data name="pictureBoxArt.Size" type="System.Drawing.Size, System.Drawing">
- <value>140, 204</value>
- </data>
- <data name="radioButtonTwoSim.Size" type="System.Drawing.Size, System.Drawing">
- <value>156, 17</value>
+ <data name="&gt;&gt;settingsToolStripMenuItem.Name" xml:space="preserve">
+ <value>settingsToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max50toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;settingsToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;radioButtonOne.ZOrder" xml:space="preserve">
- <value>16</value>
- </data>
- <data name="&gt;&gt;label2.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="pagesToolStripMenuItem.Text" xml:space="preserve">
- <value>Pages, split games equally</value>
- </data>
- <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
- <value>74, 13</value>
- </data>
- <data name="&gt;&gt;label2.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="max70toolStripMenuItem.Text" xml:space="preserve">
- <value>70</value>
- </data>
- <data name="radioButtonTwo.Location" type="System.Drawing.Point, System.Drawing">
- <value>103, 99</value>
- </data>
- <data name="&gt;&gt;buttonBrowseImage.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="&gt;&gt;globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Name" xml:space="preserve">
- <value>globalCommandLineArgumentsexpertsOnluToolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;groupBoxOptions.Type" xml:space="preserve">
- <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="textBoxPublisher.Size" type="System.Drawing.Size, System.Drawing">
- <value>198, 20</value>
- </data>
- <data name="disableMenuMusicToolStripMenuItem.Text" xml:space="preserve">
- <value>Disable menu music</value>
- </data>
- <data name="&gt;&gt;contextMenuStrip.Name" xml:space="preserve">
- <value>contextMenuStrip</value>
+ <data name="&gt;&gt;consoleTypeToolStripMenuItem.Name" xml:space="preserve">
+ <value>consoleTypeToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;fileToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;consoleTypeToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;upABStartOnSecondControllerToolStripMenuItem.Name" xml:space="preserve">
- <value>upABStartOnSecondControllerToolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;textBoxPublisher.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
- <value>15, 157</value>
- </data>
- <data name="&gt;&gt;pagesfoldersTypeToolStripMenuItem.Name" xml:space="preserve">
- <value>pagesfoldersTypeToolStripMenuItem</value>
- </data>
<data name="&gt;&gt;nESMiniToolStripMenuItem.Name" xml:space="preserve">
<value>nESMiniToolStripMenuItem</value>
</data>
- <data name="kernelToolStripMenuItem.Text" xml:space="preserve">
- <value>&amp;Kernel</value>
- </data>
- <data name="buttonStart.TabIndex" type="System.Int32, mscorlib">
- <value>6</value>
- </data>
- <data name="groupBoxDefaultGames.Visible" type="System.Boolean, mscorlib">
- <value>False</value>
- </data>
- <data name="&gt;&gt;statusStrip.Parent" xml:space="preserve">
- <value>$this</value>
- </data>
- <data name="&gt;&gt;textBoxGameGenie.Name" xml:space="preserve">
- <value>textBoxGameGenie</value>
- </data>
- <data name="&gt;&gt;buttonShowGameGenieDatabase.Name" xml:space="preserve">
- <value>buttonShowGameGenieDatabase</value>
- </data>
- <data name="groupBoxDefaultGames.Text" xml:space="preserve">
- <value>You can hide some default games</value>
- </data>
- <data name="ToolStripMenuItemArmetLevel0.Size" type="System.Drawing.Size, System.Drawing">
- <value>211, 22</value>
- </data>
- <data name="radioButtonTwoSim.Location" type="System.Drawing.Point, System.Drawing">
- <value>103, 122</value>
- </data>
- <data name="&gt;&gt;toolStripMenuItem4.Name" xml:space="preserve">
- <value>toolStripMenuItem4</value>
- </data>
- <data name="&gt;&gt;downloadCoversForAllGamesToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;nESMiniToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
- <value>15, 220</value>
- </data>
- <data name="&gt;&gt;max20toolStripMenuItem.Name" xml:space="preserve">
- <value>max20toolStripMenuItem</value>
- </data>
- <data name="nESMiniToolStripMenuItem.Text" xml:space="preserve">
- <value>NES Mini</value>
- </data>
- <data name="&gt;&gt;buttonAddGames.Parent" xml:space="preserve">
- <value>$this</value>
+ <data name="&gt;&gt;famicomMiniToolStripMenuItem.Name" xml:space="preserve">
+ <value>famicomMiniToolStripMenuItem</value>
</data>
- <data name="betterPNGCompressionlowerQualityToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
+ <data name="&gt;&gt;famicomMiniToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;toolStripMenuItem1.Name" xml:space="preserve">
- <value>toolStripMenuItem1</value>
+ <data name="&gt;&gt;epilepsyProtectionToolStripMenuItem.Name" xml:space="preserve">
+ <value>epilepsyProtectionToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;automaticOriginalToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;epilepsyProtectionToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxGameGenie.ZOrder" xml:space="preserve">
- <value>3</value>
+ <data name="&gt;&gt;ToolStripMenuItemArmetLevel0.Name" xml:space="preserve">
+ <value>ToolStripMenuItemArmetLevel0</value>
</data>
- <data name="&gt;&gt;max100toolStripMenuItem.Name" xml:space="preserve">
- <value>max100toolStripMenuItem</value>
+ <data name="&gt;&gt;ToolStripMenuItemArmetLevel0.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="cloverconHackToolStripMenuItem.Text" xml:space="preserve">
- <value>Controller hacks</value>
+ <data name="&gt;&gt;ToolStripMenuItemArmetLevel1.Name" xml:space="preserve">
+ <value>ToolStripMenuItemArmetLevel1</value>
</data>
- <data name="&gt;&gt;betterPNGCompressionlowerQualityToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;ToolStripMenuItemArmetLevel1.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;ToolStripMenuItemArmetLevel0.Type" xml:space="preserve">
+ <data name="&gt;&gt;ToolStripMenuItemArmetLevel2.Name" xml:space="preserve">
+ <value>ToolStripMenuItemArmetLevel2</value>
+ </data>
+ <data name="&gt;&gt;ToolStripMenuItemArmetLevel2.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="selectButtonCombinationToolStripMenuItem.Text" xml:space="preserve">
- <value>Select reset button combination</value>
+ <data name="&gt;&gt;cloverconHackToolStripMenuItem.Name" xml:space="preserve">
+ <value>cloverconHackToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max35toolStripMenuItem.Name" xml:space="preserve">
- <value>max35toolStripMenuItem</value>
+ <data name="&gt;&gt;cloverconHackToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="max35toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;resetUsingCombinationOfButtonsToolStripMenuItem.Name" xml:space="preserve">
+ <value>resetUsingCombinationOfButtonsToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;buttonBrowseImage.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;resetUsingCombinationOfButtonsToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="dumpKernelToolStripMenuItem.Text" xml:space="preserve">
- <value>Dump kernel</value>
+ <data name="&gt;&gt;selectButtonCombinationToolStripMenuItem.Name" xml:space="preserve">
+ <value>selectButtonCombinationToolStripMenuItem</value>
</data>
- <data name="radioButtonTwoSim.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
- <value>NoControl</value>
+ <data name="&gt;&gt;selectButtonCombinationToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="max70toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;enableAutofireToolStripMenuItem.Name" xml:space="preserve">
+ <value>enableAutofireToolStripMenuItem</value>
</data>
- <data name="labelID.Size" type="System.Drawing.Size, System.Drawing">
- <value>21, 13</value>
+ <data name="&gt;&gt;enableAutofireToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;max25toolStripMenuItem.Name" xml:space="preserve">
- <value>max25toolStripMenuItem</value>
+ <data name="&gt;&gt;upABStartOnSecondControllerToolStripMenuItem.Name" xml:space="preserve">
+ <value>upABStartOnSecondControllerToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;presetsToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;upABStartOnSecondControllerToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxArguments.ZOrder" xml:space="preserve">
- <value>11</value>
- </data>
- <data name="label3.TabIndex" type="System.Int32, mscorlib">
- <value>9</value>
+ <data name="&gt;&gt;guiHacksToolStripMenuItem.Name" xml:space="preserve">
+ <value>guiHacksToolStripMenuItem</value>
</data>
- <data name="max25toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;guiHacksToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;useExtendedFontToolStripMenuItem.Name" xml:space="preserve">
<value>useExtendedFontToolStripMenuItem</value>
</data>
- <data name="label5.TabIndex" type="System.Int32, mscorlib">
- <value>4</value>
+ <data name="&gt;&gt;useExtendedFontToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="uninstallToolStripMenuItem.Text" xml:space="preserve">
- <value>Uninstall</value>
+ <data name="&gt;&gt;removeThumbnailsAtTheBottomToolStripMenuItem.Name" xml:space="preserve">
+ <value>removeThumbnailsAtTheBottomToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max90toolStripMenuItem.Name" xml:space="preserve">
- <value>max90toolStripMenuItem</value>
+ <data name="&gt;&gt;removeThumbnailsAtTheBottomToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="groupBoxOptions.Location" type="System.Drawing.Point, System.Drawing">
- <value>306, 27</value>
+ <data name="&gt;&gt;disableMenuMusicToolStripMenuItem.Name" xml:space="preserve">
+ <value>disableMenuMusicToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;labelName.ZOrder" xml:space="preserve">
- <value>18</value>
+ <data name="&gt;&gt;disableMenuMusicToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="textBoxArguments.TabIndex" type="System.Int32, mscorlib">
- <value>10</value>
+ <data name="&gt;&gt;pagesfoldersTypeToolStripMenuItem.Name" xml:space="preserve">
+ <value>pagesfoldersTypeToolStripMenuItem</value>
</data>
- <data name="label5.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="&gt;&gt;pagesfoldersTypeToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;buttonStart.Parent" xml:space="preserve">
- <value>$this</value>
+ <data name="&gt;&gt;disablePagefoldersToolStripMenuItem.Name" xml:space="preserve">
+ <value>disablePagefoldersToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;groupBoxDefaultGames.ZOrder" xml:space="preserve">
- <value>8</value>
+ <data name="&gt;&gt;disablePagefoldersToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxPublisher.ZOrder" xml:space="preserve">
- <value>13</value>
+ <data name="&gt;&gt;toolStripMenuItem3.Name" xml:space="preserve">
+ <value>toolStripMenuItem3</value>
</data>
- <data name="&gt;&gt;guiHacksToolStripMenuItem.Name" xml:space="preserve">
- <value>guiHacksToolStripMenuItem</value>
+ <data name="&gt;&gt;toolStripMenuItem3.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="max100toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;automaticToolStripMenuItem.Name" xml:space="preserve">
+ <value>automaticToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;fAQToolStripMenuItem.Name" xml:space="preserve">
- <value>fAQToolStripMenuItem</value>
+ <data name="&gt;&gt;automaticToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="foldersSplitByFirstLetterOriginalToolStripMenuItem.Text" xml:space="preserve">
- <value>Original games in root -&gt; Folders, split by first letter</value>
+ <data name="&gt;&gt;automaticOriginalToolStripMenuItem.Name" xml:space="preserve">
+ <value>automaticOriginalToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;buttonGoogle.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;automaticOriginalToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label6.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="&gt;&gt;pagesToolStripMenuItem.Name" xml:space="preserve">
+ <value>pagesToolStripMenuItem</value>
</data>
- <data name="statusStrip.Location" type="System.Drawing.Point, System.Drawing">
- <value>0, 615</value>
+ <data name="&gt;&gt;pagesToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="automaticToolStripMenuItem.Text" xml:space="preserve">
- <value>Automatic</value>
+ <data name="&gt;&gt;pagesOriginalToolStripMenuItem.Name" xml:space="preserve">
+ <value>pagesOriginalToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;aboutToolStripMenuItem.Name" xml:space="preserve">
- <value>aboutToolStripMenuItem</value>
+ <data name="&gt;&gt;pagesOriginalToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="flashCustomKernelToolStripMenuItem.Text" xml:space="preserve">
- <value>Flash custom kernel</value>
+ <data name="&gt;&gt;foldersToolStripMenuItem.Name" xml:space="preserve">
+ <value>foldersToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;unselectAllToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;foldersToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
+ <data name="&gt;&gt;foldersOriginalToolStripMenuItem.Name" xml:space="preserve">
+ <value>foldersOriginalToolStripMenuItem</value>
+ </data>
<data name="&gt;&gt;foldersOriginalToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="statusStrip.Size" type="System.Drawing.Size, System.Drawing">
- <value>609, 22</value>
- </data>
- <data name="foldersToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
- </data>
- <data name="toolStripStatusLabelSelected.Text" xml:space="preserve">
- <value>toolStripStatusLabel1</value>
- </data>
- <data name="&gt;&gt;pictureBoxArt.Type" xml:space="preserve">
- <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;foldersSplitByFirstLetterToolStripMenuItem.Name" xml:space="preserve">
+ <value>foldersSplitByFirstLetterToolStripMenuItem</value>
</data>
<data name="&gt;&gt;foldersSplitByFirstLetterToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;checkedListBoxDefaultGames.Name" xml:space="preserve">
- <value>checkedListBoxDefaultGames</value>
- </data>
- <data name="&gt;&gt;textBoxName.Name" xml:space="preserve">
- <value>textBoxName</value>
- </data>
- <data name="cloverconHackToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
- </data>
- <data name="label6.Text" xml:space="preserve">
- <value>Max players:</value>
- </data>
- <data name="textBoxGameGenie.TabIndex" type="System.Int32, mscorlib">
- <value>11</value>
- </data>
- <data name="&gt;&gt;textBoxGameGenie.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="&gt;&gt;radioButtonTwo.Type" xml:space="preserve">
- <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="epilepsyProtectionToolStripMenuItem.Text" xml:space="preserve">
- <value>Epilepsy protection</value>
- </data>
- <data name="ToolStripMenuItemArmetLevel2.Text" xml:space="preserve">
- <value>Disable for all games</value>
- </data>
- <data name="&gt;&gt;$this.Name" xml:space="preserve">
- <value>MainForm</value>
- </data>
- <data name="&gt;&gt;radioButtonTwoSim.Name" xml:space="preserve">
- <value>radioButtonTwoSim</value>
- </data>
- <data name="&gt;&gt;label7.ZOrder" xml:space="preserve">
- <value>4</value>
- </data>
- <data name="&gt;&gt;labelID.ZOrder" xml:space="preserve">
- <value>19</value>
- </data>
- <data name="&gt;&gt;max45toolStripMenuItem.Name" xml:space="preserve">
- <value>max45toolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;labelID.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="&gt;&gt;radioButtonOne.Name" xml:space="preserve">
- <value>radioButtonOne</value>
- </data>
- <data name="textBoxArguments.Size" type="System.Drawing.Size, System.Drawing">
- <value>257, 20</value>
- </data>
- <data name="toolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
- <value>139, 6</value>
- </data>
- <data name="max40toolStripMenuItem.Text" xml:space="preserve">
- <value>40</value>
- </data>
- <data name="max45toolStripMenuItem.Text" xml:space="preserve">
- <value>45</value>
- </data>
- <data name="&gt;&gt;radioButtonTwoSim.Type" xml:space="preserve">
- <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="&gt;&gt;contextMenuStrip.Type" xml:space="preserve">
- <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="maskedTextBoxReleaseDate.Location" type="System.Drawing.Point, System.Drawing">
- <value>168, 154</value>
- </data>
- <data name="label3.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="&gt;&gt;foldersSplitByFirstLetterOriginalToolStripMenuItem.Name" xml:space="preserve">
+ <value>foldersSplitByFirstLetterOriginalToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;searchToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;foldersSplitByFirstLetterOriginalToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;pictureBoxArt.Name" xml:space="preserve">
- <value>pictureBoxArt</value>
- </data>
- <data name="openFileDialogNes.Filter" xml:space="preserve">
- <value>NES files|*.nes;*.fds;*.zip;*.7z;*.rar|All files|*.*</value>
- </data>
- <data name="&gt;&gt;checkedListBoxGames.Parent" xml:space="preserve">
- <value>$this</value>
- </data>
- <data name="epilepsyProtectionToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
- </data>
- <data name="&gt;&gt;label5.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="label7.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
- <value>NoControl</value>
- </data>
- <data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
- <value>141, 70</value>
+ <data name="&gt;&gt;maximumGamesPerFolderToolStripMenuItem.Name" xml:space="preserve">
+ <value>maximumGamesPerFolderToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max100toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;maximumGamesPerFolderToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;buttonShowGameGenieDatabase.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="textBoxPublisher.TabIndex" type="System.Int32, mscorlib">
- <value>8</value>
- </data>
- <data name="&gt;&gt;buttonBrowseImage.ZOrder" xml:space="preserve">
- <value>8</value>
- </data>
- <data name="nESMiniToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>151, 22</value>
- </data>
- <data name="max50toolStripMenuItem.Text" xml:space="preserve">
- <value>50</value>
+ <data name="&gt;&gt;max20toolStripMenuItem.Name" xml:space="preserve">
+ <value>max20toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max20toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="guiHacksToolStripMenuItem.Text" xml:space="preserve">
- <value>GUI hacks</value>
- </data>
- <data name="consoleTypeToolStripMenuItem.Text" xml:space="preserve">
- <value>Console type</value>
+ <data name="&gt;&gt;max25toolStripMenuItem.Name" xml:space="preserve">
+ <value>max25toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max35toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max25toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="radioButtonOne.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
- </data>
- <data name="maskedTextBoxReleaseDate.TabIndex" type="System.Int32, mscorlib">
- <value>6</value>
- </data>
- <data name="checkedListBoxDefaultGames.TabIndex" type="System.Int32, mscorlib">
- <value>3</value>
+ <data name="&gt;&gt;max30toolStripMenuItem.Name" xml:space="preserve">
+ <value>max30toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;addPresetToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max30toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label2.AutoSize" type="System.Boolean, mscorlib">
- <value>True</value>
+ <data name="&gt;&gt;max35toolStripMenuItem.Name" xml:space="preserve">
+ <value>max35toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;epilepsyProtectionToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max35toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="searchToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>236, 22</value>
- </data>
- <data name="buttonGoogle.Text" xml:space="preserve">
- <value>Google</value>
- </data>
- <data name="ToolStripMenuItemArmetLevel1.Size" type="System.Drawing.Size, System.Drawing">
- <value>211, 22</value>
- </data>
- <data name="max35toolStripMenuItem.Text" xml:space="preserve">
- <value>35</value>
- </data>
- <data name="consoleTypeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>325, 22</value>
- </data>
- <data name="&gt;&gt;customToolStripMenuItem.Name" xml:space="preserve">
- <value>customToolStripMenuItem</value>
+ <data name="&gt;&gt;max40toolStripMenuItem.Name" xml:space="preserve">
+ <value>max40toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;disablePagefoldersToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max40toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;label6.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="&gt;&gt;presetsToolStripMenuItem.Name" xml:space="preserve">
- <value>presetsToolStripMenuItem</value>
- </data>
- <data name="helpToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>44, 20</value>
+ <data name="&gt;&gt;max45toolStripMenuItem.Name" xml:space="preserve">
+ <value>max45toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;upABStartOnSecondControllerToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max45toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;buttonStart.ZOrder" xml:space="preserve">
- <value>1</value>
- </data>
- <data name="label5.Location" type="System.Drawing.Point, System.Drawing">
- <value>12, 33</value>
- </data>
- <data name="&gt;&gt;label4.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="toolStripMenuItem4.Size" type="System.Drawing.Size, System.Drawing">
- <value>353, 6</value>
- </data>
- <data name="checkedListBoxGames.Location" type="System.Drawing.Point, System.Drawing">
- <value>12, 57</value>
- </data>
- <data name="&gt;&gt;resetUsingCombinationOfButtonsToolStripMenuItem.Name" xml:space="preserve">
- <value>resetUsingCombinationOfButtonsToolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;buttonAddGames.Name" xml:space="preserve">
- <value>buttonAddGames</value>
- </data>
- <data name="radioButtonTwo.TabIndex" type="System.Int32, mscorlib">
- <value>4</value>
- </data>
- <data name="labelID.Text" xml:space="preserve">
- <value>ID:</value>
- </data>
- <data name="radioButtonTwo.Text" xml:space="preserve">
- <value>Two players, not simultaneously</value>
- </data>
- <data name="textBoxGameGenie.Location" type="System.Drawing.Point, System.Drawing">
- <value>19, 286</value>
- </data>
- <data name="foldersToolStripMenuItem.Text" xml:space="preserve">
- <value>Folders, split games equally</value>
- </data>
- <data name="max80toolStripMenuItem.Text" xml:space="preserve">
- <value>80</value>
- </data>
- <data name="betterPNGCompressionlowerQualityToolStripMenuItem.Visible" type="System.Boolean, mscorlib">
- <value>False</value>
- </data>
- <data name="&gt;&gt;pagesOriginalToolStripMenuItem.Name" xml:space="preserve">
- <value>pagesOriginalToolStripMenuItem</value>
- </data>
- <data name="label2.TabIndex" type="System.Int32, mscorlib">
- <value>7</value>
- </data>
- <data name="&gt;&gt;ToolStripMenuItemArmetLevel2.Name" xml:space="preserve">
- <value>ToolStripMenuItemArmetLevel2</value>
+ <data name="&gt;&gt;max50toolStripMenuItem.Name" xml:space="preserve">
+ <value>max50toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;removeThumbnailsAtTheBottomToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max50toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;max60toolStripMenuItem.Name" xml:space="preserve">
<value>max60toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;labelName.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="labelID.TabIndex" type="System.Int32, mscorlib">
- <value>0</value>
- </data>
- <data name="textBoxName.Location" type="System.Drawing.Point, System.Drawing">
- <value>59, 46</value>
- </data>
- <data name="&gt;&gt;pictureBoxArt.ZOrder" xml:space="preserve">
- <value>9</value>
- </data>
- <data name="&gt;&gt;max40toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max60toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;label1.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="max20toolStripMenuItem.Text" xml:space="preserve">
- <value>20</value>
- </data>
- <data name="buttonStart.Text" xml:space="preserve">
- <value>Synchronize selected games with NES Mini</value>
- </data>
- <data name="max80toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;max70toolStripMenuItem.Name" xml:space="preserve">
+ <value>max70toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;useExtendedFontToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max70toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
- <value>609, 637</value>
- </data>
- <data name="addPresetToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>142, 22</value>
- </data>
- <data name="removeThumbnailsAtTheBottomToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>256, 22</value>
- </data>
- <data name="&gt;&gt;toolStripMenuItem2.Name" xml:space="preserve">
- <value>toolStripMenuItem2</value>
- </data>
- <data name="&gt;&gt;toolStripMenuItem3.Name" xml:space="preserve">
- <value>toolStripMenuItem3</value>
- </data>
- <data name="foldersSplitByFirstLetterToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
- </data>
- <data name="automaticToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>356, 22</value>
- </data>
- <data name="pictureBoxArt.Location" type="System.Drawing.Point, System.Drawing">
- <value>71, 316</value>
- </data>
- <data name="&gt;&gt;buttonStart.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="$this.Text" xml:space="preserve">
- <value>hakchi2</value>
- </data>
- <data name="groupBoxOptions.Size" type="System.Drawing.Size, System.Drawing">
- <value>293, 529</value>
- </data>
- <data name="&gt;&gt;statusStrip.ZOrder" xml:space="preserve">
- <value>2</value>
- </data>
- <data name="max60toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
- </data>
- <data name="&gt;&gt;buttonShowGameGenieDatabase.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="&gt;&gt;label5.Name" xml:space="preserve">
- <value>label5</value>
- </data>
- <data name="&gt;&gt;labelID.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="buttonAddGames.Size" type="System.Drawing.Size, System.Drawing">
- <value>282, 38</value>
- </data>
- <data name="&gt;&gt;label4.Name" xml:space="preserve">
- <value>label4</value>
+ <data name="&gt;&gt;max80toolStripMenuItem.Name" xml:space="preserve">
+ <value>max80toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;foldersToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max80toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="$this.MaximumSize" type="System.Drawing.Size, System.Drawing">
- <value>625, 675</value>
+ <data name="&gt;&gt;max90toolStripMenuItem.Name" xml:space="preserve">
+ <value>max90toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;addMoreGamesToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max90toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;removeThumbnailsAtTheBottomToolStripMenuItem.Name" xml:space="preserve">
- <value>removeThumbnailsAtTheBottomToolStripMenuItem</value>
+ <data name="&gt;&gt;max100toolStripMenuItem.Name" xml:space="preserve">
+ <value>max100toolStripMenuItem</value>
</data>
- <data name="&gt;&gt;exitToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;max100toolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="addMoreGamesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>236, 22</value>
- </data>
- <data name="&gt;&gt;buttonGoogle.Name" xml:space="preserve">
- <value>buttonGoogle</value>
- </data>
- <data name="downloadCoversForAllGamesToolStripMenuItem.Text" xml:space="preserve">
- <value>Download covers for all games</value>
+ <data name="&gt;&gt;toolStripMenuItem4.Name" xml:space="preserve">
+ <value>toolStripMenuItem4</value>
</data>
- <data name="&gt;&gt;label3.Name" xml:space="preserve">
- <value>label3</value>
+ <data name="&gt;&gt;toolStripMenuItem4.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="aboutToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>246, 22</value>
+ <data name="&gt;&gt;customToolStripMenuItem.Name" xml:space="preserve">
+ <value>customToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;resetUsingCombinationOfButtonsToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;customToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="max30toolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>92, 22</value>
+ <data name="&gt;&gt;betterPNGCompressionlowerQualityToolStripMenuItem.Name" xml:space="preserve">
+ <value>betterPNGCompressionlowerQualityToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;pagesToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;betterPNGCompressionlowerQualityToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxPublisher.Name" xml:space="preserve">
- <value>textBoxPublisher</value>
- </data>
- <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
- <value>15, 409</value>
- </data>
- <data name="pagesToolStripMenuItem.ImageScaling" type="System.Windows.Forms.ToolStripItemImageScaling, System.Windows.Forms">
- <value>None</value>
- </data>
- <data name="&gt;&gt;radioButtonOne.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="max60toolStripMenuItem.Text" xml:space="preserve">
- <value>60</value>
- </data>
- <data name="buttonGoogle.Location" type="System.Drawing.Point, System.Drawing">
- <value>219, 427</value>
- </data>
- <data name="&gt;&gt;groupBoxDefaultGames.Name" xml:space="preserve">
- <value>groupBoxDefaultGames</value>
- </data>
- <data name="&gt;&gt;uninstallToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Name" xml:space="preserve">
+ <value>globalCommandLineArgumentsexpertsOnluToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;enableAutofireToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;globalCommandLineArgumentsexpertsOnluToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxGameGenie.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
- </data>
- <data name="&gt;&gt;checkedListBoxGames.Name" xml:space="preserve">
- <value>checkedListBoxGames</value>
- </data>
- <data name="ToolStripMenuItemArmetLevel1.Text" xml:space="preserve">
- <value>Disable for original games</value>
- </data>
- <data name="&gt;&gt;downloadCoversForAllGamesToolStripMenuItem.Name" xml:space="preserve">
- <value>downloadCoversForAllGamesToolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;toolStripStatusLabelSelected.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="checkedListBoxGames.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>None</value>
+ <data name="&gt;&gt;helpToolStripMenuItem.Name" xml:space="preserve">
+ <value>helpToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;aboutToolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;helpToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="unselectAllToolStripMenuItem.Text" xml:space="preserve">
- <value>Unselect all</value>
+ <data name="&gt;&gt;gitHubPageWithActualReleasesToolStripMenuItem.Name" xml:space="preserve">
+ <value>gitHubPageWithActualReleasesToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;max45toolStripMenuItem.Type" xml:space="preserve">
+ <data name="&gt;&gt;gitHubPageWithActualReleasesToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;toolStripMenuItem3.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;fAQToolStripMenuItem.Name" xml:space="preserve">
+ <value>fAQToolStripMenuItem</value>
</data>
<data name="&gt;&gt;fAQToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;cloverconHackToolStripMenuItem.Name" xml:space="preserve">
- <value>cloverconHackToolStripMenuItem</value>
- </data>
- <data name="&gt;&gt;label5.Parent" xml:space="preserve">
- <value>$this</value>
- </data>
- <data name="buttonStart.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>None</value>
- </data>
- <data name="searchToolStripMenuItem.Text" xml:space="preserve">
- <value>Search</value>
- </data>
- <data name="resetUsingCombinationOfButtonsToolStripMenuItem.Text" xml:space="preserve">
- <value>Use button combination to reset</value>
- </data>
- <data name="&gt;&gt;checkedListBoxGames.ZOrder" xml:space="preserve">
- <value>5</value>
+ <data name="&gt;&gt;aboutToolStripMenuItem.Name" xml:space="preserve">
+ <value>aboutToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;textBoxArguments.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;aboutToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
- <value>12</value>
+ <data name="&gt;&gt;toolStripStatusLabelSelected.Name" xml:space="preserve">
+ <value>toolStripStatusLabelSelected</value>
</data>
- <data name="statusStrip.Text" xml:space="preserve">
- <value>statusStrip1</value>
+ <data name="&gt;&gt;toolStripStatusLabelSelected.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="label2.Text" xml:space="preserve">
- <value>Publisher:</value>
+ <data name="&gt;&gt;openFileDialogNes.Name" xml:space="preserve">
+ <value>openFileDialogNes</value>
</data>
- <data name="&gt;&gt;textBoxArguments.Type" xml:space="preserve">
- <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;openFileDialogNes.Type" xml:space="preserve">
+ <value>System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;checkedListBoxDefaultGames.Type" xml:space="preserve">
- <value>System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;selectAllToolStripMenuItem.Name" xml:space="preserve">
+ <value>selectAllToolStripMenuItem</value>
</data>
- <data name="groupBoxOptions.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>None</value>
+ <data name="&gt;&gt;selectAllToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;label3.Type" xml:space="preserve">
- <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;unselectAllToolStripMenuItem.Name" xml:space="preserve">
+ <value>unselectAllToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;ToolStripMenuItemArmetLevel1.Type" xml:space="preserve">
+ <data name="&gt;&gt;unselectAllToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;label6.Name" xml:space="preserve">
- <value>label6</value>
- </data>
- <data name="pictureBoxArt.TabIndex" type="System.Int32, mscorlib">
- <value>12</value>
+ <data name="&gt;&gt;deleteGameToolStripMenuItem.Name" xml:space="preserve">
+ <value>deleteGameToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;checkedListBoxDefaultGames.ZOrder" xml:space="preserve">
- <value>0</value>
+ <data name="&gt;&gt;deleteGameToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;labelName.Name" xml:space="preserve">
- <value>labelName</value>
+ <data name="&gt;&gt;openFileDialogImage.Name" xml:space="preserve">
+ <value>openFileDialogImage</value>
</data>
- <data name="max30toolStripMenuItem.Text" xml:space="preserve">
- <value>30</value>
+ <data name="&gt;&gt;openFileDialogImage.Type" xml:space="preserve">
+ <value>System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;gitHubPageWithActualReleasesToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;timerCalculateGames.Name" xml:space="preserve">
+ <value>timerCalculateGames</value>
</data>
- <data name="&gt;&gt;foldersToolStripMenuItem.Name" xml:space="preserve">
- <value>foldersToolStripMenuItem</value>
+ <data name="&gt;&gt;timerCalculateGames.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Timer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;textBoxName.Parent" xml:space="preserve">
- <value>groupBoxOptions</value>
+ <data name="&gt;&gt;$this.Name" xml:space="preserve">
+ <value>MainForm</value>
</data>
- <data name="buttonAddGames.Location" type="System.Drawing.Point, System.Drawing">
- <value>12, 568</value>
+ <data name="&gt;&gt;$this.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <metadata name="openFileDialogImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>741, 17</value>
- </metadata>
- <metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
- <value>ru-RU</value>
- </metadata>
- <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
- <value>True</value>
- </metadata>
- <metadata name="timerCalculateGames.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>908, 17</value>
- </metadata>
- <metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>132, 17</value>
- </metadata>
- <metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>350, 17</value>
- </metadata>
- <metadata name="openFileDialogNes.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>459, 17</value>
- </metadata>
- <metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>592, 17</value>
- </metadata>
</root> \ No newline at end of file
diff --git a/MainForm.ru-RU.resx b/MainForm.ru-RU.resx
index fc799ffe..97f3d414 100644
--- a/MainForm.ru-RU.resx
+++ b/MainForm.ru-RU.resx
@@ -540,7 +540,7 @@
<value />
</data>
<data name="openFileDialogNes.Filter" xml:space="preserve">
- <value>NES файлы|*.nes;*.fds;*.zip;*.7z;*.rar|Все файлы|*.*</value>
+ <value>NES файлы и приложения|*.nes;*.fds;*.desktop;*.zip;*.7z;*.rar|Все файлы|*.*</value>
</data>
<data name="openFileDialogNes.Title" xml:space="preserve">
<value>Выберите NES файл(ы)</value>
diff --git a/NesGame.cs b/NesGame.cs
index 195edf66..ee3ccb66 100644
--- a/NesGame.cs
+++ b/NesGame.cs
@@ -1,6 +1,5 @@
using com.clusterrr.Famicom;
using com.clusterrr.hakchi_gui.Properties;
-using nQuant;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -15,88 +14,30 @@ using System.Xml.XPath;
namespace com.clusterrr.hakchi_gui
{
- public class NesGame : INesMenuElement
+ public class NesGame : NesMiniApplication
{
- public enum GameType { Cartridge, FDS }
+ //public enum GameType { Cartridge, FDS }
public delegate bool NeedPatchDelegate(Form parentForm, string nesFileName);
+ protected const char prefixCode = 'H';
- private string code;
-
- public string Code
- {
- get { return code; }
- set { code = value; }
- }
-
- public readonly string GamePath;
- public readonly string ConfigPath;
public readonly string NesPath;
- public readonly string IconPath;
- public readonly string SmallIconPath;
public readonly string GameGeniePath;
- public readonly GameType Type;
- private string args;
- private string region = null;
- private bool hasUnsavedChanges = true;
+ private string region = null;
+ const string DefaultArgs = "--guest-overscan-dimensions 0,0,9,3 --initial-fadein-durations 10,2 --volume 75 --enable-armet";
- private string name;
- public string Name
- {
- get { return name; }
- set
- {
- if (name != value) hasUnsavedChanges = true;
- name = value;
- }
- }
public string Args
{
- get { return args; }
- set
- {
- if (args != value) hasUnsavedChanges = true;
- args = value;
- }
- }
- private byte players;
- public byte Players
- {
- get { return players; }
- set
- {
- if (players != value) hasUnsavedChanges = true;
- players = value;
- }
- }
- private bool simultaneous;
- public bool Simultaneous
- {
- get { return simultaneous; }
- set
- {
- if (simultaneous != value) hasUnsavedChanges = true;
- simultaneous = value;
- }
- }
- private string releaseDate;
- public string ReleaseDate
- {
- get { return releaseDate; }
- set
+ get
{
- if (releaseDate != value) hasUnsavedChanges = true;
- releaseDate = value;
+ if (Command.Contains(".nes"))
+ return Command.Substring(Command.IndexOf(".nes") + 4).Trim();
+ else
+ return "";
}
- }
- private string publisher;
- public string Publisher
- {
- get { return publisher; }
set
{
- if (publisher != value) hasUnsavedChanges = true;
- publisher = value;
+ Command = string.Format("/usr/bin/clover-kachikachi /usr/share/games/nes/kachikachi/{0}/{0}.nes {1}", code, value);
}
}
private string gameGenie = "";
@@ -116,190 +57,90 @@ namespace com.clusterrr.hakchi_gui
}
private static Dictionary<uint, CachedGameInfo> gameInfoCache = null;
-
- const string DefaultReleaseDate = "1983-07-15"; // Famicom release day
- const string DefaultArgs = "--guest-overscan-dimensions 0,0,9,3 --initial-fadein-durations 10,2 --volume 75 --enable-armet";
- const string DefaultPublisher = "Nintendo";
public const string GameGenieFileName = "gamegenie.txt";
+ private static byte[] supportedMappers = new byte[] { 0, 1, 2, 3, 4, 5, 7, 9, 10, 86, 87, 184 };
- // TODO: Need more mapper tests.
- private byte[] supportedMappers = new byte[] { 0, 1, 2, 3, 4, 5, 7, 9, 10, 86, 87, 184 };
-
- public NesGame(string path)
+ public NesGame(string path, bool ignoreEmptyConfig)
+ : base(path, ignoreEmptyConfig)
{
- GamePath = path;
- Code = Path.GetFileNameWithoutExtension(path);
- ConfigPath = Path.Combine(path, Code + ".desktop");
- NesPath = Path.Combine(path, Code + ".nes");
- if (File.Exists(NesPath))
- Type = GameType.Cartridge;
- else
- {
- var fdsPath = Path.Combine(path, Code + ".fds");
- if (File.Exists(fdsPath))
- {
- NesPath = fdsPath;
- Type = GameType.FDS;
- }
- else throw new Exception("ROM not found: " + path);
- }
- IconPath = Path.Combine(path, Code + ".png");
- SmallIconPath = Path.Combine(path, Code + "_small.png");
+ NesPath = Path.Combine(GamePath, Code + ".nes");
GameGeniePath = Path.Combine(path, GameGenieFileName);
- if (!File.Exists(ConfigPath)) throw new FileNotFoundException("Invalid game directory: " + path);
+ if (!File.Exists(NesPath)) throw new FileNotFoundException("Invalid game directory: " + path);
- Name = Code;
- Players = 1;
- Simultaneous = false;
- ReleaseDate = DefaultReleaseDate;
Args = DefaultArgs;
- Publisher = DefaultPublisher;
-
- var configLines = File.ReadAllLines(ConfigPath);
- foreach (var line in configLines)
- {
- int pos = line.IndexOf('=');
- if (pos <= 0) continue;
- var param = line.Substring(0, pos).Trim().ToLower();
- var value = line.Substring(pos + 1).Trim();
- switch (param)
- {
- case "exec":
- Args = line;
- if (Args.Contains(".nes"))
- Args = Args.Substring(Args.IndexOf(".nes") + 4).Trim();
- else if (Args.Contains(".fds"))
- Args = Args.Substring(Args.IndexOf(".fds") + 4).Trim();
- else Args = "";
- break;
- case "name":
- Name = value;
- break;
- case "players":
- Players = byte.Parse(value);
- break;
- case "simultaneous":
- Simultaneous = value != "0";
- break;
- case "releasedate":
- ReleaseDate = value;
- break;
- case "sortrawpublisher":
- Publisher = value;
- break;
- }
- }
if (File.Exists(GameGeniePath))
- GameGenie = File.ReadAllText(GameGeniePath);
+ gameGenie = File.ReadAllText(GameGeniePath);
hasUnsavedChanges = false;
}
- public NesGame(string gamesDirectory, string nesFileName, bool? ignoreMapper, ref bool? needPatch, NeedPatchDelegate needPatchCallback, Form parentForm = null, byte[] rawRomData = null)
+ public static NesGame Import(string nesFileName, bool? ignoreMapper, ref bool? needPatch, NeedPatchDelegate needPatchCallback, Form parentForm = null, byte[] rawRomData = null)
{
- uint crc32;
- if (!Path.GetExtension(nesFileName).ToLower().Equals(".fds"))
+ NesFile nesFile;
+ if (rawRomData != null)
+ nesFile = new NesFile(rawRomData);
+ else
+ nesFile = new NesFile(nesFileName);
+ nesFile.CorrectRom();
+ var crc32 = nesFile.CRC32;
+ var code = GenerateCode(crc32, prefixCode);
+ var gamePath = Path.Combine(GamesDirectory, code);
+ var nesPath = Path.Combine(gamePath, code + ".nes");
+ var patchesDirectory = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "patches");
+ Directory.CreateDirectory(patchesDirectory);
+ Directory.CreateDirectory(gamePath);
+ var patches = Directory.GetFiles(patchesDirectory, string.Format("{0:X8}*.ips", crc32), SearchOption.AllDirectories);
+ if (patches.Length > 0 && needPatch != false)
{
- NesFile nesFile;
- if (rawRomData != null)
- nesFile = new NesFile(rawRomData);
- else
- nesFile = new NesFile(nesFileName);
- nesFile.CorrectRom();
- crc32 = nesFile.CRC32;
- Code = GenerateCode(crc32);
- GamePath = Path.Combine(gamesDirectory, Code);
- Args = DefaultArgs;
- Type = GameType.Cartridge;
- NesPath = Path.Combine(GamePath, Code + ".nes");
- var patchesDirectory = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "patches");
- Directory.CreateDirectory(patchesDirectory);
- Directory.CreateDirectory(GamePath);
- var patches = Directory.GetFiles(patchesDirectory, string.Format("{0:X8}*.ips", crc32), SearchOption.AllDirectories);
- if (patches.Length > 0 && needPatch != false)
+ if (needPatch == true || ((needPatchCallback != null) && needPatchCallback(parentForm, Path.GetFileName(nesFileName)))) /*MessageBox.Show(parentForm, string.Format(Resources.PatchQ, Path.GetFileName(nesFileName)), Resources.PatchAvailable, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes*/
{
- if (needPatch == true || ((needPatchCallback != null) && needPatchCallback(parentForm, Path.GetFileName(nesFileName)))) /*MessageBox.Show(parentForm, string.Format(Resources.PatchQ, Path.GetFileName(nesFileName)), Resources.PatchAvailable, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes*/
- {
- needPatch = true;
- var patch = patches[0];
- if (rawRomData == null)
- rawRomData = File.ReadAllBytes(nesFileName);
- Debug.WriteLine(string.Format("Patching {0}", nesFileName));
- IpsPatcher.Patch(patch, ref rawRomData);
- nesFile = new NesFile(rawRomData);
- }
- else needPatch = false;
+ needPatch = true;
+ var patch = patches[0];
+ if (rawRomData == null)
+ rawRomData = File.ReadAllBytes(nesFileName);
+ Debug.WriteLine(string.Format("Patching {0}", nesFileName));
+ IpsPatcher.Patch(patch, ref rawRomData);
+ nesFile = new NesFile(rawRomData);
}
+ else needPatch = false;
+ }
- if (nesFile.Mapper == 71) nesFile.Mapper = 2; // games by Codemasters/Camerica - this is UNROM clone. One exception - Fire Hawk
- if (nesFile.Mapper == 88) nesFile.Mapper = 4; // Compatible with MMC3... sometimes
- if (nesFile.Mapper == 95) nesFile.Mapper = 4; // Compatible with MMC3
- if (nesFile.Mapper == 206) nesFile.Mapper = 4; // Compatible with MMC3
- if (!supportedMappers.Contains(nesFile.Mapper) && (ignoreMapper != true))
- {
- Directory.Delete(GamePath, true);
- if (ignoreMapper != false)
- throw new UnsupportedMapperException(nesFile);
- else
- {
- Debug.WriteLine(string.Format("Game {0} has mapper #{1}, skipped", nesFileName, nesFile.Mapper));
- return;
- }
- }
- if ((nesFile.Mirroring == NesFile.MirroringType.FourScreenVram) && (ignoreMapper != true))
+ if (nesFile.Mapper == 71) nesFile.Mapper = 2; // games by Codemasters/Camerica - this is UNROM clone. One exception - Fire Hawk
+ if (nesFile.Mapper == 88) nesFile.Mapper = 4; // Compatible with MMC3... sometimes
+ if (nesFile.Mapper == 95) nesFile.Mapper = 4; // Compatible with MMC3
+ if (nesFile.Mapper == 206) nesFile.Mapper = 4; // Compatible with MMC3
+ if (!supportedMappers.Contains(nesFile.Mapper) && (ignoreMapper != true))
+ {
+ Directory.Delete(gamePath, true);
+ if (ignoreMapper != false)
+ throw new UnsupportedMapperException(nesFile);
+ else
{
- Directory.Delete(GamePath, true);
- if (ignoreMapper != false)
- throw new UnsupportedFourScreenException(nesFile);
- else
- {
- Debug.WriteLine(string.Format("Game {0} has four-screen mirroring, skipped", nesFileName, nesFile.Mapper));
- return;
- }
+ Debug.WriteLine(string.Format("Game {0} has mapper #{1}, skipped", nesFileName, nesFile.Mapper));
+ return null;
}
- // TODO: Make trainer check. I think that NES Mini doesn't support it.
-
- ConfigPath = Path.Combine(GamePath, Code + ".desktop");
- nesFile.Save(NesPath);
}
- else
+ if ((nesFile.Mirroring == NesFile.MirroringType.FourScreenVram) && (ignoreMapper != true))
{
- byte[] fdsData;
- if (rawRomData != null)
- fdsData = rawRomData;
+ Directory.Delete(gamePath, true);
+ if (ignoreMapper != false)
+ throw new UnsupportedFourScreenException(nesFile);
else
- fdsData = File.ReadAllBytes(nesFileName);
- if (Encoding.ASCII.GetString(fdsData, 0, 3) == "FDS") // header? cut it!
{
- var fdsDataNoHeader = new byte[fdsData.Length - 0x10];
- Array.Copy(fdsData, 0x10, fdsDataNoHeader, 0, fdsDataNoHeader.Length);
- fdsData = fdsDataNoHeader;
+ Debug.WriteLine(string.Format("Game {0} has four-screen mirroring, skipped", nesFileName, nesFile.Mapper));
+ return null;
}
- crc32 = CRC32(fdsData);
- Code = GenerateCode(crc32);
- GamePath = Path.Combine(gamesDirectory, Code);
- Args = DefaultArgs + " --fds-auto-disk-side-switch-on-keypress"; // seems like need to make it default
- Type = GameType.FDS;
- Directory.CreateDirectory(GamePath);
- ConfigPath = Path.Combine(GamePath, Code + ".desktop");
- NesPath = Path.Combine(GamePath, Code + ".fds");
- File.WriteAllBytes(NesPath, fdsData);
}
+ // TODO: Make trainer check. I think that NES Mini doesn't support it.
- Name = Path.GetFileNameWithoutExtension(nesFileName);
- Players = 1;
- ReleaseDate = DefaultReleaseDate;
- Publisher = DefaultPublisher;
- if (nesFileName.Contains("(J)"))
- Region = "Japan";
+ nesFile.Save(nesPath);
+ var game = new NesGame(gamePath, true);
- TryAutofill(crc32);
-
- Name = Regex.Replace(Name, @" ?\(.*?\)", string.Empty).Trim();
- Name = Regex.Replace(Name, @" ?\[.*?\]", string.Empty).Trim();
- Name = Name.Replace("_", " ").Replace(" ", " ")/*.Replace(", The", "")*/.Trim();
- IconPath = Path.Combine(GamePath, Code + ".png");
- SmallIconPath = Path.Combine(GamePath, Code + "_small.png");
- GameGeniePath = Path.Combine(GamePath, GameGenieFileName);
+ game.Name = Path.GetFileNameWithoutExtension(nesFileName);
+ if (game.Name.Contains("(J)")) game.region = "Japan";
+ game.TryAutofill(crc32);
+ game.Name = Regex.Replace(game.Name, @" ?\(.*?\)", string.Empty).Trim();
+ game.Name = Regex.Replace(game.Name, @" ?\[.*?\]", string.Empty).Trim();
+ game.Name = game.Name.Replace("_", " ").Replace(" ", " ")/*.Replace(", The", "")*/.Trim();
// Trying to find cover file
Image cover = null;
@@ -323,11 +164,16 @@ namespace com.clusterrr.hakchi_gui
if (covers.Length > 0)
cover = LoadBitmap(covers[0]);
}
- if (cover != null)
- SetImage(cover, ConfigIni.EightBitPngCompression);
- else
- SetImage(null, ConfigIni.EightBitPngCompression);
- Save();
+ if (cover == null)
+ {
+ if (game.region == "Japan")
+ cover = Resources.blank_jp;
+ else
+ cover = Resources.blank;
+ }
+ game.Image = cover;
+ game.Save();
+ return game;
}
public bool TryAutofill(uint crc32)
@@ -349,145 +195,27 @@ namespace com.clusterrr.hakchi_gui
return false;
}
- public void Save()
+ public override void Save()
{
- if (!hasUnsavedChanges) return;
- Debug.WriteLine(string.Format("Saving game '{0}' as {1}", Name, Code));
- Name = Regex.Replace(Name, @"'(\d)", @"`$1"); // Apostrophe + any number in game name crashes whole system. What. The. Fuck?
- File.WriteAllText(ConfigPath, string.Format(
- "[Desktop Entry]\n" +
- "Type=Application\n" +
- "Exec=/usr/bin/clover-kachikachi /usr/share/games/nes/kachikachi/{0}/{8} {1}\n" +
- "Path=/var/lib/clover/profiles/0/{0}\n" +
- "Name={2}\n" +
- "Icon=/usr/share/games/nes/kachikachi/{0}/{0}.png\n\n" +
- "[X-CLOVER Game]\n" +
- "Code={0}\n" +
- "TestID=777\n" +
- "ID=0\n" +
- "Players={3}\n" +
- "Simultaneous={7}\n" +
- "ReleaseDate={4}\n" +
- "SaveCount=0\n" +
- "SortRawTitle={5}\n" +
- "SortRawPublisher={6}\n" +
- "Copyright=hakchi2 ©2017 Alexey 'Cluster' Avdyukhin\n",
- Code, Args ?? DefaultArgs, Name ?? Code, Players, ReleaseDate ?? DefaultReleaseDate,
- (Name ?? Code).ToLower(), (Publisher ?? DefaultPublisher).ToUpper(),
- Simultaneous ? 1 : 0, Path.GetFileName(NesPath)));
- if (!string.IsNullOrEmpty(GameGenie.Trim()))
- File.WriteAllText(GameGeniePath, GameGenie.Trim());
- else if (File.Exists(GameGeniePath))
- File.Delete(GameGeniePath);
- hasUnsavedChanges = false;
- }
-
- public override string ToString()
- {
- return Name;
- }
-
- public void SetImage(Image image, bool EightBitCompression = false)
- {
- Bitmap outImage;
- Bitmap outImageSmall;
- Graphics gr;
-
- if (image == null)
- {
- if (Type == GameType.Cartridge)
- {
- if (Region == "Japan")
- image = Resources.blank_jp;
- else
- image = Resources.blank;
- }
- else if (Type == GameType.FDS)
- {
- image = Resources.blank_fds;
- }
- }
-
- // Just keep aspect ratio
- const int maxX = 204;
- const int maxY = 204;
- if (image.Width / image.Height > maxX / maxY)
- outImage = new Bitmap(maxX, maxY * image.Height / image.Width);
- else
- outImage = new Bitmap(maxX * image.Width / image.Height, maxY);
- const int maxXsmall = 40;
- const int maxYsmall = 40;
- if (image.Width / image.Height > maxXsmall / maxYsmall)
- outImageSmall = new Bitmap(maxXsmall, maxYsmall * image.Height / image.Width);
+ if (!string.IsNullOrEmpty(gameGenie))
+ File.WriteAllText(GameGeniePath, gameGenie);
else
- outImageSmall = new Bitmap(maxXsmall * image.Width / image.Height, maxYsmall);
-
- gr = Graphics.FromImage(outImage);
- gr.DrawImage(image, new Rectangle(0, 0, outImage.Width, outImage.Height),
- new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
- gr.Flush();
- if (EightBitCompression) // Deprecated
- {
- var quantizer = new WuQuantizer();
- using (var quantized = quantizer.QuantizeImage(outImage))
- {
- quantized.Save(IconPath, ImageFormat.Png);
- }
- }
- else outImage.Save(IconPath, ImageFormat.Png);
- gr = Graphics.FromImage(outImageSmall);
- gr.DrawImage(outImage, new Rectangle(0, 0, outImageSmall.Width, outImageSmall.Height),
- new Rectangle(0, 0, outImage.Width, outImage.Height), GraphicsUnit.Pixel);
- gr.Flush();
- if (EightBitCompression) // Deprecated
- {
- var quantizer = new WuQuantizer();
- using (var quantized = quantizer.QuantizeImage(outImageSmall))
- {
- quantized.Save(SmallIconPath, ImageFormat.Png);
- }
- }
- else outImageSmall.Save(SmallIconPath, ImageFormat.Png);
+ File.Delete(GameGeniePath);
+ base.Save();
}
- private static uint CRC32(byte[] data)
+ public void ApplyGameGenie()
{
- uint poly = 0xedb88320;
- uint[] table = new uint[256];
- uint temp = 0;
- for (uint i = 0; i < table.Length; ++i)
+ if (!string.IsNullOrEmpty(GameGenie))
{
- temp = i;
- for (int j = 8; j > 0; --j)
+ var codes = GameGenie.Split(new char[] { ',', '\t', ' ', ';' }, StringSplitOptions.RemoveEmptyEntries);
+ var nesFile = new NesFile(NesPath);
+ foreach (var code in codes)
{
- if ((temp & 1) == 1)
- {
- temp = (uint)((temp >> 1) ^ poly);
- }
- else
- {
- temp >>= 1;
- }
+ nesFile.PRG = GameGeniePatcher.Patch(nesFile.PRG, code.Trim());
}
- table[i] = temp;
- }
- uint crc = 0xffffffff;
- for (int i = 0; i < data.Length; ++i)
- {
- byte index = (byte)(((crc) & 0xff) ^ data[i]);
- crc = (uint)((crc >> 8) ^ table[index]);
+ nesFile.Save(NesPath);
}
- return ~crc;
- }
-
- private static string GenerateCode(uint crc32)
- {
- return string.Format("CLV-H-{0}{1}{2}{3}{4}",
- (char)('A' + (crc32 % 26)),
- (char)('A' + (crc32 >> 5) % 26),
- (char)('A' + ((crc32 >> 10) % 26)),
- (char)('A' + ((crc32 >> 15) % 26)),
- (char)('A' + ((crc32 >> 20) % 26)));
}
private struct CachedGameInfo
@@ -542,20 +270,6 @@ namespace com.clusterrr.hakchi_gui
Debug.WriteLine(ex.Message + ex.StackTrace);
}
}
-
- public static Bitmap LoadBitmap(string path)
- {
- //Open file in read only mode
- using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read))
- //Get a binary reader for the file stream
- using (BinaryReader reader = new BinaryReader(stream))
- {
- //copy the content of the file into a memory stream
- var memoryStream = new MemoryStream(reader.ReadBytes((int)stream.Length));
- //make a new Bitmap object the owner of the MemoryStream
- return new Bitmap(memoryStream);
- }
- }
}
}
diff --git a/NesMenuCollection.cs b/NesMenuCollection.cs
index 70cde994..a4acb8fb 100644
--- a/NesMenuCollection.cs
+++ b/NesMenuCollection.cs
@@ -101,8 +101,8 @@ namespace com.clusterrr.hakchi_gui
root.Clear();
foreach (var coll in collections)
{
- var fname = alphaNum.Replace(coll.Where(o => (o is NesGame) || (o is NesDefaultGame)).First().Name.ToUpper(), "");
- var lname = alphaNum.Replace(coll.Where(o => (o is NesGame) || (o is NesDefaultGame)).Last().Name.ToUpper(), "");
+ var fname = alphaNum.Replace(coll.Where(o => (o is NesMiniApplication) || (o is NesDefaultGame)).First().Name.ToUpper(), "");
+ var lname = alphaNum.Replace(coll.Where(o => (o is NesMiniApplication) || (o is NesDefaultGame)).Last().Name.ToUpper(), "");
var folder = new NesMenuFolder() { ChildMenuCollection = coll, NameParts = new string[] { fname, lname }, Position = NesMenuFolder.Priority.Right };
coll.Add(new NesMenuFolder() { Name = Resources.FolderNameBack, ImageId = "folder_back", Position = NesMenuFolder.Priority.Back, ChildMenuCollection = root });
@@ -120,8 +120,8 @@ namespace com.clusterrr.hakchi_gui
{
for (int j = i - 1; j >= 0; j--)
{
- var fname = alphaNum.Replace(collections[j].Where(o => (o is NesGame) || (o is NesDefaultGame)).First().Name.ToUpper(), "");
- var lname = alphaNum.Replace(collections[j].Where(o => (o is NesGame) || (o is NesDefaultGame)).Last().Name.ToUpper(), "");
+ var fname = alphaNum.Replace(collections[j].Where(o => (o is NesMiniApplication) || (o is NesDefaultGame)).First().Name.ToUpper(), "");
+ var lname = alphaNum.Replace(collections[j].Where(o => (o is NesMiniApplication) || (o is NesDefaultGame)).Last().Name.ToUpper(), "");
var folder = new NesMenuFolder()
{
ChildMenuCollection = collections[j],
@@ -132,8 +132,8 @@ namespace com.clusterrr.hakchi_gui
}
for (int j = i + 1; j < collections.Count; j++)
{
- var fname = alphaNum.Replace(collections[j].Where(o => (o is NesGame) || (o is NesDefaultGame)).First().Name.ToUpper(), "");
- var lname = alphaNum.Replace(collections[j].Where(o => (o is NesGame) || (o is NesDefaultGame)).Last().Name.ToUpper(), "");
+ var fname = alphaNum.Replace(collections[j].Where(o => (o is NesMiniApplication) || (o is NesDefaultGame)).First().Name.ToUpper(), "");
+ var lname = alphaNum.Replace(collections[j].Where(o => (o is NesMiniApplication) || (o is NesDefaultGame)).Last().Name.ToUpper(), "");
var folder = new NesMenuFolder()
{
ChildMenuCollection = collections[j],
@@ -153,7 +153,7 @@ namespace com.clusterrr.hakchi_gui
letters['#'] = new NesMenuCollection();
foreach (var game in root)
{
- if (!(game is NesGame || game is NesDefaultGame)) continue;
+ if (!(game is NesMiniApplication || game is NesDefaultGame)) continue;
var letter = game.Name.Substring(0, 1).ToUpper()[0];
if (letter < 'A' || letter > 'Z')
letter = '#';
diff --git a/NesMenuFolder.cs b/NesMenuFolder.cs
index 1d59eab0..a5db2d33 100644
--- a/NesMenuFolder.cs
+++ b/NesMenuFolder.cs
@@ -1,5 +1,4 @@
using com.clusterrr.hakchi_gui.Properties;
-using nQuant;
using System;
using System.Collections.Generic;
using System.Drawing;
@@ -197,7 +196,7 @@ namespace com.clusterrr.hakchi_gui
var folderImagesDirectory = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "folder_images");
var filePath = Path.Combine(folderImagesDirectory, value + ".png");
if (File.Exists(filePath))
- image = NesGame.LoadBitmap(filePath);
+ image = NesMiniApplication.LoadBitmap(filePath);
else
image = (Image)rm.GetObject(value);
imageId = value;
diff --git a/NesMiniApplication.cs b/NesMiniApplication.cs
new file mode 100644
index 00000000..87601f34
--- /dev/null
+++ b/NesMiniApplication.cs
@@ -0,0 +1,395 @@
+using com.clusterrr.Famicom;
+using com.clusterrr.hakchi_gui.Properties;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Windows.Forms;
+using System.Xml.XPath;
+
+namespace com.clusterrr.hakchi_gui
+{
+ public class NesMiniApplication : INesMenuElement
+ {
+ public readonly static string GamesDirectory = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "games");
+ const string DefaultReleaseDate = "1983-07-15"; // Famicom release day
+ const string DefaultPublisher = "Nintendo";
+
+ protected string code;
+ public string Code
+ {
+ get { return code; }
+ }
+ public readonly string GamePath;
+ public readonly string ConfigPath;
+ public readonly string IconPath;
+ public readonly string SmallIconPath;
+ protected string command;
+ protected bool hasUnsavedChanges = true;
+
+ private string name;
+ public string Name
+ {
+ get { return name; }
+ set
+ {
+ if (name != value) hasUnsavedChanges = true;
+ name = value;
+ }
+ }
+ public string Command
+ {
+ get { return command; }
+ set
+ {
+ if (command != value) hasUnsavedChanges = true;
+ command = value;
+ }
+ }
+ private byte players;
+ public byte Players
+ {
+ get { return players; }
+ set
+ {
+ if (players != value) hasUnsavedChanges = true;
+ players = value;
+ }
+ }
+ private bool simultaneous;
+ public bool Simultaneous
+ {
+ get { return simultaneous; }
+ set
+ {
+ if (simultaneous != value) hasUnsavedChanges = true;
+ simultaneous = value;
+ }
+ }
+ private string releaseDate;
+ public string ReleaseDate
+ {
+ get { return releaseDate; }
+ set
+ {
+ if (releaseDate != value) hasUnsavedChanges = true;
+ releaseDate = value;
+ }
+ }
+ private string publisher;
+ public string Publisher
+ {
+ get { return publisher; }
+ set
+ {
+ if (publisher != value) hasUnsavedChanges = true;
+ publisher = value;
+ }
+ }
+
+ public static NesMiniApplication FromDirectory(string path, bool ignoreEmptyConfig = false)
+ {
+ var files = Directory.GetFiles(path, "*.desktop", SearchOption.TopDirectoryOnly);
+ if (files.Length == 0)
+ throw new Exception("Invalid app folder");
+ var config = File.ReadAllLines(files[0]);
+ foreach (var line in config)
+ if (line.Contains("Exec=/usr/bin/clover-kachikachi"))
+ {
+ if (line.Contains(".nes"))
+ return new NesGame(path, ignoreEmptyConfig);
+ if (line.Contains(".fds"))
+ return new FdsGame(path, ignoreEmptyConfig);
+ }
+ return new NesMiniApplication(path, ignoreEmptyConfig);
+ }
+
+ public static NesMiniApplication Import(string fileName)
+ {
+ if (Path.GetExtension(fileName).ToLower() != ".desktop") throw new Exception("Invalid app folder");
+ var code = Path.GetFileNameWithoutExtension(fileName).ToUpper();
+ var targetDir = Path.Combine(GamesDirectory, code);
+ DirectoryCopy(Path.GetDirectoryName(fileName), targetDir, true);
+ return FromDirectory(targetDir);
+ }
+
+ protected NesMiniApplication()
+ {
+ GamePath = null;
+ ConfigPath = null;
+ Players = 1;
+ Simultaneous = false;
+ ReleaseDate = DefaultReleaseDate;
+ Publisher = DefaultPublisher;
+ Command = "";
+ }
+
+ protected NesMiniApplication(string path, bool ignoreEmptyConfig = false)
+ {
+ GamePath = path;
+ code = Path.GetFileName(path);
+ Name = Code;
+ ConfigPath = Path.Combine(path, Code + ".desktop");
+ IconPath = Path.Combine(path, Code + ".png");
+ SmallIconPath = Path.Combine(path, Code + "_small.png");
+ Players = 1;
+ Simultaneous = false;
+ ReleaseDate = DefaultReleaseDate;
+ Publisher = DefaultPublisher;
+ Command = "";
+
+ if (!File.Exists(ConfigPath))
+ {
+ if (ignoreEmptyConfig) return;
+ throw new FileNotFoundException("Invalid application directory: " + path);
+ }
+ var configLines = File.ReadAllLines(ConfigPath);
+ foreach (var line in configLines)
+ {
+ int pos = line.IndexOf('=');
+ if (pos <= 0) continue;
+ var param = line.Substring(0, pos).Trim().ToLower();
+ var value = line.Substring(pos + 1).Trim();
+ switch (param)
+ {
+ case "exec":
+ Command = value;
+ break;
+ case "name":
+ Name = value;
+ break;
+ case "players":
+ Players = byte.Parse(value);
+ break;
+ case "simultaneous":
+ Simultaneous = value != "0";
+ break;
+ case "releasedate":
+ ReleaseDate = value;
+ break;
+ case "sortrawpublisher":
+ Publisher = value;
+ break;
+ }
+ }
+ hasUnsavedChanges = false;
+ }
+
+ public virtual void Save()
+ {
+ if (!hasUnsavedChanges) return;
+ Debug.WriteLine(string.Format("Saving application \"{0}\" as {1}", Name, Code));
+ Name = Regex.Replace(Name, @"'(\d)", @"`$1"); // Apostrophe + any number in game name crashes whole system. What. The. Fuck?
+ File.WriteAllText(ConfigPath, string.Format(
+ "[Desktop Entry]\n" +
+ "Type=Application\n" +
+ "Exec={1}\n" +
+ "Path=/var/lib/clover/profiles/0/{0}\n" +
+ "Name={2}\n" +
+ "Icon=/usr/share/games/nes/kachikachi/{0}/{0}.png\n\n" +
+ "[X-CLOVER Game]\n" +
+ "Code={0}\n" +
+ "TestID=777\n" +
+ "ID=0\n" +
+ "Players={3}\n" +
+ "Simultaneous={7}\n" +
+ "ReleaseDate={4}\n" +
+ "SaveCount=0\n" +
+ "SortRawTitle={5}\n" +
+ "SortRawPublisher={6}\n" +
+ "Copyright=hakchi2 ©2017 Alexey 'Cluster' Avdyukhin\n",
+ Code, command, Name ?? Code, Players, ReleaseDate ?? DefaultReleaseDate,
+ (Name ?? Code).ToLower(), (Publisher ?? DefaultPublisher).ToUpper(),
+ Simultaneous ? 1 : 0));
+ hasUnsavedChanges = false;
+ }
+
+ public override string ToString()
+ {
+ return Name;
+ }
+
+ public Image Image
+ {
+ set
+ {
+ SetImage(value);
+ }
+ get
+ {
+ if (File.Exists(IconPath))
+ return LoadBitmap(IconPath);
+ else
+ return null;
+ }
+ }
+
+ private void SetImage(Image image, bool EightBitCompression = false)
+ {
+ Bitmap outImage;
+ Bitmap outImageSmall;
+ Graphics gr;
+
+ // Just keep aspect ratio
+ const int maxX = 204;
+ const int maxY = 204;
+ if (image.Width / image.Height > maxX / maxY)
+ outImage = new Bitmap(maxX, maxY * image.Height / image.Width);
+ else
+ outImage = new Bitmap(maxX * image.Width / image.Height, maxY);
+ const int maxXsmall = 40;
+ const int maxYsmall = 40;
+ if (image.Width / image.Height > maxXsmall / maxYsmall)
+ outImageSmall = new Bitmap(maxXsmall, maxYsmall * image.Height / image.Width);
+ else
+ outImageSmall = new Bitmap(maxXsmall * image.Width / image.Height, maxYsmall);
+
+ gr = Graphics.FromImage(outImage);
+ gr.DrawImage(image, new Rectangle(0, 0, outImage.Width, outImage.Height),
+ new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
+ gr.Flush();
+ outImage.Save(IconPath, ImageFormat.Png);
+ gr = Graphics.FromImage(outImageSmall);
+ gr.DrawImage(outImage, new Rectangle(0, 0, outImageSmall.Width, outImageSmall.Height),
+ new Rectangle(0, 0, outImage.Width, outImage.Height), GraphicsUnit.Pixel);
+ gr.Flush();
+ outImageSmall.Save(SmallIconPath, ImageFormat.Png);
+ }
+
+ protected static string GenerateCode(uint crc32, char prefixCode)
+ {
+ return string.Format("CLV-{5}-{0}{1}{2}{3}{4}",
+ (char)('A' + (crc32 % 26)),
+ (char)('A' + (crc32 >> 5) % 26),
+ (char)('A' + ((crc32 >> 10) % 26)),
+ (char)('A' + ((crc32 >> 15) % 26)),
+ (char)('A' + ((crc32 >> 20) % 26)),
+ prefixCode);
+ }
+
+ public NesMiniApplication CopyTo(string path)
+ {
+ var targetDir = Path.Combine(path, code);
+ DirectoryCopy(GamePath, targetDir, true);
+ return FromDirectory(targetDir);
+ }
+
+ internal static long DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
+ {
+ long size = 0;
+ // Get the subdirectories for the specified directory.
+ DirectoryInfo dir = new DirectoryInfo(sourceDirName);
+
+ if (!dir.Exists)
+ {
+ throw new DirectoryNotFoundException(
+ "Source directory does not exist or could not be found: "
+ + sourceDirName);
+ }
+
+ DirectoryInfo[] dirs = dir.GetDirectories();
+ // If the destination directory doesn't exist, create it.
+ if (!Directory.Exists(destDirName))
+ {
+ Directory.CreateDirectory(destDirName);
+ }
+
+ // Get the files in the directory and copy them to the new location.
+ FileInfo[] files = dir.GetFiles();
+ foreach (FileInfo file in files)
+ {
+ string temppath = Path.Combine(destDirName, file.Name);
+ size += file.CopyTo(temppath, true).Length;
+ }
+
+ // If copying subdirectories, copy them and their contents to new location.
+ if (copySubDirs)
+ {
+ foreach (DirectoryInfo subdir in dirs)
+ {
+ string temppath = Path.Combine(destDirName, subdir.Name);
+ size += DirectoryCopy(subdir.FullName, temppath, copySubDirs);
+ }
+ }
+ return size;
+ }
+
+ public long Size(string path = null)
+ {
+ if (path == null)
+ path = GamePath;
+ long size = 0;
+ // Get the subdirectories for the specified directory.
+ DirectoryInfo dir = new DirectoryInfo(path);
+
+ if (!dir.Exists)
+ {
+ throw new DirectoryNotFoundException(
+ "Source directory does not exist or could not be found: "
+ + path);
+ }
+
+ DirectoryInfo[] dirs = dir.GetDirectories();
+ FileInfo[] files = dir.GetFiles();
+ foreach (FileInfo file in files)
+ {
+ size += file.Length;
+ }
+ foreach (DirectoryInfo subdir in dirs)
+ {
+ size += Size(subdir.FullName);
+ }
+ return size;
+ }
+
+ protected static uint CRC32(byte[] data)
+ {
+ uint poly = 0xedb88320;
+ uint[] table = new uint[256];
+ uint temp = 0;
+ for (uint i = 0; i < table.Length; ++i)
+ {
+ temp = i;
+ for (int j = 8; j > 0; --j)
+ {
+ if ((temp & 1) == 1)
+ {
+ temp = (uint)((temp >> 1) ^ poly);
+ }
+ else
+ {
+ temp >>= 1;
+ }
+ }
+ table[i] = temp;
+ }
+ uint crc = 0xffffffff;
+ for (int i = 0; i < data.Length; ++i)
+ {
+ byte index = (byte)(((crc) & 0xff) ^ data[i]);
+ crc = (uint)((crc >> 8) ^ table[index]);
+ }
+ return ~crc;
+ }
+
+ public static Bitmap LoadBitmap(string path)
+ {
+ //Open file in read only mode
+ using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read))
+ //Get a binary reader for the file stream
+ using (BinaryReader reader = new BinaryReader(stream))
+ {
+ //copy the content of the file into a memory stream
+ var memoryStream = new MemoryStream(reader.ReadBytes((int)stream.Length));
+ //make a new Bitmap object the owner of the MemoryStream
+ return new Bitmap(memoryStream);
+ }
+ }
+ }
+}
+
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
index c9cf8f94..a9371685 100644
--- a/Properties/AssemblyInfo.cs
+++ b/Properties/AssemblyInfo.cs
@@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("hakchi2")]
-[assembly: AssemblyDescription("Based on hakchi by madmonkey.\r\n\r\nSpecial thanks:\r\nxsnake for Japanese font.\r\nPete Batard/Akeo for Zadig.\r\npbatard for libwdi.\r\nThomas Bleeker for WinUSBNet lib.\r\nMatt Wrock for nQuant lib.\r\nbootgod for cartridge database.\r\nMarkovtsev Vadim for SevenZipSharp lib.\r\nNeoRame for Graphics.\r\nNhakin for Game Genie database.\r\nNintendo for my childhood.\r\n\r\nMy site: http://clusterrr.com\r\nE-mail: clusterrr@clusterrr.com\r\nPayPal for donations: clusterrr@clusterrr.com")]
+[assembly: AssemblyDescription("Based on hakchi by madmonkey.\r\n\r\nSpecial thanks:\r\nxsnake for Japanese font.\r\nPete Batard/Akeo for Zadig.\r\npbatard for libwdi.\r\nThomas Bleeker for WinUSBNet lib.\r\nbootgod for cartridge database.\r\nMarkovtsev Vadim for SevenZipSharp lib.\r\nNeoRame for Graphics.\r\nNhakin for Game Genie database.\r\nNintendo for my childhood.\r\n\r\nMy site: http://clusterrr.com\r\nE-mail: clusterrr@clusterrr.com\r\nPayPal for donations: clusterrr@clusterrr.com")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Alexey 'Cluster' Avdyukhin")]
[assembly: AssemblyProduct("hakchi2")]
diff --git a/SearchForm.cs b/SearchForm.cs
index 1f0f73fb..15ae4fdf 100644
--- a/SearchForm.cs
+++ b/SearchForm.cs
@@ -18,7 +18,7 @@ namespace com.clusterrr.hakchi_gui
if (textBoxSearch.Text.Length > 0)
{
for (int i = 1; i < mainForm.checkedListBoxGames.Items.Count; i++)
- if ((mainForm.checkedListBoxGames.Items[i] as NesGame).Name.
+ if ((mainForm.checkedListBoxGames.Items[i] as NesMiniApplication).Name.
ToLower().StartsWith(textBoxSearch.Text.ToLower()))
{
mainForm.checkedListBoxGames.SelectedIndex = i;
diff --git a/TreeContructorForm.cs b/TreeContructorForm.cs
index 3a1f08f5..bd37fb21 100644
--- a/TreeContructorForm.cs
+++ b/TreeContructorForm.cs
@@ -132,7 +132,7 @@ namespace com.clusterrr.hakchi_gui
}
newNode.SelectedImageIndex = newNode.ImageIndex = 0;
}
- else if (nesElement is NesGame)
+ else if (nesElement is NesMiniApplication)
newNode.SelectedImageIndex = newNode.ImageIndex = 2;
else if (nesElement is NesDefaultGame)
newNode.SelectedImageIndex = newNode.ImageIndex = 4;
@@ -200,7 +200,7 @@ namespace com.clusterrr.hakchi_gui
var transparency = cuttedNodes.Contains(n) ? 1 : 0;
if (element is NesMenuFolder)
item.ImageIndex = 0 + transparency;
- else if (element is NesGame)
+ else if (element is NesMiniApplication)
item.ImageIndex = 2 + transparency;
else if (element is NesDefaultGame)
item.ImageIndex = 4 + transparency;
@@ -210,10 +210,10 @@ namespace com.clusterrr.hakchi_gui
}
else
{
- if (node != null && node.Tag is NesGame)
+ if (node != null && node.Tag is NesMiniApplication)
{
- var game = node.Tag as NesGame;
- pictureBoxArt.Image = NesGame.LoadBitmap(game.IconPath);
+ var game = node.Tag as NesMiniApplication;
+ pictureBoxArt.Image = NesMiniApplication.LoadBitmap(game.IconPath);
groupBoxArt.Enabled = true;
listViewContent.Enabled = false;
}
@@ -473,7 +473,7 @@ namespace com.clusterrr.hakchi_gui
{
if (destinationNode == null)
destinationNode = treeView.Nodes[0]; // Root
- if (destinationNode.Tag is NesGame || destinationNode.Tag is NesDefaultGame)
+ if (destinationNode.Tag is NesMiniApplication || destinationNode.Tag is NesDefaultGame)
destinationNode = destinationNode.Parent;
foreach (var newNode in newNodes)
{
@@ -803,7 +803,7 @@ namespace com.clusterrr.hakchi_gui
{
for (int i = 0; i < mainForm.checkedListBoxGames.Items.Count; i++)
{
- if (deletedGames.Contains(mainForm.checkedListBoxGames.Items[i] as NesGame))
+ if (deletedGames.Contains(mainForm.checkedListBoxGames.Items[i] as NesMiniApplication))
mainForm.checkedListBoxGames.SetItemChecked(i, false);
}
for (int i = 0; i < mainForm.checkedListBoxDefaultGames.Items.Count; i++)
@@ -847,10 +847,10 @@ namespace com.clusterrr.hakchi_gui
element.AppendChild(subElement);
NodeToXml(xml, subElement, child);
}
- else if (child.Tag is NesGame)
+ else if (child.Tag is NesMiniApplication)
{
var subElement = xml.CreateElement("Game");
- var game = child.Tag as NesGame;
+ var game = child.Tag as NesMiniApplication;
subElement.SetAttribute("code", game.Code);
subElement.SetAttribute("name", game.Name);
element.AppendChild(subElement);
@@ -911,7 +911,7 @@ namespace com.clusterrr.hakchi_gui
case "Game":
case "OriginalGame":
var code = element.Attributes["code"].Value;
- var games = from n in rootMenuCollection where ((n is NesGame || n is NesDefaultGame) && (n.Code == code)) select n;
+ var games = from n in rootMenuCollection where ((n is NesMiniApplication || n is NesDefaultGame) && (n.Code == code)) select n;
if (games.Count() > 0)
{
var game = games.First();
diff --git a/TreeContructorForm.resx b/TreeContructorForm.resx
index b389733b..36eb4bd0 100644
--- a/TreeContructorForm.resx
+++ b/TreeContructorForm.resx
@@ -126,6 +126,9 @@
<data name="&gt;&gt;buttonNoFoldersOriginal.Name" xml:space="preserve">
<value>buttonNoFoldersOriginal</value>
</data>
+ <data name="&gt;&gt;pictureBoxArt.Type" xml:space="preserve">
+ <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
<data name="&gt;&gt;treeView.Type" xml:space="preserve">
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
@@ -140,6 +143,9 @@
<data name="labelElementCount.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 13</value>
</data>
+ <data name="&gt;&gt;deleteToolStripMenuItem.Name" xml:space="preserve">
+ <value>deleteToolStripMenuItem</value>
+ </data>
<data name="comboBoxPosition.Location" type="System.Drawing.Point, System.Drawing">
<value>127, 242</value>
</data>
@@ -164,9 +170,6 @@
<data name="&gt;&gt;panel2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
- <data name="buttonNewFolder.Size" type="System.Drawing.Size, System.Drawing">
- <value>100, 21</value>
- </data>
<data name="labelElementCount.Size" type="System.Drawing.Size, System.Drawing">
<value>79, 13</value>
</data>
@@ -186,8 +189,8 @@
<data name="&gt;&gt;labelElementCount.ZOrder" xml:space="preserve">
<value>2</value>
</data>
- <data name="&gt;&gt;pictureBoxArt.Type" xml:space="preserve">
- <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="buttonNoFolders.Text" xml:space="preserve">
+ <value>No folders</value>
</data>
<data name="buttonNewFolder.Text" xml:space="preserve">
<value>New folder</value>
@@ -197,7 +200,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC0
- CwAAAk1TRnQBSQFMAgEBBgEAAbwBAAHIAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CwAAAk1TRnQBSQFMAgEBBgEAAbwBAAHMAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -253,21 +256,12 @@
<data name="treeView.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
- <data name="&gt;&gt;cutToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
- <value>784, 512</value>
- </data>
<data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 25</value>
</data>
<data name="&gt;&gt;buttonFoldersLetters.Parent" xml:space="preserve">
<value>groupBoxSplitModes</value>
</data>
- <data name="&gt;&gt;buttonNoFolders.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
<data name="buttonCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
@@ -298,6 +292,9 @@
<data name="comboBoxPosition.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
+ <data name="&gt;&gt;splitContainer.Panel2.Name" xml:space="preserve">
+ <value>splitContainer.Panel2</value>
+ </data>
<data name="&gt;&gt;listViewContent.Name" xml:space="preserve">
<value>listViewContent</value>
</data>
@@ -1457,6 +1454,9 @@
//////////////////////////////////8=
</value>
</data>
+ <data name="&gt;&gt;cutToolStripMenuItem.Name" xml:space="preserve">
+ <value>cutToolStripMenuItem</value>
+ </data>
<data name="buttonFoldersEquallyOriginal.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 60</value>
</data>
@@ -1469,9 +1469,6 @@
<data name="newFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 22</value>
</data>
- <data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
- <value>0, 474</value>
- </data>
<data name="&gt;&gt;buttonFoldersLettersOriginal.Name" xml:space="preserve">
<value>buttonFoldersLettersOriginal</value>
</data>
@@ -1520,12 +1517,18 @@
<data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
+ <data name="groupBoxArt.Size" type="System.Drawing.Size, System.Drawing">
+ <value>221, 227</value>
+ </data>
<data name="&gt;&gt;buttonCancel.Parent" xml:space="preserve">
<value>panel2</value>
</data>
<data name="buttonFoldersLetters.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
+ <data name="&gt;&gt;splitContainer.Panel2.ZOrder" xml:space="preserve">
+ <value>1</value>
+ </data>
<data name="buttonNewFolder.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
@@ -1547,8 +1550,11 @@
<data name="&gt;&gt;treeView.ZOrder" xml:space="preserve">
<value>0</value>
</data>
- <data name="&gt;&gt;buttonFoldersEqually.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="buttonFoldersEquallyOriginal.Text" xml:space="preserve">
+ <value>Original games -&gt; Split equally</value>
+ </data>
+ <data name="&gt;&gt;buttonNoFoldersOriginal.ZOrder" xml:space="preserve">
+ <value>0</value>
</data>
<data name="buttonNewFolder.Location" type="System.Drawing.Point, System.Drawing">
<value>394, 243</value>
@@ -1589,20 +1595,20 @@
<data name="&gt;&gt;panel2.Name" xml:space="preserve">
<value>panel2</value>
</data>
+ <data name="&gt;&gt;buttonFoldersEqually.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
<data name="buttonFoldersLettersOriginal.Text" xml:space="preserve">
<value>Original games -&gt; Split by first letter</value>
</data>
<data name="buttonFoldersEqually.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 88</value>
</data>
- <data name="deleteToolStripMenuItem.Text" xml:space="preserve">
- <value>Delete</value>
- </data>
<data name="toolStripMenuItemSep.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 6</value>
</data>
- <data name="&gt;&gt;deleteToolStripMenuItem.Name" xml:space="preserve">
- <value>deleteToolStripMenuItem</value>
+ <data name="&gt;&gt;newFolderToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>700, 550</value>
@@ -1625,21 +1631,12 @@
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
</data>
- <data name="&gt;&gt;newFolderToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
<data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>678, 7</value>
</data>
- <data name="&gt;&gt;buttonOk.ZOrder" xml:space="preserve">
- <value>1</value>
- </data>
<data name="splitContainer.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
- <data name="buttonFoldersEquallyOriginal.Text" xml:space="preserve">
- <value>Original games -&gt; Split equally</value>
- </data>
<data name="treeView.ImageIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
@@ -1661,6 +1658,9 @@
<data name="&gt;&gt;pasteToolStripMenuItem.Name" xml:space="preserve">
<value>pasteToolStripMenuItem</value>
</data>
+ <data name="newFolderToolStripMenuItem.Text" xml:space="preserve">
+ <value>Create new folder</value>
+ </data>
<data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
@@ -1691,9 +1691,15 @@
<data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 22</value>
</data>
+ <data name="&gt;&gt;contextMenuStrip.Name" xml:space="preserve">
+ <value>contextMenuStrip</value>
+ </data>
<data name="pictureBoxArt.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
+ <data name="listViewContent.Size" type="System.Drawing.Size, System.Drawing">
+ <value>492, 206</value>
+ </data>
<data name="&gt;&gt;buttonFoldersEquallyOriginal.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
@@ -1706,9 +1712,6 @@
<data name="&gt;&gt;buttonFoldersLetters.ZOrder" xml:space="preserve">
<value>2</value>
</data>
- <data name="buttonNoFolders.Text" xml:space="preserve">
- <value>No folders</value>
- </data>
<data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 25</value>
</data>
@@ -1718,9 +1721,6 @@
<data name="&gt;&gt;groupBoxSplitModes.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Top, Right</value>
- </data>
<data name="&gt;&gt;splitContainer.ZOrder" xml:space="preserve">
<value>2</value>
</data>
@@ -1736,6 +1736,9 @@
<data name="buttonFoldersLettersOriginal.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
+ <data name="pictureBoxArt.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+ <value>NoControl</value>
+ </data>
<data name="&gt;&gt;groupBoxArt.Name" xml:space="preserve">
<value>groupBoxArt</value>
</data>
@@ -1754,15 +1757,15 @@
<data name="&gt;&gt;buttonNewFolder.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
+ <data name="buttonFoldersLettersOriginal.Size" type="System.Drawing.Size, System.Drawing">
+ <value>110, 60</value>
+ </data>
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;buttonCancel.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;deleteToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
<data name="&gt;&gt;listViewContent.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
@@ -1775,23 +1778,17 @@
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;contextMenuStrip.Name" xml:space="preserve">
- <value>contextMenuStrip</value>
- </data>
- <data name="&gt;&gt;comboBoxPosition.Type" xml:space="preserve">
- <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;deleteToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;panel2.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;buttonNoFolders.Parent" xml:space="preserve">
- <value>groupBoxSplitModes</value>
- </data>
<data name="comboBoxPosition.Items3" xml:space="preserve">
<value>Rightmost</value>
</data>
- <data name="listViewContent.Size" type="System.Drawing.Size, System.Drawing">
- <value>492, 206</value>
+ <data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
+ <value>0, 474</value>
</data>
<data name="&gt;&gt;labelPosition.ZOrder" xml:space="preserve">
<value>1</value>
@@ -1847,14 +1844,14 @@
<data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Bottom</value>
</data>
- <data name="newFolderToolStripMenuItem.Text" xml:space="preserve">
- <value>Create new folder</value>
+ <data name="&gt;&gt;cutToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;splitContainer.Panel2.ZOrder" xml:space="preserve">
- <value>1</value>
+ <data name="deleteToolStripMenuItem.Text" xml:space="preserve">
+ <value>Delete</value>
</data>
- <data name="&gt;&gt;buttonFoldersLetters.Name" xml:space="preserve">
- <value>buttonFoldersLetters</value>
+ <data name="buttonNewFolder.Size" type="System.Drawing.Size, System.Drawing">
+ <value>100, 21</value>
</data>
<data name="buttonNoFolders.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@@ -1868,8 +1865,8 @@
<data name="labelPosition.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 13</value>
</data>
- <data name="groupBoxArt.Size" type="System.Drawing.Size, System.Drawing">
- <value>221, 227</value>
+ <data name="&gt;&gt;buttonOk.ZOrder" xml:space="preserve">
+ <value>1</value>
</data>
<data name="&gt;&gt;labelElementCount.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
@@ -1877,12 +1874,15 @@
<data name="buttonFoldersEquallyOriginal.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
- <data name="&gt;&gt;buttonNoFoldersOriginal.ZOrder" xml:space="preserve">
- <value>0</value>
+ <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
+ <value>784, 512</value>
</data>
<data name="&gt;&gt;newFolderToolStripMenuItem.Name" xml:space="preserve">
<value>newFolderToolStripMenuItem</value>
</data>
+ <data name="comboBoxPosition.Items2" xml:space="preserve">
+ <value>Right to the games</value>
+ </data>
<data name="buttonNoFoldersOriginal.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
@@ -1895,8 +1895,8 @@
<data name="&gt;&gt;panel2.Parent" xml:space="preserve">
<value>$this</value>
</data>
- <data name="&gt;&gt;splitContainer.Panel2.Name" xml:space="preserve">
- <value>splitContainer.Panel2</value>
+ <data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Right</value>
</data>
<data name="groupBoxArt.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
@@ -1904,18 +1904,18 @@
<data name="&gt;&gt;imageList.Name" xml:space="preserve">
<value>imageList</value>
</data>
- <data name="pictureBoxArt.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
- <value>NoControl</value>
- </data>
<data name="&gt;&gt;toolStripMenuItemSep.Name" xml:space="preserve">
<value>toolStripMenuItemSep</value>
</data>
- <data name="buttonFoldersLettersOriginal.Size" type="System.Drawing.Size, System.Drawing">
- <value>110, 60</value>
+ <data name="&gt;&gt;buttonNoFolders.Parent" xml:space="preserve">
+ <value>groupBoxSplitModes</value>
</data>
<data name="buttonFoldersLetters.Text" xml:space="preserve">
<value>Split by first letter</value>
</data>
+ <data name="&gt;&gt;buttonFoldersLetters.Name" xml:space="preserve">
+ <value>buttonFoldersLetters</value>
+ </data>
<data name="labelPosition.Text" xml:space="preserve">
<value>Folder position priority:</value>
</data>
@@ -1934,8 +1934,8 @@
<data name="&gt;&gt;imageList.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="comboBoxPosition.Items2" xml:space="preserve">
- <value>Right to the games</value>
+ <data name="&gt;&gt;buttonNoFolders.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="comboBoxPosition.Size" type="System.Drawing.Size, System.Drawing">
<value>126, 21</value>
@@ -1943,19 +1943,19 @@
<data name="&gt;&gt;renameToolStripMenuItem.Name" xml:space="preserve">
<value>renameToolStripMenuItem</value>
</data>
- <data name="&gt;&gt;cutToolStripMenuItem.Name" xml:space="preserve">
- <value>cutToolStripMenuItem</value>
+ <data name="&gt;&gt;comboBoxPosition.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>120, 17</value>
- </metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
+ <metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>ru-RU</value>
</metadata>
- <metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>17, 17</value>
+ <metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>120, 17</value>
</metadata>
</root> \ No newline at end of file
diff --git a/TreeContructorForm.ru-RU.resx b/TreeContructorForm.ru-RU.resx
index 1b472316..762e9f9b 100644
--- a/TreeContructorForm.ru-RU.resx
+++ b/TreeContructorForm.ru-RU.resx
@@ -121,7 +121,7 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACO
CwAAAk1TRnQBSQFMAgEBBgEAAbABAAGwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
@@ -150,30 +150,28 @@
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
- AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wIADm0CAA7vIgABEgHs
- AgcJ7AESAgAB7wEHAvEJBwHvIgABEgHtAm0J7QESAgAB7wG8Au8JvAHvIQAB7QHsAe0C7wLtAW0G7QHs
- Ae0CBwG8AvACvAHvBrwCByAAARIC7QLrAu0B+AftARIB7wK8AgcCvAEHB7wB7yAAARIC7QKSAe0HUgLt
- ARIB7wW8B5oCvAHvIAABEgLtAuwB7QIyAksBbgIyAu0BEgHvArwCBwG8ApoCmQEHApoCvAHvIAABEgLt
- AuwB7QI4AYsBZgGSAUsBOALtARIB7wK8AgcBvAKaAbUB7wG8AZkBmgK8Ae8gAAESBe0COAGuAesBGgHr
- ATgC7QESAe8FvAKaAgcBGwHvAZoCvAHvIAABEgLtAvgB7QI4AVIBdAGUAXQBOALtARIB7wK8AgcBvAKa
- AZkDGgGaArwB7yAAARIC7QL3Ae0EOAFNAeMBOALtARIB7wK8AvABvASgApoBoAK8Ae8gAAESAu0CbQHt
- ATgBWAE4AVgBOAF1ATgC7QESAe8CvALvAbwBoAGZAaABmQGgARoBoAK8Ae8gAAESAu0C7wHtAfsB0wH7
- AdMCWAH7Au0BEgHvArwC8AG8AaAB3AGgAdwCnwGgArwB7yAAARICkgIQAZIB+wGzAfsDswH7ApIBEgHv
- ArwC7QG8AaABCQGgAwkBoAK8Ae8gAAESAgcCEwEHB/sCBwESAe8C8gL3AfIHoALyAe8gAAMSAg8BEgcw
- AxID7wLsAe8HmQPvQQAObQIADu8CAA61AgAOvAIAARIB7AIHCewBEgIAAe8BBwLxCQcB7wIAAbQMuwG0
- AgABvAzyAbwCAAESAe0CbQntARICAAHvAbwC7wm8Ae8CAAG0DAkBtAIAAbwM8gG8AQAB7QHsAe0C7wLt
- AW0G7QHsAe0CBwG8AvACvAHvBrwCBwEAAbQMCQG0AgABvAzyAbwBAAESAu0C6wLtAfgH7QESAe8CvAIH
- ArwBBwe8Ae8BvAG7DAkBuwG8AfIB8AzyAfAB8gESAu0CkgHtB+sC7QESAe8FvAcHArwB7wG0DgkBtAG8
- DvIBvAESAu0C7AHtB20C7QESAe8CvAIHAbwH7wK8Ae8BtA4JAbQBvA7yAbwBEgLtAuwB7QdtAu0BEgHv
- ArwCBwG8B+8CvAHvAbQOCQG0AbwO8gG8ARIF7QdtAu0BEgHvBbwH7wK8Ae8BtA4JAbQBvA7yAbwBEgLt
- AvgB7QdtAu0BEgHvArwCBwG8B+8CvAHvAbQGuwgJAbQBvAbxCPIBvAESAu0C9wHtB20C7QESAe8CvALw
- AbwH7wK8Ae8BBwWRAbQIuwG0AfEF7gG8CPIBvAESAu0CbQHtB20C7QESAe8CvALvAbwH7wK8Ae8BAAWu
- CZEBuwEABQcJ7gHwARIC7QLvAe0HbQLtARIB7wK8AvABvAfvArwB7wEAAZEFrgiRAgAOBwEAARICkgIQ
- AZIHbQKSARIB7wK8Au0BvAfvArwB7wIABZELAAUHCQABEgIHAhMBBwfqAgcBEgHvAvIC9wHyB+8C8gHv
- IAADEgIPARIHDwMSA+8C7AHvB+wD7wFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQABAQYAAQEWAAP/
- AQABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBbAAE/wGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGA
- AQEBgAEBAYABAQGAAQEBgAEBAYABAQQAAYABAQGAAQE8AAGAAQABgAUAAYABAQGAAQEEAAHBAf8BwQH/
- BAAE/wQACw==
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/xIADu8iAA4SAgAB7wEH
+ AvEJBwHvIgABEgHtArwJ7QESAgAB7wG8Au8JvAHvIgABEgHtAhIJ7QESAQACBwG8AvACvAHvBrwCByAA
+ ARIC7QK8Au0BEgftARIB7wK8AgcCvAEHB7wB7yAAARIC7QISCu0BEgHvBbwHmgK8Ae8gAAESAu0CvAHt
+ BzIC7QESAe8CvAIHAbwCmgKZAQcCmgK8Ae8gAAESAu0CEgHtAjIChgGLAjIC7QESAe8CvAIHAbwCmgG1
+ Ae8BvAGZAZoCvAHvIAABEgLtArwB7QI4AYsBEgEaARMBOALtARIB7wW8ApoCBwEbAe8BmgK8Ae8gAAES
+ Au0CEgHtAjgBbgGTARoBHAE4Au0BEgHvArwCBwG8ApoBmQMaAZoCvAHvIAABEgLtArwB7QQ4AhcBOALt
+ ARIB7wK8AvABvASgApoBoAK8Ae8gAAESAu0CEgHtBTgBlAE4Au0BEgHvArwC7wG8AaABmQGgAZkBoAEa
+ AaACvAHvIAABEgLtArwB7QH7AdMB+wHTA/sC7QESAe8CvALwAbwBoAHcAaAB3AKfAaACvAHvIAABEgLt
+ Ag8B7QH7AdMB+wPTAfsC7QESAe8CvALtAbwBoAEJAaADCQGgArwB7yAAARICvAISAbwH+wK8ARIB7wLy
+ AvcB8gegAvIB7yAAAxICDwESBzADEgPvAuwB7weZA++BAA4SAgAO7wIADrQCAA68AgABEgHtArwJ7QES
+ AgAB7wG8AvIJvAHvAgABtAwJAbQCAAG8DPIBvAIAARIB7QISCe0BEgIAAe8BvALvCbwB7wIAAbQMCQG0
+ AgABvAzyAbwBAAESAu0CvALtARIH7QESAe8CvALyArwB7we8Ae8BAAG0DAkBtAIAAbwM8gG8AQABEgLt
+ AhIK7QESAe8CvALvCrwB7wG0DgkBtAG8DvIBvAESAu0CvAHtB20C7QESAe8CvALyAbwH7wK8Ae8BtA4J
+ AbQBvA7yAbwBEgLtAhIB7QdtAu0BEgHvArwC7wG8B+8CvAHvAbQOCQG0AbwO8gG8ARIC7QK8Ae0HbQLt
+ ARIB7wK8AvIBvAfvArwB7wG0DgkBtAG8DvIBvAESAu0CEgHtB20C7QESAe8CvALvAbwH7wK8Ae8BtA4J
+ AbQBvA7yAbwBEgLtArwB7QdtAu0BEgHvArwC8gG8B+8CvAHvB7QICQG0B7wI8gG8ARIC7QISAe0HbQLt
+ ARIB7wK8Au8BvAfvArwB7wEABa4KtAEABQcKvAESAu0CvAHtB20C7QESAe8CvALyAbwH7wK8Ae8BAA6u
+ AgAOBwEAARIC7QIPAe0HbQLtARIB7wK8AuwBvAfvArwB7wIABa4LAAUHCQABEgK8AhIBvAdtArwBEgHv
+ AvIC7wHyB+8C8gHvIAADEgIPARIHDwMSA+8C7AHvB+wD7wFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEB
+ AQABAQYAAQEWAAP/AQAC/wGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAWYADP8BgAEBAYABAQGA
+ AQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEEAAGAAQEBgAEBNAABgAEAAYAFAAGA
+ AQEBgAEBBAABwQH/AcEB/wQABP8EAAs=
</value>
</data>
<data name="comboBoxPosition.Items" xml:space="preserve">
diff --git a/WorkerForm.cs b/WorkerForm.cs
index 065a3e1f..ea0b3cf7 100644
--- a/WorkerForm.cs
+++ b/WorkerForm.cs
@@ -69,7 +69,6 @@ namespace com.clusterrr.hakchi_gui
baseDirectory = MainForm.BaseDirectory;
fes1Path = Path.Combine(Path.Combine(baseDirectory, "data"), "fes1.bin");
ubootPath = Path.Combine(Path.Combine(baseDirectory, "data"), "uboot.bin");
- gamesDirectory = MainForm.GamesDirectory;
tempDirectory = Path.Combine(baseDirectory, "temp");
kernelDirectory = Path.Combine(tempDirectory, "kernel");
initramfs_cpio = Path.Combine(kernelDirectory, "initramfs.cpio");
@@ -180,7 +179,7 @@ namespace com.clusterrr.hakchi_gui
DownloadAllCovers();
break;
case Tasks.AddGames:
- AddGames(gamesDirectory, GamesToAdd);
+ AddGames(GamesToAdd);
break;
}
Thread.Sleep(1000);
@@ -546,7 +545,7 @@ namespace com.clusterrr.hakchi_gui
if (!File.Exists(Path.Combine(ramfsDirectory, "init"))) // cpio.exe fails on Windows XP for some reason. But working!
throw new Exception("Can't unpack ramdisk 2");
if (Directory.Exists(hakchiDirectory)) Directory.Delete(hakchiDirectory, true);
- DirectoryCopy(Path.Combine(modsDirectory, Mod), ramfsDirectory, true);
+ NesMiniApplication.DirectoryCopy(Path.Combine(modsDirectory, Mod), ramfsDirectory, true);
var ramfsFiles = Directory.GetFiles(ramfsDirectory, "*.*", SearchOption.AllDirectories);
foreach (var file in ramfsFiles)
{
@@ -690,7 +689,7 @@ namespace com.clusterrr.hakchi_gui
{
if (Games == null) return;
int i = 0;
- foreach (NesGame game in Games)
+ foreach (NesMiniApplication game in Games)
{
SetStatus(Resources.GooglingFor + " " + game.Name + ImageGooglerForm.Suffix);
string[] urls = null;
@@ -718,7 +717,7 @@ namespace com.clusterrr.hakchi_gui
try
{
var cover = ImageGooglerForm.DownloadImage(urls[tries]);
- game.SetImage(cover, ConfigIni.EightBitPngCompression);
+ game.Image = cover;
break;
}
catch (Exception ex)
@@ -765,56 +764,40 @@ namespace com.clusterrr.hakchi_gui
targetDirectory = Path.Combine(tempGamesDirectory, string.Format("sub{0:D3}", menuIndex));
foreach (var element in menuCollection)
{
- if (element is NesGame)
+ if (element is NesMiniApplication)
{
stats.GamesTotal++;
if (stats.Size >= maxRamfsSize) continue;
stats.GamesProceed++;
if (stats.GamesStart >= stats.GamesProceed) continue;
- var game = element as NesGame;
- var gameDir = Path.Combine(targetDirectory, game.Code);
+ var game = element as NesMiniApplication;
Debug.Write(string.Format("Processing {0} ('{1}'), #{2}", game.Code, game.Name, stats.GamesProceed));
- stats.Size += DirectoryCopy(game.GamePath, gameDir, true);
- /*
+ var gameCopy = game.CopyTo(targetDirectory);
+ stats.Size += gameCopy.Size();
if (stats.Size >= maxRamfsSize)
{
// Rollback. Just in case of huge last game
stats.GamesProceed--;
- Directory.Delete(gameDir, true);
+ Directory.Delete(gameCopy.GamePath, true);
continue;
}
- */
Debug.WriteLine(string.Format(", total size: {0}", stats.Size));
- if (!string.IsNullOrEmpty(game.GameGenie))
+ try
{
- var codes = game.GameGenie.Split(new char[] { ',', '\t', ' ', ';' }, StringSplitOptions.RemoveEmptyEntries);
- var newNesFilePath = Path.Combine(gameDir, game.Code + ".nes");
- try
- {
- var nesFile = new NesFile(newNesFilePath);
- foreach (var code in codes)
- {
- try
- {
- nesFile.PRG = GameGenie.Patch(nesFile.PRG, code.Trim());
- }
- catch (GameGenieFormatException)
- {
- ShowError(new GameGenieFormatException(string.Format(Resources.GameGenieFormatError, code, game)), dontStop: true);
- }
- catch (GameGenieNotFoundException)
- {
- ShowError(new GameGenieNotFoundException(string.Format(Resources.GameGenieNotFound, code, game.Name)), dontStop: true);
- }
- }
- nesFile.Save(newNesFilePath);
- var ggFilePath = Path.Combine(gameDir, NesGame.GameGenieFileName);
- if (File.Exists(ggFilePath)) File.Delete(ggFilePath);
- }
- catch // in case of FDS game... just ignore
+ if (gameCopy is NesGame && File.Exists((gameCopy as NesGame).GameGeniePath))
{
+ (gameCopy as NesGame).ApplyGameGenie();
+ File.Delete((gameCopy as NesGame).GameGeniePath);
}
}
+ catch (GameGenieFormatException ex)
+ {
+ ShowError(new GameGenieFormatException(string.Format(Resources.GameGenieFormatError, ex.Code, game)), dontStop: true);
+ }
+ catch (GameGenieNotFoundException ex)
+ {
+ ShowError(new GameGenieNotFoundException(string.Format(Resources.GameGenieNotFound, ex.Code, game.Name)), dontStop: true);
+ }
}
if (element is NesMenuFolder)
{
@@ -901,50 +884,11 @@ namespace com.clusterrr.hakchi_gui
return pages * page_size;
}
- private static long DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs)
- {
- long size = 0;
- // Get the subdirectories for the specified directory.
- DirectoryInfo dir = new DirectoryInfo(sourceDirName);
-
- if (!dir.Exists)
- {
- throw new DirectoryNotFoundException(
- "Source directory does not exist or could not be found: "
- + sourceDirName);
- }
-
- DirectoryInfo[] dirs = dir.GetDirectories();
- // If the destination directory doesn't exist, create it.
- if (!Directory.Exists(destDirName))
- {
- Directory.CreateDirectory(destDirName);
- }
-
- // Get the files in the directory and copy them to the new location.
- FileInfo[] files = dir.GetFiles();
- foreach (FileInfo file in files)
- {
- string temppath = Path.Combine(destDirName, file.Name);
- size += file.CopyTo(temppath, true).Length;
- }
-
- // If copying subdirectories, copy them and their contents to new location.
- if (copySubDirs)
- {
- foreach (DirectoryInfo subdir in dirs)
- {
- string temppath = Path.Combine(destDirName, subdir.Name);
- size += DirectoryCopy(subdir.FullName, temppath, copySubDirs);
- }
- }
- return size;
- }
bool YesForAllPatches = false;
- public NesGame AddGames(string gamesDirectory, string[] files, Form parentForm = null)
+ public NesMiniApplication AddGames(string[] files, Form parentForm = null)
{
- NesGame nesGame = null;
+ NesMiniApplication app = null;
bool NoForAllUnsupportedMappers = false;
YesForAllPatches = false;
if (parentForm == null) parentForm = this;
@@ -954,7 +898,7 @@ namespace com.clusterrr.hakchi_gui
{
try
{
- var nesFileName = file;
+ var fileName = file;
var ext = Path.GetExtension(file).ToLower();
bool? needPatch = YesForAllPatches ? (bool?)true : null;
byte[] rawData = null;
@@ -971,57 +915,68 @@ namespace com.clusterrr.hakchi_gui
}
if (filesInArchive.Count == 1)
{
- nesFileName = filesInArchive[0];
+ fileName = filesInArchive[0];
}
else
{
var fsForm = new SelectFileForm(filesInArchive.ToArray());
if (fsForm.ShowDialog() == DialogResult.OK)
- nesFileName = (string)fsForm.listBoxFiles.SelectedItem;
+ fileName = (string)fsForm.listBoxFiles.SelectedItem;
else
continue;
}
var o = new MemoryStream();
- szExtractor.ExtractFile(nesFileName, o);
+ szExtractor.ExtractFile(fileName, o);
rawData = new byte[szExtractor.ArchiveFileData[0].Size];
o.Seek(0, SeekOrigin.Begin);
o.Read(rawData, 0, rawData.Length);
}
- try
+ if (Path.GetExtension(fileName).ToLower() == ".nes")
{
- nesGame = new NesGame(gamesDirectory, nesFileName, NoForAllUnsupportedMappers ? (bool?)false : null, ref needPatch, needPatchCallback, this, rawData);
-
- // Trying to import Game Genie codes
- var lGameGeniePath = Path.Combine(Path.GetDirectoryName(nesFileName), Path.GetFileNameWithoutExtension(nesFileName) + ".xml");
- if (File.Exists(lGameGeniePath))
+ try
{
- GameGenieDataBase lGameGenieDataBase = new GameGenieDataBase(nesGame);
- lGameGenieDataBase.ImportCodes(lGameGeniePath, true);
- lGameGenieDataBase.Save();
+ app = NesGame.Import(fileName, NoForAllUnsupportedMappers ? (bool?)false : null, ref needPatch, needPatchCallback, this, rawData);
+
+ // Trying to import Game Genie codes
+ var lGameGeniePath = Path.Combine(Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName) + ".xml");
+ if (File.Exists(lGameGeniePath))
+ {
+ GameGenieDataBase lGameGenieDataBase = new GameGenieDataBase(app);
+ lGameGenieDataBase.ImportCodes(lGameGeniePath, true);
+ lGameGenieDataBase.Save();
+ }
}
- }
- catch (Exception ex)
- {
- if (ex is UnsupportedMapperException || ex is UnsupportedFourScreenException)
+ catch (Exception ex)
{
- MessageBoxFromThread(this,
- (ex is UnsupportedMapperException)
- ? string.Format(Resources.MapperNotSupported, Path.GetFileName(file), (ex as UnsupportedMapperException).ROM.Mapper)
- : string.Format(Resources.FourScreenNotSupported, Path.GetFileName(file)),
- Resources.AreYouSure,
- files.Length <= 1 ? MessageBoxButtons.YesNo : MessageBoxButtons.YesNoCancel,
- MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
- while (MessageBoxResult == DialogResult.None) Thread.Sleep(100);
- if (MessageBoxResult == DialogResult.Yes)
- nesGame = new NesGame(gamesDirectory, nesFileName, true, ref needPatch, needPatchCallback, this, rawData);
- else if (MessageBoxResult == System.Windows.Forms.DialogResult.Cancel)
+ if (ex is UnsupportedMapperException || ex is UnsupportedFourScreenException)
{
- NoForAllUnsupportedMappers = true;
+ MessageBoxFromThread(this,
+ (ex is UnsupportedMapperException)
+ ? string.Format(Resources.MapperNotSupported, Path.GetFileName(file), (ex as UnsupportedMapperException).ROM.Mapper)
+ : string.Format(Resources.FourScreenNotSupported, Path.GetFileName(file)),
+ Resources.AreYouSure,
+ files.Length <= 1 ? MessageBoxButtons.YesNo : MessageBoxButtons.YesNoCancel,
+ MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
+ while (MessageBoxResult == DialogResult.None) Thread.Sleep(100);
+ if (MessageBoxResult == DialogResult.Yes)
+ app = NesGame.Import(fileName, true, ref needPatch, needPatchCallback, this, rawData);
+ else if (MessageBoxResult == System.Windows.Forms.DialogResult.Cancel)
+ {
+ NoForAllUnsupportedMappers = true;
+ }
}
+ else throw ex;
}
- else throw ex;
}
- ConfigIni.SelectedGames += ";" + nesGame.Code;
+ else if (Path.GetExtension(fileName).ToLower() == ".fds")
+ {
+ app = FdsGame.Import(fileName, rawData);
+ }
+ else if (Path.GetExtension(fileName).ToLower() == ".desktop")
+ {
+ app = NesMiniApplication.Import(fileName);
+ }
+ ConfigIni.SelectedGames += ";" + app.Code;
}
catch (Exception ex)
{
@@ -1031,7 +986,7 @@ namespace com.clusterrr.hakchi_gui
}
SetProgress(++count, files.Length);
}
- return nesGame; // Last added game if any
+ return app; // Last added game if any
}
private bool needPatchCallback(Form parentForm, string nesFileName)
diff --git a/hakchi_gui.csproj b/hakchi_gui.csproj
index 06a327b4..d62d3e37 100644
--- a/hakchi_gui.csproj
+++ b/hakchi_gui.csproj
@@ -117,7 +117,7 @@
<Compile Include="FelLib\WinUSBNet\USBPipe.cs" />
<Compile Include="FelLib\WinUSBNet\USBPipeCollection.cs" />
<Compile Include="FelLib\WinUSBNet\USBPipePolicy.cs" />
- <Compile Include="GameGenie.cs" />
+ <Compile Include="GameGeniePatcher.cs" />
<Compile Include="ImageGooglerForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -132,21 +132,12 @@
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
+ <Compile Include="FdsGame.cs" />
<Compile Include="NesMenuCollection.cs" />
<Compile Include="NesMenuFolder.cs" />
<Compile Include="NesFile.cs" />
<Compile Include="NesGame.cs" />
- <Compile Include="nQuant.Core\Box.cs" />
- <Compile Include="nQuant.Core\ColorData.cs" />
- <Compile Include="nQuant.Core\CubeCut.cs" />
- <Compile Include="nQuant.Core\IWuQuantizer.cs" />
- <Compile Include="nQuant.Core\Lookup.cs" />
- <Compile Include="nQuant.Core\LookupData.cs" />
- <Compile Include="nQuant.Core\Pixel.cs" />
- <Compile Include="nQuant.Core\QuantizationException.cs" />
- <Compile Include="nQuant.Core\QuantizedPalette.cs" />
- <Compile Include="nQuant.Core\WuQuantizer.cs" />
- <Compile Include="nQuant.Core\WuQuantizerBase.cs" />
+ <Compile Include="NesMiniApplication.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.ru-RU.Designer.cs">
diff --git a/images/blank_sm.png b/images/blank_sm.png
index 9d1c6a31..c2cf89df 100644
--- a/images/blank_sm.png
+++ b/images/blank_sm.png
Binary files differ
diff --git a/images/blank_sm_tr.png b/images/blank_sm_tr.png
index 26022b7a..d2706c8b 100644
--- a/images/blank_sm_tr.png
+++ b/images/blank_sm_tr.png
Binary files differ
diff --git a/images/folder_sm.png b/images/folder_sm.png
index c5995b41..ee826e97 100644
--- a/images/folder_sm.png
+++ b/images/folder_sm.png
Binary files differ
diff --git a/images/folder_sm_tr.png b/images/folder_sm_tr.png
index 64e97216..efd94599 100644
--- a/images/folder_sm_tr.png
+++ b/images/folder_sm_tr.png
Binary files differ
diff --git a/images/original_sm.png b/images/original_sm.png
index 84286007..76a876bc 100644
--- a/images/original_sm.png
+++ b/images/original_sm.png
Binary files differ
diff --git a/nQuant.Core/Box.cs b/nQuant.Core/Box.cs
deleted file mode 100644
index c0a916c8..00000000
--- a/nQuant.Core/Box.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace nQuant
-{
- public struct Box
- {
- public byte AlphaMinimum;
- public byte AlphaMaximum;
- public byte RedMinimum;
- public byte RedMaximum;
- public byte GreenMinimum;
- public byte GreenMaximum;
- public byte BlueMinimum;
- public byte BlueMaximum;
- public int Size;
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/ColorData.cs b/nQuant.Core/ColorData.cs
deleted file mode 100644
index cd1fcf67..00000000
--- a/nQuant.Core/ColorData.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace nQuant
-{
- public class ColorData
- {
- public ColorData(int dataGranularity, int bitmapWidth, int bitmapHeight)
- {
- dataGranularity++;
- Weights = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
- MomentsAlpha = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
- MomentsRed = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
- MomentsGreen = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
- MomentsBlue = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
- Moments = new float[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
-
- pixelsCount = bitmapWidth*bitmapHeight;
- pixels = new Pixel[pixelsCount];
- quantizedPixels = new int[pixelsCount];
- }
-
- public long[, , ,] Weights { get; private set; }
- public long[, , ,] MomentsAlpha { get; private set; }
- public long[, , ,] MomentsRed { get; private set; }
- public long[, , ,] MomentsGreen { get; private set; }
- public long[, , ,] MomentsBlue { get; private set; }
- public float[, , ,] Moments { get; private set; }
-
- public IList<int> QuantizedPixels { get { return quantizedPixels; } }
- public IList<Pixel> Pixels { get { return pixels; } }
-
- public int PixelsCount { get { return pixels.Length; } }
- public void AddPixel(Pixel pixel, int quantizedPixel)
- {
- pixels[pixelFillingCounter] = pixel;
- quantizedPixels[pixelFillingCounter++] = quantizedPixel;
- }
-
- private Pixel[] pixels;
- private int[] quantizedPixels;
- private int pixelsCount;
- private int pixelFillingCounter;
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/CubeCut.cs b/nQuant.Core/CubeCut.cs
deleted file mode 100644
index 5055e5a6..00000000
--- a/nQuant.Core/CubeCut.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace nQuant
-{
- internal struct CubeCut
- {
- public readonly byte? Position;
- public readonly float Value;
-
- public CubeCut(byte? cutPoint, float result)
- {
- Position = cutPoint;
- Value = result;
- }
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/IWuQuantizer.cs b/nQuant.Core/IWuQuantizer.cs
deleted file mode 100644
index 0c32aac9..00000000
--- a/nQuant.Core/IWuQuantizer.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System.Drawing;
-
-namespace nQuant
-{
- public interface IWuQuantizer
- {
- Image QuantizeImage(Bitmap image, int alphaThreshold, int alphaFader);
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/Lookup.cs b/nQuant.Core/Lookup.cs
deleted file mode 100644
index 921e6f34..00000000
--- a/nQuant.Core/Lookup.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace nQuant
-{
- public class Lookup
- {
- public int Alpha;
- public int Red;
- public int Green;
- public int Blue;
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/LookupData.cs b/nQuant.Core/LookupData.cs
deleted file mode 100644
index e65291ae..00000000
--- a/nQuant.Core/LookupData.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Collections.Generic;
-
-namespace nQuant
-{
- public class LookupData
- {
- public LookupData(int granularity)
- {
- Lookups = new List<Lookup>();
- Tags = new int[granularity, granularity, granularity, granularity];
- }
-
- public IList<Lookup> Lookups { get; private set; }
- public int[, , ,] Tags { get; private set; }
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/Pixel.cs b/nQuant.Core/Pixel.cs
deleted file mode 100644
index 74976bc9..00000000
--- a/nQuant.Core/Pixel.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-namespace nQuant
-{
- public struct Pixel
- {
- public Pixel(byte alpha, byte red, byte green, byte blue) : this()
- {
- Alpha = alpha;
- Red = red;
- Green = green;
- Blue = blue;
-
- Argb = alpha << 24 | red << 16 | green << 8 | blue;
- }
-
- public byte Alpha;
- public byte Red;
- public byte Green;
- public byte Blue;
- public int Argb;
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/QuantizationException.cs b/nQuant.Core/QuantizationException.cs
deleted file mode 100644
index dadde349..00000000
--- a/nQuant.Core/QuantizationException.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace nQuant
-{
- public class QuantizationException : ApplicationException
- {
- public QuantizationException(string message) : base(message)
- {
-
- }
- }
-}
diff --git a/nQuant.Core/QuantizedPalette.cs b/nQuant.Core/QuantizedPalette.cs
deleted file mode 100644
index afca8191..00000000
--- a/nQuant.Core/QuantizedPalette.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Collections.Generic;
-using System.Drawing;
-
-namespace nQuant
-{
- public class QuantizedPalette
- {
- public QuantizedPalette(int size)
- {
- Colors = new List<Color>();
- PixelIndex = new int[size];
- }
- public IList<Color> Colors { get; private set; }
- public int[] PixelIndex { get; private set; }
- }
-} \ No newline at end of file
diff --git a/nQuant.Core/WuQuantizer.cs b/nQuant.Core/WuQuantizer.cs
deleted file mode 100644
index 52860c3f..00000000
--- a/nQuant.Core/WuQuantizer.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-
-namespace nQuant
-{
- public class WuQuantizer : WuQuantizerBase, IWuQuantizer
- {
- protected override QuantizedPalette GetQuantizedPalette(int colorCount, ColorData data, IEnumerable<Box> cubes, int alphaThreshold)
- {
- int imageSize = data.PixelsCount;
- LookupData lookups = BuildLookups(cubes, data);
-
- IList<int> quantizedPixels = data.QuantizedPixels;
- for (var index = 0; index < imageSize; ++index)
- {
- var indexParts = BitConverter.GetBytes(quantizedPixels[index]);
- quantizedPixels[index] = lookups.Tags[indexParts[Alpha], indexParts[Red], indexParts[Green], indexParts[Blue]];
- }
-
- var alphas = new int[colorCount + 1];
- var reds = new int[colorCount + 1];
- var greens = new int[colorCount + 1];
- var blues = new int[colorCount + 1];
- var sums = new int[colorCount + 1];
- var palette = new QuantizedPalette(imageSize);
-
- IList<Pixel> pixels = data.Pixels;
- int pixelsCount = data.PixelsCount;
- IList<Lookup> lookupsList = lookups.Lookups;
- int lookupsCount = lookupsList.Count;
-
- Dictionary<int, int> cachedMaches = new Dictionary<int, int>();
-
- for (int pixelIndex = 0; pixelIndex < pixelsCount; pixelIndex++)
- {
- Pixel pixel = pixels[pixelIndex];
- palette.PixelIndex[pixelIndex] = -1;
- if (pixel.Alpha <= alphaThreshold)
- continue;
-
- int bestMatch;
- int argb = pixel.Argb;
-
- if (!cachedMaches.TryGetValue(argb, out bestMatch))
- {
- int match = quantizedPixels[pixelIndex];
- bestMatch = match;
- int bestDistance = int.MaxValue;
-
- for (int lookupIndex = 0; lookupIndex < lookupsCount; lookupIndex++)
- {
- Lookup lookup = lookupsList[lookupIndex];
- var deltaAlpha = pixel.Alpha - lookup.Alpha;
- var deltaRed = pixel.Red - lookup.Red;
- var deltaGreen = pixel.Green - lookup.Green;
- var deltaBlue = pixel.Blue - lookup.Blue;
-
- int distance = deltaAlpha*deltaAlpha + deltaRed*deltaRed + deltaGreen*deltaGreen + deltaBlue*deltaBlue;
-
- if (distance >= bestDistance)
- continue;
-
- bestDistance = distance;
- bestMatch = lookupIndex;
- }
-
- cachedMaches[argb] = bestMatch;
- }
-
- alphas[bestMatch] += pixel.Alpha;
- reds[bestMatch] += pixel.Red;
- greens[bestMatch] += pixel.Green;
- blues[bestMatch] += pixel.Blue;
- sums[bestMatch]++;
-
- palette.PixelIndex[pixelIndex] = bestMatch;
- }
-
- for (var paletteIndex = 0; paletteIndex < colorCount; paletteIndex++)
- {
- if (sums[paletteIndex] > 0)
- {
- alphas[paletteIndex] /= sums[paletteIndex];
- reds[paletteIndex] /= sums[paletteIndex];
- greens[paletteIndex] /= sums[paletteIndex];
- blues[paletteIndex] /= sums[paletteIndex];
- }
-
- var color = Color.FromArgb(alphas[paletteIndex], reds[paletteIndex], greens[paletteIndex], blues[paletteIndex]);
- palette.Colors.Add(color);
- }
-
- palette.Colors.Add(Color.FromArgb(0, 0, 0, 0));
-
- return palette;
- }
- }
-}
diff --git a/nQuant.Core/WuQuantizerBase.cs b/nQuant.Core/WuQuantizerBase.cs
deleted file mode 100644
index fc73e5d4..00000000
--- a/nQuant.Core/WuQuantizerBase.cs
+++ /dev/null
@@ -1,573 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.Linq;
-using System.Runtime.InteropServices;
-
-namespace nQuant
-{
- public abstract class WuQuantizerBase
- {
- private const int MaxColor = 256;
- protected const int Alpha = 3;
- protected const int Red = 2;
- protected const int Green = 1;
- protected const int Blue = 0;
- private const int SideSize = 33;
- private const int MaxSideIndex = 32;
-
- public Image QuantizeImage(Bitmap image)
- {
- return QuantizeImage(image, 10, 70);
- }
-
- public Image QuantizeImage(Bitmap image, int alphaThreshold, int alphaFader)
- {
- var colorCount = MaxColor;
- var data = BuildHistogram(image, alphaThreshold, alphaFader);
- data = CalculateMoments(data);
- var cubes = SplitData(ref colorCount, data);
- var palette = GetQuantizedPalette(colorCount, data, cubes, alphaThreshold);
- return ProcessImagePixels(image, palette);
- }
-
- private static Bitmap ProcessImagePixels(Image sourceImage, QuantizedPalette palette)
- {
- var result = new Bitmap(sourceImage.Width, sourceImage.Height, PixelFormat.Format8bppIndexed);
- var newPalette = result.Palette;
- for (var index = 0; index < palette.Colors.Count; index++)
- newPalette.Entries[index] = palette.Colors[index];
- result.Palette = newPalette;
-
- BitmapData targetData = null;
- try
- {
- targetData = result.LockBits(Rectangle.FromLTRB(0, 0, result.Width, result.Height), ImageLockMode.WriteOnly, result.PixelFormat);
- const byte targetBitDepth = 8;
- var targetByteLength = targetData.Stride < 0 ? -targetData.Stride : targetData.Stride;
- var targetByteCount = Math.Max(1, targetBitDepth >> 3);
- var targetSize = targetByteLength * result.Height;
- var targetOffset = 0;
- var targetBuffer = new byte[targetSize];
- var targetValue = new byte[targetByteCount];
- var pixelIndex = 0;
-
- for (var y = 0; y < result.Height; y++)
- {
- var targetIndex = 0;
- for (var x = 0; x < result.Width; x++)
- {
- var targetIndexOffset = targetIndex >> 3;
- targetValue[0] = (byte)(palette.PixelIndex[pixelIndex] == -1 ? palette.Colors.Count - 1 : palette.PixelIndex[pixelIndex]);
- pixelIndex++;
-
- for (var valueIndex = 0; valueIndex < targetByteCount; valueIndex++)
- targetBuffer[targetOffset + valueIndex + targetIndexOffset] = targetValue[valueIndex];
-
- targetIndex += targetBitDepth;
- }
-
- targetOffset += targetByteLength;
- }
-
- Marshal.Copy(targetBuffer, 0, targetData.Scan0, targetSize);
- }
- finally
- {
- if(targetData != null)
- result.UnlockBits(targetData);
- }
-
- return result;
- }
-
- private static ColorData BuildHistogram(Bitmap sourceImage, int alphaThreshold, int alphaFader)
- {
- int bitmapWidth = sourceImage.Width;
- int bitmapHeight = sourceImage.Height;
-
- BitmapData data = sourceImage.LockBits(
- Rectangle.FromLTRB(0, 0, bitmapWidth, bitmapHeight),
- ImageLockMode.ReadOnly,
- sourceImage.PixelFormat);
- ColorData colorData = new ColorData(MaxSideIndex, bitmapWidth, bitmapHeight);
-
- try
- {
- var bitDepth = Image.GetPixelFormatSize(sourceImage.PixelFormat);
- if (bitDepth != 32)
- throw new QuantizationException(string.Format("Thie image you are attempting to quantize does not contain a 32 bit ARGB palette. This image has a bit depth of {0} with {1} colors.", bitDepth, sourceImage.Palette.Entries.Length));
- var byteLength = data.Stride < 0 ? -data.Stride : data.Stride;
- var byteCount = Math.Max(1, bitDepth >> 3);
- var offset = 0;
- var buffer = new Byte[byteLength * sourceImage.Height];
- var value = new Byte[byteCount];
-
- Marshal.Copy(data.Scan0, buffer, 0, buffer.Length);
-
- for (int y = 0; y < bitmapHeight; y++)
- {
- var index = 0;
- for (int x = 0; x < bitmapWidth; x++)
- {
- var indexOffset = index >> 3;
-
- for (var valueIndex = 0; valueIndex < byteCount; valueIndex++)
- value[valueIndex] = buffer[offset + valueIndex + indexOffset];
-
- var indexAlpha = (byte)((value[Alpha] >> 3) + 1);
- var indexRed = (byte)((value[Red] >> 3) + 1);
- var indexGreen = (byte)((value[Green] >> 3) + 1);
- var indexBlue = (byte)((value[Blue] >> 3) + 1);
-
- if (value[Alpha] > alphaThreshold)
- {
- if (value[Alpha] < 255)
- {
- var alpha = value[Alpha] + (value[Alpha] % alphaFader);
- value[Alpha] = (byte)(alpha > 255 ? 255 : alpha);
- indexAlpha = (byte)((value[Alpha] >> 3) + 1);
- }
-
- colorData.Weights[indexAlpha, indexRed, indexGreen, indexBlue]++;
- colorData.MomentsRed[indexAlpha, indexRed, indexGreen, indexBlue] += value[Red];
- colorData.MomentsGreen[indexAlpha, indexRed, indexGreen, indexBlue] += value[Green];
- colorData.MomentsBlue[indexAlpha, indexRed, indexGreen, indexBlue] += value[Blue];
- colorData.MomentsAlpha[indexAlpha, indexRed, indexGreen, indexBlue] += value[Alpha];
- colorData.Moments[indexAlpha, indexRed, indexGreen, indexBlue] += (value[Alpha]*value[Alpha]) +
- (value[Red]*value[Red]) +
- (value[Green]*value[Green]) +
- (value[Blue]*value[Blue]);
- }
-
- colorData.AddPixel(
- new Pixel(value[Alpha], value[Red], value[Green], value[Blue]),
- BitConverter.ToInt32 (new[] { indexAlpha, indexRed, indexGreen, indexBlue }, 0));
- index += bitDepth;
- }
-
- offset += byteLength;
- }
- }
- finally
- {
- sourceImage.UnlockBits(data);
- }
- return colorData;
- }
-
- private static ColorData CalculateMoments(ColorData data)
- {
- for (var alphaIndex = 1; alphaIndex <= MaxSideIndex; ++alphaIndex)
- {
- var xarea = new long[SideSize, SideSize, SideSize];
- var xareaAlpha = new long[SideSize, SideSize, SideSize];
- var xareaRed = new long[SideSize, SideSize, SideSize];
- var xareaGreen = new long[SideSize, SideSize, SideSize];
- var xareaBlue = new long[SideSize, SideSize, SideSize];
- var xarea2 = new float[SideSize, SideSize, SideSize];
- for (var redIndex = 1; redIndex <= MaxSideIndex; ++redIndex)
- {
- var area = new long[SideSize];
- var areaAlpha = new long[SideSize];
- var areaRed = new long[SideSize];
- var areaGreen = new long[SideSize];
- var areaBlue = new long[SideSize];
- var area2 = new float[SideSize];
- for (var greenIndex = 1; greenIndex <= MaxSideIndex; ++greenIndex)
- {
- long line = 0;
- long lineAlpha = 0;
- long lineRed = 0;
- long lineGreen = 0;
- long lineBlue = 0;
- var line2 = 0.0f;
- for (var blueIndex = 1; blueIndex <= MaxSideIndex; ++blueIndex)
- {
- line += data.Weights[alphaIndex, redIndex, greenIndex, blueIndex];
- lineAlpha += data.MomentsAlpha[alphaIndex, redIndex, greenIndex, blueIndex];
- lineRed += data.MomentsRed[alphaIndex, redIndex, greenIndex, blueIndex];
- lineGreen += data.MomentsGreen[alphaIndex, redIndex, greenIndex, blueIndex];
- lineBlue += data.MomentsBlue[alphaIndex, redIndex, greenIndex, blueIndex];
- line2 += data.Moments[alphaIndex, redIndex, greenIndex, blueIndex];
-
- area[blueIndex] += line;
- areaAlpha[blueIndex] += lineAlpha;
- areaRed[blueIndex] += lineRed;
- areaGreen[blueIndex] += lineGreen;
- areaBlue[blueIndex] += lineBlue;
- area2[blueIndex] += line2;
-
- xarea[redIndex, greenIndex, blueIndex] = xarea[redIndex - 1, greenIndex, blueIndex] + area[blueIndex];
- xareaAlpha[redIndex, greenIndex, blueIndex] = xareaAlpha[redIndex - 1, greenIndex, blueIndex] + areaAlpha[blueIndex];
- xareaRed[redIndex, greenIndex, blueIndex] = xareaRed[redIndex - 1, greenIndex, blueIndex] + areaRed[blueIndex];
- xareaGreen[redIndex, greenIndex, blueIndex] = xareaGreen[redIndex - 1, greenIndex, blueIndex] + areaGreen[blueIndex];
- xareaBlue[redIndex, greenIndex, blueIndex] = xareaBlue[redIndex - 1, greenIndex, blueIndex] + areaBlue[blueIndex];
- xarea2[redIndex, greenIndex, blueIndex] = xarea2[redIndex - 1, greenIndex, blueIndex] + area2[blueIndex];
-
- data.Weights[alphaIndex, redIndex, greenIndex, blueIndex] = data.Weights[alphaIndex - 1, redIndex, greenIndex, blueIndex] + xarea[redIndex, greenIndex, blueIndex];
- data.MomentsAlpha[alphaIndex, redIndex, greenIndex, blueIndex] = data.MomentsAlpha[alphaIndex - 1, redIndex, greenIndex, blueIndex] + xareaAlpha[redIndex, greenIndex, blueIndex];
- data.MomentsRed[alphaIndex, redIndex, greenIndex, blueIndex] = data.MomentsRed[alphaIndex - 1, redIndex, greenIndex, blueIndex] + xareaRed[redIndex, greenIndex, blueIndex];
- data.MomentsGreen[alphaIndex, redIndex, greenIndex, blueIndex] = data.MomentsGreen[alphaIndex - 1, redIndex, greenIndex, blueIndex] + xareaGreen[redIndex, greenIndex, blueIndex];
- data.MomentsBlue[alphaIndex, redIndex, greenIndex, blueIndex] = data.MomentsBlue[alphaIndex - 1, redIndex, greenIndex, blueIndex] + xareaBlue[redIndex, greenIndex, blueIndex];
- data.Moments[alphaIndex, redIndex, greenIndex, blueIndex] = data.Moments[alphaIndex - 1, redIndex, greenIndex, blueIndex] + xarea2[redIndex, greenIndex, blueIndex];
- }
- }
- }
- }
- return data;
- }
-
- private static long Top(Box cube, int direction, int position, long[,,,] moment)
- {
- switch (direction)
- {
- case Alpha:
- return (moment[position, cube.RedMaximum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[position, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] -
- moment[position, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[position, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum]) -
- (moment[position, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[position, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] -
- moment[position, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[position, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
-
- case Red:
- return (moment[cube.AlphaMaximum, position, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMaximum, position, cube.GreenMinimum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, position, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, position, cube.GreenMinimum, cube.BlueMaximum]) -
- (moment[cube.AlphaMaximum, position, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, position, cube.GreenMinimum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, position, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, position, cube.GreenMinimum, cube.BlueMinimum]);
-
- case Green:
- return (moment[cube.AlphaMaximum, cube.RedMaximum, position, cube.BlueMaximum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, position, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMaximum, position, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, position, cube.BlueMaximum]) -
- (moment[cube.AlphaMaximum, cube.RedMaximum, position, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, position, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMaximum, position, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, position, cube.BlueMinimum]);
-
- case Blue:
- return (moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMaximum, position] -
- moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, position] -
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, position] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, position]) -
- (moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, position] -
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, position] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, position] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, position]);
-
- default:
- return 0;
- }
- }
-
- private static long Bottom(Box cube, int direction, long[,,,] moment)
- {
- switch (direction)
- {
- case Alpha:
- return (-moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum]) -
- (-moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
-
- case Red:
- return (-moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum]) -
- (-moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
-
- case Green:
- return (-moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum]) -
- (-moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
-
- case Blue:
- return (-moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]) -
- (-moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
-
- default:
- return 0;
- }
- }
-
- private static CubeCut Maximize(ColorData data, Box cube, int direction, byte first, byte last, long wholeAlpha, long wholeRed, long wholeGreen, long wholeBlue, long wholeWeight)
- {
- var bottomAlpha = Bottom(cube, direction, data.MomentsAlpha);
- var bottomRed = Bottom(cube, direction, data.MomentsRed);
- var bottomGreen = Bottom(cube, direction, data.MomentsGreen);
- var bottomBlue = Bottom(cube, direction, data.MomentsBlue);
- var bottomWeight = Bottom(cube, direction, data.Weights);
-
- var result = 0.0f;
- byte? cutPoint = null;
-
- for (var position = first; position < last; ++position)
- {
- var halfAlpha = bottomAlpha + Top(cube, direction, position, data.MomentsAlpha);
- var halfRed = bottomRed + Top(cube, direction, position, data.MomentsRed);
- var halfGreen = bottomGreen + Top(cube, direction, position, data.MomentsGreen);
- var halfBlue = bottomBlue + Top(cube, direction, position, data.MomentsBlue);
- var halfWeight = bottomWeight + Top(cube, direction, position, data.Weights);
-
- if (halfWeight == 0) continue;
-
- var halfDistance = halfAlpha * halfAlpha + halfRed * halfRed + halfGreen * halfGreen + halfBlue * halfBlue;
- var temp = halfDistance / halfWeight;
-
- halfAlpha = wholeAlpha - halfAlpha;
- halfRed = wholeRed - halfRed;
- halfGreen = wholeGreen - halfGreen;
- halfBlue = wholeBlue - halfBlue;
- halfWeight = wholeWeight - halfWeight;
-
- if (halfWeight != 0)
- {
- halfDistance = halfAlpha * halfAlpha + halfRed * halfRed + halfGreen * halfGreen + halfBlue * halfBlue;
- temp += halfDistance / halfWeight;
-
- if (temp > result)
- {
- result = temp;
- cutPoint = position;
- }
- }
- }
-
- return new CubeCut(cutPoint, result);
- }
-
- private bool Cut(ColorData data, ref Box first,ref Box second)
- {
- int direction;
- var wholeAlpha = Volume(first, data.MomentsAlpha);
- var wholeRed = Volume(first, data.MomentsRed);
- var wholeGreen = Volume(first, data.MomentsGreen);
- var wholeBlue = Volume(first, data.MomentsBlue);
- var wholeWeight = Volume(first, data.Weights);
-
- var maxAlpha = Maximize(data, first, Alpha, (byte) (first.AlphaMinimum + 1), first.AlphaMaximum, wholeAlpha, wholeRed, wholeGreen, wholeBlue, wholeWeight);
- var maxRed = Maximize(data, first, Red, (byte) (first.RedMinimum + 1), first.RedMaximum, wholeAlpha, wholeRed, wholeGreen, wholeBlue, wholeWeight);
- var maxGreen = Maximize(data, first, Green, (byte) (first.GreenMinimum + 1), first.GreenMaximum, wholeAlpha, wholeRed, wholeGreen, wholeBlue, wholeWeight);
- var maxBlue = Maximize(data, first, Blue, (byte) (first.BlueMinimum + 1), first.BlueMaximum, wholeAlpha, wholeRed, wholeGreen, wholeBlue, wholeWeight);
-
- if ((maxAlpha.Value >= maxRed.Value) && (maxAlpha.Value >= maxGreen.Value) && (maxAlpha.Value >= maxBlue.Value))
- {
- direction = Alpha;
- if (maxAlpha.Position == null) return false;
- }
- else if ((maxRed.Value >= maxAlpha.Value) && (maxRed.Value >= maxGreen.Value) && (maxRed.Value >= maxBlue.Value))
- direction = Red;
- else
- {
- if ((maxGreen.Value >= maxAlpha.Value) && (maxGreen.Value >= maxRed.Value) && (maxGreen.Value >= maxBlue.Value))
- direction = Green;
- else
- direction = Blue;
- }
-
- second.AlphaMaximum = first.AlphaMaximum;
- second.RedMaximum = first.RedMaximum;
- second.GreenMaximum = first.GreenMaximum;
- second.BlueMaximum = first.BlueMaximum;
-
- switch (direction)
- {
- case Alpha:
- second.AlphaMinimum = first.AlphaMaximum = (byte) maxAlpha.Position;
- second.RedMinimum = first.RedMinimum;
- second.GreenMinimum = first.GreenMinimum;
- second.BlueMinimum = first.BlueMinimum;
- break;
-
- case Red:
- second.RedMinimum = first.RedMaximum = (byte) maxRed.Position;
- second.AlphaMinimum = first.AlphaMinimum;
- second.GreenMinimum = first.GreenMinimum;
- second.BlueMinimum = first.BlueMinimum;
- break;
-
- case Green:
- second.GreenMinimum = first.GreenMaximum = (byte) maxGreen.Position;
- second.AlphaMinimum = first.AlphaMinimum;
- second.RedMinimum = first.RedMinimum;
- second.BlueMinimum = first.BlueMinimum;
- break;
-
- case Blue:
- second.BlueMinimum = first.BlueMaximum = (byte) maxBlue.Position;
- second.AlphaMinimum = first.AlphaMinimum;
- second.RedMinimum = first.RedMinimum;
- second.GreenMinimum = first.GreenMinimum;
- break;
- }
-
- first.Size = (first.AlphaMaximum - first.AlphaMinimum) * (first.RedMaximum - first.RedMinimum) * (first.GreenMaximum - first.GreenMinimum) * (first.BlueMaximum - first.BlueMinimum);
- second.Size = (second.AlphaMaximum - second.AlphaMinimum) * (second.RedMaximum - second.RedMinimum) * (second.GreenMaximum - second.GreenMinimum) * (second.BlueMaximum - second.BlueMinimum);
-
- return true;
- }
-
- private static float CalculateVariance(ColorData data, Box cube)
- {
- float volumeAlpha = Volume(cube, data.MomentsAlpha);
- float volumeRed = Volume(cube, data.MomentsRed);
- float volumeGreen = Volume(cube, data.MomentsGreen);
- float volumeBlue = Volume(cube, data.MomentsBlue);
- float volumeMoment = VolumeFloat(cube, data.Moments);
- float volumeWeight = Volume(cube, data.Weights);
-
- float distance = volumeAlpha * volumeAlpha + volumeRed * volumeRed + volumeGreen * volumeGreen + volumeBlue * volumeBlue;
-
- var result = volumeMoment - distance / volumeWeight;
- return double.IsNaN(result) ? 0.0f : result;
- }
-
- private static long Volume(Box cube, long[,,,] moment)
- {
- return (moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum]) -
-
- (moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
- }
-
- private static float VolumeFloat(Box cube, float[,,,] moment)
- {
- return (moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMaximum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMaximum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMaximum]) -
-
- (moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMaximum, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMaximum, cube.GreenMinimum, cube.BlueMinimum] -
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMaximum, cube.BlueMinimum] +
- moment[cube.AlphaMaximum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum] -
- moment[cube.AlphaMinimum, cube.RedMinimum, cube.GreenMinimum, cube.BlueMinimum]);
- }
-
- private IEnumerable<Box> SplitData(ref int colorCount, ColorData data)
- {
- --colorCount;
- var next = 0;
- var volumeVariance = new float[MaxColor];
- var cubes = new Box[MaxColor];
- cubes[0].AlphaMaximum = MaxSideIndex;
- cubes[0].RedMaximum = MaxSideIndex;
- cubes[0].GreenMaximum = MaxSideIndex;
- cubes[0].BlueMaximum = MaxSideIndex;
- for (var cubeIndex = 1; cubeIndex < colorCount; ++cubeIndex)
- {
- if (Cut(data, ref cubes[next], ref cubes[cubeIndex]))
- {
- volumeVariance[next] = cubes[next].Size > 1 ? CalculateVariance(data, cubes[next]) : 0.0f;
- volumeVariance[cubeIndex] = cubes[cubeIndex].Size > 1 ? CalculateVariance(data, cubes[cubeIndex]) : 0.0f;
- }
- else
- {
- volumeVariance[next] = 0.0f;
- cubeIndex--;
- }
-
- next = 0;
- var temp = volumeVariance[0];
-
- for (var index = 1; index <= cubeIndex; ++index)
- {
- if (volumeVariance[index] <= temp) continue;
- temp = volumeVariance[index];
- next = index;
- }
-
- if (temp > 0.0) continue;
- colorCount = cubeIndex + 1;
- break;
- }
- return cubes.Take(colorCount).ToList();
- }
-
- protected LookupData BuildLookups(IEnumerable<Box> cubes, ColorData data)
- {
- LookupData lookups = new LookupData(SideSize);
- int lookupsCount = lookups.Lookups.Count;
-
- foreach (var cube in cubes)
- {
- for (var alphaIndex = (byte)(cube.AlphaMinimum + 1); alphaIndex <= cube.AlphaMaximum; ++alphaIndex)
- {
- for (var redIndex = (byte)(cube.RedMinimum + 1); redIndex <= cube.RedMaximum; ++redIndex)
- {
- for (var greenIndex = (byte)(cube.GreenMinimum + 1); greenIndex <= cube.GreenMaximum; ++greenIndex)
- {
- for (var blueIndex = (byte)(cube.BlueMinimum + 1); blueIndex <= cube.BlueMaximum; ++blueIndex)
- {
- lookups.Tags[alphaIndex, redIndex, greenIndex, blueIndex] = lookupsCount;
- }
- }
- }
- }
-
- var weight = Volume(cube, data.Weights);
-
- if (weight <= 0) continue;
-
- var lookup = new Lookup
- {
- Alpha = (int) (Volume(cube, data.MomentsAlpha)/weight),
- Red = (int) (Volume(cube, data.MomentsRed)/weight),
- Green = (int) (Volume(cube, data.MomentsGreen)/weight),
- Blue = (int) (Volume(cube, data.MomentsBlue)/weight)
- };
- lookups.Lookups.Add(lookup);
- }
- return lookups;
- }
-
- protected abstract QuantizedPalette GetQuantizedPalette(int colorCount, ColorData data, IEnumerable<Box> cubes, int alphaThreshold);
- }
-} \ No newline at end of file