# World of Warcraft on FreeBSD



## Keltir (Sep 6, 2021)

Hello!

I have an ultimate goal to launch WoW Classic on FreeBSD, or get confirmation that it's impossible.
What I have so far:
1. To Install/update WoW client we should use Battlenet client, which is 32bits app. To launch it I installed i386-wine and it was running pretty smoothly.
2. WoW client itself is x64 app. Also It needs DXVK afaik to be supported. So I compiled wine from ports with both dxvk and vulkan flags. (with help of the forum!) [i386-wine was removed, plan to use it in jails for WoW client updates only as long as both 32 and 64 wine can't be installed in the system]
3. I have installed amdgpu driver according to handbook. I have installed Vulkan, and "vulkaninfo" shows proper output.

Now I'm trying to launch game's binary and it fails with pop-up error: "Game initialization Failed: I":

```
starcloud% wine64 WowClassic.exe
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:err:winediag:WS_getaddrinfo Failed to resolve your host name IP
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0088:err:plugplay:get_device_instance_id Failed to get device ID, status 0xc0000017.
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0024:err:seh:segv_handler Got unexpected trap 9
starcloud% 008c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
008c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
008c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
008c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
008c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
008c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
```

On the other hand I can run winecfg,explorer,regedit and it will show me a window that is quite alive regardless warnings in output

```
starcloud% wine64 winecfg
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:err:winediag:WS_getaddrinfo Failed to resolve your host name IP
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0088:err:plugplay:get_device_instance_id Failed to get device ID, status 0xc0000017.
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0088:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
```

Thus, I guess, the real problem is in the line:


> 0024:err:seh:segv_handler Got unexpected trap 9



tried to search in the internet, didn't find any useful info.
Any input is appreciated!

PS: I found this video on yt
_View: https://www.youtube.com/watch?v=zuj9pRNR2oM_

So I assume, 3d games can be launched on FreeBSD through wine. At least some. That gave me hope


----------



## monwarez (Sep 6, 2021)

If you need both 64bit and 32bit, the latest version of emulators/wine provide a script named
/usr/local/share/wine/pkg32.sh that will install the 32bit version of wine in $HOME/.i386-wine-pkg
The actual command for that:
`/usr/local/share/wine/pkg32.sh install wine mesa-dri`

Maybe try emulators/wine-proton


----------



## sidetone (Sep 6, 2021)

games/wargus allows the play of Warcraft II with the games/stratagus game engine. The gameplay and features will vary, according to the ports' descriptions.

I realize that you said World of Warcraft and not Warcraft II. Maybe in the future, functionality will be expanded or forked to include other Warcraft games.


----------



## Alexander88207 (Sep 6, 2021)

I had tried to start the latest WoW with proton but was not successful. Earlier this did not worked with proton on linux either so this does not surprise me. But was not interested enough to build a wine itself with vulkan and other stuff to test it again.


----------



## Keltir (Sep 6, 2021)

default wine 6.0.1 doesn't want to work at all.
I installed wine-proton.
By default it tries to use dx11 and failed with this message:

```
d3d:wined3d_swapchain_init The application requested more than one back buffer, this is not properly supported.Please configure the application to use double buffering (1 back buffer) if possible.
```
Then using some sort of magic I was able to switch it to Vulkan. Now it shows following error:

```
0024:fixme:msctf:ThreadMgr_ActivateEx Unimplemented flags 0x4
0024:err:virtual:virtual_setup_exception stack overflow 1856 bytes in thread 0024 addr 0x7bc79986 stack 0x1308c0 (0x130000-0x131000-0x230000)
```


----------



## shkhln (Sep 7, 2021)

Keltir said:


> Then using some sort of magic I was able to switch it to Vulkan.


What kind of magic?


----------



## Keltir (Sep 7, 2021)

shkhln said:


> What kind of magic?


So I installed winetricks. But to make them working, I had to make sym links:
wine-proton/bin/wine64 -> /usr/bin/wine64
wine-proton/bin/wine64 -> /usr/bin/wine // it is necessary becaue from time to time it was failing due to attempts to run wine, tho it was able to understand that I'm using wine64, but still.
wine-proton/bin/regedit-> /usr/bin/regedit

then I install dxvk using winetricks.
After that I could see different output of wine64 wow.exe. It was clear that dxvk was using instead of Dx11.
Sadly, it didn't work out too


----------



## Alexander88207 (Sep 7, 2021)

You can tell winetricks to use the wine-proton binaries by using the WINE variable: `WINE=/usr/local/wine-proton/bin/wine winetricks` 

You dont have to refer to wine64 because its wow64.


----------



## Keltir (Sep 7, 2021)

Alexander88207 said:


> You dont have to refer to wine64 because its wow64.


WoW client is 64 bit app, so I have to use wine64 I guess?
"wine WoW.exe" gives me hint that i386-wine is not installed and suggested to install in using bash script, mentioned above by monwarez
With both: "wine" and "wine-proton" packages.


----------



## Alexander88207 (Sep 7, 2021)

Keltir said:


> "wine WoW.exe" gives me hint that i386-wine is not installed and suggested to install in using bash script, mentioned above by monwarez
> With both: "wine" and "wine-proton" packages.



That is also correct, wine will call wine64 when it is needed.


----------



## Alexander88207 (Sep 7, 2021)

BTW, directly addressing the binary does not help, it is intended that you have to start it via blizzard.


----------



## Keltir (Sep 7, 2021)

Alexander88207 said:


> BTW, directly addressing the binary does not help, it is intended that you have to start it via blizzard.


I worked on Linux couple months ago tho(when I checked), Battlenet client adds another level of complexity so I wanted to start with only WoW.exe


----------



## Alexander88207 (Sep 7, 2021)

Blizzard only needs atleast arial fonts from winetricks to run "okay".


----------



## Keltir (Sep 7, 2021)

Alexander88207 said:


> Blizzard only needs atleast arial fonts from winetricks to run "okay".


Well, Battlenet is 32 bit app, so I start it with "wine". Then when I want to install wow client using it, it says: "To install WoW client you need x64 system".
When I locate already installed client, Battlenet updating it and removing WoW.exe for some reason, thus I can't start it anyway.
Told you, this Battlenet client was forged in the depth of hell.


----------



## zirias@ (Sep 7, 2021)

monwarez said:


> If you need both 64bit and 32bit, the latest version of emulators/wine provide a script named
> /usr/local/share/wine/pkg32.sh that will install the 32bit version of wine in $HOME/.i386-wine-pkg


That's already awesome. Would be even more awesome if there was a possibility to install these i386-packages "system-wide". 
Or, at least for users with $HOME on a network share, to $HOME/.local  (ok, I can work around _that_ with a symlink, sure…)


----------



## shkhln (Sep 7, 2021)

Zirias said:


> That's already awesome. Would be even more awesome if there was a possibility to install these i386-packages "system-wide".


Well, since I submitted that script, I think I'll explain: the actual reason for installation to $HOME/.i386-wine-pkg is that I simply _don't trust pkg to always respect --rootdir flag_ and not mangle your normal repo metadata and packages if you run it from root. You are, of course, welcome to install i386 packages at whatever location you like and point the WINE_i386_ROOT environment variable at it.


----------



## Alexander88207 (Sep 7, 2021)

Keltir said:


> Well, Battlenet is 32 bit app, so I start it with "wine". Then when I want to install wow client using it, it says: "To install WoW client you need x64 system".
> When I locate already installed client, Battlenet updating it and removing WoW.exe for some reason, thus I can't start it anyway.
> Told you, this Battlenet client was forged in the depth of hell.



If you change a wine version then you also have to rebuild the prefix. Please also keep in mind that wine & wine-devel got the wow64 stuff later and it is not yet in the standard quarterly repository (At this time of writing). If you want to have the latest updates weekly, you have to change to the latest repository. i386-wine and i386-wine-devel will get removed soon.


----------



## secahtah (Dec 17, 2021)

I was getting ready to try making this work and found this forum thread. Did you ever get it working?


----------



## Menelkir (Dec 17, 2021)

secahtah said:


> I was getting ready to try making this work and found this forum thread. Did you ever get it working?


If we're talking about Shadowlands, you'll probably need to install dxvk and some extra directx stuff. Also, if I remember, since legion it works bettter with wine if you change gxAPI to D3D11 in WTF/Config.wtf.


----------



## Alexander88207 (Dec 17, 2021)

Tried it again with wine-devel the launcher is unable to proceed the download for this game and seems to be the well known "freebsd" problem.

wineserver: file_set_error() can't map error: Cannot allocate memory
0770:fixme:mpr:WNetGetUniversalNameW (L"C:\\Program Files (x86)\\World of Warcraft\\Data\\data", 0x00000001, 053CC6D0, 053CC6CC): stub


----------



## Menelkir (Dec 17, 2021)

Alexander88207 said:


> Tried it again with wine-devel the launcher is unable to proceed the download for this game and seems to be the well known "freebsd" problem.
> 
> wineserver: file_set_error() can't map error: Cannot allocate memory
> 0770:fixme:mpr:WNetGetUniversalNameW (L"C:\\Program Files (x86)\\World of Warcraft\\Data\\data", 0x00000001, 053CC6D0, 053CC6CC): stub


I have a different issue with Shadowlands, it keeps doing this forever:

```
[Telemetry/4] [D:\BuildServer\WoW\7\work\DedicatedCheckout\Build-Packages\telemetry-sdk-cpp\4.1.1\src\flowcontrol\flow_controller.cpp:231]: FlowControl: Rule fetch failure, HTTP status code 0
[Telemetry/4]
[D:\BuildServer\WoW\7\work\DedicatedCheckout\Build-Packages\telemetry-sdk-cpp\4.1.1\src\http\curl\http_request.curl.cpp:180]: CurlRequest: request error: 55 (Failed sending data to the peer), details: 'select/poll on SSL soc
ket, errno: 10022'
```


----------



## sidetone (Dec 17, 2021)

Alexander88207 said:


> wineserver: file_set_error() can't map error: Cannot allocate memory


I had a problem similar to that one for Wine, when my directory or partition permissions weren't set for execute. It would flash on, then give an error message like that. I've made a customized partition for executables and their libraries.

Though, times like this, I've seen something similar to a problem and solution I've encountered, and it turned out to be something else. It's still worth checking.


----------



## hardworkingnewbie (Dec 18, 2021)

Just a word of warning: WoW uses quite a sophisticated piece of software called Warden, which Bruce Schneier already in 2005 described as spyware with user given consent, to protect against cheaters. 

While I don't know any case where it happened, running WoW on Wine might affect Warden, and therefore might lead to an account ban even if you are not doing aside using Wine funny things with WoW.


----------



## Menelkir (Dec 18, 2021)

hardworkingnewbie said:


> Just a word of warning: WoW uses quite a sophisticated piece of software called Warden, which Bruce Schneier already in 2005 described as spyware with user given consent, to protect against cheaters.
> 
> While I don't know any case where it happened, running WoW on Wine might affect Warden, and therefore might lead to an account ban even if you are not doing aside using Wine funny things with WoW.


WoW works fine with wine by years, but since Legion (I think) they've changed the engine and added some other things. Also, you can even find threads on the official blizzard forums about running WoW under wine.


----------



## hardworkingnewbie (Dec 18, 2021)

Menelkir: You are talking about "WoW running fine under Wine." 

I am talking about "your account might get banned due to Warden doing stuff, so you are doing stuff on your own risk." 

Quite the different topic I talked about.


----------



## Alexander88207 (Dec 18, 2021)

People playing blizzard games using wine since decades so i guess nobody should fear of that.


----------



## Menelkir (Dec 19, 2021)

hardworkingnewbie said:


> Menelkir: You are talking about "WoW running fine under Wine."
> 
> I am talking about "your account might get banned due to Warden doing stuff, so you are doing stuff on your own risk."
> 
> Quite the different topic I talked about.


Can you show something about this? Because there's nothing even on the world of warcraft forums, in other hand, world of warcraft forums have lots of threads about running under wine.
Warden is pretty much about "botting", otherwise, it'll get you wrongly banned using some addons, and there's thousands of addons out there and none of them make people get banned by Warden.


----------



## hardworkingnewbie (Dec 19, 2021)

This is in the technical support forums of WoW a frequent, re-occuring question: "Will using Linux harm my account?" 

Where official answers from Blizzard always are: "We neither approve or forbid its usage, whatever you do is on your own risk." This is includes Warden doing funny things.


----------



## jartlen (Sep 2, 2022)

Hi to all, same problem here when try to run Wow BFA/LEGION/LICH:

```
virtual:virtual_setup_exception stack overflow
```

In Shadowlands also i have that problem + err:virtual:virtual_setup_exception stack overflow :

```
[Telemetry/4] [D:\BuildServer\WoW\7\work\DedicatedCheckout\Build-Packages\telemetry-sdk-cpp\4.1.1\src\flowcontrol\flow_controller.cpp:231]: FlowControl: Rule fetch failure, HTTP status code 0
[Telemetry/4]
[D:\BuildServer\WoW\7\work\DedicatedCheckout\Build-Packages\telemetry-sdk-cpp\4.1.1\src\http\curl\http_request.curl.cpp:180]: CurlRequest: request error: 55 (Failed sending data to the peer), details: 'select/poll on SSL soc
ket, errno: 10022'
```

Any idea about it? Many thanks for your time

Ryzen 9 5900X +  AMD VEGA 64


----------



## jartlen (Sep 4, 2022)

Add log: https://pastebin.com/6fEvr29D


----------



## Alexander88207 (Sep 4, 2022)

Hello,

because stable wine is outdated here, wine-devel is requiered for operating Blizzard. But now the setup wont even open anymore for me to test.


----------



## jartlen (Sep 4, 2022)

Alexander88207 said:


> Hello,
> 
> because stable wine is outdated here, wine-devel is requiered for operating Blizzard. But now the setup wont even open anymore.


Hi, many thanks for your answer

I have tried Wine Stable/Wine Devel/Wine Proton..Wine Stable does nothing, Wine Devel and Wine Proton give the error described above


----------

