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.
Zero Tolerance for Disrespect

.pak avatar legends the fighting game

Featured Replies

  • 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 things
samples are here from air_temple_island.pak
image.png
https://drive.google.com/drive/folders/1b6K8-WDNQJ0soAJu4PGSlH7SXuo78FPo?usp=sharing

Edited by Sirduckdude
fixed the misclick

  • Sirduckdude changed the title to .pak avatar legends the fighting game
  • 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.

image.png

Abare_Engine_PAK.py AvatarLegendsPak.bt

Edited by Falkrian

  • 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.

image.png

Abare_Engine_PAK.py AvatarLegendsPak.bt

thanks ! any idea on the fighters though when extracted it gives a munged fileimage.png

  • 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.

image.png

image.png

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 by Falkrian

  • 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 #1

levels~ba_sing_se~preview~frames~stageframe_bg.png

Image #2

sprites~cabbageguy~idle~stand~frames~cabbagemerchant_idle.png

Edited by Falkrian

  • 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 #1

levels~ba_sing_se~preview~frames~stageframe_bg.png

Image #2

sprites~cabbageguy~idle~stand~frames~cabbagemerchant_idle.png

yea! how are you extracting these images?

  • 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.

  • 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!

  • 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?

  • 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.

image.png

First I would like to deliver before possibly moving on to other things like localization.

  • 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 --mask

Explanation 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 palette

Here are some screenshots of the extracted PNG images after running Combination 5 (Excluding --canvas switch) for some time:

image.png

image.png

Please let me know if there are any issues.

pak_extract.py munged_extract.py

Edited by Falkrian

Create an account or sign in to comment

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.