Tales of Symphonia

Tales of Symphonia

Not enough ratings
Retexturing with TSFix 0.10.5/0.9.11 (Partial Texture Packs includued)
By Great Duck
This guide breaks down how to dump, identify, and replace textures with the final TSFix builds, ending with links to my own texture replacements. (The latter are a standalone bunch not affiliated with any of the several other texture projects currently in the works for the game)
   
Award
Favorite
Favorited
Unfavorite
1. What is lacking in the older guide?
Blossom's guide explains how to dump and load textures with the earliest versions of the fix that could do so. That information is still good for that iteration, but TSFix versions 9.0+ load textures differently and thus the original "TSFix_Textures -> custom" loading method is now bunk. There are a few important tidbits that I think merit a mention too.

If you're just here to use what I've made, skip to Section 5.
2. Texture Dumping and Indentification
There are two quick ways to access the game's textures.

Kaldaien hosts a .zip containing every texture in the game as .pngs on his Github https://github.com/Kaldaien/TSF/releases/tag/tsfix_090-test1, as well as the software he used to extract them all at once. The game can only read certain types of directdraw surface (.dds) images, so these are purely for easy access and must be converted to .dds before they can be used. Kaldaien once mentioned that .dds's dumped directly from the game should be of higher quality than these since converting to .png results in a quality loss, but as I typically dump everything I want to edit I have not compared them myself.

If you only need specific textures or texture names, you can use the fix's internal dumping feature. Create the necessary TSFix_Textures -> dump folders in the Symphonia root folder where the .exe is stored. Open TSFix.ini and set texture dumping to true, then start the game and make sure whatever textures you want are loaded while playing.

If you like the "softer" textured look of the final official patch, use TSFix version 0.9.11. Otherwise use the latest version, 0.10.5, which contains the second-to-last patch's .exe file, with which you will overwrite the .exe that comes with a fresh install. This is the version that SKIM downloads, and it will overwrite the .exe automatically. (For anyone wondering what I mean by the "softer" final patch, compare how the current unmodified PC game looks now to the PS3 version or older PC builds running TSFix. You'll notice the current PC version has soft edges in texture rendering that you have to max out the anti-aliasing to offset).

Sorting the images in the dump folder by date is supremely useful, as it puts the earliest textures loaded like buttons, menus, and the world map on the bottom of the list.
3. Texture Replacement
TSFix assigns every texture in the game a specific 8-character hash name, thus every texture you intend to replace must be named with that name. Textures will be named appropriately no matter where you get them from, so if you have a texture, you already have its name.

The 9 playable characters have 3 copies of each of their body textures, one for field, battle, and the Rheiards, likely a holdover from the home console practice of storing critical textures in multiple places on the disc for faster loader, so any changes to them will require 3 copies of that texture be saved to cover them all. Cities, Rooms, and Dungeons are contained largely in a series of 1024 x 1024 and occasionally 2048 x 2048 compilation textures.

To edit and save textures, you will need a photo editor that can read and save .dds files. I used Paint.net, but Photoshop and GIMP work just as well, probably better if you know them well.

What you actually do with this stuff is up to you. Your only limit is that you must honor the original aspect ratio of the texture so they wrap properly. The largest textures I've used are 4096 x 4096 (4K) saved losslessly (64 MB), and that simply slows the game for a couple of seconds on the first load, since TSFix will cache it afterward. Simple surface textures like fire, water, rock, and the like can be replaced outright, as you can see with the "Grave" spires below.


Many potential replacement textures can easily be made seamless by combining multiple copies of an image at different rotations then cutting out the part you want, see the combination example below.


If you want to upscale things, you have a few options. When making my texture packs linked below I used Waifu-2x, which leans to the blurry side and blunts some of the impact of their much higher resolution. Nowadays I would suggest something like Cupscale or any ESRGAN-based upscaler with one of their anime-oriented upscaling models.

Obviously the artistic elephant in the room is making high resolution textures that don't look out of place on Symphonia's super-deformed models. My quick and dirty suggestion would be to stack your textures together at an overkill resolution, then sizing that down to a point that the detail is still visible and proportional to the model. You may get shimmering for cramming too large of a texture on to too small of a model, but with my own textures I find this only happens below 1080p.

The textures formats that I know to work are DXT1, DXT5, and B8G8R8X8. I saved my textures as B8G8R8X8 (Linear, X8R8G8B8 in Paint.net) for that excessive lossless goodness, but Kaldaien used DXT1 and DXT5 for his texture packs. I suspect other lossless versions work too, but I have not tested any more.
4. Texture Loading
I will link to Kaldaien's full post on texture loading and .7zipping [github.com] both so you can read it from the man himself and download his PS3 buttons, cleanups, and complete x8 upscale pack. He made the upscale pack to upscale the aforementioned 1k/2k room and dungeon textures to 4K (4096 x 4096), but rather than go through the trouble of picking and choose the rooms and dungeons by hand he simply upscaled every texture in the game eight fold!

For reasons unknown, new downloads of TSFix lack the "Inject" line in TSFix.ini. The texture injecting functionality is still there, just not the command to enable it. To add it back in, open TSFix.ini, find the section I've coped below, and add "Inject=true/false" between "Dump" and "Cache".

[TSFix.Textures]
Log=false
Dump=false
Inject=true
Cache=true
MaxCacheInMiB=4096
MaxDecompressionJobs=16


Once you have saved your .dds's, you have two options for loading them. You can set how quickly textures are loaded in TSFix's Textures section, from 512 Kbit to 4096 Mbit, and how many textures you want TSFix to backlog at once. I always use the max loading speed.

Create the three folders "TSFix_Res -> inject -> textures" in your Symphonia root.

If you want to load individual textures, add two more folders called "streaming" and blocking" inside the "textures" folder and place your textures in one or the other. Streamed textures will load after the game has loaded the originals on their own time, blocked textures will stop everything until the replacement is loaded. Use blocking selectively; it will usually just give you longer load times, but at certain loading-heavy places like the World Map it can freeze the game.

The second option is where things get neat. Kaldaien gave TSFix an option to decompress and load the contents of .7zip files containing "streaming" or "blocking" folders into RAM while the game is running. They go into the "inject" folder (not "textures")- they will be loaded in numerical order after anything individual files in the "textures" folder.

Folders you intend to compress into a 7zip archive should be arranged like this before compressing:

Folder Name -> textures -> streaming/blocking (with the textures to be loaded inside one of these two folders)

Name your Folder "XX_Name", in which XX is 0 to 99, e.g "10_Fire Seal". Compress the "Folder Name" folder. Save as an LMZA2, with "fastest" compression for best performance.

If the same texture exists in multiple places, only the first one loaded will be used. Say you have a texture for Colette as free file in the "streaming" folder, another one in a 7zip beginning with 3, and a third one in a 7zip beginning with 40. The one in the streaming folder would be used, the Colette textures in the 7zip files will be ignored.
But why bother with an old, super-deformed game?
It is certainly true that Symphonia's proportions make it only a step up from a Nintendo 64 or Playstation game in regards to how effective texture upgrades actually are. The anatomy of pretty much everything is just too compact. Past a certain point its purely a novelty.

But there is something satisfying about cramming enormous textures on to tiny models.

5. My Texture Packs and Texture Name List
You will find that these packs are of the "look Ma, high res!" variety, throwing a lot of realistic textures into a stylized game. These were really my own messing around that I decided to throw up, so I certainly won't deny that.

Download links in the video above, as Steam removes MEGA links. All files are saved losslessly just because; if anyone wants sensibly-sized lossy versions that is easily done.

Tales of Symphonia OVA Status Portraits:


Packed for blocking.

World Map Sea and Sky:


Packed for streaming.

Oceans of Aselia:

Packed for streaming. Replaces Izoold, Palmacoasta, Thoda Dock, Thoda Geyser, and Altamira's ocean textures with the one used in "World Map Sea and Sky". Most prominent in Izoold and Palmacoasta. May eventually update this for a few other locations with ocean-side views, such as the various lone churches in Tethe'alla.

Updated Fire Seal:

Embedded Above. Packed mostly for streaming.

Updated Water Seal (Incomplete):


This still isn't done, but is far enough be worth releasing. Packed for streaming/blocking.

Cruxis and Fugue:

(Screenshot spoiler tagged)



Packed for blocking. New background textures for the last two dungeons, the final battle, and the Cursed Book extra dungeon.

Playable Character Textures V2:



Packed for streaming. Most are 2560 x 2560, Kratos and Zelos 4096 x 4096.

Aviators (Characters on Rheiards):


No replacements for Kratos, Colette, and Genis yet, I cannot find their Rheiard textures for some reason. The 7zip file for this one is "Ultra" compressed, you may need to repack it or place the textures in the streaming/blocking folder.

The Four Dragons:


A goofy thing I tried when I was pumping these out. Regal is the fourth. Packed for streaming.

Enemy Pack:


(Screenshot spoiler tagged)





Packed for streaming. Textures for the Grand Cardinals bar Forcystus, Yuan, Botta, a few other "named angels", the Final Boss, and a chipped black bone texture for the Sword Dancer. Upscaled most of the faces and some of the weapons I did not otherwise touch up. As with the player characters, the earlier ones are 2560 x 2560, the later ones 4096 x 4096.

Leftover Alts:


All of my other character touch-ups, mostly for the player characters, and some alternate background for the last two dungeons. They have proper names rather than hash names so you'll have to rename and insert them manually. My texture name list is included to do just that.

Great Duck's Texture Name List (Updated 2/25/2017):

I've made a tenative list of textures names for my own reference. It is nowhere near complete, but it will give you a number of names from the get go!

Dolphin Version Pack (PNG)

Probably against the rules somewhere, but was requested. These are memory eaters- the entire pack will be around 3~ GB when prefeteched!
59 Comments
Mauabj Oct 7, 2023 @ 11:13pm 
I've been trying to use the SKIM64.exe installer, but it won't allow me to install anything. It opens, but not letting me click "install" once I selected Tales of Symphonia. I need some help here, thank you!
StellaSymphony May 31, 2022 @ 10:36am 
Great Duck : Thank you so much! I reinstalled the game and reinstalled SKIM through the link you've provided to my post and now everything works, including my edited textures, without any error messages or pop ups.The only thing that isn't working is the TSFix_Textures > dump path. I've been having a rough time locating the playable character's eye and mouth textures since the winrar scrambles all of the npc face textures with them.
Great Duck  [author] May 30, 2022 @ 8:21pm 
Right, TSFix is not a part of the Steam install so Steam won't remove those files. Just delete the entire game folder when reinstalling.
StellaSymphony May 30, 2022 @ 7:19pm 
I tried reinstalling the entire game but it still crashed at launch when I checked Local Files the TSFix files were still there. I'm going to try deleting them and then reinstalling.
StellaSymphony May 30, 2022 @ 4:51pm 
Great Duck : Oh no! I tried validating Local Files to get rid of that harmless error message and it completely broke the game for whatever reason! I tried reinstalling the TSFix through SKIM but even that's getting an error now. Should I try completely reinstalling the game?
Great Duck  [author] May 30, 2022 @ 4:37pm 
I don't think I've gotten that particular error, you can always try a fresh install. Yep I'm still using paint.net , which in the time since I put these textures out received an update that explains each of the .dds options you can save an image into in more detail. Photoshop should have an image property viewer that can tell you the format, if not I know for sure that Irfanview does with the right plug-in.
StellaSymphony May 30, 2022 @ 4:36pm 
Great Duck : So I got rid of the 4K texture winrar that I had in the streaming folder and only pasted my edited DDS file that was saved as BC3 and it finally works! Thank you so much, however, when I launch the game I get a error pop up that reads:
Microsoft Visual C++ Runtime Library
Assertion failed!
File: steam_api.dll
File: callbackmgr.cpp
Line: 394
Expression: false
Please retry to debug the application - JIT must be enabled

The game still launches with no noticeable problems when I press Ignore and my custom textures are working, but does this error pop up mean anything? I only got this after first extracting the tsfix.7z winrar and then the tsfix_0_10_6_pr.7z winrar from the Assets section from the link provided into Symphonia's Browse Local Files folder.

*edit
Great Duck  [author] May 29, 2022 @ 6:04pm 
1) The newest version of SKIM found on this page (https://wiki.special-k.info/en/SpecialK/Custom#install-type-skim) works just fine, which installs version 0.10.5 and automatically overwrites the final patch's .exe file with the second-to-last patch's .exe as a part of installation.

2) Kaldaien said at the time that the game only accepts DXT1 and DXT5 textures (broadly, I do not know what compression types, or if the compression type even matters), and his own texture upscales and edits are saved as some kind of DXT5. But my own textures are actually neither of those, but uncompressed B8G8R8X8 (Linear, X8R8G8B8). That just worked for me and I never gave it any more thought.

3) You would place ONLY the edited textures into the streaming or blocking folder.

4) You do not need anything but the TOSFix files, and to create those new folders mentioned. Kal's own textures are entirely optional.

Tweaked a few things in the guide talking about these points.
StellaSymphony May 28, 2022 @ 5:57pm 
I've tried doing this through the version that comes with SKIM64 but the texture edits are not registering at all, Vesperia's works just fine but this one isn't.
1. What is the exact version and place of TSFix that I need to download to do this (link to zip folder/winrar)? Do I also need to replace Symphonia's exe?
2. After I make my edits in Photoshop, what Texture Type do I use and what Compression do I save as? I currently have Texture Type set to Color + Alpha and Compression as BC7 8bpp Fine (Linear, DX11+) which works with Vesperia.
3. After I extract the SKFix into Symphonia's local files folder, where do I paste my edited dds files? Do I keep the original dds files under streaming untouched and save my edited ones to a different folder?
4. What specific mods from SKIM do I need for this to work? Do I need the 4k texture one or do I need all of them active, or are they interfering with my custom textures?
sWX Sep 5, 2021 @ 4:05pm 
Ok, well thanks for the idea (and this guide too, of course). I'll reach out and see if he's got any thoughts on the matter. I guess the main problem would be if he still has interest in Symphonia...