Subnautica on Linux (via Wine)

brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
edited September 2015 in Subnautica General Discussion
Hello, since I'm not seeing much in the form of Linux discussion I'll start a thread here in an effort to aid others that would like to play this game on a non-Windows or -mac operating system.

I figured that if Stranded Deep worked 100% that Subnautica should as well. At least that assumption was made since Stranded uses Unity 4 (with a move to 5 in progress) that getting it to work wouldn't require any additional work. Well, I was kind of wrong. I'll document my progress in trying to find a working Wine configuration that will allow us non-traditional gamers play this awesome game. Keep in mind I've tried this with both the stable channel and the beta with identical results. If a working configuration is found I'll replace the body of this post with the instructions or point to the thread of somebody who does.
Current Workarounds
Some users show success in running Subnautica with running the program from the command line with the -force-opengl and -force-d3d9 flags:
wine Subnautica.exe -force-d3d9 -force-opengl
This works around wine's (currently) incomplete DirectX 10 implementation


Trial 1
Present state of my wine install is as follows:
  • Wine was compiled from the git repo and has a version string of "wine-1.7.34-110-gfd925d0"
  • Wine was compiled in the shared "WoW64" method as described at wiki.winehq.org/Wine64
  • Steam and friends are installed into a 32-bit prefix (I've got a 64-bit prefix as well) with the DirectX libraries installed via wientricks
And then the fun of starting the game after downloading:
  • Staring via steam results in nothing happening
  • Staring via terminal has mixed results:
    baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ env WINEPREFIX="/home/baorr/.wine32" wine Subnautica32.exe 
    preloader: Warning: failed to reserve range 00010000-00110000
    baorr@Monolith:/opt/SteamGam
    


    Trial 1
    Present state of my wine install is as follows:
    • Wine was compiled from the git repo and has a version string of "wine-1.7.34-110-gfd925d0"
    • Wine was compiled in the shared "WoW64" method as described at wiki.winehq.org/Wine64
    • Steam and friends are installed into a 32-bit prefix (I've got a 64-bit prefix as well) with the DirectX libraries installed via wientricks
    And then the fun of starting the game after downloading:
    • Staring via steam results in nothing happening
    • Staring via terminal has mixed results:
      baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ env WINEPREFIX="/home/baorr/.wine32" wine Subnautica32.exe 
      preloader: Warning: failed to reserve range 00010000-00110000
      baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ env WINEPREFIX="/home/baorr/.wine32" wine32 Subnautica32.exe 
      Starting wine in 32-bit mode...
      preloader: Warning: failed to reserve range 00010000-00110000
      baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$  wine32 Subnautica32.exe 
      Starting wine in 32-bit mode...
      preloader: Warning: failed to reserve range 00010000-00110000
      preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
      
    • 32-bit executable is no go, trying 64-bit:
      baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ wine Subnautica.exe 
      preloader: Warning: failed to reserve range 00010000-00110000
      preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
      fixme:heap:RtlSetHeapInformation 0x450000 0 0x33fce0 4 stub
      fixme:system:SetProcessDPIAware stub!
      fixme:heap:RtlSetHeapInformation 0x14f0000 0 0x33f160 4 stub
      Mono path[0] = 'Z:/opt/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Managed'
      Mono path[1] = 'Z:/opt/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Mono'
      Mono config path = 'Z:/opt/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Mono/etc'
      fixme:win:EnumDisplayDevicesW ((null),0,0x33f220,0x00000000), stub!
      fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x33f220,0x00000000), stub!
      fixme:win:EnumDisplayDevicesW ((null),1,0x33f220,0x00000000), stub!
      fixme:imm:ImmReleaseContext (0x20040, 0x140ba0): stub
      fixme:win:EnumDisplayDevicesW ((null),0,0x33f220,0x00000000), stub!
      fixme:d3d11:D3D11CreateDevice stub: adapter 0x143d50, driver_type D3D_DRIVER_TYPE_UNKNOWN, swrast (nil), flags 0x1, feature_levels 0x673990, levels 0x3, sdk_version 7, device 0x1410ad050, feature_level 0x33f930, context 0x1410acfe0
      fixme:win:EnumDisplayDevicesW ((null),0,0x33f2f0,0x00000000), stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8A8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B10G10R10A2_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G6R5_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5A1_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8A8_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B10G10R10A2_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G6R5_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5A1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
      fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
      fixme:win:EnumDisplayDevicesW ((null),0,0x33eb70,0x00000000), stub!
      fixme:dxgi:dxgi_output_GetDesc iface 0x149010, desc 0x33f1b0 stub!
      fixme:wbemprox:client_security_SetBlanket 0x7f586d52a7a0, 0x148ea0, 10, 0, (null), 3, 3, (nil), 0x00000000
      fixme:wbemprox:client_security_Release 0x7f586d52a7a0
      fixme:win:EnumDisplayDevicesW ((null),0,0x33e980,0x00000000), stub!
      fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
      fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
      fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
      fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
      fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
      fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
      fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
      fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
      fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
      fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
      fixme:d3d:debug_d3dformat Unrecognized 0x36314644 (as fourcc: DF16) WINED3DFORMAT!
      fixme:d3d:wined3d_get_format Can't find format unrecognized (0x36314644) in the format lookup table
      fixme:heap:RtlSetHeapInformation 0x46a0000 0 0x33da90 4 stub
      fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
      
    Huzzah!

    This gets me to the pre-start configuration dialog. I notice a few Direct3d implementation quirks with regards to the graphics format in the terminal. Continuing on I see the title menu with pre-rendered movie running fluidly in the background. Button presses are snappy and all of the functions work. Sound is fluid and unbroken as well.

    After the loading screen and the introduction we find ourselves in the escape pod:
    4tuv0iiifwn5.jpeg
    This is the point when things look ugly. Mind you the HUD and sound appear to be working normally. Here is another screenshot once you leave the confines of the pod:
    64282elapihr.jpeg

    So, to do for the next attempt for me is:
    • git pull the latest version of wine and compile
    • Create a completely vanilla install of steam (Thankfully I've had steam install the game to another "drive" so I won't need to download the 1.9Gb again!)
    • Install just the core amount of libraries to start the game.
    • Try disabling wine's GLSL implementation (Can't remember the page, but I believe it was in response to Natural Selection running via Wine)

    After doing the 'git pull' for wine I do see 2690 line changes for 'dlls/wined3d/glsl_shader.c' and other such graphic related files. So I'm hopeful. es/steamapps/common/Subnautica$ env WINEPREFIX="/home/baorr/.wine32" wine32 Subnautica32.exe
    Starting wine in 32-bit mode...
    preloader: Warning: failed to reserve range 00010000-00110000
    baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ wine32 Subnautica32.exe
    Starting wine in 32-bit mode...
    preloader: Warning: failed to reserve range 00010000-00110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    [/code]
  • 32-bit executable is no go, trying 64-bit:
    baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ wine Subnautica.exe 
    preloader: Warning: failed to reserve range 00010000-00110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    fixme:heap:RtlSetHeapInformation 0x450000 0 0x33fce0 4 stub
    fixme:system:SetProcessDPIAware stub!
    fixme:heap:RtlSetHeapInformation 0x14f0000 0 0x33f160 4 stub
    Mono path[0] = 'Z:/opt/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Managed'
    Mono path[1] = 'Z:/opt/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Mono'
    Mono config path = 'Z:/opt/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Mono/etc'
    fixme:win:EnumDisplayDevicesW ((null),0,0x33f220,0x00000000), stub!
    fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x33f220,0x00000000), stub!
    fixme:win:EnumDisplayDevicesW ((null),1,0x33f220,0x00000000), stub!
    fixme:imm:ImmReleaseContext (0x20040, 0x140ba0): stub
    fixme:win:EnumDisplayDevicesW ((null),0,0x33f220,0x00000000), stub!
    fixme:d3d11:D3D11CreateDevice stub: adapter 0x143d50, driver_type D3D_DRIVER_TYPE_UNKNOWN, swrast (nil), flags 0x1, feature_levels 0x673990, levels 0x3, sdk_version 7, device 0x1410ad050, feature_level 0x33f930, context 0x1410acfe0
    fixme:win:EnumDisplayDevicesW ((null),0,0x33f2f0,0x00000000), stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8A8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B10G10R10A2_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G6R5_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5A1_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8A8_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B10G10R10A2_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G6R5_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5A1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
    fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1525f0, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
    fixme:win:EnumDisplayDevicesW ((null),0,0x33eb70,0x00000000), stub!
    fixme:dxgi:dxgi_output_GetDesc iface 0x149010, desc 0x33f1b0 stub!
    fixme:wbemprox:client_security_SetBlanket 0x7f586d52a7a0, 0x148ea0, 10, 0, (null), 3, 3, (nil), 0x00000000
    fixme:wbemprox:client_security_Release 0x7f586d52a7a0
    fixme:win:EnumDisplayDevicesW ((null),0,0x33e980,0x00000000), stub!
    fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
    fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
    fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
    fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
    fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
    fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
    fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
    fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
    fixme:d3d:debug_d3dformat Unrecognized 0xffffffff WINED3DFORMAT!
    fixme:d3d:wined3d_get_format Can't find format unrecognized (0xffffffff) in the format lookup table
    fixme:d3d:debug_d3dformat Unrecognized 0x36314644 (as fourcc: DF16) WINED3DFORMAT!
    fixme:d3d:wined3d_get_format Can't find format unrecognized (0x36314644) in the format lookup table
    fixme:heap:RtlSetHeapInformation 0x46a0000 0 0x33da90 4 stub
    fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
    
Huzzah!

This gets me to the pre-start configuration dialog. I notice a few Direct3d implementation quirks with regards to the graphics format in the terminal. Continuing on I see the title menu with pre-rendered movie running fluidly in the background. Button presses are snappy and all of the functions work. Sound is fluid and unbroken as well.

After the loading screen and the introduction we find ourselves in the escape pod:
4tuv0iiifwn5.jpeg
This is the point when things look ugly. Mind you the HUD and sound appear to be working normally. Here is another screenshot once you leave the confines of the pod:
64282elapihr.jpeg

So, to do for the next attempt for me is:
  • git pull the latest version of wine and compile
  • Create a completely vanilla install of steam (Thankfully I've had steam install the game to another "drive" so I won't need to download the 1.9Gb again!)
  • Install just the core amount of libraries to start the game.
  • Try disabling wine's GLSL implementation (Can't remember the page, but I believe it was in response to Natural Selection running via Wine)

After doing the 'git pull' for wine I do see 2690 line changes for 'dlls/wined3d/glsl_shader.c' and other such graphic related files. So I'm hopeful.
«1

Comments

  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    edited June 2015
    What FPS are you getting (and with what hardware)?

    P.S. The OSX version does have native OpenGL implementation. I'm wondering if it might be possible for you to enable that in Windows (wine).
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    edited June 2015
    Inconsistent. A lot of times it "feels" like 60 others it seems to chug and then others at least 30.

    My specs are sub-recommended:
    • Intel Core 2 Quad Q9400 @ 2.66 GHz
    • 4GB Ram/2GB swap partitions split between 4 drives
    • GeForce GTX 480
    • 1920x1200 "Recommended" graphics settings

    Unfortunately, I can't get you any empirical data. Can't seem to find the option for displaying the fps (or that portion of the screen draw loop is broken) Found a way to plot a graph on the screen:
    bqsv5vl4de2n.jpeg
    As you can see from the green overlayed plot. It has a sawtooth appearance where it drops and the raises back up with a period of about a second or longer. Also that dialog is missing its text. I just randomly pressed number keys until they did something :tongue:

    Comparison to the aforementioned Stranded Deep is 1920x1200 "Ultra" graphics setting gets ~35 fps

    Racer1: No doubtedly the devs will use that portion if/when they port to Linux. I don't see why they wouldn't as Valve's SteamOS is Linux :)
    Unfortunately with the Windows build it was compiled against DirectX(11?) so it doesn't have any calls to the OpenGL state machine (aside from what DirectX may make). Also unfortunately, the Wine developers are still working on getting DirectX 11 support solid. I believe version 9 is pretty well supported but there are some road blocks to overcome in 10+

    I'll be compiling the latest from git tomorrow and testing later.
  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    There are Subnautica command line options to force:
    Direct 3D 9: -force-d3d9
    Or OpenGL: -force-opengl

    I don't know if the OpenGL one works, but I have heard people successfully run in Direct 3D 9.
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    Thanks for the command line options. Unfortunately -force-opengl didn't work:
    baorr@Monolith:/opt/SteamGames/steamapps/common/Subnautica$ env WINEPREFIX="/home/baorr/.wine" wine Subnautica.exe -force-opengl
    preloader: Warning: failed to reserve range 00010000-00110000
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    fixme:system:SetProcessDPIAware stub!
    Mono path[0] = 'F:/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Managed'
    Mono path[1] = 'F:/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Mono'
    Mono config path = 'F:/SteamGames/steamapps/common/Subnautica/Subnautica_Data/Mono/etc'
    fixme:win:EnumDisplayDevicesW ((null),0,0x33f220,0x00000000), stub!
    fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x33f220,0x00000000), stub!
    fixme:win:EnumDisplayDevicesW ((null),1,0x33f220,0x00000000), stub!
    fixme:imm:ImmReleaseContext (0x501c2, 0x140bc0): stub
    fixme:win:EnumDisplayDevicesW ((null),0,0x33f270,0x00000000), stub!
    fixme:win:EnumDisplayDevicesW ((null),0,0x33ef80,0x00000000), stub!
    fixme:dxgi:dxgi_output_GetDesc iface 0x154890, desc 0x33f5c0 stub!
    fixme:wbemprox:client_security_SetBlanket 0x7f4a5c4267a0, 0x14cea0, 10, 0, (null), 3, 3, (nil), 0x00000000
    fixme:wbemprox:client_security_Release 0x7f4a5c4267a0
    fixme:win:EnumDisplayDevicesW ((null),0,0x33ed90,0x00000000), stub!
    fixme:heap:RtlSetHeapInformation 0xc7d0000 0 0x33da90 4 stub
    fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
    fixme:win:RegisterDeviceNotificationW (hwnd=0x901da, filter=0x33e870,flags=0x00000004) returns a fake device notification handle!
    fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
    err:wgl:glxdrv_wglShareLists Could not share display lists, one of the contexts has been current already !
    err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
    err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
    err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
    wine: Unhandled page fault on read access to 0x00000008 at address 0x7f4a6791b975 (thread 0082), starting debugger...
    preloader: Warning: failed to reserve range 0000000000010000-0000000000110000
    
    Additionally the backtrace is as follows pastebin.com/qSvf3sHs

    Unfortunately, the -force-d3d9 flag has the same results as running without any options, here at least. But we'll see after recompiling wine today.
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    Well, updated wine on git (now wine --version reports "wine-1.7.46") to no avail. So that tells me that it might be the environment. Next step is to create a completely empty 64-bit prefix and start adding libraries until it starts. Then go from there...perhaps when (if?) I can get it running through wine a native linux version will be release into the wild :tongue:
  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    I just confirmed that running SN with -force-opengl command line option works in Windows.
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    Then there must be some other issue as I think forwarding OpenGL calls would be 1:1.
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    Simply an update. Git pulled yesterday (2015/08/01) and recompiled and updated Subnautica to the latest "experimental" branch on Steam. Still the same issues to report.
    -force-opengl is causing the game to freeze as well.
  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    On Sept 9, someone marked -force-opengl as "Complete" in trello - which I presume is part of the stable "Seamoth" release, but am not sure. This may mean that the opengl mode could work better now in Linux.
  • WylieKWylieK Dallas, TX, USA Join Date: 2015-09-13 Member: 207927Members
    edited September 2015
    I've been playing Subnautica on my HP Pavilion g6 series ATi Mobility Radeon HD 4250 with Ubuntu Wily 15.10 from a live USB with wine-staging 1.7.51 adding the path to the exe game in the terminal with the command ...$
    wine subnautica.exe -force-d3d9 -force-opengl Got rid of the " white glare" with a great picture.

    ... a little laggy... but that is to be expected with sub-recommend legacy GPU with Ubuntu 15.10 the video driver is
    Gallium 0.4 on AMD RS880
  • WylieKWylieK Dallas, TX, USA Join Date: 2015-09-13 Member: 207927Members
    Ubuntu terminal CLI command-Line-Interface....

    ubuntu@ubuntu:/media/ubuntu/2CA8F999A8F961AE/Program Files (x86)
    /Steam/steamapps/common/Subnautica$ wine subnautica.exe -force-d3d9 -force-opengl

    Tip: using Natilus (File Browser) navigate to the folder of Subnautica.exe right-click on the folder ie Subnautica
    and select Open in Terminal
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    Tested it on mine. -force-opengl causes a white window on mine. Although my wine is 1.7.49. I'll do an update and try again. Good to hear of success running it though!
  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    @WylieK
    - Do you mind posting a few screenshots of wine Subnautica?
    - Did you determine that it takes using both options for it to work: -force-d3d9 -force-opengl
  • WylieKWylieK Dallas, TX, USA Join Date: 2015-09-13 Member: 207927Members
    Well... shucks!! After their update that started the Minimum Requirements/Dismiss page
    the fore-mentioned launch options no longer work in Linux.... but I still can play it in Windows 7 Home Premium
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    I went ahead and got Subnautica for an "after-Christmas" present for myself via Steam.

    ...wish I had read this post first. :s

    My system Specs
    • OS: Kubuntu Xenial (16.04 Development)
    • wine: 1.9.0 (Staging)
    • CPU: 4 Core AMD Phenom II
    • RAM: 8GB ram
    • Video: nVidia GeForce GTX 960 352.63
    • Resolution: 1280x1024

    Running the experimental build I get a solid white screen but can hear sound fine when using:
    wine Subnautica.exe -force-d3d9 -force-opengl
    
    or
    wine Subnautica.exe -force-d3d9
    

    running normal build I get the solid white screen with sound when using:
    wine Subnautica.exe -force-d3d9 -force-opengl
    


    ...but
    wine Subnautica.exe -force-d3d9
    
    gives me the normal game interface until I can actually move, at which time the screen is super-saturated white, with weird stretch elements at the top and side as shown in the OP spoiler screenshots.

    Any tips would be great at this point...
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    edited January 2016
    WylieK wrote: »
    Well... shucks!! After their update that started the Minimum Requirements/Dismiss page
    the fore-mentioned launch options no longer work in Linux.... but I still can play it in Windows 7 Home Premium

    I wouldn't think that would matter as the -force-d3d9 and -force-opengl are part of unity's player's command line arguments: http://docs.unity3d.com/Manual/CommandLineArguments.html

    That said it could most likely do with a shader not compiling in a way compatible for wine's d3d9 libraries.
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    An addendum: I also tried -force-d3d9-ref, -force-glcore, -force-glcore33 through --force-glcore45, and using the -force-clamped with the -force-glcoreXY. In the case of any of the -force-glcore options it rendered the menu screen in magenta with the 4 main options visible.
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    Another question.... it seems to me the HUD is rather low resolution sized. at 1280 x 1024 the interface is very crowded.
    cbwvs1f13aj0.png

    is there any way to scale these elements or is this the way they are supposed to look at that resolution?
  • brendan_orrbrendan_orr United States Join Date: 2015-06-24 Member: 205753Members
    edited January 2016
    You should be greeted with a resolution selection dialog before the game actually loads. From there you can choose the graphics quality, resolution, and input settings. For me it comes up automatically after I run "wine64 subnautica.exe"

    Now, about your prior post. You shouldn't give up hope. There have been reports of it working with the two flags without the white wash or offset screen. I found enough data yet (which kind of graphics card, driver, libraries, etc)
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    Brendan, I double checked the resoultion dialog and 1280x1024 is the highest it goes, and when I select it I get the intro screen that looks like the screenshot above.

    Also I noticed that while Wine thinks I have a GeForce GTX 470, I actually have a GeForce GTX 960 (It came with Witcher 3... but that's a completely different gripe.) could this be in any way responsible for the gliches? I attempted setting the VendorID and DeviceID in the registery, but both Steam and Subnautica still showed the GeForce GTX 470.

    Again, I'm running the Staging version of Wine with a 64 bit instance.

    Thanks for the consideration!
  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    You can override the resolution from the command line, e.g.:
    */Subnautica.exe -screen-height 1080 -screen-width 1920

    You can also update the resolution in the configuration file as well.
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    edited January 2016
    Dang it... I tried
    -force-d3d9 -screen-height 1024 -screen-width 3840
    
    (for my triple screen set up)

    and it popped up this:
    gkik3z7n36fb.png

    Changing it to this:
    -force-d3d9 -screen-height 1024 -screen-width 1280
    
    gives the same dialog where I can pick the resolution, but selecting 1280 x 1024 gives the same huge elements from the pic before.
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    An addendum: I also tried -force-d3d9-ref, -force-glcore, -force-glcore33 through --force-glcore45, and using the -force-clamped with the -force-glcoreXY. In the case of any of the -force-glcore options it rendered the menu screen in magenta with the 4 main options visible.

    I found this on the Unity3D forum...
    [-force-opengl][5.2] Cant load shaders
    Well Apparently since Unity 5.2 OpenGL isn't supported by default.

    For those who have the same issue, to change that :
    • Go to Player Settings
    • Uncheck Auto Graphics API for Windows (or for Linux)
    • Then Add OpenGL 2, or GLCore (OpenGL 2 for -force-opengl and GLCore for -force-glcore)

    And there you go.

    But i still think it should have remained by default.
  • SporkWitchSporkWitch Rochester, NY, USA Join Date: 2016-01-11 Member: 211254Members
    Honestly, it's a Unity game, they should just be building a linux client to start with. It doesn't look like they're using anything windows/msft-specific (no vcredist or other install notice when launching the game for the first time after install, which games that use them do), so it should be trivial (not push-button, but damnably close.) They're already supporting Mac, and that in itself tells me that the level of work required is as near to zero as you can get.
  • Racer1Racer1 Join Date: 2002-11-22 Member: 9615Members
    I believe UWE is focusing all their efforts on content right now - and it doesn't make sense for them to commit to supporting yet another environment while everything is in such a state of flux. UWE was bit in the past specifically by supporting Linux too early on another one of their games, and I think they don't want to repeat the same mistake.

    I haven't seen any official announcement, but I expect UWE to release an official Linux version around the time Subnautica leaves EA.
  • SporkWitchSporkWitch Rochester, NY, USA Join Date: 2016-01-11 Member: 211254Members
    edited January 2016
    [please delete me and add a delete button for own posts]
  • SporkWitchSporkWitch Rochester, NY, USA Join Date: 2016-01-11 Member: 211254Members
    Racer1 wrote: »
    I believe UWE is focusing all their efforts on content right now - and it doesn't make sense for them to commit to supporting yet another environment while everything is in such a state of flux. UWE was bit in the past specifically by supporting Linux too early on another one of their games, and I think they don't want to repeat the same mistake.

    I haven't seen any official announcement, but I expect UWE to release an official Linux version around the time Subnautica leaves EA.

    Thing is, usually it's lack of early support that tends to bite you. Yeah, it's a small amount of extra work as you're going along, but it's a LOT easier than having the whole, finished product to have to go back over and track down issues in. The sooner it's dealt with, the easier it is to deal with, both initially and going forward.
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    RE: the pink/purple/magenta screen issue:

    It seems to be tied to -force-d3d9 in these existing bug reports:
    ...not that that helps greatly.
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    Pink water was fixed https://trello.com/c/whiSZFJT/1905-26879-pink-water-with-force-d3d9

    26895 2016-01-12 05:20:16 Max McGuire Fixed pink shader underwater on D3D9

    You can use -force-d3d9 again :)

    I assume this means in Experimental because there isn't a main update yet.... will report back.
  • Sigil_ThaneSigil_Thane Oklahoma, USA Join Date: 2016-01-03 Member: 210855Members
    edited January 2016
    OK, on Experimental (version 27078, build date 01/13/2016 4:52:55 PM)
    • -force-d3d9 Main Menu looks nice, the translucent fog and stretch marks at the top and right remain in game ..... Swimming underwater changes from fog to solid white.
    • -force-d3d9 -force-opengl Main menu is solid White, in game is solid white and audio stutters.
    • -force-d3d9 -force-glcore Main menu is solid magenta with white letters, in game is solid magenta with white letters.
    • -force-d3d9 -force-glcore45 Main menu is solid magenta with white letters, in game is solid magenta with white letters.

Sign In or Register to comment.