Saturday, July 23, 2016

XCom 2









After many months, and nearly 100 hours logged in game to complete this, I'm extremely pleased to finally present you with this complete fix for this eXtraordinary game!


Fixed:
-Lighting, Shadows, & SSAO
-Halos... lots and lots of halos
-Some screen space reflections
-HUD
-Fog of war

Remaining Issues:
-A lot of lighting and effects get clipped at extreme ranges and angles
-MSAA  could not be fixed
-Some reflections are close, but not quite perfect
-Again, there were SO many broken effects causing halos I wouldn't be surprised if some slipped through the cracks on me


Updated on Sept 14, 2016 to version 1.2

Change log:
-Enabled cache_shaders which improves performance

INSTRUCTIONS

1. Download fix here: Version 1.2

2. Extract archive to game location that contains XCom2.exe, which is in the \XCOM 2\Binaries\Win64\ folder

3. Either import the XCOM2_profile.nip using Nvidia Inspector, or you must set the StereoFlagsDX10 setting to 0x00004000 by following these instructions

4. Game settings: the only setting that's mandatory is to set AntiAliasing to FXAA or Disabled, unfortunately cannot use MSAA since that uses a different lighting shader that for some reason could not be fixed the same way as the others. I also highly recommend turning off Dirty Lens, which causes ugly lens flares. You might also wish to turn Screen Space Reflections, since half of them are fixed and half are close approximations (I personally preferred to keep them on ;)). All other settings I ran on the highest, but in my testing lowering them should be fine.

5. Key Presets: Because Xcom 2 uses several different views, which change rapidly, I've created several combo presets that change the Convergence and HUD depth accordingly as follows.

Key       Values                                        Best Use
F1          Convergence: 10                        This is best used for on the world map screen or during
              HUD: 0% into screen                 hacking sequences

F2          Convergence: 100                      This is the best view for the cinematic action cam and at the
              HUD: 5% into screen                 XCom base. It's a good general preset to use.

F3          Convergence: 500                      This is a good preset for use in missions during the tactical
              HUD: 30% into screen               planning / movement, has a little more 'toyification' effect
                                                               than the last setting. Also ok at XCom base when not
                                                               zoomed in.

F4          Convergence: 1000                    Same as last preset, but with an even more extreme
              HUD: 55% into screen               toyification effect!

Caps      Cycles between all 4                  An alternate method, where pressing this key will cycle
Lock      presets                                       through the 4 different settings, instead of having to
                                                               remember which key corresponds to which view, you can
                                                               just press Caps Lock until the screen looks ok.


Also, these keys do the following:

\ key: disables the HUD and fog of war (useful for scoping out the landscape. Still can't see enemy layouts though)
] key: cycles through various HUD depths without changing the convergence


Special Thanks to:
-3DMigoto team for all their hard work, of course!
-4EverAwake, whom started working on this game first, and provided me with his WIP to start with when he found out I was willing to work on this one
-Necropants for testing the fix and helping to locate additional broken effects
-The rest of the Geforce community for keeping me motivated to see this one through to completion


Like this fix? Fixes take a lot of time and effort, so donations are always welcome and appreciated!
Paypal: www.paypal.me/DShanz

25 comments:

  1. Спасибо!

    ReplyDelete
  2. Awesome my brother. Been waiting on this like Crazy. DJ You are my best new friend :D

    ReplyDelete
    Replies
    1. Great, always love to make new friends!

      Sorry to have kept you waiting so long, though. I actually had most of the stuff fixed back in around Feb or March, posted a beta fix back then in the Geforce forums, and then I kinda lost interest in the game (like I do with nearly all games). Unfortunately the rest of the stuff that needed to be fixed required me to play the game through to completion, so that took me months of playing/fixing this game on and off to get to the end (and I finally gave in and chose to cheat to rush through the last 3rd of it)... but, on the plus side, the finished product is a lot more polished that I had expected it to turn out, so I really think and hope you'll enjoy this!

      Delete
  3. BIG THANKS DJ-RK !!!

    ReplyDelete
  4. Thanks for this, I was following it closely at the gforce forums, although I never posted. I'm aboutt o finish XCOM:EW for the 4th time, and was waiting to play XCOM 2 until a 3d fix was around.

    Much appreciated!

    ReplyDelete
  5. Great Work!
    But one question. where can i find the XCOM2_profile.nip?
    Cause i cant find StereoFlagsDX10 setting in Profile Inspector XCOM2 profile.

    ReplyDelete
    Replies
    1. It's one of the files included in the zip file for the fix.

      Delete
  6. Hi, is it possible to get checkerboard SBS/TAB output with this version of 3DMigoto for 3dTV Play?

    ReplyDelete
    Replies
    1. Hi there. This is something that unfortunately would require quite a bit of work to do, due to the fact that I started this fix on a much earlier version of 3DMigoto before SBS/TAB was introduced, but besides that addition, the functionality of one of it's features that I heavily used for this fix had changed in the newer versions that have the SBS/TAB capabilities, so that would require me to go in and modify nearly each and every shader that I fixed (nearly 400 of them) to this newer format, just to be able to incorporate SBS/TAB. I'm not saying that I won't ever do it, but it's not something I can promise anytime particularly soon.

      Delete
    2. Hold that thought. I just checked the version history of 3DMigoto, and fortunately it looks like SBS/TAB was introduced before the other change I was referring to by about 2 versions, so I should be able to use one of those older versions to include SBS/TAB without breaking the fix. I'll look into that tomorrow.

      Delete
    3. Looks to me like this fix is using 1.2.31, which predates SBS by one version (1.2.32).

      Might be worth updating the dlls and .ini to the latest version, and include the HLSL files from ShaderFixes for the SBS function. There should be no functionality changes, and this update would only take half an hour or so.

      It looks to me like the resource buffer copying should still work, but that's probably the piece you are concerned about. Might be worth a quick try to see for sure.

      Delete
    4. 1.1 fix update is live to include SBS/TAB support. I've tested to confirm the fix works with regular 3DVision still, but not yet on SBS/TAB, so if anyone could test and confirm that would be great.

      @bo3b: Yeah, the main thing I was worried about was the change in 1.2.35 that changed the #include handling path. As you pointed out, I noticed that SBS/TAB was introduced in 1.2.32, so I went ahead and updated to 1.2.34. I thought I had remembered those changes being in the opposite order, which would have been a little bit of a pain to have to go into each shader to change the #include path format, but thankfully that wasn't the case.

      Delete
    5. DJ-RK, thanks for the fix! I will test it on my 3DTV play projector and let you know.

      Delete
  7. Thanks again for looking into this. I selected the checkerboard option in control panel, copied all the files, uncommented the necessary line under "present". The game loads and I can turn on 3d (since it gets blurry). But the F11 button (to cycle sbs/tab modes) makes the game somehow go back to desktop or sthg (the projector blinks, tells me to wait and comes back to the game - the slow way it usually does). But the mouse cursor goes back to the desktop version (not the game version) and no longer responds. I can exit the game using the keyboard buttons.
    The game works find at regular 3DTV play setting of 1080p@24hz (including the different presents using CAPS lock).

    On the same projector and drivers (368.81) I am able to play Far Cry 4 and Fallout 4 using TAB/SBS mode.
    Sorry for my unprofessional and long descriptions but I am very new to this, just bought 3DTVPlay for this TAB/SBS mode and some games that are not available on Tridef (since it appears to have died).

    This mode works great with a native 1080p projector because 720p@60hz just makes the image much smaller and much more constricted somehow (apart from the apparent quality loss). The projector seems to just adjust its entire screen as if it becomes a 720p monitor with a smaller diagonal (instead of stretching the image).

    ReplyDelete
    Replies
    1. I'm pretty sure I've implemented the SBS/TAB correctly, so only suggestion I can make is to try manually changing the x7 constant in the beginning of the d3dx.ini file to whatever format you want to use, rather than using the F11 cycle key.

      Unfortunately I cannot test this at all, my projector does not have checkerboard support, so I can't even select that option in the Nvidia control panel, it appears, but anytime I select it and hit apply it just goes back to 3D TV Play. I wonder if I can find an EDID somewhere that might help with that.

      Delete
    2. Also check if the F11 is used by something else, maybe the game. You can change the key used in d3dx.ini to anything for experiments. Having it start in the mode you want is the best bet though. It seems like it's making it change, it's just crashing or hanging or something.

      Delete
  8. Thanks for your replies, guys.

    How do you change the key? Is it in the constants area where it says "= F11"? I tried changing that to "= F9" and just the letter "p". Also is there any way I can make it so it goes straight into TAB reversed without cycling? I will try again when I get home tonight.

    DJ-RK, that's strange, I don't have checkerboard support on my projector either but the option works; the projector just blinks and the option is selected.

    ReplyDelete
    Replies
    1. Also does this fix work with mods like the alien pack by long war studios?

      Delete
    2. "...is there any way I can make it so it goes straight into TAB reversed without cycling?"

      Yes, by changing the x7 = 0 to x7 = 5 in the constants section near the top.

      As for the fix working with mods/DLC's, I can't say for certain because I only played vanilla (with a couple extra mods to help me get through the game a little quicker/easier). I would say most mods should work fine, but DLC's I can't say. Odds are if there's anything that will add new game assets, then there will almost certainly be some minor broken effects (since nearly everything else in the game had at least something broken), but I hardly doubt it'll make it unplayable.

      Delete
    3. I tried x7 = 5 in the [constants] section but it did not seem to work. Also pressing F11 even once seems to permanently mess up the game (including regular 3dTVPlay as it appears to toggle resolutions and once the resolution changes, the mouse changes from the game pointer to desktop pointer and the keyboard does not react) until the fix is uninstalled and reinstalled again and the game's resolution is changed to normal with 3d disabled).
      I also tried fallout 4 (with 3dmigoto 1.2.42 - probably the wrong one anyway - but it works) with the same x7 = 5 command and it works - when I press ctrl + T to turn on 3d, it immediately comes on as TAB. Couldn't figure out how to do this with Far Cry 4 as the ini file was kind of a mess when opened with notepad (for people with not as good in logic as me)

      Also tried (not sure if it was right): [KeyChange3DVision2SBSOutputMode]
      key = F6
      but there's no response
      F11 seems to toggle different

      Meanwhile, regular 3dTV Play without checkerboard works fine.

      Delete
    4. Sorry mate, I hate to break it to you, but I've done lots of testing tonight which has brought me to the conclusion that SBS/TAB is not supported for this game. :(

      I figured out my issue with the whole checkerboard option not being set, which finally let me then get to do actual testing. From there, I'll spare you the details, but nothing I tried would get the game to switch over to SBS/TAB, meanwhile I went ahead an updated my fix for Street Fighter V, which previously did not have SBS/TAB support, and had no problems whatsoever getting it working there, which helped confirm my suspicion that for some odd reason, it's just this game that is blocking it.

      Delete
    5. DJ-RK, no problem and thank you so much for looking into this! I hope other modders will follow your suit and update their 3DMigoto fixes with TAB/SBS support when possible. Hopefully, this will win over crowds of people, especially those who have Nnvidia cards with projectors/TVs and who have been very unhappy with Tridef's lack of support or further tools for modding as well as 3dTv play's 1080p@24hz and 720p@60hz limitations. I will try to promote this solution and your games wherever I can on the different forums.
      Meanwhile, I tried your fix on my passive 27in LG monitor (with the Zalman EDID) - couldn't be more perfect and works with all the DLC as well - one mission so far but it was a great experience! And who would have thought that it would be possible to cycle through the different views! As it is a strategy game, 27in would be the better options anyway. Will check out Street Fighter V too when its on sale.

      Delete
  9. Just a note to everyone. I turns out that I forgot to enable a feature in 3DMigoto that helps increase performance and reduce large FPS drops (explosions, action cam). I intend on updating the fix to version 1.2 (in fact, I already have), but I currently am unable to login to the server to upload the file, so for the time being anyone on version 1.1 or lower can enable this feature themselves simply by editing the d3dx.ini file, and changing the option "cache_shaders = 0" to = 1.

    ReplyDelete