Apotheon

Apotheon

Not enough ratings
Better aim with the controller (bug workaround)
By Major Gnuisance
Fix for a bug that makes aiming with the controller snag around the cardinal directions, due to improper use of deadzones in the game.
   
Award
Favorite
Favorited
Unfavorite
Introduction
tl;dr: put this[github.com] in the game's files. Doesn't work on Windows because the Windows version uses XNA, not FNA. (But if you can make the game work with FNA on Windows the fix should work.)

Apotheon's control scheme uses the right stick to aim your blows and shots.

This is fine, except for the fact that the deadzone it applies to the right stick makes the aiming reticle snag around the cardinal directions (Up, Down, Left, Right).

This guide tries to fix this problem by changing the kind of deadzone that's applied by default in the copy of the FNA library[github.com] that's included in the game files.

Below are two ways to go about it, depending on your expertise and trust in random people on Steam.

  1. Just give me the fix (simple) provides a download link to a modified FNA.dll, for you to replace in the game's files.
  2. Show me the code (not so simple) tells you how to build FNA.dll yourself from source code.

Attention

This guide was tested on Linux only.
It probably works on MacOS too, but I can't make any promises.
Won't work on Windows because the Windows version uses XNA, not FNA.

Instructions for building from source code are for Linux.
MacOS is probably similar.
Just give me the fix
Download FNA.dll from this page[github.com] and use it to replace the one that came with the game.

I highly recommend you to keep a backup of the original by renaming it to something like FNA-original.dll.
If you come across any problems you can just go back to using the original.

(If you didn't make a backup, just ask Steam to verify the integrity of the game's files and it'll download the original again.)
Show me the code
You can get the modified source code for FNA.dll in three ways.

Pick one:
  1. Download and extract FNA-1711-apotheon-fix.zip from this page.[github.com]
  2. git clone --branch 17.11-apotheon-fix --depth 1 --recursive https://github.com/major-gnuisance/FNA.git
  3. See section I don't trust your repository for instructions on getting the code from the official repository and patching it

Then proceed to Building from source for instructions on how to build.
Building from source
  1. Make sure you have the Mono development packages for your distribution.
    e.g., in Debian 9:
    sudo apt update && sudo apt install mono-devel
  2. From the root of the project, where the Makefile is, run:
    make release
  3. Grab your freshly built library from bin/Release/FNA.dll
I don't trust your repository
Here's how to go about without trusting me or my repository:

  1. Get the source from the official repository:
    git clone https://github.com/FNA-XNA/FNA.git cd FNA git checkout 17.11 git submodule init
    Alternatively, get FNA-1711.zip from the release page[github.com] and extract it.
  2. Save this as apotheon-fix.patch:
    diff -ru0 FNA-17.11/src/Audio/Cue.cs FNA-17.11-apotheon-fix/src/Audio/Cue.cs --- FNA-17.11/src/Audio/Cue.cs 2017-10-01 10:36:50.000000000 +0100 +++ FNA-17.11-apotheon-fix/src/Audio/Cue.cs 2018-04-29 17:40:47.674993254 +0100 @@ -637 +637,2 @@ - if (INTERNAL_category.crossfadeType == CrossfadeType.Linear) + if (INTERNAL_category.crossfadeType == CrossfadeType.Linear || + true) // Hack to avoid getting stuck in level transitions in Apotheon -Major Gnuisance @@ -660 +661,2 @@ - if (INTERNAL_category.crossfadeType == CrossfadeType.Linear) + if (INTERNAL_category.crossfadeType == CrossfadeType.Linear + || true) // Hack to avoid getting stuck in level transitions in Apotheon -Major Gnuisance diff -ru0 FNA-17.11/src/Input/GamePad.cs FNA-17.11-apotheon-fix/src/Input/GamePad.cs --- FNA-17.11/src/Input/GamePad.cs 2017-10-01 10:36:50.000000000 +0100 +++ FNA-17.11-apotheon-fix/src/Input/GamePad.cs 2018-04-29 17:41:35.430984823 +0100 @@ -68 +68 @@ - GamePadDeadZone.IndependentAxes + GamePadDeadZone.Circular // Originally was IndependentAxes. -Major Gnuisance
  3. Apply the patch
    patch -p1 <apotheon-fix.patch

Then proceed to Building from source
Acknowledgements
A big thank you to Ethan Lee (aka flibitijibibo[www.flibitijibibo.com]) for writing FNA, making it available under a FOSS[en.wikipedia.org] license and porting a ton of games to GNU/Linux, including Apotheon!
1 Comments
Discipline 30 Sep, 2022 @ 8:08pm 
pc version of the game doesn't have FNA.dll, anyone knows what the pc version name is?