Tuesday, January 19, 2021

Raft

Hey, everyone. I wanted to share my first working fix, which ended up being Raft. Some fixes are imperfect, but overall the experience has been awesome and definitely what I needed this year. Feel free to put it on the HelixMod blog if you like it. Due to 2020, I haven't finished any other projects nor do I have any updates to provide for them. I also won't be around much until I know where things are going this year. Thanks for your guys' continued support in this forum and I hope you all have a great 2021. Enjoy!

https://www.mtbs3d.com/

by schwing

          



Instructions:

  • Download the fix here
  • Extract it to the game's folder (e.g. C:\Program Files (x86)\Steam\steamapps\common\Raft) using something like 7-Zip
  • Don't choose Hard Shadows, and use an FOV of 90
    • This game isn't that well optimized yet. Anything under Good makes a lot of objects like trees disappear for only a couple fps gained, and anything above Good loses up to 10fps. So I recommend playing on Good at this point (with everything checked if you want)
  • There are no hotkeys or further fix setup, so you're good to go!

Fixed:

  • Water-related halos
  • Shadows
  • Lighting (imperfect, usually at quest-specific places)
  • Pink fog at sunrise and blue moonlight (wrong at certain angles)
  • Crosshair-related items at dynamic depth
  • Main menu, loading screen, and journal at depth
  • Software mouse cursor at main menu or journal depth
  • Sleeping when it's daytime isn't a criminal to the eyes anymore

Known issues:

  • Effects-related:
    • Lighting is imperfect
      • Each location has its own lighting shader that I haven't been able to fully fix, so some viewing angles will cause clipping
    • The sun and moon glow and a pink fog at sunrise are imperfect at certain angles
      • It seems to be working straight on, but not from the side
    • Water near a shoreline that is lit by a torch will be at incorrect depth
      • I couldn't fix it without breaking a lot of lighting, so just don't look at it too much (it's just the edges)
    • If you sleep in a bed, any other beds in view will be mono and not have a shadow
      • This is intentional. It fixes excessively-high bed depth and a one-eye shadow on the pillow
      • This doesn't fix the hammock being hung. It looked weird in pancake mode anyway, so I decided not to fix it. You can go to Bed_Set_Is-Sleeping.hlsl and reduce the 72 by 18 or so until it looks better if you want
      • To disable this fix, go to d3dx.ini, search for [ShaderOverride_Bed_Restrict_Popout], remove or disable all three "run" statements, and hit F10 in-game if it's still running
  • General:
    • Resolutions other than my 1920x1080 would not trigger 3D in the borderless windowed mode I usually use. Exclusive mode for other resolutions was even worse
      • If this game doesn't look right in another resolution, then maybe the F7 hotkey in d3dx.ini will help, or just play at 1080p I guess
    • Dynamic crosshair depth tends to stick to the outlines of objects. It doesn't affect gameplay much
    • Inventory, pause, and death menus aren't stereoized
      • I found the inventory menu to be pretty overwhelming in depth, so it's all at screen depth
      • Someone can fix it if they want. I've provided a few "MENU_..." variables in d3dx.ini if you want to attempt stereoizing them
    • The mouse doesn't match the depth of the journal's bookmarks and clicked-on notes
      • The game's depth information doesn't include those (technically we could cut them out of the depth writing)

Game quirks:

  • Water looks like it's halving in either direction based on your viewing angle if you're high up enough or at a shoreline (observed at nighttime, but maybe situational)
    • I removed 3DMigoto and disabled stereo (pancake mode) to find that this is a game bug. Definitely better not to fix it since a game update would cause the fix to be a bug in itself
  • Grass plot grass disappears in either eye based on viewing angle
    • This is observable in pancake mode. I tried to fix it by making none of it disappear, but looking at sprites from such a weird angle still has just as much detriment to 3D. Just don't look at them too hard
  • This game was supposed to have fixes in v12.01 (5720064) that didn't make it, so you'll find a bug or two along your journey. World backups are saved for that reason in case you need them

Tips for playing:

  • Use Shift+click to swap an item between parts of your inventory or between that and storage. Much quicker, but it moves the entire stack
  • Use Cheat Engine to make repetitive tasks more fun in solo mode:
    • Attach it to the game
    • Go to Settings->Hotkeys and set up "Speedhack speed 1" to be a key where it's 10.0 with Stop on Release
      • I use this mainly to chop trees, but be careful that you don't aim at anything you don't want destroyed on your raft. You can also use it during navigation, but I recommend only doing it when you're physically controlling the ship to keep the game interesting
      • Don't use this when waves are rough and you're on ground level. You'll fall through the raft otherwise. Or take a risk; it happens randomly. Also, anything that can move on your ship may end up in the ocean occasionally even if you don't use this. Just do a headcount before taking off
  • If you're playing on Normal and want it to be harder without having to deal with permadeath, then you can use the Raft.ct file for disabling regenerative health:
    • Attach Cheat Engine to the game, and open Raft.CT (Ctrl+O)
    • Wait until you see "Loading Assets" at the loading screen or at gameplay to press F9, which will say "Activated"
    • Notes:
      • If you don't hear anything or this doesn't work, then this needs to be updated to match the latest game update
      • All the script does is skip a line of code for the player health regen and when sleeping. You don't need CE open until the next time you restart the game, but you'll have to repeat these steps again after you do
      • Afaik there isn't a mod like this around yet. If there is one by the time you read this, then use that instead (Nexus Mods, I guess)
      • 2021-01-19: fixed fall damage not occurring and doubled it to make higher heights more menacing and punish players
      • that take shortcuts down mountains
  • If you want to make the game even harder, you can disable item glow:
    • Go to d3dx.ini, go to [Constants], and set w1 to 0.0
    • Press F10 in-game if it's still running, and the items won't glow anymore
    • Notes:
      • Recommended for anyone who's beaten the game already. Otherwise you have to guess what's an item by pressing "Interact" a lot
      • This is partially tested. It at least removes glow from underwater items.

Notes for shaderfixers:

  • Unity version 2019 (2019.3.5f1)
  • Game version 12.01 (5720064)
  • Shader Model 4.0 (e.g. ps_4_0)
  • The fix is hardcoded aside from DHR's regexes
    • The ones I used were from DHR's Unity 2017 ini (Halo1, Lights1, and Shadows3)
  • The Research folder has all of my notes in older versions of the fix
  • Tested on Creative, a bit of exclusive fullscreen, and mostly the main game (Normal) in borderless windowed with all "Good" settings (everything checked too)
  • The water movement is controlled by a daytime domain shader and a nighttime one. Needed to perform a couple changes similar to the Lichdom: Battlemage fix by DSS (stereo, then unstereo wrapping around 2 lines). Another used for the yellow pond that has the boxes you jump on
  • Asmtool py is outdated for Unity 2019, so no auto fixes (e.g. no asset bundle extraction)
    • I tried an asset extraction tool, but I guess the output is in an unexpected format for asmtool
  • Use of a CustomShader to perform a single calculation for dynamic convergence instead of doing it for every vertex in a HUD vshader
    • One write to a UAV per frame, and used in every HUD shader applicable until the frame ends drawing before clearing the resource at post Present()
  • Use of a CustomShader to cut out depth of a bed to just a pillow and determine if it's close enough to consider being asleep to fix some issues related to high depth and a one-eye shadow on the pillow
    • One CustomShader to fake draw just the pillow on the game's current depth, another one to compare with the game's depth before the pillow to cut it out, and one more to determine if it's close enough to the player to consider them being asleep. Comment the three "run" lines to see the difference
  • Use of a CustomShader to clear resources in both eyes (the "clear" command always clears in one eye for me)
    • Normally this would be for drawing, but specifically for my fixes it ended up being float buffers (i.e. ps-u1)
  • Performance loss: 5fps to keep menus during gameplay mono, and I noticed the game uses a lot of CPU and GPU

Change log:

  • 2021-01-19: release v1.1
    • Fixed Raft.CT so that fall damage works again. I also doubled it so that high fall damage kills you instantly and smaller fall damage is likelier to kill you if you don't have at least half health. Makes high heights more menacing and punishes taking shortcuts down mountains
    • Added a hotkey to "Tips for Playing" for disabling item glow. Makes it harder to collect every single thing when the shark is around or you're exploring a quest island
  • 2021-01-13: release v1.0

Credits:

  • DSS, bo3b, Flugan, chiri, and the community: for 3Dmigoto, 3D fixes, and support from all of the people (like you!) who keep this place alive
  • DSS, DHR, Losti, and masterotaku:                  fixes derived from researching their fixes, some of DHR's Unity 2017 scripts work with this game 

3 comments:

  1. Thanks for your all of your contributions, schwing!!

    ReplyDelete
  2. Some question, why in 3D vision everything is so black ? Thks !

    ReplyDelete