Guest User

Untitled

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