Widescreen Gaming Forum
http://www.wsgf.org/phpBB3/

Metal Gear Solid V: The Phantom Pain Widescreen Patcher
http://www.wsgf.org/phpBB3/viewtopic.php?f=63&t=30413
Page 1 of 3

Author:  chris686 [ 03 Nov 2015, 08:15 ]
Post subject:  Metal Gear Solid V: The Phantom Pain Widescreen Patcher

MGS V: Widescreen Patcher

Please read the first two posts!

The below notice is fixed in v0.21a. Assuming no major problems, v0.21a is likely the final version.
----------------------------------------------------------------------------------------------------------------------------------------------------------------

Notice!
Over 1000 views and nobody tells me there are bugs :thumbdown:

The patch (v0.2a) currently works fine with the latest version as of 11/18/2015. I recently used it myself on the latest version. However, I must have accidentally removed the pause before the command prompt exits. So the patcher will open quickly and then close. The game is most likely patched after this. Launch it from the executable to make sure.

In addition, if there is already a backup file in the game's directory, the patcher will crash without patching the executable. The solution is to either delete the backup or change the backup name in the settings file. The fixes are both trivial and I'll fix them over the weekend.

----------------------------------------------------------------------------------------------------------------------------------------------------------------

v0.21a download primary (Latest version. Recommended.)

v0.2a download primary
v0.2a alt download

v0.1a download primary
v0.1a alt download


Git repo source code (Written in C, Apache License 2.0)


----------------------------------------------------------------------------------------------------------------------------------------------------------------

What this does:

It searches for a specific hex value in the binary (executable) and replaces it with a new value calculated based on the resolution specified in the config file. This value is then replaced, and the new aspect ratio is now supported! :-)



What this doesn't do:

    1. Support 4:3 (Planned. Next feature to add) Added in v0.2a
    2. Executable backup Added in v0.2a
    2. Reverse patch modifications (Planned) No longer planned
    3. Fix marker position (Planned) No longer planned
    4. Fix anything else related to UI or FOV (Some other items planned) No longer planned


Release Notes

v0.21a
*Program now correctly pauses after patched operation is attempted.
*Program now correctly handles multiple backups.

v0.2a
*Added support for older aspect ratios including 4:3 and 5:4
*Added automatic backup of the executable
*Greatly reduced log spam.

v0.1a
*Added auto patching of aspect ratios beyond 16:9/16:10.

Instructions for usage:

    1. Unzip the package into your MGSV:TPP directory with the mgsvtpp.exe file.
    2. Executable backup can be configured in the config file. It is on by default, though you can disable it or specify a custom name. (Note, if you run the utility twice, your first backup will be overwritten. This will be fixed later.)
    3. Open MGSV_TPP_WideScreen_Patch.cfg and set the resolution you will be using to play the game and backup options if you want them.
    4. Run the executable

That should be it! Enjoy!

Known bugs

None.

Please report any you find!

Special thanks

jackfuste for answering my questions over PM and creating the original fixes. Without those fixes, I wouldn't have written this.


Status

I feel this is sufficient as-is. I'm going to work on changing this to C++ code and creating a generic, easy to use patching utility that's cross platform. A one-size-fits-all approach isn't all that beneficial, nor is a super specific implementation such as this patcher.

The config file can be modified to patch different hex values if they change, though I doubt that'll be necessary in this instance. If this patcher completely breaks, post here or on the github issue tracker and I'll fix it.

Author:  chris686 [ 03 Nov 2015, 14:45 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

If the patch doesn't work:

1. Verify you set the correct parameters in the config file.

2. Verify you have a clean exe. ie, one that's not already patched. It will not work if it's
already patched, or it may even break the executable.

3. If everything is configured correctly, I can help you. But I can only help if you:

a. Copy/paste your config file here in code tags.
b. Copy/paste the output of the utility in code tags.

Author:  Drells [ 04 Nov 2015, 01:44 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

Worked for me at 2560x1080! Thank you for the easy to use solution.

You may want to state in this thread that you will still need to manually change the values for markers/etc.

Author:  chris686 [ 04 Nov 2015, 01:46 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

ikazman wrote:
Hello, Chris686 . As you wrote before

chris686 wrote:
The patcher will work by scanning the entire binary file and identifying 39 8E E3 EF and changing it automatically.


Well, it seems to be good plan (and it's working, thanks!), but for some reason it's not a solution for ratio 5:4 (or 4:3).
If I understand it well enough, value "39 8E E3 3F" in exe just means "my native ratio is 16:9". So, placing values exceeding ratio 16:9, we are making sure that exe supports it (that is in ordinary way - not so).
But, for example, 5:4 ratio (1280x1024) is already supported and not exceeding "native" 16:9. It means, that replacing sequence "39 8E E3 EF" with the value regarding 5:4 ("00 00 A0 3F") doesn't make big deal for exe because, well, its already included (with letterboxing, of course).
I think Jackfuste did changes not only in "39 8E E3 EF", but in something else. Or, maybe, Jackfuste did his magic with some tricky values, because when I replaced my exe with his - well - it's just works. Thank you.


Trying to keep support out of the main topic.

I'll take a look at his executable with a hex editor and see what else is changed. I've got all the code in place, so it should be a trivial fix. I wasn't aware that 1280x1024 was already "supported" natively.

Author:  chris686 [ 04 Nov 2015, 02:28 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

Drells wrote:
Worked for me at 2560x1080! Thank you for the easy to use solution.

You may want to state in this thread that you will still need to manually change the values for markers/etc.


Glad it worked! Thanks for the advice. I updated the OP. I hastily put it together last night before bed. I've also added some things I plan to implement. I'm certain there's a way to patch things like marker position, etc. permanently. Those values have to be calculated somewhere! I'd prefer not to have to rely on CheatEngine tables as running CE when playing online makes me a bit nervous. In all honesty, I haven't played the game in over a week: I'm just doing this for fun to keep my C skills up to date. I do Java all day at work, and it's not quite as fun as programming in C. I'll probably do anything new in C++, however, since manually coding seemingly everything takes forever.

On the plus side, the patch is practically instantaneous since it's written in C.

Author:  Padellus [ 05 Nov 2015, 12:08 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

IT WORKS !!! In 1280x1024!
Thank you very much, great work! :onethumb: :onethumb: :onethumb:

Author:  Padellus [ 05 Nov 2015, 12:21 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

Sorry for the OT, I have a question, in the same way it would be possible to adapt to the 5: 4 also AC Unity? The game to default in 1280x1024 enlarges the image, that is stretched vertically, it should keep the proportions, zooming (or changing the fov).

Author:  chris686 [ 05 Nov 2015, 14:44 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

Padellus wrote:
Sorry for the OT, I have a question, in the same way it would be possible to adapt to the 5: 4 also AC Unity? The game to default in 1280x1024 enlarges the image, that is stretched vertically, it should keep the proportions, zooming (or changing the fov).


I'm going to give you the answer as a software developer:

Anything is possible. It's a question of time/effort and value. Adding the fix to this was trivial because I was told what values to change were, and I had the existing code in place. If I weren't supplied those, I wouldn't have added it. You're in the minority with a 5:4 or 4:3 display :-) In fact, I wouldn't have written this at all without the contributions of jackfuste (who I've been meaning to give special thanks to in the OP).

As for the answer you were expecting:
I don't own that game, but if Widescreen patches already exist, it is likely easy to implement. But I'm saying this without any knowledge about that game, so take this with a grain of salt.

FYI:
I'm looking to convert this into a nice tool that's cross platform at some point, so those doing the grunt work like jackfuste can easily make auto patch utilities for any game. It's a lot of work scanning executables with OllyDbg and IDA.

Distributing individually patched executables that are all patched the same way is not only a waste of time, it's unauthorized distribution of copyrighted works and likely to generate unwanted attention. Distributing a patch with original work? Perfectly fine. No grey areas there.

Author:  jackfuste [ 05 Nov 2015, 15:43 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

Padellus wrote:
Sorry for the OT, I have a question, in the same way it would be possible to adapt to the 5: 4 also AC Unity? The game to default in 1280x1024 enlarges the image, that is stretched vertically, it should keep the proportions, zooming (or changing the fov).

AC Unity has DRM or Anti-cheat system. It prevent code modification that needed for widescreen fix.

Author:  chris686 [ 06 Nov 2015, 05:34 ]
Post subject:  Re: Metal Gear Solid V: The Phantom Pain Widescreen Patcher

jackfuste wrote:
Padellus wrote:
Sorry for the OT, I have a question, in the same way it would be possible to adapt to the 5: 4 also AC Unity? The game to default in 1280x1024 enlarges the image, that is stretched vertically, it should keep the proportions, zooming (or changing the fov).

AC Unity has DRM or Anti-cheat system. It prevent code modification that needed for widescreen fix.


There's your answer.

Just for the sake of being contradictory, anything's possible. Whether or not it's feasible/worth the effort is a whole different story. :mrgreen:

Page 1 of 3 All times are UTC [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/