Texture quality downgrades

When Sonic Adventure was redesigned with the “DX” branding, some of its Action Stages and Adventure Fields received new textures. In some cases those textures are higher resolution than the Dreamcast version, in other cases they aren’t. Some offer more variety than the original game, most of them don’t. In some cases the textures are completely new, in other cases the new textures are recycled or slightly edited Dreamcast textures, sometimes in lower resolution (Final Egg) or with reduced saturation (Ice Cap). You can read more about textures used in a particular level on each level’s page. This page is about texture quality in general. It examines the problems with texture quality in SADX Gamecube and PC and explains why the quality reduction happened.

Textures that were reused from the original Dreamcast game (which make up the majority of textures in SADX) were recompressed each time the game was ported to a platform that used a different texture format. The Dreamcast’s native PVR format is rather limited and allows only a couple of texture formats. The Gamecube’s GVR format is more flexible than PVR, and allows several more texture formats. Both formats are lossy (unlike BMP or PNG for example), which means some source information will be lost when a texture is saved in a format like that. The developers of the original game handled PVR limitations with great care (or they just had good conversion tools), and the Dreamcast version has pretty sharp textures for an old and limited format like PVR. Normally there would be no issue with converting a PVR texture into some other format. But in SADX there is visible quality loss. Let’s see why.

Here are the most common PVR texture formats used in the Dreamcast version:

  • RGB565 – an opaque texture where each pixel uses 5 bits for red and blue and 6 bits for green.
  • ARGB1555 – a transparent texture where each pixel uses 1 bit (on/off) for transparency and 5 bits for red, green and blue channels.
  • ARGB4444 – a transparent texture that uses 4 bits for red, green, blue and transparency.

The GVR format used in the Gamecube version supports more pixel formats, as well as DXT1 compression. However, when the Dreamcast textures were converted to GVR, the source format (for example, RGB565) was often neglected, and the destination format didn’t accommodate for all the color information that was present in the original texture (for example, instead of 6 bits for green, only 5 were used). On top of that, a lot of textures went through DXT1 compression. As a result, some information was lost when the textures were converted, and most textures in the Gamecube version are lower quality. The recompression happened again in the PC version, which switched the textures back to PVRs, with another round of compression for many textures. Instead of using original PVR textures from the Dreamcast version, the developers decided to recompress the already lossy Gamecube textures back into PVR, making the same mistake for the second time. There is some evidence that texture conversion was done in bulk. On the retail Gamecube disk of Sonic Adventure 2: Battle there is a leftover script that was used to convert the Dreamcast PVM texture archives into Gamecube GVM archives. It’s highly probable that something similar was used for each port of SADX.

It must also be said that there are at least several textures in the Gamecube version of SADX that appear to be higher quality than their Dreamcast counterparts. These textures are sometimes found in levels that were redesigned in SADX. At the moment only six textures in the entire game have been confirmed to have better compression in the Gamecube version. One texture is found in the Mystic Ruins main area (see below), the rest are in the first segment of Final Egg.

(Thanks BlueSpikeball for finding these textures in the Gamecube version!)

Other than these few, the Gamecube version’s texture quality suffers quite significantly. The PC version’s textures are even worse. Depending on the source texture the difference may be barely noticeable, but in many cases it looks like a bad JPEG recompression. It’s especially noticeable with low-resolution textures and gradients. Here are some examples:

Apart from lower texture quality, the PC version suffers from lack of mipmaps. Mipmaps are smaller copies of a texture used to display it from a distance. Here is a typical texture with mipmaps from the Dreamcast version:

Mipmaps are beneficial because they give the textures a smoother look. The 2004* PC version doesn’t have mipmaps, which makes the game look significantly worse because the distant textures are reduced to pixelated garbage. It’s especially noticeable in motion with a lot of flickering. Thankfully the Mod Loader has a built-in feature that generates mipmaps for all textures, and before the Mod Loader there were texture edits for the PC version that added mipmaps. These fixes are essential if you’re playing the 2004 PC version with original textures.
*The Steam/nextgen console port doesn’t have built-in mipmaps either, instead it generates them on the fly like the Mod Loader. The textures themselves are the same between these ports and the 2004 PC port. While those ports don’t have the flickering caused by lack of mipmaps, all other points regarding texture quality mentioned in this post apply to the Steam/nextgen console versions as well.

Here are some comparisons with mipmaps on/off in the 2004 PC version:

Anisotropic Filtering off:

Mipmaps off

Mipmaps on

Anisotropic filtering 16x:

Mipmaps off

Mipmaps on

Although anisotropic filtering improves the look of distant textures, it can’t completely remove distant flickering that you sometimes see in motion. The only real solution for that is to use mipmapped textures. But even when not in motion, the mipmapped textures look a little smoother. For comparison, here is what the “maxed out” texture quality looks like.
Anisotropic filtering 16x, Dreamcast textures (SADX Mod Loader + DC Conversion):

Another issue with the PC/Steam/nextgen console ports is texture mirroring. Although the game engine supports mirroring natively, for some reason the developers decided to mirror some of the textures manually and adjust UVs on some models to accommodate the change. This wouldn’t have caused problems on its own, but the mirrored texture is often squeezed into the same resolution as the original unmirrored texture, which means the resolution of the final texture that is applied to the model is reduced. In addition, the mirroring in the PC version is usually done by flipping the texture horizontally or vertically, while it would’ve looked a lot better if the texture was rotated. Here’s an example illustrating both problems:

Here’s another example of mirrored textures from Twinkle Park. Although the light texture’s horizontal resolution was increased (or the texture was just stretched), the trap door texture is quarter the size (half the resolution) of the original Dreamcast texture:

In addition, the developers adjusted UVs on some models to use a mirrored texture, but forgot to mirror the texture, and vice versa. There are several noticeable problems with texture mirroring in different levels in the PC version. You can read more on that in posts dedicated to each level. Twinkle Park and Lost World are good examples.

It may be hard to discuss artistic changes in SADX because everyone’s aesthetic vision is different. Someone may prefer the more “realistic” look of the new textures introduced in SADX. Those who prefer the original Dreamcast look may think those new textures look lifeless and boring (in some cases they are literally the same textures but desaturated), but to each their own. However, when it comes to textures that weren’t redesigned, the Dreamcast version has the highest quality textures, and each subsequent port has more and more problems coming from mindless recompression.

This is a pretty terrible situation because the Dreamcast version is now the least accessible release, while the inferior PC and nextgen console ports, which are the most accessible ways to play the game right now, have got the worst quality textures out of all versions of the game. Combined with broken lighting and a plethora of other problems in the ports, people who play them first without knowing what the Dreamcast version was like may get a wrong impression of the game. This could be part of the reason Sonic Adventure is no longer remembered as fondly as it used to be. The Steam and nextgen console ports in particular have done a lot of damage to the reputation of the Dreamcast classic.

Thanks to the efforts of the SADX modding community, the textures in the 2004 PC version are no longer an issue. The developers of SADX Mod Loader have added a texture pack feature, which allows to load custom textures in lossless formats like PNG for any part of the game. The Dreamcast Conversion mod restores original PVR textures for the whole game, and the HD GUI mod adds custom high resolution textures for HUD, menus and other 2D items. To install these mods, head over to the “Fixing the PC version of SADX” section of this blog.