diff --git a/CSharp/Libraries/UniversalEditor.Core/CustomOption.cs b/CSharp/Libraries/UniversalEditor.Core/CustomOption.cs
index 8756f7bb..6fb1fdce 100644
--- a/CSharp/Libraries/UniversalEditor.Core/CustomOption.cs
+++ b/CSharp/Libraries/UniversalEditor.Core/CustomOption.cs
@@ -51,6 +51,23 @@ namespace UniversalEditor
public CustomOptionFieldChoice(string title) : this(title, title, false)
{
}
+ public CustomOptionFieldChoice(object value)
+ {
+ if (value != null)
+ {
+ mvarTitle = value.ToString();
+ }
+ mvarValue = value;
+ }
+ public CustomOptionFieldChoice(object value, bool isDefault)
+ {
+ if (value != null)
+ {
+ mvarTitle = value.ToString();
+ }
+ mvarValue = value;
+ mvarIsDefault = isDefault;
+ }
public CustomOptionFieldChoice(string title, object value) : this(title, value, false)
{
}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCDataFormat.cs
index 05b12a88..2b6bce80 100644
--- a/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCDataFormat.cs
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCDataFormat.cs
@@ -8,6 +8,9 @@ using UniversalEditor.ObjectModels.Executable;
namespace UniversalEditor.DataFormats.Executable.Nintendo.SNES
{
+ ///
+ /// The Nintendo SNES SMC ROM data format.
+ ///
public class SMCDataFormat : DataFormat
{
private static DataFormatReference _dfr = null;
@@ -17,6 +20,211 @@ namespace UniversalEditor.DataFormats.Executable.Nintendo.SNES
{
_dfr = base.MakeReference();
_dfr.Capabilities.Add(typeof(ExecutableObjectModel), DataFormatCapabilities.All);
+
+ _dfr.ExportOptions.Add(new CustomOptionChoice("Region", "&Region:", false, new CustomOptionFieldChoice[]
+ {
+ new CustomOptionFieldChoice(SMCRegions.Japan),
+ new CustomOptionFieldChoice(SMCRegions.NorthAmerica),
+ new CustomOptionFieldChoice(SMCRegions.Eurasia),
+ new CustomOptionFieldChoice(SMCRegions.Sweden),
+ new CustomOptionFieldChoice(SMCRegions.Finland),
+ new CustomOptionFieldChoice(SMCRegions.Denmark),
+ new CustomOptionFieldChoice(SMCRegions.France),
+ new CustomOptionFieldChoice(SMCRegions.Holland),
+ new CustomOptionFieldChoice(SMCRegions.Spain),
+ new CustomOptionFieldChoice(SMCRegions.GermanyAustriaSwitzerland),
+ new CustomOptionFieldChoice(SMCRegions.Italy),
+ new CustomOptionFieldChoice(SMCRegions.HongKongAndChina),
+ new CustomOptionFieldChoice(SMCRegions.Indonesia),
+ new CustomOptionFieldChoice(SMCRegions.SouthKorea)
+ }));
+
+ _dfr.ExportOptions.Add(new CustomOptionChoice("Licensee", "&Licensee:", false, new CustomOptionFieldChoice[]
+ {
+ new CustomOptionFieldChoice(SMCLicensees.None, true),
+ new CustomOptionFieldChoice(SMCLicensees.Nintendo0x01),
+ new CustomOptionFieldChoice(SMCLicensees.Ajinomoto),
+ new CustomOptionFieldChoice(SMCLicensees.ImagineerZoom),
+ new CustomOptionFieldChoice(SMCLicensees.ChrisGrayEnterprises),
+ new CustomOptionFieldChoice(SMCLicensees.Zamuse),
+ new CustomOptionFieldChoice(SMCLicensees.Falcom),
+ new CustomOptionFieldChoice(SMCLicensees.Capcom),
+ new CustomOptionFieldChoice(SMCLicensees.HotB),
+ new CustomOptionFieldChoice(SMCLicensees.Jaleco0x0A),
+ new CustomOptionFieldChoice(SMCLicensees.Coconuts),
+ new CustomOptionFieldChoice(SMCLicensees.RageSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.Micronet),
+ new CustomOptionFieldChoice(SMCLicensees.Technos),
+ new CustomOptionFieldChoice(SMCLicensees.MebioSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.SHOUEiSystem),
+ new CustomOptionFieldChoice(SMCLicensees.Starfish),
+ new CustomOptionFieldChoice(SMCLicensees.GremlinGraphics0x12),
+ new CustomOptionFieldChoice(SMCLicensees.ElectronicArts0x13),
+ new CustomOptionFieldChoice(SMCLicensees.NCSMasaya),
+ new CustomOptionFieldChoice(SMCLicensees.COBRATeam),
+ new CustomOptionFieldChoice(SMCLicensees.HumanField),
+ new CustomOptionFieldChoice(SMCLicensees.Koei0x17),
+ new CustomOptionFieldChoice(SMCLicensees.HudsonSoft),
+ new CustomOptionFieldChoice(SMCLicensees.GameVillage),
+ new CustomOptionFieldChoice(SMCLicensees.Yanoman),
+ new CustomOptionFieldChoice(SMCLicensees.Tecmo),
+ new CustomOptionFieldChoice(SMCLicensees.OpenSystem),
+ new CustomOptionFieldChoice(SMCLicensees.VirginGames),
+ new CustomOptionFieldChoice(SMCLicensees.KSS),
+ new CustomOptionFieldChoice(SMCLicensees.Sunsoft0x21),
+ new CustomOptionFieldChoice(SMCLicensees.POW),
+ new CustomOptionFieldChoice(SMCLicensees.MicroWorld),
+ new CustomOptionFieldChoice(SMCLicensees.Enix),
+ new CustomOptionFieldChoice(SMCLicensees.LoricielElectroBrain),
+ new CustomOptionFieldChoice(SMCLicensees.Kemco0x28),
+ new CustomOptionFieldChoice(SMCLicensees.SetaCoLtd),
+ new CustomOptionFieldChoice(SMCLicensees.CultureBrain0x2A),
+ new CustomOptionFieldChoice(SMCLicensees.IremJapan),
+ new CustomOptionFieldChoice(SMCLicensees.PalSoft),
+ new CustomOptionFieldChoice(SMCLicensees.VisitCoLtd),
+ new CustomOptionFieldChoice(SMCLicensees.INTEC),
+ new CustomOptionFieldChoice(SMCLicensees.SystemSacomCorp),
+ new CustomOptionFieldChoice(SMCLicensees.ViacomNewMedia),
+ new CustomOptionFieldChoice(SMCLicensees.Carrozzeria),
+ new CustomOptionFieldChoice(SMCLicensees.Dynamic),
+ new CustomOptionFieldChoice(SMCLicensees.Nintendo0x33),
+ new CustomOptionFieldChoice(SMCLicensees.Magifact),
+ new CustomOptionFieldChoice(SMCLicensees.Hect),
+ new CustomOptionFieldChoice(SMCLicensees.CapcomEurope),
+ new CustomOptionFieldChoice(SMCLicensees.AccoladeEurope),
+ new CustomOptionFieldChoice(SMCLicensees.ArcadeZone),
+ new CustomOptionFieldChoice(SMCLicensees.EmpireSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.Loriciel),
+ new CustomOptionFieldChoice(SMCLicensees.GremlinGraphics0x3E),
+ new CustomOptionFieldChoice(SMCLicensees.SeikaCorp),
+ new CustomOptionFieldChoice(SMCLicensees.UBISoft),
+ new CustomOptionFieldChoice(SMCLicensees.LifeFitnessExertainment),
+ new CustomOptionFieldChoice(SMCLicensees.System3),
+ new CustomOptionFieldChoice(SMCLicensees.SpectrumHolobyte),
+ new CustomOptionFieldChoice(SMCLicensees.Irem),
+ new CustomOptionFieldChoice(SMCLicensees.RayaSystemsSculpturedSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.RenovationProducts),
+ new CustomOptionFieldChoice(SMCLicensees.MalibuGamesBlackPearl),
+ new CustomOptionFieldChoice(SMCLicensees.USGold),
+ new CustomOptionFieldChoice(SMCLicensees.AbsoluteEntertainment),
+ new CustomOptionFieldChoice(SMCLicensees.Acclaim0x51),
+ new CustomOptionFieldChoice(SMCLicensees.Activision),
+ new CustomOptionFieldChoice(SMCLicensees.AmericanSammy),
+ new CustomOptionFieldChoice(SMCLicensees.GameTek),
+ new CustomOptionFieldChoice(SMCLicensees.HiTechExpressions),
+ new CustomOptionFieldChoice(SMCLicensees.LJNToys),
+ new CustomOptionFieldChoice(SMCLicensees.Mindscape),
+ new CustomOptionFieldChoice(SMCLicensees.RomstarInc),
+ new CustomOptionFieldChoice(SMCLicensees.Tradewest),
+ new CustomOptionFieldChoice(SMCLicensees.AmericanSoftworksCorp),
+ new CustomOptionFieldChoice(SMCLicensees.Titus),
+ new CustomOptionFieldChoice(SMCLicensees.VirginInteractiveEntertainment),
+ new CustomOptionFieldChoice(SMCLicensees.Maxis),
+ new CustomOptionFieldChoice(SMCLicensees.OriginFCIPonyCanyon),
+ new CustomOptionFieldChoice(SMCLicensees.Ocean),
+ new CustomOptionFieldChoice(SMCLicensees.ElectronicArts0x69),
+ new CustomOptionFieldChoice(SMCLicensees.LaserBeam),
+ new CustomOptionFieldChoice(SMCLicensees.Elite),
+ new CustomOptionFieldChoice(SMCLicensees.ElectroBrain),
+ new CustomOptionFieldChoice(SMCLicensees.Infogrames),
+ new CustomOptionFieldChoice(SMCLicensees.Interplay),
+ new CustomOptionFieldChoice(SMCLicensees.LucasArts),
+ new CustomOptionFieldChoice(SMCLicensees.ParkerBrothers),
+ new CustomOptionFieldChoice(SMCLicensees.Konami0x74),
+ new CustomOptionFieldChoice(SMCLicensees.STORM),
+ new CustomOptionFieldChoice(SMCLicensees.THQSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.AccoladeInc),
+ new CustomOptionFieldChoice(SMCLicensees.TriffixEntertainment),
+ new CustomOptionFieldChoice(SMCLicensees.Microprose),
+ new CustomOptionFieldChoice(SMCLicensees.Kemco0x7F),
+ new CustomOptionFieldChoice(SMCLicensees.Misawa),
+ new CustomOptionFieldChoice(SMCLicensees.Teichio),
+ new CustomOptionFieldChoice(SMCLicensees.NamcoLtd0x82),
+ new CustomOptionFieldChoice(SMCLicensees.Lozc),
+ new CustomOptionFieldChoice(SMCLicensees.Koei0x84),
+ new CustomOptionFieldChoice(SMCLicensees.TokumaShotenIntermedia),
+ new CustomOptionFieldChoice(SMCLicensees.TsukudaOriginal),
+ new CustomOptionFieldChoice(SMCLicensees.DATAMPolystar),
+ new CustomOptionFieldChoice(SMCLicensees.BulletProofSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.VicTokai),
+ new CustomOptionFieldChoice(SMCLicensees.CharacterSoft),
+ new CustomOptionFieldChoice(SMCLicensees.IMax),
+ new CustomOptionFieldChoice(SMCLicensees.Takara0x90),
+ new CustomOptionFieldChoice(SMCLicensees.CHUNSoft),
+ new CustomOptionFieldChoice(SMCLicensees.VideoSystemCoLtd),
+ new CustomOptionFieldChoice(SMCLicensees.BEC),
+ new CustomOptionFieldChoice(SMCLicensees.Varie),
+ new CustomOptionFieldChoice(SMCLicensees.YonezawaSPalCorp),
+ new CustomOptionFieldChoice(SMCLicensees.Kaneco),
+ new CustomOptionFieldChoice(SMCLicensees.PackInVideo),
+ new CustomOptionFieldChoice(SMCLicensees.Nichibutsu),
+ new CustomOptionFieldChoice(SMCLicensees.TECMO),
+ new CustomOptionFieldChoice(SMCLicensees.ImagineerCo),
+ new CustomOptionFieldChoice(SMCLicensees.Telenet),
+ new CustomOptionFieldChoice(SMCLicensees.Hori),
+ new CustomOptionFieldChoice(SMCLicensees.Konami0xA4),
+ new CustomOptionFieldChoice(SMCLicensees.KAmusementLeasingCo),
+ new CustomOptionFieldChoice(SMCLicensees.Takara0xA7),
+ new CustomOptionFieldChoice(SMCLicensees.TechnosJap),
+ new CustomOptionFieldChoice(SMCLicensees.JVC),
+ new CustomOptionFieldChoice(SMCLicensees.ToeiAnimation),
+ new CustomOptionFieldChoice(SMCLicensees.Toho),
+ new CustomOptionFieldChoice(SMCLicensees.NamcoLtd0xAF),
+ new CustomOptionFieldChoice(SMCLicensees.MediaRingsCorp),
+ new CustomOptionFieldChoice(SMCLicensees.ASCIICoActivision),
+ new CustomOptionFieldChoice(SMCLicensees.Bandai),
+ new CustomOptionFieldChoice(SMCLicensees.EnixAmerica),
+ new CustomOptionFieldChoice(SMCLicensees.Halken),
+ new CustomOptionFieldChoice(SMCLicensees.CultureBrain0xBA),
+ new CustomOptionFieldChoice(SMCLicensees.Sunsoft0xBB),
+ new CustomOptionFieldChoice(SMCLicensees.ToshibaEMI),
+ new CustomOptionFieldChoice(SMCLicensees.SonyImagesoft),
+ new CustomOptionFieldChoice(SMCLicensees.Sammy),
+ new CustomOptionFieldChoice(SMCLicensees.Taito),
+ new CustomOptionFieldChoice(SMCLicensees.Kemco0xC2),
+ new CustomOptionFieldChoice(SMCLicensees.Square),
+ new CustomOptionFieldChoice(SMCLicensees.TokumaSoft),
+ new CustomOptionFieldChoice(SMCLicensees.DataEast),
+ new CustomOptionFieldChoice(SMCLicensees.TonkinHouse),
+ new CustomOptionFieldChoice(SMCLicensees.Koei0xC8),
+ new CustomOptionFieldChoice(SMCLicensees.KonamiUSA),
+ new CustomOptionFieldChoice(SMCLicensees.NTVIC),
+ new CustomOptionFieldChoice(SMCLicensees.Meldac),
+ new CustomOptionFieldChoice(SMCLicensees.PonyCanyon),
+ new CustomOptionFieldChoice(SMCLicensees.SotsuAgencySunrise),
+ new CustomOptionFieldChoice(SMCLicensees.DiscoTaito),
+ new CustomOptionFieldChoice(SMCLicensees.Sofel),
+ new CustomOptionFieldChoice(SMCLicensees.QuestCorp),
+ new CustomOptionFieldChoice(SMCLicensees.Sigma),
+ new CustomOptionFieldChoice(SMCLicensees.AskKodanshaCoLtd),
+ new CustomOptionFieldChoice(SMCLicensees.Naxat),
+ new CustomOptionFieldChoice(SMCLicensees.CapcomCoLtd),
+ new CustomOptionFieldChoice(SMCLicensees.Banpresto),
+ new CustomOptionFieldChoice(SMCLicensees.Tomy),
+ new CustomOptionFieldChoice(SMCLicensees.Acclaim0xDB),
+ new CustomOptionFieldChoice(SMCLicensees.NCS),
+ new CustomOptionFieldChoice(SMCLicensees.HumanEntertainment),
+ new CustomOptionFieldChoice(SMCLicensees.Altron),
+ new CustomOptionFieldChoice(SMCLicensees.Jaleco0xE0),
+ new CustomOptionFieldChoice(SMCLicensees.Yutaka),
+ new CustomOptionFieldChoice(SMCLicensees.TAndESoft),
+ new CustomOptionFieldChoice(SMCLicensees.EPOCHCoLtd),
+ new CustomOptionFieldChoice(SMCLicensees.Athena),
+ new CustomOptionFieldChoice(SMCLicensees.Asmik),
+ new CustomOptionFieldChoice(SMCLicensees.Natsume),
+ new CustomOptionFieldChoice(SMCLicensees.KingRecords),
+ new CustomOptionFieldChoice(SMCLicensees.Atlus),
+ new CustomOptionFieldChoice(SMCLicensees.SonyMusicEntertainment),
+ new CustomOptionFieldChoice(SMCLicensees.IGS),
+ new CustomOptionFieldChoice(SMCLicensees.MotownSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.LeftFieldEntertainment),
+ new CustomOptionFieldChoice(SMCLicensees.BeamSoftware),
+ new CustomOptionFieldChoice(SMCLicensees.TecMagik),
+ new CustomOptionFieldChoice(SMCLicensees.Cybersoft),
+ new CustomOptionFieldChoice(SMCLicensees.Psygnosis),
+ new CustomOptionFieldChoice(SMCLicensees.Davidson),
+ }));
+
_dfr.Filters.Add("Nintendo SNES executable", new string[] { "*.smc", "*.sfc", "*.swc", "*.fig", "*.ufo", "*.?gm" });
_dfr.Sources.Add("http://romhack.wikia.com/wiki/SNES_ROM_layout");
_dfr.Sources.Add("http://romhack.wikia.com/wiki/SNES_header");
@@ -28,12 +236,29 @@ namespace UniversalEditor.DataFormats.Executable.Nintendo.SNES
private SMCExtendedHeader mvarExtendedHeader = new SMCExtendedHeader();
public SMCExtendedHeader ExtendedHeader { get { return mvarExtendedHeader; } }
+ private SMCRegion mvarRegion = SMCRegions.Japan;
+ ///
+ /// The region in which the game is licensed.
+ ///
+ public SMCRegion Region { get { return mvarRegion; } set { mvarRegion = value; } }
+
+ private SMCLicensee mvarLicensee = SMCLicensees.None;
+ ///
+ /// The licensed organization that developed the game.
+ ///
+ public SMCLicensee Licensee { get { return mvarLicensee; } set { mvarLicensee = value; } }
+
+ ///
+ /// Loads game data into the specified .
+ ///
+ /// The into which to load the data.
protected override void LoadInternal(ref ObjectModel objectModel)
{
ExecutableObjectModel exe = (objectModel as ExecutableObjectModel);
if (exe == null) throw new ObjectModelNotSupportedException();
Reader reader = base.Accessor.Reader;
+
mvarExtendedHeader.Enabled = (base.Accessor.Length % 1024 == 512);
if (mvarExtendedHeader.Enabled)
@@ -117,15 +342,50 @@ namespace UniversalEditor.DataFormats.Executable.Nintendo.SNES
// Country code, which selects the video in the emulator. Values $00, $01, $0d use NTSC.
// Values in range $02..$0c use PAL. Other values are invalid.
byte countryCode = reader.ReadByte();
+ mvarRegion = SMCRegion.FromCode(countryCode);
// Licensee code. If this value is $33, then the ROM has an extended header with ID at
// $ffb2..$ffb5.
byte licenseeCode = reader.ReadByte();
+ mvarLicensee = SMCLicensee.FromCode(licenseeCode);
+
+ if (licenseeCode == 0x33)
+ {
+
+ }
byte versionNumber = reader.ReadByte();
+
+ ushort checksumComplement = reader.ReadUInt16();
+ ushort checksum = reader.ReadUInt16();
+
+ int checksumCheck = ((int)checksum + (int)checksumComplement);
+ if (checksumCheck != 0xFFFF) throw new InvalidDataFormatException("Invalid checksum/checksum complement pair");
+
+ int unknown2 = reader.ReadInt32();
+
+ short nativeInterruptVectorCOP = reader.ReadInt16();
+ short nativeInterruptVectorBRK = reader.ReadInt16();
+ short nativeInterruptVectorABORT = reader.ReadInt16();
+ short nativeInterruptVectorNMI = reader.ReadInt16(); // vertical blank
+ short nativeInterruptVectorUnused = reader.ReadInt16();
+ short nativeInterruptVectorIRQ = reader.ReadInt16();
+
+ int unknown3 = reader.ReadInt32();
+
+ short emulationInterruptVectorCOP = reader.ReadInt16();
+ short emulationInterruptVectorUnused = reader.ReadInt16();
+ short emulationInterruptVectorABORT = reader.ReadInt16();
+ short emulationInterruptVectorNMI = reader.ReadInt16(); // vertical blank
+ short emulationInterruptVectorRESET = reader.ReadInt16();
+ short emulationInterruptVectorIRQorBRK = reader.ReadInt16();
#endregion
}
+ ///
+ /// Saves game data from the specified .
+ ///
+ /// The from which to save the data.
protected override void SaveInternal(ObjectModel objectModel)
{
ExecutableObjectModel exe = (objectModel as ExecutableObjectModel);
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCLicensee.cs b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCLicensee.cs
new file mode 100644
index 00000000..51266ce6
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCLicensee.cs
@@ -0,0 +1,1303 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+
+namespace UniversalEditor.DataFormats.Executable.Nintendo.SNES
+{
+ ///
+ /// A company that has licensed the use of the Nintendo SNES game console for development.
+ ///
+ ///
+ public class SMCLicensee
+ {
+ private string mvarTitle = String.Empty;
+ ///
+ /// The title of the company or individual holding the development license.
+ ///
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ private byte mvarValue = 0;
+ ///
+ /// The single-byte code that represents this licensee in the Nintendo SNES game console.
+ ///
+ public byte Value { get { return mvarValue; } set { mvarValue = value; } }
+
+ ///
+ /// Gets the with the given licensee code if valid.
+ ///
+ /// The licensee code to search on.
+ /// If the licensee code is known, returns an instance of the associated . Otherwise, returns null.
+ public static SMCLicensee FromCode(byte value)
+ {
+ Type t = typeof(SMCLicensees);
+
+ MethodAttributes methodAttributes = MethodAttributes.Public | MethodAttributes.Static;
+ PropertyInfo[] properties = t.GetProperties();
+ for (int i = 0; i < properties.Length; i++)
+ {
+ PropertyInfo propertyInfo = properties[i];
+ if (propertyInfo.PropertyType == typeof(SMCLicensee))
+ {
+ MethodInfo getMethod = propertyInfo.GetGetMethod();
+ if (getMethod != null && (getMethod.Attributes & methodAttributes) == methodAttributes)
+ {
+ object[] index = null;
+ SMCLicensee val = (SMCLicensee)propertyInfo.GetValue(null, index);
+
+ if (val.Value == value) return val;
+ }
+ }
+ }
+ return null;
+ }
+
+ ///
+ /// Creates a new instance of with the given title and value.
+ ///
+ ///
+ ///
+ public SMCLicensee(string title, byte value)
+ {
+ mvarTitle = title;
+ mvarValue = value;
+ }
+
+ ///
+ /// Translates this into a human-readable string, including the
+ /// title of the region and the country code.
+ ///
+ /// A human-readable string representing this .
+ public override string ToString()
+ {
+ return mvarTitle + " (0x" + mvarValue.ToString("X").PadLeft(2, '0') + ")";
+ }
+ }
+ ///
+ /// Licensees that have been defined by the SNES SMC data format. This class cannot be inherited.
+ ///
+ public sealed class SMCLicensees
+ {
+ private static SMCLicensee mvarNone = new SMCLicensee("(none)", 0x00);
+ ///
+ /// Gets the representing no currently-supported licensee.
+ ///
+ public static SMCLicensee None { get { return mvarNone; } }
+
+ private static SMCLicensee mvarNintendo0x01 = new SMCLicensee("Nintendo", 0x01);
+ ///
+ /// Gets the representing "Nintendo" with a code of 0x01.
+ ///
+ public static SMCLicensee Nintendo0x01 { get { return mvarNintendo0x01; } }
+
+ private static SMCLicensee mvarAjinomoto = new SMCLicensee("Ajinomoto", 0x02);
+ ///
+ /// Gets the representing "Ajinomoto".
+ ///
+ public static SMCLicensee Ajinomoto { get { return mvarAjinomoto; } }
+
+ private static SMCLicensee mvarImagineerZoom = new SMCLicensee("Imagineer-Zoom", 0x03);
+ ///
+ /// Gets the representing "Imagineer-Zoom".
+ ///
+ public static SMCLicensee ImagineerZoom { get { return mvarImagineerZoom; } }
+
+ private static SMCLicensee mvarChrisGrayEnterprises = new SMCLicensee("Chris Gray Enterprises Inc.", 0x04);
+ ///
+ /// Gets the representing "Chris Gray Enterprises, Inc.".
+ ///
+ public static SMCLicensee ChrisGrayEnterprises { get { return mvarChrisGrayEnterprises; } }
+
+ private static SMCLicensee mvarZamuse = new SMCLicensee("Zamuse", 0x05);
+ ///
+ /// Gets the representing "Zamuse".
+ ///
+ public static SMCLicensee Zamuse { get { return mvarZamuse; } }
+
+ private static SMCLicensee mvarFalcom = new SMCLicensee("Falcom", 0x06);
+ ///
+ /// Gets the representing "Falcom".
+ ///
+ public static SMCLicensee Falcom { get { return mvarFalcom; } }
+
+
+ // UNK, 0x07
+
+ private static SMCLicensee mvarCapcom = new SMCLicensee("Capcom", 0x08);
+ ///
+ /// Gets the representing "Capcom".
+ ///
+ public static SMCLicensee Capcom { get { return mvarCapcom; } }
+
+ private static SMCLicensee mvarHotB = new SMCLicensee("HOT-B", 0x09);
+ ///
+ /// Gets the representing "HOT-B".
+ ///
+ public static SMCLicensee HotB { get { return mvarHotB; } }
+
+ private static SMCLicensee mvarJaleco0x0A = new SMCLicensee("Jaleco", 0x0A);
+ ///
+ /// Gets the representing "Jaleco" with a code of 0x0A.
+ ///
+ public static SMCLicensee Jaleco0x0A { get { return mvarJaleco0x0A; } }
+
+ private static SMCLicensee mvarCoconuts = new SMCLicensee("Coconuts", 0x0B);
+ ///
+ /// Gets the representing "Coconuts".
+ ///
+ public static SMCLicensee Coconuts { get { return mvarCoconuts; } }
+
+ private static SMCLicensee mvarRageSoftware = new SMCLicensee("Rage Software", 0x0C);
+ ///
+ /// Gets the representing "Rage Software".
+ ///
+ public static SMCLicensee RageSoftware { get { return mvarRageSoftware; } }
+
+ private static SMCLicensee mvarMicronet = new SMCLicensee("Micronet", 0x0D);
+ ///
+ /// Gets the representing "Micronet".
+ ///
+ public static SMCLicensee Micronet { get { return mvarMicronet; } }
+
+ private static SMCLicensee mvarTechnos = new SMCLicensee("Technos", 0x0E);
+ ///
+ /// Gets the representing "Technos".
+ ///
+ public static SMCLicensee Technos { get { return mvarTechnos; } }
+
+ private static SMCLicensee mvarMebioSoftware = new SMCLicensee("Mebio Software", 0x0F);
+ ///
+ /// Gets the representing "Mebio Software".
+ ///
+ public static SMCLicensee MebioSoftware { get { return mvarMebioSoftware; } }
+
+ private static SMCLicensee mvarSHOUEiSystem = new SMCLicensee("SHOUEi System", 0x10);
+ ///
+ /// Gets the representing "SHOUEi System".
+ ///
+ public static SMCLicensee SHOUEiSystem { get { return mvarSHOUEiSystem; } }
+
+ private static SMCLicensee mvarStarfish = new SMCLicensee("Starfish", 0x11);
+ ///
+ /// Gets the representing "Starfish".
+ ///
+ public static SMCLicensee Starfish { get { return mvarStarfish; } }
+
+ private static SMCLicensee mvarGremlinGraphics0x12 = new SMCLicensee("Gremlin Graphics", 0x12);
+ ///
+ /// Gets the representing "Gremlin Graphics" with a code of 0x12.
+ ///
+ public static SMCLicensee GremlinGraphics0x12 { get { return mvarGremlinGraphics0x12; } }
+
+ private static SMCLicensee mvarElectronicArts0x13 = new SMCLicensee("Electronic Arts", 0x13);
+ ///
+ /// Gets the representing "Electronic Arts" with a code of 0x13.
+ ///
+ public static SMCLicensee ElectronicArts0x13 { get { return mvarElectronicArts0x13; } }
+
+ private static SMCLicensee mvarNCSMasaya = new SMCLicensee("NCS / Masaya", 0x14);
+ ///
+ /// Gets the representing "NCS / Masaya".
+ ///
+ public static SMCLicensee NCSMasaya { get { return mvarNCSMasaya; } }
+
+ private static SMCLicensee mvarCOBRATeam = new SMCLicensee("COBRA Team", 0x15);
+ ///
+ /// Gets the representing "COBRA Team".
+ ///
+ public static SMCLicensee COBRATeam { get { return mvarCOBRATeam; } }
+
+ private static SMCLicensee mvarHumanField = new SMCLicensee("Human/Field", 0x16);
+ ///
+ /// Gets the representing "Human/Field".
+ ///
+ public static SMCLicensee HumanField { get { return mvarHumanField; } }
+
+ private static SMCLicensee mvarKoei0x17 = new SMCLicensee("KOEI", 0x17);
+ ///
+ /// Gets the representing "KOEI" with a code of 0x17.
+ ///
+ public static SMCLicensee Koei0x17 { get { return mvarKoei0x17; } }
+
+ private static SMCLicensee mvarHudsonSoft = new SMCLicensee("Hudson Soft", 0x18);
+ ///
+ /// Gets the representing "Hudson Soft".
+ ///
+ public static SMCLicensee HudsonSoft { get { return mvarHudsonSoft; } }
+
+ private static SMCLicensee mvarGameVillage = new SMCLicensee("Game Village", 0x19);
+ ///
+ /// Gets the representing "Game Village".
+ ///
+ public static SMCLicensee GameVillage { get { return mvarGameVillage; } }
+
+ private static SMCLicensee mvarYanoman = new SMCLicensee("Yanoman", 0x1A);
+ ///
+ /// Gets the representing "Yanoman".
+ ///
+ public static SMCLicensee Yanoman { get { return mvarYanoman; } }
+
+ // UNK 0x1B
+
+ private static SMCLicensee mvarTecmo = new SMCLicensee("Tecmo", 0x1C);
+ ///
+ /// Gets the representing "Tecmo".
+ ///
+ public static SMCLicensee Tecmo { get { return mvarTecmo; } }
+
+ // UNK 0x1D
+
+ private static SMCLicensee mvarOpenSystem = new SMCLicensee("Open System", 0x1E);
+ ///
+ /// Gets the representing "Open System".
+ ///
+ public static SMCLicensee OpenSystem { get { return mvarOpenSystem; } }
+
+ private static SMCLicensee mvarVirginGames = new SMCLicensee("Virgin Games", 0x1F);
+ ///
+ /// Gets the representing "Virgin Games".
+ ///
+ public static SMCLicensee VirginGames { get { return mvarVirginGames; } }
+
+ private static SMCLicensee mvarKSS = new SMCLicensee("KSS", 0x20);
+ ///
+ /// Gets the representing "KSS".
+ ///
+ public static SMCLicensee KSS { get { return mvarKSS; } }
+
+ private static SMCLicensee mvarSunsoft0x21 = new SMCLicensee("Sunsoft", 0x21);
+ ///
+ /// Gets the representing "Sunsoft" with a code of 0x21.
+ ///
+ public static SMCLicensee Sunsoft0x21 { get { return mvarSunsoft0x21; } }
+
+ private static SMCLicensee mvarPOW = new SMCLicensee("POW", 0x22);
+ ///
+ /// Gets the representing "POW".
+ ///
+ public static SMCLicensee POW { get { return mvarPOW; } }
+
+ private static SMCLicensee mvarMicroWorld = new SMCLicensee("Micro World", 0x23);
+ ///
+ /// Gets the representing "Micro World".
+ ///
+ public static SMCLicensee MicroWorld { get { return mvarMicroWorld; } }
+
+ // UNK 0x24
+ // UNK 0x25
+
+ private static SMCLicensee mvarEnix = new SMCLicensee("Enix", 0x26);
+ ///
+ /// Gets the representing "Enix".
+ ///
+ public static SMCLicensee Enix { get { return mvarEnix; } }
+
+ private static SMCLicensee mvarLoricielElectroBrain = new SMCLicensee("Loriciel/Electro Brain", 0x27);
+ ///
+ /// Gets the representing "Loriciel/Electro Brain".
+ ///
+ public static SMCLicensee LoricielElectroBrain { get { return mvarLoricielElectroBrain; } }
+
+ private static SMCLicensee mvarKemco0x28 = new SMCLicensee("Kemco", 0x28);
+ ///
+ /// Gets the representing "Kemco" with a code of 0x28.
+ ///
+ public static SMCLicensee Kemco0x28 { get { return mvarKemco0x28; } }
+
+ private static SMCLicensee mvarSetaCoLtd = new SMCLicensee("Seta Co.,Ltd.", 0x29);
+ ///
+ /// Gets the representing "Seta Co.,Ltd.".
+ ///
+ public static SMCLicensee SetaCoLtd { get { return mvarSetaCoLtd; } }
+
+ private static SMCLicensee mvarCultureBrain0x2A = new SMCLicensee("Culture Brain", 0x2A);
+ ///
+ /// Gets the representing "Culture Brain" with a code of 0x2A.
+ ///
+ public static SMCLicensee CultureBrain0x2A { get { return mvarCultureBrain0x2A; } }
+
+ private static SMCLicensee mvarIremJapan = new SMCLicensee("Irem Japan", 0x2B);
+ ///
+ /// Gets the representing "Irem Japan".
+ ///
+ public static SMCLicensee IremJapan { get { return mvarIremJapan; } }
+
+ private static SMCLicensee mvarPalSoft = new SMCLicensee("Pal Soft", 0x2C);
+ ///
+ /// Gets the representing "Pal Soft".
+ ///
+ public static SMCLicensee PalSoft { get { return mvarPalSoft; } }
+
+ private static SMCLicensee mvarVisitCoLtd = new SMCLicensee("Visit Co.,Ltd.", 0x2D);
+ ///
+ /// Gets the representing "Visit Co.,Ltd.".
+ ///
+ public static SMCLicensee VisitCoLtd { get { return mvarVisitCoLtd; } }
+
+ private static SMCLicensee mvarINTEC = new SMCLicensee("INTEC Inc.", 0x2E);
+ ///
+ /// Gets the representing "INTEC Inc.".
+ ///
+ public static SMCLicensee INTEC { get { return mvarINTEC; } }
+
+ private static SMCLicensee mvarSystemSacomCorp = new SMCLicensee("System Sacom Corp.", 0x2F);
+ ///
+ /// Gets the representing "System Sacom Corp.".
+ ///
+ public static SMCLicensee SystemSacomCorp { get { return mvarSystemSacomCorp; } }
+
+ private static SMCLicensee mvarViacomNewMedia = new SMCLicensee("Viacom New Media", 0x30);
+ ///
+ /// Gets the representing "Viacom New Media".
+ ///
+ public static SMCLicensee ViacomNewMedia { get { return mvarViacomNewMedia; } }
+
+ private static SMCLicensee mvarCarrozzeria = new SMCLicensee("Carrozzeria", 0x31);
+ ///
+ /// Gets the representing "Carrozzeria".
+ ///
+ public static SMCLicensee Carrozzeria { get { return mvarCarrozzeria; } }
+
+ private static SMCLicensee mvarDynamic = new SMCLicensee("Dynamic", 0x32);
+ ///
+ /// Gets the representing "Dynamic".
+ ///
+ public static SMCLicensee Dynamic { get { return mvarDynamic; } }
+
+ private static SMCLicensee mvarNintendo0x33 = new SMCLicensee("Nintendo", 0x33);
+ ///
+ /// Gets the representing "Nintendo".
+ ///
+ public static SMCLicensee Nintendo0x33 { get { return mvarNintendo0x33; } }
+
+ private static SMCLicensee mvarMagifact = new SMCLicensee("Magifact", 0x34);
+ ///
+ /// Gets the representing "Magifact".
+ ///
+ public static SMCLicensee Magifact { get { return mvarMagifact; } }
+
+ private static SMCLicensee mvarHect = new SMCLicensee("Hect", 0x35);
+ ///
+ /// Gets the representing "Hect".
+ ///
+ public static SMCLicensee Hect { get { return mvarHect; } }
+
+ // UNK 0x36
+ // UNK 0x37
+
+ private static SMCLicensee mvarCapcomEurope = new SMCLicensee("Capcom Europe", 0x38);
+ ///
+ /// Gets the representing "Capcom Europe".
+ ///
+ public static SMCLicensee CapcomEurope { get { return mvarCapcomEurope; } }
+
+ private static SMCLicensee mvarAccoladeEurope = new SMCLicensee("Accolade Europe", 0x39);
+ ///
+ /// Gets the representing "Accolade Europe".
+ ///
+ public static SMCLicensee AccoladeEurope { get { return mvarAccoladeEurope; } }
+
+ // UNK 0x3A
+
+ private static SMCLicensee mvarArcadeZone = new SMCLicensee("Arcade Zone", 0x3B);
+ ///
+ /// Gets the representing "Arcade Zone".
+ ///
+ public static SMCLicensee ArcadeZone { get { return mvarArcadeZone; } }
+
+ private static SMCLicensee mvarEmpireSoftware = new SMCLicensee("Empire Software", 0x3C);
+ ///
+ /// Gets the representing "Empire Software".
+ ///
+ public static SMCLicensee EmpireSoftware { get { return mvarEmpireSoftware; } }
+
+ private static SMCLicensee mvarLoriciel = new SMCLicensee("Loriciel", 0x3D);
+ ///
+ /// Gets the representing "Loriciel".
+ ///
+ public static SMCLicensee Loriciel { get { return mvarLoriciel; } }
+
+ private static SMCLicensee mvarGremlinGraphics0x3E = new SMCLicensee("Gremlin Graphics", 0x3E);
+ ///
+ /// Gets the representing "Gremlin Graphics" with a code of 0x3E.
+ ///
+ public static SMCLicensee GremlinGraphics0x3E { get { return mvarGremlinGraphics0x3E; } }
+
+ // UNK 0x3F
+
+ private static SMCLicensee mvarSeikaCorp = new SMCLicensee("Seika Corp.", 0x40);
+ ///
+ /// Gets the representing "Seika Corp.".
+ ///
+ public static SMCLicensee SeikaCorp { get { return mvarSeikaCorp; } }
+
+ private static SMCLicensee mvarUBISoft = new SMCLicensee("UBI Soft", 0x41);
+ ///
+ /// Gets the representing "UBI Soft".
+ ///
+ public static SMCLicensee UBISoft { get { return mvarUBISoft; } }
+
+ // UNK 0x42
+ // UNK 0x43
+
+ private static SMCLicensee mvarLifeFitnessExertainment = new SMCLicensee("LifeFitness Exertainment", 0x44);
+ ///
+ /// Gets the representing "LifeFitness Exertainment".
+ ///
+ public static SMCLicensee LifeFitnessExertainment { get { return mvarLifeFitnessExertainment; } }
+
+ // UNK 0x45
+
+ private static SMCLicensee mvarSystem3 = new SMCLicensee("System 3", 0x46);
+ ///
+ /// Gets the representing "System 3".
+ ///
+ public static SMCLicensee System3 { get { return mvarSystem3; } }
+
+ private static SMCLicensee mvarSpectrumHolobyte = new SMCLicensee("Spectrum Holobyte", 0x47);
+ ///
+ /// Gets the representing "Spectrum Holobyte".
+ ///
+ public static SMCLicensee SpectrumHolobyte { get { return mvarSpectrumHolobyte; } }
+
+ // UNK 0x48
+
+ private static SMCLicensee mvarIrem = new SMCLicensee("Irem", 0x49);
+ ///
+ /// Gets the representing "Irem".
+ ///
+ public static SMCLicensee Irem { get { return mvarIrem; } }
+
+ // UNK 0x4A
+
+ private static SMCLicensee mvarRayaSystemsSculpturedSoftware = new SMCLicensee("Raya Systems/Sculptured Software", 0x4B);
+ ///
+ /// Gets the representing "Raya Systems/Sculptured Software".
+ ///
+ public static SMCLicensee RayaSystemsSculpturedSoftware { get { return mvarRayaSystemsSculpturedSoftware; } }
+
+ private static SMCLicensee mvarRenovationProducts = new SMCLicensee("Renovation Products", 0x4C);
+ ///
+ /// Gets the representing "Irem".
+ ///
+ public static SMCLicensee RenovationProducts { get { return mvarRenovationProducts; } }
+
+ private static SMCLicensee mvarMalibuGamesBlackPearl = new SMCLicensee("Malibu Games/Black Pearl", 0x4D);
+ ///
+ /// Gets the representing "Malibu Games/Black Pearl".
+ ///
+ public static SMCLicensee MalibuGamesBlackPearl { get { return mvarMalibuGamesBlackPearl; } }
+
+ // UNK 0x4E
+
+ private static SMCLicensee mvarUSGold = new SMCLicensee("U.S. Gold", 0x4F);
+ ///
+ /// Gets the representing "U.S. Gold".
+ ///
+ public static SMCLicensee USGold { get { return mvarUSGold; } }
+
+ private static SMCLicensee mvarAbsoluteEntertainment = new SMCLicensee("Absolute Entertainment", 0x50);
+ ///
+ /// Gets the representing "Absolute Entertainment".
+ ///
+ public static SMCLicensee AbsoluteEntertainment { get { return mvarAbsoluteEntertainment; } }
+
+ private static SMCLicensee mvarAcclaim0x51 = new SMCLicensee("Acclaim", 0x51);
+ ///
+ /// Gets the representing "Acclaim" with a code of 0x51.
+ ///
+ public static SMCLicensee Acclaim0x51 { get { return mvarAcclaim0x51; } }
+
+ private static SMCLicensee mvarActivision = new SMCLicensee("Activision", 0x52);
+ ///
+ /// Gets the representing "Activision".
+ ///
+ public static SMCLicensee Activision { get { return mvarActivision; } }
+
+ private static SMCLicensee mvarAmericanSammy = new SMCLicensee("American Sammy", 0x53);
+ ///
+ /// Gets the representing "American Sammy".
+ ///
+ public static SMCLicensee AmericanSammy { get { return mvarAmericanSammy; } }
+
+ private static SMCLicensee mvarGameTek = new SMCLicensee("GameTek", 0x54);
+ ///
+ /// Gets the representing "GameTek".
+ ///
+ public static SMCLicensee GameTek { get { return mvarGameTek; } }
+
+ private static SMCLicensee mvarHiTechExpressions = new SMCLicensee("Hi Tech Expressions", 0x55);
+ ///
+ /// Gets the representing "Hi Tech Expressions".
+ ///
+ public static SMCLicensee HiTechExpressions { get { return mvarHiTechExpressions; } }
+
+ private static SMCLicensee mvarLJNToys = new SMCLicensee("LJN Toys", 0x56);
+ ///
+ /// Gets the representing "LJN Toys".
+ ///
+ public static SMCLicensee LJNToys { get { return mvarLJNToys; } }
+
+ // UNK 0x57
+ // UNK 0x58
+ // UNK 0x59
+
+ private static SMCLicensee mvarMindscape = new SMCLicensee("Mindscape", 0x5A);
+ ///
+ /// Gets the representing "Mindscape".
+ ///
+ public static SMCLicensee Mindscape { get { return mvarMindscape; } }
+
+ private static SMCLicensee mvarRomstarInc = new SMCLicensee("Romstar, Inc.", 0x5B);
+ ///
+ /// Gets the representing "Romstar, Inc.".
+ ///
+ public static SMCLicensee RomstarInc { get { return mvarRomstarInc; } }
+
+ // UNK 0x5C
+
+ private static SMCLicensee mvarTradewest = new SMCLicensee("Tradewest", 0x5D);
+ ///
+ /// Gets the representing "Tradewest".
+ ///
+ public static SMCLicensee Tradewest { get { return mvarTradewest; } }
+
+ // UNK 0x5E
+
+ private static SMCLicensee mvarAmericanSoftworksCorp = new SMCLicensee("American Softworks Corp.", 0x5F);
+ ///
+ /// Gets the representing "American Softworks Corp.".
+ ///
+ public static SMCLicensee AmericanSoftworksCorp { get { return mvarAmericanSoftworksCorp; } }
+
+ private static SMCLicensee mvarTitus = new SMCLicensee("Titus", 0x60);
+ ///
+ /// Gets the representing "Titus".
+ ///
+ public static SMCLicensee Titus { get { return mvarTitus; } }
+
+ private static SMCLicensee mvarVirginInteractiveEntertainment = new SMCLicensee("Virgin Interactive Entertainment", 0x61);
+ ///
+ /// Gets the representing "Virgin Interactive Entertainment".
+ ///
+ public static SMCLicensee VirginInteractiveEntertainment { get { return mvarVirginInteractiveEntertainment; } }
+
+ private static SMCLicensee mvarMaxis = new SMCLicensee("Maxis", 0x62);
+ ///
+ /// Gets the representing "Maxis".
+ ///
+ public static SMCLicensee Maxis { get { return mvarMaxis; } }
+
+ private static SMCLicensee mvarOriginFCIPonyCanyon = new SMCLicensee("Origin/FCI/Pony Canyon", 0x63);
+ ///
+ /// Gets the representing "Origin/FCI/Pony Canyon".
+ ///
+ public static SMCLicensee OriginFCIPonyCanyon { get { return mvarOriginFCIPonyCanyon; } }
+
+ // UNK 0x64
+ // UNK 0x65
+ // UNK 0x66
+
+ private static SMCLicensee mvarOcean = new SMCLicensee("Ocean", 0x67);
+ ///
+ /// Gets the representing "Maxis".
+ ///
+ public static SMCLicensee Ocean { get { return mvarOcean; } }
+
+ // UNK 0x68
+
+ private static SMCLicensee mvarElectronicArts0x69 = new SMCLicensee("Electronic Arts", 0x69);
+ ///
+ /// Gets the representing "Electronic Arts" with a code of 0x69.
+ ///
+ public static SMCLicensee ElectronicArts0x69 { get { return mvarElectronicArts0x69; } }
+
+ // UNK 0x6A
+
+ private static SMCLicensee mvarLaserBeam = new SMCLicensee("Laser Beam", 0x6B);
+ ///
+ /// Gets the representing "Laser Beam".
+ ///
+ public static SMCLicensee LaserBeam { get { return mvarLaserBeam; } }
+
+ // UNK 0x6C
+ // UNK 0x6D
+
+ private static SMCLicensee mvarElite = new SMCLicensee("Elite", 0x6E);
+ ///
+ /// Gets the representing "Elite".
+ ///
+ public static SMCLicensee Elite { get { return mvarElite; } }
+
+ private static SMCLicensee mvarElectroBrain = new SMCLicensee("Electro Brain", 0x6F);
+ ///
+ /// Gets the representing "Electro Brain".
+ ///
+ public static SMCLicensee ElectroBrain { get { return mvarElectroBrain; } }
+
+ private static SMCLicensee mvarInfogrames = new SMCLicensee("Infogrames", 0x70);
+ ///
+ /// Gets the representing "Infogrames".
+ ///
+ public static SMCLicensee Infogrames { get { return mvarInfogrames; } }
+
+ private static SMCLicensee mvarInterplay = new SMCLicensee("Interplay", 0x71);
+ ///
+ /// Gets the representing "Interplay".
+ ///
+ public static SMCLicensee Interplay { get { return mvarInterplay; } }
+
+ private static SMCLicensee mvarLucasArts = new SMCLicensee("LucasArts", 0x72);
+ ///
+ /// Gets the representing "LucasArts".
+ ///
+ public static SMCLicensee LucasArts { get { return mvarLucasArts; } }
+
+ private static SMCLicensee mvarParkerBrothers = new SMCLicensee("Parker Brothers", 0x73);
+ ///
+ /// Gets the representing "Parker Brothers".
+ ///
+ public static SMCLicensee ParkerBrothers { get { return mvarParkerBrothers; } }
+
+ private static SMCLicensee mvarKonami0x74 = new SMCLicensee("Konami", 0x74);
+ ///
+ /// Gets the representing "Konami" with a code of 0x74.
+ ///
+ public static SMCLicensee Konami0x74 { get { return mvarKonami0x74; } }
+
+ private static SMCLicensee mvarSTORM = new SMCLicensee("STORM", 0x75);
+ ///
+ /// Gets the representing "STORM".
+ ///
+ public static SMCLicensee STORM { get { return mvarSTORM; } }
+
+ // UNK 0x76
+ // UNK 0x77
+
+ private static SMCLicensee mvarTHQSoftware = new SMCLicensee("THQ Software", 0x78);
+ ///
+ /// Gets the representing "THQ Software".
+ ///
+ public static SMCLicensee THQSoftware { get { return mvarTHQSoftware; } }
+
+ private static SMCLicensee mvarAccoladeInc = new SMCLicensee("Accolade Inc.", 0x79);
+ ///
+ /// Gets the representing "Accolade Inc.".
+ ///
+ public static SMCLicensee AccoladeInc { get { return mvarAccoladeInc; } }
+
+ private static SMCLicensee mvarTriffixEntertainment = new SMCLicensee("Triffix Entertainment", 0x7A);
+ ///
+ /// Gets the representing "Triffix Entertainment".
+ ///
+ public static SMCLicensee TriffixEntertainment { get { return mvarTriffixEntertainment; } }
+
+ // UNK 0x7B
+
+ private static SMCLicensee mvarMicroprose = new SMCLicensee("Microprose", 0x7C);
+ ///
+ /// Gets the representing "Microprose".
+ ///
+ public static SMCLicensee Microprose { get { return mvarMicroprose; } }
+
+ // UNK 0x7D
+ // UNK 0x7E
+
+ private static SMCLicensee mvarKemco0x7F = new SMCLicensee("Kemco", 0x7F);
+ ///
+ /// Gets the representing "Kemco" with a code of 0x7F.
+ ///
+ public static SMCLicensee Kemco0x7F { get { return mvarKemco0x7F; } }
+
+ private static SMCLicensee mvarMisawa = new SMCLicensee("Misawa", 0x80);
+ ///
+ /// Gets the representing "Misawa".
+ ///
+ public static SMCLicensee Misawa { get { return mvarMisawa; } }
+
+ private static SMCLicensee mvarTeichio = new SMCLicensee("Teichio", 0x81);
+ ///
+ /// Gets the representing "Teichio".
+ ///
+ public static SMCLicensee Teichio { get { return mvarTeichio; } }
+
+ private static SMCLicensee mvarNamcoLtd0x82 = new SMCLicensee("Namco Ltd.", 0x82);
+ ///
+ /// Gets the representing "Namco Ltd." with a code of 0x82.
+ ///
+ public static SMCLicensee NamcoLtd0x82 { get { return mvarNamcoLtd0x82; } }
+
+ private static SMCLicensee mvarLozc = new SMCLicensee("Lozc", 0x83);
+ ///
+ /// Gets the representing "Lozc".
+ ///
+ public static SMCLicensee Lozc { get { return mvarLozc; } }
+
+ private static SMCLicensee mvarKoei0x84 = new SMCLicensee("Koei", 0x84);
+ ///
+ /// Gets the representing "Koei" with a code of 0x84.
+ ///
+ public static SMCLicensee Koei0x84 { get { return mvarKoei0x84; } }
+
+ // UNK 0x85
+
+ private static SMCLicensee mvarTokumaShotenIntermedia = new SMCLicensee("Tokuma Shoten Intermedia", 0x86);
+ ///
+ /// Gets the representing "Tokuma Shoten Intermedia".
+ ///
+ public static SMCLicensee TokumaShotenIntermedia { get { return mvarTokumaShotenIntermedia; } }
+
+ private static SMCLicensee mvarTsukudaOriginal = new SMCLicensee("Tsukuda Original", 0x87);
+ ///
+ /// Gets the representing "Tsukuda Original".
+ ///
+ public static SMCLicensee TsukudaOriginal { get { return mvarTsukudaOriginal; } }
+
+ private static SMCLicensee mvarDATAMPolystar = new SMCLicensee("DATAM-Polystar", 0x88);
+ ///
+ /// Gets the representing "DATAM-Polystar".
+ ///
+ public static SMCLicensee DATAMPolystar { get { return mvarDATAMPolystar; } }
+
+ // UNK 0x89
+ // UNK 0x8A
+
+ private static SMCLicensee mvarBulletProofSoftware = new SMCLicensee("Bullet-Proof Software", 0x8B);
+ ///
+ /// Gets the representing "Bullet-Proof Software".
+ ///
+ public static SMCLicensee BulletProofSoftware { get { return mvarBulletProofSoftware; } }
+
+ private static SMCLicensee mvarVicTokai = new SMCLicensee("Vic Tokai", 0x8C);
+ ///
+ /// Gets the representing "Vic Tokai".
+ ///
+ public static SMCLicensee VicTokai { get { return mvarVicTokai; } }
+
+ // UNK 0x8D
+
+ private static SMCLicensee mvarCharacterSoft = new SMCLicensee("Character Soft", 0x8E);
+ ///
+ /// Gets the representing "Character Soft".
+ ///
+ public static SMCLicensee CharacterSoft { get { return mvarCharacterSoft; } }
+
+ private static SMCLicensee mvarIMax = new SMCLicensee("I\'\'Max", 0x8F);
+ ///
+ /// Gets the representing "I\'\'Max".
+ ///
+ public static SMCLicensee IMax { get { return mvarIMax; } }
+
+ private static SMCLicensee mvarTakara0x90 = new SMCLicensee("Takara", 0x90);
+ ///
+ /// Gets the representing "Takara" with a code of 0x90.
+ ///
+ public static SMCLicensee Takara0x90 { get { return mvarTakara0x90; } }
+
+ private static SMCLicensee mvarCHUNSoft = new SMCLicensee("CHUN Soft", 0x91);
+ ///
+ /// Gets the representing "CHUN Soft".
+ ///
+ public static SMCLicensee CHUNSoft { get { return mvarCHUNSoft; } }
+
+ private static SMCLicensee mvarVideoSystemCoLtd = new SMCLicensee("Video System Co., Ltd.", 0x92);
+ ///
+ /// Gets the representing "Video System Co., Ltd.".
+ ///
+ public static SMCLicensee VideoSystemCoLtd { get { return mvarVideoSystemCoLtd; } }
+
+ private static SMCLicensee mvarBEC = new SMCLicensee("BEC", 0x93);
+ ///
+ /// Gets the representing "BEC".
+ ///
+ public static SMCLicensee BEC { get { return mvarBEC; } }
+
+ // UNK 0x94
+
+ private static SMCLicensee mvarVarie = new SMCLicensee("Varie", 0x95);
+ ///
+ /// Gets the representing "Varie".
+ ///
+ public static SMCLicensee Varie { get { return mvarVarie; } }
+
+ private static SMCLicensee mvarYonezawaSPalCorp = new SMCLicensee("Yonezawa / S'Pal Corp.", 0x96);
+ ///
+ /// Gets the representing "Yonezawa / S'Pal Corp.".
+ ///
+ public static SMCLicensee YonezawaSPalCorp { get { return mvarYonezawaSPalCorp; } }
+
+ private static SMCLicensee mvarKaneco = new SMCLicensee("Kaneco", 0x97);
+ ///
+ /// Gets the representing "Kaneco".
+ ///
+ public static SMCLicensee Kaneco { get { return mvarKaneco; } }
+
+ // UNK 0x98
+
+ private static SMCLicensee mvarPackInVideo = new SMCLicensee("Pack in Video", 0x99);
+ ///
+ /// Gets the representing "Pack in Video".
+ ///
+ public static SMCLicensee PackInVideo { get { return mvarPackInVideo; } }
+
+ private static SMCLicensee mvarNichibutsu = new SMCLicensee("Nichibutsu", 0x9A);
+ ///
+ /// Gets the representing "Nichibutsu".
+ ///
+ public static SMCLicensee Nichibutsu { get { return mvarNichibutsu; } }
+
+ private static SMCLicensee mvarTECMO = new SMCLicensee("TECMO", 0x9B);
+ ///
+ /// Gets the representing "TECMO".
+ ///
+ public static SMCLicensee TECMO { get { return mvarTECMO; } }
+
+ private static SMCLicensee mvarImagineerCo = new SMCLicensee("Imagineer Co.", 0x9C);
+ ///
+ /// Gets the representing "Imagineer Co.".
+ ///
+ public static SMCLicensee ImagineerCo { get { return mvarImagineerCo; } }
+
+ // UNK 0x9D
+ // UNK 0x9E
+ // UNK 0x9F
+
+ private static SMCLicensee mvarTelenet = new SMCLicensee("Telenet", 0xA0);
+ ///
+ /// Gets the representing "Telenet".
+ ///
+ public static SMCLicensee Telenet { get { return mvarTelenet; } }
+
+ private static SMCLicensee mvarHori = new SMCLicensee("Hori", 0xA1);
+ ///
+ /// Gets the representing "Hori".
+ ///
+ public static SMCLicensee Hori { get { return mvarHori; } }
+
+ // UNK 0xA2
+ // UNK 0xA3
+
+ private static SMCLicensee mvarKonami0xA4 = new SMCLicensee("Konami", 0xA4);
+ ///
+ /// Gets the representing "Konami" with a code of 0xA4.
+ ///
+ public static SMCLicensee Konami0xA4 { get { return mvarKonami0xA4; } }
+
+ private static SMCLicensee mvarKAmusementLeasingCo = new SMCLicensee("K.Amusement Leasing Co.", 0xA5);
+ ///
+ /// Gets the representing "K.Amusement Leasing Co.".
+ ///
+ public static SMCLicensee KAmusementLeasingCo { get { return mvarKAmusementLeasingCo; } }
+
+ // UNK 0xA6
+
+ private static SMCLicensee mvarTakara0xA7 = new SMCLicensee("Takara", 0xA7);
+ ///
+ /// Gets the representing "Takara" with a code of 0xA7.
+ ///
+ public static SMCLicensee Takara0xA7 { get { return mvarTakara0xA7; } }
+
+ // UNK 0xA8
+
+ private static SMCLicensee mvarTechnosJap = new SMCLicensee("Technos Jap.", 0xA9);
+ ///
+ /// Gets the representing "Technos Jap.".
+ ///
+ public static SMCLicensee TechnosJap { get { return mvarTechnosJap; } }
+
+ private static SMCLicensee mvarJVC = new SMCLicensee("JVC", 0xAA);
+ ///
+ /// Gets the representing "JVC".
+ ///
+ public static SMCLicensee JVC { get { return mvarJVC; } }
+
+ // UNK 0xAB
+
+ private static SMCLicensee mvarToeiAnimation = new SMCLicensee("Toei Animation", 0xAC);
+ ///
+ /// Gets the representing "Toei Animation".
+ ///
+ public static SMCLicensee ToeiAnimation { get { return mvarToeiAnimation; } }
+
+ private static SMCLicensee mvarToho = new SMCLicensee("Toho", 0xAD);
+ ///
+ /// Gets the representing "Toho".
+ ///
+ public static SMCLicensee Toho { get { return mvarToho; } }
+
+ // UNK 0xAE
+
+ private static SMCLicensee mvarNamcoLtd0xAF = new SMCLicensee("Namco Ltd.", 0xAF);
+ ///
+ /// Gets the representing "Namco Ltd." with a code of 0xAF.
+ ///
+ public static SMCLicensee NamcoLtd0xAF { get { return mvarNamcoLtd0xAF; } }
+
+ private static SMCLicensee mvarMediaRingsCorp = new SMCLicensee("Media Rings Corp.", 0xB0);
+ ///
+ /// Gets the representing "Media Rings Corp.".
+ ///
+ public static SMCLicensee MediaRingsCorp { get { return mvarMediaRingsCorp; } }
+
+ private static SMCLicensee mvarASCIICoActivision = new SMCLicensee("ASCII Co. Activison", 0xB1);
+ ///
+ /// Gets the representing "ASCII Co. Activison".
+ ///
+ public static SMCLicensee ASCIICoActivision { get { return mvarASCIICoActivision; } }
+
+ private static SMCLicensee mvarBandai = new SMCLicensee("Bandai", 0xB2);
+ ///
+ /// Gets the representing "Bandai".
+ ///
+ public static SMCLicensee Bandai { get { return mvarBandai; } }
+
+ // UNK 0xB3
+
+ private static SMCLicensee mvarEnixAmerica = new SMCLicensee("Enix America", 0xB4);
+ ///
+ /// Gets the representing "Enix America".
+ ///
+ public static SMCLicensee EnixAmerica { get { return mvarEnixAmerica; } }
+
+ // UNK 0xB5
+
+ private static SMCLicensee mvarHalken = new SMCLicensee("Halken", 0xB6);
+ ///
+ /// Gets the representing "Halken".
+ ///
+ public static SMCLicensee Halken { get { return mvarHalken; } }
+
+ // UNK 0xB7
+ // UNK 0xB8
+ // UNK 0xB9
+
+ private static SMCLicensee mvarCultureBrain0xBA = new SMCLicensee("Culture Brain", 0xBA);
+ ///
+ /// Gets the representing "Culture Brain" with a code of 0xBA.
+ ///
+ public static SMCLicensee CultureBrain0xBA { get { return mvarCultureBrain0xBA; } }
+
+ private static SMCLicensee mvarSunsoft0xBB = new SMCLicensee("Sunsoft", 0xBB);
+ ///
+ /// Gets the representing "Sunsoft" with a code of 0xBB.
+ ///
+ public static SMCLicensee Sunsoft0xBB { get { return mvarSunsoft0xBB; } }
+
+ private static SMCLicensee mvarToshibaEMI = new SMCLicensee("Toshiba EMI", 0xBC);
+ ///
+ /// Gets the representing "Toshiba EMI".
+ ///
+ public static SMCLicensee ToshibaEMI { get { return mvarToshibaEMI; } }
+
+ private static SMCLicensee mvarSonyImagesoft = new SMCLicensee("Sony Imagesoft", 0xBD);
+ ///
+ /// Gets the representing "Sony Imagesoft".
+ ///
+ public static SMCLicensee SonyImagesoft { get { return mvarSonyImagesoft; } }
+
+ // UNK 0xBE
+
+ private static SMCLicensee mvarSammy = new SMCLicensee("Sammy", 0xBF);
+ ///
+ /// Gets the representing "Sammy".
+ ///
+ public static SMCLicensee Sammy { get { return mvarSammy; } }
+
+ private static SMCLicensee mvarTaito = new SMCLicensee("Taito", 0xC0);
+ ///
+ /// Gets the representing "Taito".
+ ///
+ public static SMCLicensee Taito { get { return mvarTaito; } }
+
+ // UNK 0xC1
+
+ private static SMCLicensee mvarKemco0xC2 = new SMCLicensee("Kemco", 0xC2);
+ ///
+ /// Gets the representing "Kemco" with a code of 0xC2.
+ ///
+ public static SMCLicensee Kemco0xC2 { get { return mvarKemco0xC2; } }
+
+ private static SMCLicensee mvarSquare = new SMCLicensee("Square", 0xC3);
+ ///
+ /// Gets the representing "Square".
+ ///
+ public static SMCLicensee Square { get { return mvarSquare; } }
+
+ private static SMCLicensee mvarTokumaSoft = new SMCLicensee("Tokuma Soft", 0xC4);
+ ///
+ /// Gets the representing "Tokuma Soft".
+ ///
+ public static SMCLicensee TokumaSoft { get { return mvarTokumaSoft; } }
+
+ private static SMCLicensee mvarDataEast = new SMCLicensee("Data East", 0xC5);
+ ///
+ /// Gets the representing "Data East".
+ ///
+ public static SMCLicensee DataEast { get { return mvarDataEast; } }
+
+ private static SMCLicensee mvarTonkinHouse = new SMCLicensee("Tonkin House", 0xC6);
+ ///
+ /// Gets the representing "Tonkin House".
+ ///
+ public static SMCLicensee TonkinHouse { get { return mvarTonkinHouse; } }
+
+ // UNK 0xC7
+
+ private static SMCLicensee mvarKoei0xC8 = new SMCLicensee("KOEI", 0xC8);
+ ///
+ /// Gets the representing "KOEI" with a code of 0xC8.
+ ///
+ public static SMCLicensee Koei0xC8 { get { return mvarKoei0xC8; } }
+
+ // UNK 0xC9
+
+ private static SMCLicensee mvarKonamiUSA = new SMCLicensee("Konami USA", 0xCA);
+ ///
+ /// Gets the representing "Konami USA".
+ ///
+ public static SMCLicensee KonamiUSA { get { return mvarKonamiUSA; } }
+
+ private static SMCLicensee mvarNTVIC = new SMCLicensee("NTVIC", 0xCB);
+ ///
+ /// Gets the representing "NTVIC".
+ ///
+ public static SMCLicensee NTVIC { get { return mvarNTVIC; } }
+
+ // UNK 0xCC
+
+ private static SMCLicensee mvarMeldac = new SMCLicensee("Meldac", 0xCD);
+ ///
+ /// Gets the representing "Meldac".
+ ///
+ public static SMCLicensee Meldac { get { return mvarMeldac; } }
+
+ private static SMCLicensee mvarPonyCanyon = new SMCLicensee("Pony Canyon", 0xCE);
+ ///
+ /// Gets the representing "Pony Canyon".
+ ///
+ public static SMCLicensee PonyCanyon { get { return mvarPonyCanyon; } }
+
+ private static SMCLicensee mvarSotsuAgencySunrise = new SMCLicensee("Sotsu Agency/Sunrise", 0xCF);
+ ///
+ /// Gets the representing "Sotsu Agency/Sunrise".
+ ///
+ public static SMCLicensee SotsuAgencySunrise { get { return mvarSotsuAgencySunrise; } }
+
+ private static SMCLicensee mvarDiscoTaito = new SMCLicensee("Disco/Taito", 0xD0);
+ ///
+ /// Gets the representing "Disco/Taito".
+ ///
+ public static SMCLicensee DiscoTaito { get { return mvarDiscoTaito; } }
+
+ private static SMCLicensee mvarSofel = new SMCLicensee("Sofel", 0xD1);
+ ///
+ /// Gets the representing "Sofel".
+ ///
+ public static SMCLicensee Sofel { get { return mvarSofel; } }
+
+ private static SMCLicensee mvarQuestCorp = new SMCLicensee("Quest Corp.", 0xD2);
+ ///
+ /// Gets the representing "Quest Corp.".
+ ///
+ public static SMCLicensee QuestCorp { get { return mvarQuestCorp; } }
+
+ private static SMCLicensee mvarSigma = new SMCLicensee("Sigma", 0xD3);
+ ///
+ /// Gets the representing "Sigma".
+ ///
+ public static SMCLicensee Sigma { get { return mvarSigma; } }
+
+ private static SMCLicensee mvarAskKodanshaCoLtd = new SMCLicensee("Ask Kodansha Co., Ltd.", 0xD4);
+ ///
+ /// Gets the representing "Ask Kodansha Co., Ltd.".
+ ///
+ public static SMCLicensee AskKodanshaCoLtd { get { return mvarAskKodanshaCoLtd; } }
+
+ // UNK 0xD5
+
+ private static SMCLicensee mvarNaxat = new SMCLicensee("Naxat", 0xD6);
+ ///
+ /// Gets the representing "Naxat".
+ ///
+ public static SMCLicensee Naxat { get { return mvarNaxat; } }
+
+ // UNK 0xD7
+
+ private static SMCLicensee mvarCapcomCoLtd = new SMCLicensee("Capcom Co., Ltd.", 0xD8);
+ ///
+ /// Gets the representing "Capcom Co., Ltd.".
+ ///
+ public static SMCLicensee CapcomCoLtd { get { return mvarCapcomCoLtd; } }
+
+ private static SMCLicensee mvarBanpresto = new SMCLicensee("Banpresto", 0xD9);
+ ///
+ /// Gets the representing "Banpresto".
+ ///
+ public static SMCLicensee Banpresto { get { return mvarBanpresto; } }
+
+ private static SMCLicensee mvarTomy = new SMCLicensee("Tomy", 0xDA);
+ ///
+ /// Gets the representing "Tomy".
+ ///
+ public static SMCLicensee Tomy { get { return mvarTomy; } }
+
+ private static SMCLicensee mvarAcclaim0xDB = new SMCLicensee("Acclaim", 0xDB);
+ ///
+ /// Gets the representing "Acclaim" with a code of 0xDB.
+ ///
+ public static SMCLicensee Acclaim0xDB { get { return mvarAcclaim0xDB; } }
+
+ // UNK 0xDC
+
+ private static SMCLicensee mvarNCS = new SMCLicensee("NCS", 0xDD);
+ ///
+ /// Gets the representing "NCS".
+ ///
+ public static SMCLicensee NCS { get { return mvarNCS; } }
+
+ private static SMCLicensee mvarHumanEntertainment = new SMCLicensee("Human Entertainment", 0xDE);
+ ///
+ /// Gets the representing "Human Entertainment".
+ ///
+ public static SMCLicensee HumanEntertainment { get { return mvarHumanEntertainment; } }
+
+ private static SMCLicensee mvarAltron = new SMCLicensee("Altron", 0xDF);
+ ///
+ /// Gets the representing "Altron".
+ ///
+ public static SMCLicensee Altron { get { return mvarAltron; } }
+
+ private static SMCLicensee mvarJaleco0xE0 = new SMCLicensee("Jaleco", 0xE0);
+ ///
+ /// Gets the representing "Jaleco" with a code of 0xE0.
+ ///
+ public static SMCLicensee Jaleco0xE0 { get { return mvarJaleco0xE0; } }
+
+ // UNK 0xE1
+
+ private static SMCLicensee mvarYutaka = new SMCLicensee("Yutaka", 0xE2);
+ ///
+ /// Gets the representing "Yutaka".
+ ///
+ public static SMCLicensee Yutaka { get { return mvarYutaka; } }
+
+ // UNK 0xE3
+
+ private static SMCLicensee mvarTAndESoft = new SMCLicensee("T&ESoft", 0xE4);
+ ///
+ /// Gets the representing "T&ESoft".
+ ///
+ public static SMCLicensee TAndESoft { get { return mvarTAndESoft; } }
+
+ private static SMCLicensee mvarEPOCHCoLtd = new SMCLicensee("EPOCH Co.,Ltd.", 0xE5);
+ ///
+ /// Gets the representing "EPOCH Co.,Ltd.".
+ ///
+ public static SMCLicensee EPOCHCoLtd { get { return mvarEPOCHCoLtd; } }
+
+ // UNK 0xE6
+
+ private static SMCLicensee mvarAthena = new SMCLicensee("Athena", 0xE7);
+ ///
+ /// Gets the representing "Athena".
+ ///
+ public static SMCLicensee Athena { get { return mvarAthena; } }
+
+ private static SMCLicensee mvarAsmik = new SMCLicensee("Asmik", 0xE8);
+ ///
+ /// Gets the representing "Asmik".
+ ///
+ public static SMCLicensee Asmik { get { return mvarAsmik; } }
+
+ private static SMCLicensee mvarNatsume = new SMCLicensee("Natsume", 0xE9);
+ ///
+ /// Gets the representing "Natsume".
+ ///
+ public static SMCLicensee Natsume { get { return mvarNatsume; } }
+
+ private static SMCLicensee mvarKingRecords = new SMCLicensee("King Records", 0xEA);
+ ///
+ /// Gets the representing "King Records".
+ ///
+ public static SMCLicensee KingRecords { get { return mvarKingRecords; } }
+
+ private static SMCLicensee mvarAtlus = new SMCLicensee("Atlus", 0xEB);
+ ///
+ /// Gets the representing "Atlus".
+ ///
+ public static SMCLicensee Atlus { get { return mvarAtlus; } }
+
+ private static SMCLicensee mvarSonyMusicEntertainment = new SMCLicensee("Sony Music Entertainment", 0xEC);
+ ///
+ /// Gets the representing "Sony Music Entertainment".
+ ///
+ public static SMCLicensee SonyMusicEntertainment { get { return mvarSonyMusicEntertainment; } }
+
+ // UNK 0xED
+
+ private static SMCLicensee mvarIGS = new SMCLicensee("IGS", 0xEE);
+ ///
+ /// Gets the representing "IGS".
+ ///
+ public static SMCLicensee IGS { get { return mvarIGS; } }
+
+ // UNK 0xEF
+ // UNK 0xF0
+
+ private static SMCLicensee mvarMotownSoftware = new SMCLicensee("Motown Software", 0xF1);
+ ///
+ /// Gets the representing "Motown Software".
+ ///
+ public static SMCLicensee MotownSoftware { get { return mvarMotownSoftware; } }
+
+ private static SMCLicensee mvarLeftFieldEntertainment = new SMCLicensee("Left Field Entertainment", 0xF2);
+ ///
+ /// Gets the representing "Left Field Entertainment".
+ ///
+ public static SMCLicensee LeftFieldEntertainment { get { return mvarLeftFieldEntertainment; } }
+
+ private static SMCLicensee mvarBeamSoftware = new SMCLicensee("Beam Software", 0xF3);
+ ///
+ /// Gets the representing "Beam Software".
+ ///
+ public static SMCLicensee BeamSoftware { get { return mvarBeamSoftware; } }
+
+ private static SMCLicensee mvarTecMagik = new SMCLicensee("Tec Magik", 0xF4);
+ ///
+ /// Gets the representing "Tec Magik".
+ ///
+ public static SMCLicensee TecMagik { get { return mvarTecMagik; } }
+
+ // UNK 0xF5
+ // UNK 0xF6
+ // UNK 0xF7
+ // UNK 0xF8
+
+ private static SMCLicensee mvarCybersoft = new SMCLicensee("Cybersoft", 0xF9);
+ ///
+ /// Gets the representing "Cybersoft".
+ ///
+ public static SMCLicensee Cybersoft { get { return mvarCybersoft; } }
+
+ // UNK 0xFA
+
+ private static SMCLicensee mvarPsygnosis = new SMCLicensee("Psygnosis", 0xFB);
+ ///
+ /// Gets the representing "Psygnosis".
+ ///
+ public static SMCLicensee Psygnosis { get { return mvarPsygnosis; } }
+
+ // UNK 0xFC
+ // UNK 0xFD
+
+ private static SMCLicensee mvarDavidson = new SMCLicensee("Davidson", 0xFE);
+ ///
+ /// Gets the representing "Davidson".
+ ///
+ public static SMCLicensee Davidson { get { return mvarDavidson; } }
+
+ // UNK 0xFF
+
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCRegion.cs b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCRegion.cs
new file mode 100644
index 00000000..f49a113c
--- /dev/null
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/DataFormats/Executable/Nintendo/SNES/SMCRegion.cs
@@ -0,0 +1,173 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using UniversalEditor.Common;
+
+namespace UniversalEditor.DataFormats.Executable.Nintendo.SNES
+{
+ ///
+ ///
+ ///
+ /// 1
+ ///
+ public class SMCRegion
+ {
+ private string mvarTitle = String.Empty;
+ ///
+ /// The human-readable title of this .
+ ///
+ public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
+
+ private byte mvarValue = 0;
+ ///
+ /// The single-byte code that corresponds to this in the SMC data
+ /// format.
+ ///
+ public byte Value { get { return mvarValue; } set { mvarValue = value; } }
+
+ ///
+ /// Initializes a new with the specified title and value.
+ ///
+ /// The human-readable title of this .
+ /// The single-byte code that corresponds to this in the SMC data format.
+ public SMCRegion(string title, byte value)
+ {
+ mvarTitle = title;
+ mvarValue = value;
+ }
+
+ ///
+ /// Gets the with the given region code if valid.
+ ///
+ /// The region code to search on.
+ /// If the region code is known, returns an instance of the associated . Otherwise, returns null.
+ public static SMCRegion FromCode(byte value)
+ {
+ Type t = typeof(SMCRegions);
+
+ MethodAttributes methodAttributes = MethodAttributes.Public | MethodAttributes.Static;
+ PropertyInfo[] properties = t.GetProperties();
+ for (int i = 0; i < properties.Length; i++)
+ {
+ PropertyInfo propertyInfo = properties[i];
+ if (propertyInfo.PropertyType == typeof(SMCRegion))
+ {
+ MethodInfo getMethod = propertyInfo.GetGetMethod();
+ if (getMethod != null && (getMethod.Attributes & methodAttributes) == methodAttributes)
+ {
+ object[] index = null;
+ SMCRegion val = (SMCRegion)propertyInfo.GetValue(null, index);
+
+ if (val.Value == value) return val;
+ }
+ }
+ }
+ return null;
+ }
+
+ ///
+ /// Translates this into a human-readable string, including the
+ /// title of the region and the country code.
+ ///
+ /// A human-readable string representing this .
+ public override string ToString()
+ {
+ return mvarTitle + " (0x" + mvarValue.ToString("X").PadLeft(2, '0') + ")";
+ }
+ }
+ ///
+ /// Regions that have been defined by the SNES SMC data format. This class cannot be inherited.
+ ///
+ public sealed class SMCRegions
+ {
+ private static SMCRegion mvarJapan = new SMCRegion("Japan (NTSC)", 0x00);
+ ///
+ /// Gets the representing "Japan (NTSC)".
+ ///
+ public static SMCRegion Japan { get { return mvarJapan; } }
+
+ private static SMCRegion mvarNorthAmerica = new SMCRegion("USA and Canada (NTSC)", 0x01);
+ ///
+ /// Gets the representing "USA and Canada (NTSC)".
+ ///
+ public static SMCRegion NorthAmerica { get { return mvarNorthAmerica; } }
+
+ private static SMCRegion mvarEurasia = new SMCRegion("Europe, Oceania, and Asia (PAL)", 0x02);
+ ///
+ /// Gets the representing "Europe, Oceania, and Asia (PAL)".
+ ///
+ public static SMCRegion Eurasia { get { return mvarEurasia; } }
+
+ private static SMCRegion mvarSweden = new SMCRegion("Sweden (PAL)", 0x03);
+ ///
+ /// Gets the representing "Sweden (PAL)".
+ ///
+ public static SMCRegion Sweden { get { return mvarSweden; } }
+
+ private static SMCRegion mvarFinland = new SMCRegion("Finland (PAL)", 0x04);
+ ///
+ /// Gets the representing "Finland (PAL)".
+ ///
+ public static SMCRegion Finland { get { return mvarFinland; } }
+
+ private static SMCRegion mvarDenmark = new SMCRegion("Denmark (PAL)", 0x05);
+ ///
+ /// Gets the representing "Denmark (PAL)".
+ ///
+ public static SMCRegion Denmark { get { return mvarDenmark; } }
+
+ private static SMCRegion mvarFrance = new SMCRegion("France (PAL)", 0x06);
+ ///
+ /// Gets the representing "France (PAL)".
+ ///
+ public static SMCRegion France { get { return mvarFrance; } }
+
+ private static SMCRegion mvarHolland = new SMCRegion("Holland (PAL)", 0x07);
+ ///
+ /// Gets the representing "Holland (PAL)".
+ ///
+ public static SMCRegion Holland { get { return mvarHolland; } }
+
+ private static SMCRegion mvarSpain = new SMCRegion("Spain (PAL)", 0x08);
+ ///
+ /// Gets the representing "Spain (PAL)".
+ ///
+ public static SMCRegion Spain { get { return mvarSpain; } }
+
+ private static SMCRegion mvarGermanyAustriaSwitzerland = new SMCRegion("Germany, Austria, and Switzerland (PAL)", 0x09);
+ ///
+ /// Gets the representing "Germany, Austria, and Switzerland (PAL)".
+ ///
+ public static SMCRegion GermanyAustriaSwitzerland { get { return mvarGermanyAustriaSwitzerland; } }
+
+ private static SMCRegion mvarItaly = new SMCRegion("Italy (PAL)", 0x0A);
+ ///
+ /// Gets the representing "Italy (PAL)".
+ ///
+ public static SMCRegion Italy { get { return mvarItaly; } }
+
+ private static SMCRegion mvarHongKongAndChina = new SMCRegion("Hong Kong and China (PAL)", 0x0B);
+ ///
+ /// Gets the representing "Hong Kong and China (PAL)".
+ ///
+ public static SMCRegion HongKongAndChina { get { return mvarHongKongAndChina; } }
+
+ private static SMCRegion mvarIndonesia = new SMCRegion("Indonesia (PAL)", 0x0C);
+ ///
+ /// Gets the representing "Indonesia (PAL)".
+ ///
+ public static SMCRegion Indonesia { get { return mvarIndonesia; } }
+
+ private static SMCRegion mvarSouthKorea = new SMCRegion("South Korea (NTSC)", 0x0D);
+ ///
+ /// Gets the representing "South Korea (NTSC)".
+ ///
+ public static SMCRegion SouthKorea { get { return mvarSouthKorea; } }
+
+ // UNK 0x0E
+ // UNK 0x0F
+ }
+}
diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/UniversalEditor.Plugins.Nintendo.csproj b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/UniversalEditor.Plugins.Nintendo.csproj
index ba607263..4e18a753 100644
--- a/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/UniversalEditor.Plugins.Nintendo.csproj
+++ b/CSharp/Plugins/UniversalEditor.Plugins.Nintendo/UniversalEditor.Plugins.Nintendo.csproj
@@ -21,6 +21,7 @@
DEBUG;TRACE
prompt
4
+ ..\..\Output\Debug\Plugins\UniversalEditor.Plugins.Nintendo.xml
pdbonly
@@ -37,6 +38,8 @@
+
+