Condor 2 on Linux / Wine issues

Moderators: Uros, Tom, OXO

cos
Posts: 18
Joined: Thu May 24, 2018 10:45 am

Condor 2 on Linux / Wine issues

Post by cos » Tue Aug 07, 2018 8:49 pm

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.
condor-corrupt.jpg
You do not have the required permissions to view the files attached to this post.

flix
Posts: 4
Joined: Mon Aug 28, 2006 10:36 pm

Re: Condor 2 on Linux / Wine issues

Post by flix » Thu Aug 23, 2018 9:03 pm

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. :cry:

cos
Posts: 18
Joined: Thu May 24, 2018 10:45 am

Re: Condor 2 on Linux / Wine issues

Post by cos » Fri Aug 24, 2018 3:51 pm

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

KuCoOs
Posts: 2
Joined: Mon Aug 20, 2018 12:07 am

Re: Condor 2 on Linux / Wine issues

Post by KuCoOs » Sun Aug 26, 2018 3:51 am

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

flix
Posts: 4
Joined: Mon Aug 28, 2006 10:36 pm

Re: Condor 2 on Linux / Wine issues

Post by flix » Wed Aug 29, 2018 10:29 pm

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
:D

KuCoOs wrote:
Sun Aug 26, 2018 3:51 am
Steam 4 days ago released their fork of wine, Proton.
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;
}

flix
Posts: 4
Joined: Mon Aug 28, 2006 10:36 pm

Re: Condor 2 on Linux / Wine issues

Post by flix » Wed Aug 29, 2018 10:42 pm

condor-screenshot-wine.jpg
You do not have the required permissions to view the files attached to this post.

TonyBalony
Posts: 3
Joined: Tue Aug 28, 2018 4:11 am

Re: Condor 2 on Linux / Wine issues

Post by TonyBalony » Fri Aug 31, 2018 11:17 am

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.

TonyBalony
Posts: 3
Joined: Tue Aug 28, 2018 4:11 am

Re: Condor 2 on Linux / Wine issues

Post by TonyBalony » Fri Aug 31, 2018 11:21 am

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 !

pucki
Posts: 1
Joined: Sun Sep 30, 2018 6:37 am

Re: Condor 2 on Linux / Wine issues

Post by pucki » Sun Sep 30, 2018 7:08 am

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!
You do not have the required permissions to view the files attached to this post.

User avatar
Pit_R
Posts: 1225
Joined: Mon Feb 27, 2006 7:16 pm

Re: Condor 2 on Linux / Wine issues

Post by Pit_R » Mon Oct 01, 2018 2:37 pm

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.
No matter where you go... There you are...

Image
:::: Please use this envelope
Image
to send me a PM.

janjansen
Posts: 1068
Joined: Wed Feb 24, 2016 9:26 pm

Re: Condor 2 on Linux / Wine issues

Post by janjansen » Mon Oct 01, 2018 2:47 pm

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.

jfsoar
Posts: 3
Joined: Fri Mar 27, 2020 12:47 am

Re: Condor 2 on Linux / Wine issues

Post by jfsoar » Tue Mar 31, 2020 11:16 pm

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:

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

Code: Select all

./configure
make -j6
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:

Code: Select all

WINEPREFIX=/path/to/wineprefix winetricks d3drm directplay l3codecx ole32 dxvk ole32 wmi
Make sure Vulkan drivers are installed on your system. Then you can run Condor 2 with:

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

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"
Happy flying.

John

bwduncan
Posts: 1
Joined: Tue Apr 14, 2020 11:37 pm

Re: Condor 2 on Linux / Wine issues

Post by bwduncan » Wed Apr 15, 2020 2:12 am

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:

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

jfsoar
Posts: 3
Joined: Fri Mar 27, 2020 12:47 am

Re: Condor 2 on Linux / Wine issues

Post by jfsoar » Sat Apr 18, 2020 12:20 pm

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.

CSeguinot
Posts: 3
Joined: Fri Nov 13, 2020 6:56 pm

Re: Condor 2 on Linux / Wine issues

Post by CSeguinot » Fri Nov 20, 2020 5:56 pm

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
  • 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
Does anyone has a clear recent procedure to help me troubleshoot this.

Regards, Christophe

Post Reply