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 @@ + +