I’m trying to create a new prefix and install a new launcher, it doesn’t help
setting QT_QPA_PLATFORM_PLUGIN_PATH to
C:\Program Files (x86)\Battle.net\Battle.net.13763\platforms
worked for me.
I think it’s using the old version of QT which worked.
Ok, that helped, but I just solved it differently. Instead of changing the variable, I replaced the target file.
I copied qwindows.dll from an old backup (two years old for me) and copied it to the current directory. The new one might have a bug.
drive_c/Program Files (x86)/Battle.net/Battle.net.13801/platforms/qwindows.dll
Could you explain more about what you did? How/where did you set that variable?
could you share the old file somehow?
@Decent:
Have a look into your folder:
~/.wine/drive_c/Program Files (x86)/Battle.net/
Are there only one or more directories of the form “Battle.net.XXXXX/”?
If there are more, you probably should have the file “qwindows.dll” yourself. Then just go into one of the older folders and copy it from there to the newest. Path is something like this (XXXXX is a number, the lower the older):
~/.wine/drive_c/Program Files (x86)/Battle.net/Battle.net.XXXXX/platforms/qwindows.dll
When I compared the newest qwindow.dll vs older version I had (13763), at least for me they are exactly same file but still coping from older directory got battle.net client working again.
As I had kept original version from that qwindow.dll file I returned it back and client broke again then I tried following in newest Battle net platforms directory (~/.wine/drive_c/Program Files (x86)/Battle.net/Battle.net.13801/platforms) :
mv qwindows.dll qwindows.dll-original
cp qwindows.dll-original qwindows.dll
And some reason that is enough for Battle net client starting to work again. Don’t ask from me why as it’s same file just copied.
I created a bat file and used the “set” command to set the variable and then launched battlenet from the same bat file. This was done inside the wine enviroment.
I confirm Cefö workaround is working
Maybe because there are 2 files instead of one in platforms folder ?
Thank you i can now use Battle.net launcher again
Because I uninstalled and re-installed the client I don’t have the older files to replace anymore got only the folder
Battle.net.13801
I got a copy of the qwindows.dll file from a friend from an older version and replaced my 13801 file.
It’s weird, but that works here, too. Perhaps some file integrity check is buggy and another modification date works around it. So guys, don’t try to get another file, just try Cefö’s hint.
It worked, I did what he said and it works now, this is really weird because those two commands aren’t that special, I wonder why.
I couldn’t give up so I dug deeper and figured out the qwindows.dll file has an extended attribute set:
$ getfattr *
# file: qwindows.dll
user.DOSATTRIB
$ getfattr -n user.DOSATTRIB *
# file: qwindows.dll
user.DOSATTRIB="0x2"
For comparison, the older Bnet version has a different value:
$ getfattr -n user.DOSATTRIB *
# file: qwindows.dll
user.DOSATTRIB="0x2020"
Not sure why but for some awkward reason this makes the file hidden from Bnet, probably by setting the equivalent of HIDDEN flag on FAT/NTFS filesystems. As an extended attribute the flag is removed on copy so that’s why copying the file works, but the correct and more straightforward solution would be to remove the attribute directly by running:
$ setfattr -x user.DOSATTRIB qwindows.dll
This here fixed the problem for me.
Thanks a lot!
This thread is 2 weeks old, but on my end it broke today. Anyways, here’s some additional info.
Old attributes:
0x2020 = 0x20 + 0x2000 = ATTR_ARCHIVE + ATTR_NOT_CONTENT_INDEXED
New attributes:
0x2 = ATTR_HIDDEN
That’s why it breaks and it should even break on Windows (in theory).
I’m getting the same error as of today. using Battle.net.13696. When I try the fix it gives me:
setfattr: qwindows.dll: No such attribute
So clearly, the attribute there isn’t the issue but it still gives the same error. I also tried copying and moving but no dice. Any idea on how to further troubleshoot?
I just did a
find -exec setfattr -x user.DOSATTRIB {} \;
inside the Battle.net folder to recursively remove the attribute from everything in there, seems to work for me. Not sure if doing that can potentially break anything else though.
Do as Cefö said, this solution still works.
New update of /Battle.net.13859/ and time to remove attributes again.