Mac OSX Wineskin Attempts?

Discussion in 'General Discussion' started by Soshta, Feb 27, 2016.

  1. DukeOfRiven

    DukeOfRiven Giant Laser Beams

    Well if winecfg isn;t coming up, you don't have wine fully installed on your Mac. Here's a good primer: http://www.davidbaumgold.com/tutorials/wine-mac/
     
    • Soshta

      Soshta Intergalactic Tourist

      I'm at a stand still because I have such little room left on my 128GB SSD. So until I can get Xcode I am frozen. This is all getting to be too much. I think I'll just hang back until someone else can figure this out. It's been non-stop frustration.
       
      • MonokelPinguin

        MonokelPinguin Space Spelunker

        Okay, I slept long enough.
        The no such command errors come up, because bash can't find the wine executable. This can be either because you haven't installed it or because it is not in your PATH variable, where bash looks for executables. I'm guessing, wine is simply not installed. Note that installing wineskins is not the same as a wine installation. It installs wine into a special directory only for its use. Until we get a working solution, it is probably easier to install wine directly or simply wait.

        Now on to the render issue. OSX only supports OpenGL 2.1 in compatibility profile. It supports newer versions in core profile, but in core profile some actions aren't allowed anymore. That's why you get the GL_Invalid_enum errors.
        Wine needs OpenGL to implement direct3d, which most windows applications use to draw to the screen. Newer direct3d versions also need newer OpenGL versions.

        We used the registry key to switch to the core profile, but core profile support in wine is still experimental, which is the reason it does some things it isn't allowed to.

        This means we either have to wait for wine developers to fix core profile or ask the SV developer to lower the requirement in XNA from HighDef to Reach. Afair there were some patches on the wine mailinglist in January, so maybe 1.9.4 works better?

        Also the gdi option can also be set in the registry. You can easuly change it back there, but I don't expect it to matter as it should only change the way 2d drawing is executed, while SV uses 3d drawing.
         
        • MonokelPinguin

          MonokelPinguin Space Spelunker

          Why would you need Xcode? You can just install a package from https://wiki.winehq.org/MacOSX or did I miss something. Also 128 GB is plenty! I have Windows and Linux installed on my 128 GB SSD, so I have halve the space on either system! ;-D
          But I can understand, that you want to take a break. I actually don't think, we can solve the , unless someone writes proper OpenGL drivers for OSX, fixes the core profile in wine or Stardew Valley doesn't require the HighDef profile anymore.
          If it is really just the few errors from the last page, reporting that as a bug in the wine bugtracker would probably be the fastest solution. But first we have to check, that this is still an issue in wine 1.9.4.
           
          • MonokelPinguin

            MonokelPinguin Space Spelunker

            Oh, and about the problems with the GOG version:
            It should be exactly the same as the steam version. If you get the FarmerSounds not found error, you have to first change to the directory, where the "Stardew Valley.exe" is, somwhere in "drive_c/GOG something" in your wineprefix directory. Then execute the game. You have to do that, because the game looks for its assets in the current directory, so it doesn't find them, if the current directory is not the game directory.
             
            • DukeOfRiven

              DukeOfRiven Giant Laser Beams

              So ?f we werte to post about this on the WineHQ forum, what is the exact phrasing we should use about this? I already posted there once, but I didn't express myself well, so my question kind of got ignored.

              Is it possible to upgrade to 1.9.4 and then revert if it doesn't go well? What would be the terminal commands for that?
               
              • DukeOfRiven

                DukeOfRiven Giant Laser Beams

                I asked the dev, and he said "Reach doesn't support multiple render targets, which I use for the lighting system. I'd have to redo the lighting," so that's not happening.
                 
                • MonokelPinguin

                  MonokelPinguin Space Spelunker

                  You should probably post that to the bugtracker. Describe your platform (Operating system, hardware, wine version). Describe the steps to setup the wine prefix (install dotnet40, xna40, and set maxglversion registry key). Describe the expected behaviour, running the game and describe what happens now with the wine output. Then provide further information, in this case we expect it at first didn't work, because wine on the compatibility profile of opengl, that OSX support, which provides only Opengl 2.1, is not enough for the xna HighDef profile, that the game needs. Setting maxglversion to 3002 fixes this, so the game does launch and atleast sound is okay, but the graphics don't work. Wine outputs a few GL_INVALID_ENUM and GL_INVALID_OPERATION, which probably are related to using a Core Profile and wine using opengl in ways only allowed in Compatibility contexts, most notable glLightModeli and glTexEnvf.
                  That should be about it, but the may ask for further information.

                  About up and downgrading wine, that depends how you installed it, but generally that shouldn't be a problem. If you have installed wine through a package, you would look for a newer version. If you used wineskin, I think you can switch version somewhere in the settings?

                  And that we can't have a Reach profile version is to bad... But maybe we can get a native version instead or fix up wine ^⁻^
                   
                  • alphahouse

                    alphahouse Seal Broken

                    Cheers for the effort in this thread, it's nice to see. I'm also hoping for a way to play this on OS X.
                     
                      Spiffiey likes this.
                    • DukeOfRiven

                      DukeOfRiven Giant Laser Beams

                      My bug-report has officially been labelled as a duplicate of another know bug: https://bugs.winehq.org/show_bug.cgi?id=36789

                      A guy as far back as 2014 said "If I modify directx.c to put D3DPBLENDCAPS_SRCALPHASAT into DestBlendCaps all the time, instead of just when gl_info->supported[ARB_BLEND_FUNC_EXTENDED], then the game starts and runs fine. But I can't say whether thats a good idea or not." but A) No one ever said whether or not that was a good idea, and :cool: I don't know how to do that, so... anyone want to take a stab?
                       
                        MonokelPinguin likes this.
                      • MonokelPinguin

                        MonokelPinguin Space Spelunker

                        Well, I would try it, if I had a mac device. If anyone wants to try it, I'll provide him with as much support as I can. Basically the bug report talks about changing line 5027 in https://github.com/wine-mirror/wine/blob/master/dlls/wined3d/directx.c from
                        Code:
                                                   WINED3DPBLENDCAPS_ZERO;
                        
                            if (gl_info->supported[ARB_BLEND_FUNC_EXTENDED])
                                caps->DestBlendCaps |= WINED3DPBLENDCAPS_SRCALPHASAT;
                        
                            if (gl_info->supported[EXT_BLEND_COLOR])
                            {
                        to
                        Code:
                                                   WINED3DPBLENDCAPS_ZERO;
                        
                        
                        caps->DestBlendCaps |= WINED3DPBLENDCAPS_SRCALPHASAT;
                        
                            if (gl_info->supported[EXT_BLEND_COLOR])
                            {
                        To do that, you'll have to build wine from source: https://wiki.winehq.org/MacOSX/Building#Building_from_Source
                        That however isn't easy. It would be a no-brainer for me, I do such things at work and at home everyday, but for someone, who never touched programming, this can be a daunting task.

                        What it does:
                        It removes wines checking, if certain direct3d functions can be supported on the opengl context. That way wine believes, it can provide everything xna needs for the HiDef profile and xna now believes the hardware supports the HiDef profile. This isn't technically correct, because a certain edge case can't be emulated. If the application (in this case SV) uses that functionality, it can lead to graphics corruption and in the worst case even crashes. But if it doesn't even use that functionality, it won't even notice. It's worth a shot, but I'd suggest to not overwrite the local wine installation. How to do that: https://wiki.winehq.org/FAQ#Can_I_install_more_than_one_Wine_version_on_my_system.3F Easiest way is to simply not install wine and run it from the build directory.
                        Also thanks for making the bug report!
                         
                        • huecester

                          huecester Scruffy Nerf-Herder

                          I'm all up for giving it a go. I don't have much experience compiling but I'm not afraid of it either. I've been following the development from the sidelines and trying to get it to work myself so I'm too invested to give up now!
                           
                            MonokelPinguin and alphahouse like this.
                          • haxd

                            haxd Space Hobo

                            I'm giving this a go, wish me luck!
                             
                              MonokelPinguin and alphahouse like this.
                            • MonokelPinguin

                              MonokelPinguin Space Spelunker

                              Good luck, to both of you. Remember that you don't have to set maxglversion in the registry, if you compiled it with that line changed.
                               
                              • huecester

                                huecester Scruffy Nerf-Herder

                                Thanks. I've managed to build Wine into a separate directory (wine-build) though I cannot find the directx.c in the build directory. Am I missing dependencies? I installed dependencies using Homebrew:
                                Code:
                                brew install --only-dependencies --devel wine
                                
                                Is this not sufficient?
                                 
                                • sebrius

                                  sebrius Aquatic Astronaut

                                  Thank you so much guys for trying to get this game to work with wine!!

                                  Last time i wasted days on it with Magicka and swore to never ever try it again
                                   
                                  • animaster

                                    animaster Seal Broken

                                    Hi there, I purchased Stardew Valley from GOG today and expect to play it on my Mac using Wineskin Winery.

                                    Before I ran the setup exe, I try to install the dotnet40 and xna40. Afterwards, I started the setup installer.

                                    [​IMG]

                                    At the end of the installation, it told me that I have already installed XNA 4.0 Framework, so I click "Finish" and then some errors about global var pops up.

                                    And then I tried to run the game ...

                                    [​IMG]

                                    Still stuck on this one. :(
                                     
                                    • MonokelPinguin

                                      MonokelPinguin Space Spelunker

                                      It should be in the subdirectory dlls/wined3d/ of the wine source directory
                                       
                                      • huecester

                                        huecester Scruffy Nerf-Herder

                                        Alright... I edited that in and added the key to registry but all that has given me is a program error: "The program Stardew Valley.exe has encountered and needs to close."

                                        This is the terminal dump it gives me:

                                        Code:
                                        fixme:heap:RtlSetHeapInformation 0x0 1 0x0 0 stub
                                        fixme:process:SetProcessDEPPolicy (1): stub
                                        fixme:heap:RtlSetHeapInformation 0x0 1 0x0 0 stub
                                        fixme:service:scmdatabase_autostart_services Auto-start service L"clr_optimization_v4.0.30319_32" failed to start: 1053
                                        fixme:thread:SetThreadStackGuarantee (0x32fc74): stub
                                        fixme:mscoree:CreateConfigStream (L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\config\\machine.config", 0x32f7e8): stub
                                        fixme:mscoree:CreateConfigStream (L"C:\\GOG Games\\Stardew Valley\\Stardew Valley.exe.config", 0x32f7e8): stub
                                        fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Game"
                                        fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework"
                                        fixme:shell:URL_ParseUrl failed to parse L"xTile"
                                        fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Xact"
                                        fixme:shell:URL_ParseUrl failed to parse L"System"
                                        fixme:shell:URL_ParseUrl failed to parse L"System.Core"
                                        fixme:shell:URL_ParseUrl failed to parse L"System.Xml"
                                        fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Graphics"
                                        err:winediag:wined3d_dll_init Setting maximum allowed wined3d GL version to 3.2.
                                        fixme:nls:GetUserPreferredUILanguages stub: 0 0x32d074 0x0 0x32d070
                                        fixme:thread:GetThreadPreferredUILanguages 0, 0x32d074, 0x0 0x32d070
                                        fixme:shell:URL_ParseUrl failed to parse L"Microsoft.Xna.Framework.Input.Touch"
                                        fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
                                        fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms"
                                        fixme:shell:URL_ParseUrl failed to parse L"Accessibility"
                                        err:d3d:wined3d_adapter_init_gl_caps >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from extension detection @ /Users/X/wine-dirs/wine-source/dlls/wined3d/directx.c / 3716
                                        fixme:win:EnumDisplayDevicesW ((null),0,0x32cbe8,0x00000000), stub!
                                        fixme:d3d9:D3DPERF_SetOptions (0x2) : stub
                                        err:d3d:context_create >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE); @ /Users/X/wine-dirs/wine-source/dlls/wined3d/context.c / 1860
                                        err:d3d:context_create >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); @ /Users/X/wine-dirs/wine-source/dlls/wined3d/context.c / 1863
                                        err:d3d:context_create >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR); @ /Users/X/wine-dirs/wine-source/dlls/wined3d/context.c / 1866
                                        fixme:ntdll:EtwRegisterTraceGuidsW (0xb70dba, 0x0, {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 1, 0x32da9c, (null), (null), 0x108734c): stub
                                        fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}
                                        fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
                                        fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
                                        
                                        Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path 'Z:\Users\X\Content\XACT\FarmerSounds.xgs'.
                                           at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
                                           at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
                                           at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
                                           at Microsoft.Xna.Framework.Audio.AudioEngine..ctor(String settingsFile, TimeSpan lookAheadTime, String rendererId)
                                           at StardewValley.Game1.Initialize() in C:\Users\Barone_\Documents\Visual Studio 2010\Projects\Farmer\Farmer\Farmer\Game1.cs:line 441
                                           at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
                                           at StardewValley.Program.Main(String[] args) in C:\Users\Barone_\Documents\Visual Studio 2010\Projects\Farmer\Farmer\Farmer\Program.cs:line 31
                                        I am at a loss at this point and hope people smarter than me can figure something out.
                                         
                                        • haxd

                                          haxd Space Hobo

                                          Working!!!
                                          [​IMG]

                                          I patched the directx.c file as instructed

                                          These are the verbs installed with winetricks

                                          • d3dx10
                                          • d3dx9
                                          • d3dx9_26
                                          • d3dx9_28
                                          • d3dx9_31
                                          • d3dx9_35
                                          • d3dx9_36
                                          • d3dx9_39
                                          • d3dx9_42
                                          • d3dx9_43
                                          • directx9
                                          • dotnet20sp2
                                          • dotnet40
                                          • steam
                                          • xna31
                                          • xna40
                                          This was the steam version, being run directly from steamapps/common/Stardew\ Valley/

                                          :D :D Thanks guys!!!!
                                           
                                            huecester, DukeOfRiven and alphahouse like this.

                                          Share This Page