(x =>
- {
- var colour = GetByte(x, ColourOffset);
- return colour == 0xFF ? Colour.Type.White : (Colour.Type) colour;
- })(reader)
- },
-
- Mouse =
- {
- Sensitivity =
- {
- Horizontal = GetByte(reader, MouseSensitivityHorizontalOffset),
- Vertical = GetByte(reader, MouseSensitivityVerticalOffset)
- },
-
- InvertVerticalAxis = GetBool(reader, MouseInvertVerticalAxisOffset)
- },
-
- Audio =
- {
- Volume =
- {
- Master = GetByte(reader, AudioVolumeMasterOffset),
- Effects = GetByte(reader, AudioVolumeEffectsOffset),
- Music = GetByte(reader, AudioVolumeMusicOffset)
- },
-
- Quality =
- {
- Value = (Quality.Type) GetByte(reader, AudioQualityOffset)
- },
-
- Variety =
- {
- Value = (Quality.Type) GetByte(reader, AudioVarietyOffset)
- }
- },
-
- Video =
- {
- Resolution =
- {
- Width = GetShort(reader, VideoResolutionWidthOffset),
- Height = GetShort(reader, VideoResolutionHeightOffset)
- },
-
- FrameRate =
- {
- Value = (FrameRate.Type) GetByte(reader, VideoFrameRateOffset)
- },
-
- Effects =
- {
- Specular = GetBool(reader, VideoEffectsSpecularOffset),
- Shadows = GetBool(reader, VideoEffectsShadowsOffset),
- Decals = GetBool(reader, VideoEffectsDecalsOffset)
- },
-
- Particles =
- {
- Value = (Particles.Type) GetByte(reader, VideoParticlesOffset)
- },
-
- Quality =
- {
- Value = (Quality.Type) GetByte(reader, VideoQualityOffset)
- }
- },
-
- Network =
- {
- Connection =
- {
- Value = (Connection.Type) GetByte(reader, NetworkConnectionTypeOffset)
- },
-
- Port =
- {
- Server = GetShort(reader, NetworkPortServerOffset),
- Client = GetShort(reader, NetworkPortClientOffset)
- }
- }
- };
-
- reader.Dispose();
-
- return configuration;
- }
-
- ///
- /// Returns a byte value from the inbound binary reader at the given offset.
- ///
- ///
- /// Binary reader to retrieve byte value from.
- ///
- ///
- /// Offset of the respective byte.
- ///
- ///
- /// byte value.
- ///
- private static byte GetByte(BinaryReader reader, int offset)
- {
- reader.BaseStream.Seek(offset, SeekOrigin.Begin);
- return reader.ReadByte();
- }
-
- ///
- /// Returns a boolean value from the inbound binary reader at the given offset.
- ///
- ///
- /// Binary reader to retrieve boolean value from.
- ///
- ///
- /// Offset of the respective boolean.
- ///
- ///
- /// Boolean value.
- ///
- private static bool GetBool(BinaryReader reader, int offset)
- {
- reader.BaseStream.Seek(offset, SeekOrigin.Begin);
- return reader.ReadBoolean();
- }
-
- ///
- /// Returns a unsigned short value from the inbound binary reader at the given offset.
- ///
- ///
- /// Binary reader to retrieve unsigned short value from.
- ///
- ///
- /// Offset of the respective unsigned short.
- ///
- ///
- /// Unsigned short value.
- ///
- private static ushort GetShort(BinaryReader reader, int offset)
- {
- reader.BaseStream.Seek(offset, SeekOrigin.Begin);
- return reader.ReadUInt16();
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Lastprof.cs b/Atarashii/Atarashii/Modules/Profile/Lastprof.cs
deleted file mode 100644
index 31aafc1..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Lastprof.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using Atarashii.Common;
-
-namespace Atarashii.Modules.Profile
-{
- public class Lastprof : Module, IVerifiable
- {
- ///
- /// Official name of the lastprof text file.
- ///
- public const string Name = "lastprof.txt";
-
- ///
- /// Separation character which is guaranteed to be present.
- ///
- private const char Delimiter = '\\';
-
- ///
- /// Position of the profile name relative to the end of the split string.
- ///
- private const int NameOffset = 0x2;
-
- ///
- /// Known string that is present in the lastprof.txt.
- ///
- private const string Signature = "lam.sav";
-
- private readonly string _data;
-
- public Lastprof(string data)
- {
- _data = data;
- }
-
- public Lastprof(string data, Output output) : base(output)
- {
- _data = data;
- }
-
- ///
- protected override string Identifier { get; } = "Profile.Lastprof";
-
- ///
- ///
- /// False if:
- /// - Given lastprof string lacks valid signature.
- ///
- public Verification Verify()
- {
- if (!_data.Contains(Signature))
- return new Verification(false, "Given lastprof string lacks valid signature.");
-
- return new Verification(true);
- }
-
- ///
- /// Retrieves the profile name from a lastprof.txt string.
- ///
- ///
- /// new Lastprof.Parser().Parse(File.ReadAllText("lastprof.txt"));
- ///
- ///
- /// The profile name. In actual environments, it's the profile used in the last HCE instance.
- ///
- ///
- /// Given lastprof string lacks valid signature..
- ///
- public string Parse()
- {
- WriteInfo("Verifying the inbound lastprof.txt");
- var state = Verify();
-
- if (!state.IsValid)
- WriteAndThrow(new ProfileException(state.Reason));
-
- WriteSuccess("Inbound lastprof.txt has been successfully verified.");
- WriteInfo("Attempting to resolve the profile name in the lastprof.txt.");
-
- var array = _data.Split(Delimiter);
- return array[array.Length - NameOffset];
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/LastprofFactory.cs b/Atarashii/Atarashii/Modules/Profile/LastprofFactory.cs
deleted file mode 100644
index cb3d4bd..0000000
--- a/Atarashii/Atarashii/Modules/Profile/LastprofFactory.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using System.IO;
-using Atarashii.Common;
-
-namespace Atarashii.Modules.Profile
-{
- public static class LastprofFactory
- {
- ///
- /// Types of Lastprof instantiations.
- ///
- public enum Type
- {
- Detect
- }
-
- ///
- /// Instantiate a Lastprof type.
- ///
- ///
- /// Types of Lastprof instantiation.
- ///
- ///
- /// Optional output type for writing data to.
- ///
- ///
- /// Lastprof instance.
- ///
- ///
- /// Attempted to detect a lastprof.txt file and none has been found on the file system.
- ///
- ///
- /// Invalid enum value.
- ///
- public static Lastprof Get(Type type, Output output = null)
- {
- switch (type)
- {
- case Type.Detect:
- var myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
- var txtFilePath = Path.Combine(myDocuments, "My Games", "Halo CE", Lastprof.Name);
-
- if (!File.Exists(txtFilePath))
- throw new FileNotFoundException("Could not find lastprof.txt through the detection attempt.");
-
- return new Lastprof(File.ReadAllText(txtFilePath), output);
- default:
- throw new ArgumentOutOfRangeException(nameof(type), type, null);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Audio.cs b/Atarashii/Atarashii/Modules/Profile/Options/Audio.cs
deleted file mode 100644
index f96b5b2..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Audio.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- // TODO: Handle HW Acceleration & Environmental Sound.
-
- ///
- /// Representation of the profile audio settings.
- ///
- public class Audio
- {
- ///
- /// Audio volume.
- ///
- public Volume Volume { get; set; } = new Volume();
-
- ///
- /// Audio quality.
- ///
- public Quality Quality { get; set; } = new Quality();
-
- ///
- /// Audio variety.
- ///
- public Quality Variety { get; set; } = new Quality();
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Colour.cs b/Atarashii/Atarashii/Modules/Profile/Options/Colour.cs
deleted file mode 100644
index 3cf3e44..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Colour.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the profile player colour.
- ///
- public class Colour
- {
- ///
- /// Available player colours.
- ///
- public enum Type
- {
- White,
- Black,
- Red,
- Blue,
- Gray,
- Yellow,
- Green,
- Pink,
- Purple,
- Cyan,
- Cobalt,
- Orange,
- Teal,
- Sage,
- Brown,
- Tan,
- Maroon,
- Salmon
- }
-
- ///
- /// Player colour value.
- ///
- public Type Value { get; set; } = Type.White;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Connection.cs b/Atarashii/Atarashii/Modules/Profile/Options/Connection.cs
deleted file mode 100644
index 42590a4..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Connection.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- public class Connection
- {
- ///
- /// Connection types.
- ///
- public enum Type
- {
- ///
- /// 56kbps setting - allows a maximum of 2 people to join a hosted server.
- ///
- Modem,
-
- ///
- /// DSL/Cable (LOW) setting - allows a maximum of 4 people to join a hosted server.
- ///
- DslLow,
-
- ///
- /// DSL/Cable (AVG) setting - allows a maximum of 8 people to join a hosted server.
- ///
- DslAverage,
-
- ///
- /// DSL/Cable (HIGH) setting - allows a maximum of 10 people to join a hosted server.
- ///
- DslHigh,
-
- ///
- /// Represents the 11/LAN setting - allows a maximum of 16 people to join a hosted server.
- ///
- Lan
- }
-
- public Type Value { get; set; } = Type.Modem;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Effects.cs b/Atarashii/Atarashii/Modules/Profile/Options/Effects.cs
deleted file mode 100644
index 31fd4e7..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Effects.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the video effects settings.
- ///
- public class Effects
- {
- ///
- /// Shadow effects toggle.
- ///
- public bool Shadows { get; set; } = true;
-
- ///
- /// Specular effects toggle.
- ///
- public bool Specular { get; set; } = true;
-
- ///
- /// Decals effects toggle.
- ///
- public bool Decals { get; set; } = true;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/FrameRate.cs b/Atarashii/Atarashii/Modules/Profile/Options/FrameRate.cs
deleted file mode 100644
index 8e01386..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/FrameRate.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the video frame rate settings.
- ///
- public class FrameRate
- {
- ///
- /// Available frame rate types.
- ///
- public enum Type
- {
- VsyncOff,
- VsyncOn,
- Fps30
- }
-
- ///
- /// Frame rate type value.
- ///
- public Type Value { get; set; } = Type.Fps30;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Mouse.cs b/Atarashii/Atarashii/Modules/Profile/Options/Mouse.cs
deleted file mode 100644
index 7e957bf..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Mouse.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the profile mouse settings.
- ///
- public class Mouse
- {
- ///
- /// Mouse sensitivity.
- ///
- public Sensitivity Sensitivity { get; set; } = new Sensitivity();
-
- ///
- /// Invert the vertical axis.
- ///
- public bool InvertVerticalAxis { get; set; } = false;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Name.cs b/Atarashii/Atarashii/Modules/Profile/Options/Name.cs
deleted file mode 100644
index fa22e1e..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Name.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the profile player name.
- ///
- public class Name
- {
- ///
- /// Player name value.
- /// This value is expected to be between 1 and 11 characters.
- ///
- private string _value = "New001";
-
- ///
- /// Player name value.
- ///
- ///
- /// No name value has been been assigned.
- ///
- ///
- /// Assigned name value is greater than 11 characters.
- ///
- public string Value
- {
- get => _value;
- set
- {
- if (string.IsNullOrWhiteSpace(value))
- throw new ArgumentNullException(value);
-
- if (value.Length > 0xB)
- throw new ArgumentOutOfRangeException(nameof(value),
- "Assigned name value is greater than 11 characters.");
-
- _value = value;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Network.cs b/Atarashii/Atarashii/Modules/Profile/Options/Network.cs
deleted file mode 100644
index d3feb10..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Network.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Profile network settings.
- ///
- public class Network
- {
- ///
- /// Connection type settings.
- ///
- public Connection Connection = new Connection();
-
- ///
- /// Network ports.
- ///
- public Port Port { get; set; } = new Port();
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Particles.cs b/Atarashii/Atarashii/Modules/Profile/Options/Particles.cs
deleted file mode 100644
index ba944b0..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Particles.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the video particles settings.
- ///
- public class Particles
- {
- ///
- /// Particle levels.
- ///
- public enum Type
- {
- Off,
- Low,
- High
- }
-
- ///
- /// Particle levels value.
- ///
- public Type Value { get; set; } = Type.High;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Port.cs b/Atarashii/Atarashii/Modules/Profile/Options/Port.cs
deleted file mode 100644
index a472b84..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Port.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the network port settings.
- ///
- public class Port
- {
- ///
- /// The port value the client sends data from.
- ///
- public ushort Client { get; set; } = 2303;
-
- ///
- /// The port value the server listens on.
- ///
- public ushort Server { get; set; } = 2302;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Quality.cs b/Atarashii/Atarashii/Modules/Profile/Options/Quality.cs
deleted file mode 100644
index 9c71660..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Quality.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of a generic quality-type value, e.g. texture, audio.
- ///
- public class Quality
- {
- ///
- /// Generic quality level values.
- ///
- public enum Type
- {
- Low,
- Medium,
- High
- }
-
- ///
- /// Chosen quality level.
- ///
- public Type Value { get; set; } = Type.High;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/RefreshRate.cs b/Atarashii/Atarashii/Modules/Profile/Options/RefreshRate.cs
deleted file mode 100644
index 80ffb69..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/RefreshRate.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the video refresh rate settings.
- ///
- public class RefreshRate
- {
- ///
- /// Refresh rate value.
- ///
- public ushort Value { get; set; } = 60;
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Resolution.cs b/Atarashii/Atarashii/Modules/Profile/Options/Resolution.cs
deleted file mode 100644
index b52fe55..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Resolution.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using System;
-
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the video resolution settings.
- ///
- public class Resolution
- {
- ///
- /// Height dimension value.
- /// This value is expected to be between 0 and 32767.
- ///
- private ushort _height = 480;
-
- ///
- /// Width dimension value.
- /// This value is expected to be between 0 and 32767.
- ///
- private ushort _width = 640;
-
- ///
- /// Resolution width value.
- ///
- ///
- /// Assigned dimension value is either 0 or over 32767.
- ///
- public ushort Width
- {
- get => _width;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value),
- "Assigned dimension value is either 0 or over 32767.");
-
- _width = value;
- }
- }
-
- ///
- /// Resolution height value.
- ///
- ///
- /// Assigned dimension value is either 0 or over 32767.
- ///
- public ushort Height
- {
- get => _height;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value),
- "Assigned dimension value is either 0 or over 32767.");
-
- _height = value;
- }
- }
-
- ///
- /// Checks if the inbound dimension value falls within a valid range.
- ///
- ///
- /// Inbound value to check.
- ///
- ///
- /// True on valid value, otherwise false.
- ///
- private static bool IsValid(ushort value)
- {
- return value > 0x0 && value < 0x8000;
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Sensitivity.cs b/Atarashii/Atarashii/Modules/Profile/Options/Sensitivity.cs
deleted file mode 100644
index 5d14d75..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Sensitivity.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-using System;
-
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the profile mouse sensitivity settings.
- ///
- public class Sensitivity
- {
- ///
- /// Horizontal sensitivity value.
- /// This value is expected to be between 1 and 10.
- ///
- private ushort _horizontal = 3;
-
- ///
- /// Vertical sensitivity value.
- /// This value is expected to be between 1 and 10.
- ///
- private ushort _vertical = 3;
-
- ///
- /// Horizontal sensitivity value.
- ///
- ///
- /// Assigned sensitivity value is less than 1 or greater than 10.
- ///
- public ushort Horizontal
- {
- get => _horizontal;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value),
- "Assigned sensitivity value is less than 1 or greater than 10.");
-
- _horizontal = value;
- }
- }
-
- ///
- /// Vertical sensitivity value.
- ///
- ///
- /// Assigned sensitivity value is less than 1 or greater than 10.
- ///
- public ushort Vertical
- {
- get => _vertical;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value),
- "Assigned sensitivity value is less than 1 or greater than 10.");
-
- _vertical = value;
- }
- }
-
- ///
- /// Checks if the inbound sensitivity value falls within a valid range.
- ///
- ///
- /// Inbound value to check.
- ///
- ///
- /// True on valid value, otherwise false.
- ///
- private static bool IsValid(ushort value)
- {
- return value > 1 && value < 11;
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Video.cs b/Atarashii/Atarashii/Modules/Profile/Options/Video.cs
deleted file mode 100644
index 1bc659a..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Video.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the profile video settings.
- ///
- public class Video
- {
- ///
- /// Video resolution settings.
- ///
- public Resolution Resolution { get; set; } = new Resolution();
-
- ///
- /// Video refresh rate settings.
- ///
- public RefreshRate RefreshRate { get; set; } = new RefreshRate();
-
- ///
- /// Video frame rate settings.
- ///
- public FrameRate FrameRate { get; set; } = new FrameRate();
-
- ///
- /// Video effects settings.
- ///
- public Effects Effects { get; set; } = new Effects();
-
- ///
- /// Video particles settings.
- ///
- public Particles Particles { get; set; } = new Particles();
-
- ///
- /// Video texture quality settings.
- ///
- public Quality Quality { get; set; } = new Quality();
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/Options/Volume.cs b/Atarashii/Atarashii/Modules/Profile/Options/Volume.cs
deleted file mode 100644
index 04ac586..0000000
--- a/Atarashii/Atarashii/Modules/Profile/Options/Volume.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-using System;
-
-namespace Atarashii.Modules.Profile.Options
-{
- ///
- /// Representation of the audio volume settings.
- ///
- public class Volume
- {
- ///
- /// Effects volume value.
- /// This value is expected to be between 0 and 10.
- ///
- private ushort _effects = 10;
-
- ///
- /// Master volume value.
- /// This value is expected to be between 0 and 10.
- ///
- private ushort _master = 10;
-
- ///
- /// Music volume value.
- /// This value is expected to be between 0 and 10.
- ///
- private ushort _music = 10;
-
- ///
- /// Master volume value.
- ///
- /// Assigned volume value is greater than 10.
- ///
- ///
- public ushort Master
- {
- get => _master;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value), "Assigned volume value is greater than 10.");
-
- _master = value;
- }
- }
-
- ///
- /// Effects volume value.
- ///
- ///
- /// Assigned volume value is greater than 10.
- ///
- public ushort Effects
- {
- get => _effects;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value), "Assigned volume value is greater than 10.");
-
- _effects = value;
- }
- }
-
- ///
- /// Music volume value.
- ///
- ///
- /// Assigned volume value is greater than 10.
- ///
- public ushort Music
- {
- get => _music;
- set
- {
- if (!IsValid(value))
- throw new ArgumentOutOfRangeException(nameof(value), "Assigned volume value is greater than 10.");
-
- _music = value;
- }
- }
-
- ///
- /// Checks if the inbound volume value falls within a valid range.
- ///
- /// Inbound value to check.
- /// True on valid value, otherwise false.
- private static bool IsValid(ushort value)
- {
- return value < 11;
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Modules/Profile/ProfileException.cs b/Atarashii/Atarashii/Modules/Profile/ProfileException.cs
deleted file mode 100644
index 635fa27..0000000
--- a/Atarashii/Atarashii/Modules/Profile/ProfileException.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-
-namespace Atarashii.Modules.Profile
-{
- [Serializable]
- public class ProfileException : Exception
- {
- //
- // For guidelines regarding the creation of new exception types, see
- // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp
- // and
- // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp
- //
-
- public ProfileException()
- {
- }
-
- public ProfileException(string message) : base(message)
- {
- }
-
- public ProfileException(string message, Exception inner) : base(message, inner)
- {
- }
-
- protected ProfileException(
- SerializationInfo info,
- StreamingContext context) : base(info, context)
- {
- }
- }
-}
\ No newline at end of file
diff --git a/Atarashii/Atarashii/Properties/AssemblyInfo.cs b/Atarashii/Atarashii/Properties/AssemblyInfo.cs
deleted file mode 100644
index 652b1b1..0000000
--- a/Atarashii/Atarashii/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Atarashii")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("yumiris")]
-[assembly: AssemblyProduct("Atarashii")]
-[assembly: AssemblyCopyright("Copyright © 2018")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9665535F-B184-41F6-AC56-85DB14FD3B79")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/Atarashii/README.md b/Atarashii/README.md
deleted file mode 100644
index e36111c..0000000
--- a/Atarashii/README.md
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
- HCE Atarashii
-
-
- A reliable, reusable and versatile library for the HCE/SPV3 loader.
-
-
-
-# Introduction
-
-Atarashii's goal is to cater to both end-users and developers. It accomplishes this using a versatile library and
-command line interface (CLI). It is the result of learning from the mistakes of the SPV3 loader and installer.
-
-By design, the library's APIs can be used outside of SPV3. The modules of this library are minimally tied to SPV3,
-thereby allowing both SPV3 and HCE projects to rely on the functionality provided by the library and the CLI front-end.
-
-# About
-
-Atarashii's design consists of one library that contains the logic for all of the project's features and abilities.
-At the moment, the project provides the following features:
-
-- secure loading of the HCE executable, by verifying the executable and loading it if it passes the validation checks;
-- detection of a legally installed HCE executable on the filesystem using various fallback detection mechanisms;
-- determining the currently used HCE profile, thereby allowing automatic integration with the HCE profile;
-- parsing & configuration of the HCE profile, including player name/colour and video/audio/network settings;
-- installation and configuration of the OpenSauce mod, with a balance between safety and flexibility.
-
-The architecture balances between maintainability and versatility. The library offers two high level namespaces:
-
-| Namespace | Description |
-| --------- | ------------------------------------------------------------------------------------------------ |
-| `Common` | Generic core types or abstracts that are either inheritable or merely share reusable code. |
-| `Modules` | APIs that focus on functionality or serving as object representations of HCE/OS binary/XML data. |
-
-The following modules in the `Modules` namespace are currently available:
-
-| Module | Description |
-| ----------- | ------------------------------------------------------------------------------------------------------ |
-| `Loader` | Detection and loading of a legally installed and untampered HCE executable & `initc.txt` management. |
-| `OpenSauce` | Installation of OpenSauce to the filesystem, and object representation of the OpenSauce configuration. |
-| `Profile` | Detection of the HCE profile using `lastprof.txt`, and object representation of the `blam.sav` binary. |
-
-## CLI
-
-All of the library's major components have a Command Line Interface (CLI) front-end. It is cross-platform,
-script-friendly and versatile program for developers and calling processes to use.
-
-Interaction is carried out using start-up arguments, with detailed instructions & logs being written to the CLI.
-Appropriate exit codes and error messages are used for communication with calling processes and developers.
-
-# Usage
-
-## CLI Usage
-
-The following table shows common tasks with their respective commands.
-
-| Task | Command |
-| --------------------------------- | ----------------------------------------- |
-| Attempt HCE executable loading. | `Loader Load "\path\to\haloce.exe"` |
-| Attempt HCE executable detection. | `Loader Detect` |
-| Attempt HCE profile detection. | `Profile Resolve "\path\to\lastprof.txt"` |
-| Attempt HCE profile parsing. | `Profile Parse "\path\to\blam.sav"` |
-| Attempt OpenSauce installation. | `OpenSauce Install "\path\to\hce-dir"` |
-
-**Exit Codes**
-
-| Code | Description |
-| ---- | ------------------------------------------------------------------ |
-| `0` | Invoked command has been executed successfully. |
-| `1` | Not enough arguments have been provided for the specified command. |
-| `2` | Incorrect arguments have been provided to the specified command. |
-| `3` | An exception has occurred when executing the invoked command. |
-
-**Notes**
-
-- Due to its non-interactive nature, double clicking the executable will not execute anything meaningful!
- For example: `.\Atarashii.CLI.exe Loader Load "C:\haloce.exe"`.
-- To use the CLI, you must run run it from an **existing** console: `\path\to\Atarashii.CLI.exe`!
-- The syntax of the commands may change at any time for improved versatility & ease of use!
-- The commands are currently CaSe SeNSiTiVE!
-
-## API Usage
-
-An API assembly is provided for convenience, to allow external assemblies to make use of the library's functionality.
-
-The following table shows common tasks with the respective static methods that should be called. All methods are under
-the `Atarashii.API` namespace.
-
-| Task | Method | Arguments | Return |
-| --------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
-| Attempt HCE executable loading. | `void Loader.Load(string hceExecutable)` | `hceExecutable`: Absolute path to a valid HCE executable. | ~ |
-| Attempt HCE executable detection. | `string Loader.Detect()` | ~ | Path to the HCE executable, assuming its installation is legal. |
-| Attempt HCE profile detection. | `string Profile.Detect()` | ~ | Currently used HCE profile, assuming the environment is valid. |
-| Attempt HCE profile parsing. | `Profile.Configuration Parse(string blamPath)` | `blamPath`: Path to a HCE profile blam.sav binary. | Deserialised `Profile.Configuration` object representing the provided blam.sav binary. |
-| Attempt OpenSauce installation. | `void Install(string hcePath)` | `hcePath`: Valid HCE installation directory. | ~ |
-| Attempt OpenSauce XML parsing. | `OpenSauce.Configuration Parse(string xmlPath)` | `xmlPath`: Absolute path to the OpenSauce User configuration XML file. | Deserialised `OpenSauce.Configuration` object representing the OpenSauce User configuration XML file. |
-
-# Repository
-
-The main repository and issue tracker are hosted privately. A read-only mirror of the Git repository is available on
-GitHub, and copies of the latest binaries are available on the SPV3 network.
-
-Code is written mainly in C#, targeting .NET 4.5.2 for a balance between security and compatibility. The library's
-features are covered with automated tests to ensure that the core logic fulfils the expected requirements and proposed
-specifications.
\ No newline at end of file
diff --git a/README.md b/README.md
index d954bab..d47c278 100644
--- a/README.md
+++ b/README.md
@@ -63,9 +63,9 @@ me on Discord if you know my username!
## Library
-AmaiSosu uses the Atarashii Library's OpenSauce module for installing OS to the system. It also applies its own
-modifications and enhancements on top, such as backing up existing OpenSauce data, resolving HAC2 conflicts and
-installing the OS IDE to the HCE directory. A copy of the Atarashii source code is included in this repository.
+As of v0.3.4, AmaiSosu uses a forked version Atarashii Library's OpenSauce module for installing OS to the system.
+It also applies its own modifications and enhancements on top, such as backing up existing OpenSauce data, resolving
+HAC2 conflicts and installing the OS IDE to the HCE directory.
## Repository