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(); }
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); }