Advertisement
Guest User

Strike Commander CD Missile Patch

a guest
Jul 26th, 2017
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. # This PowerShell script patches Strike Commander's Strike.exe to fix an issue
  2. # with missiles being ineffective, which is due to a high number of CPU cycles
  3. # making enemy AI super quick with counter-measures. This avoids having to lower
  4. # CPU cyles to mid-90s levels and put up with choppy performance.
  5. #
  6. # This applies to the CD-ROM Edition and any re-releases which use it, like GOG's.
  7. #
  8. # To run this, save it to a .ps1 file, right-click on it and choose Run with PowerShell.
  9. #
  10. # Credit for the patch goes to Harr-Nuta on the GOG forums:
  11. # https://www.gog.com/forum/strike_commander/missile_gullibility/page1
  12.  
  13. # Define the folder browser window
  14. Add-Type -AssemblyName System.Windows.Forms
  15. $FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog -Property @{
  16. Description = 'Select your Strike Commander folder (where Strike.exe is):'
  17. SelectedPath = 'C:\Games\Strike Commander’
  18. ShowNewFolderButton = $false
  19. }
  20.  
  21. # Display the folder browser window
  22. $result = $FolderBrowser.ShowDialog()
  23. If ($result -eq "Cancel") {
  24. Exit
  25. }
  26.  
  27. # Set variables
  28. $game_folder = $FolderBrowser.SelectedPath
  29. $game_exe = 'STRIKE.EXE'
  30. $game_backup_exe = 'STRIKE_orig.EXE'
  31.  
  32. If (Test-Path $game_folder\$game_exe) {
  33. # Patch Strike.exe
  34. $data = Get-Content -Raw -Encoding Byte $game_folder\$game_exe
  35. rename-item -path $game_folder\$game_exe -newname $game_folder\$game_backup_exe
  36. $data[0xd4ad] = 235
  37. $data[0xd4ae] = 43
  38. Set-Content -Encoding Byte -Path $game_folder\$game_exe -Value $data
  39.  
  40. # Display success message
  41. [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
  42. [System.Windows.Forms.Messagebox]::Show("Strike.exe patched successfully!","Success")
  43. }
  44. Else {
  45. # Display error message
  46. [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
  47. [System.Windows.Forms.Messagebox]::Show("Strike.exe does not exist. Aborting...","Error")
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement