Persona 4 Golden PC Port AnalysisJune 14, 2020
There is one particularly notable exception though: Persona. After its unique gameplay mixup with the 3rd entry, Persona has established itself as one of the most popular JRPG franchises in both Japan and the rest of the world, but the mainline games have so far staunchly resisted appearing on anything other than Sony platforms. This is changing today, with the release of Persona 4 Golden on Steam, and that’s reason enough for me to return to writing a port analysis for the first time in many years.
Before getting into the specifics of the PC port, it’s important to realize where it is coming from. Persona 4 is an old game, originally released for the Playstation 2 in 2008. We are talking about a hardware platform created at the turn of the century, with 32 MB of memory, which means that barring a full remake all game assets will invariably look quite dated. Luckily, Persona 4 was remastered on Vita four years after its initial release as “Golden,” and the asset improvements, in particular for backgrounds, were actually quite substantial. The PC version is clearly based on this Vita release, and while the assets still show their age, they are not quite stuck at a PS2 level.
The comparison above shows the significantly improved texture and geometry detail compared to the PS2 version, seen especially clearly on the license plate and wheels. Note that the PS2 screenshot is taken from a high resolution emulated image, in order to focus the comparison on assets rather than rendering. There is also a quite substantial difference in overall contrast and color between the releases. In both assets and this coloration aspect, the PC release matches the Playstation Vita version of the game closely, while of course providing the option of rendering at far higher quality.
Staying with the theme of graphics, how does the PC port stack up in terms of options? If I had to summarize it, I would call it “very solid but not spectacular.”
Most crucially, there does not appear to be some arbitrary limitation in internal rendering resolution, as we sadly continue to see with some low-effort JRPG ports even today. There is no support for ultrawide aspect ratios, but such support currently remains the exception rather than the rule for more niche ports.
A very welcome addition is a Rendering Scale option which goes from 50% to 200%, allowing subsampling on very low-end hardware, and 4x supersampling on gaming GPUs for significantly improved quality. Sadly, the setting affects UI elements and not just 3D rendering, which makes the low-end options less useful than they could be.
Dynamic shadows can be disabled entirely (which more closely matches the PS2 version), and have three quality settings: Low, Medium and High. These correspond to a 512², 1024² and 2048² shadow map in practice. Sadly, there is no higher quality filtering option provided for these shadows. The Anti Aliasing setting applies a simple but decent post-processing effect, and can be combined with increased rendering scale for a high-quality result. On any modern GPU, all options other than Shadows On/Off and Rendering Scale are negligible in their performance impact.
Graphically, I would argue that the worst parts are the in-game movies, especially in dark scenes. These are clearly the originally shipped versions, or even re-encodings thereof, and feature copious blocking and artifacting. Of course, if these are the only remaining versions of the assets, there is not much to be done, though I believe some modern AI-powered filters could have at least alleviated the blocking.
In terms of input and UI this port is generally very competent, with a few minor issues. Keyboard controls are available, and some thought seems to have gone into their design. They are also remappable, and the prompts correctly reflect remapped bindings. Surprisingly, most of the UI features mouse (pointer) support, a rarity in ports such as this. However, as the UI layout remains the same, it’s still faster to use keyboard controls to navigate the in-game menus.
While it could be considered somewhat of a nit-pick, the portable legacy of this port has one unfortunate side-effect: since the UI was not redesigned, it is absolutely massive when sitting in front of a PC monitor – or even on a TV. That said, all the 2D elements are provided in high resolution, which is a very welcome visual improvement.
The port does not feature mouse camera controls even in those parts of P4G which do feature a player-controlled camera, such as dungeons. Given the relatively simple layout of these areas, and the limited horizontal-only camera rotation, this is no showstopper though.
Of all the aspects of this port, reporting on its performance is the thing I struggled with most as the situation is a bit nuanced. There are two ways of looking at the performance of P4G on PC, and they arrive at vastly different conclusions.
Let us start with what I will call the practical perspective. From this perspective, the performance is perfectly reasonable, and even comes with a very nice surprise. The reasonable part is that you can expect to run P4G at a solid framerate, with supersampling, on a semi-decent gaming PC, and can even play it at 1080p on Intel integrated graphics without issues. The nice surprise is that it supports arbitrary frame rates. That’s right, I’ve played through large parts of the game at 144+ FPS and have observed no issues related to that to speak of. From this practical perspective, the only true nitpick I noticed is that there is a slight repeatable hiccup which can be observed every time you trigger an all-out attack.
The other perspective, let us call it the theoretical perspective, is one that I cannot completely avoid as someone who deals with hardware-specific program optimization professionally. And from that perspective something is clearly very wrong. On my high-end workstation, I cannot get the game to run at more than ~160 FPS in some areas, even with 720p resolution to check strictly for the CPU limit. For a Vita port without fundamental new features which could reasonably be speculated to have a large performance impact one would expect something closer to 500+ FPS. So what is going on? To answer that, I took a number of API traces and investigated the game’s rendering at that level.
What I discovered was quite shocking: an average frame in P4G produces between 15000 and 20000 API calls. In fact, as pictured above, a single desk in a classroom is generated using over 50 individual draw calls, each only dealing with a handful of polygons and only covering a tiny amount of pixels. To provide some perspective on what that means, let me note that effectively using a modern GPU, especially with an API like DirectX11, ideally requires issuing draw calls that deal with many thousand polygons and affect a large number of pixels. This means that performance, on most systems, will generally be limited by the latencies induced by this usage of the API, rather than the real CPU or GPU limits.
However, there is a question of how much running into these limitations actually matters in the end for a game like P4G. Would it be nice to be able to run it at a locked 240 FPS? Yes. Is the basic capability of running at greater than 60 FPS at all more than I expected going into this? Yes again. So if, perhaps, the development resource decision was between making the game work at arbitrary framerates, and optimizing the drawing scheme, then I would very clearly say that the right decision was made.
One more practical detail I noticed is that, if you disable V-sync, the game appears to enable an internal 120 FPS limiter, which is very inconsistent in terms of frametime and leads to microstuttering. Therefore I suggest that everyone should leave the V-sync setting enabled. When using a high refresh display (>60 Hz), an external framelimiter should be used for an extremely smooth result (at e.g. 120 FPS or lower depending on your specs).
Overall, Persona 4 Golden’s Steam version is a fantastic way to play this game, with solid graphics options, arbitrary resolution and framerate support, relatively fast loading times, and good support for remappable keyboard controls. Steam features such as achievements and cloud saves are included, and even the minor online aspects of the “Golden” version were faithfully ported. Additionally, this release adds the ability to choose between English and Japanese voice acting, a very welcome addition in what is inherently a very Japanese game.
The nit-picks such as video asset quality, locked aspect ratio, and even the far-worse-than-it-could-be performance are all at least somewhat understandable from a development and prioritization perspective, and do little to detract from the quality of the port in most practical cases.
Peter “Durante” Thoman is known for developing the popular DSFix mod that fixed many problems with the PC port of Dark Souls. He co-founded PH3 Games, a studio that specializes in porting games to PC.