Code: Select all
#NoEnv
If A_Args.Length() = 0
{
FileDelete, %A_ScriptDir%\Zeus - Fix Animation speed.log
SelectZeusLocation:
FileSelectFolder, sZeusLocation, ::{20d04fe0-3aea-1069-a2d8-08002b30309d}, 2, Please select the location you installed Zeus. This is where Zeus.exe is located.
If %ErrorLevel% = 1
ExitApp
sZeusExe := sZeusLocation . "\Zeus.exe"
If TestZeuslocation(sZeusExe) = False
GoTo, SelectZeusLocation
PerformHexEditing(sZeusExe)
}
Else
{
FileDelete, %A_ScriptDir%\Zeus - Fix Animation speed.log
For n, arParameter in A_Args
{
Loop Files, %arParameter%, FD
{
sParameter := A_LoopFileFullPath
}
If InStr(sParameter, "\Zeus.exe")
{
PerformHexEditing(sParameter)
FileAppend, `n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
}
Else
FileAppend, Zeus.exe not found in dropped file: %sParameter%`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
}
}
MsgBox, Finished patching Zeus.exe.
ExitApp
TestZeuslocation(sPassedEXELocation)
{
If Not FileExist(sPassedEXELocation)
{
MsgBox, 21, Zeus.exe not found, Zeus.exe was not found in the specified location.`nPlease select the correct location that Zeus is installed.,
IfMsgBox, Retry
Return, False
Else IfMsgBox, Cancel
ExitApp
}
Return, True
}
PerformHexEditing(sPassedExe)
{
Success := HexEdit(sPassedExe, "00", 197640)
If Success = False
{
MsgBox, An error occured while trying to edit "Zeus.exe". This program needs Read and Write access to Zeus.exe to work. You might need to move Zeus's folder out of "Program Files" or run this program as an Administrator.
ExitApp
}
FileAppend, %A_Tab%- Above should say 197640: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 735582)
FileAppend, %A_Tab%- Above should say 735582: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 735635)
FileAppend, %A_Tab%- Above should say 735635: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 742979)
FileAppend, %A_Tab%- Above should say 742979: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 744174)
FileAppend, %A_Tab%- Above should say 744174: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 744934)
FileAppend, %A_Tab%- Above should say 744934: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 747008)
FileAppend, %A_Tab%- Above should say 747008: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 747960)
FileAppend, %A_Tab%- Above should say 747960: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 758231)
FileAppend, %A_Tab%- Above should say 758231: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 760499)
FileAppend, %A_Tab%- Above should say 760499: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 760572)
FileAppend, %A_Tab%- Above should say 760572: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 760701)
FileAppend, %A_Tab%- Above should say 760701: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 761266)
FileAppend, %A_Tab%- Above should say 761266: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 761864)
FileAppend, %A_Tab%- Above should say 761864: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 764961)
FileAppend, %A_Tab%- Above should say 764961: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 764978)
FileAppend, %A_Tab%- Above should say 764978: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 764995)
FileAppend, %A_Tab%- Above should say 764995: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 765012)
FileAppend, %A_Tab%- Above should say 765012: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 766453)
FileAppend, %A_Tab%- Above should say 766453: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 766850)
FileAppend, %A_Tab%- Above should say 766850: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 766950)
FileAppend, %A_Tab%- Above should say 766950: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 766988)
FileAppend, %A_Tab%- Above should say 766988: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767026)
FileAppend, %A_Tab%- Above should say 767026: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767064)
FileAppend, %A_Tab%- Above should say 767064: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767102)
FileAppend, %A_Tab%- Above should say 767102: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767140)
FileAppend, %A_Tab%- Above should say 767140: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767178)
FileAppend, %A_Tab%- Above should say 767178: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767213)
FileAppend, %A_Tab%- Above should say 767213: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767248)
FileAppend, %A_Tab%- Above should say 767248: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767283)
FileAppend, %A_Tab%- Above should say 767283: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767380)
FileAppend, %A_Tab%- Above should say 767380: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767406)
FileAppend, %A_Tab%- Above should say 767406: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767432)
FileAppend, %A_Tab%- Above should say 767432: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767461)
FileAppend, %A_Tab%- Above should say 767461: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 767575)
FileAppend, %A_Tab%- Above should say 767575: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 774962)
FileAppend, %A_Tab%- Above should say 774962: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 774986)
FileAppend, %A_Tab%- Above should say 774986: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 775091)
FileAppend, %A_Tab%- Above should say 775091: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777315)
FileAppend, %A_Tab%- Above should say 777315: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777344)
FileAppend, %A_Tab%- Above should say 777344: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777373)
FileAppend, %A_Tab%- Above should say 777373: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777402)
FileAppend, %A_Tab%- Above should say 777402: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777520)
FileAppend, %A_Tab%- Above should say 777520: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777688)
FileAppend, %A_Tab%- Above should say 777688: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777819)
FileAppend, %A_Tab%- Above should say 777819: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777888)
FileAppend, %A_Tab%- Above should say 777888: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 777957)
FileAppend, %A_Tab%- Above should say 777957: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778026)
FileAppend, %A_Tab%- Above should say 778026: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778095)
FileAppend, %A_Tab%- Above should say 778095: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778164)
FileAppend, %A_Tab%- Above should say 778164: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778233)
FileAppend, %A_Tab%- Above should say 778233: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778302)
FileAppend, %A_Tab%- Above should say 778302: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778371)
FileAppend, %A_Tab%- Above should say 778371: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 778440)
FileAppend, %A_Tab%- Above should say 778440: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 785476)
FileAppend, %A_Tab%- Above should say 785476: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 785913)
FileAppend, %A_Tab%- Above should say 785913: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 786248)
FileAppend, %A_Tab%- Above should say 786248: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 796370)
FileAppend, %A_Tab%- Above should say 796370: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 796481)
FileAppend, %A_Tab%- Above should say 796481: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 796900)
FileAppend, %A_Tab%- Above should say 796900: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 796933)
FileAppend, %A_Tab%- Above should say 796933: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 797657)
FileAppend, %A_Tab%- Above should say 797657: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 801401)
FileAppend, %A_Tab%- Above should say 801401: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 820246)
FileAppend, %A_Tab%- Above should say 820246: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 820477)
FileAppend, %A_Tab%- Above should say 820477: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 826861)
FileAppend, %A_Tab%- Above should say 826861: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 827009)
FileAppend, %A_Tab%- Above should say 827009: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 831960)
FileAppend, %A_Tab%- Above should say 831960: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 831985)
FileAppend, %A_Tab%- Above should say 831985: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
HexEdit(sPassedExe, "00", 832064)
FileAppend, %A_Tab%- Above should say 832064: 0x64 replaced with 0x00`n`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
Return
}
; Many thanks to Wolf_II of the AutoHotkey forums for the HexEdit function below:
; https://autohotkey.com/boards/viewtopic.php?t=20524
;
;-------------------------------------------------------------------------------
HexEdit(Filename, Nibbles = "", Pos = 1) { ; write Nibbles at pos
;-------------------------------------------------------------------------------
; If Filename does not exist, it will be created.
; Unacceptable Nibbles will be rejected.
; If Pos is larger than file length
; Filename's length will be adjusted accordingly.
; all undefined bytes in the file will be set to zero.
;---------------------------------------------------------------------------
; returns 1 if successful, 0 otherwise.
;---------------------------------------------------------------------------
If Mod(StrLen(Nibbles), 2)
Or RegExMatch(Nibbles, "[^0-9a-fA-F]")
Or Not (f := FileOpen(Filename, "rw"))
Return, False
f.Seek(Pos - 1)
sOldCharacters := DecToBase(f.ReadChar(2), 16)
f.Seek(Pos - 1)
If (Pos != 1) And (Nibbles = "")
f.WriteChar(0)
sCurNibblesVal := Nibbles
While Nibbles != ""
f.WriteChar("0x" SubStr(Nibbles, 1, 2))
, Nibbles := SubStr(Nibbles, 3)
FileAppend, Data written to address %Pos%: 0x%sOldCharacters% replaced with 0x%sCurNibblesVal%`n, %A_ScriptDir%\Zeus - Fix Animation speed.log,
f.Close()
Return, True
}
DecToBase(n, Base)
{
Static U := A_IsUnicode ? "w" : "a"
VarSetCapacity(S,65,0)
DllCall("msvcrt\_i64to" U, "Int64",n, "Str",S, "Int",Base)
Return, S
}