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.

Wolfenstein II The New Colossus (.resources .texdb)

Featured Replies

  • Author
  • Localization

aluigi, posted Sat Oct 28, 2017 4:39 pm (27795)


Just to recap: the field that I called ID_2 must be converted in the offset "DUMMY7_OFF (DUMMY2_NUM * 4) ((ID_2 1) * 8)".
That seems to work
  • Replies 53
  • Views 19
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 4:43 pm (27796)


aluigi wrote:
Just to recap: the field that I called ID_2 must be converted in the offset "DUMMY7_OFF (DUMMY2_NUM * 4) ((ID_2 1) * 8)".
That seems to work

Ahh, that's why it looked like ID*2
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 4:57 pm (27797)


Ok so we've got names working on my end as well, two integers per entry, texdb is still an issue, they are oodle as I said earlier, also, there is an unused table with entries 0x20 in size and it has a corresponding count in the header. (Two offsets point here)
  • Author
  • Localization

aluigi, posted Sat Oct 28, 2017 5:08 pm (27799)


Why do you say that texdb contains oodle data?
There is no oodle there.
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 5:13 pm (27801)


aluigi wrote:
Why do you say that texdb contains oodle data?
There is no oodle there.


A lot of the entries start with the oodle quantum header, 0x8c 0x6 (Quantum/Kraken) encoding...
  • Author
  • Localization

aluigi, posted Sat Oct 28, 2017 5:14 pm (27803)


The sample provided by the other user has just files starting with 0xcc and without any compression.
Offsets 2342c2, 234240, 233e34 and the others visible in the sample
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 5:15 pm (27804)


Ahh, I'm looking at chunk_1's texdb...
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 5:23 pm (27806)


aluigi wrote:
I have uploaded the new script 0.3 that hopefully now works correctly with the resources/pack archives:
http://aluigi.org/bms/wolfenstein2.bms

This is wrong, the types are looked up via the second index in the entry.

Type = index, Name = index 1 (All * 8)...

Verified this works with all resource files afaik
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 5:27 pm (27807)


Also back to texdb, here is an entry which clearly has an oodle header
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 5:29 pm (27808)


This also leads me to believe that the 0xCC are also oodle, but with different variables, because the header passes the oodle verification check
  • Author
  • Localization

toxic72, posted Sat Oct 28, 2017 5:36 pm (27809)


Yes I was correct, and so were you, but it is a oodle block, oodle itself has an option to determine if the data is big enough for compression, 0xCC sets the block to uncompressed, but it has an oodle header :)

Here is my oodle verification block code:

Code:
            int b = 0xcc;//magic
           
           
            Console.WriteLine(((b & 0xF) != 0xC));// Should be false
            Console.WriteLine(((b >> 4) & 3) != 0);// Should be false
            Console.WriteLine((b >> 7) & 1);// Restart decoder
            Console.WriteLine((b >> 6) & 1);// Uncompressed chunk
           
            b = 0x6;// compression type
            Console.WriteLine(b & 0x3F);// Compressor algo type (0x6 = kraken)
            Console.WriteLine((b>>7));// Has checksums
  • Author
  • Localization

aluigi, posted Sun Oct 29, 2017 3:13 pm (27824)


I don't know why oodle doesn't do that job by itself, since it's its job :)
quickbms 0.8.1 has the -e option that allows to dump output buffer even if the compression algorithm returns an error and it's just full of zeroes

Ah, feel free to link your github/code/tool for people interested in extracting texdb.
  • Author
  • Localization

folkemon1977, posted Mon Oct 30, 2017 5:58 pm (29563)


Hi friends,
please, can you help me with decrypting language strings from latest Wolfenstein?
I translated both New Order and Old Blood to the Czech language, but with this new format i'm at my wits' end.
Many thanks for your answer.
Kind regards


Link for download strings:
download/file.php?id=3465
  • Author
  • Localization

infogram, posted Fri Nov 03, 2017 8:37 pm (29708)


folkemon1977 wrote:
Hi friends,
please, can you help me with decrypting language strings from latest Wolfenstein?
I translated both New Order and Old Blood to the Czech language, but with this new format i'm at my wits' end.
Many thanks for your answer.
Kind regards


Link for download strings:
download/file.php?id=3465


Seems the encryption method is the same as DOOM 2016, except now they decompress with Oodle after decryption.

You can use my idCrypt tool (http://redd.it/6u744t, src included for anyone interested) to decrypt the file, but you need to delete the first 4 bytes first though (seems to be Oodle-related, maybe the uncompressed-size)

eg. delete first 4 bytes from english.lang, rename english.lang to english.bfile and run "idCrypt english.bfile strings/english.lang"

AFAIK it's decrypting fine since BCryptDecrypt isn't giving any error code, don't know anything about Oodle though so not sure where to go from there, for now I guess I'll see if I can maybe get idCrypt to work with the games oo2core_5_win64.dll
  • Author
  • Localization

givingtree, posted Mon Nov 06, 2017 3:42 pm (29824)


huh... this game structure is so difficult... terrible
  • Author
  • Localization

toxic72, posted Tue Nov 07, 2017 4:39 pm (29845)


infogram wrote:
folkemon1977 wrote:
Hi friends,
please, can you help me with decrypting language strings from latest Wolfenstein?
I translated both New Order and Old Blood to the Czech language, but with this new format i'm at my wits' end.
Many thanks for your answer.
Kind regards


Link for download strings:
http://zenhax.com/files/file.php_id=3465


Seems the encryption method is the same as DOOM 2016, except now they decompress with Oodle after decryption.

You can use my idCrypt tool (http://redd.it/6u744t, src included for anyone interested) to decrypt the file, but you need to delete the first 4 bytes first though (seems to be Oodle-related, maybe the uncompressed-size)

eg. delete first 4 bytes from english.lang, rename english.lang to english.bfile and run "idCrypt english.bfile strings/english.lang"

AFAIK it's decrypting fine since BCryptDecrypt isn't giving any error code, don't know anything about Oodle though so not sure where to go from there, for now I guess I'll see if I can maybe get idCrypt to work with the games oo2core_5_win64.dll


https://github.com/dtzxporter/Siren Enjoy
  • Author
  • Localization

BioLife, posted Sat Nov 25, 2017 12:36 pm (30291)


Hello,

I've tried to extract some .resources with the aluigi's script, and it seems that files are not extracted in their right paths.
Eg. "strings" folder is used to be in the root (verified in idTech 6 with DOOM, Wolfenstein TNO & TOB), which is not actually the case.

Is this because we have not the .index file ?
  • Author
  • Localization

aluigi, posted Sun Nov 26, 2017 12:10 pm (30333)


Maybe the script doesn't handle the filenames 100% correctly, the method used in the archive was weird.

Try removing the lines 72 and 73 (string NAME ...) and check if the situation is better or worst.

Anyway without the exact method to handle the filenames there is not much I can do.
  • Author
  • Localization

BioLife, posted Sun Nov 26, 2017 2:01 pm (30344)


I've tried without this lines, and it seems worst :/

In the same time I think I understand the structure to get the correct filenames and paths :

  • First, all files must be in folders
  • Complete path contains at least one "/" = line/string which does not contain "/" is a variable used by the engine or something else, for example the strings "durango" or "orbis" are codenames for PS4 and XBOX One
  • "$something" or "#something" or other strings that some filenames contains at the end seems to be also variables and should be cleaned from the final filename

Could you try to do a script that reflect this structure?

This is the file from which i've tried to understand the structure: https://1fichier.com/?me542l2agw

I continue to do some research...
  • Author
  • Localization

BioLife, posted Sun Nov 26, 2017 3:47 pm (30346)


I've modified the script to print all correct path and filenames, it's ugly but I think it reflects better the structure...

Using the .resources from my previous post, we can see that some filenames are wrong, i'll try to cleanup more..

wolfenstein20.bms

  • Author
  • Localization

aluigi, posted Sun Nov 26, 2017 6:01 pm (30349)


Eh no, I need the real format and correct structure
  • Author
  • Localization

BioLife, posted Sun Nov 26, 2017 7:25 pm (30350)


What do you mean?

This structure is based on the other games which using idTech and I used an Hex Editor to compare.

In the script you made, most of the files extracted seems not to be a file, but a variable, or something like that..

The script that i'm trying to do, is to get all the real files.
  • Author
  • Localization

masagrator, posted Sat Dec 22, 2018 10:22 am (41568)


Hello.
I tried to unpack files from patch2.resources from Switch version of the game. I don't need to decrypt them, only i want to swap strings for language files and export them again to patch2.
Script for quickbms from main site works for gameresources.resources and patch1.resources, but for patch2.resources it shows after unpacking half of files
Code:
Error: the script uses more array indexes (1279476809) than available (1401)


But showing only files without extracting works perfectly.
If it can help, here is file packed to zip for reducing size.
https://drive.google.com/file/d/1102BPT ... sp=sharing
  • Author
  • Localization

masagrator, posted Wed Jan 02, 2019 9:33 am (41804)


OK, I made a roundabout, because i wanted only access to language files and I got it.
Issue is with TYPE_ID.
Delete
Code:
getarray STR1 0 TYPE_ID

and change
Code:
        string NAME p "%s/%s" STR1 STR2

to
Code:
        string NAME p "%s" STR2


It will mess with folders for most files, but some of them still will be in folders like language files in "strings".
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.