コード例 #1
0
        // Load the roms associated with the loaded consoles
        static void LoadRoms()
        {
            foreach (var kv in _consoles)
            {
                Console    console = kv.Value;
                List <Rom> roms    = new List <Rom>();
                _consoleRoms.Add(console, roms);

                string dir = console.romDirectory.Replace(".\\", Directory.GetCurrentDirectory() + "\\");
                if (!Directory.Exists(dir))
                {
                    continue;
                }

                string[] files = Directory.GetFiles(dir, "*", SearchOption.AllDirectories);
                foreach (var location in files)
                {
                    Rom rom = new Rom(location, console);

                    // Ensure we're not using an illegal extension
                    bool illegalExtension = false;
                    foreach (string ext in ILLEGAL_EXT)
                    {
                        illegalExtension |= rom.fileName.ToLower().Contains(ext);
                    }

                    if (illegalExtension)
                    {
                        continue;
                    }

                    _roms.Add(rom.fileName, rom);
                    _romList.Add(rom);
                    roms.Add(rom);
                }

                // Apply Rom Settings
                LoadRomSettings();
            }
        }
コード例 #2
0
        // Load the extra settings from file
        static void LoadRomSettings()
        {
            if (!File.Exists(ROM_SETTINGS_FILE))
            {
                return;
            }

            string[] lines = File.ReadAllLines(ROM_SETTINGS_FILE);

            foreach (string line in lines)
            {
                // Format
                // fileName | displayName | tags | players
                string[] param = line.Split(new string[] { SEPERATOR_TOKEN }, StringSplitOptions.None);

                try {
                    string fileName    = param[0].Trim();
                    string displayName = param[1].Trim();
                    string tags        = param[2].Trim();
                    string players     = param[3].Trim();

                    Rom rom = _roms[fileName];

                    if (displayName != "")
                    {
                        rom.displayName = displayName;
                    }
                    if (players != "")
                    {
                        rom.players = int.Parse(players);
                    }
                    rom.tags = tags;
                } catch {
                    continue;
                }
            }
        }
コード例 #3
0
 public static bool Run(Rom rom)
 {
     return(Run(rom.console, rom.console.cmdArguments.Replace("{{rom}}", rom.location)));
 }
コード例 #4
0
 // Static
 public static void Edit(Rom r)
 {
     new RomSettings(r);
 }
コード例 #5
0
 RomSettings(Rom rom) : this()
 {
     SetRom(rom);
     ShowDialog();
 }
コード例 #6
0
 // Emulator Process Management
 public static bool RunEmulator(Rom r)
 {
     return(EmulatorExecuter.Run(r));
 }