Files

192 lines
5.3 KiB
Lua
Raw Permalink Normal View History

2025-07-17 18:11:51 +02:00
require(GlobalDependencys:GetDependency("StandardBase"):GetPackageName())
--GAME VARS
fDefaultAspectRatio = 1.78
--ControlVars
bFixEnabled = true
bMapAspectRatio = true
bHUDAspectRatio = true
bFOV = true
--PROCESS VARS
Process_FriendlyName = Module:GetFriendlyName()
Process_WindowName = "*"
Process_ClassName = "*"
Process_EXEName = "Spider-Man.exe"
--INJECTION BEHAVIOUR
InjectDelay = 500
WriteInterval = 500
SearchInterval = 500
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_FOV","HUD ar fine adjustment",15,70,210,17)
DefaultControls.AddFOVSlider("HUDSlider","HUDSlider_Changed",55,100,125,35)
DefaultControls.AddFixToggle("CKHUDAspectFix_Enable","HUD aspect fix","CKCSAspectFix_Changed",255,101,180,14)
DefaultControls.AddFixToggle("CKMapAspectFix_Enable","City map fix","CKMapFix_Changed",255,101,180,54)
end
function Configure_SignatureScan()
local tAddress = HackTool:AddAddress("MapAspectRatio")
if HackTool:SignatureScan("4C 8B 00 F3 0F 10 1D ?? ?? ?? ?? F3 0F 11",tAddress,PAGE_EXECUTE_READ,0x03,Process_EXEName) == 0 then
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
else
print( tAddress:GetInfo(TYPE_ADDRESS) )
end
local tAddress = HackTool:AddAddress("GetGameRes")
if HackTool:SignatureScan("44 0F 2E 8B ?? ?? ?? ?? 7A ?? 75 ?? 0F 2E",tAddress,PAGE_EXECUTE_READ,0x00,Process_EXEName) == 0 then
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
else
print( tAddress:GetInfo(TYPE_ADDRESS) )
end
local tAddress = HackTool:AddAddress("HUDAspectRatio")
if HackTool:SignatureScan("E8 ?? ?? ?? ?? F3 0F 2C C0 0F B6 C8 83 E9",tAddress,PAGE_EXECUTE_READ,0x0f,Process_EXEName) == 0 then
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
else
print( tAddress:GetInfo(TYPE_ADDRESS) )
end
return true
end
function Enable_Inject()
local Variables = HackTool:AllocateMemory("Variables",0)
Variables:PushFloat("HUD_Map_Aspect_Ratio")
Variables:PushFloat("Map_Aspect_Ratio")
Variables:PushFloat("Win_Width")
Variables:PushFloat("Win_Height")
Variables:Allocate()
Variables["Map_Aspect_Ratio"]:WriteFloat(fDefaultAspectRatio)
ResolutionChanged()
local asm = [[
(codecave:jmp)MapAspectRatio,MapAspectRatio_cc:
movss xmm3,[(allocation)Variables->Map_Aspect_Ratio]
jmp %returnaddress%
%end%
(codecave:jmp)GetGameRes,GetGameRes_cc:
ucomiss xmm9,[$$2] $ctx=1
pushf
cmp r10,0x438
je return
fld dword ptr [rbx+0xA8]
fstp dword ptr [(allocation)Variables->Win_Width]
fld dword ptr [rbx+0xAC]
fstp dword ptr [(allocation)Variables->Win_Height]
return:
popf
jmp %returnaddress%
%end%
; Spider-Man.exe+31816CA - 75 2E - jne Spider-Man.exe+31816FA
; Spider-Man.exe+31816CC - 44 0F2E 8B A0000000 - ucomiss xmm9,[rbx+000000A0]
; Spider-Man.exe+31816D4 - 7A 24 - jp Spider-Man.exe+31816FA
(codecave:jmp)HUDAspectRatio,HUDAspectRatio_cc:
movss xmm0,[(allocation)Variables->HUD_Map_Aspect_Ratio]
movaps xmm6,[rsp+0x20]
add rsp,0x30
pop rbx
ret
%end%
]]
if HackTool:CompileAssembly(asm,"MapAspectRatio") == nil then
return ErrorOccurred("Assembly compilation failed...")
else
Toggle_CodeCave("MapAspectRatio_cc",bMapAspectRatio)
Toggle_CodeCave("GetGameRes_cc",bMapAspectRatio)
Toggle_CodeCave("HUDAspectRatio_cc",bHUDAspectRatio)
end
end
function Periodic()
local Variables = HackTool:GetAllocation("Variables")
if Variables and Variables["Win_Width"] and Variables["Map_Aspect_Ratio"] then
local window_width = Variables["Win_Width"]:ReadFloat()
local window_height = Variables["Win_Height"]:ReadFloat()
local window_Map_Aspect_Ratio = window_width / window_height
Variables["Map_Aspect_Ratio"]:WriteFloat(window_Map_Aspect_Ratio)
PluginViewport:AppendStatusMessage( string.format("\r\n===== Fix informations =====\r\nGame width : %.0f - height : %0.f - aspect ratio : %.2f", window_width, window_height, window_Map_Aspect_Ratio))
end
end
function HUDSlider_Changed(Sender)
fHUDAspectRatio = ((Sender:GetScaledFloat(2) + 50) / 10) + 1.78
lblHUDSlider.Caption:SetCaption( string.format("HUD aspect ratio : %.2f",fHUDAspectRatio) )
WriteHUDAR()
ForceUpdate()
end
function WriteHUDAR()
local Variables = HackTool:GetAllocation("Variables")
if Variables and Variables["HUD_Map_Aspect_Ratio"] then
Variables["HUD_Map_Aspect_Ratio"]:WriteFloat(fHUDAspectRatio)
end
end
function Disable_Inject()
CleanUp()
end
function CKCSAspectFix_Changed(Sender)
bHUDAspectRatio = Toggle_CheckFix(Sender)
Toggle_CodeCave("HUDAspectRatio_cc",bHUDAspectRatio)
ForceUpdate()
end
function CKMapFix_Changed(Sender)
bMapAspectRatio = Toggle_CheckFix(Sender)
Toggle_CodeCave("MapAspectRatio_cc",bMapAspectRatio)
Toggle_CodeCave("GetGameRes_cc",bMapAspectRatio)
ForceUpdate()
end
function ResolutionChanged()
SyncDisplayDetection()
end
function Init()
Init_BaseControls()
Init_Controls()
end
function DeInit()
DisableFix()
end