Far Cry 2

Far Cry 2

Not enough ratings
Fix Jacal's tapes glitch without installing anything
By Ginsei
I'm personally a bit paranoid about installing fan-made patches and all. You also may not want to install a hex-editor just to fix one tiny thing. So, here is a guide how to fix this bug using only windows powershell.
   
Award
Favorite
Favorited
Unfavorite
Intro
An incredibly detailed explanation of why this bug appears you can find in another guide by FoxAhead here https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=1563578739

But here is how to fix it without installing patches or other software
Script
# Define the file path $file = "full\path\to\Dunia.dll" # Define the byte sequence to search for and the replacement byte $originalBytes = [byte[]](0x0A, 0x3B, 0xCA, 0x75, 0x0A) $replacementByte = [byte]0x14 $offset = 0x0074D865 try { # Read the file in binary mode $fileStream = [System.IO.File]::Open($file, 'Open', 'ReadWrite') $binaryReader = New-Object System.IO.BinaryReader($fileStream) $binaryWriter = New-Object System.IO.BinaryWriter($fileStream) # Go to the specified offset $fileStream.Seek($offset, [System.IO.SeekOrigin]::Begin) | Out-Null # Read bytes at the offset $bytesAtOffset = $binaryReader.ReadBytes($originalBytes.Length) # Compare the bytes if ($bytesAtOffset -join ',' -eq $originalBytes -join ',') { Write-Host "Sequence found at offset. Updating the byte..." # Write the replacement byte $fileStream.Seek($offset, [System.IO.SeekOrigin]::Begin) | Out-Null $binaryWriter.Write($replacementByte) Write-Host "First byte changed successfully." } else { Write-Host "The specified byte sequence was not found at the given offset." } } catch { Write-Host "An error occurred: $_" } finally { # Close the file streams $binaryReader.Close() $binaryWriter.Close() $fileStream.Close() } Write-Host "Operation completed."
Steps
  1. copy a script from the previous section into a text editor (you can use a notepad if you like)
  2. put a correct path to Dunia.dll into a $file variable (it's something like ...\Far Cry 2\bin\Dunia.dll)
  3. if you have retail version of far cry 2 change the offset in $offset variable to 0x00740355
  4. make a backup copy of Dunia.dll just in case
  5. copy the resulting script into windows powershell
  6. If you see a warning "You are about to paste text that contains multiple lines..." click "Paste anyway"

And that's it. Enjoy collecting Jacal's tapes :)