Example #1
0
        private void PCEControllerConfig_Load(object sender, EventArgs e)
        {
            var pceSettings = ((PCEngine)Global.Emulator).GetSyncSettings();

            _controllerSettings = pceSettings;             // Assumes only controller data is in sync settings! If there are ever more sync settings, this dialog should just become a general sync settings dialog (or both settings/sync settings)
            ControllerPropertyGrid.SelectedObject = _controllerSettings;
        }
 public PCEControllerConfig(
     MainForm mainForm,
     PCEngine.PCESyncSettings syncSettings)
 {
     _mainForm     = mainForm;
     _syncSettings = syncSettings;
     InitializeComponent();
 }
Example #3
0
        protected override void RunImport()
        {
            var ss = new PCEngine.PCESyncSettings
            {
                Port1 = PceControllerType.Unplugged,
                Port2 = PceControllerType.Unplugged,
                Port3 = PceControllerType.Unplugged,
                Port4 = PceControllerType.Unplugged,
                Port5 = PceControllerType.Unplugged
            };

            _deck = new PceControllerDeck(
                ss.Port1,
                ss.Port2,
                ss.Port3,
                ss.Port4,
                ss.Port5);

            Result.Movie.HeaderEntries[HeaderKeys.Platform] = VSystemID.Raw.PCE;
            using var sr = SourceFile.OpenText();
            string line;

            while ((line = sr.ReadLine()) != null)
            {
                if (string.IsNullOrWhiteSpace(line))
                {
                    continue;
                }

                if (line[0] == '|')
                {
                    ImportTextFrame(line);
                }
                else if (line.ToLower()
                         .StartsWith("ports"))
                {
                    var portNumStr = ParseHeader(line, "ports");
                    if (int.TryParse(portNumStr, out int ports))
                    {
                        // Ugh
                        if (ports > 0)
                        {
                            ss.Port1 = PceControllerType.GamePad;
                        }

                        if (ports > 1)
                        {
                            ss.Port2 = PceControllerType.GamePad;
                        }

                        if (ports > 2)
                        {
                            ss.Port3 = PceControllerType.GamePad;
                        }

                        if (ports > 3)
                        {
                            ss.Port4 = PceControllerType.GamePad;
                        }

                        if (ports > 4)
                        {
                            ss.Port5 = PceControllerType.GamePad;
                        }

                        _deck = new PceControllerDeck(
                            ss.Port1,
                            ss.Port2,
                            ss.Port3,
                            ss.Port4,
                            ss.Port5);
                    }
                }
                else if (line.ToLower().StartsWith("pcecd"))
                {
                    Result.Movie.HeaderEntries[HeaderKeys.Platform] = VSystemID.Raw.PCECD;
                }
                else if (line.ToLower().StartsWith("emuversion"))
                {
                    Result.Movie.Comments.Add($"{EmulationOrigin} Mednafen/PCEjin version {ParseHeader(line, "emuVersion")}");
                }
                else if (line.ToLower().StartsWith("version"))
                {
                    string version = ParseHeader(line, "version");
                    Result.Movie.Comments.Add($"{MovieOrigin} .mc2 version {version}");
                }
                else if (line.ToLower().StartsWith("romfilename"))
                {
                    Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "romFilename");
                }
                else if (line.ToLower().StartsWith("cdgamename"))
                {
                    Result.Movie.HeaderEntries[HeaderKeys.GameName] = ParseHeader(line, "cdGameName");
                }
                else if (line.ToLower().StartsWith("comment author"))
                {
                    Result.Movie.HeaderEntries[HeaderKeys.Author] = ParseHeader(line, "comment author");
                }
                else if (line.ToLower().StartsWith("rerecordcount"))
                {
                    int rerecordCount;

                    // Try to parse the re-record count as an integer, defaulting to 0 if it fails.
                    try
                    {
                        rerecordCount = int.Parse(ParseHeader(line, "rerecordCount"));
                    }
                    catch
                    {
                        rerecordCount = 0;
                    }

                    Result.Movie.Rerecords = (ulong)rerecordCount;
                }
                else if (line.ToLower().StartsWith("startsfromsavestate"))
                {
                    // If this movie starts from a savestate, we can't support it.
                    if (ParseHeader(line, "StartsFromSavestate") == "1")
                    {
                        Result.Errors.Add("Movies that begin with a savestate are not supported.");
                    }
                }
                else
                {
                    // Everything not explicitly defined is treated as a comment.
                    Result.Movie.Comments.Add(line);
                }
            }

            Result.Movie.SyncSettingsJson = ConfigService.SaveWithType(ss);
        }