Guest User

Untitled

a guest
Mar 19th, 2013
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 70.78 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Xml.Serialization;
  7.  
  8. namespace XmlTests {
  9.     public class Program {
  10.  
  11.         static void Main(string[] args) {
  12.             // read in the .xml as generated by MAME.
  13.             IEnumerable<mameGame> fullGameList = ReadXmlGameDefinitions();
  14.  
  15.             // Define the cabinet.
  16.             CabinetDefinition cabinetDefinition = GetCabinetDefinition();
  17.  
  18.             // See which games match the cabinet definition.
  19.             var resultGameList = GetCompatibleGamesByCabinet(cabinetDefinition, fullGameList);
  20.  
  21.             // display the list.
  22.             DisplayResults(resultGameList);
  23.         }
  24.  
  25.         private static CabinetDefinition GetCabinetDefinition() {
  26.             CabinetDefinition cabinetDefinition = new CabinetDefinition();
  27.  
  28.             cabinetDefinition.monitor0 = new Monitor {
  29.                 orientation = Monitor.MonitorOrientation.Vertical,
  30.                 type = Monitor.MonitorType.Raster
  31.             };
  32.  
  33.             cabinetDefinition.input = new Input { buttons = 6 };
  34.  
  35.             cabinetDefinition.input.controls = new List<ControlMethod>();
  36.             cabinetDefinition.input.controls.Add(new ControlMethod {
  37.                 type = ControlMethod.ControlType.joy,
  38.                 ways = "8"
  39.             });
  40.  
  41.             return cabinetDefinition;
  42.         }
  43.  
  44.         private static IEnumerable<mameGame> ReadXmlGameDefinitions() {
  45.             XmlSerializer deserializer = new XmlSerializer(typeof(mame));
  46.             mame GameList = (mame)deserializer.Deserialize(new StringReader(File.ReadAllText("list.xml")));
  47.  
  48.             IEnumerable<mameGame> fullGameList = GameList.game.ToList(); // no lazy loading for us!
  49.             return fullGameList;
  50.         }
  51.  
  52.         private static void DisplayResults(IEnumerable<mameGame> resultGameList) {
  53.             // output a list of MAME games in the MAME XML format.  Not much use outside of debugging.
  54.             // this is where I will generate the list the of resulting games for selection in the web UI.
  55.  
  56.             Console.WriteLine(resultGameList.Count());
  57.  
  58.             //XmlSerializer serializer = new XmlSerializer(typeof(mame));
  59.  
  60.             //// describe the structure we're serializing to:
  61.             //mame mameSet = new mame();
  62.             //mameSet.game = resultGameList.ToArray<mameGame>();
  63.  
  64.             //// serialize it into a StringBuilder.
  65.             //StringBuilder output = new StringBuilder();
  66.             //serializer.Serialize(new StringWriter(output), mameSet);
  67.  
  68.             //// print the XML to the console.
  69.             //Console.WriteLine(output.ToString());
  70.         }
  71.  
  72.         /// <summary>
  73.         /// Gets a list of games which can be run and controlled by a cabinet as described.
  74.         /// </summary>
  75.         /// <param name="cab">Description of the cabinet which will play the MAME games.</param>
  76.         /// <param name="fullGameList">List of MAME games which are playable on the specified cabinet.</param>
  77.         /// <returns></returns>
  78.         private static IEnumerable<mameGame> GetCompatibleGamesByCabinet(CabinetDefinition cab, IEnumerable<mameGame> fullGameList) {
  79.  
  80.             // only interested in working games.
  81.             IEnumerable<mameGame> resultGames = fullGameList                                // 28403 remain
  82.                 .Where(x => x.driver != null)                                               // 28403 remain
  83.                 .Where(x => x.driver.status != null)                                        // 28403 remain
  84.                 .Where(x => x.driver.status == "good" || x.driver.status == "imperfect")    // 8070  remain
  85.                 ;
  86.  
  87.             resultGames = RestrictGamesByMonitorConfiguration(cab, resultGames);
  88.             resultGames = RestrictGamesByButtonCount(cab, resultGames);
  89.             resultGames = RestrictGamesByControlMethod(cab, resultGames);
  90.  
  91.             return resultGames;
  92.         }
  93.  
  94.         /// <summary>
  95.         /// Filters games from the list where the monitor configuration does not match the cabinet configuration (loosely.)
  96.         /// </summary>
  97.         /// <param name="cab">Cabinet Definition</param>
  98.         /// <param name="resultGames">The list of games which we will filter.</param>
  99.         /// <returns>The filtered list.</returns>
  100.         private static IEnumerable<mameGame> RestrictGamesByMonitorConfiguration(CabinetDefinition cab, IEnumerable<mameGame> resultGames) {
  101.             // almost all MAME cabinets will have a single monitor.  MAME is smart enough to do just about
  102.             // anything required on this single monitor.  We're not going to filter out a lot of games with
  103.             // this, but if the monitor is vertical, assume only vertical games are desired.
  104.             if (cab.monitor0 != null) {
  105.                 resultGames = resultGames.Where(x => x.display != null);
  106.  
  107.                 if (cab.monitor0.orientation == Monitor.MonitorOrientation.Vertical) {
  108.                     resultGames = resultGames.Where(x => x.display.Count(d => d.rotate == "270" || d.rotate == "90") > 0);
  109.                 } else if (cab.monitor0.orientation == Monitor.MonitorOrientation.Horizontal) {
  110.                     resultGames = resultGames.Where(x => x.display.Count(d => d.rotate == "0" || d.rotate == "180") > 0);
  111.                 }
  112.  
  113.                 // if the monitor is a vector monitor, only show vector games.  otherwise, do not restrict the results, as raster
  114.                 // monitors can display vector graphics.
  115.                 if (cab.monitor0.type == Monitor.MonitorType.Vector) {
  116.                     resultGames = resultGames.Where(x => x.display.Count(d => d.type == "vector") > 0);
  117.                 }
  118.             }
  119.             return resultGames;
  120.         }
  121.  
  122.         /// <summary>
  123.         /// Filters games from the list where the button configuration does not match the cabinet configuration (loosely.)
  124.         /// </summary>
  125.         /// <param name="cab">Cabinet Definition</param>
  126.         /// <param name="resultGames">The list of games which we will filter.</param>
  127.         /// <returns>The filtered list.</returns>
  128.         private static IEnumerable<mameGame> RestrictGamesByButtonCount(CabinetDefinition cab, IEnumerable<mameGame> resultGames) {
  129.             switch (cab.input.buttons) {
  130.                 // can't really take advantage of fallthrough, because the default .Where() operator is "AND" and we need "OR".
  131.                 case 0:
  132.                     resultGames = resultGames.Where(x => x.input.buttons == null);
  133.                     break;
  134.                 case 1:
  135.                     resultGames = resultGames.Where(x => x.input.buttons == null || x.input.buttons == "1");
  136.                     break;
  137.                 case 2:
  138.                     resultGames = resultGames.Where(x => x.input.buttons == null || x.input.buttons == "2" || x.input.buttons == "1");
  139.                     break;
  140.                 case 3:
  141.                     resultGames = resultGames.Where(x => x.input.buttons == null || x.input.buttons == "3" || x.input.buttons == "2" || x.input.buttons == "1");
  142.                     break;
  143.                 case 4:
  144.                     resultGames = resultGames.Where(x => x.input.buttons == null || x.input.buttons == "4" || x.input.buttons == "3" || x.input.buttons == "2" || x.input.buttons == "1");
  145.                     break;
  146.                 case 5:
  147.                     resultGames = resultGames.Where(x => x.input.buttons == null || x.input.buttons == "5" || x.input.buttons == "4" || x.input.buttons == "3" || x.input.buttons == "2" || x.input.buttons == "1");
  148.                     break;
  149.                 case 6:
  150.                     resultGames = resultGames.Where(x => x.input.buttons == null || x.input.buttons == "5" || x.input.buttons == "5" || x.input.buttons == "4" || x.input.buttons == "3" || x.input.buttons == "2" || x.input.buttons == "1");
  151.                     break;
  152.                 default:
  153.                     throw new NotImplementedException("Only 0-6 buttons are supported in this configurator, currently.");
  154.             }
  155.             return resultGames;
  156.         }
  157.  
  158.         /// <summary>
  159.         /// Filters games from the list where the control method configuration (joystick vs. steering wheel, etc.)
  160.         /// does not match the cabinet configuration (loosely.)  Makes some assumptions.
  161.         /// </summary>
  162.         /// <param name="cab">Cabinet Definition</param>
  163.         /// <param name="resultGames">The list of games which we will filter.</param>
  164.         /// <returns>The filtered list.</returns>
  165.         private static IEnumerable<mameGame> RestrictGamesByControlMethod(CabinetDefinition cab, IEnumerable<mameGame> resultGames) {
  166.             if (null == cab.input.controls || cab.input.controls.Count() == 0) {
  167.                 resultGames = resultGames.Where(x => x.input.control == null);
  168.             } else if (cab.input.controls != null) {
  169.  
  170.                 foreach (ControlMethod cm in cab.input.controls) {
  171.                     if (cm.type == ControlMethod.ControlType.joy) {
  172.                         resultGames = FilterByJoystickConfiguration(resultGames, cm);
  173.                     } else if (cm.type == ControlMethod.ControlType.dial) {
  174.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "dial") > 0);
  175.                     } else if (cm.type == ControlMethod.ControlType.doublejoy) {
  176.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "doublejoy") > 0);
  177.                     } else if (cm.type == ControlMethod.ControlType.lightgun) {
  178.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "lightgun") > 0);
  179.                     } else if (cm.type == ControlMethod.ControlType.trackball) {
  180.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "trackball") > 0);
  181.                     } else if (cm.type == ControlMethod.ControlType.stick) {
  182.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "stick") > 0);
  183.                     } else if (cm.type == ControlMethod.ControlType.paddle) {
  184.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "paddle") > 0);
  185.                     } else if (cm.type == ControlMethod.ControlType.pedal) {
  186.                         resultGames = resultGames.Where(x => x.input.control.Count(c => c.type == "pedal") > 0);
  187.                     }
  188.                 }
  189.             }
  190.  
  191.             return resultGames;
  192.         }
  193.  
  194.         /// <summary>
  195.         /// Filters games based on the joystick configuration.
  196.         /// </summary>
  197.         /// <param name="resultGames">List of games to be filtered.</param>
  198.         /// <param name="cm">ControlMethod describing the joystick configuration of the physical cabinet.</param>
  199.         /// <returns>Filtered list of games which can run on a physical cabinet of the given joystick configuration.</returns>
  200.         private static IEnumerable<mameGame> FilterByJoystickConfiguration(IEnumerable<mameGame> resultGames, ControlMethod cm) {
  201.             resultGames = resultGames
  202.                 .Where(x => x.input != null)
  203.                 .Where(x => x.input.control != null)
  204.                 .Where(x => x.input.control.Count(c => c.type == "joy") > 0);
  205.  
  206.             // If the joystick directions are specified, then restrict by that.  Otherwise don't restrict at all.
  207.             // this is imperfect.  I don't know how to check a specific joystick for a specific ways option.  This will be
  208.             // a problem if a game has different joystick setups per player...
  209.             if (null != cm.ways || cm.ways == "") {
  210.                 if (cm.ways == "8") {                   // 8-way sticks support all ways.
  211.                     resultGames = resultGames.Where(x => x.input.control.Count(t => t.type == "joy" && (t.ways == cm.ways || t.ways == "5 (half8)" || t.ways == "4" || t.ways == "3 (half4)" || t.ways == "2" || t.ways == "vertical2" || t.ways == "1")) > 0);
  212.                 } else if (cm.ways == "5 (half8)") {    // 5-way sticks support 5, 3, 2, and 1.
  213.                     resultGames = resultGames.Where(x => x.input.control.Count(t => t.type == "joy" && (t.ways == cm.ways || t.ways == "3 (half4)" || t.ways == "2" || t.ways == "1")) > 0);
  214.                 } else if (cm.ways == "4") {            // 4-way sticks support 4, 3, 1, vertical2, and 1.
  215.                     resultGames = resultGames.Where(x => x.input.control.Count(t => t.type == "joy" && (t.ways == cm.ways || t.ways == "3 (half4)" || t.ways == "2" || t.ways == "vertical2" || t.ways == "1")) > 0);
  216.                 } else if (cm.ways == "3 (half4)") {    // half-4 sticks support 3, 2, and 1.
  217.                     resultGames = resultGames.Where(x => x.input.control.Count(t => t.type == "joy" && (t.ways == cm.ways || t.ways == "2" || t.ways == "1")) > 0);
  218.                 } else {                                // other sticks only support their native ways.
  219.                     resultGames = resultGames.Where(x => x.input.control.Count(t => t.type == "joy" && t.ways == cm.ways) > 0);
  220.                 }
  221.             }
  222.  
  223.             return resultGames;
  224.         }
  225.  
  226.         # region CabinetConfiguration
  227.  
  228.         // should probably create a constructor that mandates at least one monitor and one control type,
  229.         // but MAME itself does not, so I'm not going to worry about it for now.
  230.         class CabinetDefinition {
  231.             public Monitor monitor0 { get; set; }
  232.             public Monitor monitor1 { get; set; }
  233.             public Monitor monitor2 { get; set; }
  234.             public Monitor monitor3 { get; set; }
  235.  
  236.             public Input input { get; set; }
  237.         }
  238.  
  239.         class Monitor {
  240.             public enum MonitorType { Raster, Vector, LCD };
  241.             public enum MonitorOrientation { Horizontal, Vertical };
  242.  
  243.             public MonitorType type { get; set; }
  244.             public MonitorOrientation orientation { get; set; }
  245.         }
  246.  
  247.         class Input {
  248.             public int buttons { get; set; }
  249.             public int players { get; set; }
  250.             public int coins { get; set; }
  251.  
  252.             public List<ControlMethod> controls { get; set; }
  253.         }
  254.  
  255.         class ControlMethod {
  256.             public enum ControlType { dial, doublejoy, gambling, hanafuda, joy, keyboard, keypad, lightgun, mahjong, mouse, paddle, pedal, positional, stick, trackball };
  257.             public ControlType type { get; set; }
  258.  
  259.             /// <summary>
  260.             /// Number of distinct directions the game recognizes joystick input.  Valid values are: "1", "2", "vertical2", "3 (half4)", "4", "5 (half8)", and "8".
  261.             /// </summary>
  262.             public string ways { get; set; } // for joysticks
  263.         }
  264.  
  265.         # endregion CabinetConfiguration
  266.  
  267.         # region MameDefinition
  268.  
  269.  
  270.         /// <remarks>
  271.         /// This was generated by the xsd tool provided by the Windows SDK.  I modified the .xsd file generated in the first step,
  272.         /// as the tool has a small bug where, in a few instances, it will believe that there can be any number of child elements,
  273.         /// when in fact the DTD only allows 0 or 1.  this affected mame.game.input and mame.game.sound, and possibly another, I
  274.         /// can't remember now.  If you generate this .cs file from -listxml output, you will have a different file than this,
  275.         /// slightly, and your file will not match the DTD at the head of the XML you generated due to that xsd.exe bug.  This
  276.         /// version is correct.
  277.         /// </remarks>
  278.         ///
  279.  
  280.         /// <remarks/>
  281.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  282.         [System.SerializableAttribute()]
  283.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  284.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  285.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  286.         [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
  287.         public partial class mame {
  288.  
  289.             private mameGame[] gameField;
  290.  
  291.             private string buildField;
  292.  
  293.             private string debugField;
  294.  
  295.             private string mameconfigField;
  296.  
  297.             /// <remarks/>
  298.             [System.Xml.Serialization.XmlElementAttribute("game", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  299.             public mameGame[] game {
  300.                 get {
  301.                     return this.gameField;
  302.                 }
  303.                 set {
  304.                     this.gameField = value;
  305.                 }
  306.             }
  307.  
  308.             /// <remarks/>
  309.             [System.Xml.Serialization.XmlAttributeAttribute()]
  310.             public string build {
  311.                 get {
  312.                     return this.buildField;
  313.                 }
  314.                 set {
  315.                     this.buildField = value;
  316.                 }
  317.             }
  318.  
  319.             /// <remarks/>
  320.             [System.Xml.Serialization.XmlAttributeAttribute()]
  321.             public string debug {
  322.                 get {
  323.                     return this.debugField;
  324.                 }
  325.                 set {
  326.                     this.debugField = value;
  327.                 }
  328.             }
  329.  
  330.             /// <remarks/>
  331.             [System.Xml.Serialization.XmlAttributeAttribute()]
  332.             public string mameconfig {
  333.                 get {
  334.                     return this.mameconfigField;
  335.                 }
  336.                 set {
  337.                     this.mameconfigField = value;
  338.                 }
  339.             }
  340.         }
  341.  
  342.         /// <remarks/>
  343.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  344.         [System.SerializableAttribute()]
  345.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  346.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  347.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  348.         public partial class mameGame {
  349.  
  350.             private string descriptionField;
  351.  
  352.             private string yearField;
  353.  
  354.             private string manufacturerField;
  355.  
  356.             private mameGameBiosset[] biossetField;
  357.  
  358.             private mameGameRom[] romField;
  359.  
  360.             private mameGameDisk[] diskField;
  361.  
  362.             private mameGameDevice_ref[] device_refField;
  363.  
  364.             private mameGameSample[] sampleField;
  365.  
  366.             private mameGameChip[] chipField;
  367.  
  368.             private mameGameDisplay[] displayField;
  369.  
  370.             private mameGameSound soundField;
  371.  
  372.             private mameGameInput inputField;
  373.  
  374.             private mameGameDipswitch[] dipswitchField;
  375.  
  376.             private mameGameConfiguration[] configurationField;
  377.  
  378.             private mameGameAdjuster[] adjusterField;
  379.  
  380.             private mameGameDriver driverField;
  381.  
  382.             private mameGameDevice[] deviceField;
  383.  
  384.             private mameGameSoftwarelist[] softwarelistField;
  385.  
  386.             private string nameField;
  387.  
  388.             private string sourcefileField;
  389.  
  390.             private string sampleofField;
  391.  
  392.             private string cloneofField;
  393.  
  394.             private string romofField;
  395.  
  396.             private string ismechanicalField;
  397.  
  398.             private string isbiosField;
  399.  
  400.             private string isdeviceField;
  401.  
  402.             private string runnableField;
  403.  
  404.             /// <remarks/>
  405.             [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  406.             public string description {
  407.                 get {
  408.                     return this.descriptionField;
  409.                 }
  410.                 set {
  411.                     this.descriptionField = value;
  412.                 }
  413.             }
  414.  
  415.             /// <remarks/>
  416.             [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  417.             public string year {
  418.                 get {
  419.                     return this.yearField;
  420.                 }
  421.                 set {
  422.                     this.yearField = value;
  423.                 }
  424.             }
  425.  
  426.             /// <remarks/>
  427.             [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  428.             public string manufacturer {
  429.                 get {
  430.                     return this.manufacturerField;
  431.                 }
  432.                 set {
  433.                     this.manufacturerField = value;
  434.                 }
  435.             }
  436.  
  437.             /// <remarks/>
  438.             [System.Xml.Serialization.XmlElementAttribute("biosset", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  439.             public mameGameBiosset[] biosset {
  440.                 get {
  441.                     return this.biossetField;
  442.                 }
  443.                 set {
  444.                     this.biossetField = value;
  445.                 }
  446.             }
  447.  
  448.             /// <remarks/>
  449.             [System.Xml.Serialization.XmlElementAttribute("rom", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  450.             public mameGameRom[] rom {
  451.                 get {
  452.                     return this.romField;
  453.                 }
  454.                 set {
  455.                     this.romField = value;
  456.                 }
  457.             }
  458.  
  459.             /// <remarks/>
  460.             [System.Xml.Serialization.XmlElementAttribute("disk", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  461.             public mameGameDisk[] disk {
  462.                 get {
  463.                     return this.diskField;
  464.                 }
  465.                 set {
  466.                     this.diskField = value;
  467.                 }
  468.             }
  469.  
  470.             /// <remarks/>
  471.             [System.Xml.Serialization.XmlElementAttribute("device_ref", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  472.             public mameGameDevice_ref[] device_ref {
  473.                 get {
  474.                     return this.device_refField;
  475.                 }
  476.                 set {
  477.                     this.device_refField = value;
  478.                 }
  479.             }
  480.  
  481.             /// <remarks/>
  482.             [System.Xml.Serialization.XmlElementAttribute("sample", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  483.             public mameGameSample[] sample {
  484.                 get {
  485.                     return this.sampleField;
  486.                 }
  487.                 set {
  488.                     this.sampleField = value;
  489.                 }
  490.             }
  491.  
  492.             /// <remarks/>
  493.             [System.Xml.Serialization.XmlElementAttribute("chip", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  494.             public mameGameChip[] chip {
  495.                 get {
  496.                     return this.chipField;
  497.                 }
  498.                 set {
  499.                     this.chipField = value;
  500.                 }
  501.             }
  502.  
  503.             /// <remarks/>
  504.             [System.Xml.Serialization.XmlElementAttribute("display", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  505.             public mameGameDisplay[] display {
  506.                 get {
  507.                     return this.displayField;
  508.                 }
  509.                 set {
  510.                     this.displayField = value;
  511.                 }
  512.             }
  513.  
  514.             /// <remarks/>
  515.             [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  516.             public mameGameSound sound {
  517.                 get {
  518.                     return this.soundField;
  519.                 }
  520.                 set {
  521.                     this.soundField = value;
  522.                 }
  523.             }
  524.  
  525.             /// <remarks/>
  526.             [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  527.             public mameGameInput input {
  528.                 get {
  529.                     return this.inputField;
  530.                 }
  531.                 set {
  532.                     this.inputField = value;
  533.                 }
  534.             }
  535.  
  536.             /// <remarks/>
  537.             [System.Xml.Serialization.XmlElementAttribute("dipswitch", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  538.             public mameGameDipswitch[] dipswitch {
  539.                 get {
  540.                     return this.dipswitchField;
  541.                 }
  542.                 set {
  543.                     this.dipswitchField = value;
  544.                 }
  545.             }
  546.  
  547.             /// <remarks/>
  548.             [System.Xml.Serialization.XmlElementAttribute("configuration", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  549.             public mameGameConfiguration[] configuration {
  550.                 get {
  551.                     return this.configurationField;
  552.                 }
  553.                 set {
  554.                     this.configurationField = value;
  555.                 }
  556.             }
  557.  
  558.             /// <remarks/>
  559.             [System.Xml.Serialization.XmlElementAttribute("adjuster", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  560.             public mameGameAdjuster[] adjuster {
  561.                 get {
  562.                     return this.adjusterField;
  563.                 }
  564.                 set {
  565.                     this.adjusterField = value;
  566.                 }
  567.             }
  568.  
  569.             /// <remarks/>
  570.             [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  571.             public mameGameDriver driver {
  572.                 get {
  573.                     return this.driverField;
  574.                 }
  575.                 set {
  576.                     this.driverField = value;
  577.                 }
  578.             }
  579.  
  580.             /// <remarks/>
  581.             [System.Xml.Serialization.XmlElementAttribute("device", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  582.             public mameGameDevice[] device {
  583.                 get {
  584.                     return this.deviceField;
  585.                 }
  586.                 set {
  587.                     this.deviceField = value;
  588.                 }
  589.             }
  590.  
  591.             /// <remarks/>
  592.             [System.Xml.Serialization.XmlElementAttribute("softwarelist", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  593.             public mameGameSoftwarelist[] softwarelist {
  594.                 get {
  595.                     return this.softwarelistField;
  596.                 }
  597.                 set {
  598.                     this.softwarelistField = value;
  599.                 }
  600.             }
  601.  
  602.             /// <remarks/>
  603.             [System.Xml.Serialization.XmlAttributeAttribute()]
  604.             public string name {
  605.                 get {
  606.                     return this.nameField;
  607.                 }
  608.                 set {
  609.                     this.nameField = value;
  610.                 }
  611.             }
  612.  
  613.             /// <remarks/>
  614.             [System.Xml.Serialization.XmlAttributeAttribute()]
  615.             public string sourcefile {
  616.                 get {
  617.                     return this.sourcefileField;
  618.                 }
  619.                 set {
  620.                     this.sourcefileField = value;
  621.                 }
  622.             }
  623.  
  624.             /// <remarks/>
  625.             [System.Xml.Serialization.XmlAttributeAttribute()]
  626.             public string sampleof {
  627.                 get {
  628.                     return this.sampleofField;
  629.                 }
  630.                 set {
  631.                     this.sampleofField = value;
  632.                 }
  633.             }
  634.  
  635.             /// <remarks/>
  636.             [System.Xml.Serialization.XmlAttributeAttribute()]
  637.             public string cloneof {
  638.                 get {
  639.                     return this.cloneofField;
  640.                 }
  641.                 set {
  642.                     this.cloneofField = value;
  643.                 }
  644.             }
  645.  
  646.             /// <remarks/>
  647.             [System.Xml.Serialization.XmlAttributeAttribute()]
  648.             public string romof {
  649.                 get {
  650.                     return this.romofField;
  651.                 }
  652.                 set {
  653.                     this.romofField = value;
  654.                 }
  655.             }
  656.  
  657.             /// <remarks/>
  658.             [System.Xml.Serialization.XmlAttributeAttribute()]
  659.             public string ismechanical {
  660.                 get {
  661.                     return this.ismechanicalField;
  662.                 }
  663.                 set {
  664.                     this.ismechanicalField = value;
  665.                 }
  666.             }
  667.  
  668.             /// <remarks/>
  669.             [System.Xml.Serialization.XmlAttributeAttribute()]
  670.             public string isbios {
  671.                 get {
  672.                     return this.isbiosField;
  673.                 }
  674.                 set {
  675.                     this.isbiosField = value;
  676.                 }
  677.             }
  678.  
  679.             /// <remarks/>
  680.             [System.Xml.Serialization.XmlAttributeAttribute()]
  681.             public string isdevice {
  682.                 get {
  683.                     return this.isdeviceField;
  684.                 }
  685.                 set {
  686.                     this.isdeviceField = value;
  687.                 }
  688.             }
  689.  
  690.             /// <remarks/>
  691.             [System.Xml.Serialization.XmlAttributeAttribute()]
  692.             public string runnable {
  693.                 get {
  694.                     return this.runnableField;
  695.                 }
  696.                 set {
  697.                     this.runnableField = value;
  698.                 }
  699.             }
  700.         }
  701.  
  702.         /// <remarks/>
  703.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  704.         [System.SerializableAttribute()]
  705.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  706.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  707.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  708.         public partial class mameGameBiosset {
  709.  
  710.             private string nameField;
  711.  
  712.             private string descriptionField;
  713.  
  714.             private string defaultField;
  715.  
  716.             /// <remarks/>
  717.             [System.Xml.Serialization.XmlAttributeAttribute()]
  718.             public string name {
  719.                 get {
  720.                     return this.nameField;
  721.                 }
  722.                 set {
  723.                     this.nameField = value;
  724.                 }
  725.             }
  726.  
  727.             /// <remarks/>
  728.             [System.Xml.Serialization.XmlAttributeAttribute()]
  729.             public string description {
  730.                 get {
  731.                     return this.descriptionField;
  732.                 }
  733.                 set {
  734.                     this.descriptionField = value;
  735.                 }
  736.             }
  737.  
  738.             /// <remarks/>
  739.             [System.Xml.Serialization.XmlAttributeAttribute()]
  740.             public string @default {
  741.                 get {
  742.                     return this.defaultField;
  743.                 }
  744.                 set {
  745.                     this.defaultField = value;
  746.                 }
  747.             }
  748.         }
  749.  
  750.         /// <remarks/>
  751.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  752.         [System.SerializableAttribute()]
  753.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  754.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  755.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  756.         public partial class mameGameRom {
  757.  
  758.             private string nameField;
  759.  
  760.             private string sizeField;
  761.  
  762.             private string crcField;
  763.  
  764.             private string sha1Field;
  765.  
  766.             private string regionField;
  767.  
  768.             private string offsetField;
  769.  
  770.             private string statusField;
  771.  
  772.             private string mergeField;
  773.  
  774.             private string biosField;
  775.  
  776.             private string optionalField;
  777.  
  778.             /// <remarks/>
  779.             [System.Xml.Serialization.XmlAttributeAttribute()]
  780.             public string name {
  781.                 get {
  782.                     return this.nameField;
  783.                 }
  784.                 set {
  785.                     this.nameField = value;
  786.                 }
  787.             }
  788.  
  789.             /// <remarks/>
  790.             [System.Xml.Serialization.XmlAttributeAttribute()]
  791.             public string size {
  792.                 get {
  793.                     return this.sizeField;
  794.                 }
  795.                 set {
  796.                     this.sizeField = value;
  797.                 }
  798.             }
  799.  
  800.             /// <remarks/>
  801.             [System.Xml.Serialization.XmlAttributeAttribute()]
  802.             public string crc {
  803.                 get {
  804.                     return this.crcField;
  805.                 }
  806.                 set {
  807.                     this.crcField = value;
  808.                 }
  809.             }
  810.  
  811.             /// <remarks/>
  812.             [System.Xml.Serialization.XmlAttributeAttribute()]
  813.             public string sha1 {
  814.                 get {
  815.                     return this.sha1Field;
  816.                 }
  817.                 set {
  818.                     this.sha1Field = value;
  819.                 }
  820.             }
  821.  
  822.             /// <remarks/>
  823.             [System.Xml.Serialization.XmlAttributeAttribute()]
  824.             public string region {
  825.                 get {
  826.                     return this.regionField;
  827.                 }
  828.                 set {
  829.                     this.regionField = value;
  830.                 }
  831.             }
  832.  
  833.             /// <remarks/>
  834.             [System.Xml.Serialization.XmlAttributeAttribute()]
  835.             public string offset {
  836.                 get {
  837.                     return this.offsetField;
  838.                 }
  839.                 set {
  840.                     this.offsetField = value;
  841.                 }
  842.             }
  843.  
  844.             /// <remarks/>
  845.             [System.Xml.Serialization.XmlAttributeAttribute()]
  846.             public string status {
  847.                 get {
  848.                     return this.statusField;
  849.                 }
  850.                 set {
  851.                     this.statusField = value;
  852.                 }
  853.             }
  854.  
  855.             /// <remarks/>
  856.             [System.Xml.Serialization.XmlAttributeAttribute()]
  857.             public string merge {
  858.                 get {
  859.                     return this.mergeField;
  860.                 }
  861.                 set {
  862.                     this.mergeField = value;
  863.                 }
  864.             }
  865.  
  866.             /// <remarks/>
  867.             [System.Xml.Serialization.XmlAttributeAttribute()]
  868.             public string bios {
  869.                 get {
  870.                     return this.biosField;
  871.                 }
  872.                 set {
  873.                     this.biosField = value;
  874.                 }
  875.             }
  876.  
  877.             /// <remarks/>
  878.             [System.Xml.Serialization.XmlAttributeAttribute()]
  879.             public string optional {
  880.                 get {
  881.                     return this.optionalField;
  882.                 }
  883.                 set {
  884.                     this.optionalField = value;
  885.                 }
  886.             }
  887.         }
  888.  
  889.         /// <remarks/>
  890.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  891.         [System.SerializableAttribute()]
  892.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  893.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  894.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  895.         public partial class mameGameDisk {
  896.  
  897.             private string nameField;
  898.  
  899.             private string sha1Field;
  900.  
  901.             private string regionField;
  902.  
  903.             private string indexField;
  904.  
  905.             private string writableField;
  906.  
  907.             private string mergeField;
  908.  
  909.             private string statusField;
  910.  
  911.             private string optionalField;
  912.  
  913.             /// <remarks/>
  914.             [System.Xml.Serialization.XmlAttributeAttribute()]
  915.             public string name {
  916.                 get {
  917.                     return this.nameField;
  918.                 }
  919.                 set {
  920.                     this.nameField = value;
  921.                 }
  922.             }
  923.  
  924.             /// <remarks/>
  925.             [System.Xml.Serialization.XmlAttributeAttribute()]
  926.             public string sha1 {
  927.                 get {
  928.                     return this.sha1Field;
  929.                 }
  930.                 set {
  931.                     this.sha1Field = value;
  932.                 }
  933.             }
  934.  
  935.             /// <remarks/>
  936.             [System.Xml.Serialization.XmlAttributeAttribute()]
  937.             public string region {
  938.                 get {
  939.                     return this.regionField;
  940.                 }
  941.                 set {
  942.                     this.regionField = value;
  943.                 }
  944.             }
  945.  
  946.             /// <remarks/>
  947.             [System.Xml.Serialization.XmlAttributeAttribute()]
  948.             public string index {
  949.                 get {
  950.                     return this.indexField;
  951.                 }
  952.                 set {
  953.                     this.indexField = value;
  954.                 }
  955.             }
  956.  
  957.             /// <remarks/>
  958.             [System.Xml.Serialization.XmlAttributeAttribute()]
  959.             public string writable {
  960.                 get {
  961.                     return this.writableField;
  962.                 }
  963.                 set {
  964.                     this.writableField = value;
  965.                 }
  966.             }
  967.  
  968.             /// <remarks/>
  969.             [System.Xml.Serialization.XmlAttributeAttribute()]
  970.             public string merge {
  971.                 get {
  972.                     return this.mergeField;
  973.                 }
  974.                 set {
  975.                     this.mergeField = value;
  976.                 }
  977.             }
  978.  
  979.             /// <remarks/>
  980.             [System.Xml.Serialization.XmlAttributeAttribute()]
  981.             public string status {
  982.                 get {
  983.                     return this.statusField;
  984.                 }
  985.                 set {
  986.                     this.statusField = value;
  987.                 }
  988.             }
  989.  
  990.             /// <remarks/>
  991.             [System.Xml.Serialization.XmlAttributeAttribute()]
  992.             public string optional {
  993.                 get {
  994.                     return this.optionalField;
  995.                 }
  996.                 set {
  997.                     this.optionalField = value;
  998.                 }
  999.             }
  1000.         }
  1001.  
  1002.         /// <remarks/>
  1003.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1004.         [System.SerializableAttribute()]
  1005.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1006.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1007.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1008.         public partial class mameGameDevice_ref {
  1009.  
  1010.             private string nameField;
  1011.  
  1012.             /// <remarks/>
  1013.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1014.             public string name {
  1015.                 get {
  1016.                     return this.nameField;
  1017.                 }
  1018.                 set {
  1019.                     this.nameField = value;
  1020.                 }
  1021.             }
  1022.         }
  1023.  
  1024.         /// <remarks/>
  1025.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1026.         [System.SerializableAttribute()]
  1027.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1028.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1029.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1030.         public partial class mameGameSample {
  1031.  
  1032.             private string nameField;
  1033.  
  1034.             /// <remarks/>
  1035.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1036.             public string name {
  1037.                 get {
  1038.                     return this.nameField;
  1039.                 }
  1040.                 set {
  1041.                     this.nameField = value;
  1042.                 }
  1043.             }
  1044.         }
  1045.  
  1046.         /// <remarks/>
  1047.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1048.         [System.SerializableAttribute()]
  1049.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1050.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1051.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1052.         public partial class mameGameChip {
  1053.  
  1054.             private string typeField;
  1055.  
  1056.             private string tagField;
  1057.  
  1058.             private string nameField;
  1059.  
  1060.             private string clockField;
  1061.  
  1062.             /// <remarks/>
  1063.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1064.             public string type {
  1065.                 get {
  1066.                     return this.typeField;
  1067.                 }
  1068.                 set {
  1069.                     this.typeField = value;
  1070.                 }
  1071.             }
  1072.  
  1073.             /// <remarks/>
  1074.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1075.             public string tag {
  1076.                 get {
  1077.                     return this.tagField;
  1078.                 }
  1079.                 set {
  1080.                     this.tagField = value;
  1081.                 }
  1082.             }
  1083.  
  1084.             /// <remarks/>
  1085.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1086.             public string name {
  1087.                 get {
  1088.                     return this.nameField;
  1089.                 }
  1090.                 set {
  1091.                     this.nameField = value;
  1092.                 }
  1093.             }
  1094.  
  1095.             /// <remarks/>
  1096.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1097.             public string clock {
  1098.                 get {
  1099.                     return this.clockField;
  1100.                 }
  1101.                 set {
  1102.                     this.clockField = value;
  1103.                 }
  1104.             }
  1105.         }
  1106.  
  1107.         /// <remarks/>
  1108.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1109.         [System.SerializableAttribute()]
  1110.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1111.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1112.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1113.         public partial class mameGameDisplay {
  1114.  
  1115.             private string tagField;
  1116.  
  1117.             private string typeField;
  1118.  
  1119.             private string rotateField;
  1120.  
  1121.             private string widthField;
  1122.  
  1123.             private string heightField;
  1124.  
  1125.             private string refreshField;
  1126.  
  1127.             private string pixclockField;
  1128.  
  1129.             private string htotalField;
  1130.  
  1131.             private string hbendField;
  1132.  
  1133.             private string hbstartField;
  1134.  
  1135.             private string vtotalField;
  1136.  
  1137.             private string vbendField;
  1138.  
  1139.             private string vbstartField;
  1140.  
  1141.             private string flipxField;
  1142.  
  1143.             /// <remarks/>
  1144.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1145.             public string tag {
  1146.                 get {
  1147.                     return this.tagField;
  1148.                 }
  1149.                 set {
  1150.                     this.tagField = value;
  1151.                 }
  1152.             }
  1153.  
  1154.             /// <remarks/>
  1155.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1156.             public string type {
  1157.                 get {
  1158.                     return this.typeField;
  1159.                 }
  1160.                 set {
  1161.                     this.typeField = value;
  1162.                 }
  1163.             }
  1164.  
  1165.             /// <remarks/>
  1166.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1167.             public string rotate {
  1168.                 get {
  1169.                     return this.rotateField;
  1170.                 }
  1171.                 set {
  1172.                     this.rotateField = value;
  1173.                 }
  1174.             }
  1175.  
  1176.             /// <remarks/>
  1177.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1178.             public string width {
  1179.                 get {
  1180.                     return this.widthField;
  1181.                 }
  1182.                 set {
  1183.                     this.widthField = value;
  1184.                 }
  1185.             }
  1186.  
  1187.             /// <remarks/>
  1188.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1189.             public string height {
  1190.                 get {
  1191.                     return this.heightField;
  1192.                 }
  1193.                 set {
  1194.                     this.heightField = value;
  1195.                 }
  1196.             }
  1197.  
  1198.             /// <remarks/>
  1199.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1200.             public string refresh {
  1201.                 get {
  1202.                     return this.refreshField;
  1203.                 }
  1204.                 set {
  1205.                     this.refreshField = value;
  1206.                 }
  1207.             }
  1208.  
  1209.             /// <remarks/>
  1210.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1211.             public string pixclock {
  1212.                 get {
  1213.                     return this.pixclockField;
  1214.                 }
  1215.                 set {
  1216.                     this.pixclockField = value;
  1217.                 }
  1218.             }
  1219.  
  1220.             /// <remarks/>
  1221.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1222.             public string htotal {
  1223.                 get {
  1224.                     return this.htotalField;
  1225.                 }
  1226.                 set {
  1227.                     this.htotalField = value;
  1228.                 }
  1229.             }
  1230.  
  1231.             /// <remarks/>
  1232.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1233.             public string hbend {
  1234.                 get {
  1235.                     return this.hbendField;
  1236.                 }
  1237.                 set {
  1238.                     this.hbendField = value;
  1239.                 }
  1240.             }
  1241.  
  1242.             /// <remarks/>
  1243.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1244.             public string hbstart {
  1245.                 get {
  1246.                     return this.hbstartField;
  1247.                 }
  1248.                 set {
  1249.                     this.hbstartField = value;
  1250.                 }
  1251.             }
  1252.  
  1253.             /// <remarks/>
  1254.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1255.             public string vtotal {
  1256.                 get {
  1257.                     return this.vtotalField;
  1258.                 }
  1259.                 set {
  1260.                     this.vtotalField = value;
  1261.                 }
  1262.             }
  1263.  
  1264.             /// <remarks/>
  1265.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1266.             public string vbend {
  1267.                 get {
  1268.                     return this.vbendField;
  1269.                 }
  1270.                 set {
  1271.                     this.vbendField = value;
  1272.                 }
  1273.             }
  1274.  
  1275.             /// <remarks/>
  1276.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1277.             public string vbstart {
  1278.                 get {
  1279.                     return this.vbstartField;
  1280.                 }
  1281.                 set {
  1282.                     this.vbstartField = value;
  1283.                 }
  1284.             }
  1285.  
  1286.             /// <remarks/>
  1287.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1288.             public string flipx {
  1289.                 get {
  1290.                     return this.flipxField;
  1291.                 }
  1292.                 set {
  1293.                     this.flipxField = value;
  1294.                 }
  1295.             }
  1296.         }
  1297.  
  1298.         /// <remarks/>
  1299.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1300.         [System.SerializableAttribute()]
  1301.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1302.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1303.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1304.         public partial class mameGameSound {
  1305.  
  1306.             private string channelsField;
  1307.  
  1308.             /// <remarks/>
  1309.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1310.             public string channels {
  1311.                 get {
  1312.                     return this.channelsField;
  1313.                 }
  1314.                 set {
  1315.                     this.channelsField = value;
  1316.                 }
  1317.             }
  1318.         }
  1319.  
  1320.         /// <remarks/>
  1321.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1322.         [System.SerializableAttribute()]
  1323.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1324.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1325.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1326.         public partial class mameGameInput {
  1327.  
  1328.             private mameGameInputControl[] controlField;
  1329.  
  1330.             private string playersField;
  1331.  
  1332.             private string buttonsField;
  1333.  
  1334.             private string coinsField;
  1335.  
  1336.             private string serviceField;
  1337.  
  1338.             private string tiltField;
  1339.  
  1340.             /// <remarks/>
  1341.             [System.Xml.Serialization.XmlElementAttribute("control", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  1342.             public mameGameInputControl[] control {
  1343.                 get {
  1344.                     return this.controlField;
  1345.                 }
  1346.                 set {
  1347.                     this.controlField = value;
  1348.                 }
  1349.             }
  1350.  
  1351.             /// <remarks/>
  1352.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1353.             public string players {
  1354.                 get {
  1355.                     return this.playersField;
  1356.                 }
  1357.                 set {
  1358.                     this.playersField = value;
  1359.                 }
  1360.             }
  1361.  
  1362.             /// <remarks/>
  1363.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1364.             public string buttons {
  1365.                 get {
  1366.                     return this.buttonsField;
  1367.                 }
  1368.                 set {
  1369.                     this.buttonsField = value;
  1370.                 }
  1371.             }
  1372.  
  1373.             /// <remarks/>
  1374.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1375.             public string coins {
  1376.                 get {
  1377.                     return this.coinsField;
  1378.                 }
  1379.                 set {
  1380.                     this.coinsField = value;
  1381.                 }
  1382.             }
  1383.  
  1384.             /// <remarks/>
  1385.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1386.             public string service {
  1387.                 get {
  1388.                     return this.serviceField;
  1389.                 }
  1390.                 set {
  1391.                     this.serviceField = value;
  1392.                 }
  1393.             }
  1394.  
  1395.             /// <remarks/>
  1396.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1397.             public string tilt {
  1398.                 get {
  1399.                     return this.tiltField;
  1400.                 }
  1401.                 set {
  1402.                     this.tiltField = value;
  1403.                 }
  1404.             }
  1405.         }
  1406.  
  1407.         /// <remarks/>
  1408.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1409.         [System.SerializableAttribute()]
  1410.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1411.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1412.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1413.         public partial class mameGameInputControl {
  1414.  
  1415.             private string typeField;
  1416.  
  1417.             private string waysField;
  1418.  
  1419.             private string minimumField;
  1420.  
  1421.             private string maximumField;
  1422.  
  1423.             private string sensitivityField;
  1424.  
  1425.             private string keydeltaField;
  1426.  
  1427.             private string reverseField;
  1428.  
  1429.             private string ways2Field;
  1430.  
  1431.             /// <remarks/>
  1432.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1433.             public string type {
  1434.                 get {
  1435.                     return this.typeField;
  1436.                 }
  1437.                 set {
  1438.                     this.typeField = value;
  1439.                 }
  1440.             }
  1441.  
  1442.             /// <remarks/>
  1443.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1444.             public string ways {
  1445.                 get {
  1446.                     return this.waysField;
  1447.                 }
  1448.                 set {
  1449.                     this.waysField = value;
  1450.                 }
  1451.             }
  1452.  
  1453.             /// <remarks/>
  1454.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1455.             public string minimum {
  1456.                 get {
  1457.                     return this.minimumField;
  1458.                 }
  1459.                 set {
  1460.                     this.minimumField = value;
  1461.                 }
  1462.             }
  1463.  
  1464.             /// <remarks/>
  1465.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1466.             public string maximum {
  1467.                 get {
  1468.                     return this.maximumField;
  1469.                 }
  1470.                 set {
  1471.                     this.maximumField = value;
  1472.                 }
  1473.             }
  1474.  
  1475.             /// <remarks/>
  1476.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1477.             public string sensitivity {
  1478.                 get {
  1479.                     return this.sensitivityField;
  1480.                 }
  1481.                 set {
  1482.                     this.sensitivityField = value;
  1483.                 }
  1484.             }
  1485.  
  1486.             /// <remarks/>
  1487.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1488.             public string keydelta {
  1489.                 get {
  1490.                     return this.keydeltaField;
  1491.                 }
  1492.                 set {
  1493.                     this.keydeltaField = value;
  1494.                 }
  1495.             }
  1496.  
  1497.             /// <remarks/>
  1498.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1499.             public string reverse {
  1500.                 get {
  1501.                     return this.reverseField;
  1502.                 }
  1503.                 set {
  1504.                     this.reverseField = value;
  1505.                 }
  1506.             }
  1507.  
  1508.             /// <remarks/>
  1509.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1510.             public string ways2 {
  1511.                 get {
  1512.                     return this.ways2Field;
  1513.                 }
  1514.                 set {
  1515.                     this.ways2Field = value;
  1516.                 }
  1517.             }
  1518.         }
  1519.  
  1520.         /// <remarks/>
  1521.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1522.         [System.SerializableAttribute()]
  1523.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1524.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1525.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1526.         public partial class mameGameDipswitch {
  1527.  
  1528.             private mameGameDipswitchDipvalue[] dipvalueField;
  1529.  
  1530.             private string nameField;
  1531.  
  1532.             private string tagField;
  1533.  
  1534.             private string maskField;
  1535.  
  1536.             /// <remarks/>
  1537.             [System.Xml.Serialization.XmlElementAttribute("dipvalue", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  1538.             public mameGameDipswitchDipvalue[] dipvalue {
  1539.                 get {
  1540.                     return this.dipvalueField;
  1541.                 }
  1542.                 set {
  1543.                     this.dipvalueField = value;
  1544.                 }
  1545.             }
  1546.  
  1547.             /// <remarks/>
  1548.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1549.             public string name {
  1550.                 get {
  1551.                     return this.nameField;
  1552.                 }
  1553.                 set {
  1554.                     this.nameField = value;
  1555.                 }
  1556.             }
  1557.  
  1558.             /// <remarks/>
  1559.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1560.             public string tag {
  1561.                 get {
  1562.                     return this.tagField;
  1563.                 }
  1564.                 set {
  1565.                     this.tagField = value;
  1566.                 }
  1567.             }
  1568.  
  1569.             /// <remarks/>
  1570.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1571.             public string mask {
  1572.                 get {
  1573.                     return this.maskField;
  1574.                 }
  1575.                 set {
  1576.                     this.maskField = value;
  1577.                 }
  1578.             }
  1579.         }
  1580.  
  1581.         /// <remarks/>
  1582.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1583.         [System.SerializableAttribute()]
  1584.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1585.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1586.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1587.         public partial class mameGameDipswitchDipvalue {
  1588.  
  1589.             private string nameField;
  1590.  
  1591.             private string valueField;
  1592.  
  1593.             private string defaultField;
  1594.  
  1595.             /// <remarks/>
  1596.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1597.             public string name {
  1598.                 get {
  1599.                     return this.nameField;
  1600.                 }
  1601.                 set {
  1602.                     this.nameField = value;
  1603.                 }
  1604.             }
  1605.  
  1606.             /// <remarks/>
  1607.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1608.             public string value {
  1609.                 get {
  1610.                     return this.valueField;
  1611.                 }
  1612.                 set {
  1613.                     this.valueField = value;
  1614.                 }
  1615.             }
  1616.  
  1617.             /// <remarks/>
  1618.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1619.             public string @default {
  1620.                 get {
  1621.                     return this.defaultField;
  1622.                 }
  1623.                 set {
  1624.                     this.defaultField = value;
  1625.                 }
  1626.             }
  1627.         }
  1628.  
  1629.         /// <remarks/>
  1630.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1631.         [System.SerializableAttribute()]
  1632.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1633.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1634.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1635.         public partial class mameGameConfiguration {
  1636.  
  1637.             private mameGameConfigurationConfsetting[] confsettingField;
  1638.  
  1639.             private string nameField;
  1640.  
  1641.             private string tagField;
  1642.  
  1643.             private string maskField;
  1644.  
  1645.             /// <remarks/>
  1646.             [System.Xml.Serialization.XmlElementAttribute("confsetting", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  1647.             public mameGameConfigurationConfsetting[] confsetting {
  1648.                 get {
  1649.                     return this.confsettingField;
  1650.                 }
  1651.                 set {
  1652.                     this.confsettingField = value;
  1653.                 }
  1654.             }
  1655.  
  1656.             /// <remarks/>
  1657.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1658.             public string name {
  1659.                 get {
  1660.                     return this.nameField;
  1661.                 }
  1662.                 set {
  1663.                     this.nameField = value;
  1664.                 }
  1665.             }
  1666.  
  1667.             /// <remarks/>
  1668.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1669.             public string tag {
  1670.                 get {
  1671.                     return this.tagField;
  1672.                 }
  1673.                 set {
  1674.                     this.tagField = value;
  1675.                 }
  1676.             }
  1677.  
  1678.             /// <remarks/>
  1679.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1680.             public string mask {
  1681.                 get {
  1682.                     return this.maskField;
  1683.                 }
  1684.                 set {
  1685.                     this.maskField = value;
  1686.                 }
  1687.             }
  1688.         }
  1689.  
  1690.         /// <remarks/>
  1691.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1692.         [System.SerializableAttribute()]
  1693.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1694.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1695.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1696.         public partial class mameGameConfigurationConfsetting {
  1697.  
  1698.             private string nameField;
  1699.  
  1700.             private string valueField;
  1701.  
  1702.             private string defaultField;
  1703.  
  1704.             /// <remarks/>
  1705.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1706.             public string name {
  1707.                 get {
  1708.                     return this.nameField;
  1709.                 }
  1710.                 set {
  1711.                     this.nameField = value;
  1712.                 }
  1713.             }
  1714.  
  1715.             /// <remarks/>
  1716.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1717.             public string value {
  1718.                 get {
  1719.                     return this.valueField;
  1720.                 }
  1721.                 set {
  1722.                     this.valueField = value;
  1723.                 }
  1724.             }
  1725.  
  1726.             /// <remarks/>
  1727.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1728.             public string @default {
  1729.                 get {
  1730.                     return this.defaultField;
  1731.                 }
  1732.                 set {
  1733.                     this.defaultField = value;
  1734.                 }
  1735.             }
  1736.         }
  1737.  
  1738.         /// <remarks/>
  1739.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1740.         [System.SerializableAttribute()]
  1741.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1742.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1743.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1744.         public partial class mameGameAdjuster {
  1745.  
  1746.             private string nameField;
  1747.  
  1748.             private string defaultField;
  1749.  
  1750.             /// <remarks/>
  1751.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1752.             public string name {
  1753.                 get {
  1754.                     return this.nameField;
  1755.                 }
  1756.                 set {
  1757.                     this.nameField = value;
  1758.                 }
  1759.             }
  1760.  
  1761.             /// <remarks/>
  1762.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1763.             public string @default {
  1764.                 get {
  1765.                     return this.defaultField;
  1766.                 }
  1767.                 set {
  1768.                     this.defaultField = value;
  1769.                 }
  1770.             }
  1771.         }
  1772.  
  1773.         /// <remarks/>
  1774.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1775.         [System.SerializableAttribute()]
  1776.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1777.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1778.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1779.         public partial class mameGameDriver {
  1780.  
  1781.             private string statusField;
  1782.  
  1783.             private string emulationField;
  1784.  
  1785.             private string colorField;
  1786.  
  1787.             private string soundField;
  1788.  
  1789.             private string graphicField;
  1790.  
  1791.             private string savestateField;
  1792.  
  1793.             private string palettesizeField;
  1794.  
  1795.             private string cocktailField;
  1796.  
  1797.             private string protectionField;
  1798.  
  1799.             /// <remarks/>
  1800.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1801.             public string status {
  1802.                 get {
  1803.                     return this.statusField;
  1804.                 }
  1805.                 set {
  1806.                     this.statusField = value;
  1807.                 }
  1808.             }
  1809.  
  1810.             /// <remarks/>
  1811.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1812.             public string emulation {
  1813.                 get {
  1814.                     return this.emulationField;
  1815.                 }
  1816.                 set {
  1817.                     this.emulationField = value;
  1818.                 }
  1819.             }
  1820.  
  1821.             /// <remarks/>
  1822.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1823.             public string color {
  1824.                 get {
  1825.                     return this.colorField;
  1826.                 }
  1827.                 set {
  1828.                     this.colorField = value;
  1829.                 }
  1830.             }
  1831.  
  1832.             /// <remarks/>
  1833.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1834.             public string sound {
  1835.                 get {
  1836.                     return this.soundField;
  1837.                 }
  1838.                 set {
  1839.                     this.soundField = value;
  1840.                 }
  1841.             }
  1842.  
  1843.             /// <remarks/>
  1844.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1845.             public string graphic {
  1846.                 get {
  1847.                     return this.graphicField;
  1848.                 }
  1849.                 set {
  1850.                     this.graphicField = value;
  1851.                 }
  1852.             }
  1853.  
  1854.             /// <remarks/>
  1855.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1856.             public string savestate {
  1857.                 get {
  1858.                     return this.savestateField;
  1859.                 }
  1860.                 set {
  1861.                     this.savestateField = value;
  1862.                 }
  1863.             }
  1864.  
  1865.             /// <remarks/>
  1866.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1867.             public string palettesize {
  1868.                 get {
  1869.                     return this.palettesizeField;
  1870.                 }
  1871.                 set {
  1872.                     this.palettesizeField = value;
  1873.                 }
  1874.             }
  1875.  
  1876.             /// <remarks/>
  1877.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1878.             public string cocktail {
  1879.                 get {
  1880.                     return this.cocktailField;
  1881.                 }
  1882.                 set {
  1883.                     this.cocktailField = value;
  1884.                 }
  1885.             }
  1886.  
  1887.             /// <remarks/>
  1888.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1889.             public string protection {
  1890.                 get {
  1891.                     return this.protectionField;
  1892.                 }
  1893.                 set {
  1894.                     this.protectionField = value;
  1895.                 }
  1896.             }
  1897.         }
  1898.  
  1899.         /// <remarks/>
  1900.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1901.         [System.SerializableAttribute()]
  1902.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1903.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1904.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1905.         public partial class mameGameDevice {
  1906.  
  1907.             private mameGameDeviceInstance[] instanceField;
  1908.  
  1909.             private mameGameDeviceExtension[] extensionField;
  1910.  
  1911.             private string typeField;
  1912.  
  1913.             private string tagField;
  1914.  
  1915.             private string interfaceField;
  1916.  
  1917.             /// <remarks/>
  1918.             [System.Xml.Serialization.XmlElementAttribute("instance", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  1919.             public mameGameDeviceInstance[] instance {
  1920.                 get {
  1921.                     return this.instanceField;
  1922.                 }
  1923.                 set {
  1924.                     this.instanceField = value;
  1925.                 }
  1926.             }
  1927.  
  1928.             /// <remarks/>
  1929.             [System.Xml.Serialization.XmlElementAttribute("extension", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
  1930.             public mameGameDeviceExtension[] extension {
  1931.                 get {
  1932.                     return this.extensionField;
  1933.                 }
  1934.                 set {
  1935.                     this.extensionField = value;
  1936.                 }
  1937.             }
  1938.  
  1939.             /// <remarks/>
  1940.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1941.             public string type {
  1942.                 get {
  1943.                     return this.typeField;
  1944.                 }
  1945.                 set {
  1946.                     this.typeField = value;
  1947.                 }
  1948.             }
  1949.  
  1950.             /// <remarks/>
  1951.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1952.             public string tag {
  1953.                 get {
  1954.                     return this.tagField;
  1955.                 }
  1956.                 set {
  1957.                     this.tagField = value;
  1958.                 }
  1959.             }
  1960.  
  1961.             /// <remarks/>
  1962.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1963.             public string @interface {
  1964.                 get {
  1965.                     return this.interfaceField;
  1966.                 }
  1967.                 set {
  1968.                     this.interfaceField = value;
  1969.                 }
  1970.             }
  1971.         }
  1972.  
  1973.         /// <remarks/>
  1974.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  1975.         [System.SerializableAttribute()]
  1976.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  1977.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  1978.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  1979.         public partial class mameGameDeviceInstance {
  1980.  
  1981.             private string nameField;
  1982.  
  1983.             private string briefnameField;
  1984.  
  1985.             /// <remarks/>
  1986.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1987.             public string name {
  1988.                 get {
  1989.                     return this.nameField;
  1990.                 }
  1991.                 set {
  1992.                     this.nameField = value;
  1993.                 }
  1994.             }
  1995.  
  1996.             /// <remarks/>
  1997.             [System.Xml.Serialization.XmlAttributeAttribute()]
  1998.             public string briefname {
  1999.                 get {
  2000.                     return this.briefnameField;
  2001.                 }
  2002.                 set {
  2003.                     this.briefnameField = value;
  2004.                 }
  2005.             }
  2006.         }
  2007.  
  2008.         /// <remarks/>
  2009.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  2010.         [System.SerializableAttribute()]
  2011.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  2012.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  2013.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  2014.         public partial class mameGameDeviceExtension {
  2015.  
  2016.             private string nameField;
  2017.  
  2018.             /// <remarks/>
  2019.             [System.Xml.Serialization.XmlAttributeAttribute()]
  2020.             public string name {
  2021.                 get {
  2022.                     return this.nameField;
  2023.                 }
  2024.                 set {
  2025.                     this.nameField = value;
  2026.                 }
  2027.             }
  2028.         }
  2029.  
  2030.         /// <remarks/>
  2031.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  2032.         [System.SerializableAttribute()]
  2033.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  2034.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  2035.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  2036.         public partial class mameGameSoftwarelist {
  2037.  
  2038.             private string nameField;
  2039.  
  2040.             private string statusField;
  2041.  
  2042.             /// <remarks/>
  2043.             [System.Xml.Serialization.XmlAttributeAttribute()]
  2044.             public string name {
  2045.                 get {
  2046.                     return this.nameField;
  2047.                 }
  2048.                 set {
  2049.                     this.nameField = value;
  2050.                 }
  2051.             }
  2052.  
  2053.             /// <remarks/>
  2054.             [System.Xml.Serialization.XmlAttributeAttribute()]
  2055.             public string status {
  2056.                 get {
  2057.                     return this.statusField;
  2058.                 }
  2059.                 set {
  2060.                     this.statusField = value;
  2061.                 }
  2062.             }
  2063.         }
  2064.  
  2065.         /// <remarks/>
  2066.         [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
  2067.         [System.SerializableAttribute()]
  2068.         [System.Diagnostics.DebuggerStepThroughAttribute()]
  2069.         [System.ComponentModel.DesignerCategoryAttribute("code")]
  2070.         [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
  2071.         [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
  2072.         public partial class NewDataSet {
  2073.  
  2074.             private mame[] itemsField;
  2075.  
  2076.             /// <remarks/>
  2077.             [System.Xml.Serialization.XmlElementAttribute("mame")]
  2078.             public mame[] Items {
  2079.                 get {
  2080.                     return this.itemsField;
  2081.                 }
  2082.                 set {
  2083.                     this.itemsField = value;
  2084.                 }
  2085.             }
  2086.         }
  2087.  
  2088.         # endregion MameDefinition
  2089.  
  2090.     }
  2091. }
Advertisement
Add Comment
Please, Sign In to add comment