Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Soda1459
Posts: 34
Joined: Sat Jul 29, 2017 1:00 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Soda1459 »

And how can you extract the .data files in the first place ? Ubisoft Forge Tool don't work
Lazy_Cat_2k3
Posts: 31
Joined: Sat Aug 22, 2020 12:43 am

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Lazy_Cat_2k3 »

They have deleted the "Name Table" so the ".data" files don't have any names.
Here's a simple bms script to unpack data file from FORGE archive. It also supports repack by reimport2 (work only for Valhalla).

Code: Select all

IDSTRING "scimitar"
GET UNKNOW BYTE
GET VERSION LONG
GET OFFSET_FILE_DATA_HEADER LONGLONG

GOTO OFFSET_FILE_DATA_HEADER
GET TOTAL_FILE_COUNT LONG
GETDSTRING UNKNOW 24
GET MAXIMUM_NUMBER_FILES_FOR_THIS_INDEX LONG
GET UNKNOW LONG
GET OFFSET_FILE_DATA LONG

GOTO OFFSET_FILE_DATA
GET INDEX_COUNT LONG
GET UNKNOW LONG
GET OFFSET_INDEX_TABLE LONGLONG

GOTO OFFSET_INDEX_TABLE

FOR i = 0 < INDEX_COUNT
   GET OFFSET_RAW_DATA_TABLE LONGLONG
   GET FILE_DATA_ID LONGLONG
   GET RAW_DATA_SIZE LONG

   SET NAME STRING i
   STRING NAME + ".data"
   LOG NAME OFFSET_RAW_DATA_TABLE RAW_DATA_SIZE
NEXT i


For Unpack ".data": viewtopic.php?f=9&t=9138&start=80#p60046
Last edited by Lazy_Cat_2k3 on Mon Nov 09, 2020 11:29 am, edited 1 time in total.
Soda1459
Posts: 34
Joined: Sat Jul 29, 2017 1:00 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Soda1459 »

Thank you for the script ! It worked fine
Wanz
Posts: 27
Joined: Mon Jun 01, 2020 3:51 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Wanz »

Lazy_Cat_2k3 wrote:They have deleted the "Name Table" so the ".data" files don't have any names.
Here's a simple bms script to unpack data file from FORGE archive. It also supports repack by reimport2.

Code: Select all

IDSTRING "scimitar"
GET UNKNOW BYTE
GET VERSION LONG
GET OFFSET_FILE_DATA_HEADER LONGLONG

GOTO OFFSET_FILE_DATA_HEADER
GET TOTAL_FILE_COUNT LONG
GETDSTRING UNKNOW 24
GET MAXIMUM_NUMBER_FILES_FOR_THIS_INDEX LONG
GET UNKNOW LONG
GET OFFSET_FILE_DATA LONG

GOTO OFFSET_FILE_DATA
GET INDEX_COUNT LONG
GET UNKNOW LONG
GET OFFSET_INDEX_TABLE LONGLONG

GOTO OFFSET_INDEX_TABLE

FOR i = 0 < INDEX_COUNT
   GET OFFSET_RAW_DATA_TABLE LONGLONG
   GET FILE_DATA_ID LONGLONG
   GET RAW_DATA_SIZE LONG

   SET NAME STRING i
   STRING NAME + ".data"
   LOG NAME OFFSET_RAW_DATA_TABLE RAW_DATA_SIZE
NEXT i


For Unpack ".data": viewtopic.php?f=9&t=9138&start=80#p60046


Thanks so much. I'll test the script & the tool you shared when the game gets released.
Wanz
Posts: 27
Joined: Mon Jun 01, 2020 3:51 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Wanz »

Which .forge file includes the localization files? Do you guys know anything?
Lord Vaako
Posts: 26
Joined: Tue Oct 17, 2017 7:36 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Lord Vaako »

Wanz wrote:Which .forge file includes the localization files? Do you guys know anything?


afair in Odyssey it was inside dataPC.forge > LocalizationPackage_[language]
Wanz
Posts: 27
Joined: Mon Jun 01, 2020 3:51 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Wanz »

Lord Vaako wrote:
Wanz wrote:Which .forge file includes the localization files? Do you guys know anything?


afair in Odyssey it was inside dataPC.forge > LocalizationPackage_[language]


The BMS script exports .forge files with numbers. There are no files named "LocalizationPackage_[language". Can you test the tool and let me know?
Martin3D
Posts: 2
Joined: Sun Mar 10, 2019 11:22 am

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Martin3D »

Wanz wrote:Which .forge file includes the localization files? Do you guys know anything?

AC Valhalla DataPC.forge:

Code: Select all

7799.data = 0-LocalizationPackage_Arabe_MTM.Localization_Package
7800.data = 0-LocalizationPackage_Arabe_Subtitles_MTM.Localization_Package
7801.data = 0-LocalizationPackage_Arabic.Localization_Package
7802.data = 0-LocalizationPackage_Arabic_Subtitles.Localization_Package
7803.data = 0-LocalizationPackage_Auditioning(Male).Localization_Package
7804.data = 0-LocalizationPackage_Auditioning(Male)_Subtitles.Localization_Package
7805.data = 0-LocalizationPackage_Brazil.Localization_Package
7806.data = 0-LocalizationPackage_Brazil_Subtitles.Localization_Package
7807.data = 0-LocalizationPackage_Chinese(Simp).Localization_Package
7808.data = 0-LocalizationPackage_Chinese(Simp)_MTM.Localization_Package
7809.data = 0-LocalizationPackage_Chinese(Simp)_Subtitles.Localization_Package
7810.data = 0-LocalizationPackage_Chinese(Simp)_Subtitles_MTM.Localization_Package
7811.data = 0-LocalizationPackage_Chinese(Trad).Localization_Package
7812.data = 0-LocalizationPackage_Chinese(Trad)_MTM.Localization_Package
7813.data = 0-LocalizationPackage_Chinese(Trad)_Subtitles.Localization_Package
7814.data = 0-LocalizationPackage_Chinese(Trad)_Subtitles_MTM.Localization_Package
7815.data = 0-LocalizationPackage_Czech.Localization_Package
7816.data = 0-LocalizationPackage_Czech_MTM.Localization_Package
7817.data = 0-LocalizationPackage_Czech_Subtitles.Localization_Package
7818.data = 0-LocalizationPackage_Czech_Subtitles_MTM.Localization_Package
7819.data = 0-LocalizationPackage_Dutch.Localization_Package
7820.data = 0-LocalizationPackage_Dutch_MTM.Localization_Package
7821.data = 0-LocalizationPackage_Dutch_Subtitles.Localization_Package
7822.data = 0-LocalizationPackage_Dutch_Subtitles_MTM.Localization_Package
7823.data = 0-LocalizationPackage_English.Localization_Package
7824.data = 0-LocalizationPackage_English_Subtitles.Localization_Package
7825.data = 0-LocalizationPackage_French.Localization_Package
7826.data = 0-LocalizationPackage_French(France)_MTM.Localization_Package
7827.data = 0-LocalizationPackage_French(France)_Subtitles_MTM.Localization_Package
7828.data = 0-LocalizationPackage_French_Subtitles.Localization_Package
7829.data = 0-LocalizationPackage_German.Localization_Package
7830.data = 0-LocalizationPackage_German_MTM.Localization_Package
7831.data = 0-LocalizationPackage_German_Subtitles.Localization_Package
7832.data = 0-LocalizationPackage_German_Subtitles_MTM.Localization_Package
7833.data = 0-LocalizationPackage_Italian.Localization_Package
7834.data = 0-LocalizationPackage_Italian_MTM.Localization_Package
7835.data = 0-LocalizationPackage_Italian_Subtitles.Localization_Package
7836.data = 0-LocalizationPackage_Italian_Subtitles_MTM.Localization_Package
7837.data = 0-LocalizationPackage_Japanese.Localization_Package
7838.data = 0-LocalizationPackage_Japanese_MTM.Localization_Package
7839.data = 0-LocalizationPackage_Japanese_Subtitles.Localization_Package
7840.data = 0-LocalizationPackage_Japanese_Subtitles_MTM.Localization_Package
7841.data = 0-LocalizationPackage_Korean.Localization_Package
7842.data = 0-LocalizationPackage_Korean_MTM.Localization_Package
7843.data = 0-LocalizationPackage_Korean_Subtitles.Localization_Package
7844.data = 0-LocalizationPackage_Korean_Subtitles_MTM.Localization_Package
7845.data = 0-LocalizationPackage_Polish.Localization_Package
7846.data = 0-LocalizationPackage_Polish_MTM.Localization_Package
7847.data = 0-LocalizationPackage_Polish_Subtitles.Localization_Package
7848.data = 0-LocalizationPackage_Polish_Subtitles_MTM.Localization_Package
7849.data = 0-LocalizationPackage_Portuguese(Brazil)_MTM.Localization_Package
7850.data = 0-LocalizationPackage_Portuguese(Brazil)_Subtitles_MTM.Localization_Package
7851.data = 0-LocalizationPackage_Russian.Localization_Package
7852.data = 0-LocalizationPackage_Russian_MTM.Localization_Package
7853.data = 0-LocalizationPackage_Russian_Subtitles.Localization_Package
7854.data = 0-LocalizationPackage_Russian_Subtitles_MTM.Localization_Package
7855.data = 0-LocalizationPackage_Spanish(Mexico).Localization_Package
7856.data = 0-LocalizationPackage_Spanish(Mexico)_MTM.Localization_Package
7857.data = 0-LocalizationPackage_Spanish(Mexico)_Subtitles.Localization_Package
7858.data = 0-LocalizationPackage_Spanish(Mexico)_Subtitles_MTM.Localization_Package
7859.data = 0-LocalizationPackage_Spanish(Spain).Localization_Package
7860.data = 0-LocalizationPackage_Spanish(Spain)_MTM.Localization_Package
7861.data = 0-LocalizationPackage_Spanish(Spain)_Subtitles_MTM.Localization_Package
7862.data = 0-LocalizationPackage_Spanish_Subtitles.Localization_Package


EDITED: add missing Localization_Package files
Last edited by Martin3D on Sun Nov 08, 2020 10:17 pm, edited 1 time in total.
Wanz
Posts: 27
Joined: Mon Jun 01, 2020 3:51 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Wanz »

Martin3D wrote:
Wanz wrote:Which .forge file includes the localization files? Do you guys know anything?

AC Valhalla DataPC.forge:

Code: Select all

7799.data = 0-LocalizationPackage_Arabe_MTM.Localization_Package
7800.data = 0-LocalizationPackage_Arabe_Subtitles_MTM.Localization_Package
7801.data = 0-LocalizationPackage_Arabic.Localization_Package
7802.data = 0-LocalizationPackage_Arabic_Subtitles.Localization_Package
7803.data = 0-LocalizationPackage_Auditioning(Male).Localization_Package
7804.data = 0-LocalizationPackage_Auditioning(Male)_Subtitles.Localization_Package
7805.data = 0-LocalizationPackage_Brazil.Localization_Package
7806.data = 0-LocalizationPackage_Brazil_Subtitles.Localization_Package
7807.data = 0-LocalizationPackage_Chinese(Simp).Localization_Package
7808.data = 0-LocalizationPackage_Chinese(Simp)_MTM.Localization_Package
7809.data = 0-LocalizationPackage_Chinese(Simp)_Subtitles.Localization_Package
7810.data = 0-LocalizationPackage_Chinese(Simp)_Subtitles_MTM.Localization_Package
7811.data = 0-LocalizationPackage_Chinese(Trad).Localization_Package
7812.data = 0-LocalizationPackage_Chinese(Trad)_MTM.Localization_Package
7813.data = 0-LocalizationPackage_Chinese(Trad)_Subtitles.Localization_Package
7814.data = 0-LocalizationPackage_Chinese(Trad)_Subtitles_MTM.Localization_Package
7819.data = 0-LocalizationPackage_Dutch.Localization_Package
7820.data = 0-LocalizationPackage_Dutch_MTM.Localization_Package
7821.data = 0-LocalizationPackage_Dutch_Subtitles.Localization_Package
7822.data = 0-LocalizationPackage_Dutch_Subtitles_MTM.Localization_Package
7825.data = 0-LocalizationPackage_French.Localization_Package
7826.data = 0-LocalizationPackage_French(France)_MTM.Localization_Package
7827.data = 0-LocalizationPackage_French(France)_Subtitles_MTM.Localization_Package
7828.data = 0-LocalizationPackage_French_Subtitles.Localization_Package
7829.data = 0-LocalizationPackage_German.Localization_Package
7830.data = 0-LocalizationPackage_German_MTM.Localization_Package
7831.data = 0-LocalizationPackage_German_Subtitles.Localization_Package
7832.data = 0-LocalizationPackage_German_Subtitles_MTM.Localization_Package
7833.data = 0-LocalizationPackage_Italian.Localization_Package
7834.data = 0-LocalizationPackage_Italian_MTM.Localization_Package
7835.data = 0-LocalizationPackage_Italian_Subtitles.Localization_Package
7836.data = 0-LocalizationPackage_Italian_Subtitles_MTM.Localization_Package
7837.data = 0-LocalizationPackage_Japanese.Localization_Package
7838.data = 0-LocalizationPackage_Japanese_MTM.Localization_Package
7839.data = 0-LocalizationPackage_Japanese_Subtitles.Localization_Package
7840.data = 0-LocalizationPackage_Japanese_Subtitles_MTM.Localization_Package
7841.data = 0-LocalizationPackage_Korean.Localization_Package
7842.data = 0-LocalizationPackage_Korean_MTM.Localization_Package
7843.data = 0-LocalizationPackage_Korean_Subtitles.Localization_Package
7844.data = 0-LocalizationPackage_Korean_Subtitles_MTM.Localization_Package
7845.data = 0-LocalizationPackage_Polish.Localization_Package
7846.data = 0-LocalizationPackage_Polish_MTM.Localization_Package
7847.data = 0-LocalizationPackage_Polish_Subtitles.Localization_Package
7848.data = 0-LocalizationPackage_Polish_Subtitles_MTM.Localization_Package
7849.data = 0-LocalizationPackage_Portuguese(Brazil)_MTM.Localization_Package
7850.data = 0-LocalizationPackage_Portuguese(Brazil)_Subtitles_MTM.Localization_Package
7851.data = 0-LocalizationPackage_Russian.Localization_Package
7852.data = 0-LocalizationPackage_Russian_MTM.Localization_Package
7853.data = 0-LocalizationPackage_Russian_Subtitles.Localization_Package
7854.data = 0-LocalizationPackage_Russian_Subtitles_MTM.Localization_Package
7855.data = 0-LocalizationPackage_Spanish(Mexico).Localization_Package
7856.data = 0-LocalizationPackage_Spanish(Mexico)_MTM.Localization_Package
7857.data = 0-LocalizationPackage_Spanish(Mexico)_Subtitles.Localization_Package
7858.data = 0-LocalizationPackage_Spanish(Mexico)_Subtitles_MTM.Localization_Package
7859.data = 0-LocalizationPackage_Spanish(Spain).Localization_Package
7860.data = 0-LocalizationPackage_Spanish(Spain)_MTM.Localization_Package
7861.data = 0-LocalizationPackage_Spanish(Spain)_Subtitles_MTM.Localization_Package
7862.data = 0-LocalizationPackage_Spanish_Subtitles.Localization_Package


Thanks so much. I've been searching the game files for a hour, you saved me.
Wanz
Posts: 27
Joined: Mon Jun 01, 2020 3:51 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Wanz »

As I see there are no English files, can you also share them too?
Martin3D
Posts: 2
Joined: Sun Mar 10, 2019 11:22 am

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Martin3D »

Wanz wrote:As I see there are no English files, can you also share them too?

I've updated the list viewtopic.php?f=9&t=9138&p=60083#p60083
Wanz
Posts: 27
Joined: Mon Jun 01, 2020 3:51 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Wanz »

Martin3D wrote:
Wanz wrote:As I see there are no English files, can you also share them too?

I've updated the list viewtopic.php?f=9&t=9138&p=60083#p60083


Thanks for the effort mate. Really appreciate it.
Lord Vaako
Posts: 26
Joined: Tue Oct 17, 2017 7:36 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Lord Vaako »

you are fast Martin3D, thnx :-)

dumb question - can I use this tool to extract textures? and how? :-D
fpc
Posts: 12
Joined: Tue Nov 10, 2020 1:59 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by fpc »

Hello,
Got myself a Russian version of a game, my goal is to make it fully English.
I extracted 7823.data and 7824.data from the DataPC.forge, renamed them to 7851, 7852, 7853 and 7854, used reimport2 to put them into my DataPC.forge file. But the game is still in Russian.
What am I doing wrong? Thought it will replace all strings to English.
Lazy_Cat_2k3
Posts: 31
Joined: Sat Aug 22, 2020 12:43 am

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Lazy_Cat_2k3 »

fpc wrote:Hello,
Got myself a Russian version of a game, my goal is to make it fully English.
I extracted 7823.data and 7824.data from the DataPC.forge, renamed them to 7851, 7852, 7853 and 7854, used reimport2 to put them into my DataPC.forge file. But the game is still in Russian.
What am I doing wrong? Thought it will replace all strings to English.

Try replacing it in DataPC_patch_01.forge.
English: 5958, 5959
Russian: 5986, 5987,5988, 5989
Also I don't recommend replacing .data file, you should extract it by using DATA_tool and edit text by using roobin's tool on Xentax.

Wanz wrote:The BMS script exports .forge files with numbers. There are no files named "LocalizationPackage_[language". Can you test the tool and let me know?

If you want to get filename, extract all .data by using DATA_tool and search for something. Of course, it will take a long time to unpack all .data files. :?
fpc
Posts: 12
Joined: Tue Nov 10, 2020 1:59 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by fpc »

Lazy_Cat_2k3 wrote:Also I don't recommend replacing .data file, you should extract it by using DATA_tool and edit text by using roobin's tool on Xentax.

Hi, thanks for reply. I already tried this, aclocexport generates a readable text file for me but if I use it on aclocimport even without editing anuthing, it would generate file of different size (611 kb versus 481 kb originally), and then Ubisoft_DATA_Tool.exe would not accept it. It says "Uncompressed: ..\(filename)... Report this file!"
My theory is that if i am doing everything correctly, aclocimport should be updated for valhalla.

I'll def try replacing the files from _patch.forge laters!

And what are the _MTM files that exist for all languages ex. english?
Lazy_Cat_2k3
Posts: 31
Joined: Sat Aug 22, 2020 12:43 am

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Lazy_Cat_2k3 »

fpc wrote:It says "Uncompressed: ..\(filename)... Report this file!"

Upload that file here.
fpc wrote:And what are the _MTM files that exist for all languages ex. english?

Maybe it's used to correct spelling mistakes.
MTM: Эйвор пытается понять, что означают его видения о богах и подобных им существах. Ему не обойтись без помощи.
Original: Эйвор пытается понять, что означают ее видения о богах и подобных им существах. Ей не обойтись без помощи.
fpc
Posts: 12
Joined: Tue Nov 10, 2020 1:59 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by fpc »

Lazy_Cat_2k3 wrote:Upload that file here.

Here you go. .Localization_Package.txt.out is the result of aclocimport

Lazy_Cat_2k3 wrote:MTM: Эйвор пытается понять, что означают его видения о богах и подобных им существах. Ему не обойтись без помощи.
Original: Эйвор пытается понять, что означают ее видения о богах и подобных им существах. Ей не обойтись без помощи.

Oh I get it. It is for gender specific text, MTM is male.
Lazy_Cat_2k3
Posts: 31
Joined: Sat Aug 22, 2020 12:43 am

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by Lazy_Cat_2k3 »

It worked for me without any problems. Make sure you used the specified tool for Valhalla that I posted before.
fpc
Posts: 12
Joined: Tue Nov 10, 2020 1:59 pm

Re: Ubisoft ANVIL Engine (*.forge) [ONLY FOR TESTS]

Post by fpc »

Lazy_Cat_2k3 wrote:It worked for me without any problems. Make sure you used the specified tool for Valhalla that I posted before.

Double checked and I am using it. Whats the cli arguments for import? I use this:

Code: Select all

Ubisoft_DATA_Tool.exe 12 -i 0-LocalizationPackage_English.Localization_Package.txt.out 0-LocalizationPackage_English.Localization_Package


and it tells me to report this file.