I'd like to decompress the language file and change it to my native language.
So I looked in DataPC\Language folder, I found these files.
AllTextEng.bin and AllTextEng64.bin file.
How do I decompress these files?
and How can I compress it?
Looking at the 32-bit one quickly the format is pretty simple. The layout is
Long (Value is always 1)
Long (File Length)
Long (Record Count)
Long (Size of Entry?)
-- Start Entry Blocks
-- String Data null terminated
For the Entry block
This is an example to do the extract with C#, there are around 3.2k entries however only 2.7k unique entries. You'll need to decide how you want to manage all of the text and work with it.
private void extractBtn_Click(object sender, EventArgs e)
OpenFileDialog OD = new OpenFileDialog();
if(OD.ShowDialog() == DialogResult.OK)
byte fileIn = File.ReadAllBytes(OD.FileName);
MemoryStream ms = new MemoryStream(fileIn);
BinaryReader br = new BinaryReader(ms);
List<Entry> entries = new List<Entry>();
List<string> output = new List<string>();
br.ReadInt32(); // Version 1?
br.ReadInt32(); //File length
int count = br.ReadInt32();
int blockSize = br.ReadInt32();
for (int i = 0; i < count; i++)
entries.Add(new Entry(br.ReadUInt32(), br.ReadInt32()));
foreach(Entry en in entries)
br.BaseStream.Position = en.offset + 8;
File.WriteAllLines(OD.FileName + ".txt", output);
private string getString(BinaryReader br)
MemoryStream ms = new MemoryStream();
byte b = 0xFF;
while (b != 0)
b = br.ReadByte();
if (b != 0)
public uint id;
public int offset;
public Entry(uint id, int offset)
this.id = id;
this.offset = offset;