Modding, Mission Design, and Coding > Test Builds

Antipodes 9 - SDL Everywhere

(1/17) > >>

The E:
And once more, it is Antipodes time.

For those who are not used to this, Antipodes is a special development branch we are maintaining to test features and additions that are either too big or too fundamental to just be stuffed into trunk.

This time around, the topic is "SDL Everywhere". What does this mean?
Well, here's the issue: On Linux and MacOS (and FreeBSD), we are using the SDL middleware library to manage the hairy bits of setting up windows, getting an OpenGL context, and handling control input. This has worked pretty well for us, but had one big drawback: SDL 1.2 did not have any support for force feedback effects.

Now, after several years of development, SDL2 has been released. This allows us to do force feedback on all platforms, and this means that it is about time we started using SDL on Windows too, cutting down on the amount of platform-specific  code we have to write and maintain.

Given that this changes the behaviour of one of the biggest things in any game engine, namely player input handling, we need this tested thoroughly. Keyboard/Mouse/KB+Mouse/Joystick/Joypad input all has to be checked, because we want the engine to behave very much the same for obvious reasons.

Here then are the builds for Windows (Built in Visual Studio 2013)


All builds are based on git hash 2777459.

You must have SDL2.dll present for the builds to run.  You can get it from  Make sure the SDL2.dll is in your FS2 folder alongside the downloaded executables.

And here are the builds for other supported platforms (late to the party)

OS X:  Built on OS X 10.10.4, Xcode 6.4
FreeBSD x64: fs2_open_ant9_20150716_2777459.tar.bz2  Built on PC-BSD 10.1, clang 3.4.1
Ubuntu x86: fs2_open_ant9_20150716_2777459.tar.bz2  Built on Ubuntu Server 14.04.2 LTS, GCC 4.8.4

Big thanks go to taylor, for providing the force feedback code, and m|m and Echelon9 for various fixes and enhancements.


Update posted on 15/12/2013

-Updated to trunk revision 10223
-Made a few housekeeping changes (A few defines removed)
-Fixed bug involving crash when Force Feedback is activated.

Updates posted 18 July 2015

-All new builds for every platform based on latest Git hash
-Many new SDL-only optimizations have been merged including dialog cleanup, dead code removal, etc.

The AVX build does not have  an "sdl2.dll" file.  Is it not required?

The E:
Yes, you do need it. I have reuploaded the AVX archive.

It would be nice to base the antipodes build off a more recent nightly so you don't get the error message when using the Media VP beta release.
One thing I noticed was the build reversed my throttle and bank on the joystick (Logitech Extreme 3D Pro).  The other thing I noticed was if you disconnected the joystick during the game and then re-plugged it in it would not redetect the joystick.  I sometimes reset the joystick by doing this if it isn't exactly centered.

Yes I meant to mention the axis swap too, it seems they map differently in game than from DirectInput.  It seems to say Rx and Z are different between the two.  Also, enabling Force Feedback on Windows leads to an immediate crash on load because of how we're using SDL_LoadObject (we pass in NULL).  Supposedly this works for Linux, as taylor said it was working for him, but on Windows it blows up.  Hard-coding it to "SDL2.dll" actually seems to let it work on Windows.  Not sure if we just need an ifdef _WIN32 there or what, I haven't been able to verify what happens on Linux/OS X yet with the Force Feedback code as it is now.

Other than those issues, my previous testing of the Antipodes branch has been very successful.  Played a couple entire missions with no hiccups.

Edit:  Also added an Antipodes 9 version to Mantis.


[0] Message Index

[#] Next page

Go to full version