diff --git a/third_party_gui/README.md b/third_party_gui/README.md
index 299394f..cde8c19 100644
--- a/third_party_gui/README.md
+++ b/third_party_gui/README.md
@@ -5,5 +5,6 @@
| Name | Author |
| ------------- | ------------- |
| [frofpp4](frofpp4) | [SlrHui](https://github.com/SlrHui) |
+| [fpPS4Fro](fpPS4Fro) | [SlrHui](https://github.com/SlrHui) |
| [GUI](GUI) | [GameTec-live](https://github.com/GameTec-live) |
| [fpPS4-Temmie-s-Launcher](https://github.com/themitosan/fpPS4-Temmie-s-Launcher) | [themitosan](https://github.com/themitosan) |
diff --git a/third_party_gui/fpPS4Fro/AboutBox1.Designer.cs b/third_party_gui/fpPS4Fro/AboutBox1.Designer.cs
new file mode 100644
index 0000000..6251b2e
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/AboutBox1.Designer.cs
@@ -0,0 +1,121 @@
+namespace fpPS4Fro
+{
+ partial class AboutBox1
+ {
+ ///
+ /// Erforderliche Designervariable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Verwendete Ressourcen bereinigen.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Vom Windows Form-Designer generierter Code
+
+ ///
+ /// Erforderliche Methode für die Designerunterstützung.
+ /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox1));
+ this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.richTextBox1 = new System.Windows.Forms.RichTextBox();
+ this.tableLayoutPanel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tableLayoutPanel
+ //
+ this.tableLayoutPanel.ColumnCount = 2;
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 77.14896F));
+ this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 22.85104F));
+ this.tableLayoutPanel.Controls.Add(this.textBox1, 1, 4);
+ this.tableLayoutPanel.Controls.Add(this.label1, 1, 0);
+ this.tableLayoutPanel.Controls.Add(this.richTextBox1, 0, 4);
+ this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tableLayoutPanel.Location = new System.Drawing.Point(12, 14);
+ this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.tableLayoutPanel.Name = "tableLayoutPanel";
+ this.tableLayoutPanel.RowCount = 5;
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 11.11111F));
+ this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 55.55556F));
+ this.tableLayoutPanel.Size = new System.Drawing.Size(718, 499);
+ this.tableLayoutPanel.TabIndex = 0;
+ //
+ // textBox1
+ //
+ this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.textBox1.Location = new System.Drawing.Point(556, 223);
+ this.textBox1.Multiline = true;
+ this.textBox1.Name = "textBox1";
+ this.textBox1.ReadOnly = true;
+ this.textBox1.Size = new System.Drawing.Size(159, 273);
+ this.textBox1.TabIndex = 25;
+ this.textBox1.Text = "this program is free of charge. \r\nuse at your own risk.\r\nno warranty of any kind " +
+ "is assumed.\r\n\r\nSLRHUI 2022\r\n\r\n\r\n";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.label1.Location = new System.Drawing.Point(556, 0);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(159, 55);
+ this.label1.TabIndex = 26;
+ this.label1.Text = "fpPS4Fro V0.000002a";
+ this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // richTextBox1
+ //
+ this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.richTextBox1.Location = new System.Drawing.Point(3, 223);
+ this.richTextBox1.Name = "richTextBox1";
+ this.richTextBox1.ReadOnly = true;
+ this.richTextBox1.Size = new System.Drawing.Size(547, 273);
+ this.richTextBox1.TabIndex = 27;
+ this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
+ //
+ // AboutBox1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(742, 527);
+ this.Controls.Add(this.tableLayoutPanel);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "AboutBox1";
+ this.Padding = new System.Windows.Forms.Padding(12, 14, 12, 14);
+ this.ShowIcon = false;
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "About";
+ this.tableLayoutPanel.ResumeLayout(false);
+ this.tableLayoutPanel.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+ private TextBox textBox1;
+ private Label label1;
+ private RichTextBox richTextBox1;
+ }
+}
diff --git a/third_party_gui/fpPS4Fro/AboutBox1.cs b/third_party_gui/fpPS4Fro/AboutBox1.cs
new file mode 100644
index 0000000..1de537e
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/AboutBox1.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Reflection;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace fpPS4Fro
+{
+ partial class AboutBox1 : Form
+ {
+ public AboutBox1()
+ {
+ InitializeComponent();
+ this.Text = String.Format("Info über {0}", AssemblyTitle);
+
+ }
+
+ #region Assemblyattributaccessoren
+
+ public string AssemblyTitle
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ if (attributes.Length > 0)
+ {
+ AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
+ if (titleAttribute.Title != "")
+ {
+ return titleAttribute.Title;
+ }
+ }
+ return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
+ }
+ }
+
+ public string AssemblyVersion
+ {
+ get
+ {
+ return Assembly.GetExecutingAssembly().GetName().Version.ToString();
+ }
+ }
+
+ public string AssemblyDescription
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyDescriptionAttribute)attributes[0]).Description;
+ }
+ }
+
+ public string AssemblyProduct
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyProductAttribute)attributes[0]).Product;
+ }
+ }
+
+ public string AssemblyCopyright
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
+ }
+ }
+
+ public string AssemblyCompany
+ {
+ get
+ {
+ object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
+ if (attributes.Length == 0)
+ {
+ return "";
+ }
+ return ((AssemblyCompanyAttribute)attributes[0]).Company;
+ }
+ }
+ #endregion
+
+ private void okButton_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ }
+}
diff --git a/third_party_gui/fpPS4Fro/AboutBox1.resx b/third_party_gui/fpPS4Fro/AboutBox1.resx
new file mode 100644
index 0000000..57331ec
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/AboutBox1.resx
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ fpPS4 Parameters:
+
+-e <name> // decrypted elf or self file name
+-f <name> //folder of app (/app0)
+-p <name> //folder of patch (/app1)
+-s <name> //savedata path
+-h <name> //enable hack
+
+DEPTH_DISABLE_HACK // disable depth buffer
+COMPUTE_DISABLE_HACK //disable compute shaders
+MEMORY_BOUND_HACK //limit the amount of GPU allocated memory (iGPU)
+IMAGE_TEST_HACK //never reload texture
+DISABLE_SRGB_HACK //disables hacked display of SRGB
+
+
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/Form1.Designer.cs b/third_party_gui/fpPS4Fro/Form1.Designer.cs
new file mode 100644
index 0000000..b4c6aa0
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Form1.Designer.cs
@@ -0,0 +1,471 @@
+namespace fpPS4Fro
+{
+ partial class Form1
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
+ this.statusStrip1 = new System.Windows.Forms.StatusStrip();
+ this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
+ this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+ this.dateiToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.loadGameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
+ this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
+ this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
+ this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
+ this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.button1 = new System.Windows.Forms.Button();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.checkBox8 = new System.Windows.Forms.CheckBox();
+ this.checkBox7 = new System.Windows.Forms.CheckBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.checkBox6 = new System.Windows.Forms.CheckBox();
+ this.checkBox5 = new System.Windows.Forms.CheckBox();
+ this.checkBox4 = new System.Windows.Forms.CheckBox();
+ this.checkBox3 = new System.Windows.Forms.CheckBox();
+ this.checkBox2 = new System.Windows.Forms.CheckBox();
+ this.checkBox1 = new System.Windows.Forms.CheckBox();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.richTextBox1 = new System.Windows.Forms.RichTextBox();
+ this.splitter2 = new System.Windows.Forms.Splitter();
+ this.listView1 = new System.Windows.Forms.ListView();
+ this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
+ this.imageList1 = new System.Windows.Forms.ImageList(this.components);
+ this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.statusStrip1.SuspendLayout();
+ this.menuStrip1.SuspendLayout();
+ this.toolStrip1.SuspendLayout();
+ this.panel1.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // statusStrip1
+ //
+ this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
+ this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripStatusLabel1});
+ this.statusStrip1.Location = new System.Drawing.Point(0, 827);
+ this.statusStrip1.Name = "statusStrip1";
+ this.statusStrip1.Size = new System.Drawing.Size(1227, 26);
+ this.statusStrip1.TabIndex = 0;
+ this.statusStrip1.Text = "statusStrip1";
+ //
+ // toolStripStatusLabel1
+ //
+ this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
+ this.toolStripStatusLabel1.Size = new System.Drawing.Size(18, 20);
+ this.toolStripStatusLabel1.Text = "...";
+ //
+ // menuStrip1
+ //
+ this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
+ this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.dateiToolStripMenuItem});
+ this.menuStrip1.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip1.Name = "menuStrip1";
+ this.menuStrip1.Size = new System.Drawing.Size(1227, 28);
+ this.menuStrip1.TabIndex = 1;
+ this.menuStrip1.Text = "menuStrip1";
+ //
+ // dateiToolStripMenuItem
+ //
+ this.dateiToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.loadGameToolStripMenuItem,
+ this.optionsToolStripMenuItem});
+ this.dateiToolStripMenuItem.Name = "dateiToolStripMenuItem";
+ this.dateiToolStripMenuItem.Size = new System.Drawing.Size(46, 24);
+ this.dateiToolStripMenuItem.Text = "File";
+ this.dateiToolStripMenuItem.Click += new System.EventHandler(this.dateiToolStripMenuItem_Click);
+ //
+ // loadGameToolStripMenuItem
+ //
+ this.loadGameToolStripMenuItem.Name = "loadGameToolStripMenuItem";
+ this.loadGameToolStripMenuItem.Size = new System.Drawing.Size(168, 26);
+ this.loadGameToolStripMenuItem.Text = "Load Game";
+ this.loadGameToolStripMenuItem.Click += new System.EventHandler(this.loadGameToolStripMenuItem_Click);
+ //
+ // toolStrip1
+ //
+ this.toolStrip1.ImageScalingSize = new System.Drawing.Size(38, 38);
+ this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripButton1,
+ this.toolStripButton2,
+ this.toolStripButton3,
+ this.toolStripButton4});
+ this.toolStrip1.Location = new System.Drawing.Point(0, 28);
+ this.toolStrip1.Name = "toolStrip1";
+ this.toolStrip1.Size = new System.Drawing.Size(1227, 45);
+ this.toolStrip1.TabIndex = 2;
+ this.toolStrip1.Text = "toolStrip1";
+ this.toolStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.toolStrip1_ItemClicked);
+ //
+ // toolStripButton1
+ //
+ this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
+ this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton1.Name = "toolStripButton1";
+ this.toolStripButton1.Size = new System.Drawing.Size(42, 42);
+ this.toolStripButton1.Text = "Load Game";
+ this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
+ //
+ // toolStripButton2
+ //
+ this.toolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image")));
+ this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton2.Name = "toolStripButton2";
+ this.toolStripButton2.Size = new System.Drawing.Size(42, 42);
+ this.toolStripButton2.Text = "toolStripButton2";
+ this.toolStripButton2.ToolTipText = "Options";
+ this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
+ //
+ // toolStripButton3
+ //
+ this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image")));
+ this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton3.Name = "toolStripButton3";
+ this.toolStripButton3.Size = new System.Drawing.Size(42, 42);
+ this.toolStripButton3.Text = "toolStripButton3";
+ this.toolStripButton3.ToolTipText = "Exit";
+ this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click);
+ //
+ // toolStripButton4
+ //
+ this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image")));
+ this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton4.Name = "toolStripButton4";
+ this.toolStripButton4.Size = new System.Drawing.Size(42, 42);
+ this.toolStripButton4.Text = "toolStripButton4";
+ this.toolStripButton4.ToolTipText = "Info";
+ this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click);
+ //
+ // openFileDialog1
+ //
+ this.openFileDialog1.FileName = "openFileDialog1";
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.textBox1);
+ this.panel1.Controls.Add(this.button1);
+ this.panel1.Controls.Add(this.groupBox2);
+ this.panel1.Controls.Add(this.groupBox1);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Right;
+ this.panel1.Location = new System.Drawing.Point(823, 73);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(404, 754);
+ this.panel1.TabIndex = 4;
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(20, 501);
+ this.textBox1.Multiline = true;
+ this.textBox1.Name = "textBox1";
+ this.textBox1.ReadOnly = true;
+ this.textBox1.Size = new System.Drawing.Size(372, 200);
+ this.textBox1.TabIndex = 4;
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(20, 707);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(372, 29);
+ this.button1.TabIndex = 3;
+ this.button1.Text = "copy to Clipboard";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Visible = false;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.checkBox8);
+ this.groupBox2.Controls.Add(this.checkBox7);
+ this.groupBox2.Location = new System.Drawing.Point(20, 353);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(372, 125);
+ this.groupBox2.TabIndex = 1;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "...";
+ //
+ // checkBox8
+ //
+ this.checkBox8.AutoSize = true;
+ this.checkBox8.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox8.Location = new System.Drawing.Point(61, 74);
+ this.checkBox8.Name = "checkBox8";
+ this.checkBox8.Size = new System.Drawing.Size(247, 27);
+ this.checkBox8.TabIndex = 7;
+ this.checkBox8.Text = "activate parameter savedata";
+ this.checkBox8.UseVisualStyleBackColor = true;
+ this.checkBox8.CheckedChanged += new System.EventHandler(this.checkBox8_CheckedChanged);
+ //
+ // checkBox7
+ //
+ this.checkBox7.AutoSize = true;
+ this.checkBox7.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox7.Location = new System.Drawing.Point(61, 26);
+ this.checkBox7.Name = "checkBox7";
+ this.checkBox7.Size = new System.Drawing.Size(184, 27);
+ this.checkBox7.TabIndex = 6;
+ this.checkBox7.Text = "show window intern";
+ this.checkBox7.UseVisualStyleBackColor = true;
+ this.checkBox7.CheckedChanged += new System.EventHandler(this.checkBox7_CheckedChanged);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.checkBox6);
+ this.groupBox1.Controls.Add(this.checkBox5);
+ this.groupBox1.Controls.Add(this.checkBox4);
+ this.groupBox1.Controls.Add(this.checkBox3);
+ this.groupBox1.Controls.Add(this.checkBox2);
+ this.groupBox1.Controls.Add(this.checkBox1);
+ this.groupBox1.Location = new System.Drawing.Point(20, 35);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(372, 312);
+ this.groupBox1.TabIndex = 0;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Hacks";
+ //
+ // checkBox6
+ //
+ this.checkBox6.AutoSize = true;
+ this.checkBox6.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox6.Location = new System.Drawing.Point(61, 248);
+ this.checkBox6.Name = "checkBox6";
+ this.checkBox6.Size = new System.Drawing.Size(195, 27);
+ this.checkBox6.TabIndex = 5;
+ this.checkBox6.Text = "DISABLE_SRGB_HACK";
+ this.checkBox6.UseVisualStyleBackColor = true;
+ this.checkBox6.CheckedChanged += new System.EventHandler(this.checkBox6_CheckedChanged);
+ //
+ // checkBox5
+ //
+ this.checkBox5.AutoSize = true;
+ this.checkBox5.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox5.Location = new System.Drawing.Point(61, 206);
+ this.checkBox5.Name = "checkBox5";
+ this.checkBox5.Size = new System.Drawing.Size(185, 27);
+ this.checkBox5.TabIndex = 4;
+ this.checkBox5.Text = "IMAGE_LOAD_HACK";
+ this.checkBox5.UseVisualStyleBackColor = true;
+ this.checkBox5.CheckedChanged += new System.EventHandler(this.checkBox5_CheckedChanged);
+ //
+ // checkBox4
+ //
+ this.checkBox4.AutoSize = true;
+ this.checkBox4.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox4.Location = new System.Drawing.Point(61, 164);
+ this.checkBox4.Name = "checkBox4";
+ this.checkBox4.Size = new System.Drawing.Size(178, 27);
+ this.checkBox4.TabIndex = 3;
+ this.checkBox4.Text = "IMAGE_TEST_HACK";
+ this.checkBox4.UseVisualStyleBackColor = true;
+ this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged);
+ //
+ // checkBox3
+ //
+ this.checkBox3.AutoSize = true;
+ this.checkBox3.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox3.Location = new System.Drawing.Point(61, 122);
+ this.checkBox3.Name = "checkBox3";
+ this.checkBox3.Size = new System.Drawing.Size(221, 27);
+ this.checkBox3.TabIndex = 2;
+ this.checkBox3.Text = "MEMORY_BOUND_HACK";
+ this.checkBox3.UseVisualStyleBackColor = true;
+ this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged);
+ //
+ // checkBox2
+ //
+ this.checkBox2.AutoSize = true;
+ this.checkBox2.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox2.Location = new System.Drawing.Point(61, 80);
+ this.checkBox2.Name = "checkBox2";
+ this.checkBox2.Size = new System.Drawing.Size(233, 27);
+ this.checkBox2.TabIndex = 1;
+ this.checkBox2.Text = "COMPUTE_DISABLE_HACK";
+ this.checkBox2.UseVisualStyleBackColor = true;
+ this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged);
+ //
+ // checkBox1
+ //
+ this.checkBox1.AutoSize = true;
+ this.checkBox1.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.checkBox1.Location = new System.Drawing.Point(61, 38);
+ this.checkBox1.Name = "checkBox1";
+ this.checkBox1.Size = new System.Drawing.Size(206, 27);
+ this.checkBox1.TabIndex = 0;
+ this.checkBox1.Text = "DEPTH_DISABLE_HACK";
+ this.checkBox1.UseVisualStyleBackColor = true;
+ this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.richTextBox1);
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel2.Location = new System.Drawing.Point(0, 452);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(823, 375);
+ this.panel2.TabIndex = 8;
+ this.panel2.Visible = false;
+ //
+ // richTextBox1
+ //
+ this.richTextBox1.BackColor = System.Drawing.Color.Black;
+ this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.richTextBox1.Font = new System.Drawing.Font("Segoe UI", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.richTextBox1.ForeColor = System.Drawing.Color.White;
+ this.richTextBox1.Location = new System.Drawing.Point(0, 0);
+ this.richTextBox1.Name = "richTextBox1";
+ this.richTextBox1.Size = new System.Drawing.Size(823, 375);
+ this.richTextBox1.TabIndex = 0;
+ this.richTextBox1.Text = "";
+ //
+ // splitter2
+ //
+ this.splitter2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.splitter2.Location = new System.Drawing.Point(0, 448);
+ this.splitter2.Name = "splitter2";
+ this.splitter2.Size = new System.Drawing.Size(823, 4);
+ this.splitter2.TabIndex = 9;
+ this.splitter2.TabStop = false;
+ //
+ // listView1
+ //
+ this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader1});
+ this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listView1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.listView1.GridLines = true;
+ this.listView1.LargeImageList = this.imageList1;
+ this.listView1.Location = new System.Drawing.Point(0, 73);
+ this.listView1.MultiSelect = false;
+ this.listView1.Name = "listView1";
+ this.listView1.ShowGroups = false;
+ this.listView1.Size = new System.Drawing.Size(823, 375);
+ this.listView1.TabIndex = 10;
+ this.listView1.UseCompatibleStateImageBehavior = false;
+ this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
+ this.listView1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseDoubleClick);
+ //
+ // columnHeader1
+ //
+ this.columnHeader1.Text = "Games";
+ this.columnHeader1.Width = 250;
+ //
+ // imageList1
+ //
+ this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+ this.imageList1.ImageSize = new System.Drawing.Size(128, 128);
+ this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // optionsToolStripMenuItem
+ //
+ this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
+ this.optionsToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
+ this.optionsToolStripMenuItem.Text = "Options";
+ this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1227, 853);
+ this.Controls.Add(this.listView1);
+ this.Controls.Add(this.splitter2);
+ this.Controls.Add(this.panel2);
+ this.Controls.Add(this.panel1);
+ this.Controls.Add(this.toolStrip1);
+ this.Controls.Add(this.statusStrip1);
+ this.Controls.Add(this.menuStrip1);
+ this.MainMenuStrip = this.menuStrip1;
+ this.Name = "Form1";
+ this.Text = "fpPS4Fro";
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.statusStrip1.ResumeLayout(false);
+ this.statusStrip1.PerformLayout();
+ this.menuStrip1.ResumeLayout(false);
+ this.menuStrip1.PerformLayout();
+ this.toolStrip1.ResumeLayout(false);
+ this.toolStrip1.PerformLayout();
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.panel2.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private StatusStrip statusStrip1;
+ private MenuStrip menuStrip1;
+ private ToolStripMenuItem dateiToolStripMenuItem;
+ private ToolStripMenuItem loadGameToolStripMenuItem;
+ private ToolStrip toolStrip1;
+ private ToolStripButton toolStripButton1;
+ private ToolStripButton toolStripButton2;
+ private ToolStripButton toolStripButton3;
+ private OpenFileDialog openFileDialog1;
+ private ToolStripButton toolStripButton4;
+ private Panel panel1;
+ private GroupBox groupBox1;
+ private CheckBox checkBox6;
+ private CheckBox checkBox5;
+ private CheckBox checkBox4;
+ private CheckBox checkBox3;
+ private CheckBox checkBox2;
+ private CheckBox checkBox1;
+ private GroupBox groupBox2;
+ private CheckBox checkBox7;
+ private SplitContainer splitContainer1;
+ private Splitter splitter1;
+ private Panel panel2;
+ private Splitter splitter2;
+ private ListView listView1;
+ private RichTextBox richTextBox1;
+ private ColumnHeader columnHeader1;
+ private CheckBox checkBox8;
+ private ToolStripStatusLabel toolStripStatusLabel1;
+ private Button button1;
+ private ImageList imageList1;
+ private TextBox textBox1;
+ private ToolStripMenuItem optionsToolStripMenuItem;
+ }
+}
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/Form1.cs b/third_party_gui/fpPS4Fro/Form1.cs
new file mode 100644
index 0000000..31bf5ec
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Form1.cs
@@ -0,0 +1,443 @@
+using Ini;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection.Metadata.Ecma335;
+using System.Text;
+
+namespace fpPS4Fro
+{
+ public partial class Form1 : Form
+ {
+ string emp = "";
+ string gap = "";
+ string sadi = "";
+ string inipath = System.IO.Directory.GetCurrentDirectory();
+ delegate void VoidDelegate();
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ private void dateiToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
+ {
+
+ }
+
+ private void toolStripButton1_Click(object sender, EventArgs e)
+ {
+ string befehl = "";
+ string arg = "";
+ int m = 0;
+
+ if (checkBox7.Checked == true)
+ m = 2;
+ else
+ m = 1;
+
+ if (openFileDialog1.ShowDialog() == DialogResult.OK)
+ {
+ string path = openFileDialog1.FileName;
+ befehl = @"e:\emu\fpps4\fpps4.exe";
+ arg = " -e "+ "\""+ path + "\"";
+ rungame(befehl, arg, m);
+ }
+ }
+
+ private void Form1_Load(object sender, EventArgs e)
+ {
+ string emu = "";
+ string games = "";
+
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ emu = ini.IniReadValue("DIR", "emu");
+ games = ini.IniReadValue("DIR", "games");
+ sadi = ini.IniReadValue("DIR", "savedata");
+
+ if (emu.Length < 1)
+ MessageBox.Show("Please set the directories under OPTIONS");
+
+ if (ini.IniReadValue("HACKS", "H1") == "1")
+ checkBox1.Checked = true;
+ else
+ checkBox1.Checked = false;
+ if (ini.IniReadValue("HACKS", "H2") == "1")
+ checkBox2.Checked = true;
+ else
+ checkBox2.Checked = false;
+
+ if (ini.IniReadValue("HACKS", "H3") == "1")
+ checkBox3.Checked = true;
+ else
+ checkBox3.Checked = false;
+
+ if (ini.IniReadValue("HACKS", "H4") == "1")
+ checkBox4.Checked = true;
+ else
+ checkBox4.Checked = false;
+
+ if (ini.IniReadValue("HACKS", "H5") == "1")
+ checkBox5.Checked = true;
+ else
+ checkBox5.Checked = false;
+
+ if (ini.IniReadValue("HACKS", "H6") == "1")
+ checkBox6.Checked = true;
+ else
+ checkBox6.Checked = false;
+
+ if (ini.IniReadValue("ETC", "W1") == "1")
+ {
+ checkBox7.Checked = true;
+ panel2.Visible = true;
+ button1.Visible= true;
+
+ }
+ else
+ checkBox7.Checked = false;
+
+ if (ini.IniReadValue("ETC", "SD") == "1")
+ {
+ checkBox8.Checked = true;
+ }
+ else
+ checkBox8.Checked = false;
+
+
+ emp = emu;
+ gap = games;
+
+ if(games.Length> 0)
+ spiele(games);
+ }
+
+ void spiele (string pfad)
+ {
+ string pfad1="";
+ int i = 0;
+
+ listView1.Items.Clear();
+
+ DirectoryInfo ParentDirectory = new System.IO.DirectoryInfo(pfad);
+
+ foreach (DirectoryInfo d in ParentDirectory.GetDirectories())
+ {
+ ListViewItem directories = new ListViewItem();
+ directories.Text = d.Name;
+ directories.SubItems.Add("Games");
+ pfad1 = pfad + @"\" + directories.Text + @"\pict.jpg";
+ if(File.Exists(pfad1))
+ {
+ imageList1.Images.Add(Image.FromFile(pfad1));
+ directories.ImageIndex= i;
+ i ++;
+ }
+ listView1.Items.Add(directories);
+
+ }
+ }
+
+ private void toolStripButton2_Click(object sender, EventArgs e)
+ {
+ Form2 frm = new Form2();
+ frm.ShowDialog();
+ if (frm.DialogResult == DialogResult.OK)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ emp = ini.IniReadValue("DIR", "emu");
+ gap = ini.IniReadValue("DIR", "games");
+ sadi = ini.IniReadValue("DIR", "savedata");
+ spiele(gap);
+ }
+ }
+
+
+
+ private void loadGameToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ string befehl = "";
+ string arg = "";
+ string emu = "";
+ int m = 0;
+
+ if (checkBox7.Checked == true)
+ m = 2;
+ else
+ m = 1;
+
+
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ befehl = ini.IniReadValue("DIR", "emu");
+ emu = befehl +@"\";
+ befehl = befehl + @"\fpps4.exe";
+
+ if (openFileDialog1.ShowDialog() == DialogResult.OK)
+ {
+ string path = openFileDialog1.FileName;
+ arg = " -e " + "\"" + path + "\"";
+ arg = argm(arg);
+ rungame(befehl, arg, m);
+
+ }
+ }
+
+ string argm(string arg)
+ {
+ return arg;
+ }
+
+ private void toolStripButton4_Click(object sender, EventArgs e)
+ {
+ AboutBox1 frm = new AboutBox1();
+ frm.ShowDialog();
+ }
+
+ private void toolStripButton3_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void checkBox1_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox1.Checked == true )
+ {
+ ini.IniWriteValue("HACKS", "H1", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("HACKS", "H1", "0");
+ }
+ }
+
+ private void checkBox2_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox2.Checked == true)
+ {
+ ini.IniWriteValue("HACKS", "H2", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("HACKS", "H2", "0");
+ }
+ }
+
+ private void checkBox3_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox3.Checked == true)
+ {
+ ini.IniWriteValue("HACKS", "H3", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("HACKS", "H3", "0");
+ }
+ }
+
+ private void checkBox4_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox4.Checked == true)
+ {
+ ini.IniWriteValue("HACKS", "H4", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("HACKS", "H4", "0");
+ }
+ }
+
+ private void checkBox5_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox5.Checked == true)
+ {
+ ini.IniWriteValue("HACKS", "H5", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("HACKS", "H5", "0");
+ }
+ }
+
+ private void checkBox6_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox6.Checked == true)
+ {
+ ini.IniWriteValue("HACKS", "H6", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("HACKS", "H6", "0");
+ }
+ }
+
+
+ private void checkBox7_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox7.Checked == true)
+ {
+ ini.IniWriteValue("ETC", "W1", "1");
+ panel2.Visible = true;
+ button1.Visible = true;
+ }
+ else
+ {
+ ini.IniWriteValue("ETC", "W1", "0");
+ panel2.Visible = false;
+ button1.Visible = false;
+ }
+ }
+
+ private void listView1_SelectedIndexChanged(object sender, EventArgs e)
+ {
+
+ }
+
+ private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ string befehl = "";
+ string arg = "";
+ string path = "";
+ int m = 0;
+
+ if (this.listView1.SelectedItems.Count == 0)
+ return;
+
+ string namn = this.listView1.SelectedItems[0].Text;
+
+ befehl = emp + @"\fpps4.exe";
+ path = gap + @"\" + namn + @"\eboot.bin";
+ arg = " -e " + "\"" + path + "\"";
+
+ if (checkBox7.Checked == true)
+ m = 2;
+ else
+ m = 1;
+
+ rungame(befehl, arg, m);
+
+ }
+
+ void rungame(string command,string arg,int m)
+ {
+
+ StringBuilder output = new StringBuilder();
+ int lineCount = 0;
+
+
+ if (checkBox8.Checked == true)
+ arg = arg + " -s " + sadi;
+
+ if (checkBox1.Checked == true)
+ arg = arg + " -h " + "DEPTH_DISABLE_HACK";
+ if (checkBox2.Checked == true)
+ arg = arg + " -h " + "COMPUTE_DISABLE_HACK";
+ if (checkBox3.Checked == true)
+ arg = arg + " -h " + "MEMORY_BOUND_HACK";
+ if (checkBox4.Checked == true)
+ arg = arg + " -h " + "IMAGE_TEST_HACK";
+ if (checkBox5.Checked == true)
+ arg = arg + " -h " + "IMAGE_LOAD_HACK";
+ if (checkBox6.Checked == true)
+ arg = arg + " -h " + "DISABLE_SRGB_HACK";
+
+
+ Directory.SetCurrentDirectory(emp + @"\");
+
+ toolStripStatusLabel1.Text = command + " " + arg;
+ textBox1.Text = command + " " + arg;
+
+ if (m == 1)
+ {
+ Process P = new Process();
+ P.StartInfo.FileName = command;
+ P.StartInfo.Arguments = arg;
+ P.Start();
+ }
+
+ if (m == 2)
+ {
+ richTextBox1.Text = "";
+ Proc(command, arg);
+ }
+ }
+
+ private void Proc(string command, string arg)
+ {
+ BackgroundWorker bgw = new BackgroundWorker();
+ bgw.DoWork += (sender, args) => {
+ Process process = new Process();
+ process.StartInfo.FileName = command;
+ process.StartInfo.Arguments = arg;
+ process.StartInfo.UseShellExecute = false;
+ process.StartInfo.RedirectStandardOutput = true;
+ process.StartInfo.CreateNoWindow = true;
+ process.Start();
+ if (process != null)
+ {
+ process.OutputDataReceived += ((s, ev) =>
+ {
+ string sData = ev.Data;
+ sData += "\r\n";
+ ControlInvoke(richTextBox1, () => richTextBox1.Text += sData);
+ });
+ process.BeginOutputReadLine();
+ }
+ };
+ bgw.RunWorkerAsync();
+ }
+ public static void ControlInvoke(Control control, Action function)
+ {
+ if (control.IsDisposed || control.Disposing)
+ return;
+ if (control.InvokeRequired)
+ {
+ control.Invoke(new VoidDelegate(() => ControlInvoke(control, function)));
+ return;
+ }
+ function();
+ }
+
+
+ private void checkBox8_CheckedChanged(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ if (checkBox8.Checked == true)
+ {
+ ini.IniWriteValue("ETC", "SD", "1");
+ }
+ else
+ {
+ ini.IniWriteValue("ETC", "SD", "0");
+ }
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ Clipboard.SetText(richTextBox1.Text.ToString());
+ }
+
+ private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ Form2 frm = new Form2();
+ frm.ShowDialog();
+ if (frm.DialogResult == DialogResult.OK)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ emp = ini.IniReadValue("DIR", "emu");
+ gap = ini.IniReadValue("DIR", "games");
+ sadi = ini.IniReadValue("DIR", "savedata");
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/Form1.resx b/third_party_gui/fpPS4Fro/Form1.resx
new file mode 100644
index 0000000..c8555a4
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Form1.resx
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 154, 17
+
+
+ 289, 17
+
+
+
+
+ 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
+
+
+
+ 413, 17
+
+
+ 580, 17
+
+
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/Form2.Designer.cs b/third_party_gui/fpPS4Fro/Form2.Designer.cs
new file mode 100644
index 0000000..877e19c
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Form2.Designer.cs
@@ -0,0 +1,160 @@
+namespace fpPS4Fro
+{
+ partial class Form2
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.button4 = new System.Windows.Forms.Button();
+ this.button3 = new System.Windows.Forms.Button();
+ this.button1 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.textBox2 = new System.Windows.Forms.TextBox();
+ this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
+ this.textBox3 = new System.Windows.Forms.TextBox();
+ this.button5 = new System.Windows.Forms.Button();
+ this.panel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.button4);
+ this.panel1.Controls.Add(this.button3);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel1.Location = new System.Drawing.Point(0, 264);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(800, 75);
+ this.panel1.TabIndex = 0;
+ //
+ // button4
+ //
+ this.button4.Location = new System.Drawing.Point(561, 29);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(94, 29);
+ this.button4.TabIndex = 1;
+ this.button4.Text = "CANCEL";
+ this.button4.UseVisualStyleBackColor = true;
+ this.button4.Click += new System.EventHandler(this.button4_Click);
+ //
+ // button3
+ //
+ this.button3.DialogResult = System.Windows.Forms.DialogResult.OK;
+ this.button3.Location = new System.Drawing.Point(131, 29);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(94, 29);
+ this.button3.TabIndex = 0;
+ this.button3.Text = "OK";
+ this.button3.UseVisualStyleBackColor = true;
+ this.button3.Click += new System.EventHandler(this.button3_Click);
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(43, 42);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(94, 29);
+ this.button1.TabIndex = 1;
+ this.button1.Text = "Emulator";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(43, 92);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(94, 29);
+ this.button2.TabIndex = 2;
+ this.button2.Text = "Games";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(195, 43);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(541, 27);
+ this.textBox1.TabIndex = 3;
+ //
+ // textBox2
+ //
+ this.textBox2.Location = new System.Drawing.Point(195, 93);
+ this.textBox2.Name = "textBox2";
+ this.textBox2.Size = new System.Drawing.Size(541, 27);
+ this.textBox2.TabIndex = 4;
+ //
+ // textBox3
+ //
+ this.textBox3.Location = new System.Drawing.Point(195, 148);
+ this.textBox3.Name = "textBox3";
+ this.textBox3.Size = new System.Drawing.Size(541, 27);
+ this.textBox3.TabIndex = 6;
+ //
+ // button5
+ //
+ this.button5.Location = new System.Drawing.Point(43, 147);
+ this.button5.Name = "button5";
+ this.button5.Size = new System.Drawing.Size(94, 29);
+ this.button5.TabIndex = 5;
+ this.button5.Text = "Savedata";
+ this.button5.UseVisualStyleBackColor = true;
+ this.button5.Click += new System.EventHandler(this.button5_Click);
+ //
+ // Form2
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 339);
+ this.Controls.Add(this.textBox3);
+ this.Controls.Add(this.button5);
+ this.Controls.Add(this.textBox2);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.button2);
+ this.Controls.Add(this.button1);
+ this.Controls.Add(this.panel1);
+ this.Name = "Form2";
+ this.Text = "Directories";
+ this.Load += new System.EventHandler(this.Form2_Load);
+ this.panel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private Panel panel1;
+ private Button button4;
+ private Button button3;
+ private Button button1;
+ private Button button2;
+ private TextBox textBox1;
+ private TextBox textBox2;
+ private FolderBrowserDialog folderBrowserDialog1;
+ private TextBox textBox3;
+ private Button button5;
+ }
+}
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/Form2.cs b/third_party_gui/fpPS4Fro/Form2.cs
new file mode 100644
index 0000000..2c905e0
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Form2.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using Ini;
+
+namespace fpPS4Fro
+{
+ public partial class Form2 : Form
+ {
+ string inipath = System.IO.Directory.GetCurrentDirectory();
+ public Form2()
+ {
+ InitializeComponent();
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
+ {
+ textBox1.Text = folderBrowserDialog1.SelectedPath;
+ }
+ }
+
+ private void button2_Click(object sender, EventArgs e)
+ {
+ if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
+ {
+ textBox2.Text = folderBrowserDialog1.SelectedPath;
+ }
+ }
+
+ private void button3_Click(object sender, EventArgs e)
+ {
+ string emu = "";
+ string games = "";
+ string sd = "";
+
+ emu = textBox1.Text.ToString();
+ games = textBox2.Text.ToString();
+ sd = textBox3.Text.ToString();
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ ini.IniWriteValue("DIR","emu",emu );
+ ini.IniWriteValue("DIR","games", games);
+ ini.IniWriteValue("DIR", "savedata", sd);
+ Close();
+ }
+
+ private void button4_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ private void Form2_Load(object sender, EventArgs e)
+ {
+ IniFile ini = new IniFile(inipath + @"\fpps4fro.ini");
+ textBox1.Text = ini.IniReadValue("DIR", "emu");
+ textBox2.Text = ini.IniReadValue("DIR", "games");
+ textBox3.Text = ini.IniReadValue("DIR", "savedata");
+ }
+
+ private void button5_Click(object sender, EventArgs e)
+ {
+ if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
+ {
+ textBox3.Text = folderBrowserDialog1.SelectedPath;
+ }
+ }
+ }
+}
diff --git a/third_party_gui/fpPS4Fro/Form2.resx b/third_party_gui/fpPS4Fro/Form2.resx
new file mode 100644
index 0000000..73c89a5
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Form2.resx
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/Ini.cs b/third_party_gui/fpPS4Fro/Ini.cs
new file mode 100644
index 0000000..1909bfe
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Ini.cs
@@ -0,0 +1,57 @@
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Ini
+{
+ ///
+ /// Create a New INI file to store or load data
+ ///
+ public class IniFile
+ {
+ public string path;
+
+ [DllImport("kernel32")]
+ private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);
+ [DllImport("kernel32")]
+ private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);
+
+ ///
+ /// INIFile Constructor.
+ ///
+ ///
+ public IniFile(string INIPath)
+ {
+ path = INIPath;
+ }
+ ///
+ /// Write Data to the INI File
+ ///
+ ///
+ /// Section name
+ ///
+ /// Key Name
+ ///
+ /// Value Name
+ public void IniWriteValue(string Section,string Key,string Value)
+ {
+ WritePrivateProfileString(Section,Key,Value,this.path);
+ }
+
+ ///
+ /// Read Data Value From the Ini File
+ ///
+ ///
+ ///
+ ///
+ ///
+ public string IniReadValue(string Section,string Key)
+ {
+ StringBuilder temp = new StringBuilder(255);
+ int i = GetPrivateProfileString(Section,Key,"",temp,255,this.path);
+ return temp.ToString();
+
+ }
+ }
+}
diff --git a/third_party_gui/fpPS4Fro/Program.cs b/third_party_gui/fpPS4Fro/Program.cs
new file mode 100644
index 0000000..dca5b6b
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/Program.cs
@@ -0,0 +1,17 @@
+namespace fpPS4Fro
+{
+ internal static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ // To customize application configuration such as set high DPI settings or default font,
+ // see https://aka.ms/applicationconfiguration.
+ ApplicationConfiguration.Initialize();
+ Application.Run(new Form1());
+ }
+ }
+}
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/fpPS4Fro.csproj b/third_party_gui/fpPS4Fro/fpPS4Fro.csproj
new file mode 100644
index 0000000..13ee123
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/fpPS4Fro.csproj
@@ -0,0 +1,26 @@
+
+
+
+ WinExe
+ net6.0-windows
+ enable
+ true
+ enable
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/fpPS4Fro.csproj.user b/third_party_gui/fpPS4Fro/fpPS4Fro.csproj.user
new file mode 100644
index 0000000..ce35d60
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/fpPS4Fro.csproj.user
@@ -0,0 +1,14 @@
+
+
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+
\ No newline at end of file
diff --git a/third_party_gui/fpPS4Fro/readme.txt b/third_party_gui/fpPS4Fro/readme.txt
new file mode 100644
index 0000000..6c1ff4d
--- /dev/null
+++ b/third_party_gui/fpPS4Fro/readme.txt
@@ -0,0 +1 @@
+Author: https://github.com/SlrHui