# Linux playground

#### Gondos

##### Active member
Nice work !
I becomes better and better. But the OGLA client used is very old as we can expect some slight frame drops with detailed elevated terrain (eg. while moving the camera around the runway at KSC, the moving is not perfectly smooth). But curiously I have much less frame drops than with wine. But it is not as smooth as with the D3D9 client used on windows. I think it will be needed to rework the opengl client from scratch, but I am not skilled for that and I don't know who could invest some time in that.
Anyways and still, keep up this good work !
This has nothing to do with the old OGLAClient, this is a "new" OpenGL 3.3 client based on the D3D7 one (but still crappier than OGLA I reckon)

#### Jordan

##### Active member
This has nothing to do with the old OGLAClient, this is a "new" OpenGL 3.3 client based on the D3D7 one (but still crappier than OGLA I reckon)
You shouldn't belittle what you've done so far. That's one small step for you, one giant leap for the Linux Orbiter community.

#### Gondos

##### Active member
You shouldn't belittle what you've done so far. That's one small step for you, one giant leap for the Linux Orbiter community.
lol, I'm not belittling, the OGL client is subpar
Speaking of which, I would need some starting screenshots of the following scenarios on Windows with the git version of Orbiter to play the 5 differences game on them :
• Demo/DG ISS Approach
• XR2/On approach to ISS
• Deltaglider/Cape Canaveral
• NASSP/Apollo 11 - T - 30s, with the 2D panel scrolled down so that the checklist MFD is fully visible
Can somebody do me the favor?
Thanks in advance, it would help me a lot to work on the text size/alignment issue with the sketchpad
For reference they look like this :

#### Jordan

##### Active member
lol, I'm not belittling, the OGL client is subpar
Speaking of which, I would need some starting screenshots of the following scenarios on Windows with the git version of Orbiter to play the 5 differences game on them :
• Demo/DG ISS Approach
• XR2/On approach to ISS
• Deltaglider/Cape Canaveral
• NASSP/Apollo 11 - T - 30s, with the 2D panel scrolled down so that the checklist MFD is fully visible
Can somebody do me the favor?
Thanks in advance, it would help me a lot to work on the text size/alignment issue with the sketchpad
For reference they look like this :
View attachment 31363View attachment 31364View attachment 31365View attachment 31366

Here are the requested screenshots, except XR2 which I didn't install.
Screenshots
There is something unusual with Deltaglider Cape Canaveral.

#### Gondos

##### Active member
Here are the requested screenshots, except XR2 which I didn't install.
Screenshots
There is something unusual with Deltaglider Cape Canaveral.
Thanks mate!!

#### Matias Saibene

##### Orbiter Linux Beta Tester
Hi @Gondos,
Here I am again with my Orbiter Linux reports. They are few but I prefer to publish some reports to wait to have more available.

These are the bugs I found:

-The splash screen does not appear, I already tried it in all the scenarios. Maybe is because I have Intel integrated graphics? https://drive.google.com/file/d/1mgbwHs5Hgwwkz_AoaOxey_4f90hNc2E1/view?usp=sharing
-In the DeltaGlider S the SCRAM engine is heard despite not being active or being in space. SCRAM is also heard when I apply the hover engine. https://drive.google.com/file/d/1t6GVvIVgb2iGXS902nwpX0fYEG3LSxUS/view?usp=sharing
-In MapMFD the line and shadow of the terminator occupy the entire map. https://drive.google.com/file/d/1ZizYX_N-EPb1RB1pBCvLqvoWa05y5M4I/view?usp=sharing
-The DeltaGlider XR1's computer text flickers incessantly. https://drive.google.com/file/d/1LAXc4SoeHWk5AM-ktF85ZYsmATp6uSIt/view?usp=sharing

What I tried:
-DeltaGlider and DeltaGlider S
-Delta Glider XR1
-G42-200 StarLiner

Orbiter logs are attached.
---------------------------------------------------

One question, does the current graphical client support normalmaps?

I also have another question, can I move my orbiter_test folder to another linux pc? is it portable?

I have a suggestion, I think it would be nice, for the sake of compatibility, if @fred18's VesselBuilder and General Vehicle could be included. As far as I know it is open source software but I think one needs some permission to include it. I'm not sure, but maybe you can talk to @fred18. And if it can't I would like to know how to add and compile add-ons for Orbiter Linux directly from source.

By the way, I've been thinking about all the work that goes into porting the graphical client and sound, and making it compatible with ALSA, pulse, etc. I know almost nothing about programming but I realize that it is a very big job. Keep up the excellent work. In my case I will continue testing Orbiter Linux.

#### Attachments

5.7 KB · Views: 0
• orbiter_MapMFD_log.txt
4.4 KB · Views: 0
• orbiter_splashscreen_log.txt
4.3 KB · Views: 0

#### Gondos

##### Active member
-The splash screen does not appear, I already tried it in all the scenarios. Maybe is because I have Intel integrated graphics? https://drive.google.com/file/d/1mgbwHs5Hgwwkz_AoaOxey_4f90hNc2E1/view?usp=sharing
Hum, I see no reason for it to be related to integrated graphics. Are you sure the make install completed successfully?
-In the DeltaGlider S the SCRAM engine is heard despite not being active or being in space. SCRAM is also heard when I apply the hover engine. https://drive.google.com/file/d/1t6GVvIVgb2iGXS902nwpX0fYEG3LSxUS/view?usp=sharing
I think this is what the "Landed Wind" + "Air Conditioning" sounds sound like? The SCRAM sounds more like a turbine than white noise
-In MapMFD the line and shadow of the terminator occupy the entire map. https://drive.google.com/file/d/1ZizYX_N-EPb1RB1pBCvLqvoWa05y5M4I/view?usp=sharing
Yes, that's a known issue, I was hoping the switch to nanovg would fix that. There's probably some more work to make concave polygons behave properly...
That one should now be fixed
One question, does the current graphical client support normalmaps?
Not at the moment, it shouldn't be too difficult for someone knowledgeable to add it
I also have another question, can I move my orbiter_test folder to another linux pc? is it portable?
It should work if this is a similar distro with the correct packages installed
I have a suggestion, I think it would be nice, for the sake of compatibility, if @fred18's VesselBuilder and General Vehicle could be included. As far as I know it is open source software but I think one needs some permission to include it. I'm not sure, but maybe you can talk to @fred18. And if it can't I would like to know how to add and compile add-ons for Orbiter Linux directly from source.
VB contains a lot of Windows specific code for its user interface, it would require a large rewrite to make it work on linux
GV's license is not compatible with the GPL. I took a look at it when porting the Deepstar since its rovers use it ; it shouldn't be too difficult to port but I'd prefer working on a physically based vehicle mod
By the way, I've been thinking about all the work that goes into porting the graphical client and sound, and making it compatible with ALSA, pulse, etc. I know almost nothing about programming but I realize that it is a very big job. Keep up the excellent work. In my case I will continue testing Orbiter Linux.
AFAIC pulseaudio is a steaming pile of shit, I won't waste any time on it.

#### Sword7

##### Member
VB contains a lot of Windows specific code for its user interface, it would require a large rewrite to make it work on linux
GV's license is not compatible with the GPL. I took a look at it when porting the Deepstar since its rovers use it ; it shouldn't be too difficult to port but I'd prefer working on a physically based vehicle mod

I found VesselBuilder on GitHub but can't find GeneralVehicle. VB is written in C++ but uses a lot of Windows function calls. It needs to being changed a lot for compatible with cross-platform libraries like Qt, GTK, Gnome, etc.

I also am looking some MFD modules for interplanetary, reentry, aerobrake, etc as open-source repos...

I looked into Orbiter's VSOP 87 and ELP 82 codes and noticed some code for velocity calculations that are not found in original VSOP 87 and ELP 82 packages from websites. Where did you find additional codes for velocity calculations? Yes, I noticed same codes from original VSOP 87 and ELP 82 codes but someone added some code for velocity calculations.

#### Gondos

##### Active member
I found VesselBuilder on GitHub but can't find GeneralVehicle. VB is written in C++ but uses a lot of Windows function calls. It needs to being changed a lot for compatible with cross-platform libraries like Qt, GTK, Gnome, etc.
GeneralVehicle's source code is provided along the binary module in the zip file.
I looked into Orbiter's VSOP 87 and ELP 82 codes and noticed some code for velocity calculations that are not found in original VSOP 87 and ELP 82 packages from websites. Where did you find additional codes for velocity calculations? Yes, I noticed same codes from original VSOP 87 and ELP 82 codes but someone added some code for velocity calculations.
Hum, what function exactly? I don't remember doing changes in these parts. Most likely Martin did some tweaking there...

#### Matias Saibene

##### Orbiter Linux Beta Tester
Hum, I see no reason for it to be related to integrated graphics. Are you sure the make install completed successfully?

I think this is what the "Landed Wind" + "Air Conditioning" sounds sound like? The SCRAM sounds more like a turbine than white noise

Yes, that's a known issue, I was hoping the switch to nanovg would fix that. There's probably some more work to make concave polygons behave properly...

That one should now be fixed

Not at the moment, it shouldn't be too difficult for someone knowledgeable to add it

It should work if this is a similar distro with the correct packages installed

VB contains a lot of Windows specific code for its user interface, it would require a large rewrite to make it work on linux
GV's license is not compatible with the GPL. I took a look at it when porting the Deepstar since its rovers use it ; it shouldn't be too difficult to port but I'd prefer working on a physically based vehicle mod

AFAIC pulseaudio is a steaming pile of shit, I won't waste any time on it.
The splash screen still doesn't appear after a complete reinstall from scratch. It's not a major bug anyway, it's cosmetic, and probably works for other people.

The XR1's computer screen works perfectly now.

I will continue testing...

#### Sword7

##### Member
GeneralVehicle's source code is provided along the binary module in the zip file.

Hum, what function exactly? I don't remember doing changes in these parts. Most likely Martin did some tweaking there...

OK, I got it and will look into zip file package.

Yes, Martin did that. That is same code (sigma equations) from VSOP87 package. I recongized that additional code is used with Calculus formula.

R = f(sum) = cos(term) for position
V = f'(sum) = -sin(term) for velocity

That is in Vsop87.cpp file.

Code:
    // term summation
for (cooidx = 0; cooidx < 3; ++cooidx) { // loop over spatial dimensions
for (alpha = 0; termlen[alpha][cooidx]; ++alpha) { // loop over powers of time
pterm = term+termidx[alpha][cooidx];
tm = termdot = 0.0;
for (i = 0; i < termlen[alpha][cooidx]; ++i) {
a        = pterm[i][0];
b        = pterm[i][1];
c        = pterm[i][2];
arg      = b + c * t[1];
tm      += a * cos(arg);
termdot -= c * a * sin(arg);
}
ret[cooidx] += t[alpha] * tm;
ret[cooidx+3] += t[alpha] * termdot +
(alpha > 0 ? alpha * t[alpha - 1] * tm : 0.0);

} // end loop alpha
} // end loop cooidx

In ELP 82 code for moon (ELP82.cpp), several lines for velocity were added with same code from ELP82 package. I am figuring where velocity codes come from... dot variables is for velocity.

R = r[0]-r[2] is for position
V = r[3]-r[5] is for velocity

Code:
   r[0] = r[0]/rad + w[0][0] + w[0][1]*t[1] + w[0][2]*t[2] + w[0][3]*t[3] +
w[0][4]*t[4];
r[3] = r[3]/rad + w[0][1] + 2*w[0][2]*t[1] + 3*w[0][3]*t[2] + 4*w[0][4]*t[3];
r[2] = r[2]*a0/ath;
r[5] = r[5]*a0/ath;
cosr0 = cos(r[0]), sinr0 = sin(r[0]);
cosr1 = cos(r[1]), sinr1 = sin(r[1]);
x1       = r[2]*cosr1;
x1_dot   = r[5]*cosr1 - r[2]*sinr1*r[4];
x2       = x1*sinr0;
x2_dot   = x1_dot*sinr0 + x1*cosr0*r[3];
x1_dot   = x1_dot*cosr0 - x1*sinr0*r[3];
x1       = x1*cosr0;
x3       = r[2]*sinr1;
x3_dot   = r[5]*sinr1 + r[2]*cosr1*r[4];
pw       = (p1+p2*t[1]+p3*t[2]+p4*t[3]+p5*t[4])*t[1];
pw_dot   = p1 + 2*p2*t[1] + 3*p3*t[2] + 4*p4*t[3] + 5*p5*t[4];
qw       = (q1+q2*t[1]+q3*t[2]+q4*t[3]+q5*t[4])*t[1];
qw_dot   = q1 + 2*q2*t[1] + 3*q3*t[2] + 4*q4*t[3] + 5*q5*t[4];
ra       = 2.0*sqrt(1-pw*pw-qw*qw);
ra_dot   = -4.0*(pw+qw)/ra;
pwqw     = 2.0*pw*qw;
pwqw_dot = 2.0*(pw_dot*qw + pw*qw_dot);
pw2      = 1-2.0*pw*pw;
pw2_dot  = -4.0*pw;
qw2      = 1-2.0*qw*qw;
qw2_dot  = -4.0*qw;
pw       = pw*ra;
pw_dot   = pw_dot*ra + pw*ra_dot;
qw       = qw*ra;
qw_dot   = qw_dot*ra + qw*ra_dot;
// at this point we swap y and z components to conform with orbiter convention
// r[1] <-> r[2] and r[4] <-> r[5]
r[0] = pw2*x1+pwqw*x2+pw*x3;
r[3] = pw2_dot*x1 + pw2*x1_dot + pwqw_dot*x2 + pwqw*x2_dot + pw_dot*x3 + pw*x3_dot;
r[2] = pwqw*x1+qw2*x2-qw*x3;
r[5] = pwqw_dot*x1 + pwqw*x1_dot + qw2_dot*x2 + qw2*x2_dot - qw_dot*x3 - qw*x3_dot;
r[1] = -pw*x1+qw*x2+(pw2+qw2-1)*x3;
r[4] = -pw_dot*x1 - pw*x1_dot + qw_dot*x2 + qw*x2_dot + (pw2_dot+qw2_dot)*x3 + (pw2+qw2-1)*x3_dot;

#### Gondos

##### Active member
Yes, Martin did that. That is same code (sigma equations) from VSOP87 package. I recongized that additional code is used with Calculus formula.
Well, I cannot answer that for him then

#### n72.75

Tutorial Publisher
Donator
@Gondos, when you build NASSP against your Linux Orbiter build, how are you handling the winuser.h, SendMessage() calls that we have?

#### Gondos

##### Active member
@Gondos, when you build NASSP against your Linux Orbiter build, how are you handling the winuser.h, SendMessage() calls that we have?
Hum, in what part? I don't remember having to deal with that...

#### Gondos

##### Active member
Some more progress :

Still some issues with what looks like color saturation though...

Edit: was clamping too early in the shaders so the light color was forced to white, now it really saturates, it will need some tweaking I guess

Last edited:

#### Gondos

##### Active member
Added some crude tone mapping to alleviate saturation :

Also added support for light beacons. DG docked at sunset :

Replies
118
Views
10K
Replies
74
Views
5K
Replies
6
Views
712
Replies
2
Views
796
Replies
45
Views
3K