Final Fantasy XIII and XIII-2 port analysis: Durante's verdict

Performance analysis

Final Fantasy XIII’s performance has been a hotly discussed topic since its release. While the game is not particularly demanding in terms of hardware and can be rendered at high resolutions even on modest systems, many players experience frame rate stutter and drops below 60 FPS directly to 30 FPS in various circumstances, seemingly unrelated to hardware capabilities. As I explained earlier, I believe this problem to be related to the engine trying to perform some frame pacing on its own (and mostly achieving the opposite).

Some expected the patch to improve this situation, but reports since its release have been mixed. Some claim that it fixed or at least mitigated the issues, while others feel that performance actually decreased. I don’t believe in feelings when it comes to quantifiable data, so I performed a rather extensive set of benchmarks to find out exactly what is going on.

Final Fantasy XIII Screenshot 2014-11-29 22-54-51 26

Performance impact of the FFXIII patch

I chose three locations in the game to benchmark both pre- and post-patch, each representing a different gameplay scenario:

  • Chapter 1: Into The Vestige—Skybridge 103: Exploration with lots of NPCs in a narrow corridor, running the full length up and down once.
  • Chapter 6: Sun-dappled Flight—Sun-dappled Trail: Running up to and fighting the first party of enemies to completion.
  • Chapter 10: What Fal’cie want—The Fifth Ark-Upper Traverse: Running up to the first cutscene, that scene, and roughly 15 seconds of battle.

I measured each of these scenes using the new performance tracing functionality of GeDoSaTo, twice pre-patch and twice post-patch. As there are some random factors (especially in battle), the individual runs are not 100% equivalent, but the variation between each set of two runs was less than 4% in all metrics.

Average FPS 75% ▲ frame 95% ▲ frame 99% ▲ frame
Pre Post Pre Post Pre Post Pre Post
Chapter 1 50.6 51.6 17.5 17.4 33.6 33.5 34.3 34.2
Chapter 6 34.5 34.5 33.6 33.6 34.3 34.2 35.1 34.6
Chapter 10 45.0 46.3 32.7 32.7 34.0 33.9 34.3 34.4

The columns in the table above with the delta (▲) symbol represent the interval between consecutive frames in milliseconds.

As the summary in the table above indicates, there is no statistically significant difference in performance before and after the patch in any of the scenes I tested. As such, I believe it can be stated with confidence that there were no performance changes one way or the other introduced by the patch at all. To further solidify this point, the following chart illustrates the frametimes of the chapter 10 measurement sequence in patched and unpatched state:

Final Fantasy XIII performance Chart

The two spikes above 33ms happen at the start of the cutscene and the start of the post-cutscene battle, respectively. As we can see, not only is the overall performance incredibly similar (showing a distinct switching pattern between ~16 and ~33ms frame times, thus 60 and 30 FPS), even the individual spikes during exploration and the cutscene are a rather close match. This continues throughout the opening part of the battle, diverging a bit later on due to battle randomness.

Final Fantasy XIII-2 performance

Sadly, FFXIII-2 suffers from the same performance pattern that we could observe in its predecessor. The engine still seems to be dead-set on providing either roughly 16ms or 33ms frame time intervals, and jumping between them from time to time. However, in my testing so far, the overall performance is a lot more stable than for FFXIII. The following chart contains frame time traces for an exploration and a battle sequence, and the game achieved an average of ~58 FPS during each of them. However, this average does not fully capture the repeated spikes to 33 ms frametimes, which prevent smooth-feeling gameplay:

Final Fantasy 13 2 Chart

One positive aspect regarding both games’ performance is that—in my experience—they never drop below 30 FPS, outside of the occasional loading of battles or cutscenes. And those cases usually occur during a black screen transition and therefore aren’t noticeable. The same is true for the few spikes up to 50ms visible in the frame time plot.

Therefore, by using an external tool such as the GPU driver to limit the framerate to 30 FPS, a very consistent experience can be achieved—and for people who are less affected by the occasional drop, the 60 FPS support should at least be usable in FFXIII-2.

Controls, audio and tweaking

Both FFXIII and FFXIII-2 support keyboard and mouse controls. These can be remapped, and while the button prompts don’t switch automatically between controller and keyboard, there is an option for it in the menu. Though these controls work well enough, this is not a case of, say, Valkyria Chronicles, where the inherent nature of the game made them preferable to a controller.

In terms of audio, FFXIII-2 seems to be affected by a bug related to the number of audio channels offered by your driver and sound hardware. On my system, I’ve observed the following:

  • 2 channels (stereo): everything works fine
  • 4 channels: some voices and sound effects come from the entirely wrong direction
  • 6 channels: everything works fine again
  • 8 channels: consistent white noise from some channels drives you crazy

As such, at least until/unless this issue is patched, you should probably set your audio driver to either 2 or 6 channels, and let it up/down-mix to your actual hardware configuration.

Finally, the most applicable external tweaks to perform on the game are forcing anisotropic filtering, which I’d consider essential, and—if you value consistent performance—lock the framerate to 30FPS using a tool like Nvida Inspector or Rivatuner Statistics Server. My preference would of course be to also use GeDoSaTo in order to get image quality to the best standard afforded by your hardware via downsampling, and take some HuD-less screenshots of the games’ beautiful locales.

Final Fantasy XIII Screenshot 2014-12-03 22-56-56 9

Conclusions

With the release of Final Fantasy XIII-2 and the patch to its predecessor, Square-Enix delivered exactly what they said they would—graphics options—but no more than that. The intermittent performance stutters remain unsolved, and the selection of options only covers the bare minimum.

Personally, I find it both flattering and somewhat worrying that the graphics options they did decide to include match the ones I implemented (by means of an unauthorized interception method without any access to the game’s source code, and within a couple dozen or so hours of hobbyist work) so closely. Is there really no interest in the company to give a single graphics programmer a month or so to develop some highly meaningful features, such as better shadow filtering or a higher quality depth of field implementation? Perhaps fix whatever causes the engine hiccups?

It’s a shame to see such an incredibly beautiful game world with so much effort put into its art assets neglected to this extent. Of course, the situation now is already vastly better than the locked 720p without any options offered at release, and these are obviously the best versions of each game to play by a huge margin, but much more could be achieved with a bit more focused effort.