Page 42 of 44
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 06 Jan 2017, 14:14
by StreaMRoLLeR
K4sh wrote:I assume this flaw is seen when wind is blowing.
I couldn't reproduce it myself. Using and understanding jackfuste original fix i didn't see any improvement by including it in my cheat table.
So i decided to remove that fix from it.
Sorry but you'll have to deal with it.
is that something FIXable by you / or you didnt understand to solve it i really dont understand what u meant It would be perfect if this border is gone too

Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 06 Jan 2017, 14:19
by K4sh
All of the features in my cheat table come from the member jackfuste that is the only one that understood where to look for.
It is machine language and i don't know where to look for.
Understanding what he found, i made this cheat table to make the fix automatic so that the end user will have to do less and to be update proof also.
Game is not on my HDD anymore and i don't intend to work on it anymore.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 06 Jan 2017, 18:12
by StreaMRoLLeR
K4sh wrote:All of the features in my cheat table come from the member jackfuste that is the only one that understood where to look for.
It is machine language and i don't know where to look for.
Understanding what he found, i made this cheat table to make the fix automatic so that the end user will have to do less and to be update proof also.
Game is not on my HDD anymore and i don't intend to work on it anymore.
I understand now and you are great person ( choggi too) for making game 10x better

Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 07 Jan 2017, 14:38
by NewMNT
I've been having problems with the sonar and dust effect in the desert having a border where the effect cuts off,
so I've tried my luck editing one of K4sh's files with the sonar fix. I think I've fixed both issues.
The only things that needed to be changed were the addresses (which I found using the memory scanner in cheatengine), all values are the same as jackfuste's latest fix (edit: actually I was wrong on that, there was a slight difference, but enough was the same to find what I was looking for).
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 08 Jan 2017, 02:18
by NewMNT
happyingaloshes wrote:sorry for ressurect this topic, but the 21_9_marker_fix_1_071 are still working?
i cant make it work...
I've edited k4sh's fix to include sonar and wind effect fix. It's just above your post.
It has the earlier less dynamic scaling marker fix by k4sh (works close to the same as the fix by jackfuste), but that seemed to work best for me with dsr.
Edit: this requires cheat engine however. But I can upload a standalone exe if you wish that doesn't require you to have cheat engine.
Edit 2: Here is the standalone version (files removed)
Hotkeys
F1 enables fixes
F3 disables fixes
F2 enables FOV correction
F4 disables FOV correction
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 08 Jan 2017, 09:51
by K4sh
Good job NewMnt.
Thank you for crediting all of us

Your fixes for Sonar and Wind effect are not futur updates though.
Either you come here with new fixes for these bugs either you can make them futur proof.
You can make an AOBscanmodule in your script to look for wildcards bytes instead of known one.
eg in your sonar effect fix with the original code :
define(bytes,F3 0F 5E A9 0C 01 00 00)
0C 01 00 00 is the offset applied to the rcx registry to retrieve the final RAM adress that will be used to be multiplied with the xmm5 registry.
These bytes may be found with wildcards also.
However, an aobscanmodule has to return only 1 currency otherwise, it won't be able to apply fix and thus will fail.
Look at this other fix syntax :
aobscanmodule(Markers_Position,mgsvtpp.exe,F3 0F 59 05 ?? ?? ?? ?? F3 0F 59 0D ?? ?? ?? ?? 0F 2F C1) // should be unique
You may do the same with this one :
aobscanmodule(Sonar_effect,mgsvtpp.exe,F3 0F 5E A9 ?? ?? ?? ??) // should be unique
Same can be done with wind effect script.
If, for some reasons, the futur updates change so that more than one currency is found with the aobscanmodule, you can look for other bytes before the one you look for in your script and incorporate them in your scan.
Other problem is your executable.
Don't forget to mention that most of the AV software will see it as a virus as it injects code.
Also, your executable doesn't allow end user to change their X and Y ratios calculated by the script.
Normally, it should calculate and work well in game, but sometimes, it fails in fixing the markers bug.
For that reason i decided to leave the ability to change these values by increasing them for example.
Moreover, your executable doesn't allow to modify the FOV value as there is no input text to do so.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 10 Jan 2017, 07:02
by NewMNT
Thanks for the feedback. At the moment I was only concerned about changing known values, but I will try what you suggested. The CT file is available if anyone wants to adjust those values to preference.
I can see how the fov setting would be useless with the executable. This exe was made to make it convenient for using with a batch file to have it open at the same time the game starts, and then use nircmd to automatically close it on game exit.
Edit:
Following K4sh's advice here is the new version.
21_9_marker_fix_1_10+ Changes:
-Used aobscanmodule method for detecting where to apply fixes for sonar and wind effect, hopefully this will give some level of forwards compatibility with future game patches.
-Renamed fix to match the current version number of the game.
Cheat Table file:
(files removed)
Standalone version (fixes only no fov adjustment):
(files removed)
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 10 Jan 2017, 08:21
by K4sh
Great job NewMNT. 5 posts in this forum and already a contribution. Nice
I looked at your scripts and i don't understand the wildcards you choosed with your sonar and wind effects.
For the sonar i see 0F as a wildcard. If related to rcx register it may be useful. But the 00 00 wildcards ? Well, i don't see the point here.
Same goes for win effect script. this time, you choosed the 0C 01 bytes. The last four bytes are related to the offset applied in the code. All of these 4 bytes should be wildcards.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 10 Jan 2017, 15:31
by NewMNT
K4sh wrote:Great job NewMNT. 5 posts in this forum and already a contribution. Nice
I looked at your scripts and i don't understand the wildcards you choosed with your sonar and wind effects.
For the sonar i see 0F as a wildcard. If related to rcx register it may be useful. But the 00 00 wildcards ? Well, i don't see the point here.
Same goes for win effect script. this time, you choosed the 0C 01 bytes. The last four bytes are related to the offset applied in the code. All of these 4 bytes should be wildcards.
Actually I don't think I should have used wild card cards at all for those values, as the bytes don't seem to have changed at all between v1.06 to v1.10. I was trying to make only one occurrence of the value come up during scan by replacing wild cards with values until only one result showed, but it's hard to predict where these values will change in future versions without understanding machine code so I just assume values for something like the sonar fix will always be F3 XX 5E A9 XX XX XX XX and fill in bytes until I get one occurrence.
On versions 1.007 to 1.04 the value for sonar was longer F3 XX XX 5E 81 XX XX XX XX (in all versions 5E is the value that needs to be changed), with values F3 XX 0F 5E XX 0C 01 00 00 always being constant across versions. The wind effect is the only one that didn't change at all across 1.007- 1.10, but the chunk of data it's attached to is loaded twice in memory so there are always two occurrences, for now my fix edits only the first address which seems to work.
Just for the record I'm not a programmer. I'm just a gamer that happens to have an ultra-wide monitor and wants perfect support in this game.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 10 Jan 2017, 15:56
by K4sh
The orignal code that says mulss xmm5 should not change. The memory adressed by rcx register plus offset may change.
If more than one occurence is found then your CT may fail in future update as it may not predict which occurence will be found first and processed.
You can eliminate the unwanted one by having a byte scope scan larger with ones that come before your actual sequence.
But it's up to you. It's only an advise

Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 10 Jan 2017, 16:34
by NewMNT
I've tried larger until I get only one occurrence, Any advice for this in terms of wildcards?
C7 44 24 28 00 00 80 BF C7 44 24 2C 00 00 80 3F C7 44 24 30 00 00 80 BF F3 0F 5E AA 0C 01 00 00 C7 44 24 34 00 00 80 BF C7 44 24 38 00 00 80 3F C7 44 24 3C 00 00 80 3F F3 0F 5E F0 31 C0 0F 28 D6 0F 28 DD 0F 28 CF 48 83 C0 04 48 83 C3 10 F3 0F 59 54 04 2C F3 0F 59 5C 04 1C 0F 28 C7 0F 28 E3 F3 0F 59 D5 0F 14 E7 0F 14 D7 0F 14 E2 0F 28 D4 0F 28 C4 0F 28 CC 0F C6 D4 AA 0F C6 CC 55 0F C6 C4 FF 0F 59 52 50 0F 59 42 60 0F 59 4A 40 0F 58 D0 0F C6 E4 00 0F 59 62 30 0F 58 CC 0F 58 D1 0F 29 53 F0 48 83 F8 10 7C 94 0F
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 10 Jan 2017, 17:14
by K4sh
That's too much.
you should not need to look for such bytes count in your aobscan.
The original code to replace is only 8 bytes. Only few bytes before or after the orignal should be added to aobscan to expect a unique occurence.
Attaching Cheat Engine to the Metal Gear process, there is a shortcut you can use to execute aobscan to see if you're good or not.
Shortcut (CTRL+ALT+L)
Then type in the window
results = AOBScan('YYYYYYYYYYF3XX5EA9XXXXXXXX')
if results then print('results count: '..results.Count)
end
results.destroy()
Where XX are wildcards and YY are the bytes found before the original sequence.
eg : results = AOBScan('F3OF5EA9OFF3XX5EA9XXXXXXXX')
To see bytes before original code you have to do an array search and type F3 0F 5E A9 0C 01 00 00 (original sonar sequence).
Then browse for memory to see opcodes with bytes related.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 12 Jan 2017, 08:07
by NewMNT
For the wind effect using
Code: Select all
results = AOBScan('30000080BFF30F5EAAXXXXXXXX')
if results then print('results count: '..results.Count)
end
results.destroy()
I still get 2 results for that, where would I go from there? If I can't refine the search anymore without using too many bytes. It seems more than a few things are duplicated in memory.
Would it be advisable to make another script that executes after the first to scan and fix the second occurrence?
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 12 Jan 2017, 09:30
by K4sh
If you browse memory region for both results, the opcodes (machinge language) are the same before and after the sequence ?
Can you post the memory browse window screenshot here for both occurences ?
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 12 Jan 2017, 10:02
by NewMNT
The addresses are 14357996E(the working one) and 14358ADEE (duplicate)
Edit: Changed the link to a download because the photo site was resizing the image to unreadable levels.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 12 Jan 2017, 10:33
by K4sh
I didn't realise how close and large were these two functions.
It's more interesting to do an aobscan looking backward for wildcards and bytes.
But that won't be easy as looking for bytes backward will introduce other opcodes with offset and register that may change more or less in futur updates.
At that point i suggest asking how to perform and process an aobscan with two results and large opcodes similar in cheat engine forum.
This is beyond my skills.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 12 Jan 2017, 10:37
by StreaMRoLLeR
Thank you so much, you did great i downloaded the fix as soon as possible and its working great ( the one you updated after your first file pg 84.). Do I need to update your FIX further ? or its safe to use 24/7 ?

Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 12 Jan 2017, 11:21
by NewMNT
It should work just fine on the current version of the game, no further updates at the moment. We're just discussing about how to make the fix more future proof, so that it won't need updating each time a new patch comes out.
If you're talking about leaving it open all the time, it shouldn't effect anything other than this game. I would say if you play multiplayer games at all, I wouldn't leave it running in the background, but that's just me being cautious.
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 27 Jan 2017, 16:03
by Garwinski
Hi, how do I use the exe? Would be very nice to not have to start the game, start cheatengine, apply the fixes and then game every time I want to play. Thanks for your work non the less! I stopped playing the game when I noticed those annoying sections when weather effects or something were active. I can play again! Thanks!
Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke
Posted: 28 Jan 2017, 10:24
by NewMNT
Garwinski wrote:Hi, how do I use the exe? Would be very nice to not have to start the game, start cheatengine, apply the fixes and then game every time I want to play. Thanks for your work non the less! I stopped playing the game when I noticed those annoying sections when weather effects or something were active. I can play again! Thanks!
The exe includes cheatengine and the cheat table all in one file. You just start it first and when you're in game press F1 to enable fixes, or F3 to disable fixes. The exe doesn't apply the fov fix though, because the value must be set manually in cheatengine and the exe has no way to input values.
The F1 and F3 keys should work in the regular cheatengine CT file version you're using now, but fov still must be enabled and set manually.
Either way you still have to start cheatengine or the standalone exe version before you start the game.