private void btnOk_Click(object sender, RoutedEventArgs e) { if (!Extensions.IsEmpty(tbCardPath.Text)) { if (lvMemCards.SelectedItems.Count == 0) { Legacy.Tools.ShowMessage("You must select a card to assign", Legacy.MessageType.Error); } else { _pcsx2Ui.Write("Folders", "UseDefaultMemoryCards", "disabled"); var iNIPath = Legacy.UserSettings.ConfigDir + @"\" + g.FileSafeTitle + @"\PCSX2_ui.ini"; var selectedItem = (Legacy.MemoryCard)lvMemCards.SelectedItem; var file = new Legacy.IniFile(iNIPath); file.Write("MemoryCards", "Slot1_Enable", "enabled"); file.Write("MemoryCards", "Slot1_Filename", selectedItem.Name); file.Write("Folders", "MemoryCards", Extensions.Escape(tbCardPath.Text)); Legacy.Tools.ShowMessage("Successfully assigned and enabled " + selectedItem.Name + " to slot 1\n for the game " + g.Title, Legacy.MessageType.Info); Close(); } } else { Legacy.Tools.ShowMessage("The selected memory card cannot be null", Legacy.MessageType.Error); } }
private void LoadInitialCard() { var path = Extensions.Unescape(_pcsx2Ui.Read("Folders", "MemoryCards")); if (path == "memcards") { path = Path.Combine(Settings.Default.pcsx2DataDir, "memcards"); } if (!Directory.Exists(path)) { var dialog = new FolderBrowserDialog { Description = "Select the directory containing the memory card files" }; if (dialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) { Close(); return; } tbCardPath.Text = dialog.SelectedPath; } else { tbCardPath.Text = path; } foreach (var newItem in Directory.GetFiles(tbCardPath.Text, "*.ps2").Select(str2 => new FileInfo(str2)).Select(info => new Legacy.MemoryCard { Name = info.Name, WriteTime = info.LastWriteTime.ToShortDateString(), Size = Legacy.Tools.GetSizeReadable2(info.Length) })) { lvMemCards.Items.Add(newItem); } }
private async void SlideIn() { Opacity = 1.0; var workingArea = Screen.PrimaryScreen.WorkingArea; var aTop = new DoubleAnimation { From = workingArea.Bottom + Height, To = (workingArea.Bottom - Height) - 5.0, Duration = new Duration(TimeSpan.FromSeconds(0.5)) }; var aBottom = new DoubleAnimation { To = (workingArea.Bottom + Height) + 5.0, Duration = new Duration(TimeSpan.FromSeconds(0.5)) }; var storyboard = new Storyboard(); storyboard.Children.Add(aTop); Storyboard.SetTarget(aTop, this); Storyboard.SetTargetProperty(aTop, new PropertyPath(TopProperty)); await Extensions.BeginAsync(storyboard); await Task.Delay(0xbb8); storyboard.Children.Clear(); storyboard.Children.Add(aBottom); Storyboard.SetTarget(aBottom, this); Storyboard.SetTargetProperty(aBottom, new PropertyPath(TopProperty)); await Extensions.BeginAsync(storyboard); Close(); }
private async void LoadBios() { var currentBios = Extensions.Unescape(pcsx2_ui.Read("Filenames", "BIOS")); var bioses = new List <Legacy.Bios>(); await Task.Run(delegate { foreach (var str in Directory.GetFiles(Settings.Default.pcsx2DataDir + @"\bios")) { using (var reader = new StreamReader(str)) { string str2; while ((str2 = reader.ReadLine()) != null) { if (str2.Contains("ROMconf")) { var bytes = (from i in Encoding.UTF8.GetBytes(str2) where i != 0 select i).ToArray <byte>(); var src = Encoding.UTF8.GetString(bytes); var str4 = Extensions.Between(src, (string)"OSDSYS", (string)"@rom"); if (Extensions.IsEmpty(str4)) { str4 = Extensions.Between(src, (string)"OSDSYS", (string)"@"); } var item = new Legacy.Bios { DisplayInfo = GetValue(str4), Tag = str, Location = str }; bioses.Add(item); } } } } }); bioses.ForEach(b => lbBios.Items.Add(b)); var enumerator = ((IEnumerable)lbBios.Items).GetEnumerator(); try { while (enumerator.MoveNext()) { var current = enumerator.Current; var bios = (Legacy.Bios)current; if (bios.Tag.ToString() != currentBios) { continue; } lbBios.SelectedItem = bioses; return; } } finally { var disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } }
private static void CheckSettings() { if ((!Extensions.IsEmpty(Settings.Default.pcsx2Dir) && !Extensions.IsEmpty(Settings.Default.pcsx2DataDir)) && (Directory.Exists(Settings.Default.pcsx2Dir) && Directory.Exists(Settings.Default.pcsx2DataDir))) { return; } Legacy.Tools.ShowMessage("Please select the directory containing PCSX2 and the PCSX2 data directory", Legacy.MessageType.Info); new wndSetup().ShowDialog(); }
private void btnOk_Click(object sender, RoutedEventArgs e) { if (lbVersions.SelectedItems.Count == 0) { Legacy.Tools.ShowMessage("A PCSX2 version must be selected", Legacy.MessageType.Error); } else { pcsx2_ini.Write("Additional Executables", "Default", Extensions.IsEmpty(selectedExe) ? original : selectedExe); Close(); } }
private void Setup() { g = (Legacy.Game)Tag; lbShaders.DisplayMemberPath = "Text"; pcsx2_ini = new Legacy.IniFile(Path.Combine(Legacy.UserSettings.ConfigDir, g.FileSafeTitle) + @"\PCSX2Bonus.ini"); foreach (var newItem in Directory.GetFiles(Legacy.UserSettings.ShadersDir).Select(str => new ListViewItem { Content = Extensions.FileNameNoExt(str), Tag = str })) { lbShaders.Items.Add(newItem); } }
private void btnOk_Click(object sender, RoutedEventArgs e) { if (Extensions.IsEmpty(tbPcsx2DataDir.Text) || Extensions.IsEmpty(tbPcsx2Dir.Text)) { Legacy.Tools.ShowMessage("Required fields cannot be empty!", Legacy.MessageType.Error); } else { Settings.Default.pcsx2Dir = tbPcsx2Dir.Text; Settings.Default.pcsx2DataDir = tbPcsx2DataDir.Text; _setupCompleted = true; Close(); } }
private void SaveSettings() { var str = cbNoGui.IsChecked.Value ? "true" : "false"; var str2 = cbUseCd.IsChecked.Value ? "true" : "false"; var str3 = cbNoHacks.IsChecked.Value ? "true" : "false"; var str4 = cbFullBoot.IsChecked.Value ? "true" : "false"; var str5 = cbEnableCheats.IsChecked.Value ? "enabled" : "disabled"; pcsx2_ini.Write("Boot", "NoGUI", str); pcsx2_ini.Write("Boot", "UseCD", str2); pcsx2_ini.Write("Boot", "NoHacks", str3); pcsx2_ini.Write("Boot", "FullBoot", str4); pcsx2_ini.Write("Boot", "EnableCheats", str5); pcsx2_vm.Write("EmuCore", "EnableCheats", str5); if (lbBios.SelectedItem != null) { pcsx2_ui.Write("Filenames", "BIOS", Extensions.Escape(((Legacy.Bios)lbBios.SelectedItem).Tag.ToString())); } }
private void Filter(object sender, EventArgs e) { _t.Stop(); if (lvGames.IsVisible == false) { return; } var query = tbSearch.Text; var defaultView = CollectionViewSource.GetDefaultView(Legacy.Game.AllGames); if (Extensions.IsEmpty(query) || query == "Search") { defaultView.Filter = null; } else { defaultView.Filter = (Predicate <object>)Delegate.Combine(defaultView.Filter, (Predicate <object>)(o => Extensions.Contains(((Legacy.Game)o).Title, query, StringComparison.InvariantCultureIgnoreCase))); ((ScrollViewer)Legacy.Tools.GetDescendantByType(lvGames, typeof(ScrollViewer))).ScrollToVerticalOffset(0.0); } }
private void btnAddNew_Click(object sender, RoutedEventArgs e) { var dialog = new OpenFileDialog { Filter = "Shader Files | *.fx" }; if (dialog.ShowDialog() != true) { return; } var newItem = new ListViewItem { Content = Extensions.FileNameNoExt(dialog.FileName), Tag = Path.Combine(Legacy.UserSettings.ShadersDir, Path.GetFileName(dialog.FileName)) }; lbShaders.Items.Add(newItem); try { File.Copy(dialog.FileName, Path.Combine(Legacy.UserSettings.ShadersDir, Path.GetFileName(dialog.FileName)), true); } catch { } }
private void btnBrowse_Click(object sender, RoutedEventArgs e) { var dialog = new FolderBrowserDialog { Description = "Select the directory containing PCSX2", }; if (dialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } var flag = false; var str = string.Empty; foreach (var str2 in Directory.GetFiles(dialog.SelectedPath, "*.exe").Where(str2 => (Extensions.Contains(str2, "pcsx2-r", StringComparison.InvariantCultureIgnoreCase) && !Extensions.Contains(str2, "Uninst", StringComparison.InvariantCultureIgnoreCase)) || Path.GetFileName(str2).Equals("pcsx2.exe", StringComparison.InvariantCultureIgnoreCase))) { flag = true; str = str2; break; } if (!flag) { Legacy.Tools.ShowMessage("PCSX2 executable could not be found!", Legacy.MessageType.Error); } else { Settings.Default.pcsx2Exe = str; tbPcsx2Dir.Text = dialog.SelectedPath; tbPcsx2DataDir.Text = dialog.SelectedPath; } }
public void LaunchGame(Legacy.Game g, bool tvMode = false) { if (File.Exists(g.Location) == false) { Legacy.Tools.ShowMessage("Unable to find image file!", Legacy.MessageType.Error); if (tvMode == false) { return; } var window = System.Windows.Application.Current.Windows.Cast <Window>().FirstOrDefault(w => w.Title == "wndFullScreen"); if (window != null) { window.ShowDialog(); } } else { var pcsxProcess = new Process(); var path = Legacy.UserSettings.RootDir + string.Format(@"\Configs\{0}", g.FileSafeTitle); var str = Directory.Exists(path) ? string.Format(" --cfgpath={0}{2}{0} {0}{1}{0}", "\"", g.Location, path) : string.Format(" {0}{1}{0}", "\"", g.Location); str = str.Replace(@"\\", @"\"); var src = string.Empty; var str4 = Settings.Default.pcsx2Dir; if (File.Exists(path + @"\PCSX2Bonus.ini")) { var file = new Legacy.IniFile(path + @"\PCSX2Bonus.ini"); var str5 = file.Read("Additional Executables", "Default"); var str6 = Extensions.IsEmpty(str5) ? Settings.Default.pcsx2Exe : str5; str4 = Extensions.IsEmpty(str5) ? Settings.Default.pcsx2Dir : Path.GetDirectoryName(str5); var str7 = file.Read("Boot", "NoGUI"); var str8 = file.Read("Boot", "UseCD"); var str9 = file.Read("Boot", "NoHacks"); var str10 = file.Read("Boot", "FullBoot"); src = file.Read("Shader", "Default"); pcsxProcess.StartInfo.FileName = str6; if (str7 == "true") { str = str.Insert(0, " --nogui"); } if (str8 == "true") { str = str.Insert(0, " --usecd"); } if (str9 == "true") { str = str.Insert(0, " --nohacks"); } if (str10 == "true") { str = str.Insert(0, " --fullboot"); } } else { pcsxProcess.StartInfo.FileName = Settings.Default.pcsx2Exe; } pcsxProcess.EnableRaisingEvents = true; if (str4 != null) { pcsxProcess.StartInfo.WorkingDirectory = str4; pcsxProcess.StartInfo.Arguments = str; if (Extensions.IsEmpty(src) == false) { try { File.Copy(src, Path.Combine(str4, "shader.fx"), true); } catch (Exception exception) { Legacy.Tools.ShowMessage("Could not save shader file! Details: " + exception.Message, Legacy.MessageType.Error); } } } var timeOpened = DateTime.Now; pcsxProcess.Exited += delegate { pcsxProcess.Dispose(); System.Windows.Application.Current.Dispatcher.Invoke(delegate { var now = DateTime.Now; g.TimePlayed = g.TimePlayed.Add(now.Subtract(timeOpened)); var element = Legacy.UserSettings.xGames.Descendants("Game").FirstOrDefault(x => { var xElement1 = x.Element("Name"); return(xElement1 != null && xElement1.Value == g.Title); }); if ((element != null) && (element.Element("Time") != null)) { var xElement = element.Element("Time"); if (xElement != null) { xElement.Value = g.TimePlayed.ToString(); } } if (tvMode) { var window = System.Windows.Application.Current.Windows.Cast <Window>().FirstOrDefault(w => w.Title == "wndFullScreen"); if (window != null) { window.ShowDialog(); } } _notifyIcon.Visible = false; Show(); Activate(); }); }; Hide(); if (Settings.Default.enableGameToast) { new wndGameNotify { Tag = g } }
private void btnOk_Click(object sender, RoutedEventArgs e) { if (Extensions.IsEmpty(tbOutputPath.Text)) { Legacy.Tools.ShowMessage("Output path cannot be empty!", Legacy.MessageType.Error); } else { var path = string.Empty; try { var stopwatch = new Stopwatch(); stopwatch.Start(); var location = g.Location; var newValue = cbNoHacks.IsChecked == true ? "--nohacks" : string.Empty; var str4 = cbNoGui.IsChecked == true ? "--nogui" : string.Empty; var str5 = cbNoDisc.IsChecked == true ? "--nodisc" : string.Empty; var str6 = cbFullBoot.IsChecked == true ? "--fullboot" : string.Empty; var str7 = cbUseDefault.IsChecked == true ? "--cfgpath=\"\"" + Legacy.UserSettings.ConfigDir + @"\" + g.FileSafeTitle + "\"\"" : string.Empty; var outputName = tbOutputPath.Text + @"\" + g.FileSafeTitle + ".exe"; var providerOptions = new Dictionary <string, string> { { "CompilerVersion", "v4.0" } }; var provider = new CSharpCodeProvider(providerOptions); var options = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" }, outputName, true) { GenerateExecutable = true }; if (cbUseDefaultIcon.IsChecked != null && cbUseDefaultIcon.IsChecked.Value) { path = Legacy.UserSettings.ImageDir + @"\" + g.FileSafeTitle + ".ico"; CreateIcon(path); options.CompilerOptions = string.Format("/target:winexe /optimize /win32icon:{1}{0}{1}", path, "\""); } else if (!cbUseDefault.IsChecked == true) { path = tbIconPath.Text; options.CompilerOptions = string.Format("/target:winexe /optimize /win32icon:{1}{0}{1}", path, "\""); } if (string.IsNullOrWhiteSpace(path)) { options.CompilerOptions = "/target:winexe /optimize"; } options.ReferencedAssemblies.Add("System.dll"); options.IncludeDebugInformation = false; var str9 = Settings.Default.pcsx2Exe; var file = new Legacy.IniFile(Legacy.UserSettings.ConfigDir + @"\" + g.Title + @"\Settings.ini"); if (!string.IsNullOrWhiteSpace(file.Read("Additional Executables", "Default"))) { str9 = file.Read("Additional Executables", "Default"); } var directoryName = Path.GetDirectoryName(str9); var str11 = Properties.Resources.executableTemplate.Replace("{1}", str9) .Replace("{2}", newValue) .Replace("{3}", str4) .Replace("{4}", str5) .Replace("{5}", str6) .Replace("{6}", location) .Replace("{7}", "\"\"") .Replace("{8}", str7) .Replace("{9}", directoryName); provider.CompileAssemblyFromSource(options, str11) .Errors.Cast <CompilerError>() .ToList() .ForEach(error => Console.WriteLine(error.ErrorText)); stopwatch.Stop(); System.Windows.MessageBox.Show( string.Concat("Successfully compiled the executable at ", outputName, "\n[", stopwatch.ElapsedMilliseconds, "ms]"), "PCSX2Bonus", MessageBoxButton.OK, MessageBoxImage.Asterisk); } catch (Exception exception) { Legacy.Tools.ShowMessage("There was an error building the executable.\nReason: " + exception.Message, Legacy.MessageType.Error); } var name = Path.GetDirectoryName(path); if (name != null && File.Exists(path) && name.Contains("PCSX2Bonus")) { File.Delete(path); } } }