At long last! The first release of 2022 is upon us! No, this isn't a joke, honest!
no really, its genuine.Major Features- The 22.0.0 release features the Controls5 PR (aka multi-joy):
- adds the ability for users to map up to 4 controllers / joysticks (physical or virtual via third party tools) designated Joy-0 through Joy-3 (Joy-0 is the default)
- allows the mouse to be separately mapped from Joy-0 (Options menu to turn "on/off" the mouse now switches between "Mouse" and "Joy-0", default is "Joy-0")
- all controls may have up to two bindings per control, referred to as "primary" and "secondary" bindings.
- The -get_flags commandline option now reports joystick ID's and GUID's that can be used to assign their respective controller/joystick to Joy-0 etc.
Note: Knossos currently does not have the ability to use the multi-joy feature to its full extent. Users who wish to test using more than one controller/joystick in FSO must do this manually until then. Please consult the recently made Frequently Asked Questions wiki page for instructions on how to do so.
- The Timing system got an upgrade.
- Lafiel has done some splendid work with the model animation code, allowing mod developers to do more than just simple rotations and can actually do a bit of kinematic chain animations (Mechas, anyone? :nod:)
Change log: (chronologically ordered)
2022-03-29 | (#4116) prevent the ship select dialog from crashing if there are too many IFFs
2022-03-28 | (#4110) Don't ignore user-set LDFLAGS
2022-03-27 | (#4104) Fix LUA Steering Control Override
2022-03-27 | (#4107) remove Object.parent_type
2022-03-27 | (#4103) fix a FRED crash
2022-03-27 | (#4102) fix a bunch of FRED dialog problems
2022-03-26 | (#4097) Added error handling to map accesses in contronconfigdefaults parsing
2022-03-24 | (#4094) fix a few bugs with display names
2022-03-24 | (#3994) Coverity 1361855 Always free Vertices and Indices
2022-03-24 | (#4091) Fix Moveable SEXP Matching
2022-03-24 | (#4092) Fix edge case wrongly updating moveable
2022-03-21 | (#4088) Remove unneeded search of whole sexp node array from free_sexp
2022-03-20 | (#4086) patch a background bug in FRED
2022-03-20 | (#4083) small XSTR qol improvement
2022-03-20 | (#4077) patch some holes in the mission cleanup
2022-03-19 | (#4078) be a little more careful about converting wingman messages to Command messages
2022-03-19 | (#4082) Fix erroneous collision detection due to invalid canonical_prev_orient on inital-type animated turrets
2022-03-18 | (#4080) Improve Performance of Global to Local functions
2022-03-16 | (#4074) some debug console updates
2022-03-16 | (#4075) fix message list crash
2022-03-14 | (#4072) prevent decals from being used on invalid objects
2022-03-13 | (#4071) fix off-by-one error in text splitting logic
2022-03-12 | (#4070) Fix collisions with turrets causing physics bugs
2022-03-12 | (#4069) Remove new assert in `model_instance_local_to_global_dir`
2022-03-07 | (#4060) Fixes the version string in main.py
2022-03-10 | (#4068) Make Animation SEXP Validation Case Insensitive
2022-03-10 | (#4064) Targeting brackets should use the header's bounding box, not detail0's
2022-03-09 | (#4067) Fix moving submodel collision speed calculation
2022-03-09 | (#4065) Fix nested and animated submodel collisions
2022-03-08 | (#4063) swap bsp data before alignment
2022-03-07 | (#4059) two small but important warp fixes
2022-03-07 | (#4061) fix support ships breaking in in-mission jumps
2022-03-06 | (#4058) Clean out player t_plr before use
2022-02-23 | (#4044) Changes to build-release.yaml
2022-03-06 | (#4052) Repair Automated Forum and Nebula Scripts
2022-03-01 | (#4054) Fix render orientation for decals
2022-02-28 | (#4053) Fix uniform offset calcuation for decal header
2022-02-27 | (#4018) Fix qtFRED crash when using Edit Data
2022-02-24 | (#4051) Dont try to read chunk size if chunk type is 0
2021-11-17 | (#3785) Revert "Refactor CI scripts to make release builds more robust and flexible"
2022-02-22 | (#4047) Fixed incoherent case sensitivity for animation submodels
2022-02-22 | (#4045) fix time resuming when popups are closed
2022-02-21 | (#4043) fix the keep-safe-distance AI mode
2022-02-20 | (#4042) Fix issue #4040
2022-02-20 | (#4038) prevent Assert with glowpoints
2022-02-20 | (#4039) fix an edge case for ships destroyed before mission
2022-02-19 | (#4037) add some new scan features
2022-02-17 | (#4036) Improve costly RTT sanity check
2022-02-14 | (#4025) Mouse to joy0
2022-02-14 | (#3954) Treat Mouse as Joy0 if "turned on" in options menu
2022-01-09 | (#3905) Fix #3901: Inverted Controls Don't Save
2022-01-06 | (#3900) Fix 3892 Amendment
2022-01-06 | (#3898) Fix 3892
2021-10-03 | (#3688) Fix issue 3685
2022-02-17 | (#3915) Adds -deadzone parameter to command line
2022-02-17 | (#4031) add scripting support for submodels
2022-02-17 | (#4033) rename and document several model coordinate functions
2022-02-16 | (#4035) Expand scripting string functions
2022-02-15 | (#4030) clean up model point/dir/normal/orient functions
2022-02-15 | (#4032) fix another isValid scripting function
2022-02-14 | (#4029) Don't nullify axis_out[action] value when using mouse as joy
2022-02-14 | (#4026) a few scripting bugfixes
2022-02-14 | (#4024) Revert "Treat Mouse as Joy0 if "turned on" in options menu"
2022-02-13 | (#3988) Fix 3980
2022-02-13 | (#4022) another timestamp upgrade
2022-02-13 | (#4009) Restrict allowable characters for preset names
2022-02-13 | (#4019) Fix Aix Rotation Moveable
2022-02-12 | (#4014) event logging tweaks
2022-02-12 | (#4015) improve robustness of sexp operators
2022-02-10 | (#4012) Fix IK rotation localization
2022-02-07 | (#4007) fix the camera flicker in the lab
2022-02-06 | (#4006) fix missile detonation for computers with high FPS
2022-02-06 | (#4003) Hud gauge and string upgrades
2022-02-04 | (#4001) Preserve the table-defined offset for initial misc animation playback
2022-02-04 | (#4002) when changing the skybox, check to see if it's the same as the current one
2021-12-25 | (#3495) karajorma's SEXP containers, Part 5: Sexp_nodes
2021-10-12 | (#3462) karajorma's SEXP containers, Part 2: Persistence
2021-12-23 | (#3839) Clarify logging when loading thruster textures as static images
2021-12-24 | (#3841) Fix random selection of points inside/on spheres
2022-01-20 | (#3942) Remove _dup() functions from sexp_list_item in FRED and QtFRED
2021-10-20 | (#3739) Bump PLR/CSG versions and preserve compatibility when possible
2021-12-28 | (#3864) Add comment on why event_editor::OnCancel() is blank
2022-01-19 | (#3940) Remove unnecessary/leaky strdup() calls in sexp_list_item in FRED/QtFRED
2022-01-22 | (#3941) Update links and edit text in FRED's and qtFRED's About dialogs
2022-02-01 | (#3995) Fix Axis Rotation Moveable
2022-01-31 | (#3992) Fix limitations of GetColor script function
2022-01-31 | (#3993) Partially revert 3313 to fix missiles never dying
2022-01-31 | (#3989) point camera correctly when using set-camera-facing
2022-01-31 | (#3991) Fix edge case rollback crash
2022-01-31 | (#3990) regression fix for rotating submodels
2022-01-30 | (#3987) Fix Damage Gauge Display
2022-01-30 | (#3979) refactoring in preparation for model translation
2022-01-30 | (#3981) Fix Animation edge case for turret lookup with template and display name
2022-01-30 | (#3976) Improve Animation SEXP usability
2022-01-29 | (#3978) handle primary and secondary inversion explicitly and independently
2022-01-29 | (#3975) fix initial positions of submodels in FRED
2022-01-29 | (#3972) Various Animation Fixes
2022-01-29 | (#3974) use the whole submodel hierarchy in FRED
2022-01-28 | (#3970) replicate submodels that aren't associated with subsystems
2022-01-28 | (#3969) Fix sound not stopping for finished animations when playing in reverse
2022-01-27 | (#3961) Add `getHUDConfigShowStatus` for scripting
2022-01-27 | (#3966) Add axis rotation Animation Segment
2022-01-26 | (#3964) Enable `Use Cargo Icon` for briefing icons
2022-01-26 | (#3962) Inverse Kinematics for Animations
2022-01-26 | (#3965) Fix lab animation triggers
2022-01-04 | (#2958) Controls 4 and 5 - Multi-joy and Preset Files
2022-01-24 | (#3956) Fix reverse instant trigger edge case
2022-01-23 | (#3947) Fix/issue 3902
2022-01-23 | (#3950) some small timestamp fixes
2022-01-23 | (#3949) add IP version preference troubleshooting options
2022-01-23 | (#3953) some small fixes
2022-01-23 | (#3948) fix arrival delays and other mission time wonkiness
2022-01-22 | (#3936) allow dockpoints to be anchored to submodels explicitly
2022-01-22 | (#3918) Clean up Player_orders
2022-01-22 | (#3945) accommodate elapsed time during debugging
2022-01-21 | (#3944) fix training mission stats bug
2022-01-20 | (#3943) TBP warp fix
2022-01-19 | (#3939) update ffmpeg support for 5.0+ API changes
2022-01-19 | (#3923) Standalone fixes/optimizations
2022-01-19 | (#3938) log whether command briefing is using scroll buttons
2022-01-18 | (#3879) convert the FSO timestamp system to use SDL time
2022-01-18 | (#3937) fix missing texture bug on standalone
2022-01-17 | (#3932) Fix Bay Door Animations for Multi and Lone Player Ship
2022-01-16 | (#3931) Revert timestamp change for event music
2022-01-16 | (#3882) Fix first person glows
2022-01-16 | (#3927) FFmpeg deprecations fix for FFmpeg >= 5
2022-01-16 | (#3928) Properly calculate instant animations
2022-01-16 | (#3925) Allow AI flag for bay orientation to account for parent `uvec`
2022-01-15 | (#3924) Fix incorrect net signature for wave ships
2022-01-14 | (#3922) 3920 qtFRED save only saves once
2022-01-13 | (#3914) Fix issue #3912
2022-01-12 | (#3913) Add AI to Fix Negative Turret Ammo
2022-01-12 | (#3904) Animation Rework, Phase 4: Moveables
2022-01-09 | (#3910) Fix turrets sometimes being backwards
2022-01-08 | (#3880) Add tonemapping options to lab render settings
2022-01-08 | (#3885) Fix shadow check on lightshafts
2022-01-08 | (#3908) Fix text overflow on multi-related screen
2022-01-08 | (#3909) fix 3907
2022-01-08 | (#3872) make cfile root and file blocks dynamic
2022-01-06 | (#3897) fix first-of to return the correct arguments
2022-01-05 | (#3895) Revert timestamp changes for HUD
2022-01-05 | (#3891) Handle forgotten 0 case for new vecmat function
2022-01-05 | (#3893) Fix Particle `PageIn()` (V2)
2022-01-04 | (#3888) add game_settings flag to not target turrets
2022-01-03 | (#3886) move various skybox variables into the header file
2022-01-03 | (#3887) file loading performance fixes
2022-01-03 | (#3884) Fix Particles `pageIn()` to use actual number of frames
2021-12-21 | (#3838) Removed consts being set from uniforms to fix #3821
2021-12-07 | (#3810) Fixed mistake in lab camera control help
2021-12-02 | (#3801) Lt22
2021-11-21 | (#3791) guard against trying to animate non-existent submodels in more places.
2021-10-18 | (#3732) Protected against trying to animate non-existant submodels
2022-01-03 | (#3877) Animation Rework Phase 3, Turret fix
2022-01-03 | (#3881) Added ppc calculation initial value bounding and calculation fixes
2022-01-03 | (#3878) Timer preliminary cleanup
2022-01-01 | (#3857) PPC tonemapper values followup
2021-12-31 | (#3865) Fix scripted setting of weapon targets
2021-12-28 | (#3858) fix memory leak when reallocating ship subsystems
2021-12-23 | (#3817) improve PXO data validation code
2021-12-20 | (#3820) reduce memory required for bsp alignment
2021-12-23 | (#3844) fix multi awacs crash due to code init order
2021-12-24 | (#3819) improve handling of PXO lobby banners:
2021-12-29 | (#3866) Fix warnings/errors from clang and valgrind
2021-12-30 | (#3869) take pathtype extensions into account during file indexing
2021-12-29 | (#3868) set up awacs team arrays just the once
2021-12-29 | (#3867) reset object colliders after each mission
2021-12-30 | (#3873) make certain SEXP errors nonfatal
2021-12-30 | (#3871) fix a FRED crash caused by recent changes
2021-12-27 | (#3856) Use phys_info for max AB speed display instead of ship_info
2021-12-26 | (#3850) Fix weapons with submodel rotation firing
2021-12-26 | (#3847) Make secondaries use $energy consumed
2021-12-25 | (#3851) fix language indexing for custom languages
2021-12-24 | (#3846) Animation Rework Phase 3 - Fixes for Multi
2021-12-23 | (#3845) remove a redundant assert that throws false positives
2021-12-23 | (#3837) improve SEXP error handling a bit
2021-12-23 | (#3843) update polymodel_instance to reference object
2021-12-14 | (#3816) Fred UI updates
2021-12-14 | (#3811) Set Default Detail Levels to be Consistent at Ultra Settings
2021-12-11 | (#3814) add players directory to slow search
2021-12-11 | (#3813) fix file name getting trimmed in cf_get_file_list()
2021-12-11 | (#3637) Expose OSWPT to Lua and allow for LuaSEXP argument
2021-12-10 | (#3793) Animation Rework: Phase 3
2021-12-09 | (#3799) QTFred Player Orders Dialog
2021-12-08 | (#3798) Substitute Ship Label
2021-12-09 | (#3797) QTFred: Special Stats Dialog
2021-10-31 | (#3760) Fix Crash On second opening of select box cause by #3634
2021-12-08 | (#3704) Allow for arbitrary asteroid targets in missions
2021-12-08 | (#3800) Add functions to draw rectangles and images by passing the center position
2021-12-07 | (#3809) Fix Default Sound Levels in Game Settings Table
2021-12-04 | (#3806) Fix the Tonemapper strings
2021-12-02 | (#3805) Uncapitalize "Turret" in turret target recheck time
2021-12-02 | (#3803) Expose turret re-targeting delay
2021-11-24 | (#3796) Fix Weapon-Loadout-Specific Models
2021-11-21 | (#3734) clean up some inconsistencies in cfilesystem
2021-11-22 | (#3789) Correctly position tail for laser head on glows
2021-11-20 | (#3777) Allow drawing rotated bitmaps
2021-11-20 | (#3790) Change rectangle rotation to use radians
2021-11-20 | (#3771) Dont do passive lightning on destroyed subsystems
2021-11-19 | (#3787) Correctly size glow head-on bitmaps
2021-11-06 | (#3714) Split From #3674 Flags Dialog
2021-11-09 | (#3715) Split From #3674 Initial Status Dialog
2021-11-06 | (#3716) Split From #3674 Ship Editor Bugfixes
2021-11-09 | (#3717) Split From #3674 Goals Dialog
2021-11-18 | (#3781) Dont exclude primary targets from 'no dead subsys targeting'
2021-11-18 | (#3774) indicate ambiguous goal or event matches
2021-11-18 | (#3786) refactor submodel flags and add $rotate_accel
2021-11-17 | (#3783) Revert "Fix conditional in Build Nightly action"
2021-11-16 | (#3780) Fix conditional in Build Nightly action
2021-11-16 | (#3772) Add ship flag for toggling ship passive lightning
2021-11-15 | (#3779) Use PAT for nightly trigger
2021-11-13 | (#3765) allow subtitles to use different line spacing
2021-11-11 | (#3762) Ai use lock status for optimum range choice
2021-11-10 | (#3676) Expose nebula visibility factors
2021-11-08 | (#3752) Add destroy-instantly-with-debris
2021-11-07 | (#3767) guard against CTD in sexp variables
2021-11-07 | (#3761) polish sexp syntax checking
2021-11-06 | (#3745) spelling fixes
2021-11-05 | (#3764) fix a major bug in ba.rand32f
2021-11-01 | (#3748) Add head-on laser bitmaps
2021-11-01 | (#3749) Refactor CI scripts to make release builds more robust and flexible
2021-11-01 | (#3743) make gamesnd a little more robust
2021-10-30 | (#3741) fix: cmdbrief not saving current stage text by closing the window
2021-10-30 | (#3755) add script-eval-bool
2021-10-30 | (#3750) better syntax checking for the special argument
2021-10-27 | (#3754) fix escort list cull test which removed friendly stealth ships by mis…
2021-10-22 | (#3746) add scripting virtvar for Neb2_awacs
2021-10-22 | (#3697) Add animated nebula poofs
2021-10-22 | (#3720) Remove 'stream' weapon handling
2021-10-21 | (#3738) Add nullptr safety for animations
2021-10-21 | (#3588) Add Bomb-locking secondaries
2021-10-20 | (#3736) Removing dead code paths
2021-10-20 | (#3724) make hud gauge checking more robust
2021-10-19 | (#3733) Add 'passive' lightning arcs to ships
2021-10-18 | (#3735) Fix Turrets using ammo broken by #3589
2021-10-11 | (#3718) Fix load order problems caused by Iff vectorization
2021-10-17 | (#3731) migrate and augment mission/state end hooks
2021-10-05 | (#3609) Animation Overhaul: Phase 2
2021-10-15 | (#3698) Add +arrival rvec for ship bays
2021-10-15 | (#3728) upgrade the replace-texture sexp
2021-10-14 | (#3726) pre-translation cleanup
2021-10-14 | (#3722) Removed unused constants from Lighting.sdr.
2021-10-13 | (#3656) Scale distant combat related effects so they stay visible
2021-10-11 | (#3719) rename and adjust scope of Rotators_locked flag
2021-10-10 | (#3713) reorganize submodel rotation
2021-10-10 | (#3691) Add velocity inheritance for particle effects
2021-10-10 | (#3707) Custom data in tables, tackling #3699
2021-10-10 | (#3702) Use real names for ships/weapons in cheat commands
2021-10-09 | (#3711) Add Per-Ship Class Wingmen Status Dot
2021-10-09 | (#3703) Add New Options to Wingmen Gauge
2021-10-09 | (#3687) Add getColor to lua gr library, which returns the active color
2021-10-05 | (#3696) Fix a possible crash with `ship_secondary_bank_has_ammo`
2021-10-07 | (#3701) Fix Support ships not undocking
2021-10-08 | (#3436) Simplistic Ship Transparency
2021-10-07 | (#3608) enhance the perform-actions family of sexps
2021-10-06 | (#3677) Add 'No evasion' weapons
2021-10-05 | (#3683) Fix warnings concerning ballistic weapons
2021-10-04 | (#3694) Safety for replace-texture
2021-10-05 | (#3671) expand some sexp documentation
2021-10-05 | (#3695) Initialize team visibility before using it
2021-10-05 | (#3665) Actually fix the goal's target being sent
2021-09-28 | (#3661) Fix homing child weapons in niche circumstances
2021-10-02 | (#3614) Exclude dead subsys from targeting
2021-10-01 | (#3679) patch up scripted kills
2021-10-02 | (#3623) Allow Lua Scripts to draw rotated rectangles
2021-10-01 | (#3589) Add ammoless secondaries
2021-10-01 | (#3684) add OnShipDeathStarted scripting hook
2021-10-01 | (#3670) Clean up beam type naming scheme
2021-09-30 | (#3632) Add full team option to change-iff SEXP
2021-09-30 | (#3630) Expose Outer and Inner Radii to the Lua API in the weaponclass type
2021-09-30 | (#3634) Vectorize IFF Defs for unlimited IFFs
2021-09-30 | (#3660) LUA: Add iterator over ships in mission
2021-09-29 | (#3678) bump version to 21.5.x
2021-09-28 | (#3600) Simplify QPlainTextEdit usage
2021-09-28 | (#3647) add hide-in-mission-log ship flag
Deprecations:None
Deprecations are a mechanism in FSO where a certain feature or aspect of the engine has changed or is no longer supported. Since this would normally break existing mods we have the mod table feature "
$Target Version:" with which a mod can specify what version of FSO it was developed with. The features listed above will be removed or changed when the target version of a mod is at least the version released in this post.
Previous 21.4 Release ThreadLaunchers, if you don't have one already:
All platforms: For every day use, we recommend
Knossos, an integrated solution for downloading and launching mods.
Hidden Text: Alternative Launchers Show Cross-platform:
wxLauncher 0.12.x Test Build (ongoing project for a unified launcher, you should upgrade to the latest RC/test build if you have not yet)
Important: For best compatibility with FSO 3.8 and later you should use at least wxLauncher 0.12.
Windows:
Launcher 5.5g (
Mirror) (
Mirror) Not compatible with Windows 8+, use wxLauncher above
OS X: Soulstorm's
OS X Launcher 3.0Linux:
YAL or
by hand or whatever you can figure out.
Windows (32/64-bit)Compiled using GitHub Actions on Windows Server 2019 (10.0.17763), Visual Studio Enterprise 201964-bit: fs2_open_22_0_0-builds-x64-SSE2.zip32-bit: fs2_open_22_0_0-builds-Win32-SSE2.zipThis one is based on the SSE2 Optimizations from the MSVC Compiler.Hidden Text: Alternative builds Show Linux 64-bitCompiled with Ubuntu 16.04 LTS 64-bit, GCC 5fs2_open_22_0_0-builds-Linux.tar.gzThese builds use a mechanism called
AppImage which should allow these builds to run on most Linux distributions. However, we recommend that you compile your own builds which will result in less issues.
Alternatively, if there is a package in your software repository then you should use that. If you are the maintainer of such a package for a distribution then let us know and we will include that here.
OS XNot available We recently lost access to our Mac CI environment which we usually used for compiling these builds so for the time being, there will be no builds for this OS.
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 (
Mirror) (
Mirror)
Known issues: