Skip to content

Commit

Permalink
Optimisation stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Sui committed Jan 3, 2017
1 parent 87329d5 commit 908f19f
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 77 deletions.
30 changes: 18 additions & 12 deletions Form1.cs
Expand Up @@ -60,27 +60,33 @@ private void Timer_Tick(object sender, EventArgs e)
myProcess = Process.GetProcessesByName(processName);
if (myProcess.Length > 0)
{
if (foundProcess == false)
if (foundProcess == false || baseAddress == 0x0)
{
System.Threading.Thread.Sleep(100);
IntPtr startOffset = myProcess[0].MainModule.BaseAddress;
IntPtr endOffset = IntPtr.Add(startOffset, myProcess[0].MainModule.ModuleMemorySize);
baseAddress = startOffset.ToInt32();
}

IntPtr startOffset = myProcess[0].MainModule.BaseAddress;
IntPtr endOffset = IntPtr.Add(startOffset, myProcess[0].MainModule.ModuleMemorySize);
baseAddress = startOffset.ToInt32();
foundProcess = true;
}
else
{
foundProcess = false;
baseAddress = 0x0;
}


if (foundProcess)
{
// The game is running, ready for memory reading.
LB_Running.Text = "SILENT HILL 4 IS RUNNING";
LB_Running.ForeColor = Color.Green;

readResX = Trainer.ReadInteger(processName, ResXAdresss);
readResY = Trainer.ReadInteger(processName, ResYAdresss);
readFov = Trainer.ReadFloat(processName, fovAddress);
readAspectRatio = Trainer.ReadFloat(processName, aspectRatioAddress);
readResX = Trainer.ReadInteger(myProcess, ResXAdresss);
readResY = Trainer.ReadInteger(myProcess, ResYAdresss);
readFov = Trainer.ReadFloat(myProcess, fovAddress);
readAspectRatio = Trainer.ReadFloat(myProcess, aspectRatioAddress);

if (enablehack)
WriteFovToMemory();
Expand Down Expand Up @@ -122,7 +128,7 @@ void WriteFovToMemory()
if(foundProcess)
{
if(readFov != fov && !float.IsNaN(fov) && readFov!=0)
Trainer.WriteFloat(processName, fovAddress, fov);
Trainer.WriteFloat(myProcess, fovAddress, fov);
}
}

Expand All @@ -134,13 +140,13 @@ void writedisplayvaluestomemory()
{
if (ResolutionX != readResX || ResolutionY != readResY)
{
Trainer.WriteInteger(processName, ResXAdresss, ResolutionX);
Trainer.WriteInteger(processName, ResYAdresss, ResolutionY);
Trainer.WriteInteger(myProcess, ResXAdresss, ResolutionX);
Trainer.WriteInteger(myProcess, ResYAdresss, ResolutionY);
}
}

if (readAspectRatio != aspectRatio && !float.IsNaN(aspectRatio) && readFov != 0)
Trainer.WriteFloat(processName, aspectRatioAddress, aspectRatio);
Trainer.WriteFloat(myProcess, aspectRatioAddress, aspectRatio);
}
}

Expand Down
4 changes: 2 additions & 2 deletions Properties/AssemblyInfo.cs
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.8.0")]
[assembly: AssemblyFileVersion("0.8.0")]
[assembly: AssemblyVersion("0.8.1")]
[assembly: AssemblyFileVersion("0.8.1")]
79 changes: 16 additions & 63 deletions Trainer.cs
Expand Up @@ -51,46 +51,14 @@ public class Trainer
[DllImport("kernel32")]
private static extern int CloseHandle(int Handle);

[DllImport("user32")]
private static extern int FindWindow(string sClassName, string sAppName);
[DllImport("user32")]
private static extern int GetWindowThreadProcessId(int HWND, out int processId);


public static string CheckGame(string WindowTitle)
{
string result = "";
checked
{
try
{
int Proc;
int HWND = FindWindow(null, WindowTitle);
GetWindowThreadProcessId(HWND, out Proc);
int Handle = OpenProcess(PROCESS_ALL_ACCESS, 0, Proc);
if (Handle != 0)
{
result = "Game is running...";
}
else
{
result = "Game is not running...";
}
CloseHandle(Handle);
}
catch
{ }
}
return result;
}
public static byte ReadByte(string EXENAME, int Address)
public static byte ReadByte(Process[] Proc, int Address)
{
byte Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -107,14 +75,13 @@ public static byte ReadByte(string EXENAME, int Address)
}
return Value;
}
public static int ReadInteger(string EXENAME, int Address)
public static int ReadInteger(Process[] Proc, int Address)
{
int Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -131,14 +98,13 @@ public static int ReadInteger(string EXENAME, int Address)
}
return Value;
}
public static float ReadFloat(string EXENAME, int Address)
public static float ReadFloat(Process[] Proc, int Address)
{
float Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -155,14 +121,13 @@ public static float ReadFloat(string EXENAME, int Address)
}
return Value;
}
public static double ReadDouble(string EXENAME, int Address)
public static double ReadDouble(Process[] Proc, int Address)
{
double Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -180,14 +145,13 @@ public static double ReadDouble(string EXENAME, int Address)
return Value;
}

public static byte ReadPointerByte(string EXENAME, int Pointer, int[] Offset)
public static byte ReadPointerByte(Process[] Proc, int Pointer, int[] Offset)
{
byte Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -209,14 +173,13 @@ public static byte ReadPointerByte(string EXENAME, int Pointer, int[] Offset)
}
return Value;
}
public static int ReadPointerInteger(string EXENAME, int Pointer, int[] Offset)
public static int ReadPointerInteger(Process[] Proc, int Pointer, int[] Offset)
{
int Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -238,14 +201,13 @@ public static int ReadPointerInteger(string EXENAME, int Pointer, int[] Offset)
}
return Value;
}
public static float ReadPointerFloat(string EXENAME, int Pointer, int[] Offset)
public static float ReadPointerFloat(Process[] Proc, int Pointer, int[] Offset)
{
float Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -267,14 +229,13 @@ public static float ReadPointerFloat(string EXENAME, int Pointer, int[] Offset)
}
return Value;
}
public static double ReadPointerDouble(string EXENAME, int Pointer, int[] Offset)
public static double ReadPointerDouble(Process[] Proc, int Pointer, int[] Offset)
{
double Value = 0;
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -297,13 +258,12 @@ public static double ReadPointerDouble(string EXENAME, int Pointer, int[] Offset
return Value;
}

public static void WriteByte(string EXENAME, int Address, byte Value)
public static void WriteByte(Process[] Proc, int Address, byte Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -319,13 +279,12 @@ public static void WriteByte(string EXENAME, int Address, byte Value)
{ }
}
}
public static void WriteInteger(string EXENAME, int Address, int Value)
public static void WriteInteger(Process[] Proc, int Address, int Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -341,13 +300,12 @@ public static void WriteInteger(string EXENAME, int Address, int Value)
{ }
}
}
public static void WriteFloat(string EXENAME, int Address, float Value)
public static void WriteFloat(Process[] Proc, int Address, float Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -364,13 +322,12 @@ public static void WriteFloat(string EXENAME, int Address, float Value)
{ }
}
}
public static void WriteDouble(string EXENAME, int Address, double Value)
public static void WriteDouble(Process[] Proc, int Address, double Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Bytes = 0;
Expand All @@ -387,13 +344,12 @@ public static void WriteDouble(string EXENAME, int Address, double Value)
}
}

public static void WritePointerByte(string EXENAME, int Pointer, int[] Offset, byte Value)
public static void WritePointerByte(Process[] Proc, int Pointer, int[] Offset, byte Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Handle = OpenProcess(PROCESS_ALL_ACCESS, 0, Proc[0].Id);
Expand All @@ -414,13 +370,12 @@ public static void WritePointerByte(string EXENAME, int Pointer, int[] Offset, b
{ }
}
}
public static void WritePointerInteger(string EXENAME, int Pointer, int[] Offset, int Value)
public static void WritePointerInteger(Process[] Proc, int Pointer, int[] Offset, int Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Handle = OpenProcess(PROCESS_ALL_ACCESS, 0, Proc[0].Id);
Expand All @@ -441,13 +396,12 @@ public static void WritePointerInteger(string EXENAME, int Pointer, int[] Offset
{ }
}
}
public static void WritePointerFloat(string EXENAME, int Pointer, int[] Offset, float Value)
public static void WritePointerFloat(Process[] Proc, int Pointer, int[] Offset, float Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Handle = OpenProcess(PROCESS_ALL_ACCESS, 0, Proc[0].Id);
Expand All @@ -468,13 +422,12 @@ public static void WritePointerFloat(string EXENAME, int Pointer, int[] Offset,
{ }
}
}
public static void WritePointerDouble(string EXENAME, int Pointer, int[] Offset, double Value)
public static void WritePointerDouble(Process[] Proc, int Pointer, int[] Offset, double Value)
{
checked
{
try
{
Process[] Proc = Process.GetProcessesByName(EXENAME);
if (Proc.Length != 0)
{
int Handle = OpenProcess(PROCESS_ALL_ACCESS, 0, Proc[0].Id);
Expand Down

0 comments on commit 908f19f

Please sign in to comment.