The secret that makes Final Fantasy VI PC perfect for modding
FFVI Defilter mod by Nyxo.
Final Fantasy VI is a remarkable game. Ambitious and sprawling for a 1994 Super Nintendo RPG, it’s funny and charming and one of the most open-ended adventures Square has ever made. The Final Fantasy VI released on PC in December isn’t quite that game. It may play the same, and boast the (mostly) improved translation of the GBA port, but it also comes saddled with discordant graphical updates and a UI built for cell phones. But the PC version may end up being remarkable for another reason: its moddability.
Final Fantasy VI’s PC port was definitely not built to be fiddled with. Modders are doing it anyway. And unlike the typical PC port, Final Fantasy VI contains a surprise secret: a pristine copy of the Game Boy Advance ROM buried in its source code.
"Final Fantasy VI is sort of unique compared to the other Final Fantasys on Steam," said modder Christopher Cooper, who goes by the handle Krisan Thyme online. "Square actually have a copy of the original Final Fantasy VI inside the Steam release of Final Fantasy VI, and what they do is reference the original copy as a database to pull information such as cutscenes, where sprites are located, how the map is constructed, item stats, AI. It references all the stuff out of the original game, pulls it out, and constructs it in the new engine. It's pretty cool stuff, honestly. From a programming perspective it's a really clever solution to remastering the game, as opposed to remaking everything from the ground up. They just take the data from the old version, and render it out in a supposedly prettier way."
Modder Jed Lang, who goes by the handle Nyxo, has been leading the charge for VI modding with a tool he calls FFVI_Explore. Lang is the reason modders know about that ROM buried at VI's core. FFVI_Explore, which he released the first version of 12 days after the game hit Steam, was the breakthrough that allowed other modders to start digging into FFVI’s files. Lang’s tool extracts the game’s .obb container into its source files, laying bare sprites and tilesets and music and all the rest to be modified.
FFVI_Explore
“I want to crack the game open and provide the tools for somebody else to do the mods,” Lang told me when we chatted over Skype. “I have a keen interest in the data and how it's structured and abstracting that for the modders so they can get to the modding. I don't want them to have to know the nitty gritty details of where the byte goes and that sort of thing. I don't really have that much of an interest in doing the modding myself.”
Lang is unusual among modders—he has no great ambition to change Final Fantasy VI to meet his own vision, but simply enjoys the challenge of understanding how the game works. By day he works as the lead developer at XGen Studios. In his spare time, he’s improving FFVI_Explore to make it easier for modders to tinker with the game.
The original sprites mod is a work-in-process by Saftle.Putting the pieces together
Decoding FFVI's .obb container took some work. All of its data was stored as hashes, and Lang needed to uncover the true filenames to be able to extract the files. Digging around the executable, he figured out how the game was converting each file name into a number, then wrote a script to log each file name when the game ran. Playing for a few hours hours netted hundreds of file names, but only when the game called for them. He also googled for the filename list of the Android version of the game, which netted most of the rest. Eventually, Lang had determined 4983 filenames—only three eluded him.
Since his first release of FFVI_Explore, Lang has updated it with what he calls “modding mode,” which extracts all the files from the archive to your hard drive. “It changes the archive into a special format so that, basically, the end result is the game will stop looking for the files in the archive and instead will look for them on your hard drive,” he said. “But I can't realistically expect everybody who wants to play mods to switch their installation into this modding mode. So this is for people making mods. That gets into the last major feature, the patching feature. In modding mode it makes it easy to change a graphic, save the file to your hard drive, and see how it works. You don't have to put it back into the archive and tell FFVI to save the archive.”
Lang's debugger, which he used to interpret and name files as he determined what they were.Lang said that reassembling the archive can take as long as five minutes on weaker systems; it takes 30 seconds on his speedy PC, but that’s a long time to wait to check out a sprite swap in-game. The modding mode avoids that problem. FFVI_Explore also allows mods to be distributed in two ways: as a stand-alone .fep file that requires users to have FFVI_Explore installed to manually patch their game, or as a self-applying .exe.
“I wanted to make it as easy as possible for anyone who wants to use mods, so I added a feature that lets you create a self-applying patch,” he said. “It actually creates an executable file that has the .fep file inside it. It says where's your FFVI installation and says okay, I'm applying the patch now. You just run this executable.”
As it stands now, FFVI_Explore only allows for replacing files. Modders can use it to completely overwrite the game’s sprites and backgrounds, for example, but they can’t use it to change game logic or rework the functionality of the UI. That degree of modification is more complex than a file explorer can support. But that GBA ROM nestled inside Final Fantasy VI’s port may be key to deeper modifications—even opening the game up to new player-crafted story and gameplay within the Final Fantasy VI engine.
Lang has been working with another modder, who goes by the handle Madsiur, to look into how the PC version of Final Fantasy VI uses that nestled GBA ROM. Madsiur is actually a console modder, with less experience on the PC but years of experience specifically modding the SNES and GBA versions of FFVI.
HEx editing ffVI
Top: the main.obb file. Bottom: a template applied to the file to interpret it.
“So far from what we've seen, the ROM file is basically being used as a superdatabase,” Lang said. “All of the relationships between items and characters and maps, all of that actual data of the game, the executable just reads the data from the ROM file and applies it to its new graphics. That guarantees the integrity of the data. You're never going to have human error where you put the wrong item in a chest or something like that. You're using the exact same data as the GBA version.”
Once they’ve fully mapped out how the PC game interacts with the ROM file, Lang hopes to write an editor to do the same thing. Madsiur has already written just such a toolfor the GBA version of VI. And that’s when modding will get really exciting.
“We can change what items are in a chest, where a chest is, make a new layout for a map. Things that aren't just graphics, just audio. To that point, some of the data read from that ROM--what they call event code, the way the game handles ‘cutscenes’ sort of, where the characters walk somewhere and talk to someone--all of that is handled through this event system. It looks like that is being read verbatim from the ROM. With that in mind we could write an editor for that. So players could theoretically write their own cutscenes.”
That breakthrough is hopefully on the horizon, and it’ll be a great day for Final Fantasy modders. But for most players, it’s safe to say interest in Final Fantasy VI modding lies with nostalgia, not a fan-made Final Fantasy VI-2. There are already a few graphics restoration projects underway for that very purpose.
Final Fantasy VI mods in action
If there’s one mod that nearly every Final Fantasy fan will be glad to see, it’s Saftle’s FFVI with original sprites. This project is far from finished, but modder Saftle has spent the past few weeks replacing the new sprites with their originals up through Figaro Castle. The sprites do noticeably stand out against the new high resolution backgrounds, but for anyone who’s played Final Fantasy VI before, they just feel right.
Here’s a video of Saftle’s mod in progress.
Some purists may also be happy to see a sprite mod that changes the Siren and Goddess espers to look like the original Japanese versions, which were alteredfor modern releases. Another modifies the new male character sprites to make their chests flatter, less puffed out. Both of those, along with the rest of the FFVI mods created so far, can be found in this collection in the Steam community.
Christopher Cooper deserves much of the credit for the well-organized Final Fantasy mod scene on PC. He established the FF-Modding communitywhen he began modding Final Fantasy XIII-2 in late 2014. Each game has its own sub-forum, and for most of them Cooper or Saftle compiled a list of the available mods like the Final Fantasy VI one above.
He’s also released quite a few mods himself, though none for Final Fantasy VI yet. When XIII-2 was released, Cooper set out to make more monsters playable in the game. There wasn’t much community interest in modding the XIII games, but with VI, things seem to be on an upswing. It already has the most popular forum within the mod community, a month after release. And the mods are already pouring in.
While Lang was in the early stages of development on FFVI_Explore, he was sidetracked by the ugly bilinear filter used on the new sprites. It took him a couple hours to find every instance in the executable that referenced the filter and set it to ‘off’ instead of ‘on.’ Its releasemarked the first significant Final Fantasy VI mod. Shortly after, Cooper ported the same filter removal over to Final Fantasy V.
Left: Bilinear filter enabled. Right: The defilter mod in effect."It really didn't take more than like, 10 minutes to tell you the truth," Cooper said. "The engines are practically the same. I had looked into it before, but it's a little difficult to find every instance of the filtering inside the engine. Fortunately Nyxo, he's a beast for these types of things. So I looked at that and said oh, I know what to do now."
Lang is still chipping away at two filetypes in FFVI that he needs to fully understand before his tool will be able to extract them: audio .akb files and graphic .flb files. He’s working to make the .akb wrapper extractable so that modders can get to the familiar file format inside it—ogg vorbis—and modify it. Once FFVI_Explore can handle those files, we’ll start to see even more graphics and audio files modded into the game. The most ambitious project currently is a full-on respritening by modder pluckylump, who wants to recreate the characters to more closely resemble Yoshitaka Amano’s original concept art and character portraits. His first efforts look great, but drawing the entire game in Amano’s style could take years.
It's easy to be impatient when promising mods are in development, and easy to forget that modders are ultimately in it for fun, not money. Cooper, who's watched his community grow to more than 1800 members in the past six months, couldn't seem more pleased.
"Since I've started modding these games I've just had a blast talking to the community, hearing their ideas, testing out different things," he said. "It's been some of the most fun I've had modding in ages. I've had greater motivation to keep going than I ever have before as well. Most of my projects are pretty short-lived, but this is one that just keeps going and flourishing... VI only just came out and the modding tools have only started to get rolling. It's still a little early, but I think it's pretty obvious that the interest is there."
Post a Comment