Skip to content

Commit

Permalink
Salad's pointer/offset changes. Blame him.
Browse files Browse the repository at this point in the history
  • Loading branch information
Squirrelies committed Mar 2, 2024
1 parent da91e84 commit ba4ba8c
Showing 1 changed file with 43 additions and 34 deletions.
77 changes: 43 additions & 34 deletions SRTPluginProviderRE7/GameMemoryRE7Scanner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
using System.Diagnostics;
using SRTPluginProviderRE7.Structs;
using SRTPluginProviderRE7.Structs.GameStructs;
using Windows.Win32.System.ProcessStatus;

namespace SRTPluginProviderRE7
{
Expand Down Expand Up @@ -66,14 +65,13 @@ internal unsafe void Initialize(Process process, GameVersion gv)

if (ProcessRunning)
{
//BaseAddress = NativeWrappers.GetProcessBaseAddress(pid, ENUM_PROCESS_MODULES_EX_FLAGS.LIST_MODULES_64BIT); // Bypass .NET's managed solution for getting this and attempt to get this info ourselves via PInvoke since some users are getting 299 PARTIAL COPY when they seemingly shouldn'
//BaseAddress = NativeWrappers.GetProcessBaseAddress(pid, PInvoke.ListModules.LIST_MODULES_64BIT); // Bypass .NET's managed solution for getting this and attempt to get this info ourselves via PInvoke since some users are getting 299 PARTIAL COPY when they seemingly shouldn'
BaseAddress = process?.MainModule?.BaseAddress ?? IntPtr.Zero;
Console.WriteLine($"Game Base Address: {BaseAddress.ToInt64()}");
if (gv == GameVersion.STEAM_December2021)
{
Console.WriteLine("This is steamversion december 2021");
PointerDA = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressDifficultyAdjustment));
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x58, 0x68, 0x70);
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x68, 0x68, 0x70);
PointerRoomID = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressRoomID), 0x700);

PointerBagCount = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressBagCount));
Expand Down Expand Up @@ -106,7 +104,7 @@ internal unsafe void Initialize(Process process, GameVersion gv)
{
Console.WriteLine("This is steam version june 2022");
PointerDA = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressDifficultyAdjustment));
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x68, 0x68, 0x70);
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x58, 0x68, 0x70);
PointerRoomID = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressRoomID), 0x960);

PointerBagCount = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressBagCount));
Expand Down Expand Up @@ -139,7 +137,7 @@ internal unsafe void Initialize(Process process, GameVersion gv)
{
Console.WriteLine("This is steam version october 2022");
PointerDA = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressDifficultyAdjustment));
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x68, 0x68, 0x70);
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x58, 0x68, 0x70);
PointerRoomID = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressRoomID), 0x960);

PointerBagCount = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressBagCount));
Expand Down Expand Up @@ -205,7 +203,7 @@ internal unsafe void Initialize(Process process, GameVersion gv)
{
Console.WriteLine("This is steam version DX 12 Update September 2023");
PointerDA = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressDifficultyAdjustment));
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x68, 0x68, 0x70);
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x58, 0x68, 0x70);
PointerRoomID = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressRoomID), 0x960);

PointerBagCount = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressBagCount));
Expand Down Expand Up @@ -238,7 +236,7 @@ internal unsafe void Initialize(Process process, GameVersion gv)
{
Console.WriteLine("This is Windows");
PointerDA = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressDifficultyAdjustment));
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x58, 0x68, 0x70);
PointerHP = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressHP), 0xE8, 0x68, 0x68, 0x70);
PointerRoomID = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressRoomID), 0x700);

PointerBagCount = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressBagCount));
Expand Down Expand Up @@ -269,74 +267,80 @@ internal unsafe void Initialize(Process process, GameVersion gv)
}
}
}

//Enemy HP CeroD
private unsafe void GenerateEnemyEntriesWindows()
{
if (PointerEnemyEntries == null)
{
PointerEnemyEntries = new MultilevelPointer[MAX_ENTITIES];
for (int i = 0; i < MAX_ENTITIES; ++i)
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0x190, 0x490, 0x20, 0x8 + (i * 0x8), 0x58, 0x70);
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x20, 0x30 + (i * 0x8), 0x28, 0x68, 0x70);
}

}
private unsafe void GenerateEnemyEntriesSteam()

//DX11 2021
private unsafe void GenerateEnemyEntriesDX11()
{
if (PointerEnemyEntries == null)
{
PointerEnemyEntries = new MultilevelPointer[MAX_ENTITIES];
for (int i = 0; i < MAX_ENTITIES; ++i)
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0x40 + (i * 0x8), 0x58, 0x70);
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x20, 0x30 + (i * 0x8), 0x28, 0x68, 0x70);
}

}
// This is a comment.
/*
Multi-line
*/
private unsafe void GenerateEnemyEntriesSteamOctober2022()

//DX11 EOL
private unsafe void GenerateEnemyEntriesSteamDX11EOL()
{
if (PointerEnemyEntries == null)
{
PointerEnemyEntries = new MultilevelPointer[MAX_ENTITIES];
for (int i = 0; i < MAX_ENTITIES; ++i)
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x10, 0x30, 0x28, 0x110, 0x90, 0x10, 0x30 + (i * 0x8));
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x20, 0x30 + (i * 0x8), 0x28, 0x68, 0x70);
}

}

private unsafe void GenerateEnemyEntriesSteamDX11EOL()
//Original DX12 Update
private unsafe void GenerateEnemyEntriesSteam()
{
if (PointerEnemyEntries == null)
{
PointerEnemyEntries = new MultilevelPointer[MAX_ENTITIES];
for (int i = 0; i < MAX_ENTITIES; ++i)
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x20, 0x30 + (i * 0x8), 0x28, 0x68, 0x70);
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x10, 0x20 + (i * 0x8), 0x18, 0x68, 0x70);
}

}

private unsafe void GenerateEnemyEntriesSteamDX12_09_05_2023()
//DX12 Oct 2022
private unsafe void GenerateEnemyEntriesSteamOctober2022()
{
if (PointerEnemyEntries == null)
{
PointerEnemyEntries = new MultilevelPointer[MAX_ENTITIES];
for (int i = 0; i < MAX_ENTITIES; ++i)
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x10, 0x30, 0x28, 0x110, 0x90, 0x10, 0x30 + (i * 0x8));
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x10, 0x20 + (i * 0x8), 0x18, 0x68, 0x70);
}

}

private unsafe void GenerateEnemyEntriesDX11()
//DX12 May 2023
private unsafe void GenerateEnemyEntriesSteamDX12_09_05_2023()
{
if (PointerEnemyEntries == null)
{
PointerEnemyEntries = new MultilevelPointer[MAX_ENTITIES];
for (int i = 0; i < MAX_ENTITIES; ++i)
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x20, 0x30 + (i * 0x8), 0x28, 0x68, 0x70);
PointerEnemyEntries[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressEnemyHP), 0xB8, 0x10, 0x20 + (i * 0x8), 0x18, 0x68, 0x70);
}

}

//Jack Eye HP CeroD
private unsafe void GenerateJackEyesWindows()
{
if (PointerJackEyeHPs == null)
Expand All @@ -349,43 +353,47 @@ private unsafe void GenerateJackEyesWindows()
}
}

private unsafe void GenerateJackEyesSteam()
//DX11 2021
private unsafe void GenerateJackEyesDX11()
{
if (PointerJackEyeHPs == null)
{
PointerJackEyeHPs = new MultilevelPointer[MAX_JACKEYES];
for (int i = 0; i < MAX_JACKEYES; ++i)
{
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x10, 0x30, 0x28, 0x110, 0x90, 0x10, 0x30 + (i * 0x8));
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x20, 0x40, 0x30, 0x328, 0x90, 0x20, 0x30 + (i * 0x8));
}
}
}

private unsafe void GenerateJackEyesSteamOctober2022()
//DX11 EOL
private unsafe void GenerateJackEyesSteamDX11EOL()
{
if (PointerJackEyeHPs == null)
{
PointerJackEyeHPs = new MultilevelPointer[MAX_JACKEYES];
for (int i = 0; i < MAX_JACKEYES; ++i)
{
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x10, 0x30, 0x28, 0x110, 0x90, 0x10, 0x30 + (i * 0x8));
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x20, 0x40, 0x30, 0x328, 0x90, 0x20, 0x30 + (i * 0x8));
}
}
}

private unsafe void GenerateJackEyesSteamDX11EOL()
//Original DX12 Update
private unsafe void GenerateJackEyesSteam()
{
if (PointerJackEyeHPs == null)
{
PointerJackEyeHPs = new MultilevelPointer[MAX_JACKEYES];
for (int i = 0; i < MAX_JACKEYES; ++i)
{
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x20, 0x40, 0x30, 0x328, 0x90, 0x20, 0x30 + (i * 0x8));
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x10, 0x30, 0x28, 0x110, 0x90, 0x10, 0x30 + (i * 0x8));
}
}
}

private unsafe void GenerateJackEyesSteamDX12_09_05_2023()
//DX12 Oct 2022
private unsafe void GenerateJackEyesSteamOctober2022()
{
if (PointerJackEyeHPs == null)
{
Expand All @@ -397,14 +405,15 @@ private unsafe void GenerateJackEyesSteamDX12_09_05_2023()
}
}

private unsafe void GenerateJackEyesDX11()
//DX12 May 2023
private unsafe void GenerateJackEyesSteamDX12_09_05_2023()
{
if (PointerJackEyeHPs == null)
{
PointerJackEyeHPs = new MultilevelPointer[MAX_JACKEYES];
for (int i = 0; i < MAX_JACKEYES; ++i)
{
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x20, 0x40, 0x30, 0x328, 0x90, 0x20, 0x30 + (i * 0x8));
PointerJackEyeHPs[i] = new MultilevelPointer(memoryAccess, (nint*)IntPtr.Add(BaseAddress, pointerAddressJackEyeHP), 0xB8, 0x10, 0x30, 0x28, 0x110, 0x90, 0x10, 0x30 + (i * 0x8));
}
}
}
Expand All @@ -413,9 +422,9 @@ private unsafe void GetItems()
{
if (gameMemoryValues.PlayerInventoryCount != 0)
{
for (var i = 0; i < gameMemoryValues.PlayerInventoryCount; i++)
for (int i = 0; i < gameMemoryValues.PlayerInventoryCount; i++)
{
nint position = (nint)(0x30L + (0x8L * i));
nint position = 0x30 + (0x8 * i);
PointerItemNames[i] = new MultilevelPointer(memoryAccess, (nint*)(BaseAddress + pointerAddressItemCount), 0x60, 0x20, position, 0x28, 0x80);
PointerItemInfo[i] = new MultilevelPointer(memoryAccess, (nint*)(BaseAddress + pointerAddressItemCount), 0x60, 0x20, position, 0x28);
}
Expand Down

0 comments on commit ba4ba8c

Please sign in to comment.