aboutsummaryrefslogtreecommitdiff
path: root/unpacker/README.md
blob: 2c6be02af0bf1f407bb1fff08b02fce415a6119d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# NRes Game Resource Unpacker

At the moment, this is a demonstration of the NRes game resource unpacking algorithm in action.
It unpacks 100% of the NRes game resources for the game "Parkan: Iron Strategy".
The unpacked resources can be packed again using the [packer](../packer) utility and replace the original game files.

__Attention!__
This is a test version of the utility.
It overwrites existing files without asking.

## Building

To build the tools, you need to run the following command in the root directory:

```bash
cargo build --release
```

## Running

You can run the utility with the following command:

```bash
./target/release/unpacker /path/to/file.ex /path/to/output
```

- `/path/to/file.ex`: This is the file containing the game resources that will be unpacked.
- `/path/to/output`: This is the directory where the unpacked files will be placed.

## How it Works

The structure describing the packed game resources is not fully understood yet.
Therefore, the utility saves unpacked files in the format `file_name.file_index` because some files have the same name.

Additionally, an `index.json` file is created, which is important for re-packing the files.
This file lists all the fields that game resources have in their packed form.
It is essential to preserve the file index for the game to function correctly, as the game engine looks for the necessary files by index.

Files can be replaced and packed back using the [packer](../packer).
The newly obtained game resource files are correctly processed by the game engine.
For example, sounds and 3D models of warbots' weapons were successfully replaced.