Condor 2 on Linux / Wine issues
Condor 2 on Linux / Wine issues
Hi,
I'd prefer running Condor 2 in our club's simulator on Linux. I've installed it successfully and upgraded to 2.0.4. Main GUI works fine.
But when flight is started, the graphics look corrupted. Looks like Z-buffering doesn't work at all. There are also Z-buffer related errors in wine log:
0009:fixme:d3d:state_zenable Unrecognized depth buffer type 0xffffffff.
0009:fixme:d3d:wined3d_debug_callback 0x1b56468: "Program undefined behavior warning: Sampler object 10 is bound to non-depth texture 489, yet it is used with a program that uses a shadow sampler. This is undefined behavior.".
Has anyone managed to work around these issues? It's very close to working. Condor 1 used to run fine on wine sans online flying.
I'd prefer running Condor 2 in our club's simulator on Linux. I've installed it successfully and upgraded to 2.0.4. Main GUI works fine.
But when flight is started, the graphics look corrupted. Looks like Z-buffering doesn't work at all. There are also Z-buffer related errors in wine log:
0009:fixme:d3d:state_zenable Unrecognized depth buffer type 0xffffffff.
0009:fixme:d3d:wined3d_debug_callback 0x1b56468: "Program undefined behavior warning: Sampler object 10 is bound to non-depth texture 489, yet it is used with a program that uses a shadow sampler. This is undefined behavior.".
Has anyone managed to work around these issues? It's very close to working. Condor 1 used to run fine on wine sans online flying.
You do not have the required permissions to view the files attached to this post.
Re: Condor 2 on Linux / Wine issues
How did you manage to activate Condor2 on Wine? When I click on "register", and enter my key, it fails with an "OLE error 8004100E" error message.
To fix the Direct3D issues, you could try DXVK, an alternative Direct3D11 implementation, based on Vulkan. Requires Wine 3.10. https://github.com/doitsujin/dxvk/releases
But I cannot test it myself, because I cannot even activate.
To fix the Direct3D issues, you could try DXVK, an alternative Direct3D11 implementation, based on Vulkan. Requires Wine 3.10. https://github.com/doitsujin/dxvk/releases
But I cannot test it myself, because I cannot even activate.
Re: Condor 2 on Linux / Wine issues
I managed to activate it after upgrading to latest version. I'm also getting the OLE error when starting, but it doesn't seem to affect anything else.
I'll try with DXVK later, thanks for hint. Valve's Proton might also be able to run it better: https://www.phoronix.com/scan.php?page= ... oton-Linux
Link to wine appdb: https://appdb.winehq.org/objectManager. ... ngId=79236
I'll try with DXVK later, thanks for hint. Valve's Proton might also be able to run it better: https://www.phoronix.com/scan.php?page= ... oton-Linux
Link to wine appdb: https://appdb.winehq.org/objectManager. ... ngId=79236
Re: Condor 2 on Linux / Wine issues
Steam 4 days ago released their fork of wine, Proton. Steam has improved wine to better work with games with help from numerous opensource projects AMD and Intel. I have been to busy to give it a try. But might get to it this weekend.
https://steamcommunity.com/games/221410 ... 5739350561
https://github.com/ValveSoftware/Proton
https://steamcommunity.com/games/221410 ... 5739350561
https://github.com/ValveSoftware/Proton
Re: Condor 2 on Linux / Wine issues
It seems to work with the original Wine (and its OpenGL based Direct3D 11 implementation), if you use a small hack, which I uploaded here:
http://s21440687.onlinehome-server.info ... -hack.diff
http://s21440687.onlinehome-server.info ... -hack.diff
Proton integrates DXVK. Unfortunately, DXVK does not work on wine for Condor, because Wine does not support Vulkan child window rendering. See dlls/winex11.drv/vulkan.c:
/* TODO: support child window rendering. */
if (GetAncestor(create_info->hwnd, GA_PARENT) != GetDesktopWindow())
{
FIXME("Application requires child window rendering, which is not implemented yet!\n");
return VK_ERROR_INCOMPATIBLE_DRIVER;
}
Re: Condor 2 on Linux / Wine issues
You do not have the required permissions to view the files attached to this post.
-
- Posts: 3
- Joined: Tue Aug 28, 2018 4:11 am
Re: Condor 2 on Linux / Wine issues
I got it working nicely without having to recompile, although it was quite a process.
Registration doesnt work for me tho - it doesnt error or anything - it just says :-
"Your Condor license key is not valid. Please try again." .. I'm sort of hoping I've got a dodgy key.
..anyway, if you've the inclination, and are disinclined to recompile, here is the process I followed :-
system: ubuntu 18.04 / GeForce GT 640M (2 GiB) / intel i7-3632QM /16GiB RAM
(this is an dell optimus laptop - a nice machine, but getting a bit long in the tooth for high end gaming)
install vulkan :-
sudo apt install libvulkan1 libvulkan-dev vulkan-utils
add latest graphic drivers :-
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade
..I had some trouble here - I checked my progress by running vulcan-smoketest - and I was getting about 5 frames a second ! (instead of the 200 odd I'd expect) An lsmod revealed that for whatever reason, the system had installed and was using the Nouveau drivers instead of the nVidia ones I'd expect (nVidia v390 to be precise). Anyway, I went Additional Drivers / Hardware interface, where it reckoned it was using the nVidia drivers - and installed the Nouveau drivers - then installed the nVidia ones. After a reboot lsmod (lsmod | grep nv) showed the nvidia drivers were loaded, and vulkan-smoketest reported over 230 frames a second !
install lutris
(no I never heard of it either - it seems to be some sort of playonlinux kind of thing - less polished, but supporting more modern drivers/interfaces and stuff - it will be interesting to see what happens with it)
first you'll need to add the repository :-
# echo "deb http://download.opensuse.org/repositori ... ntu_18.04/ ./" > /etc/apt/sources.list.d/lutris.list
# wget -q http://download.opensuse.org/repositori ... elease.key -O- | sudo apt-key add -
..now install it :-
sudo apt update
sudo apt install lutris
..then just run lutris - you can just do this as a normal user - you'll need to create an account and connect and stuff (I didnt like that either - be sure to let me know if you find an easier way)
..after connecting, you'll need to manually add a game - I had some trouble here - I needed to convince it to install a version of wine - but it wouldnt until I installed the system version of wine, and restarted lutris.
sudo apt-get install wine-development
At this point, you might as well install the game inside the wine container (they're called bottles).
again, from the command prompt :-
wine64_development cmd
c:
cd Downloads
CondorSetupV204.exe
..and just follow the defaults - dont launch when its finished.
..now restart lutris, select wine, select manage versions, and I chose staging-3.14 - the interface is a clunky P.O.S, click around and restart until you see a progress indicator - and wine3.14 with vulkan drivers should install. Persevere - you are almost there.
Ok - Manually add a game in the various tabs :-
game info
choose wine as the runner (or install it if you havent already using the install runners button)
Game Options
Executable /home/ahill/.wine/drive_c/Condor2/Condor.exe (you'll use your own home dir obviously)
Working dir ~/.wine/drive_c/Condor2
Wine prefix ~/.wine
prefix architecture 64-bit
Runner Options
wine version (I chose the latest) staging-3.14x86_64
enable DXVK
..and thats it - you might need to restart lutris to get the icon to show up - but when it does, you should be able to start and play.
Cheers.
Registration doesnt work for me tho - it doesnt error or anything - it just says :-
"Your Condor license key is not valid. Please try again." .. I'm sort of hoping I've got a dodgy key.
..anyway, if you've the inclination, and are disinclined to recompile, here is the process I followed :-
system: ubuntu 18.04 / GeForce GT 640M (2 GiB) / intel i7-3632QM /16GiB RAM
(this is an dell optimus laptop - a nice machine, but getting a bit long in the tooth for high end gaming)
install vulkan :-
sudo apt install libvulkan1 libvulkan-dev vulkan-utils
add latest graphic drivers :-
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade
..I had some trouble here - I checked my progress by running vulcan-smoketest - and I was getting about 5 frames a second ! (instead of the 200 odd I'd expect) An lsmod revealed that for whatever reason, the system had installed and was using the Nouveau drivers instead of the nVidia ones I'd expect (nVidia v390 to be precise). Anyway, I went Additional Drivers / Hardware interface, where it reckoned it was using the nVidia drivers - and installed the Nouveau drivers - then installed the nVidia ones. After a reboot lsmod (lsmod | grep nv) showed the nvidia drivers were loaded, and vulkan-smoketest reported over 230 frames a second !
install lutris
(no I never heard of it either - it seems to be some sort of playonlinux kind of thing - less polished, but supporting more modern drivers/interfaces and stuff - it will be interesting to see what happens with it)
first you'll need to add the repository :-
# echo "deb http://download.opensuse.org/repositori ... ntu_18.04/ ./" > /etc/apt/sources.list.d/lutris.list
# wget -q http://download.opensuse.org/repositori ... elease.key -O- | sudo apt-key add -
..now install it :-
sudo apt update
sudo apt install lutris
..then just run lutris - you can just do this as a normal user - you'll need to create an account and connect and stuff (I didnt like that either - be sure to let me know if you find an easier way)
..after connecting, you'll need to manually add a game - I had some trouble here - I needed to convince it to install a version of wine - but it wouldnt until I installed the system version of wine, and restarted lutris.
sudo apt-get install wine-development
At this point, you might as well install the game inside the wine container (they're called bottles).
again, from the command prompt :-
wine64_development cmd
c:
cd Downloads
CondorSetupV204.exe
..and just follow the defaults - dont launch when its finished.
..now restart lutris, select wine, select manage versions, and I chose staging-3.14 - the interface is a clunky P.O.S, click around and restart until you see a progress indicator - and wine3.14 with vulkan drivers should install. Persevere - you are almost there.
Ok - Manually add a game in the various tabs :-
game info
choose wine as the runner (or install it if you havent already using the install runners button)
Game Options
Executable /home/ahill/.wine/drive_c/Condor2/Condor.exe (you'll use your own home dir obviously)
Working dir ~/.wine/drive_c/Condor2
Wine prefix ~/.wine
prefix architecture 64-bit
Runner Options
wine version (I chose the latest) staging-3.14x86_64
enable DXVK
..and thats it - you might need to restart lutris to get the icon to show up - but when it does, you should be able to start and play.
Cheers.
-
- Posts: 3
- Joined: Tue Aug 28, 2018 4:11 am
Re: Condor 2 on Linux / Wine issues
I forgot to mention - it works in windowed and fullscreen mode, and my t.flight hotas x thrustmaster joystick and ch pro pedals work perfectly too !
Re: Condor 2 on Linux / Wine issues
Greetings,
after hours of testing Condor 2 under Linux Conditions (Xubuntu with 4.15.0-34 x86_64) i have got finally Condor 2 running in "close enough" normal conditions.
A manual wine-build is necessary in order to get rid off the graphical issues. As written by flix (thanks a lot man!) i can fully confirm that patch works fine.
But unfortunately some other things crashed in my configuration. In order to get these things running quite well, please consider following things:
Only if you have graphic issues:
sudo apt-get remove wine
and install a patched wine version
remove your wine-prefix directory (or create a clean new one)
rm -r .wine/
WINEARCH=win32 winecfg
This sets up a clean new wine environment. Next be sure that you have canberra pulse packages installed:
sudo apt-get install libcanberra-pulse libcanberra-pulse:i386
Get winetricks from the webpage. Important(!): Do not use apt, because it might remove your wine3.17 build and install the other crap
wget https://raw.githubusercontent.com/Winet ... winetricks
chmod +x winetricks
run winetricks and install following dll
d3drm
directplay
l3codexc
ole32
Then install Condor2 + Patch it might running now.
If you want to play online with others: Inside Condor 2 it is not running natively on my machine. But! There is a workaround. You can wine a dedicated Server via the .exe inside your condor2 wine installation directory. Then open Condor2 with a seperately and refresh lan hosts. You might able to join your own dedicated server and other pilots can join.
I got still a few errors:
- OLE Error at the start (nothing else happens)
- Graphical issue at the hangar (doesn't see planes)
Sorry for my bad english. I have slept not enough until get this thing working!
Happy Landings!
after hours of testing Condor 2 under Linux Conditions (Xubuntu with 4.15.0-34 x86_64) i have got finally Condor 2 running in "close enough" normal conditions.
A manual wine-build is necessary in order to get rid off the graphical issues. As written by flix (thanks a lot man!) i can fully confirm that patch works fine.
But unfortunately some other things crashed in my configuration. In order to get these things running quite well, please consider following things:
Only if you have graphic issues:
sudo apt-get remove wine
and install a patched wine version
remove your wine-prefix directory (or create a clean new one)
rm -r .wine/
WINEARCH=win32 winecfg
This sets up a clean new wine environment. Next be sure that you have canberra pulse packages installed:
sudo apt-get install libcanberra-pulse libcanberra-pulse:i386
Get winetricks from the webpage. Important(!): Do not use apt, because it might remove your wine3.17 build and install the other crap
wget https://raw.githubusercontent.com/Winet ... winetricks
chmod +x winetricks
run winetricks and install following dll
d3drm
directplay
l3codexc
ole32
Then install Condor2 + Patch it might running now.
If you want to play online with others: Inside Condor 2 it is not running natively on my machine. But! There is a workaround. You can wine a dedicated Server via the .exe inside your condor2 wine installation directory. Then open Condor2 with a seperately and refresh lan hosts. You might able to join your own dedicated server and other pilots can join.
I got still a few errors:
- OLE Error at the start (nothing else happens)
- Graphical issue at the hangar (doesn't see planes)
Sorry for my bad english. I have slept not enough until get this thing working!
Happy Landings!
You do not have the required permissions to view the files attached to this post.
Re: Condor 2 on Linux / Wine issues
Hello!
Question to Linux gurus.
Maybe it is possible to install 'C2 dedicated server' on Raspberry Pi?
(Server only, without d3drm, directplay, no fancy graphic etc)
Could you please write small how-to, if it is possible?
Rgrds
P.
Question to Linux gurus.
Maybe it is possible to install 'C2 dedicated server' on Raspberry Pi?
(Server only, without d3drm, directplay, no fancy graphic etc)
Could you please write small how-to, if it is possible?
Rgrds
P.
Re: Condor 2 on Linux / Wine issues
Not possible. A raspberry pi doesnt run x86 code, its an ARM processor like your smart phone.
Most linux code is opensource, but once compiled, it becomes hardware platform dependent, you cant run x86 binaries on ARM or vice versa even if they both target Linux.
We only have an x86 binary for condor (server), which you can execute on x86 hardware. Even with some tinkering under linux using Wine, but its just the windows APIs that have been "translated" or re-implemented in linux. There is no hardware emulation going on here, in fact Wine is an abbreviation for "Wine Is Not an Emulator". Its all native x86.
To run condor server on a Pi, we would need the source code or an ARM port.
I theory, it is possible to emulate x86, but a Pi just doesnt have the horse power to do that, and it would make no sense.
Most linux code is opensource, but once compiled, it becomes hardware platform dependent, you cant run x86 binaries on ARM or vice versa even if they both target Linux.
We only have an x86 binary for condor (server), which you can execute on x86 hardware. Even with some tinkering under linux using Wine, but its just the windows APIs that have been "translated" or re-implemented in linux. There is no hardware emulation going on here, in fact Wine is an abbreviation for "Wine Is Not an Emulator". Its all native x86.
To run condor server on a Pi, we would need the source code or an ARM port.
I theory, it is possible to emulate x86, but a Pi just doesnt have the horse power to do that, and it would make no sense.
Re: Condor 2 on Linux / Wine issues
After a bit of playing around, I've got Condor 2 to work well with multiplayer, thanks to the above hints. Performance is good, I have most settings on high. This is on Arch Plasma with Nvidia, but the procedure should be the same regardless of distro.
Unfortunately a wine patch is needed in order to have layers displayed with the correct z-order and avoid a crash related to child windows. This patch from Felix does the trick.
To compile wine with the above patch, the procedure will be something like this:
configure will throw a bunch of errors about any missing dependencies for the compile. Try to find and install as many as you can.
then
This shouldn't overwrite your installed wine, so you will be able to call this patched version directly when you need it.
Then set up a 32-bit wineprefix and install Condor 2 into it.
Use winetricks to install and use the following native DLLs:
Make sure Vulkan drivers are installed on your system. Then you can run Condor 2 with:
The OLE problems prevent the product from permanently activating, but it works when you enter in the key for the product and glider you are using each time. Not a massive deal. I can see the successful activation requests being sent to Condor's servers, and a valid response being received, but whatever assembly is being used to store the response doesn't seem to work. installing the WMI override as above changes the message to "OLE Error 80029C4A"
----- EDIT: This bit no longer necessary. See below for multiplayer -------
You will still get network problems,which is preventing multiplayer. However as hinted above, local multiplayer works. So it's a simple solution to connect to remote multiplayer servers by proxying remote addresses to a local port, and connecting using that. It doesn't seem to add any latency.
I've written a short bash script to do that. Save it as cndr2multi and make it executable. It will translate any cndr2:// multiplayer URLs, and set up a local listener on a specified port that sends traffic over to the multiplayer server.
So to connect to a multiplayer server, get the cndr2: URL you want to connect to from the server list and pass it to the proxy. e.g.:
Then in the multiplayer screen, search for local games on the same port as specified above. It will look as though the server is running on your own system, and you should be able to connect fine.
--------------
EDIT: Actually all multiplayer now works for me in Linux without the above proxy. I think ensuring that the local host resolves to my local IP address (assuming you use a static IP) rather than just 127.0.0.1 in /etc/hosts seems to have done the trick. See Wine FAQ 10.6.1: https://wiki.winehq.org/FAQ#My_program_ ... get_online . If no joy then by all means use the above proxy solution, it works!
The below script converts Condor2 join URLs to ip addresses that can be entered in the multiplayer screen:
Happy flying.
John
Unfortunately a wine patch is needed in order to have layers displayed with the correct z-order and avoid a crash related to child windows. This patch from Felix does the trick.
To compile wine with the above patch, the procedure will be something like this:
Code: Select all
mkdir custom-wine
cd custom-wine
git clone https://github.com/wine-mirror/wine.git
cd wine
wget https://github.com/felixhaedicke/wine/commit/4cc738f609faff68bf4c67d5618174fa87ab3cdb.patch
git apply 4cc738f609faff68bf4c67d5618174fa87ab3cdb.patch
./configure
then
Code: Select all
./configure
make -j6
Then set up a 32-bit wineprefix and install Condor 2 into it.
Use winetricks to install and use the following native DLLs:
Code: Select all
WINEPREFIX=/path/to/wineprefix winetricks d3drm directplay l3codecx ole32 dxvk ole32 wmi
Code: Select all
WINEPREFIX=/path/to/wine/prefix /path/to/custom-wine/wine /path/to/wineprefix/Condor2/Condor.exe
The OLE problems prevent the product from permanently activating, but it works when you enter in the key for the product and glider you are using each time. Not a massive deal. I can see the successful activation requests being sent to Condor's servers, and a valid response being received, but whatever assembly is being used to store the response doesn't seem to work. installing the WMI override as above changes the message to "OLE Error 80029C4A"
----- EDIT: This bit no longer necessary. See below for multiplayer -------
You will still get network problems,which is preventing multiplayer. However as hinted above, local multiplayer works. So it's a simple solution to connect to remote multiplayer servers by proxying remote addresses to a local port, and connecting using that. It doesn't seem to add any latency.
I've written a short bash script to do that. Save it as cndr2multi and make it executable. It will translate any cndr2:// multiplayer URLs, and set up a local listener on a specified port that sends traffic over to the multiplayer server.
So to connect to a multiplayer server, get the cndr2: URL you want to connect to from the server list and pass it to the proxy. e.g.:
Code: Select all
$ cndr2multi cndr2://CZJMFAFMHHMFZSZJAFC 56280
url is cndr2://CZJMFAFMHHMFZSZJAFC
real server is 149.202.88.24:49021
Proxying local port 56280 TCP and UDP to real server... Press ctrl-c to exit.
Connecting TCP
Connecting UDP
--------------
EDIT: Actually all multiplayer now works for me in Linux without the above proxy. I think ensuring that the local host resolves to my local IP address (assuming you use a static IP) rather than just 127.0.0.1 in /etc/hosts seems to have done the trick. See Wine FAQ 10.6.1: https://wiki.winehq.org/FAQ#My_program_ ... get_online . If no joy then by all means use the above proxy solution, it works!
The below script converts Condor2 join URLs to ip addresses that can be entered in the multiplayer screen:
Code: Select all
#! /usr/bin/env bash
server=$(zenity --entry --title="Condor server translator" --text="Paste the Condor 2 Join URL: ")
realserver=`echo ${server^^} | sed 's@/@@g' | rev | cut -d: -f1 | rev | tr ABCDFHJLMRSZ 03162897.5:4`
zenity --info --title="Server IP:Port" --text "Server: $realserver"
John
Re: Condor 2 on Linux / Wine issues
Hi @jfsoar,
Thanks for your instructions. I compiled a fresh wine with the patch (it needed a one line fuzz) with a bunch of dependencies and it runs as far as the flight plan screen. When I click Start Flight I get a message box, here's the output from wine's debug log:
Has anyone seen and/or solved this error? Would be great to get a pointer in the right direction before cracking out the debugger...
Thanks
Thanks for your instructions. I compiled a fresh wine with the patch (it needed a one line fuzz) with a bunch of dependencies and it runs as far as the flight plan screen. When I click Start Flight I get a message box, here's the output from wine's debug log:
Code: Select all
0009:Call user32.MessageBoxA(000203ec,05f106a8 "Access violation at address 004910B4 in module 'Condor.exe'. Read of address FFFFFFC0.",05f80178 "Condor 2",00000010) ret=0047c316
Thanks
Re: Condor 2 on Linux / Wine issues
I think this happens when the glider isn't activated. In the hangar tab, you need to make sure you select a glider and activate it with a product key before starting each flight.
I assume the error is linked to the ole error, it might be worth a wine bug report.
I assume the error is linked to the ole error, it might be worth a wine bug report.
Re: Condor 2 on Linux / Wine issues
Hi
I'm working under Ubuntu 20.04 and did not succeeded in installing properly Condor2. Zlayer issues and Condor crashes when exiting one lesson.
I made many attempt using Wine 5.0 5.20 a,d 5.21 (compiled from source) and realize that Ubuntu 20.04 uses libvulkan 1.1.xx whilst libvulkan >1.1 is required for dxvk.
I tried to properly uninstall and reinstall after each attempt, don't use winetricks from PPA (outdated).
My computer is a Dell Intel© Core™ i7-8550U, XPS9370
I switched to 20.10 to get libvulkan 1.2.yyy but did not get better result. IT seems
Regards, Christophe
I'm working under Ubuntu 20.04 and did not succeeded in installing properly Condor2. Zlayer issues and Condor crashes when exiting one lesson.
I made many attempt using Wine 5.0 5.20 a,d 5.21 (compiled from source) and realize that Ubuntu 20.04 uses libvulkan 1.1.xx whilst libvulkan >1.1 is required for dxvk.
I tried to properly uninstall and reinstall after each attempt, don't use winetricks from PPA (outdated).
My computer is a Dell Intel© Core™ i7-8550U, XPS9370
I switched to 20.10 to get libvulkan 1.2.yyy but did not get better result. IT seems
- I making a mistake while following the procedure or
that the procedure in this post could be outdated as compared to recent development made for wine
Regards, Christophe