mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-23 06:19:57 +00:00
443 lines
13 KiB
C#
443 lines
13 KiB
C#
|
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");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|