Far Cry 3 VRboost failure

The place for all discussion of the Oculus Rift compatible open source 3D drivers.
Post Reply
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Far Cry 3 VRboost failure

Post by thekitchensink »

Hello anyone,
I seem to be having some slight issues with Vireio, because when I start up Far Cry 3 and follow the directions for the VRBoost scan, it does one of two things: It either fails, or somehow grabs ahold of the wrong memory address, because my head movement still doesn't move the view at that point. Keep in mind that the stereo rendering is working ok, the distortion is a little bit off but nothing I couldn't handle.

At this point, I decided to do a bit of investigation, and I found out that whenever I use the Vireio Perception profiler, it throws an error whenever I try to edit a profile, which I find rather odd.

Oh, and before anyone asks, UPlay overlay is off, Vireio is running as admin, and I used the symlink installer for the folder with the binaries for FarCry 3.
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

Did you make sure you kept looking "below the horizon" for both the initialising stage and the scanning stage?, if you look above the horizon at all during those stages, it will fail to find the right address. ALso, whilst it is initialising or scanning you must keep moving the view around with the mouse or with the controller, the scanner searches for addresses that change, so if you haven't moved it then it could potentially dismiss valid locations.

You aren't alone, seems quite a few people are having trouble with this one, with the above in mind, please keep trying, if you still have no luck I might ask you to record a short video of your attempt so I can see if I can figure out what the problem might be. These scanner files are generated at the point we are in the game when we add support, and we do some testing elsewhere, but it certainly isn't exhaustive, it's always possible that some later stages of the game differ in such a way that the scanner doesn't work and needs tweaking.
WiredEarp
Golden Eyed Wiseman! (or woman!)
Posts: 1498
Joined: Fri Jul 08, 2011 11:47 pm

Re: Far Cry 3 VRboost failure

Post by WiredEarp »

Can I ask some questions about this 'VRBoost'? What is it exactly? It sounds like a scanner for changing memory addresses to give absolute control of head tracking (instead of mouse based) but if thats the case, how does it work and what's the interface etc, and how does it deal with different coordinate ranges/types?

Just interested, and I couldn't easily find any info explaining the feature and its technical details.
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

You are pretty much corrrect.. it avoids th need to use mouse emulation, and therefore is much lower latency head tracing.

If you look at the xml configuration files in the vrboost folder in the release archive you'll see how it is configured. Adding support requires a fair bit of time using Cheat Engine to figure out what sort of addresses he orientation (and somettimes FOV) addresses tend to inhabit, then writing an appropriate config file for the canner, which tells it how things like yaw and pitch and FOV ae stored and used by the engine (Unreal uses DWORDS, whereas source uses floats representingg degrees, some games use radians). The scannerr then pretty much just scans the memory regions defined in the vrboost file over and over looking for relevant changed and then hopefully boils it down to a handful of candidates. Then the scan assist stuff kicks in which can further filter out addresses until it is literally a few candidates, which you can then cycle through.

The original implementation used a stable pointer approach, which meant a long and tedious search for these stable pointers.. the new approach is much quicker to get going, but can occasioanly be error prone and requires tweaking, but is much more intereting to configure.

VRBoost is closed source however, the approach is takes is somewhat akin to hacking/injecting. But hopefully the above decription gives you a better idea of how it works. Looking at the XML config filees might be more enlightening.
WiredEarp
Golden Eyed Wiseman! (or woman!)
Posts: 1498
Joined: Fri Jul 08, 2011 11:47 pm

Re: Far Cry 3 VRboost failure

Post by WiredEarp »

Thanks DrBeef, thats all the info I wanted at this point. I actually wrote a hack for FC3 a year or two back that did the same thing for when I was playing with TriDEF, so its very cool to hear Vireio has this stuff built in now. Direct mapping like this is way better as it avoids the need to occasionally recenter like you do with mouse emulation.
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

Thanks for the tips, I'll try them tomorrow, because I don't have any finals tomorrow :D
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

Hrm....... I kept my eyes below the horizon until it said to look up, and then I did, and it's still having the same results. Do you think it might be a problem with vrboost improperly reading the profile for far cry 3? Or would it even get as far as it did if that was the issue...
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

If it couldn't read the config for VRBoost you'd not get that far, you'd see some errors.

Could you record a short clip of your attempt please? I'll have a look to see if I can see anything obvious about what is happening.

Frustratingly I've not had these issues myself, so without being able to reproduce the problem it is going to be hard for me to fix.. I wonder if there is a way to export FC3 saved games, I could then take yours and see if I get the same behaviour at that point in the game?

Last question.. are you playing with an Xbox 360 controller or k/b and mouse? getting success with the controller is much harder.
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

yes, I am using a controller, will try with keyboard and mouse next
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

I seem to have gotten it to work, because of the pure luck that I didn't start up the Vireio Perception application. However, if I die and the game reloads, it cannot find the memory addresses again when I try to rescan.
WiredEarp
Golden Eyed Wiseman! (or woman!)
Posts: 1498
Joined: Fri Jul 08, 2011 11:47 pm

Re: Far Cry 3 VRboost failure

Post by WiredEarp »

@ thekitchensink: try running FC3 in DX9 mode and see if it works better in that.
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

It already is running in dx9, I was under the impression that vireio wouldn't work with dx11, can someone confirm or deny this?
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

Vireio will only work with DX9 games (or games running in DX9 mode), it won't inject otherwise.

Is anyone who's having a problem with the scanner finding the orientation addresses prepared to give Cheat Engine a go to find the addresses the game is using so we can see if there's a fault with the scanner file? If anyone shows an interest in trying this, I'll post some instructions here.
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

I can try, it'd be interesting for me, a college student compsci major, to do. Also, I might be able to help with future vr boost profiles then.
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

First thing you need to do is download Cheat Engine, it's free. I'd advise you go through a couple of tutorials if you are unfamiliar with it.

Then the goal of the exercise is to find the memory location that is used to store the Pitch. Pitch in FC3 is stored as a float, the value is 0.0 when you are looking directly straight ahead, and negative when looking down with a maximum of -1.225, and positive when looking up, with a maximum of somewhere around 1.4.

The trick is to find addresses that change as you would expect Pitch to, then test them (by setting values into them) and seeing if the view in the game is updated accordingly (and that, in a nutshell, is exactly what the scanner and subsequent VRBoost injection does).

To do it properly you'll want to run the game windowed with a small resolution, so you can have the game and Cheat Engine side by side, then follow these sort os steps:

1. In the game, look up as far as you can go
2. In Cheat Engine, search for Float addresses with a value between 1.35 and 1.45
3. in the game, look down as far as you can go
2. In Cheat Engine, search for Float addresses with a value between -1.25 and -1.2

You can also filter addresses that have changed even if you haven't moved the view. Basically it is a trial and error approach and you are just attempting to eliminate addresses until you get down to a handful, then you add the selected addresses to the bottom pane and set values on them to see if any affect the game.

There's little more to it than that.. when you find the Pitch address that causes the in-game pitch to change, then please post it here so I can see if the scanner should be picking it up (in which case you might be doing something wrong while it is scanning), or if it is an address outside the range the scanner is looking at (in which case a change to the scanner configuration should sort it out).

Good luck, happy hunting!
WiredEarp
Golden Eyed Wiseman! (or woman!)
Posts: 1498
Joined: Fri Jul 08, 2011 11:47 pm

Re: Far Cry 3 VRboost failure

Post by WiredEarp »

If its FC3, and DX9 only, then I'm pretty sure I have static pointers that work reliably for the correct variables (although these may well have changed if there have been patches released since I played around with FC3). Vireio could be updated to use these, and then there wouldn't even be a need to do any configuration etc. Its really cool that it has the configuration ability built in though, as it will mean it can stay current with changing versions...
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

Sorry that it took so long for me to reply, I was extremely busy during spring break. I scanned for the head position, and got the address 0x2FCE2994 for my first scan, then I promptly killed myself. I then tried modifying that value again, and it didn't work very well: There was no change in the viewpoint. I scanned for the viewpoint variable again, and this time it was at 0x0DE2B434. I don't see any relations between those two values. I am working on a pointer scan right now, but it could definitely take a long while, I'm currently at 70 pointers.
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

Hi, there is no relationship between the two values, where they reside in memory is entirely at the whim of the OS, fortunately, the OS stores these things in a semi predictable manner, hence the use of the scanner to locate them.

I suspect there might be an issue with the scanner file though, if it is finding it the first time, but then not finding it again after, so I'll look into that. The addresses you found are within the scanned region of memory, so it should be working (certainly the first time you run the scan).

VRBoost can be configured to use static pointers, but that approach is a lot more effort to set up (Skyrim uses it, hence no need to run the scan on game start), so using the scanner is much quicker to get results and support for games.
User avatar
Neil
3D Angel Eyes (Moderator)
Posts: 6882
Joined: Wed Dec 31, 1969 6:00 pm
Contact:

Re: Far Cry 3 VRboost failure

Post by Neil »

Are you using the scanner the way the following video demonstrates its use? I had the exact same problem until I realized I was doing it all wrong. :lol:

http://www.mtbs3d.com/new-vireio-site/1 ... -far-cry-3

Regards,
Neil
thekitchensink
One Eyed Hopeful
Posts: 16
Joined: Sat Dec 13, 2014 10:39 pm

Re: Far Cry 3 VRboost failure

Post by thekitchensink »

I'm 99% sure that I am using it correctly, because it can find the value at least once. If I die, however, then the scanner cannot find the new address.
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

I suspect there is something that changes when you die which means the scanner has an issue and can't locate the address. I'll add this to my list of things to look at. Just try to avoid dying in the meantime ;-)
User avatar
DrBeef
Vireio Perception Developer
Vireio Perception Developer
Posts: 328
Joined: Wed Aug 14, 2013 6:20 am
Location: London

Re: Far Cry 3 VRboost failure

Post by DrBeef »

Couldn't figure out why it couldn't rescan correctly after you die, so I had a fiddle with it and modified the scan profile, and it seems to work much better, I was able to get repeated scan success after I die respawn. If you don't want to wait for the next release of Vireio, you can get the updated scanner file from the github repo, the direct link is:

https://raw.githubusercontent.com/cyber ... arcry3.xml
Post Reply

Return to “Development / General Discussion”