Yesterday at 08:28 PM1 day Localization Avatar Legends the fighting game uses Paks from what seems like a custom engine I believe since they they contains other files inside them I believe DDS and some other thingssamples are here from air_temple_island.pak https://drive.google.com/drive/folders/1b6K8-WDNQJ0soAJu4PGSlH7SXuo78FPo?usp=sharing Edited 16 hours ago16 hr by Sirduckdude fixed the misclick
15 hours ago15 hr Localization Game was created on the ABARE Engine and uses 256-byte directory records. Kind of similar to Quake's PAK structure that uses 64-byte directory records iirc.I have attached a python script that will extract the content from the archives for you. Please use it as follows:python .\Abare_Engine_PAK.py "path\to\pak\file" -o "path\to\extraction\folder"I have also attached a 010 Editor binary template for those interested.Abare_Engine_PAK.py AvatarLegendsPak.bt Edited 15 hours ago15 hr by Falkrian
14 hours ago14 hr Author Localization 18 minutes ago, Falkrian said:Game was created on the ABARE Engine and uses 256-byte directory records. Kind of similar to Quake's PAK structure that uses 64-byte directory records iirc.I have attached a python script that will extract the content from the archives for you. Please use it as follows:python .\Abare_Engine_PAK.py "path\to\pak\file" -o "path\to\extraction\folder"I have also attached a 010 Editor binary template for those interested.Abare_Engine_PAK.py AvatarLegendsPak.btthanks ! any idea on the fighters though when extracted it gives a munged file
14 hours ago14 hr Localization Munged files are a separate issue to look into. There are clear references of PNG images in them. Just a matter of figuring out how to extract them.I have to leave for work now unfortunately, but I will occasionally remote home and try to figure this out. I encourage everyone to have a go at this! Edited 14 hours ago14 hr by Falkrian
6 hours ago6 hr Localization OK. I am getting places. There is some palettized compression (proprietary) going on and some other stuff. I am still figuring things out as I go...Image #1Image #2 Edited 6 hours ago6 hr by Falkrian
6 hours ago6 hr Author Localization 46 minutes ago, Falkrian said:OK. I am getting places. There is some palettized compression (proprietary) going on and some other stuff. I am still figuring things out as I go...Image #1Image #2yea! how are you extracting these images?
5 hours ago5 hr Localization I am working on a python script that can fully extract all the images from these files. It is not ready yet, but as soon as it is, it will be released here.
4 hours ago4 hr Author Localization 19 minutes ago, Falkrian said:I am working on a python script that can fully extract all the images from these files. It is not ready yet, but as soon as it is, it will be released here.alrighty thank you!
4 hours ago4 hr Localization 44 minutes ago, Falkrian said:I am working on a python script that can fully extract all the images from these files. It is not ready yet, but as soon as it is, it will be released here.does the tool support localize as well?
3 hours ago3 hr Localization 47 minutes ago, petermike867 said:does the tool support localize as well?There is a pretty big CSV file in there that contains the translation of game text in various languages. It looks like that English, French, Italian, German, Spanish and Brazilian Portuguese are filled in. There are empty rows for Korean, Japanese, Chinese, Simplified Chinese (?), and Russian.First I would like to deliver before possibly moving on to other things like localization.
1 hour ago1 hr Localization @Sirduckdude I think I am ready to share the scripts that will get you the data you're after and then some. Please know that the scripts might take a while to complete depending on what switches you're using and the amount of munged files in the initial extraction folder.First it would be good to perform a clean extract of all PAK archive data through pak_extract.py as follows:python .\pak_extract.py "path\to\data_packages" "path\to\extraction\folder"Once everything has been extracted then the actual extracting of the images can begin:# Combination 1: Unpalettized Material Images python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --source-paths --atlas --mask # -- OR -- python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --source-paths --atlas --canvas --mask # Combination 2: Automatic Default Palette python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --auto-palette --source-paths --atlas --mask # -- OR -- python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --auto-palette --source-paths --atlas --canvas --mask # Combination 3: Default Palette With Alternative Alpha Curve python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --auto-palette --alpha-curve --source-paths --atlas --mask # -- OR -- python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --auto-palette --alpha-curve --source-paths --atlas --canvas --mask # Combination 4: Every Available Palette python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --all-palettes --source-paths --atlas --mask # -- OR -- python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --all-palettes --source-paths --atlas --canvas --mask # Combination 5: Every Available Palette With Alternative Alpha Curve python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --all-palettes --alpha-curve --source-paths --atlas --mask # -- OR -- python .\munged_extract.py "path\to\step_one\extraction\folder" "path\to\destination\folder" --all-palettes --alpha-curve --source-paths --atlas --canvas --maskExplanation of what the switches mean:--auto-palette | Automatically finds the relevant SPRBIN palette --all-palettes | Exports every available colour variant for each type-3 image. Type-6 images are exported once because they already contain final RGBA colours --source-paths | Organizes output using the original source paths embedded in the MUNGED files. --atlas | Adds the reconstructed packed atlas as an .atlas.png. For type 3, this is the unpalettized material data --mask | Extracts companion _mask.munged images separately as .mask.png variants. It does not merge them into the main image --canvas | Places the sprite on its original full-size canvas instead of exporting only the cropped area --alpha-curve | Applies the game shader’s alternative alpha curve to type-3 images, improving some soft edges. It does not affect type-6 images --raw | Exports the original compressed pixel data and related technical files for debugging. This is not needed for extraction Type-3 images are images that use palette and shader data to create the final colours Type-6 images are images that already store RGBA pixels and do not need a paletteHere are some screenshots of the extracted PNG images after running Combination 5 (Excluding --canvas switch) for some time:Please let me know if there are any issues.pak_extract.py munged_extract.py Edited 10 minutes ago10 min by Falkrian
Create an account or sign in to comment