Jump to content

Rainbow Six: Vegas 2 FOV (Possible Working Solution?)


JJXB
 Share

Recommended Posts

In my messing around with Cheat Engine, i thought i might be able to see if i could modify FOV in V2 in some way. As it turns out i've found at least *something* related to it. it appears that the standard FOV inside the engine is referred as "51" in float values. I've found a lot more and even got round to modifying it in some way though i am encountering some hurdles. Either way, some progress towards a user-modifiable method of FOV modification instead of the current "aspect ratio bound" is something i hope will help.

 

Here's the thread i have on the cheat engine forum, including AA script for CE to modify FOV in some way

Direct link to the post that has script and video in it (Very WIP)

 

Link to comment
Share on other sites

  • 2 weeks later...

sorry for radio silence on this but i can only work on so much before hitting a brick wall of "can't think". came back to it today and i got it *less* screwy with the detection somehow along with adding ways of monitoring some of the incoming and outgoing numbers. Help on this would be much appreciated however since the post i'll link to explains why i've run into another zone of confusion over how edi+30 and any values that might modify esi+30 are also affecting edi+30.

Aforementioned progress post with details

if you'd rather i post the contents of what i posted verbatim in the future, i'll be willing to do so but i can only do so if i know that people would rather i do so.

Link to comment
Share on other sites

Post in the thread if you wish to read it there

 

Okay, looking at it, the one function i have fundamentally no understanding as to it's contribution is

"R6Vegas2_Game.exe"+31F9B9: D8 C9                 -  fmul st(0),st(1)
and try as i might, i can't get anything intelligible out of that because i can't find what for the life of me is on those stacks in terms of values. the only other *things* i've found since that have been:

FPU Registers:
The Extended FPU Register between fmul and the fstp esi command contains the base FOV. so i can only assume that either fld edi is loading it into extended FPU or something else is. i say that because of something else:

ESI and EDI Separation:
F*****g non-existent. it seems that some addresses get re-used for both ESI and EDI in looping instructions. meaning that it seems like a looping cycle of resets to the value it sees it "should" be.

EDI and Pointers:
it doesn't straight up write float values to EDI bar 51. what it does is put a pointer to something else when another FOV is needed (such as zooming). I tried putting in some of the pointer addresses to find out what it points to but that leads to nothing but useless areas of memory.

using the address of the FOV that gets "written" to as a pointer just points to the useless memoryspace. using the address of the useless memoryspace as a pointer gets me nothing of value either.

fmul:
noping the fmul instruction completely messes up the FOV. causing major glitches, indicating that the multiplication is a vital component in determining FOV. what is not so clear is *how* and what values it is processing then storing in st(1). because from what i can tell, the st(1) value is then what goes into [esi+30]. i have tried looking through XMM and FPU Registers (which is how i found the FPU tidbit) but apart from base FOV being stored in FPU Xtend, no useful info is there from what i can tell. and all of the floats in xmm register tend to stay the same:

xmm0:0.50 - 0.00 - 0.00 - 0.00

xmm1:1.00 - 0.00 - 0.00 - 0.00

xmm2:2.00 - 0.00 - 0.00 - 0.00

xmm3:2.00 - 0.00 - 0.00 - 0.00

xmm4:3.00 - 0.00 - 0.00 - 0.00

xmm5:0.50 - 0.00 - 0.00 - 0.00

xmm6:0.00 - 0.00 - 0.00 - -0.61

xmm7:0.00 - 0.00 - 68521467904.00 - 0.76

either way, i'm getting to my wit's end with this because it seems like i can't get all the information i would need and how esi and edi are determined because of how many esi and edi addresses are written (4).

 

Link to comment
Share on other sites

  • 3 weeks later...

Link to the post with a download of the cheat table as it stands

 

 

Little to no progress on the FOV front i'm afraid. i have managed to find out more general camera variables however. trouble with it is that i can't seem to get the stuff to stick if i change things because the game's code that manages any of the camera variables (including FOV it seems) loops, writes and reverts any changes in a matter of milliseconds.
So i figured it'd be best if i uploaded what i have in a cheat table as is and let others look at the ct to see if they can catch anything i couldn't. I'll still look at doing things with this as i want to learn more and do more but i am seriously needing some help with figuring out how the numbers get fed into the loop and how I can influence those numbers before or after they enter said loop in a reliable fashion.
Link to comment
Share on other sites

  • 3 weeks later...

Current Post with Early (Working?) Solution CT

 

 

As the thread title says, PROGRESS!
went back to the drawing board and finagled some way of having a readily modifiable FOV with caveats.
Current process is this:
Compare [EDI+30],49.725
if equal or greater , Compare [EDI+30],62
if less or equal, run the code to add [FOVVALAdd] into the process (with adjustable FOVVALADD, if zero it won't add anything)
in the event that first check is less or second check is greater, it just executes standard FOV routine so it only changes anything between 49.725 and 62 (49.725 being crouching FOV and 61.something being sprint FOV).
Very limited use case thus far but it catches all the instances that i'd want to change the FOV (Standing, Crouching, Sprinting Etc) while leaving alone more precise aiming modes. Still has weird anomalys but i will upload the .CT file for your examination/criticism (kind of messy and stuff but progress is progress, right?).
i'm gonna build up a beta Trainer for this to enable the code change that also allows for changing the amount the FOV is modified and post it up later.

 

Video of a reduced FOV table in effect

Link to comment
Share on other sites

  • 5 weeks later...

 

 

not had time to work on it the past month or so due to various reasons unfortunately. plus most of my CT files have gone kaput because i've lost them in a laptop move (massive upgrade). however the fact i uploaded my last bout of progress on this did help me make sure to get it back in this case. for all my other personal projects i have to start from scratch but i have no real issue in doing so because where would i challenge myself otherwise? :P

i do plan on doing more work at some point but at the second i gotta tweak vegas 2 since now on my new laptop it runs at 160+ fps at 1920x1080. that and i need to break my FO: new vegas addiction :D
Link to comment
Share on other sites

  • 9 months later...

Okay. i did finish up a solution (with help of someone at the Cheat Engine Forums) in .CT form but never got round to putting it into an external executable. i might end up posting one but as it is right now? i've uploaded it to the files area and will see about posting the link to it once it is approved there.  I will share the description of the file here too though:

 

Use this to change the FOV ingame. Requires CE to use.

------

This works by checking if the FOV as stored in game memory meets the condition of being between 39 and 52 (also checking if leaning).

 

39 being the lowest desirable number to modify. Going any lower leaves any ADS modes unusable due to lack of zoom.

 

52 being the highest desirable number to modify. Sprinting usually sends the camera FOV past the standing FOV of 51 into the 53+ range.

When you modify any of the sprint numbers past 52, the sprint camera draws out backwards far too much to be usable.

 

The drawback of having these numbers as the limits is the obvious "change" when you change from one viewpoint to another.

 

The lean check number of 41 is to prevent similar camera issues as described with sprinting when you are leaning from cover.

this is separately changeable to allow for the player to reduce camera issues with leaning.

 

What is unknown to me as the author of this CT is if the FOV being referred to is Horizontal or Vertical.

Personal Current Preference of modifier numbers are anywhere between 28-30, thus forcing the 51 of standing fov up to around 79-81.

------

For the curious, The standard numbers for multiple states as stored in game memory:

Standing 51

Crouch 49
ACOG 16
6X Scope 8.5
ADS (with or without Reflex) 34.01699829
Crouched ADS (with or without Reflex) 33.16657257
Lean out (Crouch) 39
Lean out (Not Crouched) 40

Sprint varies but tends to increase FOV dramatically past 51, sending any attempt at modification haywire.

------

To verify these numbers yourself, Load up CE and do a float search for the FOV listed with your state.

Multiple results will show up that have the same value but I created this in the first place to avoid any messing about unless you really are just curious (like i was).

You are free to modify the AA script to change the condition numbers to see the effects listed in the explanation.

You are also free to examine how this works and possibly work it into your own implementation outside of CE.

Shoutouts in any possible outside implementation would be nice but not required.

------

Okay, all tech stuff out of the way? good. I haven't tested this online and don't plan to since i'm not going to risk my Punkbuster status on it either. do so at your own risk.

Also shoutout to ParkourPenguin of the CE Forums for cleaning up my messy but working AA script into something neat and tidy.

Worked on between 2015 and sometime early/mid 2016.

-JJXB

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...