Orbiter-Forum  

Go Back   Orbiter-Forum > Orbiter Space Flight Simulator > Orbiter Beta
Register Blogs Orbinauts List Social Groups FAQ Projects Mark Forums Read

Orbiter Beta Topics related to Beta releases of Orbiter and Orbiter development.

Reply
 
Thread Tools
Old 08-06-2016, 09:46 AM   #1
martins
Orbiter Founder
Default Orbiter 2016 - RC.3

Please try out the third release candidate. (Let's hope there won't be too many more )

It's available as ZIP package (MSI to follow):

This supersedes the RC.2 package. For package details see the RC.1 description which still applies.

For change log see the SVN r.60 announcement.
martins is online now   Reply With Quote
Old 08-06-2016, 09:57 AM   #2
martins
Orbiter Founder
Default

Quote:
Originally Posted by GLS View Post
 And another thing, looks like the MAKEGROUPARRAY points for attachments aren't being updated in the first time step. This is reproducible with Atlantis by grappling something, exiting, and on a new run the attached object will be in the position it would be if the arm was stowed (and the arm is correctly in the saved position). (Starting the sim paused shows the issue better.)
The problem is that the animations (including the MAKEGROUPARRAY points) are updated by the visual, _after_ the logical vessel positions have been set. I fixed that in the default Atlantis code by calling SetAttachmentParams in clbkVisualCreated, to refresh the position after the animation has been initialised.
martins is online now   Reply With Quote
Thanked by:
Old 08-06-2016, 11:32 AM   #3
GLS
Addon Developer
 
GLS's Avatar
Default

Quote:
Originally Posted by martins View Post
 The problem is that the animations (including the MAKEGROUPARRAY points) are updated by the visual, _after_ the logical vessel positions have been set. I fixed that in the default Atlantis code by calling SetAttachmentParams in clbkVisualCreated, to refresh the position after the animation has been initialised.
So, just to finish this, that is the way to do it?
GLS is offline   Reply With Quote
Old 08-06-2016, 12:12 PM   #4
jarmonik
Beta Tester

Default

I am getting a CTD when using the AutoBurn feature of the IMFD. The CTD seems to occur exactly in the same place in Orbiter.exe as the previously reported CTD related to "rotation instability" if I recall correctly, which was addressed in RC2 but there could be still a problem.

The CTD occurs immediately when the AutoBurn starts it's attitude sequence. It's still the same code that's been running with 2010-P1 without problems and compiled with the Orbiter 2016 RC2 API. The CTD seems to occur only with D3D9 and the inline engine shows very strange behavior.

IMFD is downloadable from here:
http://www.orbiter-forum.com/showthread.php?t=37290

The sequence to produce the CTD in "DG Mk4 in Orbit" scenario is:

1.) Open "Interplanetary"
2.) Press "MNU", "Orbit-Eject", "PG", "AB"
3.) Increase time acceleration to wait 3000s seconds. (Reduced automatically)

The CTD occur at T-180 where the attitude sequence is supposed to start. With 100% reliability at-least here.

EDIT1: Debugger shows no third-party code in the call stack.
EDIT2: The CTD is exactly the same as this one. http://www.orbiter-forum.com/showthr...1&postcount=66
EDIT3: I wonder, could this be a "large address aware" problem ?

Last edited by jarmonik; 08-06-2016 at 06:39 PM.
jarmonik is offline   Reply With Quote
Old 08-06-2016, 02:45 PM   #5
Face
Beta Tester
 
Face's Avatar

Default

I have noticed that texpack now has the extraction feature. However, it seems like there is a small typo, because the usage page lists '-x' as option, when in reality it is '-e'. In addition, the '-L<x>' option seems to have no effect on it.

My treeman utility also gained the extraction feature now: treeman.zip
It uses zlib's (1.2.8 statically linked) uncompress() function. However, treeman is twice as fast as texpack unpacking all Earth textures. Do you do some special checks on the unpacked files?
Face is offline   Reply With Quote
Thanked by:
Old 08-06-2016, 04:11 PM   #6
dbeachy1
O-F Administrator
 
dbeachy1's Avatar


Default

Thanks for RC.3! Quick question -- would it be possible for you to package up an RC.3 download version without any planetary textures included? That way users already running with the high-res textures or who already downloaded the low-res textures previously wouldn't need to unnecessarily re-download the low-res textures again (it would also save a ton of bandwidth for both the server and the user). Also, users already using the high-res textures wouldn't need to worry about accidentally overwriting their installed high-res textures when upgrading to RC.3 or future Orbiter 2016 versions or patches.

One possible approach would be to package up three zip files:
1. The Orbiter core files themselves, which includes everything except the planetary textures,
2. The low-res planetary textures, and
3. The high-res planetary textures.

That way users would choose at download time which planetary textures they wanted to use. Granted, that isn't as simple as just doing a single download, but OTOH we could always also have a download that includes both #1 and #2 (as it is now), in which case there would be a total of four.

Anyway, just thinking out loud.
dbeachy1 is offline   Reply With Quote
Old 08-06-2016, 05:14 PM   #7
Jordan
Orbinaut
Default

Here is the RC2 to RC3 Patch.
Copy and overwrite these files in your RC2 folder.

OBSOLETE
FILES REMOVED

Last edited by Jordan; 11-29-2016 at 10:41 PM.
Jordan is offline   Reply With Quote
Old 08-06-2016, 11:12 PM   #8
Ripley
Tutorial translator
 
Ripley's Avatar
Default

Differential patches (made with 7-zip):
RC1 --> RC3
RC2 --> RC3

Last edited by Ripley; 08-31-2016 at 03:14 PM. Reason: Links removed
Ripley is offline   Reply With Quote
Thanked by:
Old 08-08-2016, 03:17 PM   #9
martins
Orbiter Founder
Default

Quote:
Originally Posted by GLS View Post
 So, just to finish this, that is the way to do it?
That's kind of strong wording - I would amend that to the slightly more pragmatic "that is the way that seems to be working for now". Given Orbiter's recent release history, it will take me at least a couple of years to break it again.
martins is online now   Reply With Quote
Thanked by:
Old 08-08-2016, 03:27 PM   #10
GLS
Addon Developer
 
GLS's Avatar
Default

Quote:
Originally Posted by martins View Post
 That's kind of strong wording - I would amend that to the slightly more pragmatic "that is the way that seems to be working for now". Given Orbiter's recent release history, it will take me at least a couple of years to break it again.
OK, thanks!
Any words on this? (ignore the first part of that post)
Should we only play with DefSetStateEx in the clbkPreStep call?
GLS is offline   Reply With Quote
Old 08-08-2016, 10:31 PM   #11
martins
Orbiter Founder
Default

Quote:
Originally Posted by jarmonik View Post
 I am getting a CTD when using the AutoBurn feature of the IMFD. The CTD seems to occur exactly in the same place in Orbiter.exe as the previously reported CTD related to "rotation instability" if I recall correctly, which was addressed in RC2 but there could be still a problem.

The CTD occurs immediately when the AutoBurn starts it's attitude sequence. It's still the same code that's been running with 2010-P1 without problems and compiled with the Orbiter 2016 RC2 API. The CTD seems to occur only with D3D9 and the inline engine shows very strange behavior.

IMFD is downloadable from here:
http://www.orbiter-forum.com/showthread.php?t=37290

The sequence to produce the CTD in "DG Mk4 in Orbit" scenario is:

1.) Open "Interplanetary"
2.) Press "MNU", "Orbit-Eject", "PG", "AB"
3.) Increase time acceleration to wait 3000s seconds. (Reduced automatically)

The CTD occur at T-180 where the attitude sequence is supposed to start. With 100% reliability at-least here.

EDIT1: Debugger shows no third-party code in the call stack.
EDIT2: The CTD is exactly the same as this one. http://www.orbiter-forum.com/showthr...1&postcount=66
EDIT3: I wonder, could this be a "large address aware" problem ?
I've started debugging this, and have traced it back to calls from AttitudeControl.dll to VESSEL::IncThrusterLevel_SingleStep. At about T-180, IncThrusterLevel_SingleStep starts getting called with -1.#IND and 1.#QNAN for the second parameter (dlevel) for some of the thrusters, causing Orbiter to panic and die. These values could of course be generated in response to some earlier problem in Orbiter that gets handed over to AttitudeControl, but until I know what that is, I'm stuck. So for the time being I'll have to hand the debugging-baton back to you ...
martins is online now   Reply With Quote
Thanked by:
Old 08-09-2016, 02:46 AM   #12
jarmonik
Beta Tester

Default

Quote:
Originally Posted by martins View Post
 I've started debugging this, and have traced it back to calls from AttitudeControl.dll to VESSEL::IncThrusterLevel_SingleStep. At about T-180, IncThrusterLevel_SingleStep starts getting called with -1.#IND and 1.#QNAN for the second parameter (dlevel) for some of the thrusters, causing Orbiter to panic and die. These values could of course be generated in response to some earlier problem in Orbiter that gets handed over to AttitudeControl, but until I know what that is, I'm stuck. So for the time being I'll have to hand the debugging-baton back to you ...
Thanks about checking that. After doing a lot of debugging over night I finally found the problem from my own code. I am sorry I bothered you with this issue. We can close this one.

I am not sure if it would be good idea to add some parameter validity checks like assert(_finite(x)!=0); in same key places to throw an error when jumping in NAN space. But anyway, those checks are now added in AttitideControl.dll to check the input parameter passed to the Orbiter.
jarmonik is offline   Reply With Quote
Thanked by:
Old 08-09-2016, 10:22 AM   #13
martins
Orbiter Founder
Default

Quote:
Originally Posted by jarmonik View Post
 I am not sure if it would be good idea to add some parameter validity checks like assert(_finite(x)!=0); in same key places to throw an error when jumping in NAN space.
I guess it would improve robustness to check all inputs (valid handles, index ranges, parameter ranges, etc.) but it could potentially also add a fair amount of overhead and thus impact performance.

I was thinking of generating a "debug and test" build that performs all those tests at the API interface, separate from the "production" executable. Users could run this to analyse problems, and addon developers can run their dll's against for testing.

Anyway, it will take me a bit of time to implement that, so it's a project for after the next release.
martins is online now   Reply With Quote
Thanked by:
Old 08-09-2016, 10:41 AM   #14
Urwumpe
Certain Super User
 
Urwumpe's Avatar

Default

Quote:
Originally Posted by martins View Post
 I guess it would improve robustness to check all inputs (valid handles, index ranges, parameter ranges, etc.) but it could potentially also add a fair amount of overhead and thus impact performance.

I was thinking of generating a "debug and test" build that performs all those tests at the API interface, separate from the "production" executable. Users could run this to analyse problems, and addon developers can run their dll's against for testing.

Anyway, it will take me a bit of time to implement that, so it's a project for after the next release.
Sounds like a good idea, at least something like a parameter check and sequence check that is optionally activated.

But yeah, another version, I already have a hard time testing all the new features in 2016

Maybe, instead of doing a big leap like 2016, there could be a smaller stabilization release as next one.
Urwumpe is online now   Reply With Quote
Thanked by:
Old 08-09-2016, 01:05 PM   #15
Enjo
Mostly harmless
 
Enjo's Avatar


Default

How about using such template:

PHP Code:
#ifndef SAFENUMBER_H
#define SAFENUMBER_H

class IHasNumber
{
public:
    
virtual double GetNumber() const = 0;
};

template<class T>
class 
SafeNumber : public IHasNumber
{
    public:
        
SafeNumber(T val 0);
        
virtual ~SafeNumber();

        
SafeNumber operator / (const IHasNumber other) const;
        
void operator /= (const IHasNumber other);
        
std::ostream Write(std::ostream &os) const;
        
double GetNumber() const override { return val; }

        
T val/// Use any other mathematical function

    
protected:

    private:
};

template<class T>
std::ostream &operator<<(std::ostream &osSafeNumber<T> const &m) {
   return 
m.Write(os);
}

template<class T>
SafeNumber<T>::SafeNumber(T val) : val(val){}
template<class T>
SafeNumber<T>::~SafeNumber(){}

template<class T>
SafeNumber<TSafeNumber<T>::operator / (const IHasNumber other) const
{
    if (
other.GetNumber() == 0)
        throw 
std::runtime_error("Divison by 0");
    return 
SafeNumber(val other.GetNumber());
}

template<class T>
void SafeNumber<T>::operator /= (const IHasNumber other)
{
    *
this = *this other;
}

template<class T>
std::ostreamSafeNumber<T>::Write(std::ostreamos) const
{
    return 
os << val;
}

#endif // SAFENUMBER_H 
Example calling sequence:
PHP Code:
#include <iostream>
#include "SafeNumber.hpp"

using namespace std;

int main()
{
    const 
SafeNumber<floatnom(5), denom(10), zero(0);
    
SafeNumber<floatnonconst(100);
    const 
SafeNumber<intinteger(2);
    
cout << "Res div = " << nom denom << endl;
    
cout << "Res mul = " << nom.val denom.val << endl;
    
cout << "Res int = " << nom integer << endl;
    
nonconst /= denom;
    
cout << "Res non const = " << nonconst << endl;
    
cout << "Res zero = " << nom zero << endl;
    
nonconst /= zero;

Naturally, you'd have to provide a few try / catch scopes to make it work, but when I think about it, wouldn't it be about time for that? (I'm also talking about the next release, but let's start early please)

Last edited by Enjo; 08-09-2016 at 03:53 PM. Reason: Type mixing
Enjo is online now   Reply With Quote
Thanked by:
Reply

  Orbiter-Forum > Orbiter Space Flight Simulator > Orbiter Beta


Thread Tools

Posting Rules
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Jump


All times are GMT. The time now is 05:01 PM.

Quick Links Need Help?


About Us | Rules & Guidelines | TOS Policy | Privacy Policy

Orbiter-Forum is hosted at Orbithangar.com
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright 2007 - 2017, Orbiter-Forum.com. All rights reserved.