diff --git a/BizHawk.Client.Common/BinarySaveStates.cs b/BizHawk.Client.Common/BinarySaveStates.cs
index 0432509bf8..0081a7ba94 100644
--- a/BizHawk.Client.Common/BinarySaveStates.cs
+++ b/BizHawk.Client.Common/BinarySaveStates.cs
@@ -6,7 +6,6 @@ using ICSharpCode.SharpZipLib.Zip;
namespace BizHawk.Client.Common
{
-
public class BinaryStateFileNames
{
/*
@@ -31,10 +30,12 @@ namespace BizHawk.Client.Common
LumpNames[BinaryStateLump.Movieheader] = "Header";
}
- public static string Get(BinaryStateLump Lump) { return LumpNames[Lump]; }
+ public static string Get(BinaryStateLump lump)
+ {
+ return LumpNames[lump];
+ }
}
-
public enum BinaryStateLump
{
Versiontag,
@@ -43,14 +44,13 @@ namespace BizHawk.Client.Common
Input,
CorestateText,
Movieheader
- };
+ }
///
/// more accurately should be called ZipStateLoader, as it supports both text and binary core data
///
public class BinaryStateLoader : IDisposable
{
-
private bool _isDisposed;
public void Dispose()
{
@@ -66,13 +66,13 @@ namespace BizHawk.Client.Common
if (disposing)
{
- zip.Close();
+ _zip.Close();
}
}
}
- private ZipFile zip;
- private Version ver;
+ private ZipFile _zip;
+ private Version _ver;
private BinaryStateLoader()
{
@@ -83,28 +83,29 @@ namespace BizHawk.Client.Common
// the "BizState 1.0" tag contains an integer in it describing the sub version.
if (s.Length == 0)
{
- ver = new Version(1, 0, 0); // except for the first release, which doesn't
+ _ver = new Version(1, 0, 0); // except for the first release, which doesn't
}
else
{
var sr = new StreamReader(s);
- ver = new Version(1, 0, int.Parse(sr.ReadLine()));
+ _ver = new Version(1, 0, int.Parse(sr.ReadLine()));
}
- Console.WriteLine("Read a zipstate of version {0}", ver.ToString());
+
+ Console.WriteLine("Read a zipstate of version {0}", _ver);
}
- public static BinaryStateLoader LoadAndDetect(string Filename)
+ public static BinaryStateLoader LoadAndDetect(string filename)
{
var ret = new BinaryStateLoader();
// PORTABLE TODO - SKIP THIS.. FOR NOW
// check whether its an archive before we try opening it
- int offset;
- bool isExecutable;
bool isArchive;
using (var archiveChecker = new SevenZipSharpArchiveHandler())
{
- isArchive = archiveChecker.CheckSignature(Filename, out offset, out isExecutable);
+ int offset;
+ bool isExecutable;
+ isArchive = archiveChecker.CheckSignature(filename, out offset, out isExecutable);
}
if (!isArchive)
@@ -114,10 +115,10 @@ namespace BizHawk.Client.Common
try
{
- ret.zip = new ZipFile(Filename);
+ ret._zip = new ZipFile(filename);
if (!ret.GetLump(BinaryStateLump.Versiontag, false, ret.ReadVersion))
{
- ret.zip.Close();
+ ret._zip.Close();
return null;
}
@@ -132,20 +133,21 @@ namespace BizHawk.Client.Common
///
/// Gets a lump
///
- /// lump to retriever
+ /// lump to retriever
/// true to throw exception on failure
/// function to call with the desired stream
/// true if callback was called and stream was loaded
- public bool GetLump(BinaryStateLump Lump, bool abort, Action callback)
+ public bool GetLump(BinaryStateLump lump, bool abort, Action callback)
{
- string Name = BinaryStateFileNames.Get(Lump);
- var e = zip.GetEntry(Name);
+ string Name = BinaryStateFileNames.Get(lump);
+ var e = _zip.GetEntry(Name);
if (e != null)
{
- using (var zs = zip.GetInputStream(e))
+ using (var zs = _zip.GetInputStream(e))
{
callback(zs);
}
+
return true;
}
else if (abort)
@@ -158,20 +160,20 @@ namespace BizHawk.Client.Common
}
}
- public bool GetLump(BinaryStateLump Lump, bool abort, Action callback)
+ public bool GetLump(BinaryStateLump lump, bool abort, Action callback)
{
- return GetLump(Lump, abort, delegate(Stream s)
+ return GetLump(lump, abort, delegate(Stream s)
{
- BinaryReader br = new BinaryReader(s);
+ var br = new BinaryReader(s);
callback(br);
});
}
- public bool GetLump(BinaryStateLump Lump, bool abort, Action callback)
+ public bool GetLump(BinaryStateLump lump, bool abort, Action callback)
{
- return GetLump(Lump, abort, delegate(Stream s)
+ return GetLump(lump, abort, delegate(Stream s)
{
- TextReader tr = new StreamReader(s);
+ var tr = new StreamReader(s);
callback(tr);
});
}
@@ -182,15 +184,19 @@ namespace BizHawk.Client.Common
public void GetCoreState(Action callbackBinary, Action callbackText)
{
if (!GetLump(BinaryStateLump.Corestate, false, callbackBinary)
- && !GetLump(BinaryStateLump.CorestateText, false, callbackText))
+ && !GetLump(BinaryStateLump.CorestateText, false, callbackText))
+ {
throw new Exception("Couldn't find Binary or Text savestate");
+ }
}
public void GetCoreState(Action callbackBinary, Action callbackText)
{
if (!GetLump(BinaryStateLump.Corestate, false, callbackBinary)
- && !GetLump(BinaryStateLump.CorestateText, false, callbackText))
+ && !GetLump(BinaryStateLump.CorestateText, false, callbackText))
+ {
throw new Exception("Couldn't find Binary or Text savestate");
+ }
}
/*
@@ -215,7 +221,7 @@ namespace BizHawk.Client.Common
{
private readonly ZipOutputStream zip;
- private void WriteVersion(Stream s)
+ private static void WriteVersion(Stream s)
{
var sw = new StreamWriter(s);
sw.WriteLine("1"); // version 1.0.1
@@ -238,18 +244,18 @@ namespace BizHawk.Client.Common
PutLump(BinaryStateLump.Versiontag, WriteVersion);
}
- public void PutLump(BinaryStateLump Lump, Action callback)
+ public void PutLump(BinaryStateLump lump, Action callback)
{
- string Name = BinaryStateFileNames.Get(Lump);
+ string Name = BinaryStateFileNames.Get(lump);
var e = new ZipEntry(Name) {CompressionMethod = CompressionMethod.Stored};
zip.PutNextEntry(e);
callback(zip);
zip.CloseEntry();
}
- public void PutLump(BinaryStateLump Lump, Action callback)
+ public void PutLump(BinaryStateLump lump, Action callback)
{
- PutLump(Lump, delegate(Stream s)
+ PutLump(lump, delegate(Stream s)
{
var bw = new BinaryWriter(s);
callback(bw);
@@ -257,9 +263,9 @@ namespace BizHawk.Client.Common
});
}
- public void PutLump(BinaryStateLump Lump, Action callback)
+ public void PutLump(BinaryStateLump lump, Action callback)
{
- PutLump(Lump, delegate(Stream s)
+ PutLump(lump, delegate(Stream s)
{
TextWriter tw = new StreamWriter(s);
callback(tw);
diff --git a/BizHawk.Client.Common/ControllerBinding.cs b/BizHawk.Client.Common/ControllerBinding.cs
index daa3164356..6a99b55c6e 100644
--- a/BizHawk.Client.Common/ControllerBinding.cs
+++ b/BizHawk.Client.Common/ControllerBinding.cs
@@ -9,23 +9,21 @@ namespace BizHawk.Client.Common
{
public class Controller : IController
{
+ private readonly WorkingDictionary> _bindings = new WorkingDictionary>();
+ private readonly WorkingDictionary _buttons = new WorkingDictionary();
+ private readonly WorkingDictionary _floatButtons = new WorkingDictionary();
+ private readonly Dictionary _floatRanges = new WorkingDictionary();
+ private readonly Dictionary _floatBinds = new Dictionary();
+
private ControllerDefinition _type;
- private readonly WorkingDictionary> bindings = new WorkingDictionary>();
- private readonly WorkingDictionary buttons = new WorkingDictionary();
-
- private readonly WorkingDictionary FloatButtons = new WorkingDictionary();
-
- private readonly Dictionary FloatRanges = new WorkingDictionary();
-
- private readonly Dictionary FloatBinds = new Dictionary();
public Controller(ControllerDefinition definition)
{
_type = definition;
for (int i = 0; i < _type.FloatControls.Count; i++)
{
- FloatButtons[_type.FloatControls[i]] = _type.FloatRanges[i].Mid;
- FloatRanges[_type.FloatControls[i]] = _type.FloatRanges[i];
+ _floatButtons[_type.FloatControls[i]] = _type.FloatRanges[i].Mid;
+ _floatRanges[_type.FloatControls[i]] = _type.FloatRanges[i];
}
}
@@ -36,21 +34,21 @@ namespace BizHawk.Client.Common
public bool this[string button] { get { return IsPressed(button); } }
public bool IsPressed(string button)
{
- return buttons[button];
+ return _buttons[button];
}
- public float GetFloat(string name) { return FloatButtons[name]; }
+ public float GetFloat(string name) { return _floatButtons[name]; }
// Looks for bindings which are activated by the supplied physical button.
public List SearchBindings(string button)
{
- return (from kvp in bindings from bound_button in kvp.Value where bound_button == button select kvp.Key).ToList();
+ return (from kvp in _bindings from bound_button in kvp.Value where bound_button == button select kvp.Key).ToList();
}
// Searches bindings for the controller and returns true if this binding is mapped somewhere in this controller
public bool HasBinding(string button)
{
- return bindings.SelectMany(kvp => kvp.Value).Any(bound_button => bound_button == button);
+ return _bindings.SelectMany(kvp => kvp.Value).Any(boundButton => boundButton == button);
}
///
@@ -59,28 +57,28 @@ namespace BizHawk.Client.Common
///
public void LatchFromPhysical(IController controller)
{
- buttons.Clear();
+ _buttons.Clear();
- foreach (var kvp in bindings)
+ foreach (var kvp in _bindings)
{
- buttons[kvp.Key] = false;
+ _buttons[kvp.Key] = false;
foreach (var bound_button in kvp.Value)
{
if (controller[bound_button])
{
- buttons[kvp.Key] = true;
+ _buttons[kvp.Key] = true;
}
}
}
- foreach (var kvp in FloatBinds)
+ foreach (var kvp in _floatBinds)
{
- float input = controller.GetFloat(kvp.Value.Value);
+ var input = controller.GetFloat(kvp.Value.Value);
string outkey = kvp.Key;
float multiplier = kvp.Value.Mult;
float deadzone = kvp.Value.Deadzone;
ControllerDefinition.FloatRange range;
- if (FloatRanges.TryGetValue(outkey, out range))
+ if (_floatRanges.TryGetValue(outkey, out range))
{
// input range is assumed to be -10000,0,10000
@@ -89,20 +87,30 @@ namespace BizHawk.Client.Common
float absinput = Math.Abs(input);
float zeropoint = deadzone * 10000.0f;
if (absinput < zeropoint)
+ {
input = 0.0f;
+ }
else
{
absinput -= zeropoint;
absinput *= 10000.0f;
- absinput /= (10000.0f - zeropoint);
+ absinput /= 10000.0f - zeropoint;
input = absinput * Math.Sign(input);
}
}
- float output = (input * multiplier + 10000.0f) * (range.Max - range.Min) / 20000.0f + range.Min;
- if (output < range.Min) output = range.Min;
- if (output > range.Max) output = range.Max;
- FloatButtons[outkey] = output;
+ var output = (input * multiplier + 10000.0f) * (range.Max - range.Min) / 20000.0f + range.Min;
+ if (output < range.Min)
+ {
+ output = range.Min;
+ }
+
+ if (output > range.Max)
+ {
+ output = range.Max;
+ }
+
+ _floatButtons[outkey] = output;
}
}
}
@@ -120,7 +128,7 @@ namespace BizHawk.Client.Common
{
if (controller.IsPressed(button))
{
- buttons[button] = true;
+ _buttons[button] = true;
}
}
}
@@ -128,7 +136,7 @@ namespace BizHawk.Client.Common
public void BindButton(string button, string control)
{
- bindings[button].Add(control);
+ _bindings[button].Add(control);
}
public void BindMulti(string button, string controlString)
@@ -141,13 +149,13 @@ namespace BizHawk.Client.Common
var controlbindings = controlString.Split(',');
foreach (var control in controlbindings)
{
- bindings[button].Add(control.Trim());
+ _bindings[button].Add(control.Trim());
}
}
public void BindFloat(string button, Config.AnalogBind bind)
{
- FloatBinds[button] = bind;
+ _floatBinds[button] = bind;
}
///
@@ -155,27 +163,28 @@ namespace BizHawk.Client.Common
///
public List> MappingList()
{
- return (from key in bindings from binding in key.Value select new KeyValuePair(binding, key.Key)).ToList();
+ return (from key in _bindings from binding in key.Value select new KeyValuePair(binding, key.Key)).ToList();
}
public List PressedButtons
{
get
{
- return (from button in buttons where button.Value select button.Key).ToList();
+ return (from button in _buttons where button.Value select button.Key).ToList();
}
}
}
public class AutofireController : IController
{
- private readonly ControllerDefinition type;
- private readonly WorkingDictionary> bindings = new WorkingDictionary>();
- private readonly WorkingDictionary buttons = new WorkingDictionary();
- public WorkingDictionary buttonStarts = new WorkingDictionary();
+ private readonly ControllerDefinition _type;
+ private readonly WorkingDictionary> _bindings = new WorkingDictionary>();
+ private readonly WorkingDictionary _buttons = new WorkingDictionary();
+ private readonly WorkingDictionary _buttonStarts = new WorkingDictionary();
- private bool autofire = true;
- public bool Autofire { get { return false; } set { autofire = value; } }
+ private bool _autofire = true;
+
+ public bool Autofire { get { return false; } set { _autofire = value; } }
public int On { get; set; }
public int Off { get; set; }
@@ -183,28 +192,21 @@ namespace BizHawk.Client.Common
{
On = Global.Config.AutofireOn < 1 ? 0 : Global.Config.AutofireOn;
Off = Global.Config.AutofireOff < 1 ? 0 : Global.Config.AutofireOff;
- type = definition;
+ _type = definition;
}
- public ControllerDefinition Type { get { return type; } }
+ public ControllerDefinition Type { get { return _type; } }
public bool this[string button] { get { return IsPressed(button); } }
public bool IsPressed(string button)
{
- if (autofire)
+ if (_autofire)
{
- int a = (Global.Emulator.Frame - buttonStarts[button])%(On + Off);
- if (a < On)
- {
- return buttons[button];
- }
- else
- {
- return false;
- }
+ var a = (Global.Emulator.Frame - _buttonStarts[button]) % (On + Off);
+ return a < On && _buttons[button];
}
else
{
- return buttons[button];
+ return _buttons[button];
}
}
@@ -213,7 +215,7 @@ namespace BizHawk.Client.Common
// look for bindings which are activated by the supplied physical button.
public List SearchBindings(string button)
{
- return (from kvp in bindings from bound_button in kvp.Value where bound_button == button select kvp.Key).ToList();
+ return (from kvp in _bindings from bound_button in kvp.Value where bound_button == button select kvp.Key).ToList();
}
///
@@ -222,26 +224,26 @@ namespace BizHawk.Client.Common
///
public void LatchFromPhysical(IController controller)
{
- foreach (var kvp in bindings)
+ foreach (var kvp in _bindings)
{
foreach (var bound_button in kvp.Value)
{
- if (buttons[kvp.Key] == false && controller[bound_button])
+ if (_buttons[kvp.Key] == false && controller[bound_button])
{
- buttonStarts[kvp.Key] = Global.Emulator.Frame;
+ _buttonStarts[kvp.Key] = Global.Emulator.Frame;
}
}
}
- buttons.Clear();
- foreach (var kvp in bindings)
+ _buttons.Clear();
+ foreach (var kvp in _bindings)
{
- buttons[kvp.Key] = false;
+ _buttons[kvp.Key] = false;
foreach (var bound_button in kvp.Value)
{
if (controller[bound_button])
{
- buttons[kvp.Key] = true;
+ _buttons[kvp.Key] = true;
}
}
}
@@ -252,16 +254,16 @@ namespace BizHawk.Client.Common
///
public void OR_FromLogical(IController controller)
{
- foreach (var button in type.BoolButtons.Where(controller.IsPressed))
+ foreach (var button in _type.BoolButtons.Where(controller.IsPressed))
{
- buttons[button] = true;
+ _buttons[button] = true;
Console.WriteLine(button);
}
}
public void BindButton(string button, string control)
{
- bindings[button].Add(control);
+ _bindings[button].Add(control);
}
public void BindMulti(string button, string controlString)
@@ -271,16 +273,16 @@ namespace BizHawk.Client.Common
var controlbindings = controlString.Split(',');
foreach (var control in controlbindings)
{
- bindings[button].Add(control.Trim());
+ _bindings[button].Add(control.Trim());
}
}
}
public void IncrementStarts()
{
- foreach (var key in buttonStarts.Keys.ToArray())
+ foreach (var key in _buttonStarts.Keys.ToArray())
{
- buttonStarts[key]++;
+ _buttonStarts[key]++;
}
}
@@ -288,7 +290,7 @@ namespace BizHawk.Client.Common
{
get
{
- return (from button in buttons where button.Value select button.Key).ToList();
+ return (from button in _buttons where button.Value select button.Key).ToList();
}
}
}
diff --git a/BizHawk.Client.Common/CoreFileProvider.cs b/BizHawk.Client.Common/CoreFileProvider.cs
index 0b763f01ed..e03e559e71 100644
--- a/BizHawk.Client.Common/CoreFileProvider.cs
+++ b/BizHawk.Client.Common/CoreFileProvider.cs
@@ -7,14 +7,14 @@ namespace BizHawk.Client.Common
{
public class CoreFileProvider : ICoreFileProvider
{
- public string SubfileDirectory;
- public FirmwareManager FirmwareManager;
+ public string SubfileDirectory { get; set; }
+ public FirmwareManager FirmwareManager { get; set; }
- Action ShowWarning;
+ private readonly Action _showWarning;
public CoreFileProvider(Action showWarning)
{
- ShowWarning = showWarning;
+ _showWarning = showWarning;
}
public Stream OpenFirmware(string sysId, string key)
@@ -40,11 +40,11 @@ namespace BizHawk.Client.Common
#region EmuLoadHelper api
- void FirmwareWarn(string sysID, string firmwareID, bool required, string msg = null)
+ private void FirmwareWarn(string sysID, string firmwareID, bool required, string msg = null)
{
if (required)
{
- string fullmsg = string.Format(
+ var fullmsg = String.Format(
"Couldn't find required firmware \"{0}:{1}\". This is fatal{2}", sysID, firmwareID, msg != null ? ": " + msg : ".");
throw new Exception(fullmsg);
}
@@ -52,29 +52,33 @@ namespace BizHawk.Client.Common
{
if (msg != null)
{
- string fullmsg = string.Format(
+ var fullmsg = String.Format(
"Couldn't find firmware \"{0}:{1}\". Will attempt to continue: {2}", sysID, firmwareID, msg);
- ShowWarning(msg);
+ _showWarning(fullmsg);
}
}
}
-
public string GetFirmwarePath(string sysID, string firmwareID, bool required, string msg = null)
{
- string path = FirmwareManager.Request(sysID, firmwareID);
+ var path = FirmwareManager.Request(sysID, firmwareID);
if (path != null && !File.Exists(path))
+ {
path = null;
+ }
if (path == null)
+ {
FirmwareWarn(sysID, firmwareID, required, msg);
+ }
+
return path;
}
public byte[] GetFirmware(string sysID, string firmwareID, bool required, string msg = null)
{
byte[] ret = null;
- string path = GetFirmwarePath(sysID, firmwareID, required, msg);
+ var path = GetFirmwarePath(sysID, firmwareID, required, msg);
if (path != null && File.Exists(path))
{
try
@@ -85,7 +89,10 @@ namespace BizHawk.Client.Common
}
if (ret == null && path != null)
+ {
FirmwareWarn(sysID, firmwareID, required, msg);
+ }
+
return ret;
}
diff --git a/BizHawk.Client.Common/FirmwareManager.cs b/BizHawk.Client.Common/FirmwareManager.cs
index 7f648b9bda..ce96263452 100644
--- a/BizHawk.Client.Common/FirmwareManager.cs
+++ b/BizHawk.Client.Common/FirmwareManager.cs
@@ -1,36 +1,35 @@
-using System.Linq;
+using System.Collections.Generic;
using System.IO;
-using System.Collections.Generic;
+using System.Linq;
using BizHawk.Common;
using BizHawk.Emulation.Common;
-//IDEA: put filesizes in DB too. then scans can go real quick by only scanning filesizes that match (and then scanning filesizes that dont match, in case of an emergency)
-//this would be adviseable if we end up with a very large firmware file
+// IDEA: put filesizes in DB too. then scans can go real quick by only scanning filesizes that match (and then scanning filesizes that dont match, in case of an emergency)
+// this would be adviseable if we end up with a very large firmware file
namespace BizHawk.Client.Common
{
public class FirmwareManager
{
- //represents a file found on disk in the user's firmware directory matching a file in our database
- class RealFirmwareFile
+ // represents a file found on disk in the user's firmware directory matching a file in our database
+ public class RealFirmwareFile
{
- public FileInfo fi;
- public string hash;
+ public FileInfo FileInfo { get; set; }
+ public string Hash { get; set; }
}
public class ResolutionInfo
{
- public bool UserSpecified;
- public bool Missing;
- public bool KnownMismatching;
- public FirmwareDatabase.FirmwareFile KnownFirmwareFile;
- public string FilePath;
- public string Hash;
+ public bool UserSpecified { get; set; }
+ public bool Missing { get; set; }
+ public bool KnownMismatching { get; set; }
+ public FirmwareDatabase.FirmwareFile KnownFirmwareFile { get; set; }
+ public string FilePath { get; set; }
+ public string Hash { get; set; }
}
- readonly Dictionary ResolutionDictionary = new Dictionary();
-
+ private readonly Dictionary _resolutionDictionary = new Dictionary();
public ResolutionInfo Resolve(string sysId, string firmwareId)
{
@@ -44,9 +43,9 @@ namespace BizHawk.Client.Common
RETRY:
ResolutionInfo resolved;
- ResolutionDictionary.TryGetValue(record, out resolved);
+ _resolutionDictionary.TryGetValue(record, out resolved);
- //couldnt find it! do a scan and resolve to try harder
+ // couldnt find it! do a scan and resolve to try harder
if (resolved == null && first)
{
DoScanAndResolve();
@@ -57,7 +56,7 @@ namespace BizHawk.Client.Common
return resolved;
}
- //Requests the spcified firmware. tries really hard to scan and resolve as necessary
+ // Requests the spcified firmware. tries really hard to scan and resolve as necessary
public string Request(string sysId, string firmwareId)
{
var resolved = Resolve(sysId, firmwareId);
@@ -65,29 +64,38 @@ namespace BizHawk.Client.Common
return resolved.FilePath;
}
- class RealFirmwareReader
+ public class RealFirmwareReader
{
byte[] buffer = new byte[0];
public RealFirmwareFile Read(FileInfo fi)
{
- RealFirmwareFile rff = new RealFirmwareFile {fi = fi};
+ var rff = new RealFirmwareFile { FileInfo = fi };
long len = fi.Length;
- if (len > buffer.Length) buffer = new byte[len];
- using (var fs = fi.OpenRead()) fs.Read(buffer, 0, (int)len);
- rff.hash = Util.Hash_SHA1(buffer, 0, (int)len);
- dict[rff.hash] = rff;
- files.Add(rff);
+ if (len > buffer.Length)
+ {
+ buffer = new byte[len];
+ }
+
+ using (var fs = fi.OpenRead())
+ {
+ fs.Read(buffer, 0, (int)len);
+ }
+
+ rff.Hash = Util.Hash_SHA1(buffer, 0, (int)len);
+ dict[rff.Hash] = rff;
+ _files.Add(rff);
return rff;
}
+
public readonly Dictionary dict = new Dictionary();
- private readonly List files = new List();
+ private readonly List _files = new List();
}
public void DoScanAndResolve()
{
- RealFirmwareReader reader = new RealFirmwareReader();
+ var reader = new RealFirmwareReader();
- //build a list of files under the global firmwares path, and build a hash for each of them while we're at it
+ // build a list of files under the global firmwares path, and build a hash for each of them while we're at it
var todo = new Queue();
todo.Enqueue(new DirectoryInfo(PathManager.MakeAbsolutePath(Global.Config.PathEntries.FirmwaresPathFragment, null)));
@@ -95,8 +103,11 @@ namespace BizHawk.Client.Common
{
var di = todo.Dequeue();
- //we're going to allow recursing into subdirectories, now. its been verified to work OK
- foreach (var disub in di.GetDirectories()) todo.Enqueue(disub);
+ // we're going to allow recursing into subdirectories, now. its been verified to work OK
+ foreach (var disub in di.GetDirectories())
+ {
+ todo.Enqueue(disub);
+ }
foreach (var fi in di.GetFiles())
{
@@ -104,34 +115,35 @@ namespace BizHawk.Client.Common
}
}
- //now, for each firmware record, try to resolve it
+ // now, for each firmware record, try to resolve it
foreach (var fr in FirmwareDatabase.FirmwareRecords)
{
- //clear previous resolution results
- ResolutionDictionary.Remove(fr);
+ // clear previous resolution results
+ _resolutionDictionary.Remove(fr);
- //get all options for this firmware (in order)
- FirmwareDatabase.FirmwareRecord fr1 = fr;
+ // get all options for this firmware (in order)
+ var fr1 = fr;
var options =
from fo in FirmwareDatabase.FirmwareOptions
where fo.systemId == fr1.systemId && fo.firmwareId == fr1.firmwareId
select fo;
- //try each option
+ // try each option
foreach (var fo in options)
{
var hash = fo.hash;
- //did we find this firmware?
+
+ // did we find this firmware?
if (reader.dict.ContainsKey(hash))
{
- //rad! then we can use it
+ // rad! then we can use it
var ri = new ResolutionInfo
{
- FilePath = reader.dict[hash].fi.FullName,
+ FilePath = reader.dict[hash].FileInfo.FullName,
KnownFirmwareFile = FirmwareDatabase.FirmwareFilesByHash[hash],
Hash = hash
};
- ResolutionDictionary[fr] = ri;
+ _resolutionDictionary[fr] = ri;
goto DONE_FIRMWARE;
}
}
@@ -140,27 +152,27 @@ namespace BizHawk.Client.Common
}
- //apply user overrides
+ // apply user overrides
foreach (var fr in FirmwareDatabase.FirmwareRecords)
{
string userSpec;
- //do we have a user specification for this firmware record?
+ // do we have a user specification for this firmware record?
if (Global.Config.FirmwareUserSpecifications.TryGetValue(fr.ConfigKey, out userSpec))
{
- //flag it as user specified
+ // flag it as user specified
ResolutionInfo ri;
- if (!ResolutionDictionary.TryGetValue(fr, out ri))
+ if (!_resolutionDictionary.TryGetValue(fr, out ri))
{
ri = new ResolutionInfo();
- ResolutionDictionary[fr] = ri;
+ _resolutionDictionary[fr] = ri;
}
ri.UserSpecified = true;
ri.KnownFirmwareFile = null;
ri.FilePath = userSpec;
ri.Hash = null;
- //check whether it exists
+ // check whether it exists
var fi = new FileInfo(userSpec);
if (!fi.Exists)
{
@@ -168,27 +180,29 @@ namespace BizHawk.Client.Common
continue;
}
- //compute its hash
+ // compute its hash
var rff = reader.Read(fi);
- ri.Hash = rff.hash;
+ ri.Hash = rff.Hash;
- //check whether it was a known file anyway, and go ahead and bind to the known file, as a perk (the firmwares config doesnt really use this information right now)
+ // check whether it was a known file anyway, and go ahead and bind to the known file, as a perk (the firmwares config doesnt really use this information right now)
FirmwareDatabase.FirmwareFile ff;
- if(FirmwareDatabase.FirmwareFilesByHash.TryGetValue(rff.hash,out ff))
+ if (FirmwareDatabase.FirmwareFilesByHash.TryGetValue(rff.Hash,out ff))
{
ri.KnownFirmwareFile = ff;
- //if the known firmware file is for a different firmware, flag it so we can show a warning
+ // if the known firmware file is for a different firmware, flag it so we can show a warning
var option =
(from fo in FirmwareDatabase.FirmwareOptions
- where fo.hash == rff.hash && fo.ConfigKey != fr.ConfigKey
+ where fo.hash == rff.Hash && fo.ConfigKey != fr.ConfigKey
select fr).FirstOrDefault();
+
if (option != null)
+ {
ri.KnownMismatching = true;
+ }
}
}
}
}
-
}
}
\ No newline at end of file
diff --git a/BizHawk.Client.Common/RomGame.cs b/BizHawk.Client.Common/RomGame.cs
index 99458054f0..1d6adbe57c 100644
--- a/BizHawk.Client.Common/RomGame.cs
+++ b/BizHawk.Client.Common/RomGame.cs
@@ -8,10 +8,10 @@ namespace BizHawk.Client.Common
{
public class RomGame
{
- public byte[] RomData;
- public byte[] FileData;
- public GameInfo GameInfo;
- public string Extension;
+ public byte[] RomData { get; set; }
+ public byte[] FileData { get; set; }
+ public GameInfo GameInfo { get; set; }
+ public string Extension { get; set; }
private const int BankSize = 1024;
@@ -22,15 +22,17 @@ namespace BizHawk.Client.Common
public RomGame(HawkFile file, string patch)
{
if (!file.Exists)
+ {
throw new Exception("The file needs to exist, yo.");
+ }
Extension = file.Extension;
var stream = file.GetStream();
int fileLength = (int)stream.Length;
- //read the entire contents of the file into memory.
- //unfortunate in the case of large files, but thats what we've got to work with for now.
+ // read the entire contents of the file into memory.
+ // unfortunate in the case of large files, but thats what we've got to work with for now.
// if we're offset exactly 512 bytes from a 1024-byte boundary,
// assume we have a header of that size. Otherwise, assume it's just all rom.
@@ -42,34 +44,40 @@ namespace BizHawk.Client.Common
headerOffset = 0;
}
else if (headerOffset > 0)
+ {
Console.WriteLine("Assuming header of {0} bytes.", headerOffset);
+ }
- //read the entire file into FileData.
+ // read the entire file into FileData.
FileData = new byte[fileLength];
stream.Read(FileData, 0, fileLength);
- //if there was no header offset, RomData is equivalent to FileData
- //(except in cases where the original interleaved file data is necessary.. in that case we'll have problems..
- //but this whole architecture is not going to withstand every peculiarity and be fast as well.
+ // if there was no header offset, RomData is equivalent to FileData
+ // (except in cases where the original interleaved file data is necessary.. in that case we'll have problems..
+ // but this whole architecture is not going to withstand every peculiarity and be fast as well.
if (headerOffset == 0)
{
RomData = FileData;
}
else
{
- //if there was a header offset, read the whole file into FileData and then copy it into RomData (this is unfortunate, in case RomData isnt needed)
+ // if there was a header offset, read the whole file into FileData and then copy it into RomData (this is unfortunate, in case RomData isnt needed)
int romLength = fileLength - headerOffset;
RomData = new byte[romLength];
Buffer.BlockCopy(FileData, headerOffset, RomData, 0, romLength);
}
if (file.Extension == ".SMD")
+ {
RomData = DeInterleaveSMD(RomData);
+ }
if (file.Extension == ".Z64" || file.Extension == ".N64" || file.Extension == ".V64")
+ {
RomData = MutateSwapN64(RomData);
+ }
- //note: this will be taking several hashes, of a potentially large amount of data.. yikes!
+ // note: this will be taking several hashes, of a potentially large amount of data.. yikes!
GameInfo = Database.GetGameInfo(RomData, file.Name);
CheckForPatchOptions();
@@ -80,7 +88,9 @@ namespace BizHawk.Client.Common
{
patchFile.BindFirstOf("IPS");
if (patchFile.IsBound)
+ {
IPS.Patch(RomData, patchFile.GetStream());
+ }
}
}
}
@@ -91,9 +101,13 @@ namespace BizHawk.Client.Common
// odd bytes and the second 8k containing all even bytes.
int size = source.Length;
- if (size > 0x400000) size = 0x400000;
+ if (size > 0x400000)
+ {
+ size = 0x400000;
+ }
+
int pages = size / 0x4000;
- byte[] output = new byte[size];
+ var output = new byte[size];
for (int page = 0; page < pages; page++)
{
@@ -114,7 +128,6 @@ namespace BizHawk.Client.Common
// .V64 = Bytse Swapped
// File extension does not always match the format
-
int size = source.Length;
// V64 format
@@ -129,15 +142,16 @@ namespace BizHawk.Client.Common
pSource[i + 1] = temp;
}
}
+
// N64 format
else if (pSource[0] == 0x40)
{
for (int i = 0; i < size; i += 4)
{
- //output[i] = source[i + 3];
- //output[i + 3] = source[i];
- //output[i + 1] = source[i + 2];
- //output[i + 2] = source[i + 1];
+ // output[i] = source[i + 3];
+ // output[i + 3] = source[i];
+ // output[i + 1] = source[i + 2];
+ // output[i + 2] = source[i + 1];
byte temp = pSource[i];
pSource[i] = source[i + 3];
@@ -148,8 +162,7 @@ namespace BizHawk.Client.Common
pSource[i + 2] = temp;
}
}
- // Z64 format (or some other unknown format)
- else
+ else // Z64 format (or some other unknown format)
{
}
}
@@ -163,7 +176,7 @@ namespace BizHawk.Client.Common
{
if (GameInfo["PatchBytes"])
{
- string args = GameInfo.OptionValue("PatchBytes");
+ var args = GameInfo.OptionValue("PatchBytes");
foreach (var val in args.Split(','))
{
var split = val.Split(':');
diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs
index 26f42dcd0b..d1129f4bcc 100644
--- a/BizHawk.Client.Common/RomLoader.cs
+++ b/BizHawk.Client.Common/RomLoader.cs
@@ -8,13 +8,13 @@ using BizHawk.Emulation.Cores.Atari.Atari7800;
using BizHawk.Emulation.Cores.Calculators;
using BizHawk.Emulation.Cores.ColecoVision;
using BizHawk.Emulation.Cores.Computers.Commodore64;
+using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
using BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
using BizHawk.Emulation.Cores.Intellivision;
using BizHawk.Emulation.Cores.Nintendo.Gameboy;
using BizHawk.Emulation.Cores.Nintendo.GBA;
using BizHawk.Emulation.Cores.Nintendo.N64;
using BizHawk.Emulation.Cores.Nintendo.NES;
-using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
using BizHawk.Emulation.Cores.Nintendo.SNES;
using BizHawk.Emulation.Cores.PCEngine;
using BizHawk.Emulation.Cores.Sega.MasterSystem;
@@ -364,6 +364,7 @@ namespace BizHawk.Client.Common
{
nextEmulator = new QuickNES(nextComm, rom.FileData);
}
+
break;
case "GB":
case "GBC":
@@ -414,7 +415,7 @@ namespace BizHawk.Client.Common
case "GBA":
if (VersionInfo.INTERIM)
{
- GBA gba = new GBA(nextComm);
+ var gba = new GBA(nextComm);
gba.Load(rom.RomData);
nextEmulator = gba;
}
diff --git a/BizHawk.Client.Common/SaveSlotManager.cs b/BizHawk.Client.Common/SaveSlotManager.cs
index 38ad60b82b..617c5355dc 100644
--- a/BizHawk.Client.Common/SaveSlotManager.cs
+++ b/BizHawk.Client.Common/SaveSlotManager.cs
@@ -1,4 +1,5 @@
using System.IO;
+using System.Linq;
using BizHawk.Emulation.Common;
@@ -6,8 +7,8 @@ namespace BizHawk.Client.Common
{
public class SaveSlotManager
{
- private readonly bool[] slots = new bool[10];
- private readonly bool[] redo = new bool[10];
+ private readonly bool[] _slots = new bool[10];
+ private readonly bool[] _redo = new bool[10];
public SaveSlotManager()
{
@@ -20,10 +21,12 @@ namespace BizHawk.Client.Common
{
for (int i = 0; i < 10; i++)
{
- slots[i] = false;
+ _slots[i] = false;
}
+
return;
}
+
for (int i = 0; i < 10; i++)
{
var file = new FileInfo(
@@ -33,7 +36,8 @@ namespace BizHawk.Client.Common
{
file.Directory.Create();
}
- slots[i] = file.Exists;
+
+ _slots[i] = file.Exists;
}
}
@@ -42,11 +46,7 @@ namespace BizHawk.Client.Common
get
{
Update();
- for (int i = 0; i < 10; i++)
- {
- if (slots[i]) return true;
- }
- return false;
+ return _slots.Any(slot => slot);
}
}
@@ -63,14 +63,14 @@ namespace BizHawk.Client.Common
}
Update();
- return slots[slot];
+ return _slots[slot];
}
public void ClearRedoList()
{
for (int i = 0; i < 10; i++)
{
- redo[i] = false;
+ _redo[i] = false;
}
}
@@ -81,7 +81,7 @@ namespace BizHawk.Client.Common
return;
}
- redo[slot] ^= true;
+ _redo[slot] ^= true;
}
public bool IsRedo(int slot)
@@ -91,7 +91,7 @@ namespace BizHawk.Client.Common
return false;
}
- return redo[slot];
+ return _redo[slot];
}
public void Clear()
diff --git a/BizHawk.Client.Common/SavestateManager.cs b/BizHawk.Client.Common/SavestateManager.cs
index 3cfb499f82..70fb0d6380 100644
--- a/BizHawk.Client.Common/SavestateManager.cs
+++ b/BizHawk.Client.Common/SavestateManager.cs
@@ -21,16 +21,17 @@ namespace BizHawk.Client.Common
writer.Write("Framebuffer ");
Global.Emulator.VideoProvider.GetVideoBuffer().SaveAsHex(writer);
}
+
writer.Close();
}
else
{
// binary savestates
- using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
- using (BinaryStateSaver bs = new BinaryStateSaver(fs))
+ using (var fs = new FileStream(filename, FileMode.Create, FileAccess.Write))
+ using (var bs = new BinaryStateSaver(fs))
{
#if true
- bs.PutLump(BinaryStateLump.Corestate, (bw) => Global.Emulator.SaveStateBinary(bw));
+ bs.PutLump(BinaryStateLump.Corestate, bw => Global.Emulator.SaveStateBinary(bw));
#else
// this would put text states inside the zipfile
bs.PutLump(BinaryStateLump.CorestateText, (tw) => Global.Emulator.SaveStateText(tw));
@@ -40,6 +41,7 @@ namespace BizHawk.Client.Common
var buff = Global.Emulator.VideoProvider.GetVideoBuffer();
bs.PutLump(BinaryStateLump.Framebuffer, (BinaryWriter bw) => bw.Write(buff));
}
+
if (Global.MovieSession.Movie.IsActive)
{
bs.PutLump(BinaryStateLump.Input,
@@ -57,30 +59,31 @@ namespace BizHawk.Client.Common
public static bool LoadStateFile(string path, string name)
{
// try to detect binary first
- BinaryStateLoader bl = BinaryStateLoader.LoadAndDetect(path);
+ var bl = BinaryStateLoader.LoadAndDetect(path);
if (bl != null)
{
try
{
- bool succeed = false;
+ var succeed = false;
if (Global.MovieSession.Movie.IsActive)
{
- bl.GetLump(BinaryStateLump.Input, true, (tr) => succeed = Global.MovieSession.HandleMovieLoadState(tr));
+ bl.GetLump(BinaryStateLump.Input, true, tr => succeed = Global.MovieSession.HandleMovieLoadState(tr));
if (!succeed)
+ {
return false;
+ }
}
- bl.GetCoreState((br) => Global.Emulator.LoadStateBinary(br), (tr) => Global.Emulator.LoadStateText(tr));
+ bl.GetCoreState(br => Global.Emulator.LoadStateBinary(br), tr => Global.Emulator.LoadStateText(tr));
bl.GetLump(BinaryStateLump.Framebuffer, false,
delegate(BinaryReader br)
{
- int i;
var buff = Global.Emulator.VideoProvider.GetVideoBuffer();
try
{
- for (i = 0; i < buff.Length; i++)
+ for (int i = 0; i < buff.Length; i++)
{
int j = br.ReadInt32();
buff[i] = j;
@@ -106,17 +109,25 @@ namespace BizHawk.Client.Common
while (true)
{
- string str = reader.ReadLine();
- if (str == null) break;
- if (str.Trim() == "") continue;
+ var str = reader.ReadLine();
+ if (str == null)
+ {
+ break;
+ }
+
+ if (str.Trim() == String.Empty)
+ {
+ continue;
+ }
- string[] args = str.Split(' ');
+ var args = str.Split(' ');
if (args[0] == "Framebuffer")
{
Global.Emulator.VideoProvider.GetVideoBuffer().ReadFromHex(args[1]);
}
}
}
+
return true;
}
else
diff --git a/BizHawk.Client.Common/SevenZipSharpArchiveHandler.cs b/BizHawk.Client.Common/SevenZipSharpArchiveHandler.cs
index a55ea832bd..7d4f951edd 100644
--- a/BizHawk.Client.Common/SevenZipSharpArchiveHandler.cs
+++ b/BizHawk.Client.Common/SevenZipSharpArchiveHandler.cs
@@ -1,6 +1,5 @@
-using System;
-using System.IO;
using System.Collections.Generic;
+using System.IO;
using BizHawk.Common;
@@ -11,12 +10,14 @@ namespace BizHawk.Client.Common
///
public class SevenZipSharpArchiveHandler : IHawkFileArchiveHandler
{
+ private SevenZip.SevenZipExtractor _extractor;
+
public void Dispose()
{
- if (extractor != null)
+ if (_extractor != null)
{
- extractor.Dispose();
- extractor = null;
+ _extractor.Dispose();
+ _extractor = null;
}
}
@@ -28,26 +29,33 @@ namespace BizHawk.Client.Common
public IHawkFileArchiveHandler Construct(string path)
{
- SevenZipSharpArchiveHandler ret = new SevenZipSharpArchiveHandler();
+ var ret = new SevenZipSharpArchiveHandler();
ret.Open(path);
return ret;
}
- void Open(string path)
+ private void Open(string path)
{
- extractor = new SevenZip.SevenZipExtractor(path);
+ _extractor = new SevenZip.SevenZipExtractor(path);
}
- SevenZip.SevenZipExtractor extractor;
-
public List Scan()
{
- List ret = new List();
- for (int i = 0; i < extractor.ArchiveFileData.Count; i++)
+ var ret = new List();
+ for (int i = 0; i < _extractor.ArchiveFileData.Count; i++)
{
- var afd = extractor.ArchiveFileData[i];
- if (afd.IsDirectory) continue;
- var ai = new HawkFileArchiveItem { name = HawkFile.Util_FixArchiveFilename(afd.FileName), size = (long)afd.Size, archiveIndex = i, index = ret.Count };
+ var afd = _extractor.ArchiveFileData[i];
+ if (afd.IsDirectory)
+ {
+ continue;
+ }
+
+ var ai = new HawkFileArchiveItem
+ {
+ name = HawkFile.Util_FixArchiveFilename(afd.FileName),
+ size = (long)afd.Size, archiveIndex = i, index = ret.Count
+ };
+
ret.Add(ai);
}
@@ -56,8 +64,7 @@ namespace BizHawk.Client.Common
public void ExtractFile(int index, Stream stream)
{
- extractor.ExtractFile(index, stream);
+ _extractor.ExtractFile(index, stream);
}
}
-
}
\ No newline at end of file
diff --git a/BizHawk.Client.Common/XmlGame.cs b/BizHawk.Client.Common/XmlGame.cs
index 49f451ec2a..3d69449fcd 100644
--- a/BizHawk.Client.Common/XmlGame.cs
+++ b/BizHawk.Client.Common/XmlGame.cs
@@ -10,7 +10,7 @@ namespace BizHawk.Client.Common
{
public class XmlGame
{
- public XmlDocument Xml;
+ public XmlDocument Xml { get; set; }
public GameInfo GI = new GameInfo();
public Dictionary Assets = new Dictionary();
@@ -22,7 +22,9 @@ namespace BizHawk.Client.Common
x.Load(f.GetStream());
var y = x.SelectSingleNode("./BizHawk-XMLGame");
if (y == null)
+ {
return null;
+ }
var ret = new XmlGame
{
@@ -38,8 +40,7 @@ namespace BizHawk.Client.Common
var n = y.SelectSingleNode("./LoadAssets");
if (n != null)
{
- MemoryStream HashStream = new MemoryStream();
-
+ var HashStream = new MemoryStream();
int? OriginalIndex = null;
foreach (XmlNode a in n.ChildNodes)
@@ -54,7 +55,10 @@ namespace BizHawk.Client.Common
if (ai != null)
{
if (OriginalIndex == null)
+ {
OriginalIndex = f.GetBoundIndex();
+ }
+
f.Unbind();
f.BindArchiveMember(ai);
data = Util.ReadAllBytes(f.GetStream());
@@ -67,7 +71,7 @@ namespace BizHawk.Client.Common
else
{
// relative path
- string fullpath = Path.GetDirectoryName(f.CanonicalFullPath.Split('|')[0]) ?? String.Empty;
+ var fullpath = Path.GetDirectoryName(f.CanonicalFullPath.Split('|')[0]) ?? String.Empty;
fullpath = Path.Combine(fullpath, filename);
try
{
@@ -78,6 +82,7 @@ namespace BizHawk.Client.Common
throw new Exception("Couldn't load XMLGame LoadAsset \"" + name + "\"");
}
}
+
ret.Assets[name] = data;
using (var sha1 = System.Security.Cryptography.SHA1.Create())
@@ -86,6 +91,7 @@ namespace BizHawk.Client.Common
HashStream.Write(sha1.Hash, 0, sha1.Hash.Length);
}
}
+
ret.GI.Hash = Util.Hash_SHA1(HashStream.GetBuffer(), 0, (int)HashStream.Length);
HashStream.Close();
if (OriginalIndex != null)
@@ -98,13 +104,13 @@ namespace BizHawk.Client.Common
{
ret.GI.Hash = "0000000000000000000000000000000000000000";
}
+
return ret;
}
- catch(Exception ex)
+ catch (Exception ex)
{
throw new InvalidOperationException(ex.ToString());
}
}
-
}
}
diff --git a/BizHawk.Client.EmuHawk/tools/ToolBox.cs b/BizHawk.Client.EmuHawk/tools/ToolBox.cs
index e37ecef1cb..1a6cbe58e1 100644
--- a/BizHawk.Client.EmuHawk/tools/ToolBox.cs
+++ b/BizHawk.Client.EmuHawk/tools/ToolBox.cs
@@ -6,9 +6,9 @@ using System.Windows.Forms;
using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Calculators;
+using BizHawk.Emulation.Cores.Nintendo.GBA;
using BizHawk.Emulation.Cores.Nintendo.NES;
using BizHawk.Emulation.Cores.Nintendo.SNES;
-using BizHawk.Emulation.Cores.Nintendo.GBA;
using BizHawk.Emulation.Cores.PCEngine;
namespace BizHawk.Client.EmuHawk
@@ -85,13 +85,11 @@ namespace BizHawk.Client.EmuHawk
private void SetSize()
{
- var rows = (int)(Math.Ceiling(ToolBoxItems.Count() / 4.0));
- this.Height = 30 + (rows * 30);
+ var rows = (int)Math.Ceiling(ToolBoxItems.Count() / 4.0);
+ Height = 30 + (rows * 30);
}
- ///
- /// Provide LINQ capabilities to an outdated form collection
- ///
+ // Provide LINQ capabilities to an outdated form collection
private IEnumerable ToolBoxItems
{
get
diff --git a/VersionInfo.cs b/VersionInfo.cs
index dbe46a30a6..c611cd2be4 100644
--- a/VersionInfo.cs
+++ b/VersionInfo.cs
@@ -2,7 +2,7 @@ static class VersionInfo
{
public const string MAINVERSION = "1.5.2";
public const string RELEASEDATE = "August 22, 2013";
- public static bool INTERIM = false;
+ public static bool INTERIM = true;
public static string GetEmuVersion()
{