MW3 just was updated and the
Posted: 18 Aug 2012, 01:41
MW3 just was updated and the fixer no longer works.
Thanks in advance.
Thanks in advance.
[-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/
- Added CS:GO plugin. Thanks to HaYDeN for the memory pointers.
- Added GRAW2 plugin. Thanks to HaYDeN for providing the memory pointers.
- Added a plugin for Transformers: War For Cybertron. Currently it only supports automatic display detection and it uses your desktop aspect-ratio. Thanks to HaYDeN for providing the offset needed for this.
- Added CS:GO plugin. Thanks to HaYDeN for the memory pointers.
- Added GRAW2 plugin. Thanks to HaYDeN for providing the memory pointers.
- Added a plugin for Transformers: War For Cybertron. Currently it only supports automatic display detection and it uses your desktop aspect-ratio. Thanks to HaYDeN for providing the offset needed for this.
I won't mention Skydrift, Mass Effect, Singularity and Sonic Generations....
Thanks for acknowledging the share number of hours invested in some of these titles to fix them (eg. GRAW2) in a entirely obscured SVN log - wouldn't be so bad if you actually asked... or gave credit where credit was due instead of just ripping it off and passing it off as your own work.
Good day, sir.
In the future, I would appreciate it if you would actually look over the source code for my plugins before you accuse me of copying anything. Nothing was ripped off.
Code: Select all
local ARCodeCave = HackTool:AddCodeCave("FOVFix",12)
ARCodeCave:SetAddress(0xEBDCFD)
ARCodeCave:AddSubOffset("FOVFunctionCall",0x01)
local Data = {0xE8,0,0,0,0,0xD9,0x98,0x08,0x03,0,0,0xC3}
Code: Select all
this.offsetPoke = 0xEBDCFD;
this.pokeEnable = new byte[12] {0xE8, 0, 0, 0, 0, 0xD9, 0x98, 0x08, 0x03, 0, 0, 0xC3};
Code: Select all
alloc(aspectfix,32) //allocate 32 bytes, 28+4
label(continueexec) //label resume execution
aspectfix: //new memory allocated address
mov [aspectfix-4], (float)5.33333333 //set aspect ratio
fdiv dword ptr [aspectfix-4] //divide
fstp dword ptr [esp+14] //store
jmp continueexec //resume
//"codecave"
"SonicGenerations.exe"+2F2358:
jmp aspectfix
nop
nop
continueexec:
Code: Select all
this.offsetPoke = 0x2F2358;
fld dword ptr [00000000]
fdivp st(1),st(0)
fstp dword ptr [esp+14]
jmp 00000000
Code: Select all
this.offsetStep0 = 0x54547C;
this.offsetStep1 = 0x40;
this.offsetStep2 = 0xC8;
Code: Select all
local tPointerChain = HackTool:AddPointerChain("pHORAspectRatio")
tPointerChain:SetAddress(0x7C4024)
tPointerChain:PushOffset(0x7F4)
local tPointerChain = HackTool:AddPointerChain("pVertAspectRatio")
tPointerChain:SetAddress(0x80B264)
tPointerChain:PushOffset(0x160)
local tPointerChain = HackTool:AddPointerChain("pFOV")
tPointerChain:SetAddress(0x80B264)
tPointerChain:PushOffset(0x280)
pFOV:WriteFloat((DisplayInfo:GetAspectRatio()*0.751)+fAdditionalFOV)
Code: Select all
this.offsetHorizontalAspectRatio0 = 0x7C4024;
this.offsetHorizontalAspectRatio1 = 0x7F4;
this.offsetVerticalAspectRatio0 = 0x80B264;
this.offsetVerticalAspectRatio1 = 0x160;
this.offsetFieldOfView0 = 0x80B264;
this.offsetFieldOfView1 = 0x280;
float fov = DetectDisplays.get_AspectRatio() * this.fieldOfViewMultiplier;
Transformers: War for Cybertron
Flawless Widescreen:
Code: Select all
local ARCodeCave = HackTool:AddCodeCave("FOVFix",12)
ARCodeCave:SetAddress(0xEBDCFD)
ARCodeCave:AddSubOffset("FOVFunctionCall",0x01)
local Data = {0xE8,0,0,0,0,0xD9,0x98,0x08,0x03,0,0,0xC3}
Widescreen Fixer:
Code: Select all
this.offsetPoke = 0xEBDCFD;
this.pokeEnable = new byte[12] {0xE8, 0, 0, 0, 0, 0xD9, 0x98, 0x08, 0x03, 0, 0, 0xC3};
Sonic Generations
Now the interesting thing here is, that your fix includes the "Fairlight Crack" version - which was the one I fixed, wonder how that came about.... It's fairly non-typical for you to add cracked version to WSF, once you have a pattern for the cracked version, applying it to steam version for example is as you know a couple of minutes work.
My example:
Code: Select all
alloc(aspectfix,32) //allocate 32 bytes, 28+4
label(continueexec) //label resume execution
aspectfix: //new memory allocated address
mov [aspectfix-4], (float)5.33333333 //set aspect ratio
fdiv dword ptr [aspectfix-4] //divide
fstp dword ptr [esp+14] //store
jmp continueexec //resume
//"codecave"
"SonicGenerations.exe"+2F2358:
jmp aspectfix
nop
nop
continueexec:
Widescreen Fixer:
Code: Select all
this.offsetPoke = 0x2F2358;
fld dword ptr [00000000]
fdivp st(1),st(0)
fstp dword ptr [esp+14]
jmp 00000000
Sure 4-5 bytes difference is enough to call it entirely your own work... without any acknowledgment of the person who spent 4-5 hours finding the solution.
Skydrift
Skydrift is an interesting one, because the fix was found by complete total and utter accident, not something I would consider to be reproducible, it's a float of 1.0 by default - have you ever tried to search a games memory space for the value 1.0? you'll get millions of results.... again another game with 4-5 hours in it, a favor for forum member Skid IIRC.
Uses the offsets:
0x54547C -> 0x40 -> + 0xC8
Widescreen fixer:
Code: Select all
this.offsetStep0 = 0x54547C;
this.offsetStep1 = 0x40;
this.offsetStep2 = 0xC8;
Ghost Recon Advanced Warfighter 2
This is the catalyst that pissed me off - I spent probably 15+ hours on this game as a favor and special request from forum member Thales100, failure was not a option, hence the time invested.
Flawless Widescreen:
Code: Select all
local tPointerChain = HackTool:AddPointerChain("pHORAspectRatio")
tPointerChain:SetAddress(0x7C4024)
tPointerChain:PushOffset(0x7F4)
local tPointerChain = HackTool:AddPointerChain("pVertAspectRatio")
tPointerChain:SetAddress(0x80B264)
tPointerChain:PushOffset(0x160)
local tPointerChain = HackTool:AddPointerChain("pFOV")
tPointerChain:SetAddress(0x80B264)
tPointerChain:PushOffset(0x280)
pFOV:WriteFloat((DisplayInfo:GetAspectRatio()*0.751)+fAdditionalFOV)
Widescreen Fixer:
Code: Select all
this.offsetHorizontalAspectRatio0 = 0x7C4024;
this.offsetHorizontalAspectRatio1 = 0x7F4;
this.offsetVerticalAspectRatio0 = 0x80B264;
this.offsetVerticalAspectRatio1 = 0x160;
this.offsetFieldOfView0 = 0x80B264;
this.offsetFieldOfView1 = 0x280;
float fov = DetectDisplays.get_AspectRatio() * this.fieldOfViewMultiplier;
You say you only grabbed the pointers or offsets or whatever, typically they are the entire fix.... they are what took xx hours of my time to find - how long did it take you after having the pointers/offsets to copy and paste? an hour? You didn't have to reverse anything,
Is there any reason though why you would be releasing fixes for games the other person already fixed? It seems like a waste of effort, people will probably pick up whoever's app has the fix already. I don't really see any upside to duplicating work as it just leads to finger pointing and blame games.
Interesting...lot of flames here...What are we actually fighting for here?:)) Copy rights or ??? I mean if a code is branded as open source you can use it without any legal problems giving the credit to the guy that made that piece of code... Am I missing something here ?
I mean is bad enough that we are a couple of guys here that actually provide fixes for the games...fighting between us is even worst...
I said it before...it would be best if we would actually team up and create an unified software rather than 2-3 tools.... but that is just me:)
Regards,
helifax
More than anyone, I'd really like to see us come to one community-driven solution. At this point we've got:
- The UniWS (original)
- The UniWS (Stone's update)
- Racer_S Hacks
- Squ1zzy Patches
- General Admission's Fixes
- WS Fixer
- Flawless Widescreen
The solutions system is quite fragmented. It would be great if everyone could move beyond the "solution" and to "fixes". Let's get one vehicle for implementing the fixes, and see who can race to be first on each game fix. Hell, the system could even support competing solutions for things like Skyrim. Or, better yet, we could use some sort of SVN to allow everyone to contribute. You'd have the original author, and then see the improvements added by others.
I'm also at the point where I'm going to have to stop hosting the fixes (such as those from Racer_S) here on the WSGF. The Assassin's Creed fix got falsely flagged as a virus, and it got the whole of WSGF tagged as a malware site. Not good. We got that one fixed, but more will crop up. We're setting up an alternate domain to host the files. But, I'd rather have everything integrated into one official WSGF tool.
At some point I hope that we can get past this in-fighting. We're a small enough community as it is. We don't need to be subdividing ourselves.
http://youtu.be/-eWopfEJq48
Would it be possible to add support for Battlefield 1942 and/or Tribes Ascend?
Thanks for all your hard work.
You guys can find a Tribes: Ascend plugin as part of Flawless Widescreen
It has been available for some months now, enables the HUD to function, fixes the weapon FOV and the in-game and menu FOV's.
Cheers.
[quote]You guys can find a Tribes: Ascend plugin as part of Flawless Widescreen
It has been available for some months now, enables the HUD to function, fixes the weapon FOV and the in-game and menu FOV's.
Cheers.