Engine:FNA

From PCGamingWiki, the wiki about fixing PC games
FNA
Engine - FNA - logo.svg
Developers
Website

Games

Game Developer Publisher First release Available on
A Virus Named TOM Misfits Attic 1 August 2012
Windows
macOS (OS X)
Linux
Amorous Team Amorous Snaggletooth Studios 13 April 2018
Linux
macOS (OS X)
Windows
Apotheon Alientrap Games 3 February 2015
Windows
macOS (OS X)
Linux
Axiom Verge Thomas Happ Games 14 May 2015
Windows
macOS (OS X)
Linux
Bastion Supergiant Games Warner Bros. Interactive Entertainment 16 August 2011
Windows
macOS (OS X)
Linux
Before the Echo Iridium Studios 20 October 2011
Windows
macOS (OS X)
Linux
Bleed Bootdisk Revolution 28 November 2012
Windows
macOS (OS X)
Linux
Bleed 2 Bootdisk Revolution 8 February 2017
Windows
macOS (OS X)
Linux
Blueberry Garden Erik Svedäng 10 June 2009
Windows
macOS (OS X)
Linux
Capsized Alientrap Games 29 April 2011
Windows
macOS (OS X)
Linux
Celeste Matt Makes Games 25 January 2018
Windows
macOS (OS X)
Linux
Charlie Murder Ska Studios 12 May 2017
Windows
macOS (OS X)
Linux
Chasm Bit Kid 31 July 2018
Windows
macOS (OS X)
Linux
Cryptark Alientrap Games 20 June 2017
Windows
macOS (OS X)
Linux
Dust: An Elysian Tail Humble Hearts Microsoft Studios 24 May 2013
Windows
macOS (OS X)
Linux
Escape Goat Magical Time Bean 14 June 2012
Windows
macOS (OS X)
Linux
Escape Goat 2 Magical Time Bean Double Fine Productions 24 March 2014
Windows
macOS (OS X)
Linux
Fez Polytron Corporation Trapdoor 1 May 2013
Windows
macOS (OS X)
Linux
Fist Puncher Team2Bit Adult Swim Games 21 June 2013
Windows
macOS (OS X)
Linux
Flinthook Tribute Games 18 April 2017
Windows
macOS (OS X)
Linux
Fossil Echo Awaceb 8 July 2016
Windows
macOS (OS X)
Linux
Gateways Smudged Cat Games 22 June 2012
Linux
macOS (OS X)
Windows
Gnomoria Robotronic Games 23 February 2016
Windows
macOS (OS X)
Linux
Hacknet Team Fractal Alligator Surprise Attack Games 12 August 2015
Windows
macOS (OS X)
Linux
Hidden in Plain Sight Adam Spragg 16 July 2014
Windows
macOS (OS X)
Linux
Melody's Escape Icetesy 20 May 2016
Linux
macOS (OS X)
Windows
Mercenary Kings Tribute Games 25 March 2014
Windows
macOS (OS X)
Linux
MidBoss Kitsune Games 25 May 2017
Windows
macOS (OS X)
Linux
Murder Miners JForce Games 25 July 2014
Linux
macOS (OS X)
Windows
Owlboy D-Pad Studio IndieBox 1 November 2016
Windows
macOS (OS X)
Linux
Poöf Arkedo Studio Neko Entertainment, Plug In Digital 8 November 2013
Linux
macOS (OS X)
Windows
Press X to Not Die All Seeing Eye Games 6 October 2017
Windows
macOS (OS X)
Linux
Quadrilateral Cowboy Blendo Games 25 July 2016
Windows
macOS (OS X)
Linux
Reus Abbey Games 16 May 2013
Linux
macOS (OS X)
Windows
Rex Rocket Castle Pixel 5 August 2014
Windows
macOS (OS X)
Linux
River City Ransom: Underground Conatus Creative 27 February 2017
Windows
macOS (OS X)
Linux
Rogue Legacy Cellar Door Games 27 June 2013
Windows
macOS (OS X)
Linux
Salt and Sanctuary Ska Studios 17 May 2016
Windows
macOS (OS X)
Linux
Shipwreck Brushfire Games 25 February 2014
Windows
macOS (OS X)
Linux
Skulls of the Shogun 17-BIT 29 July 2013
Windows
macOS (OS X)
Linux
Solaroids: Prologue DynF/X Digital
Windows
macOS (OS X)
Linux
Soulcaster Magical Time Bean 10 February 2012
Windows
macOS (OS X)
Linux
Soulcaster II Magical Time Bean 10 February 2012
Linux
macOS (OS X)
Windows
SpeedRunners DoubleDutch Games, TinyBuildGames TinyBuildGames 19 April 2016
Windows
macOS (OS X)
Linux
Staxel Plukit Humble Bundle
Windows
Super Rad Raygun TRU FUN Entertainment Rooster Teeth Games 8 November 2016
Windows
macOS (OS X)
Linux
Terraria Re-Logic 16 May 2011
Windows
macOS (OS X)
Linux
The Adventures of Shuggy Smudged Cat Games 13 June 2012
Windows
macOS (OS X)
Linux
The Dishwasher: Vampire Smile Ska Studios 12 May 2017
Windows
macOS (OS X)
Linux
Tooth and Tail Pocketwatch Games 12 September 2017
Windows
macOS (OS X)
Linux

... further results

Information[edit]

FNA is an open source reimplementation of the Microsoft XNA Framework, specifically the 4.0 Refresh revision. It started as a branch of MonoGame called "MonoGame-SDL2".

The goal of the project is to recreate a fast, portable, and accurate XNA4 runtime library that prevents the need for code/content changes on the part of the XNA game developer. The currently supported platforms include Windows, Mac OS X and GNU/Linux, with further platform support including those supported by SDL2.

Joysticks[edit]

About XNA Joystick Support[edit]

XNA, being a Microsoft technology, centered its controller input around the Xbox 360 Controller. Because of this, the XNA API is not cleanly compatible with custom controllers, including the Xbox 360 Controller when not being read by XInput. However, a config format was developed to allow binding of joystick input values to a virtual 360 controller, which then gets read by XNA games.

Automatic Configuration: SDL_GameController[edit]

Since FNA uses SDL2 as its base library, we also get the benefit of SDL_GameController, a new subsystem added by Alfred Reynolds at Valve. This takes configurations for known controllers and automatically configures them for the virtual 360 controller, so if your controller is recognized, manual configuration is not necessary. If you run an FNA title through Steam, your controller will automatically be configured using the Big Picture Mode configuration.

About GUIDs[edit]

In addition to expanded configuration support, FNA provides the GetGUIDEXT extension that allows XNA devs to pull in a trimmed/standardized GUID string to determine the controller hardware and react accordingly. TowerFall Ascension uses this for button icon support, for example.

Consider this GUID from the PlayStation 4 controller:

// This is the string reported by SDL2's SDL_JoystickGetGUIDString:
// https://wiki.libsdl.org/SDL_JoystickGetGUIDString
// Note characters 9-12 and 17-20.
030000004c050000c405000011010000
// This is the GUID string returned by FNA. Get it? 
4c05c405

For XInput controllers on Windows, the GUID string is simply 'xinput'.

DualShock 4 Light Bar Support[edit]

Currently only supported on Linux, with kernel 3.15 and higher or SteamOS version 137 and higher.

FNA supports the DualShock 4 light bar, although it requires game developers to make use of the SetLightBarEXT extension to set the color of the light bar by way of adjusting the brightness of the RGB LEDs. Users also needs to allow write permission to brightness files per the below instructions before the game can make use of the light bar.

For users: Enable light bar support for FNA games that supports it
  1. Open a terminal window and obtain root access using e.g. su root or appropriate alternative.
  2. Allow write permission to the brightness files for the red/blue/green LEDs via /sys/class/leds/. For example:
cd /sys/class/leds/
chmod 777 0003:054C:05C4.0021:red/brightness
chmod 777 0003:054C:05C4.0021:green/brightness
chmod 777 0003:054C:05C4.0021:blue/brightness

Notes

The folder noted above can change per instance, but the constant value is 054C:05C4, the hardware ID for the DualShock 4. For the DualShock 4 Slim, the constant value is 054C:09CC.