Skip to content

Releases

v1.0.0-alpha12

v1.0.0-alpha12 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 19 Oct 23:22
7e85839

Important

This release build, and all future ones, are signed. Signing ensures your Fahrenheit binaries were not tampered with. Look for a digital signature by 'Open Source Developer Fran Kelava' to know you are working with an official Fahrenheit release.

This release features contributions from many members of the ever-expanding Fahrenheit crew:

What's Changed

We've got full support for the October 1st, 2026 update to FF X/X-2 HD.

  • The old, 2019 game version is no longer supported.
  • All functionality has been fully restored to its pre-update state.

Done in #330, #336, #337, #338, #339, #340, #341.

We've got more X-2 definitions.

  • How about an Actor?
  • How about some IDs?
  • How about many, many Excel types?

Done in #314, #317, #321.

We've got more delegates.

  • Which mods based on Fahrenheit graciously delegate to us for further maintenance.

Done in #312.

We've got more custom UI goodness.

  • Both save UI styles now work in the opposite game as well.
  • Many fine details have been improved in both games' save UIs.
  • More GUI helpers are available for all your UI building needs.
  • You can no longer accidentally open the Esc menu while in the save UI.

Done in #343, #346, #361, #363, #367.

We've given our launcher a can of bug spray.

  • It provides mixed stack traces and guaranteed core dumps under Windows and WINE/Proton.
  • Launch arguments have changed. To engage an external debugger, pass --extdbg. To wait on launch for attach, pass --wait. To pass arguments to the game, place them after a -- to separate them from Stage 0 arguments.
  • Stage 0 will no longer accidentally leak a game process if killed at an inopportune time.

Done in #306, #352.

We've set up some settings.

  • You can now define your own classes for settings with FhSettingProvider<T>.
  • But be aware that the mod configuration UI and the final setting design is yet to be decided.

Done in #322.

We've gone on a diet.

  • A 20MB+ diet, to be exact. Fahrenheit is now positively slim, going from a 33MB assembly to 13MB.

Done in #327.

We're keeping a very close eye on the clock.

  • Fahrenheit now makes sure certain operations can only be performed at certain times.
  • This removes a class of subtle bugs caused by mods doing things out of order.

Done in #323.

We've got all ATEL call targets for FF X in FhCall.

  • All 1,516 of them, to be exact.

Done in #316.

We've got one less manifest field, and a slightly more robust loader.

  • LoadAfter is no longer a manifest field. The SDK has been amended accordingly.
  • A Fahrenheit mod can no longer accidentally end up loaded twice depending on load order.

Done in #348.

We've got two new names for two beloved objects.

  • Call-related objects now generally use that term. Therefore...
  • FhMethodHandle<T> is now FhCallHandle<T>.
  • FhMethodLocation is now FhCallLocation.

Done in #359.

...and many other minor changes, cleanups and bugfixes.

  • For those, see the full changelog beneath.

Full Changelog: v1.0.0-alpha11...v1.0.0-alpha12

v1.0.0-alpha11

v1.0.0-alpha11 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 19 Sep 17:32
2d23007

Important

This release build, and all future ones, are signed. Signing ensures your Fahrenheit binaries were not tampered with. Look for a digital signature by 'Open Source Developer Fran Kelava' to know you are working with an official Fahrenheit release.

This release features contributions from many members of the ever-expanding Fahrenheit crew:

This release is dedicated to a good friend who is no longer with us. So long, Garrett. May your soul find peace among the stars.

What's Changed

Fahrenheit is now licensed under the LGPL, version 3 or later.

Done in #172, #173, et al.

We have a new save UI!

  • All three games now come with a fully custom, lovingly hand-made save UI.
  • And if you want to make your own, a save UI API is provided.
  • Player names are now displayed properly for saves in foreign languages. Tidus? ティーダ? Fine by us.

Done in #256, #273.

More structures, and more structure.

  • Need to read Excel types at runtime? ExcelReader<T> is ready.
  • Almost all Excel types for FF X now have mappings.
  • X-2 structures have also received numerous improvements.
  • We've generated a few new structures from Last Mission header files.

Done in #184, #185, #228, #235, #245, #264, #269, #277, #282, and more.

More functions have vetted delegates now.

  • A number of mods have generously upstreamed the fruits of their reversing work for all to use.

Done in #160, #229, #239, #263.

We're compatible with everything now. All the time. Some of the time. If you read the manual.

Done in #261, #266.

Method handles have been reworked.

  • They are now generated for all functions.
  • They are idempotent. All method handles share the same, consistent view of the target method.
  • A revised, flexible chain syntax allows continuation from any point under your control.
  • Functions identical between games have been fused into a single call stub.
  • The framework now keeps hook delegates alive on behalf of the user.
  • Hook ordering now properly follows load order instead of inverting it.

Done in #152, #238.

The mod settings API is tentatively available.

  • Mods can now load and store a few types of basic settings, accessible through the F7 menu in-game.
  • This system and menu are a heavy work-in-progress and do not have a finished interface.

Done in #175, #236.

Localization API has been improved.

  • Localization is now split per-module for ease of maintenance.
  • There are new rules for referring to your own localization versus another mod's localization.

Done in #196.

The SDK has been improved.

  • Manifests are now autogenerated based on a mix of well-known and custom MSBuild properties.
  • Symbols are no longer embedded in DLLs, but given alongside mod DLLs as portable PDBs.
  • Symbols are uploaded to NuGet as symbol packages for ease of consumption.

Done in #166.

Tools have received a lot of love too, and run natively on both Windows and Linux.

  • Our tools no longer use Win32 program stubs, but an OpenGL3 + SDL3 base.
  • As a result, you can now run them natively on win-x86, win-x64, and linux-x64.
  • DEdit now features a standalone macro decompilation mode.
  • STEP has been comprehensively reworked to ease import of Ghidra data.

Done in #205, #213, #214, #216, #217.

Exception handling has been improved for Windows systems.

  • The game should no longer randomly fail to produce core dumps.
  • The produced core dumps should contain more useful information.
  • On Linux systems, unfortunately, WINE/Proton limitations render these improvements moot.

Done in #168, #169, #223.

The game's memory allocation behavior has been improved.

  • The game should no longer require the 4GB patch to run Fahrenheit. Green-screens will occur much less frequently.
  • We still recommend that you use the patch for the moment, though.

Done in #254, #255.

The (External) File Loader has been vastly improved.

  • EFL file matching is now done case-insensitively. No more worrying about whether it's FFX_Data or ffx_data.
  • Remember that silly ../../.. you had to prepend to most paths? It's just / now.
  • You can now load any file from the VBF at runtime.
  • You can now load any file from the other game's VBF at runtime. You heard us right; X-2 assets in X, and vice versa.
  • In both cases, the EFL will automatically activate when required and provide replacements for both games' assets.

Done in #226, #258, #267.

The save manager has a few extra tricks up its sleeve.

  • The autosave is no longer counted as a full save.
  • Set limit? What set limit? Save as many times as you like to a single set. Be our guest!
  • Note, however, that you use extremely large set sizes at your own peril. Performance may be substantially degraded.

Done in #221, #224.

Eastern languages are better supported.

  • We now ship CJK variants of Noto Sans so those languages' glyphs can properly render.
  • The text encoder now supports automatic extension of Unicode Basic Plane characters into their full-width, CJK forms.

Done in #207, #249.

...and many other minor changes, cleanups and bugfixes.

  • For those, see the full changelog beneath.

New Contributors

Full Changelog: v1.0.0-alpha10...v1.0.0-alpha11

v1.0.0-alpha10

v1.0.0-alpha10 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 26 May 13:26
7d0b9dd

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

Important

This release build, and all future ones, are signed. Signing ensures your Fahrenheit binaries were not tampered with. Look for a digital signature by 'Open Source Developer Fran Kelava' to know you are working with an official Fahrenheit release.

What's Changed

  • Add Phyre interop layer, allow game asset loading by @fkelava in #119
  • Add MessageCue, implement custom message cues by @EvelynTSMG in #139
  • Generate call stubs for all functions by @fkelava in #145

and a number of other housekeeping and maintenance PRs.

Full Changelog: v1.0.0-alpha09...v1.0.0-alpha10

v1.0.0-alpha09

v1.0.0-alpha09 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 03 Apr 12:53

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

Important

This release build, and all future ones, are signed. Signing ensures your Fahrenheit binaries were not tampered with. Look for a digital signature by 'Open Source Developer Fran Kelava' to know you are working with an official Fahrenheit release.

Full Changelog: v1.0.0-alpha08...v1.0.0-alpha09

v1.0.0-alpha08

v1.0.0-alpha08 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 06 Mar 16:21

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

Important

This release build, and all future ones, are signed. Signing ensures your Fahrenheit binaries were not tampered with. Look for a digital signature by 'Open Source Developer Fran Kelava' to know you are working with an official Fahrenheit release.

What's Changed

  • Update StNumber, SaveData, Command and PlySave Fields by @cxldalyy in #89
  • Adjust logging level for FhLocalStateModule by @EvelynTSMG in #94
  • Update LpAbilityMapEngine and Sphere Grid element structs by @EvelynTSMG in #95
  • Add TkWindow, TkMenu, Sphere Grid related fields by @Rurusachi in #96

Full Changelog: v1.0.0-alpha07...v1.0.0-alpha08

v1.0.0-alpha07

v1.0.0-alpha07 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 28 Feb 14:12

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

v1.0.0-alpha06

v1.0.0-alpha06 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 26 Feb 02:23

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

v1.0.0-alpha05

v1.0.0-alpha05 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 24 Feb 15:05

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

v1.0.0-alpha04

v1.0.0-alpha04 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 11 Feb 15:03

An automatic test release so latest binaries are available for consumption.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

v1.0.0-alpha03

v1.0.0-alpha03 Pre-release
Pre-release

Choose a tag to compare

@fkelava fkelava released this 24 Oct 21:40
19b77fb

An automatic test release to let people grab finished binaries of the latest DEdit.

As usual, prerelease builds may be used at your leisure, but are not officially supported in any way, shape or form.

Changelog: v1.0.0-alpha02...v1.0.0-alpha03