diff --git a/.gitignore b/.gitignore index 48c2abc..7f8ab1e 100644 --- a/.gitignore +++ b/.gitignore @@ -65,6 +65,9 @@ artifacts/ # StyleCop StyleCopReport.xml +# Jetbrains tools +.idea + # Files built by Visual Studio *_i.c *_p.c diff --git a/SRTPluginProviderRE3/GameHashes.cs b/SRTPluginProviderRE3/GameHashes.cs index 6c7708d..7994caf 100644 --- a/SRTPluginProviderRE3/GameHashes.cs +++ b/SRTPluginProviderRE3/GameHashes.cs @@ -23,6 +23,9 @@ public static class GameHashes // Latest CeroD RT DX11 Build TO-DO private static readonly byte[] re3cerod_11047603 = new byte[32] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; + // Build : https://steamdb.info/patchnotes/11960962/ + private static readonly byte[] re3WW_11960962 = new byte[32] { 0x54, 0x58, 0x2F, 0x13, 0xE6, 0xE7, 0x0C, 0xD3, 0x12, 0x02, 0x9E, 0x8D, 0xAB, 0x6C, 0xAB, 0x88, 0x87, 0x08, 0xAB, 0x2B, 0x14, 0xB9, 0xD2, 0xFD, 0x69, 0x37, 0xFE, 0x39, 0xE1, 0x53, 0xD1, 0xF9 }; + private static void OutputVersionString(byte[] cs) { StringBuilder sb = new StringBuilder("private static readonly byte[] re3??_00000000 = new byte[32] { "); @@ -37,7 +40,7 @@ private static void OutputVersionString(byte[] cs) } } - sb.Append(" }"); + sb.Append(" };"); Console.WriteLine("Please DM VideoGameRoulette or Squirrelies with the version.log"); // write output to file string filename = "version.log"; @@ -75,6 +78,11 @@ public static GameVersion DetectVersion(string filePath) Console.WriteLine("Game Detected! Version: CeroD dx11_non-rt Release"); return GameVersion.RE3_CEROD_11047603; } + else if (checksum.SequenceEqual(re3WW_11960962)) + { + Console.WriteLine("Game Detected! Version: re3WW_11960962 Release"); + return GameVersion.RE3_NEW_11960962; + } else { Console.WriteLine("Unknown Version"); diff --git a/SRTPluginProviderRE3/GameMemoryRE3Scanner.cs b/SRTPluginProviderRE3/GameMemoryRE3Scanner.cs index fccb8e4..8519933 100644 --- a/SRTPluginProviderRE3/GameMemoryRE3Scanner.cs +++ b/SRTPluginProviderRE3/GameMemoryRE3Scanner.cs @@ -143,6 +143,17 @@ private GameVersion SelectPointerAddresses(GameVersion version) paMapId = 0x0; return GameVersion.RE3_CEROD_11047603; } + case GameVersion.RE3_NEW_11960962: + { + paEnemyManager = 0x09A751D0; + paGameClock = 0x9A651B0; + paGameRankSystem = 0x09A6E718; + paInventoryManager = 0x09A682A0; + paPlayerManager = 0x09A773F8; + paLocationId = 0x9A76560; + paMapId = 0x9A76560; + return GameVersion.RE3_NEW_11960962; + } } // If we made it this far... rest in pepperonis. We have failed to detect any of the correct versions we support and have no idea what pointer addresses to use. Bail out. diff --git a/SRTPluginProviderRE3/GameVersion.cs b/SRTPluginProviderRE3/GameVersion.cs index bc719b2..7665e8a 100644 --- a/SRTPluginProviderRE3/GameVersion.cs +++ b/SRTPluginProviderRE3/GameVersion.cs @@ -7,5 +7,6 @@ public enum GameVersion : int RE3_WW_11026988, // Latest RT DX12 Build RE3_CEROD_11047603, // Latest CeroD DX11 Build RE3_CEROD_11026646, // Latest CeroD RT DX12 Build + RE3_NEW_11960962, // Build : https://steamdb.info/patchnotes/11960962/ } }