Re: Flawless Widescreen
Posted: 28 Mar 2013, 12:18
Hayden not connecting since 15 January, i fear the worst 
[-noun] Web community dedicated to ensuring PC games run properly on your tablet, netbook, personal computer, HDTV and multi-monitor gaming rig.
https://www.wsgf.org/phpBB3/
Code: Select all
local AspectFix = HackTool:AddAddress("AspectFix")
HackTool:SignatureScan("D980????????8B??????????D9??????????C3",AspectFix,PAGE_EXECUTE_READ,0x0,Process_EXEName)
local ASM = [[
(codecave:jmp)AspectFix,AspectFix_cc:
%originalcode%
fstp dword ptr [(allocation)Variables->Aspect_In]
fld dword ptr [(allocation)Variables->Aspect_Out]
fst dword ptr [$$2] $context=1
jmp %returnaddress%
%end%
]]
HackTool:CompileAssembly(asm,"AllocationName")
Write_CodeCave("AspectFix_cc")
Code: Select all
local ARCodeCave = HackTool:AddCodeCave("AspectFix1",6)
ARCodeCave:SetAddress(0x1093A7)
ARCodeCave:AddSubOffset("JmpOut",1)
ARCodeCave:AddSubOffset("JmpIn",2)
local Data = {0xE9,0,0,0,0,0x90}
for k,v in pairs(Data) do
ARCodeCave:SetByte(k-1,v)
end
local ARAllocation = HackTool:AllocateMemory("AspectFix1",64)
ARAllocation:Allocate()
ARAllocation:AddSubOffset("AddrJmpIn",0)
ARAllocation:AddSubOffset("AddrJmpOut",0x19)
ARAllocation:AddSubOffset("AddrOriginalAspect",0x8)
ARAllocation:AddSubOffset("AddrNewAspect",0xE)
ARAllocation:AddSubOffset("ValueOriginalAspect",0x1D)
ARAllocation:AddSubOffset("ValueNewAspect",0x21)
local Data = {0xD9,0x80,0x00,0x02,0x00,0x00,0xD9,0x1D,0x00,0x00,0x00,0x00,0xD9,0x05,0x00,0x00,0x00,0x00,0xD9,0x90,0x00,0x02,0x00,0x00,0xE9,0x00,0x00,0x00,0x00}
for k,v in pairs(Data) do
ARAllocation:SetByte(k-1,v)
end
ARAllocation:GetSubOffset("AddrOriginalAspect"):SetInt( ARAllocation:GetSubOffset("ValueOriginalAspect"):GetOffset() )
ARAllocation:GetSubOffset("AddrNewAspect"):SetInt( ARAllocation:GetSubOffset("ValueNewAspect"):GetOffset() )
ARCodeCave:GetSubOffset("JmpOut"):SetInt( ARAllocation:GetSubOffset("AddrJmpIn"):GetOffset() - ARCodeCave:GetSubOffset("JmpOut"):GetOffset() - HackTool:GetBaseAddress() -4 )
ARAllocation:GetSubOffset("AddrJmpOut"):SetInt( ARCodeCave:GetSubOffset("JmpIn"):GetOffset() - ARAllocation:GetSubOffset("AddrJmpOut"):GetOffset() + HackTool:GetBaseAddress() )
ARAllocation:WriteData(0,ARAllocation:GetLength())
ARCodeCave:WriteData(0,ARCodeCave:GetLength())
Code: Select all
local AspectFix = HackTool:AddAddress("AspectFix")
HackTool:SignatureScan("D980????????8B??????????D9??????????C3",AspectFix,PAGE_EXECUTE_READ,0x0,Process_EXEName)
local ASM = [[
(codecave:jmp)AspectFix,AspectFix_cc:
%originalcode%
fstp dword ptr [(allocation)Variables->Aspect_In]
fld dword ptr [(allocation)Variables->Aspect_Out]
fst dword ptr [$$2] $context=1
jmp %returnaddress%
%end%
]]
HackTool:CompileAssembly(asm,"AllocationName")
Write_CodeCave("AspectFix_cc")
Wijkert wrote:Really good to hear that you are working on updating the software!Everybody should donate what they can spare or think is right depending on how much someone uses Flawless Widescreen.
Several people have donated games to be fixed, but as you are aware I'm running behind, these are:
- Resident Evil 6 donated by Pelzention (actually really want to play this game, so will be targeting 100% perfection, so you might want to hold off playing it)
- Jet Set Radio donate by Lolotov