Hard Light Productions Forums

Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: SirKnightly on May 11, 2016, 01:37:01 pm

Title: Release: 3.7.4 RC2
Post by: SirKnightly on May 11, 2016, 01:37:01 pm
Sorry for the delay on this one, had a lot of issues crop up between hosting and personal things.  Getting RC2 out now at least, hopefully nightlies will be sorted out in the near future.  scp.fsmods.net appears to be gone for good unfortunately.

Important!!
As always, you need OpenAL installed.  Linux and OS X come with it but Windows users will need to get Creative's OpenAL installer (http://scp.indiegames.us/builds/oalinst.zip). Alternatively, if Creative's OpenAL doesn't work with your hardware, you can use OpenAL Soft (http://kcat.strangesoft.net/openal.html#download).

Hidden Text: TrackIR Users • Show
Important!!
An external DLL is required for FSO to use TrackIR functions.  The following DLL is simply unpacked in to your main FreeSpace2 root dir.
TrackIR is only supported on Windows.
TrackIR SCP DLL (http://www.mediafire.com/download.php?ihzkihqj2ky) (Mirror (http://scp.fsmods.net/builds/scptrackir.zip)) (Mirror (http://scp.indiegames.us/builds/scptrackir.zip))

Launchers, if you don't have one already:
All platforms:  wxLauncher (http://www.hard-light.net/forums/index.php?topic=67950.0) (ongoing project for a unified launcher)

Hidden Text: Alternative Launchers • Show
Windows:  Launcher 5.5g (http://scp.fsmods.net/files/Launcher55g.zip) (Mirror (http://scp.indiegames.us/builds/Launcher55g.zip)) (Mirror (http://www.mediafire.com/?wdvzn7hhhzh418m)) Not compatible with Windows 8+, use wxLauncher above
OS X:  Soulstorm's OS X Launcher 3.0 (http://www.hard-light.net/forums/index.php/topic,51391.0.html)
Linux:  YAL (http://www.hard-light.net/forums/index.php/topic,53206.0.html) or by hand (http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux/Graphics_Settings) or whatever you can figure out.

Known issues:


(http://scp.indiegames.us/img/windows-icon.png) Windows
Compiled on Windows 7 SP1 64-bit, MSVC Community 2015 Update 2

fs2_open_3.7.4_RC2.7z (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2.7z) (Mirror (http://scp.indiegames.us/builds/WIN/fs2_open_3.7.4_RC2.7z)) (MD5 (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2.md5))
This one is based on the SSE2 Optimizations from the MSVC Compiler.

Hidden Text: Alternative builds • Show
If you don't know which one to get, get the third one (no SSE).  If you don't know what SSE means, read this: http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions
You can use freely available tools like CPU-Z (http://www.cpuid.com/softwares/cpu-z.html) to check which SSE capabilities your CPU has.

fs2_open_3.7.4_RC2_AVX.7z (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2_AVX.7z) (Mirror (http://scp.indiegames.us/builds/WIN/fs2_open_3.7.4_RC2_AVX.7z)) (MD5 (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2_AVX.md5))
This one is based on the AVX Optimizations from the MSVC Compiler (fastest build if your CPU supports AVX instructions).

fs2_open_3.7.4_RC2_SSE.7z (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2_SSE.7z) (Mirror (http://scp.indiegames.us/builds/WIN/fs2_open_3.7.4_RC2_SSE.7z)) (MD5 (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2_SSE.md5))
This one is based on the SSE Optimizations from the MSVC Compiler.

fs2_open_3.7.4_RC2_NO-SSE.7z (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2_NO-SSE.7z) (Mirror (http://scp.indiegames.us/builds/WIN/fs2_open_3.7.4_RC2_NO-SSE.7z)) (MD5 (http://scp.fsmods.net/builds/WIN/fs2_open_3.7.4_RC2_NO-SSE.md5))

What are those SSE and SSE2 builds I keep seeing everywhere?
Your answer is in this topic. (http://www.hard-light.net/forums/index.php?topic=65628.0)


(http://scp.indiegames.us/img/mac-icon.png) OS X Universal (32/64-bit Intel)
Compiled on OS X 10.11.4, Xcode 7.3 (Apple LLVM version cross-reference (https://gist.github.com/yamaya/2924292))

fs2_open_3.7.4_RC2.dmg (http://scp.fsmods.net/builds/OSX/fs2_open_3.7.4_RC2.dmg) (Mirror (http://scp.indiegames.us/builds/OSX/fs2_open_3.7.4_RC2.dmg)) (MD5 (http://scp.fsmods.net/builds/OSX/fs2_open_3.7.4_RC2.md5))


Hidden Text: Other Platforms, Source Code • Show
(http://scp.indiegames.us/img/linux-icon.png) Ubuntu Linux 32-bit
Compiled on Ubuntu 14.04.4 LTS 32-bit, GCC 4.8.4
The Ubuntu builds are built and provided as a reference, and also because Ubuntu is a very common Desktop Linux distribution.  We usually recommend Linux users compile their own builds, but if you happen to be running 32-bit Ubuntu, or 64-bit Ubuntu with 32-bit libraries installed, these may work fine for you.  There have been reports of package managers maintaining FSO packages in various Linux distributions, if you plan to package an FSO release for a distribution please let use know and we will include a reference to it in our release posts.

fs2_open_3.7.4_RC2.tar.bz2 (http://scp.fsmods.net/builds/LINUX/fs2_open_3.7.4_RC2.tar.bz2) (Mirror (http://scp.indiegames.us/builds/LINUX/fs2_open_3.7.4_RC2.tar.bz2)) (MD5 (http://scp.fsmods.net/builds/LINUX/fs2_open_3.7.4_RC2.md5))


(http://scp.indiegames.us/img/freebsd-icon.png) FreeBSD 64-bit (experimental, limited support)
Compiled on PCBSD 10.2 64-bit, clang 3.4.1
As FreeBSD is still a small player in the desktop space, but PC-BSD is becoming a much more user-friendly platform, we were able to get it reliably working with our build system.  The limited user base for these builds will likely keep them in the experimental realm, so if you do have any issues or successes with them, please report your experiences here.

fs2_open_3.7.4_RC2.tar.bz2 (http://scp.fsmods.net/builds/FREEBSD/fs2_open_3.7.4_RC2.tar.bz2) (Mirror (http://scp.indiegames.us/builds/FREEBSD/fs2_open_3.7.4_RC2.tar.bz2)) (MD5 (http://scp.fsmods.net/builds/FREEBSD/fs2_open_3.7.4_RC2.md5))

Source Code Export (MD5 (http://scp.fsmods.net/builds/fs2_open_3_7_4_RC2_src.md5))
fs2_open_3_7_4_RC2_src.tgz (http://scp.fsmods.net/builds/fs2_open_3_7_4_RC2_src.tgz) (Mirror (http://scp.indiegames.us/builds/fs2_open_3_7_4_RC2_src.tgz))
Title: Re: Release: 3.7.4 RC2
Post by: CT27 on May 11, 2016, 01:57:06 pm
I apologize if this may be a simple question but I haven't downloaded RCs in a while (I usually just do nightlys or official releases):

Does this cover bugfixes made as of April 7?  Any nightly before that I ran into problems with with a couple campaigns.
Title: Re: Release: 3.7.4 RC2
Post by: chief1983 on May 11, 2016, 02:22:57 pm
Appears some of the builds never made it to the mirrors either, I will have to look into getting that fixed soon.  I don't know why they haven't been seeded from the primary to the mirrors yet.
Title: Re: Release: 3.7.4 RC2
Post by: chief1983 on May 11, 2016, 02:26:00 pm
But to answer your question, there should be quite a few bug fixes in here.  Anything above the March 7 RC1 commit on the 3.7.4 commits page (https://github.com/scp-fs2open/fs2open.github.com/commits/fs2_open_3_7_4).
Title: Re: Release: 3.7.4 RC2
Post by: AdmiralRalwood on May 11, 2016, 07:04:46 pm
Does this cover bugfixes made as of April 7?
chief1983 already linked you to the list of commits in the 3.7.4 branch, but in general here's the goal with release branches: bugfixes (especially for crashing bugs) get backported; new features do not. Anything in between is going to be considered on an individual basis, but generally leaning towards "don't backport"; the idea is to keep the branch as stable as possible.

If a release candidate crashes for you, let us know immediately: we want the final 3.7.4 release to be the only executable most people need to use until 3.8 is ready.
Title: Re: Release: 3.7.4 RC2
Post by: CT27 on May 11, 2016, 07:21:31 pm
I'm trying to learn all this terminology, what do you mean by 'backporting'?
Title: Re: Release: 3.7.4 RC2
Post by: AdmiralRalwood on May 11, 2016, 07:38:53 pm
I'm trying to learn all this terminology, what do you mean by 'backporting'?
The main branch is the master branch; it's what nightly builds get built off of. 3.7.4 has its own branch; since they're separate branches, commits to master don't affect the 3.7.4 branch in any way. So if a bugfix gets merged, it needs to be separately ported "backwards" to the 3.7.4 branch (current master/nightly builds are 3.7.5).

See also: https://en.wikipedia.org/wiki/Backporting
Title: Re: Release: 3.7.4 RC2
Post by: ssmit132 on May 16, 2016, 07:00:04 pm
A question - if I find (what I think is) a bug, do I still open an issue on Mantis, or should I do it on GitHub instead? Because I've encountered another issue in my messages.tbl escapades.

EDIT: The issue was because of a table error, so I guess I don't need to open an issue for that. It would still be nice to know which place is prefered for bug reports, however. :)
Title: Re: Release: 3.7.4 RC2
Post by: AdmiralRalwood on May 16, 2016, 09:13:29 pm
We're leaning towards GitHub Issues right now. If you're unsure if something is a bug or an asset issue (like a malformed table), you can always hop on IRC and ask.
Title: Re: Release: 3.7.4 RC2
Post by: Lykurgos88 on June 08, 2016, 03:05:39 pm
I have now encountered multiple times a game crashing bug with RC2, that I have not yet found any logical explanation. The error is as follows:

Code: [Select]
ERROR: 00005.fs2(line 57):
Error: A file name was expected but no name was supplied!

File: parselo.cpp
Line: 331
Int3(): From c:\code\fs2_open_3_7_4_rc2\code\globalincs\windebug.cpp at line 1260

The thing is, I recently played a whole campaign with RC2 and had no problems, but in other campaigns there is now this same crash in multiple missions.

I have no idea what is going on.
Title: Re: Release: 3.7.4 RC2
Post by: m!m on June 08, 2016, 03:30:56 pm
That error means that the mission file is invalid. What campaign is that mission part of?
The code that checks for that error has been added recently but the error has probably always existed.
Title: Re: Release: 3.7.4 RC2
Post by: The E on June 08, 2016, 03:38:54 pm
Yeah, the best way to troubleshoot this is to open this 00005.fs2 file in a text editor and see what line 57 actually says.
Title: Re: Release: 3.7.4 RC2
Post by: Lykurgos88 on June 08, 2016, 04:20:53 pm
There is clearly something else going on than the mission file being corrupt.

There are now multiple missions in campaigns like Ryleh and Dimensional eclipse that work with 3.7.2 but not in 3.7.4 RC2 because of this same error.

If you don't want to download any mods, I happened to found a vanilla singleplayer mission that crashes with this same bug. This time the error line is 56.

Download the attached mission file and put it in data\missions to see it for yourself. The file should be fine, because it works in 3.7.2, so problem should be in 3.7.4 RC2.

[attachment DELETED!! by Strong Bad]
Title: Re: Release: 3.7.4 RC2
Post by: chief1983 on June 08, 2016, 04:24:25 pm
And, as they tried to explain, line 56 of that file is:

Code: [Select]
$Ani Filename:

I'm not saying it's acceptable that so many essentially working missions are now unplayable, if that's actually the case now, but no one said they are corrupt.  Merely that we added a check for another possible problem with some mission files, namely, the missing filename value.  The code is doing its job in this case, but I'll leave it open for discussion on if there are any changes needed in terms of how this error is being handled currently.
Title: Re: Release: 3.7.4 RC2
Post by: Lykurgos88 on June 08, 2016, 04:33:42 pm
Well yeah, maybe the check should be produce a log warning and not crash the entire game  :lol:
Title: Re: Release: 3.7.4 RC2
Post by: AdmiralRalwood on June 08, 2016, 10:11:39 pm
The behavior in question was introduced in this commit (https://github.com/scp-fs2open/fs2open.github.com/commit/a1a8a53a65f68e3ec05a0a7033cd3bda1eb781a7) (PR here (https://github.com/scp-fs2open/fs2open.github.com/pull/549), merged by yours truly), but I'll copy the description here for the sake of convenience:
Quote
Add validation when parsing a file spec

This issue was spotted by Taranis who encountered an assertion caused by
an empty file name. This check will make sure that every string parsed
as a file name will at least contain one character.
Bad data (i.e. data provided by a modder/FREDer that doesn't actually make sense for the engine to attempt to do anything with) should never trigger an assertion; that's why the error message was introduced. In this particular case, however, the relevant code already tests for an empty filename string and handles it accordingly, so the error is just breaking working missions (which we try not to do if we can avoid it). It might, in this case, have been better to fix the specific kind of empty file name problem Taranis found rather than generating an error every time a filename is expected but not provided; unfortunately, there's no mention of what the assertion was in the commit or PR description.
Title: Re: Release: 3.7.4 RC2
Post by: Lykurgos88 on June 09, 2016, 01:21:34 am
@AdmiralRalwood
Thanks for the clear-up!

There are actually a couple of other (somewhat longstanding) bugs that I'm trying to reproduce with RC2, but one of them is actually presented in a mission that is now blocked because of this "filename" check. So is there a possibility for a RC3 before final release?

The bug is related to in-game event where player is using joystick and is suddenly denied of any input --> ship starts turning around slowly instead of staying still like it was supposed to in older FSO builds. I will try to get a more specific description and examples when I get a chance. (note that the joystick is perfectly calibrated in this case and doesn't make any twitch movements on its own)

Another potential bug that comes to my mind is how the optional framebuffer shockwaves react with FS1 explosions. Unlike with FS2 explosions which seem to work nicely, the FS1 era shockwave explosions can cause microlag and nasty looking square shaped distortions. Even the background nebulas can get 2 second long color changes, which never happens with FS2 shockwaves.

I will try to remember all the other oddities as well that I have encountered and post them here in the following days.  ;7
Title: Re: Release: 3.7.4 RC2
Post by: niffiwan on June 09, 2016, 01:55:27 am
It might, in this case, have been better to fix the specific kind of empty file name problem Taranis found rather than generating an error every time a filename is expected but not provided; unfortunately, there's no mention of what the assertion was in the commit or PR description.

From the name of m!m's branch, I'm going to guess it was a missing fictionviewer file, and there's only two (https://github.com/scp-fs2open/fs2open.github.com/blob/master/code/missionui/fictionviewer.cpp#L531) assertions (https://github.com/scp-fs2open/fs2open.github.com/blob/master/code/missionui/fictionviewer.cpp#L536) in code/missionui/fictionviewer.cpp? OFC it'd be great if Taranis or m!m could comment (I had a look through Taranis's posts and he must have raised the issue on IRC).
Title: Re: Release: 3.7.4 RC2
Post by: m!m on June 09, 2016, 02:58:52 am
I think most of the conversation happened in IRC. The assertions in fictionviewer.cpp don't look familiar but the actual assertion may have happened outside of the fiction viewer code. I think the assertion happened somewhere in cfile where the filename was checked for the first time. I'm fine with changing the code so an empty string is a valid filename but if FRED writes missions with invalid filenames that also needs to be fixed.
Title: Re: Release: 3.7.4 RC2
Post by: AdmiralRalwood on June 09, 2016, 04:38:07 pm
I think most of the conversation happened in IRC. The assertions in fictionviewer.cpp don't look familiar but the actual assertion may have happened outside of the fiction viewer code. I think the assertion happened somewhere in cfile where the filename was checked for the first time. I'm fine with changing the code so an empty string is a valid filename but if FRED writes missions with invalid filenames that also needs to be fixed.
Well, that's the odd thing; as far as I can tell, FRED has always defaulted ani_filename to "<default>", so it would seem that... a nonzero number of FREDers are manually erasing that for whatever reason. Unless all of these missions happen to be contained within the two campaigns Lykurgos88 mentioned (in which case it might be less effort to just fix those missions and call it a day), it would seem we need to continue to support those missions that are otherwise perfectly fine.
Title: Re: Release: 3.7.4 RC2
Post by: niffiwan on June 14, 2016, 01:44:37 am
We probably need to remove RC1 from the installer and replace it with RC2 - who has access to this file again?
http://scp.indiegames.us/scp_files.txt
Title: Re: Release: 3.7.4 RC2
Post by: The E on June 14, 2016, 05:18:31 am
I have changed it so that RC2 is now on the installer for Windows and Linux. I will need help generating the necessary hash codes for the MacOS and FreeBSD builds (MacOS requires a whole bunch of them, and the FreeBSD builds are currently inaccessible).
Title: Re: Release: 3.7.4 RC2
Post by: chief1983 on June 14, 2016, 08:19:04 am
They are already generated, should be on all the servers alongside the builds, I just keep forgetting that step during deployment.
Title: Re: Release: 3.7.4 RC2
Post by: LaineyBugsDaddy on June 14, 2016, 01:21:25 pm
Silly question: When I am compiling this from source on a linux box, where does the compiled executable end up being put? I know where to look when compiling from source on Windows, but the location is eluding me in Linux.
Title: Re: Release: 3.7.4 RC2
Post by: m!m on June 14, 2016, 01:26:04 pm
The binaries are in the code directory. You can also run autogen.sh with --prefix=<path to FSO> and then use make install to copy the executables to your FSO folder once everything has been compiled. The binaries will be put into a bin folder inside your FSO folder so keep that in mind if you want to run the executables from the terminal.
Title: Re: Release: 3.7.4 RC2
Post by: LaineyBugsDaddy on June 14, 2016, 07:54:23 pm
Huh. I could have sworn I looked in the code folder. I must have overlooked it. Thanks.
Title: Re: Release: 3.7.4 RC2
Post by: eicca on June 17, 2016, 07:48:49 pm
@AdmiralRalwood
Thanks for the clear-up!

There are actually a couple of other (somewhat longstanding) bugs that I'm trying to reproduce with RC2, but one of them is actually presented in a mission that is now blocked because of this "filename" check. So is there a possibility for a RC3 before final release?

The bug is related to in-game event where player is using joystick and is suddenly denied of any input --> ship starts turning around slowly instead of staying still like it was supposed to in older FSO builds. I will try to get a more specific description and examples when I get a chance. (note that the joystick is perfectly calibrated in this case and doesn't make any twitch movements on its own)

Another potential bug that comes to my mind is how the optional framebuffer shockwaves react with FS1 explosions. Unlike with FS2 explosions which seem to work nicely, the FS1 era shockwave explosions can cause microlag and nasty looking square shaped distortions. Even the background nebulas can get 2 second long color changes, which never happens with FS2 shockwaves.

I will try to remember all the other oddities as well that I have encountered and post them here in the following days.  ;7

I've seen both of these bugs happen. My friend's joystick always craps out when we play multiplayer. And the shockwave nasties happen with both FS1 and FS2 for me. I posted a separate thread about it, I'm glad I'm not the only one who's seen it.