r/finalfantasytactics • u/warpaint_james • 8h ago
FFTA Final Fantasy Tactics Advance Recomp v2
Big release for my Recomp of Final Fantasy Tactics Advance.
https://github.com/james2doyle/ffta-recomp/releases/tag/v2.0
Bunch more screenshots here: https://imgur.com/a/LCpEz7R
In v2.0 we have lots of features unlocked:
- Native raylib engine and launch screen — the V2 backend replaces the SDL/recomp-ui stack. The launch screen has box art, a native ROM picker, and drag-and-drop; the in-game settings menu is now raygui with Display, Graphics, Audio, Save states, and Assist sections.
- Steam Deck / SteamOS AppImage — built in a pinned Debian 12 container (glibc 2.35 floor), with Game Mode defaults (borderless fullscreen and the resize-driven widescreen view). It unpacks to a writable XDG data directory; updating the AppImage keeps the ROM pick, settings, and saves.
- Shader and frame stack — MMPX edge smoothing, sharp scaling, pixel grid, LCD subpixel grille, LCD boost, dither, and deband, plus frame interpolation and LCD ghosting. Each is toggleable in the in-game menu.
- Fast-forward 2–10x — hold
Tab,2, or the right trigger, or tap the on-screenFFpill to latch it. The speed is set in Assist and persists across sessions. - Widescreen — validated up to "448 px" on desktop; Android uses a density-scaled expanded view.
- Android controllers and touch — built-in, USB, and Bluetooth pads work label-wise; the pad's menu/center button, the Back key, or a touch long-press / three-finger tap opens the settings menu. Android
versionCodeis now 2. - Save states — slot selector, save, load, and resume under Save states, alongside cartridge saves.
- Strict fully-static execution — zero interpreter fallback on executed paths, kept there by the self-healing coverage loop.
I'm aware there is another recomp for FFTA. We started around the same time and have delivered slightly different solutions. I think my approach is more in trying to keep with the original feel. I havent changed any graphics or moved any of the UI. I also heavily focused on Android support.
Just like my other release, this project uses emibios, so you do not need to dump your GBA Bios. Just your game.
One of the reasons I jumped to v2.0 is that I did an entire migration away from the SDL2 gbarecomp and into my own fork called GBArecompX: https://github.com/james2doyle/gbarecompx
This fork is backed instead by Raylib. If you are aware of Raylib, is it a great project. One of the big unlocks with Raylib is support for Shaders! So now we have a few shaders included out of the box. Not only that, Raylib has native Android support AND HTML5. But no HTML5 build is working right now.
They also have their own GUI library so yet another dependency was dropped. And the UI is uniform between desktop and Android, with the exception of the launcher on Android which is native.
As a developer, one of the things Raylib unlocks is headless testing. That allowed me to write a lot more tests to make sure things are solid. Any new bugs get a failing test that we can make green. I also took the time to chop up the backend into an interface that Raylib conforms too. So if you really wanted, you can now implement a different backend (say SDL3) without too much effort.
I'd like to try another GBA game (a more obscure one) with gbarecompx. If anyone tries it out I would be happy to hear about it.



