World of Warcraft on FreeBSD

Keltir

Member

Reaction score: 11
Messages: 25

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":
Code:
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
Code:
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 :)
 

sidetone

Daemon

Reaction score: 940
Messages: 1,890

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

Aspiring Daemon

Reaction score: 558
Messages: 769

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.
 
OP
Keltir

Keltir

Member

Reaction score: 11
Messages: 25

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:
Code:
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:
Code:
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)
 
OP
Keltir

Keltir

Member

Reaction score: 11
Messages: 25

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

Aspiring Daemon

Reaction score: 558
Messages: 769

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.
 
OP
Keltir

Keltir

Member

Reaction score: 11
Messages: 25

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

Aspiring Daemon

Reaction score: 558
Messages: 769

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

Keltir

Member

Reaction score: 11
Messages: 25

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
 
OP
Keltir

Keltir

Member

Reaction score: 11
Messages: 25

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

Son of Beastie

Reaction score: 1,759
Messages: 2,975

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". :cool:
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

Daemon

Reaction score: 1,061
Messages: 2,386

That's already awesome. Would be even more awesome if there was a possibility to install these i386-packages "system-wide". :cool:
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

Aspiring Daemon

Reaction score: 558
Messages: 769

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

New Member


Messages: 1

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

Menelkir

Well-Known Member

Reaction score: 413
Messages: 355

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

Aspiring Daemon

Reaction score: 558
Messages: 769

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

Well-Known Member

Reaction score: 413
Messages: 355

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:
Code:
[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

Daemon

Reaction score: 940
Messages: 1,890

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

Well-Known Member

Reaction score: 287
Messages: 276

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

Well-Known Member

Reaction score: 413
Messages: 355

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

Well-Known Member

Reaction score: 287
Messages: 276

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.
 
Top