Jump to content

Recommended Posts

  • Supporter
Posted
6 hours ago, CTHULHU said:

Hello everyone, I need help with unpacking localization files
BMS scripts do not help
The file format is unknown

translate_words_map_en.zip 15.18 MB · 3 downloads

I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization.

https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing

Posted
22 hours ago, wq223 said:

I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization.

https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing

hi sorry, new to these stuff, how do i use this? im trying to get a hold of the sound files of this game, its so epiccc like the sfx and music thanks for your help in advance!

Posted
On 11/18/2025 at 9:25 AM, wq223 said:

Tôi đã tải lên liên kết đến tệp này trong bất hòa, nhưng tôi đang xử lý phiên bản cn. Tôi đã tải xuống tệp của bạn và nó sẽ tương tự. Bạn có thể thử tập lệnh này. Tập lệnh của tôi chỉ có thể giải nén và hợp nhất lại. Tôi không biết nhiều về bản địa hóa.

https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing

did you find the game .ttf font in any mpk file?

  • Supporter
Posted
19 minutes ago, unokiller said:

did you find the game .ttf font in any mpk file?

ttf fonts I think they should be in the engine folder, maybe not packaged

 

Posted
5 minutes ago, wq223 said:

ttf fonts I think they should be in the engine folder, maybe not packaged

 

<Root>
<!-- Usage domestic oversea oversea_en oversea_kr oversea_ja oversea_zh_tw... -->
<Font>
<!-- normal text, in China mainland -->
<Name>FZSKBXKJW.TTF</Name>
<File>FZSKBXKJW.TTF</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- title text, in China mainland, plus HongKong/TaiWan -->
<Name>AaShiSongTi-2.ttf</Name>
<File>AaShiSongTi-2.ttf</File>
<Usage>domestic|oversea_zh_cn|oversea_zh_tw</Usage>
</Font>
<Font>
<!-- normal text (mobile), in China mainland -->
<Name>FZSKBXKJW_mobile.TTF</Name>
<File>FZSKBXKJW_mobile.TTF</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- art text, in China mainland -->
<Name>ZHJB-Xiangjiahong.TTF</Name>
<File>ZHJB-Xiangjiahong.TTF</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- ShouJinTi, another art text, in China mainland -->
<Name>ZH-cjxkt.ttf</Name>
<File>ZH-cjxkt.ttf</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- numbers, in all regions -->
<Name>yyslsnumeral.ttf</Name>
<File>yyslsnumeral.ttf</File>
<Usage>domestic|oversea</Usage>
</Font>
<Font>
<!-- normal text, in HongKong/TaiWan -->
<Name>HanYiQuanTangShiS.ttf</Name>
<File>HanYiQuanTangShiS.ttf</File>
<Usage>oversea_zh_tw</Usage>
</Font>
<Font>
<!-- art text, in HongKong/TaiWan -->
<Name>ZHJB-Xiangjiahong_fanti.TTF</Name>
<File>ZHJB-Xiangjiahong_fanti.TTF</File>
<Usage>oversea_zh_tw</Usage>
</Font>
<Font>
<!-- title text, in Janan -->
<Name>FOTTsukuMinPr6-D.ttf</Name>
<File>FOTTsukuMinPr6-D.ttf</File>
<Usage>oversea_ja</Usage>
</Font>
<Font>
<!-- normal text, in Janan -->
<Name>FOTTsukuMinPr6-RB.ttf</Name>
<File>FOTTsukuMinPr6-RB.ttf</File>
<Usage>oversea_ja</Usage>
</Font>
<Font>
<!-- art text, in Janan -->
<Name>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</Name>
<File>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</File>
<Usage>oversea_ja</Usage>
</Font>
<Font>
<!-- title text, in Korea -->
<Name>SunBatang-Medium.ttf</Name>
<File>SunBatang-Medium.ttf</File>
<Usage>oversea_ko</Usage>
</Font>
<Font>
<!-- normal text, in Korea -->
<Name>SunBatang-Light.ttf</Name>
<File>SunBatang-Light.ttf</File>
<Usage>oversea_ko</Usage>
</Font>
<Font>
<!-- art text, in Korea -->
<Name>GowunBatang-Bold.ttf</Name>
<File>GowunBatang-Bold.ttf</File>
<Usage>oversea_ko</Usage>
</Font>
<Font>
<!-- title text, in Europe -->
<Name>AlegreyaSans-Medium.ttf</Name>
<File>AlegreyaSans-Medium.ttf</File>
<Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage>
</Font>
<Font>
<!-- normal text, in Europe -->
<Name>AlegreyaSans-Regular.ttf</Name>
<File>AlegreyaSans-Regular.ttf</File>
<Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage>
</Font>
<Font>
<!-- art text, in Europe -->
<Name>MrsEavSmaCap.ttf</Name>
<File>MrsEavSmaCap.ttf</File>
<Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage>
</Font>
</Root>

I found the contents of a file like this when I extract resources.mpk

  • Supporter
Posted
6 minutes ago, unokiller said:
<Root>
<!-- Usage domestic oversea oversea_en oversea_kr oversea_ja oversea_zh_tw... -->
<Font>
<!-- normal text, in China mainland -->
<Name>FZSKBXKJW.TTF</Name>
<File>FZSKBXKJW.TTF</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- title text, in China mainland, plus HongKong/TaiWan -->
<Name>AaShiSongTi-2.ttf</Name>
<File>AaShiSongTi-2.ttf</File>
<Usage>domestic|oversea_zh_cn|oversea_zh_tw</Usage>
</Font>
<Font>
<!-- normal text (mobile), in China mainland -->
<Name>FZSKBXKJW_mobile.TTF</Name>
<File>FZSKBXKJW_mobile.TTF</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- art text, in China mainland -->
<Name>ZHJB-Xiangjiahong.TTF</Name>
<File>ZHJB-Xiangjiahong.TTF</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- ShouJinTi, another art text, in China mainland -->
<Name>ZH-cjxkt.ttf</Name>
<File>ZH-cjxkt.ttf</File>
<Usage>domestic|oversea_zh_cn</Usage>
</Font>
<Font>
<!-- numbers, in all regions -->
<Name>yyslsnumeral.ttf</Name>
<File>yyslsnumeral.ttf</File>
<Usage>domestic|oversea</Usage>
</Font>
<Font>
<!-- normal text, in HongKong/TaiWan -->
<Name>HanYiQuanTangShiS.ttf</Name>
<File>HanYiQuanTangShiS.ttf</File>
<Usage>oversea_zh_tw</Usage>
</Font>
<Font>
<!-- art text, in HongKong/TaiWan -->
<Name>ZHJB-Xiangjiahong_fanti.TTF</Name>
<File>ZHJB-Xiangjiahong_fanti.TTF</File>
<Usage>oversea_zh_tw</Usage>
</Font>
<Font>
<!-- title text, in Janan -->
<Name>FOTTsukuMinPr6-D.ttf</Name>
<File>FOTTsukuMinPr6-D.ttf</File>
<Usage>oversea_ja</Usage>
</Font>
<Font>
<!-- normal text, in Janan -->
<Name>FOTTsukuMinPr6-RB.ttf</Name>
<File>FOTTsukuMinPr6-RB.ttf</File>
<Usage>oversea_ja</Usage>
</Font>
<Font>
<!-- art text, in Janan -->
<Name>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</Name>
<File>NEWRPGGAMEH72_ManyoGyoshoN-E.ttf</File>
<Usage>oversea_ja</Usage>
</Font>
<Font>
<!-- title text, in Korea -->
<Name>SunBatang-Medium.ttf</Name>
<File>SunBatang-Medium.ttf</File>
<Usage>oversea_ko</Usage>
</Font>
<Font>
<!-- normal text, in Korea -->
<Name>SunBatang-Light.ttf</Name>
<File>SunBatang-Light.ttf</File>
<Usage>oversea_ko</Usage>
</Font>
<Font>
<!-- art text, in Korea -->
<Name>GowunBatang-Bold.ttf</Name>
<File>GowunBatang-Bold.ttf</File>
<Usage>oversea_ko</Usage>
</Font>
<Font>
<!-- title text, in Europe -->
<Name>AlegreyaSans-Medium.ttf</Name>
<File>AlegreyaSans-Medium.ttf</File>
<Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage>
</Font>
<Font>
<!-- normal text, in Europe -->
<Name>AlegreyaSans-Regular.ttf</Name>
<File>AlegreyaSans-Regular.ttf</File>
<Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage>
</Font>
<Font>
<!-- art text, in Europe -->
<Name>MrsEavSmaCap.ttf</Name>
<File>MrsEavSmaCap.ttf</File>
<Usage>oversea_en|oversea_es|oversea_de|oversea_fr</Usage>
</Font>
</Root>

I found the contents of a file like this when I extract resources.mpk

Font files should have specific file headers, maybe look for

Posted
On 11/18/2025 at 9:25 AM, wq223 said:

I have uploaded the link to this file in discord, but I am dealing with the cn version. I downloaded your file and it should be similar. You can try this script. My script can only decompress and re-merge. I don’t know much about localization.

https://drive.google.com/file/d/1SgG59QqW4qTxM1m5W7HoKo3VeZ6mbyQZ/view?usp=sharing

thanks for the script, but seems like the output is not really usable at this stage

the text is kinda mess up (string get connected to each other with no delimiter or new line), and each of the .dat file got some unknown binary text as well (prob some kind of padding or header)

guess we need to research more on how to decompress these translation file

  • Supporter
Posted
2 hours ago, KenUaena said:

thanks for the script, but seems like the output is not really usable at this stage

the text is kinda mess up (string get connected to each other with no delimiter or new line), and each of the .dat file got some unknown binary text as well (prob some kind of padding or header)

guess we need to research more on how to decompress these translation file

Maybe some kind of custom serialization structure, in other games most use bindict, but this one doesn't look like it

Posted

Here my analysis:

Header: 24 bytes: [
  Int64 EntryCount
  Int64 ValueCount
  Int32 Timestamp
  Int32 Padding
]
Buckets: [24-528] bytes, based on allocated bucket
TableEntries: EntryCount * [
  8 Bytes Hash(or id?),
  Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value)
  Int32 TextLength
]
Values: ValueCount * [
  Byte[ValueLength] Data
]

Null value have zero length and no hash. Successfully unpack and pack, the game load new text normally.

  • Like 1
  • Supporter
Posted
1 hour ago, user854221 said:

Here my analysis:

Header: 24 bytes: [
  Int64 EntryCount
  Int64 ValueCount
  Int32 Timestamp
  Int32 Padding
]
Buckets: [24-528] bytes, based on allocated bucket
TableEntries: EntryCount * [
  8 Bytes Hash(or id?),
  Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value)
  Int32 TextLength
]
Values: ValueCount * [
  Byte[ValueLength] Data
]

Null value have zero length and no hash. Successfully unpack and pack, the game load new text normally.

A bit similar to bindict

Bindict also has a bucket part, and it is also 8 bytes

but they are

int32 hash

int32 value index offset

Posted
3 hours ago, user854221 said:

Here my analysis:

Header: 24 bytes: [
  Int64 EntryCount
  Int64 ValueCount
  Int32 Timestamp
  Int32 Padding
]
Buckets: [24-528] bytes, based on allocated bucket
TableEntries: EntryCount * [
  8 Bytes Hash(or id?),
  Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value)
  Int32 TextLength
]
Values: ValueCount * [
  Byte[ValueLength] Data
]

Null value have zero length and no hash. Successfully unpack and pack, the game load new text normally.

Did you succeed? any method?

Posted
16 hours ago, user854221 said:

Ecco la mia analisi:

Intestazione: 24 byte: [
  Int64 EntryCount
  Int64 ValueCount
  Int32 Timestamp
  Int32 Padding
]
Bucket: [24-528] byte, in base al bucket allocato
TableEntries: EntryCount * [
  8 Byte Hash(o id?),
  Int32 RelativeOffset, (formula: text_start = current_entry_offset + 8 + value)
  Int32 TextLength
]
Valori: ValueCount * [
  Byte[ValueLength] Data
]

I valori nulli hanno lunghezza zero e nessun hash. Una volta decompressi e compressi correttamente, il gioco carica normalmente il nuovo testo.

Were you able to create a script to extract and replace the text files?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...