Skip to content

A Final Fantasy X/X-2 reverse-engineering project and mod framework.

License

Notifications You must be signed in to change notification settings

peppy-enterprises/fahrenheit

Repository files navigation

Fahrenheit

A Final Fantasy X reverse-engineering project and mod framework

Logo Banner

See the world as you never have before.

Art by Mnemorie

What is Fahrenheit?

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.

Why?

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.

Building from source and testing

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 named fahrenheit in your game directory (where FFX.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 or FFX.exe, and make sure to enable mixed-mode debugging.

What's next?

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.

Can I contribute?

Yes. Feel free to join us in the #modding channel of the Final Fantasy X speedrunning Discord.

License

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.

Associated and/or derived projects

You should check out the following projects if you want finished mods or approachable tools.

About

A Final Fantasy X/X-2 reverse-engineering project and mod framework.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published