Results 1 to 6 of 6

Thread: GTR2 Setup Instructions and Known Issues

  1. #1

    GTR2 Setup Instructions and Known Issues

    Updated 01/21/2021

    ----- About this project -----
    I’ll allow myself to begin this post with a personal note here. GTR2 holds special place in my heart, and I am sure I am not the only one out there feeling that way. It is the game that flipped me completely – once I encountered it I never looked back at casual racing games anymore.

    Time went by, and lack of Crew Chief and quality VR support made me set GTR2 aside for a few years. But I always silently hoped and dreamt that this will change one day. Recently, I ventured into the world of RBR, and seeing what community achieved there made me realize - things do not have to stay as they are in GTR2. As a result – Crew Chief Team presents to you GTR2 Crew Chief and native VR support.

    This project is the result of a close cooperation between Sparten and me. Sparten solved several complex problems, greatly accelerating the progress. He found out that GTR2 uses a form of rF1 plugin model. This discovery elevates the overall GTR2 tooling to an entirely new level. Aside from the Crew Chief support, we also got better Motion and Transducer integration - we notified devs of SimTools and SimHub and they already updated their tools to make use of that. He also ignited the hope for the native VR by implementing VR tracking, which kicked off the adventure of implementing the VR support. Without Sparten’s help this project would’ve taken much longer, and frankly, I am not sure I would’ve had enough patience and lasting interest to bring this project this far if it wasn’t for his cooperation and unique skills.

    Note: this plugin is provided as is, use it at your own risk. This is tested in offline only, no idea if it will cause online mismatches or any other issues.


    ==============================
    = Requirements (both CC and VR)
    ==============================
    * Only Steam GTR2.exe is supported. (Minor) hex edits should be fine.
    * Requires VC++ 2017 redist: https://aka.ms/vs/16/release/vc_redist.x86.exe

    ==============================
    = Crew Chief
    ==============================


    ----- Installation -----
    Crew Chief should be able to automatically install the files needed. However, if you are using multiple GTR2 drops, it is important to understand the exact installation steps.

    Copy CrewChief.dll file out of Program Files (x86)\Britton IT Ltd\CrewChiefV4\plugins\GTR2 into [GTR2 Root]\Plugins.
    Launch GTR2 once, that will create the CrewChief.ini file. This needs to be done only the very first time.

    ----- Enhanced integration -----
    In order to enable the enhanced Crew Chief integration, make sure enableUnofficialFeatures is set to 1 in CrewChief.ini. If this value is not set, only official rF1 API is used, which has many limitations.

    If you use spotter (car left/car right functionality), you would need to raise data update rate by changing scoringUpdateBoost value. Lower value boosts update rate, but increases the CPU usage. The lower the value, the more precise spotter will be, but at a cost of higher CPU usage will be. Valid range is [0.0, 0.5]. At the lowest value, which is 0.0 (spotter data updated on every frame), causes approximately 10% FPS reduction, and at 0.1-0.2 CPU usage increase is negligible. Put this to 0.5 to completely eliminate FPS impact or if you do not use the spotter functionality.

    ----- Work in progress -----
    - Safety car phase is still being worked on
    - Detailed damage information is currently missing

    ----- Limitations -----
    - Session restart without return to the garage breaks data flow (game stops sending updates). The workaround – don’t do that.

    ==============================
    =
    VR Support
    ==============================

    VR support has strict requirements and limitations. Please make sure to familiarize yourself with “Requirements/(Not)Supported configuration” section.

    ----- Requirements/(Not)Supported configuration -----
    - Steam GTR2.exe only
    - Windows 10
    - DX9 only
    - 32bit color only
    - Windowed mode only. You could run Fullscreen, but since doing so breaks CC SteamVR overlays, that is not supported.
    - Do not run as an Administrator. Since doing so breaks CC SteamVR overlays, such configuration is not supported. However, you should run GTR2Config.exe as an Admin if you set disableMyDocumentsProfile to 1.
    - Do not set compatibility modes on GTR2.exe/GTR2Config.exe. “High DPI Scaling override” set to “Application” is OK if your window scales to your Desktop incorrectly. Any other compat settings are not supported.
    - Do not run anything that might interfere with SteamVR (ReVive, Vorpx etc).
    - Tools/Plugins that rely on d3d9.dll are not supported (so no Reshades, Sweetfxes, Trackmaps etc).

    ----- Installation -----
    Crew Chief should be able to automatically install the files needed. However, if you are using multiple GTR2 drops, it is important to understand the exact installation steps.

    - Copy CrewChief.dll file out of Program Files (x86)\Britton IT Ltd\CrewChiefV4\plugins\GTR2\Plugins into [GTR2 Root]\Plugins.
    - Copy d3d9.dll and openvr_api.dll files out of Program Files (x86)\Britton IT Ltd\CrewChiefV4\plugins\GTR2 into [GTR2 Root].
    - Launch GTR2 once, that will create the CrewChief.ini file. This needs to be done only the very first time.
    - Set enableUnofficialFeatures = 1 and enableSteamVRRendering = 1 in CrewChief.ini. IMPORTANT: Make sure to re-run GTR2Config.exe every time you change the above setting (unless you set useVRVideoModeEnumerationFor2DRendering to 1).
    ----- Limitations -----
    - Pit crew member that guides car out of the garage is sometimes disappearing. It seems to be related to high FOV values used in VR and as of today I am unsure how to fix it.
    - Lens flare pops in and out of the view incorrectly. No idea how to fix (yet).

    ----- VR Configuration -----
    ; Uses VR method of video mode enumeration for 2D (Desktop) mode. If
    ; set, you do not need to re-run GTR2Config.exe every time you enable/disable the VR.
    ;
    ; Might also help with GTR2 startup crashes.
    useVRVideoModeEnumerationFor2DRendering = 1

    ; Sets distance to the menu/non-cockpit camera overlay. Higher value moves
    ; overlay further, lower moves it closer.
    menuOverlayDistance = 1.500000

    ; Sets curvature of the menu/non-cockpit camera overlay. Higher value makes
    ; overlay more curved, lower makes it less curved.
    menuOverlayCurvature = 0.200000

    ; Enables HUD rendering as a SteamVR overlay.
    renderHUDAsSteamVROverlay = 1

    ; Sets distance to the HUD overlay. Higher value moves
    ; overlay further, lower moves it closer.
    ;
    ; Requires enableHUDAsSteamVROverlay set to 1.
    hudOverlayDistance = 1.500000

    ; Sets curvature of the HUD overlay. Higher value makes
    ; overlay more curved, lower makes it less curved.
    ;
    ; Requires enableHUDAsSteamVROverlay set to 1.
    hudOverlayCurvature = 0.200000

    ; Scales the HUD overlay horizontally. Higher value makes
    ; overlay more wider, lower makes it narrower.
    ;
    ; Requires enableHUDAsSteamVROverlay set to 1.
    hudOverlayWidthScale = 1.000000

    ; Scales the HUD overlay vertically. Higher value makes
    ; overlay taller, lower makes it shorter.
    ;
    ; Requires enableHUDAsSteamVROverlay set to 1.
    hudOverlayHeightScale = 1.000000

    ; Virtual key code to use for resetting the center. Default is VK_NUMPAD5
    recenterHMDVirtualKey = 0x65

    ; Disables rain reflections in VR. Will not inprove FPS.
    disableVRRainReflections = 0

    ; Improves the lens flare effect rendering by moving the lens flare images closer to
    ; the center of a vision (positive value) or further out (negative value). This avoids
    ; the double sun image. Use "enableLensOffsetTuneUpMode" to find value that works best with
    ; your HMD (it depends on the aspect ratio and whether panels are canted or not).
    ;
    ; Pimax 5K/8K, large FOV, native mode looks best at around ~20.0.
    lensHOffsetPercentage = 20.000000

    ; Enables lens flare effect tune up mode. Use Numpad 4/Numpad 6 keys to move
    ; flare effect until suns visually merge. Close the game and check USERDATA\Log\CC_DebugOutput.txt
    ; for the used offset percentage. You should see the message similar to:
    ; "Lens flare horizontal offset percentage is: 20.553" - set "lensHOffsetPercentage" to 20.553.
    ;
    ; To enable the log output, set:
    ; debugOutputLevel = 2
    ; debugOutputSource = 32768
    enableLensOffsetTuneUpMode = 0


    ----- Recommended tweaks -----
    - In order to avoid culling issues (cars, buildings disappearing), edit defviews.cam
    LocalCam=COCKPIT
    {
    Fov=(160.000000, 62.00000)
    Raise value of 62 until culling issues disappear. (Running 110 here) .

    - In order to avoid camera clipping/cutting out of a car, decrease:
    ClipPlanes=(0.17500, 500.000000)
    Keep it as high as you can tolerate visually.

    - The usual GTR2 AA settings still apply in VR. So, if jagged white lines irritate you, consider using NVInspector AA settings:
    Antialiasing - Mode – Enhance the application setting
    Antialiasing – Setting – 4x Multisampling
    Antialiasing – Transparency Supersampling – 4x Sparse Grid Supersampling

    And don’t forget to crank SteamVR SS setting waaaaay up!
    - Shadows is what kills CPU in GTR2. So, whenever you need to raise the FPS, lower shadows to High or Medium.


    ----- Note on performance -----
    VR rendering in GTR2 is very sensitive to how well optimized the content is. Some content will run great, and some won’t. The only way to address this today is via content optimizations.

    ----- Missing driver hands in stock content -----
    Some stock content has issues rendering driver hands at high FOV of VR. This is fixed in HQ Anniversary patch. HQ Anniversary patch is very well optimized and is highly recommended for playing the stock content.

    ==============================
    = Rule Changes
    ==============================

    Rule changing options are pretty straightforward, so listing them below as they are in the .ini file.


    ; Disable automatic speed limiter engagement on pit lane entry/exit.
    rulesDisableAutomaticSpeedLimiter = 0

    ; Enable pit lane speed limit detection in all sessions (not only the Race session).
    ; To serve penalty in non-race session, return to the pits.
    rulesEnablePitLaneSpeedLimitInAllSessions = 0

    ; Activate speed limiter in the garage stall. Only applies to vehicles with limiter available
    ; and tracks with speed limit below 200km/h.
    rulesActivateSpeedLimiterOnGarageExit = 0

    ==============================
    = Additional Features
    ==============================


    ----- Set CPU Affinity from the CC plugin -----
    ; 0 do notning. Otherwise:
    ; 0xF - four CPUs (2core CPU with HT on)
    ; 0xFF - eight CPUs (4core CPU with HT on)
    ; 0xFFF - twelve CPUs (6core CPU with HT on)
    ; 0xFFFF - sixteen CPUs (8core CPU with HT on)
    ; 0xFFFFF - twenty CPUs (10core CPU with HT on)
    changeProcessAffinity=0xF


    ----- Changeable weather patch -----
    Applies changeable weather patch for the Race sessions. Based on finding by Jstn (thanks!). To enable, set the in-game race session weather to “Changeable” and set applyChangeableWeatherPatch = 1.

    ----- Disable writing to MyDocuments -----
    While working on the weather patch I noticed that game is not consistent in where it writes/reads files to/from. To avoid further surprises, I decided to add a feature to disable writing to MyDocuments. This is also helpful in preventing conflicts between the multiple game drops. Important: this feature requires CC d3d9.dll.

    disableMyDocumentsProfile setting set to 1 disables profile writing to "MyDocuments\GTR 2" and writes all files into the GTR2 drop folder. If you enable this feature, going forward make sure to run GTR2Config.exe as an Administrator.

    ----- Synchronize steering wheel animation to a physical wheel rotation -----
    GTR2 has steering wheel animation limited to 240 degrees lock to lock. Unless your real steering wheel has 240 lock to lock rotation, animation will not match the physical wheel rotation.

    scaleDriverAnimationToPhysicalDegrees setting is intended to improve this experience slightly by allowing you to specify your physical wheel lock to lock degrees and synchronizing in-game animation to that value. Set this value to match your wheel lock to lock degrees (for example, 540 or 900).

    Note that since GTR2 driver animation is limited to 240 degrees, animation will stop at +-120 degrees.
    Note 2: make sure Speed Sensitive Steering="0.00000" is off in the .plr file.

    ----- VR Lens flare effect adjustment -----
    Lens flare effect does not render correctly, and if you seek perfection turn it off in the .plr, since as of today I don’t yet understand how to fix it completely.

    However, I quite like this effect. I find it to add a life like experience of sun complicating the driving, and SimBin/Blimey did a great job of making it look quite realistic. So, I came up with a tweak that makes it look good enough in VR.

    lensHOffsetPercentage setting improves the lens flare effect rendering by moving the lens flare images closer to the center of a vision (positive value) or further out (negative value). This avoids the double sun (Tatooine ) image.

    In order to find the right percentage you could try various values, or use enableLensOffsetTuneUpMode = 1. With tune up mode enabled and lens flare in the view, use the Numpad 4/Numpad 6 keys to move flare effect until suns visually merge. Close the game and check USERDATA\Log\CC_DebugOutput.txt for the last used offset percentage. You should see a message similar to:
    "Lens flare horizontal offset percentage is: 20.553". To use that value set lensHOffsetPercentage to 20.553 and you are done.

    Note: logging is disabled by default. To enable the log output, set:
    debugOutputLevel = 2
    debugOutputSource = 32768

    The offset percentage you will need will depend on your HMD’s aspect ratio and whether its panels are canted or not. Known suggested values:

    * Pimax 5K/8K, large FOV, native mode, lens flare looks best at around ~20.0
    * Valve Index: 9.7


    ==============================
    =
    Credits and Thanks
    ==============================

    First of all I got say a big Thank You to everyone who worked on GTR2 itself. It is truly impressive how GTR2 is still one of the most feature complete circuit racing games available. The game renders in VR resolutions, huge FOV and unusual aspect ratios, pretty much without major issues. Considering that resolutions in VR are 5-10 times higher than what we ran in 2006, it is very impressive work. And, all that without compromises – 60 car grid, 24hrs cycle, with dynamic weather – all works!

    GTR233 – fixing HQ content to render correctly at high FOV of the VR HMDs. And answering my never ending questions
    Risa2000 and ZNix – 3D Math and DX discussions
    Bjarne Hansen – for helping me to understand AIWs and creating track mappings for GTR2 tracks
    Jstn – for figuring out how to force variable weather
    mr_belowski – for his friendship, support, testing and creating the Crew Chief
    The Menace – for his help testing
    All the modders - for keeping GTR2 awesome!
    IP

  2. #2
    Crew Chief Mega Corp CEO mr_belowski's Avatar
    Join Date
    Feb 2017
    Posts
    1,722
    Just to add my thanks and appreciation for this, working with you guys makes me feel like a total fraud as I sit back and watch you create stuff that, to me at least, is entirely indistinguishable from magic


    Can I also add that I get a much better VR experience in GTR2 if I set "world movement" to 0 in-game (this is with a Valve Index)
    IP

  3. #3
    Update: CC 4.15.0.3/Plugin 1.0.2.0

    Plugin now generates CrewChief.ini if one doesn't exist. Also, plugin will add new options/remove deprecated ones automatically.
    IP

  4. #4
    Update: CC 4.15.0.5/Plugin 1.1.1.0

    Important: for VR use, make sure to update both CrewChief.dll and d3d9.dll.

    * Fixed rain reflections. Note: rain reflections rendering is not perfect, mostly due to the fact that they were not meant for VR resolutions and aspect ratios. If you find imperfections distracting, use "disableVRRainReflections" to turn rain reflections off.
    * Fix textures missing under some external camera situations.
    * Fix sky rendering corruption on some tracks around ~7pm.
    * Improve tracking and stereo projection rendering.
    * Fix driving school UI messages. This also allows using HUD in VR. See "VR Configuration" for UI configuration parameters.
    * Improve Oculus HMD rendering.

    Special thanks go to:
    * Sparten for contributing his tracking/stereo math improvements and HUD rendering method from AMS.
    * mr_belowski - finding and fixing bug that caused wrong rendering on Oculus HMDs.
    * GTR233 for his hard work fixing driver hands disappearing in HQ content. Thanks to his support we can all enjoy Driving School in VR.
    * Seven Smiles - a lot of testing.
    IP

  5. #5
    Update: CC 4.15.1.0/Plugin 1.1.11.0

    Important: for VR use or if you want to utilize MyDocuments disabling feature, make sure to update both CrewChief.dll and d3d9.dll.

    CC:
    * Improve rolling start position messages.
    * Improve Championship lap vs time race detection.

    VR:
    * Improve VR rendering loop. Improved performance and fixed shutdown crashes.
    * Add feature to allow lens flare position adjustments (lensHOffsetPercentage setting).

    Game fixes:
    * Add feature to allow steering wheel animation scaling (scaleDriverAnimationToPhysicalDegrees setting).
    * Implement random weather patch (applyChangeableWeatherPatch setting).
    * Add feature to disable writing to Documents (disableMyDocumentsProfile setting).

    See "Additional Features" section in the main post for a more detailed explanations of the new features.
    IP

  6. #6
    Update: CC 4.15.1.2/Plugin 1.1.16.0

    Both d3d9.dll (if you'd like to use VR video mode enumeration) and CrewChief.dll need updating.

    VR:
    * Improve mouse scaling and use GTR2 mouse icons in VR
    * Fix a bug where changeable weather patch won't get applied unless VR is enabled.


    Speed limiter behavior tweaks:

    ; Disable automatic speed limiter engagement on pit lane entry/exit.
    rulesDisableAutomaticSpeedLimiter = 1

    ; Enable pit lane speed limit detection in all sessions (not only the Race session).
    ; To serve penalty in non-race session, return to the pits.
    rulesEnablePitLaneSpeedLimitInAllSessions = 1

    ; Activate speed limiter in the garage stall. Only applies to vehicles with limiter available
    ; and tracks with speed limit below 200km/h.
    rulesActivateSpeedLimiterOnGarageExit = 1

    Note: currently, speed limit penalty is not enforced in non-race session (ie you won't get disqualified BUT Chief will keep nagging you). But I'll revisit that some day.


    Enhancements:
    * Add "enableDetailsPageIcons" setting which enables Championship and Driving School details page logos.
    * Add "useVRVideoModeEnumerationFor2DRendering" setting which eliminates the need to re-run GTR2Config.exe on enabling/disabling of VR. This setting may also be useful in fixing GTR2 startup crashes in Desktop mode. Requires CC d3d9.dll present.
    IP

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •