Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

TFC File Decompression

Featured Replies

  • Author
  • Localization

Daredust, posted Fri Mar 06, 2020 6:31 pm (54451)


Hello everyone

I'm a bit lost and am hoping to find someone who can help me out with this.
The developers for the game SMITE recently made changes to the way the game is structured and compressed. (They switched to oodle compression)
With the help of gildor it is possible again to extract models and such with umodel, but all textures are stored externally in TFC files. Now, the extraction of those TFC files didn't work with umodel before the update either, meaning it needed to be done manually with the TFC extractor tool by daemon1: https://forum.xentax.com/viewtopic.php?f=18&t=16033
Unfortunately the tool doesn't work anymore and I'm not sure why (most likely because they are compressed differently).
I attached a TFC file from before the update which can be extracted with that tool and one from the current version with the new compression that doesn't work anymore. I also attached the oo2core_7_win64.dll from the SMITE game files, hoping that it might help.

Are the TFC files compressed with oodle as well? If so, how would I go about decompressing them?

Thank you very much in advance for the help <3
Cheers

TFC Example Files and Oodle dll.zip

  • Author
  • Localization

aluigi, posted Sat Mar 21, 2020 12:27 pm (54865)


The data from offset 0x30 is definitely oodle and decompression works.
You can even use quickbms for the job if you prefer. I'm not perfectly familiar with the format but I made a raw decompressor for your tests:
http://aluigi.org/bms/ue_tfc_oodle.bms
  • Author
  • Localization

Daredust, posted Fri Mar 27, 2020 7:56 am (55186)


aluigi wrote:
The data from offset 0x30 is definitely oodle and decompression works.
You can even use quickbms for the job if you prefer. I'm not perfectly familiar with the format but I made a raw decompressor for your tests:
http://aluigi.org/bms/ue_tfc_oodle.bms


Thank you very much. Sorry for not seeing this sooner, but I didn't receive a notification that there was a reply to my post.
I don't quite understand what the output of your bms script is. I get multiple files with different sizes. Is that just raw texture data I have to figure out the corresponding format?
I would appreciate if you could help me with that, in case you know about texture data formats. I assume they're DDS textures, and appending .dds to the output files obviously doesn't work ;)
  • Author
  • Localization

aluigi, posted Fri Mar 27, 2020 8:53 am (55189)


Honestly I don't know. I simply dumped the content referenced in the file.
Maybe take a look at the other topics related to uasset, uexp, umodel and similar keywords
  • Author
  • Localization

Daredust, posted Fri Mar 27, 2020 9:29 am (55203)


aluigi wrote:
Honestly I don't know. I simply dumped the content referenced in the file.
Maybe take a look at the other topics related to uasset, uexp, umodel and similar keywords


Alright, no problem. Being able to decompress the files is already a huge step forward for me, so I thank you a lot for that :)
  • Author
  • Localization

Daredust, posted Fri Mar 27, 2020 11:33 am (55221)


Daredust wrote:
aluigi wrote:
Honestly I don't know. I simply dumped the content referenced in the file.
Maybe take a look at the other topics related to uasset, uexp, umodel and similar keywords


Alright, no problem. Being able to decompress the files is already a huge step forward for me, so I thank you a lot for that :)

Turns out they were indeed raw DDS texture data and only needed an appropriate header. Your bms script works like a charm! :D
  • Author
  • Localization

ERenfro, posted Mon Apr 27, 2020 5:43 am (56317)


Hey, you can't leave without sharing the solution with everyone! We're dieing for it!

How do you add the DDS header to these raw files?
  • Author
  • Localization

MrBalrog, posted Thu Apr 30, 2020 12:17 am (56406)


I would like to know this aswell :|

Been looking for a way to rip the new textures since .tfc updated and being only one step away yet not knowing how to finish it is a bit frustrating.
  • Author
  • Localization

Daredust, posted Thu Apr 30, 2020 1:01 pm (56416)


Sorry everyone I forgot about this thread. I used the raw texture converter by daemon: viewtopic.php?f=7&t=7099
Should be self-explanatory from there :D
  • Author
  • Localization

GoblinKing, posted Mon May 04, 2020 8:45 pm (56540)


Daredust wrote:
Sorry everyone I forgot about this thread. I used the raw texture converter by daemon: viewtopic.php?f=7&t=7099
Should be self-explanatory from there :D


Sup, i've been looking for the last 2 hours how to extract smite models, it was very easy to do it before the "file system" change 2-3 months ago (it was just about telling Umodel to get the upk and decompress to psk and psa, plus all textures in TGA) but now im having a headache with the texture files stored inside those massive .TFC files.

I did exactly everything you guys said in this topic:

1- Get your smite .TFC file, place everything inside one folder, use Quickbms then the script made by aluigi.
2- You get tons of raw files like:
ChartexturesHighRes0_01
ChartexturesHighRes0_02
ChartexturesHighRes0_03
ChartexturesHighRes0_04 and so on... HUNDREDS if not thousands.

3- Drag and drop each file to the "raw texture cooker" made by id-deamon then it automatically converts the raw file to .DDS format, problem solved.

But... this is extremly time consuming, i mean i have to drag and drop hundreds of files one at a time, is there any way to do the same process with all the files at once? i've already tried selecting like 50 files and drop them to the raw texture cooker but it doesn't work like that, anyway Thx for sharing this info, at least we can still rip smite files eventho it takes much more time.
  • Author
  • Localization

herossin, posted Mon Dec 07, 2020 7:16 pm (60968)


GoblinKing wrote:
is there any way to do the same process with all the files at once?

As a matter of fact, you can. I did it with some simple PowerShell. I'm sure you can do this in other languages, but I thought of PS first.

I ran this on the folder where I extracted all the Smite textures using Quickbms
Code:
Get-ChildItem -File E:\SMITE_textures\ | ForEach {E:\RawTex\RawtexCmd.exe $_.fullname BC1}

I can't say it worked for 100% of the textures, but from what I can tell all the character textures are fine at the very least.

Edit:
It's worth noting that this took about 2-3 hours to get through all 90k or so files, but that's if you extracted all textures from every TFC file
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.