Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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();
                }
            }
        }
Exemplo n.º 5
0
 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();
 }
Exemplo n.º 6
0
 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();
     }
 }
Exemplo n.º 7
0
 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);
     }
 }
Exemplo n.º 8
0
 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();
     }
 }
Exemplo n.º 9
0
        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()));
            }
        }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
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 {
            }
        }
Exemplo n.º 12
0
        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;
            }
        }
Exemplo n.º 13
0
 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);
         }
     }
 }