Art by Mnemorie
Fahrenheit is a reverse-engineering project for the Final Fantasy X and X-2 HD Remasters.
It is also, in source-code form, a mod framework for the games. It allows you to freely hook game functions and distribute mods in the form of loadable DLLs. Fahrenheit bootstraps and hosts the .NET runtime within the games, allowing you to write mods in any compatible language.
The knowledge gathered by the project underpins many tools and mods for the game, such as the AI/VI TAS, Cutscene Remover mod, Karifean's FFXDataParser, and more.
Many people have made tremendous efforts to tackle this game over the years, and some have even succeeded in creating amazing mods for these timeless games. Unfortunately, almost all such efforts were made by lone individuals who chose not to publicize their methods and share their knowledge. Even when they did, their knowledge may have been lost to time and is exceptionally hard to find today.
Fahrenheit attempts to put an end to this.
It aims not only to exceed all these efforts in scope, but also to stay free for others to analyze, improve, learn from and use- now and forever.
You will require the following:
- Visual Studio 2022 v17.6 or higher, with the built-in
vcpkg
manager enabled.- The .NET desktop development workload installed (at least the .NET 7 SDK)
- The C++ desktop development workload installed (latest version)
- Build output, by default, is under
artifacts\localdeploy
in the top-level directory.- Copy the contents of this directory (the folders
bin
,modules
, etc.) to a subfolder namedfahrenheit
in your game directory (whereFFX.exe
is). - Open a terminal in
fahrenheit/bin
, then.\fhstage0.exe ..\..\FFX.exe
. - Debugging can be performed from Visual Studio. Attach to either
fhstage0.exe
orFFX.exe
, and make sure to enable mixed-mode debugging.
- Copy the contents of this directory (the folders
Time permitting, the goals (in no specific order) of the project are:
- Provide actual code-behind, helper functions, and tooling to make various modding tasks approachable.
- Provide a mod manager for end users who simply want to enjoy the game.
- Provide quality documentation for various implementation-specific details and game systems.
- In general, polish every aspect of the solution.
Yes. Feel free to join us in the #modding channel of the Final Fantasy X speedrunning Discord.
Fahrenheit source code is licensed under the MIT license.
Assets (the contents of the assets
folder) may be used in forks of Fahrenheit, but not for any other purpose!
For third-party code license notices, please see THIRD-PARTY-NOTICES.
You should check out the following projects if you want finished mods or approachable tools.
- Karifean's FFXDataParser.
- The Cutscene Remover mod for FFX by B3dIntruder, Cereth, CrimsonInferno, Flobber, Roosta, shenef, and peppy.