Skip to content

Instantly share code, notes, and snippets.

@Eoin-ONeill-Yokai
Last active November 6, 2023 03:15
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Eoin-ONeill-Yokai/5016e28506071165578eb8c181700b0f to your computer and use it in GitHub Desktop.
Save Eoin-ONeill-Yokai/5016e28506071165578eb8c181700b0f to your computer and use it in GitHub Desktop.
FINAL FANTASY IX on Linux / Steam Deck (Moguri Mod / Alternate Fantasy) Proton Installation Guide and Bug List

Document Revision 1.2 [07/15/22]

Author Notes: Thanks to everyone who has been testing or using this installation process. I've refined the instructions to try to make this installation as simple and cross platform as humanly possible. I've also updated the Steam Deck instructions now that I have had mine for a while and thoroughly tested the installation process.

ffix_manjaro-kde

Basic Game Installation

Final Fantasy IX should be installed like any standard steam game through the steam client. Ragarding compatibility layers: it should work with a stable release of Proton 7 (7.0.X recommended) through the steam client. This also includes controller support if you are using Steam's native controller configurations. If you have any problems with a given Proton release, I would also recommend trying the latest GloriousEggroll proton builds to see if those work any better.

If you're having any specific questions about the game, please refer to the FAQ section below...

Glossary

  • FINAL FANTASY IX COMMON DIR - The directory to your FINAL FANTASY IX installation. Steam installs game assets into a "steamapp/common" directory, which is generally located in ~/.steam/Steam/steamapps/common with a default steam library configuration.

  • Memoria Mod Manager - The framework for all FFIX modding on PC -- used to add additional content or game logic to the game. It can be configured using a configuration file found in the FINAL FANTASY IX COMMON DIR named Memoria.ini.

  • Moguri Mod is a HD upscale mod that makes the game look like a proper HD remaster. Thanks to the work by Silicon Studios to refine the player models, combined with the efforts of the Moguri team, we can achieve a near-perfect looking remaster of the original -- warts and all.

  • Alternate Fantasy mod is a highly recommended mod that adjusts balance and fixes many long standing bugs (including moves that didn't work as expected, such as Steiners various debuff abilities). It also tweaks the mechanics and starting abilities around to refine the overall gameplay experience without breaking the game's story or vision. It also adds some extra dialog and content, but it's done tastefully and fits the vision of the original game.

Moguri Mod Installation (Tested on MoguriMod 8.3)

Moguri Mod is an HD visual update for all prerendered backgrounds, textures and other compressed assets. You can read more about the mod on their website. There are some additional things to note about Moguri Mod though -- it generally comes with a preexisting installation of the Memoria mod manager. It can be a good introduction to basic FFIX modding due to the inclusion of Memoria as it will be relatively easy to install. However, its inclusion also leads to some circumstances where compatibility between it and other mods are not guaranteed due to moguri having an out of date memoria mod manager.

Moguri mod installation is tricky on linux, but installing it will be a good gateway into the installation of other mods that don't require the use of a dedicated windows installers. I might try writing my own custom linux-native open source installer at some point, but the following will suffice for now!

Steps (For Steam Deck)

Since the Steam Deck is a system with an atomic operating system (read only file system) that also doesn't support layering like Fedora's SilverBlue (Please, Valve, add some kind of layering!), we won't have access to a system level version of wine that we can use to quickly run the moguri mod. We need to do an alternate set of steps to get moguri mod working installing correctly in this circumstance.

  • Download Moguri Mod from the website. Extract the contents to your ~/Downloads folder (this will be important for later).

  • Install Bottles from the Discover software center.

  • Install Flatseal from the Discover software center.

  • Using Flatseal, we can modify the permissions of any flatpak installed on our steam deck -- We'll need to modify our Bottles permissions in order to get moguri's installer running properly. Launch flatseal. On the left hand side, you will see a list of all flatpaks installed on your system. Scroll through that list until you find Bottles and select it. Now scroll through the right-hand list of options until you see the Filesystem category. This is where we will configure which files and folders Bottles has access to. For maximum security, I recommend you use the Other Files toggle, add ~/Downloads and also add whichever steamapps directory your Final Fantasy IX is currently installed within. For example, this could be ~/.local/share/Steam/steamapps for internal memory or /run/media/mmcblk0p1/steamapps/ for the currently inserted sd card. Your configuration should look something like the following screenshot:

Screenshot_20220715_200955

  • Launch bottles and create a new bottle named "Modding". This is achieved by pressing the + icon on the title bar of the window. The environment type setting shouldn't matter in this case, but since you might want to reuse this for other mod tools, I would suggest using the Gaming environment configuration.
  • Next, open a terminal (Konsole in the start menu.)

Depending on where you've installed FFIX, the following command will differ. When using the Steam Deck's internal memory storage, you will need to type the following:

ln -s ~/.local/share/Steam/steamapps/common/FINAL\ FANTASY\ IX ~/.var/app/com.usebottles.bottles/data/bottles/bottles/Modding/drive_c/FFIX_STEAM_FOLDER

Otherwise, if you've installed Final Fantasy IX to an external storage (in this case, the inserted sd card) the command will look like the following:

ln -s /run/media/mmcblk0p1/steamapps/common/FINAL\ FANTASY\ IX ~/.var/app/com.usebottles.bottles/data/bottles/bottles/Modding/drive_c/FFIX_STEAM_FOLDER

To summarize, we are creating a symbolic link between our Final Fantasy IX Common directory and our bottle environment where we will run the executable. We need to do this step since Moguri Mod's installer is broken and will not allow for folder navigation when run through wine. Setting it up this will will allow us to make use of the default folder configuration of the installer, and you will simply be able to press "next" at this step of the install.

  • In bottles, click on the newly created Modding bottle. Then simply click Run Executable and point it to your moguri mod installer.
  • When the moguri mod installer opens, simply click next to all pages of the installation process and wait for installation to fully complete. It will take some time due to the compression levels of the zipped contents.
  • When finished, you can choose to remove the Modding bottles environment or keep it around for reuse later.

Steps (For Generic Linux Distro)

  • Install a system level version of wine or wine-staging. Both worked for me, so use whatever is easiest for you.
  • Download the Moguri Mod installer from their website. Extract the contents to a known directory. For this example, I will assume your moguri installer is extracted in the folder ~/Downloads/MoguriMod_*.*.*.*/ with the asterixes being placehoders for the proper version number. Make any modifications to acommodate for custom extraction locations.
  • Open your terminal and run the following:
cd ~/Downloads/MoguriMod_*.*.*.*/
mkdir -p ~/.pfx/moguri/drive_c
ln -s ~/.local/share/Steam/steamapps/common/FINAL\ FANTASY\ IX ~/.pfx/moguri/drive_c/FFIX_STEAM_FOLDER
WINEPREFIX=~/.pfx/moguri wineconsole ~/Downloads/MoguriMod_*.*.*.*/MoguriMod_*.*.*.*.exe
rm -r ~/.pfx/moguri

To summarize what we're doing here, we're running the moguri installer in a custom wine prefix and symlinking the real Final Fantasy IX steam folder to the location of the default value of moguri's installation path field. We do this because, as of April 2022, the moguri installer's file browser does not work correctly when running through wine compatibility layers.

  • When the moguri mod installer opens, simply click next to all pages of the installation process and wait for installation to fully complete. It will take some time due to the compression levels of the zipped contents.

  • Boot FFIX and make sure to start playing the game for about 10 minutes to verify that the new backgrounds are properly installed. Currupt installations will result in scrambled background tiles, so they will be noticeable within the first few minutes of game-time.

Bugs (Moguri) (As of December 2021):

  • The last cutscene was broken in my installation of moguri mod and would result in a crash. This was solved by moving [FINAL FANTASY IX COMMON DIR]/MoguriFiles/StreamingAssets/ma/mbg116.bytes to the root of the FFIX folder and renaming it to mbg116.bytes.bak. This reverts the last cutscene content to use the non-moguri mod assets, which resolved the crash. FWIW, this is also an issue on some Windows installs as well. Of course, this also means that the first few minutes of the last cutscene will not properly use the upgraded background assets.

Alternate Fantasy Mod (and Bugs)

Alternate fantasy is simple to install once Moguri Mod (or, if you choose, Memoria Mod Manager) is installed. Simply extract the assets into the FINAL FANTASY IX COMMON DIR folder and make sure to add the folder name to the active mods configuration line -- found near the end of the Memoria.ini configuration file.

Generally speaking, AF seems to have more bugs and undefined behavior when running through Moguri Mod compared to standard Memoria Mod Manager installs. This likely has to do with incompatible Memoria versions -- something that hopefully gets resolved in the future.

Alternate Fantasy BUGS (When running through Moguri Mod's Memoria)

SPOILERS:
  • Beatrix doesn't show up as a playable character in the install I tried. Within the Alternate Fantasy mod, she should show up as a playable character after obtaining the Hilda Garde 3 (what would have been the end of Disc 3 on the PSX version.)

  • Necron (lass boss fight) is glitched in the version of AF I tested. I'm unsure if this is unique to this linux install or not, but the boss is significantly more difficult due to ATB timing being extremely tight which results in him taking a few turns in a row. It's not unbeatable with a little bit of grinding, but certainly buggy compared to the vanilla install.

  • Ragtime Mouse puzzles would show multiple questions, sometimes with neither of them being the actual question asked. I haven't tested this on windows.
  • Some bosses seem to call out abilities and use a completely different one. This might be a pointer error, and could perhaps be unique to the linux installation. I haven't verified this yet.

QA

  • My game doesn't boot and is stuck in "Playing" state on the steam client. What should do I do?

    • You can try exiting and reopening steam (to ensure all child processes are killed by the steam client), or open your system monitor tool (changes from distro to distro) and kill any wine/proton/steam related processes, or simply reboot your computer to start fresh. After doing this, your game should hopefully work as expected.
  • My game won't work after doing the above, or this game has x or y bug on linux that isn't present on windows. What can I do to fix this?

    • To ensure that proton, wine, dxvk and more get improved, please take the time to file a bug report to Valve's proton bug list for the game with any details deamed relevant by Valve's bug report process. This goes doubly for those running the game on the Steam Deck.

Gamescope Settings

I would recommend running Final Fantasy IX on steam with gamescope installed and the following launch options:

gamescope -h 1080 -f -e -- %command%

This will give you a fullscreen gamescope session w/ proper mouse cursor support.

Memoria.ini Configuration

Most of this is up to the user, but I would recommend using 20 frames per second for battle animation playback. While it's tempting to go for 30 frames per second, most of the animations were authored for 15 fps and thus would look to be double the speed and unnatural compared to the PSX version of the game. Until someone reauthors all of the animations for 30fps, I think 20fps is the nicer looking configuration.

Closing Thoughts...

Final Fantasy IX on the PC is slowly becoming what I would call the definitive version of FFIX, especially with the above mods installed. Moguri obviously adds a level of polish to the background assets that are missing from the PC version, while Alternate Fantasy provides a rebalance that adds some more difficulty and minor additional content that fits within the vision of the original game.

@NextGenRyo
Copy link

I don't u understand. If you create a dummy prefix, the game will not be in it, So why install moguri in it. Can you maybe create a video to include in your instructions.

@Eoin-ONeill-Yokai
Copy link
Author

Eoin-ONeill-Yokai commented Mar 10, 2021

@mixalis1987 The problem is that the installer doesn't properly find the game through wine anyway, and will install all the necessary resources in the wrong folder (usually in Program Files/Moguri Mod or something like that.) Trying to manually set the directory via the installer doesn't seem to change anything, which I'll go ahead and say is more of an issue with the installer than WINE itself (I've never experienced this with any other WINE installation.)

My solution was to setup a temporary wine directory, run the installer, and manually move the remaining resources to the correct folders. IIRC, memoria mod and others will properly install, it will just be missing the necessary binary resources and mod files.

@DistantThunder
Copy link

PSA: Latest version of Moguri Mod at this time (8.2.1.2) needs Proton/Wine 6.x. Otherwise it will crash on unimplemented functions:

[000000E8:] EXCEPTION handling: System.EntryPointNotFoundException: LoGetEscString assembly: type: member:(null)
[000000E8:] EXCEPTION handling: System.TypeInitializationException: The type initializer for 'MS.Internal.TextFormatting.TextStore' threw an exception.
[000000E8:] EXCEPTION handling: System.NotImplementedException: Managed.TextFormatting.FullTextLine.GetRunMetrics for MS.Internal.Text.TextSpanModifier

@Eoin-ONeill-Yokai
Copy link
Author

I haven't had any issues on the latest proton experimental lately.

@Knurek-NC
Copy link

you need to change the Deck symlink command - you state to make a Bottle called Modding and try to link to a directory called modding, since Linux FS is case sensitive it fails

@Eoin-ONeill-Yokai
Copy link
Author

you need to change the Deck symlink command - you state to make a Bottle called Modding and try to link to a directory called modding, since Linux FS is case sensitive it fails

Ah, the version of bottles I tested on only made folders lower case. I will update it to reflect the new version.

@jsarje
Copy link

jsarje commented Jul 15, 2022

Trying on my steam deck am getting an error about failing to extract when I try to run the executable in bottles. Any ideas?

@Eoin-ONeill-Yokai
Copy link
Author

Eoin-ONeill-Yokai commented Jul 16, 2022

Trying on my steam deck am getting an error about failing to extract when I try to run the executable in bottles. Any ideas?

@shrimma Hi there,

Sorry for the inconvenience; My instructions were out of date. I tested it out on my Deck (which I received just a few weeks ago) and noticed that the Bottles permissions were not set up correctly. Your Bottles application needs to be granted permission to access various folders on your steam deck using a program called Flatseal. I've added instructions for doing exactly that. I've also added details on how to deal with SD card installations, if that is of interest to you.

Please give the installation another try using the updated readme. Thanks!

@jsarje
Copy link

jsarje commented Jul 18, 2022

Amazing thanks for the quick response. I since got it working using the alternate method of adding the installer exe as a non steam game and pasting in the file path. But I'm sure your updated instructions will help someone else out.

@noelbautista91
Copy link

Hey @Eoin-ONeill-Yokai , thanks for this guide! At the time of writing, Proton Experimental was the right version. You can lock it in at Proton 7.0-x, as the current experimental doesn't work. I haven't tried Proton 8.

Also for those who aren't fluent in Linux, you can do the following:

  1. Copy MoguriMod....exe to the FFIX folder (~/.steam/steam/steamapps/common/FINAL FANTASY IX)
  2. On Steam, Add MoguriMod....exe as a non steam game (Add a Game -> Add a Non-Steam Game)
  3. Right click on MoguriMod, click Properties, click Compatibility, check Force the use of a specific Steam Play compatibility tool, then select Proton 7.0-x. At the time of writing, Proton 7.0-6 works, but I think any Proton 7.0 should work.
  4. Back on Steam, hit Play on MoguriMod then go through the installation. It should succeed.
  5. MoguriMod will install the correct files in the right place.
  6. Remove MoguriMod as a Steam game. Right click on MoguriMod, hover over Manage, then click Remove Non-Steam Game from Library
  7. Hitting Play on FFIX should now launch the MoguriMod menu, where you can toggle options on and off.

There might be times that the installer won't work. If that's the case, you can simply copy the contents of MoguriMod...FILES.zip into the FFIX directory.

If that messes up your install, just hit Verify Game Files on FFIX or reinstall it. Or create back up copies of the game files before overwriting stuff.

@Eoin-ONeill-Yokai
Copy link
Author

Eoin-ONeill-Yokai commented Nov 6, 2023

@noelbautista91 Thanks for the update. I'm glad this guide is finding other users. I'll update that Proton 7.0-X is the recommended stable version.

I hope to make a CLI utility to make this modding (and other FFIX mods, and games even) easier on the linux landscape. It would be nice to have a tool that made the executable extraction process as easy as possible with possible version management. The installer situation creates a lot of headaches and a mod manager / adapter tool would be useful for other games as well. (I'm thinking Oblivion, FFVII, and others need guidance here as well.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment