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

Metal Gear Solid 5: The Phantom Pain- 21:9 support broken FI
http://www.wsgf.org/phpBB3/viewtopic.php?f=95&t=30223
Page 58 of 87

Author:  K4sh [ 05 Feb 2016, 17:28 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

I will give you a hand tonight after work.
This script is only to fix markers position (not floating).
Then you will have to find the pointer to UI size to make them look original (the hardest part).

Author:  Phoeny [ 05 Feb 2016, 17:47 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

Many thanks.

i only care about position not about size, because size is not gamebreaking.

Author:  K4sh [ 05 Feb 2016, 19:28 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

Ok, so here is the script code you should rewrite for the latest MGO patch

Code:
define(address,"mgsvmgo.exe"+2D837B8) // replace here with mgsvmgo.exe+2D67447
define(bytes,F3 0F 59 05 28 52 9A FE F3 0F 59 0D 7C 08 9C FE) // replace here with bytes in mgo process @ mgsvmgo.exe+2D67447 (total exact count is 16 bytes)

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
assert(address,bytes)

alloc(newmem,$2000,"mgsvmgo.exe"+2D837B8) // replace here with mgsvmgo.exe+2D67447
alloc(X_ratio,12)
alloc(Y_ratio,12)

label(change_XY_ratios)
label(return)

X_ratio:
  dd (float)50.1     // Here we set the correct X ratio eg: 48
Y_ratio:
  dd (float)8.96666  // Here we set the correct Y ratio eg: 9

newmem:

change_XY_ratios:
  mulss xmm0,[Y_ratio]
  mulss xmm1,[X_ratio]
  jmp return

address:
  jmp change_XY_ratios
  nop
  nop
  nop
  nop
  nop
  nop
  nop
  nop
  nop
  nop
  nop
return:

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
address:
  db bytes
  // mulss xmm0,[1417289E8]
dealloc(X_ratio)
dealloc(Y_ratio)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "mgsvmgo.exe"+2D837B8

"mgsvmgo.exe"+2D83788: F3 0F 5C 82 68 01 00 00  -  subss xmm0,[rdx+00000168]
"mgsvmgo.exe"+2D83790: F3 0F 10 58 3C           -  movss xmm3,[rax+3C]
"mgsvmgo.exe"+2D83795: 0F 28 F2                 -  movaps xmm6,xmm2
"mgsvmgo.exe"+2D83798: 66 44 0F 6E 40 48        -  movd xmm8,[rax+48]
"mgsvmgo.exe"+2D8379E: 66 44 0F 6E 48 4C        -  movd xmm9,[rax+4C]
"mgsvmgo.exe"+2D837A4: F3 0F 5E F0              -  divss xmm6,xmm0
"mgsvmgo.exe"+2D837A8: 45 0F 5B C0              -  cvtdq2ps xmm8,xmm8
"mgsvmgo.exe"+2D837AC: 45 0F 5B C9              -  cvtdq2ps xmm9,xmm9
"mgsvmgo.exe"+2D837B0: 41 0F 28 C0              -  movaps xmm0,xmm8
"mgsvmgo.exe"+2D837B4: 41 0F 28 C9              -  movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
"mgsvmgo.exe"+2D837B8: F3 0F 59 05 28 52 9A FE  -  mulss xmm0,[mgsvmgo.exe+17289E8]
// ---------- DONE INJECTING  ----------
"mgsvmgo.exe"+2D837C0: F3 0F 59 0D 7C 08 9C FE  -  mulss xmm1,[mgsvmgo.exe+1744044]
"mgsvmgo.exe"+2D837C8: 0F 2F C1                 -  comiss xmm0,xmm1
"mgsvmgo.exe"+2D837CB: 76 1F                    -  jna mgsvmgo.exe+2D837EC
"mgsvmgo.exe"+2D837CD: F3 0F 59 1D 6F 08 9C FE  -  mulss xmm3,[mgsvmgo.exe+1744044]
"mgsvmgo.exe"+2D837D5: F3 0F 5E C8              -  divss xmm1,xmm0
"mgsvmgo.exe"+2D837D9: 0F 57 0D 80 6F 90 FE     -  xorps xmm1,[mgsvmgo.exe+168A760]
"mgsvmgo.exe"+2D837E0: F3 0F 59 1D EC B2 9D FE  -  mulss xmm3,[mgsvmgo.exe+175EAD4]
"mgsvmgo.exe"+2D837E8: EB 0F                    -  jmp mgsvmgo.exe+2D837F9
"mgsvmgo.exe"+2D837EA: 1C DC                    -  sbb al,-24
"mgsvmgo.exe"+2D837EC: F3 41 0F 59 D8           -  mulss xmm3,xmm8
}


Now read carefully at the original memory area opcodes in comment just above. That will help you updates after updates to find the relevant address.
mulss xmm1... must follow mulss xmm0... and the comment column should indicate 16 & 9 ratios

1 - You have to change exactly the mgo adress in script to the one you have found (mgsvmgo.exe+2D67447).
2 - You have to change exactly the bytes in "define(bytes" line with the ones that you can read at new adress "mgsvmgo.exe+2D67447".

If you don't do it right, your script won't work and the checkbox will not be checkable.
If your script is working, don't forget to save it.

Now a little word about Jackfuste original script.
It tells to read the X ratio to a new adress where the float 50 is stored by the mgs process.
It's ok until a 50 / 9 widescreen but not for a triple 21/9 setup.

I hope i did myself clear and it will help you. And please, whenever a new mgo update is out, release a new cheat table so that the others may benefit it.
If you need explanation about finding the ui size pointer let me know. It may help other players.

And finally, don't forget to credit Jackfuste for your CT as without him nothing would have been possible.

Author:  Phoeny [ 05 Feb 2016, 20:15 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

Ok, it works. Many Thanks for your help.

But only the Horizontal axis. the vertical axis ist still messed up. Doesnt the script modify the vertial axis?

I really would apprechiate if you could tell me how to do it and what to modify.

Does this part stay as it is or should i change it too? Or does { } mean its commented out?

Code:
{
// ORIGINAL CODE - INJECTION POINT: "mgsvmgo.exe"+2D837B8

"mgsvmgo.exe"+2D83788: F3 0F 5C 82 68 01 00 00  -  subss xmm0,[rdx+00000168]
"mgsvmgo.exe"+2D83790: F3 0F 10 58 3C           -  movss xmm3,[rax+3C]
"mgsvmgo.exe"+2D83795: 0F 28 F2                 -  movaps xmm6,xmm2
"mgsvmgo.exe"+2D83798: 66 44 0F 6E 40 48        -  movd xmm8,[rax+48]
"mgsvmgo.exe"+2D8379E: 66 44 0F 6E 48 4C        -  movd xmm9,[rax+4C]
"mgsvmgo.exe"+2D837A4: F3 0F 5E F0              -  divss xmm6,xmm0
"mgsvmgo.exe"+2D837A8: 45 0F 5B C0              -  cvtdq2ps xmm8,xmm8
"mgsvmgo.exe"+2D837AC: 45 0F 5B C9              -  cvtdq2ps xmm9,xmm9
"mgsvmgo.exe"+2D837B0: 41 0F 28 C0              -  movaps xmm0,xmm8
"mgsvmgo.exe"+2D837B4: 41 0F 28 C9              -  movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
"mgsvmgo.exe"+2D837B8: F3 0F 59 05 28 52 9A FE  -  mulss xmm0,[mgsvmgo.exe+17289E8]
// ---------- DONE INJECTING  ----------
"mgsvmgo.exe"+2D837C0: F3 0F 59 0D 7C 08 9C FE  -  mulss xmm1,[mgsvmgo.exe+1744044]
"mgsvmgo.exe"+2D837C8: 0F 2F C1                 -  comiss xmm0,xmm1
"mgsvmgo.exe"+2D837CB: 76 1F                    -  jna mgsvmgo.exe+2D837EC
"mgsvmgo.exe"+2D837CD: F3 0F 59 1D 6F 08 9C FE  -  mulss xmm3,[mgsvmgo.exe+1744044]
"mgsvmgo.exe"+2D837D5: F3 0F 5E C8              -  divss xmm1,xmm0
"mgsvmgo.exe"+2D837D9: 0F 57 0D 80 6F 90 FE     -  xorps xmm1,[mgsvmgo.exe+168A760]
"mgsvmgo.exe"+2D837E0: F3 0F 59 1D EC B2 9D FE  -  mulss xmm3,[mgsvmgo.exe+175EAD4]
"mgsvmgo.exe"+2D837E8: EB 0F                    -  jmp mgsvmgo.exe+2D837F9
"mgsvmgo.exe"+2D837EA: 1C DC                    -  sbb al,-24
"mgsvmgo.exe"+2D837EC: F3 41 0F 59 D8           -  mulss xmm3,xmm8
}



Anyway, Here is the partially working Table.

All credits go to Jackfuste :clap:
Thanks to K4sh for teaching me how to modify it

Author:  K4sh [ 05 Feb 2016, 20:30 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

What is your aspect ratio (21/9, 48/9 ...) resolution ?

Author:  Phoeny [ 05 Feb 2016, 20:52 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

21:9 3440x1440 Single monitor

Author:  K4sh [ 05 Feb 2016, 21:09 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

Phoeny wrote:
21:9 3440x1440 Single monitor


Ok Phoeny, this is because your resolution is not exactly 21/9
In fact it is 28.6666666666 / 12 (2.38888888888 ratio)

(3440 * 16) / 1920 = 28.666666
(1440 *9) / 1080 = 12

Don't forget that this is a formula i gave earlier.
You were bounded to a 21/9 aspect ratio.

So the exact X & Y ratio in script should be:
Code:
X_ratio:
  dd (float)28.66666666     // Here we set the correct X ratio
Y_ratio:
  dd (float)12  // Here we set the correct Y ratio


Now i understand why you don't bother that much about ui size as original is bounded to 64 while your ui size should be 86.
The ui size should be a little more bigger for you. But the bigger X ratio (48 4 eg) you play, the bigger the markers size are.

One last important note :
I have no idea what VAC operate on this title. you inject code in mgo at your own risk

Author:  blake_n [ 05 Feb 2016, 21:14 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

Thanks for all the help K4sh. Sorry, it seems I opened the floodgates of questioning about your modification of JackFuste's CE scripts. Appreciate it!

Author:  K4sh [ 05 Feb 2016, 21:15 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

Now tells me if it works...

Author:  Phoeny [ 05 Feb 2016, 21:29 ]
Post subject:  Re: Metal Gear Solid 5: The Phantom Pain- 21:9 support broke

I have updated it with your values and the Vertical is better now.

but they both shift outward now. When you Mark somthing and move your camera to the left the Marker goes faster to the right than the thing you marked.

i guess i have to fiddle a bit around with it


Made a mistake while updating the values. Its working great now.

Link in my last post. I think everyone has to update the values for the ratio himself.

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