Files

201 lines
5.6 KiB
Lua

require(GlobalDependencys:GetDependency("StandardBase"):GetPackageName())
--GAME VARS
--ControlVars
bFixEnabled = true
bCamera = true
bFPS = true
bCinematics = true
--PROCESS VARS
Process_FriendlyName = Module:GetFriendlyName()
Process_WindowName = "*"
Process_ClassName = "*"
Process_EXEName = "Ronin.exe"
--INJECTION BEHAVIOUR
InjectDelay = 1000
WriteInterval = 100
SearchInterval = 100
SuspendThread = true
--Name Manual/Auto/Hybrid Steam/Origin/Any IncludeFile:Configure;Enable;Periodic;Disable;
SupportedVersions = {
{"Automatically Detect", "Hybrid", "Any", "Configure_SignatureScan;Enable_Inject;Periodic;Disable_Inject;"},
}
function Init_Controls()
DefaultControls.AddHeader("Header_FixesEnableDisable","Individual Fixes",245,70,210,17)
DefaultControls.AddHeader("Header_CAMERA","Camera fine adjustment",15,70,210,17)
DefaultControls.AddFixedFOVSlider("CAMERASlider","CAMERASlider_Changed",55,100,125,35,0,120,0,1)
CAMERASlider:SetTickFrequency(10)
CAMERASlider:SetLabel1Text("-20")
CAMERASlider:SetLabel2Text("100")
DefaultControls.AddFixToggle("CKCAMERAFix_Enable","Camera distance fix","CKCAMERAFix_Changed",255,101,180,14)
DefaultControls.AddFixToggle("CKFPSFix_Enable","In game frame fix","CKFPSFix_Changed",255,121,180,14)
DefaultControls.AddFixToggle("CKCINEMATICSFPSFix_Enable","Cutscenes frame fix","CKCINEMATICSFPSFix_Changed",255,141,180,14)
end
function Configure_SignatureScan()
local tAddress = HackTool:AddAddress("CAMERADISTANCE")
if HackTool:SignatureScan("8B 88 ?? ?? ?? ?? 49 8B ?? ?? ?? ?? ?? F3 0F ?? ?? ?? ?? ?? ?? 48",tAddress,PAGE_EXECUTE_READ,0x0,Process_EXEName) == 0 then
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
else
print( tAddress:GetInfo(TYPE_ADDRESS) )
--Ronin.exe+2BC551 - F3 0F 10 15 37 D7 47 04 - movss xmm2,[Ronin.exe+4739C90]
--Ronin.exe+2BC559 - F3 0F 5C CA - subss xmm1,xmm2
--Ronin.exe+2BC55D - 8B 88 44 02 00 00 - mov ecx,[rax+00000244]
--Ronin.exe+2BC563 - 49 8B 81 C8 03 00 00 - mov rax,[r9+000003C8]
--Ronin.exe+2BC56A - F3 0F 5E 0D 5A DA 47 04 - divss xmm1,[Ronin.exe+4739FCC]
end
local tAddress = HackTool:AddAddress("FPS")
if HackTool:SignatureScan("48 ?? ?? 48 89 ?? ?? ?? 48 63 ?? ?? ?? ?? ?? B9 3C 00 00 00",tAddress,PAGE_EXECUTE_READ,0x0f,Process_EXEName) == 0 then
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
else
print( tAddress:GetInfo(TYPE_ADDRESS) )
--Ronin.exe+2A29F2 - 48 89 44 24 10 - mov [rsp+10],rax
--Ronin.exe+2A29F7 - 48 63 05 BE 94 C7 04 - movsxd rax,dword ptr [Ronin.exe+4F1BEBC]
--Ronin.exe+2A29FE - B9 3C 00 00 00 - mov ecx,0000003C
--Ronin.exe+2A2A03 - C7 04 24 1E 00 00 00 - mov [rsp],0000001E
--Ronin.exe+2A2A0A - 89 4C 24 04 - mov [rsp+04],ecx
end
local tAddress = HackTool:AddAddress("CINEMATICSFRAMERATE")
if HackTool:SignatureScan("89 97 ?? ?? ?? ?? 89 87 ?? ?? ?? ?? E8 ?? ?? ?? ?? 89 87",tAddress,PAGE_EXECUTE_READ,0x0,Process_EXEName) == 0 then
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
else
print( tAddress:GetInfo(TYPE_ADDRESS) )
--Ronin.exe+2A2AB1 - 8B 87 48 07 00 00 - mov eax,[rdi+00000748]
--Ronin.exe+2A2AB7 - 8B 97 40 07 00 00 - mov edx,[rdi+00000740]
--Ronin.exe+2A2ABD - 89 97 3C 07 00 00 - mov [rdi+0000073C],edx
--Ronin.exe+2A2AC3 - 89 87 44 07 00 00 - mov [rdi+00000744],eax
--Ronin.exe+2A2AC9 - E8 16 FF FF FF - call Ronin.exe+2A29E4
--Ronin.exe+2A2ACE - 89 87 40 07 00 00 - mov [rdi+00000740],eax
end
return true
end
function Enable_Inject()
local Variables = HackTool:AllocateMemory("Variables", 0)
Variables:PushInt("CameraDistance")
Variables:Allocate()
ResolutionChanged()
local asm = [[
(codecave:jmp)CAMERADISTANCE,CAMERADISTANCE_cc:
$$0 $$1,[(allocation)Variables->CameraDistance] $ctx=1
jmp %returnaddress%
%end%
(codecave:jmp)CINEMATICSFRAMERATE,CINEMATICSFRAMERATE_cc:
$$0 $$2,0xff $ctx=1 ; Push FPS in cutscenes up to 255
$$0 eax,$$2 $ctx=1
%originalcode%
jmp %returnaddress%
%end%
(codecave)FPS,FPS_cc:
$$0 $$1,0xff $ctx=1 ; Push FPS up to 255
%end%
]]
if HackTool:CompileAssembly(asm,"Fixes") == nil then
return ErrorOccurred("Assembly compilation failed...")
else
Toggle_CodeCave("CAMERADISTANCE_cc",bCamera)
Toggle_CodeCave("FPS_cc",bFPS)
Toggle_CodeCave("CINEMATICSFRAMERATE_cc",bCinematics)
end
Write_Camera()
end
function Periodic()
end
function CAMERASlider_Changed(Sender)
fCameraDistance = Sender:GetPosition() - 20
lblCAMERASlider.Caption:SetCaption( string.format("Camera: %.0f",fCameraDistance) )
Write_Camera()
ForceUpdate()
end
function Write_Camera()
local Variables = HackTool:GetAllocation("Variables")
if Variables and Variables["CameraDistance"] then
Variables["CameraDistance"]:WriteInt(fCameraDistance)
end
end
function CKCAMERAFix_Changed(Sender)
bCamera = Toggle_CheckFix(Sender)
Write_Camera()
Toggle_CodeCave("CAMERADISTANCE_cc",bCamera)
ForceUpdate()
end
function CKFPSFix_Changed(Sender)
bFPS = Toggle_CheckFix(Sender)
Toggle_CodeCave("FPS_cc",bFPS)
ForceUpdate()
end
function CKCINEMATICSFPSFix_Changed(Sender)
bCinematics = Toggle_CheckFix(Sender)
Toggle_CodeCave("CINEMATICSFRAMERATE_cc",bCinematics)
ForceUpdate()
end
function Disable_Inject()
CleanUp()
end
function ResolutionChanged()
SyncDisplayDetection()
end
function Init()
Init_BaseControls()
Init_Controls()
end
function DeInit()
DisableFix()
end