markx86 / opentrack-wine-guide

A guide for compiling opentrack on linux with Wine support
https://markx86.github.io/opentrack-wine-guide/
GNU General Public License v3.0
1 stars 0 forks source link

non steam dcs? #2

Open MaKaNu opened 1 year ago

MaKaNu commented 1 year ago

I only find old information about this topic. I want to use opentrack with DCS which I've installed via lutris. The Point is I actually used the proton GE which I also use at the moment for my other steam games. Is it somehow possible to use the app id with non steam games. In the meantime I also test Elite Dangerous, but I need it more for DCS.

If I'm right you chatted with me already on reddit. I am curious about running also the windows over udp as you told me. Are you still able to get it working?

markx86 commented 1 year ago

If you're using Lutris you should probably use Wine instead of Proton (or Wine-GE instead of Proton-GE). There's already an install script for DCS Open Beta which needs Wine-GE. That should allow you to use the WINE output protocol in opentrack directly, without doing the whole UDP thing. The Steam appid in opentrack's WINE output protocol is only there to automatically find the game's Wine prefix. However, if you're going to use the WINE output protocol, I suggest using this fork instead. It has better support for both Wine and Proton and the README is pretty clear. The build process should be the same. Unfortunately I'm on vacation and I only have my laptop with me, so I've only managed to test the UDP method using my script with Tiny Combat Arena. It still seems to work (note that the script only works for steam games, however, I should be able to make it work for every game with a simple fix, I just need to get home first).

MaKaNu commented 1 year ago

while I was able to build Wine-GE and launch DCS, I was unable to build the fork of opentrack. Sadly the error message is at the moment hardly readable, because there are a lot of deprecation warnings. But also with the original opentrack and Wine-GE I was unable to get it launched. It seems that the wine wrapper is working, but DCS doesn't pick it up:

DEBUG [/home/matti/workspace/opentrack/proto-wine/ftnoir_protocol_wine.cpp:81]: proto/wine: wine_path: "wine"
DEBUG [/home/matti/workspace/opentrack/proto-wine/ftnoir_protocol_wine.cpp:111]: proto/wine: wineprefix: "/home/matti/.wine/"
DEBUG [/home/matti/workspace/opentrack/proto-wine/ftnoir_protocol_wine.cpp:137]: proto/wine: shm success
DEBUG [/home/matti/workspace/opentrack/proto-wine/ftnoir_protocol_wine.cpp:23]: proto/wine: wrapper exit code 0

I did not further investigate your script because I am unsure about if it is made for steam or also for not steam version.

markx86 commented 1 year ago

I was able to build Wine-GE

I'd recommended using a release as the master branch can break stuff.

I was unable to build the fork of opentrack

Would you be able to post a full log and the distro you're using? I could try to help you.

It seems that the wine wrapper is working, but DCS doesn't pick it up

Sorry, I knew I had forgotten something. If I remember correctly DCS needs an extra DLL you have to download for yourself (source for this claim).

I did not further investigate your script because I am unsure about if it is made for steam or also for not steam version.

I pushed a very quick patch around a week ago that should allow you to use the script with non steam games. The installation method does not change (as long as you don't use the one for the flatpak version of Steam).

MaKaNu commented 1 year ago

I'd recommended using a release as the master branch can break stuff.

I tryed the lutris version 7.2-2 which seems to provide "ESYNC" aswell as "FSYNC".

Sorry, I knew I had forgotten something. If I remember correctly DCS needs an extra DLL you have to download for yourself (source for this claim).

This seems so far enable the headtrack device inside my axis configuration, which was already binded. But no Signal from the original opentrack so far.

Would you be able to post a full log and the distro you're using? I could try to help you.

sure:

system: Linux archlinux 6.4.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 11 Aug 2023 11:03:36 +0000 x86_64 GNU/Linux

log:

/usr/bin/ld: cannot find -ladvapi32: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: cannot find -luser32: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: cannot find -lwinecrt0: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: cannot find -lkernel32: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: cannot find -lntdll: Datei oder Verzeichnis nicht gefunden
/usr/bin/ld: skipping incompatible /usr/lib/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
collect2: Fehler: ld gab 1 als Ende-Status zurück
winegcc: /usr/bin/g++ failed
make[2]: *** [proto-wine/CMakeFiles/wine-wrapper.dir/build.make:75: proto-wine/opentrack-wrapper-wine.exe.so] Fehler 2
make[1]: *** [CMakeFiles/Makefile2:2389: proto-wine/CMakeFiles/wine-wrapper.dir/all] Fehler 2
make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet …
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/globals.cpp:1:
/home/matti/workspace/JT8D-opentrack/options/globals.hpp:20:36: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   20 |     QMutex mtx { QMutex::Recursive };
      |                                    ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/globals.hpp:10:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/bundle.cpp:9:
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:49:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   49 |     mutable QMutex mtx { QMutex::Recursive };
      |                                            ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.hpp:17,
                 von /home/matti/workspace/JT8D-opentrack/options/bundle.hpp:12:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:96:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   96 |     QMutex implsgl_mtx { QMutex::Recursive };
      |                                            ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/base-value.hpp:3,
                 von /home/matti/workspace/JT8D-opentrack/options/base-value.cpp:1:
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:49:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   49 |     mutable QMutex mtx { QMutex::Recursive };
      |                                            ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.hpp:17,
                 von /home/matti/workspace/JT8D-opentrack/options/bundle.hpp:12:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:96:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   96 |     QMutex implsgl_mtx { QMutex::Recursive };
      |                                            ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/value.hpp:13,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.cpp:10:
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:49:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   49 |     mutable QMutex mtx { QMutex::Recursive };
      |                                            ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.hpp:17,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.cpp:9:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/value.hpp:13,
                 von /home/matti/workspace/JT8D-opentrack/options/value.cpp:4:
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:49:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   49 |     mutable QMutex mtx { QMutex::Recursive };
      |                                            ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.hpp:17,
                 von /home/matti/workspace/JT8D-opentrack/options/bundle.hpp:12:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:96:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   96 |     QMutex implsgl_mtx { QMutex::Recursive };
      |                                            ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/scoped.hpp:3,
                 von /home/matti/workspace/JT8D-opentrack/options/scoped.cpp:1:
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:49:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   49 |     mutable QMutex mtx { QMutex::Recursive };
      |                                            ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.hpp:17,
                 von /home/matti/workspace/JT8D-opentrack/options/bundle.hpp:12:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:96:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   96 |     QMutex implsgl_mtx { QMutex::Recursive };
      |                                            ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:96:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   96 |     QMutex implsgl_mtx { QMutex::Recursive };
      |                                            ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/bundle.cpp:11:
/home/matti/workspace/JT8D-opentrack/options/globals.hpp:20:36: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   20 |     QMutex mtx { QMutex::Recursive };
      |                                    ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/group.cpp:11:
/home/matti/workspace/JT8D-opentrack/options/globals.hpp:20:36: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   20 |     QMutex mtx { QMutex::Recursive };
      |                                    ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/globals.hpp:10:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
In Datei, eingebunden von /home/matti/workspace/JT8D-opentrack/options/value.hpp:13,
                 von /home/matti/workspace/JT8D-opentrack/options/tie.hpp:12,
                 von /home/matti/workspace/JT8D-opentrack/options/tie.cpp:9:
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:49:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   49 |     mutable QMutex mtx { QMutex::Recursive };
      |                                            ^
In Datei, eingebunden von /usr/include/qt/QtCore/QMutex:1,
                 von /home/matti/workspace/JT8D-opentrack/options/connector.hpp:17,
                 von /home/matti/workspace/JT8D-opentrack/options/bundle.hpp:12:
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
/home/matti/workspace/JT8D-opentrack/options/bundle.hpp:96:44: Warnung: »QMutex::QMutex(RecursionMode)« ist veraltet: Use QRecursiveMutex instead of a recursive QMutex [-Wdeprecated-declarations]
   96 |     QMutex implsgl_mtx { QMutex::Recursive };
      |                                            ^
/usr/include/qt/QtCore/qmutex.h:159:14: Anmerkung: hier deklariert
  159 |     explicit QMutex(RecursionMode mode);
      |              ^~~~~~
[ 28%] Linking CXX shared library opentrack-options.so
[ 28%] Built target opentrack-options
make: *** [Makefile:136: all] Fehler 2

As I was saying a lot of deprecation warnings againt recursion.

MaKaNu commented 1 year ago

Okay I have finally managed it. The right hint was coming from the StarCitizen Fork. My Prefix was pointing to ~/.wine now it is pointing to home/$USER/games/dcs-world.

markx86 commented 1 year ago

Hi, sorry for the late response, I just got home from my vacation. I was looking at your build log, and it seems to be failing because it can't find some libraries. Honestly, I can't reproduce the issue, so it's been kinda hard to figure out why it won't build on your system. Although I guess none of that matters since you managed to get it working! Again, sorry for not answering sooner, I forget things easily! Let me know if there's anything you need help with, otherwise I think we can close this issue!

wirmola commented 9 months ago

MaKaNu, Is it still working for you? I can't make it work with Lutris and starcitizen fork anymore.

MaKaNu commented 9 months ago

Hi yeah it worked two weeks ago, but I needed to rebuild, since a few dependencies got a new version. My next flight is Wednesday. I ran my builded version from console and not from Lutris, since I need xcb for wayland to work with shortcuts.

I am working on a repo to document my recent configs, to keep my setup deploy able. Sadly most I am not ready with the opentrack files. But feel free to look inside: https://github.com/MaKaNu/dcs-linux

If you still have trouble feel free to ask.