Software [How-To] Orbiter running in Linux via Wine+PlayOnLinux

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,033
Reaction score
596
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
First, sorry for my bad English. I know that it is the lingua franca of this contemporary era, but nevertheless I find it difficult to write and translate and correct Google translate. Don't hesitate to correct me. What's more: I had to translate the PlayOnLinux options into English, so your experience with the PlayOnLinux interface may vary. Also, anything that isn't good in this tutorial let me know and I'll fix it.

This guide assumes that you know how to use your Linux distribution's package manager, including PPAs in the case of Debian, Ubuntu, and Linux Mint, etc. or pacman in the case of Arch Linux, Manjaro, etc.​

Files you will need directx_Jun2010_redist.exe, Orbiter2016.zip, D3D9ClientR4.25-forOrbiter2016(r1446).zip

Before we start we are going to install Wine. On Debian-based distributions you can install it with the command
Bash:
sudo apt install wine playonlinux
On Arch Linux based distributions you can install it with the command
Bash:
sudo pacman -Syu playonlinux
and pacman will automagically take care of everything.

Now let's start with the tutorial:

Step 1: Launch PlayOnLinux and click Tools->Manage Wine Versions. Wait for the list of available Wine versions to load and once ready choose the Wine Versions (x86) tab, choose 7.11 and press the > button to start the installation. Then click Next. Note that this is independent of having previously installed Wine.

SC1.gif


Step 2: Once Wine 7.11 is downloaded, close the window and in the PlayOnLinux window press + Install. Then click Install an unlisted program. Then Install program in a new virtual drive, click next, and then enter a name for the virtual drive, in our case Orbiter2016 without spaces and click Next.

SC2.gif


Step 3: Now check the boxes Use another version of Wine, Configure Wine, and Install some libraries, and press next. Choose 7.11 and click Next. Then choose 32 bit Windows installation and click Next. Wait while the virtual drive is created.

SC3.gif

SC4.gif

Step 4: In Wine settings choose Windows 7 under Version to mimic and click OK. Then in the list of components check

  • POL_Install d3dx9
  • POL_Install directx9
  • POL_Install vcrun2005
  • POL_Install vcrun2008
  • POL_Install vcrun2010
  • POL_Install vcrun 2015

Click Next and wait meanwhile the selected components are being installed.

SC5.gif

Step 5: In Select the installer file to run click Cancel and the window will close.

Now we are going to install directx_Jun2010_redist.exe and create the shortcuts for Orbiter.

Step 6: In the PlayOnLinux window, click Configure and choose Orbiter2016 from the list on the left, then click the Miscellaneous tab, then click Run an .exe file on this virtual drive.
Locate the directx_Jun2010_redist.exe file, double click it and continue the installation, indicating a folder to unzip the files. In my case inside the DXD9 folder inside the Desktop folder. Finally click Ok to start unzipping the files.

SC6.gif


Step 7: Once finished, open the PlayOnLinux window and click Run an .exe file on this virtual drive again. Locate the DXSETUP.exe file that we saved to /home/username/Desktop/DXD9. And continue the installation like any Windows program. Do not close the PlayOnLinux window.

SC7.gif

Now we are going to install Orbiter.

Step 8: In your file browser unzip the Orbiter2016.zip file. Copy and paste the folder that resulted from unzipping Orbiter2016.zip into /home/username/.PlayOnLinux/wineprefix/Orbiter2016/drive_c/

Step 9: In the PlayOnLinux Settings window click the General tab and then click Create a shortcut of this virtual drive. PlayOnLinux will scan the drive and once scanned select Orbiter_ng.exe then click Next and give the shortcut a name. In my case I'll name it Orbiter 2016. PlayOnLinux will rescan the drive and if you don't want to make a new shortcut select I don't want to create another shortcut and click Next. The window will close.

SC8.gif


Step 10: Finally you will find the shortcut on PlayOnLinux and on your desktop, both equally functional. Open Orbiter with any of the shortcuts and click on Extra->Debugging options->Orbiter shutdown options and select Respawn Orbiter process to avoid problems when exiting the simulation.

SC9.gif


You can now enjoy Orbiter on Linux (non-native, via Wine). If you wish, you can contribute to the @Gondos project by testing native Orbiter on Linux without Wine or PlayOnLinux.
 
Last edited:

Thunder Chicken

Fine Threads since 2008
Donator
Joined
Mar 22, 2008
Messages
4,327
Reaction score
3,248
Points
138
Location
Massachusetts
Thank you for doing this. I used the procedure in https://www.orbiterwiki.org/wiki/Running_Orbiter_under_Wine and it seems to have worked, but I have the problem of the HUD not rendering correctly. I don't know if this is a font problem or something else.

This procedure did not utilize PlayOnLinux, and I am wondering if PlayOnLinux is simply a GUI method to get the necessary runtimes, or is there something in PlayOnLinux that improves the compatability in some way. I am not particularly familiar with what all of the runtimes and modules do, so bear with my ignorance as I am learning.

EDIT: I am seeing that text does not render in the virtual cockpit HUD, and some annotation text from my addon indicating the afterburner and autopilot status are not displayed on those huds or on the forward view.

The text in the MFDs (Surface, Orbit, etc..) similarly don't render.
 
Last edited:

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,033
Reaction score
596
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
Thank you for doing this. I used the procedure in https://www.orbiterwiki.org/wiki/Running_Orbiter_under_Wine and it seems to have worked, but I have the problem of the HUD not rendering correctly. I don't know if this is a font problem or something else.

This procedure did not utilize PlayOnLinux, and I am wondering if PlayOnLinux is simply a GUI method to get the necessary runtimes, or is there something in PlayOnLinux that improves the compatability in some way. I am not particularly familiar with what all of the runtimes and modules do, so bear with my ignorance as I am learning.

EDIT: I am seeing that text does not render in the virtual cockpit HUD, and some annotation text from my addon indicating the afterburner and autopilot status are not displayed on those huds or on the forward view.

The text in the MFDs (Surface, Orbit, etc..) similarly don't render.
Hi @Thunder Chicken
Have you tried the tutorial I made and the HUD problem still persists?
As far as I know PlayOnLinux is more practical to separate the programs into wineprefixes and use the debugger.

I found the solution in the AppDB of Winehq.
https://appdb.winehq.org/objectManager.php?sClass=version&iId=34749

in Workarounds says:
Workarounds
The "invisible font" bug was solved by always running the executable from its directory ( "cd .wine/drive_c/Orbiter2016; wine orbiter_ng.exe" ).
And that's exactly what PlayOnLinux does.

Another question, what is the version of your operating system? Maybe it's not as up-to-date as mine, which is a rolling release. I think the problem may have been fixed in my case by having the latest version of Wine.

You can open PlayOnLinux, select Orbiter and from the left menu select Debugger. And then paste here, with the Code function, the debugger output. Maybe we can find a solution. I don't know much about Linux but I do know something. Maybe someone in the forum has more experience and can help us.

Here are my computer an OS specs:
Bash:
[matias@matias-pc ~]$ neofetch
matias@matias-pc
----------------
OS: Manjaro Linux x86_64
Host: MB40II2
Kernel: 5.15.55-3-rt48-MANJARO
CPU: Intel i3-2330M (4) @ 2.200GHz
GPU: Intel 2nd Generation Core Processor Family
Memory: 2058MiB / 3776MiB

Bash:
[matias@matias-pc ~]$ uname -a       
Linux matias-pc 5.15.55-3-rt48-MANJARO #1 SMP PREEMPT_RT Tue Aug 2 20:27:25 CEST 2022 x86_64 GNU/Linux

Bash:
[matias@matias-pc ~]$ inxi -M --extra 3
Machine:
  Type: Laptop System: Grupo Nucleo product: MB40II2 v: N/A
    serial: <superuser required> Chassis: type: 9 serial: <superuser required>
  Mobo: Grupo Nucleo model: MB40II2 serial: <superuser required>
    BIOS: Phoenix v: 1.05.01.NUC date: 12/16/2011
 
Last edited:

Thunder Chicken

Fine Threads since 2008
Donator
Joined
Mar 22, 2008
Messages
4,327
Reaction score
3,248
Points
138
Location
Massachusetts
I actually figured out that I get different behaviors depending on whether I use orbiter_ng.exe with the D3DX9 module or orbiter.exe. I think my setup is functionally equivalent to yours, just without the PlayOnLinux wrapper.

If I use orbiter_ng.exe with the D3DX9 module, everything works well except I get no text in any of the HUDs or MFDs.

If I use orbiter.exe, everything works fine, but I have graphical artifacts in the terrain it seems.

Either way, it seems that being in full screen is a requirement for it to work correctly.
 

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,033
Reaction score
596
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
I actually figured out that I get different behaviors depending on whether I use orbiter_ng.exe with the D3DX9 module or orbiter.exe. I think my setup is functionally equivalent to yours, just without the PlayOnLinux wrapper.

If I use orbiter_ng.exe with the D3DX9 module, everything works well except I get no text in any of the HUDs or MFDs.

If I use orbiter.exe, everything works fine, but I have graphical artifacts in the terrain it seems.

Either way, it seems that being in full screen is a requirement for it to work correctly.
Yes, I usually use the Window with taskbar option, which works very well for me. And as you say I also have the problem of black artifacts on the ground but they happen infrequently and they don't bother me.
I think what I'm going to do is upload a file from PlayOnLinux Vault which is a .polApp file that contains my entire wine virtual drive and all you need to do is download the corresponding Wine version in PlayOnLinux, in my case 7.11 and then install the .polApp with PlayOnLinux.
 

Thunder Chicken

Fine Threads since 2008
Donator
Joined
Mar 22, 2008
Messages
4,327
Reaction score
3,248
Points
138
Location
Massachusetts
@Thunder Chicken by the way what version of Wine are you using?
You can get this information by running the following command:
Bash:
wine --version
Wine-5.0

It seems that Orbiter 2016 runs pretty well straight using Wine these days. I extracted a clean Orbiter 2016 install and just ran 'wine orbiter.exe' and set it to full screen and it runs very nicely. It seems that the haze visual effect doesn't render very well for some reason, but everything else looks very good.
 

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,033
Reaction score
596
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
To simplify the installation of Orbiter on Linux, here I am sharing my PlayOnLinux virtual drive with Orbiter 2016 (no add-ons only D3D9).
All you need to do is download the .polApp file. Go to PlayOnLinux->Plugins->PlayOnLinux Vault->Restore an applications then select the downloaded .polApp file and follow the steps. Remember to install Wine 7.11 before, via PlayOnLinux's Wine version manager.

Orbiter2016.polApp (3 GB) - https://www.mediafire.com/file/og6yc34sm183r96/Orbiter2016.polApp/file
 

Yankee

Donator
Donator
Joined
May 18, 2012
Messages
12
Reaction score
1
Points
3
Preferred Pronouns
he/him
EDIT:

I confirmed that, all other things being equal, upgrading wine fixed some of the issues. TransX now works, but IMFD 5.7 still has no text. I am using winehq-devel, which at the time of writing is:

Code:
$ wine --version
wine-7.16
$ winetricks --version
20220411 - sha256sum: a4952b40c48d104eb4bcb5319743c95ae68b404661957a134974ae4e1dc79b34

I was able to completely fix the remaining MFD and text rendering issues by also using winetricks to install dxvk. dxvk also fixed the splash screen when first running orbiter_ng.exe, which I didn't even remember existed until I actually installed dxvk, because I couldn't see it. I guess this interposing call layer in front of DirectX is needed for Orbiter 2016.

So to conclude, I needed:
  1. winehq-devel, which at the time of writing was 7.16, and
  2. winetricks dxvk
and this resolved all remaining issues.

-------------------------------

ORIGINAL POST:

I am not using PlayOnLinux, but am having the same issue others have mentioned; I also am unable to see text in e.g. MFDs. The suggestion:

The "invisible font" bug was solved by always running the executable from its directory ( "cd .wine/drive_c/Orbiter2016; wine orbiter_ng.exe" ).

did not change anything. I even tried winetricks allfonts.

Code:
$ wine --version
wine-7.0
$ winetricks --version
20220411 - sha256sum: a4952b40c48d104eb4bcb5319743c95ae68b404661957a134974ae4e1dc79b34

I will try again using winehq-devel=7.16 instead of winehq-stable=7.0 and report back with my findings.
 
Last edited:
Top