mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-05-18 19:31:17 +03:00
add NRes readme
This commit is contained in:
parent
1091605e2d
commit
3c26addcee
45
NResLib/README.md
Normal file
45
NResLib/README.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Библиотека для работы с NRes архивом
|
||||||
|
|
||||||
|
## Реализация на C# под .NET 8
|
||||||
|
|
||||||
|
кросс-платформенная, можно запустить на любой ОС
|
||||||
|
|
||||||
|
### Что такое NRes
|
||||||
|
|
||||||
|
Это внутренний формат данных игры, по сути представляющий из себя архив с кучей файлов.
|
||||||
|
|
||||||
|
### Примерами NRes файлов являются:
|
||||||
|
|
||||||
|
- lightmap.lib
|
||||||
|
- voices.lib
|
||||||
|
- Textures.lib
|
||||||
|
- Material.lib
|
||||||
|
- Data/Maps/*/Land.map
|
||||||
|
- Data/Maps/*/Land.msh
|
||||||
|
|
||||||
|
### Структура NRes файла
|
||||||
|
|
||||||
|
Внимание, все числа кодируются как Little-Endian, то есть `0x00_01` - это на самом деле `0x01_00`
|
||||||
|
|
||||||
|
1. Первые 16 байт это заголовок архива.
|
||||||
|
|
||||||
|
+ [0..4] ASCII NRes
|
||||||
|
+ [4..8] Версия кодировщика (должно быть всегда 0x100)
|
||||||
|
+ [8..12] Количество файлов
|
||||||
|
+ [12..16] Общая длина всего файла в байтах
|
||||||
|
|
||||||
|
2. Далее идут сами файлы в архиве.
|
||||||
|
3. В конце файла есть метаданные.
|
||||||
|
Поскольку NRes это по сути архив, длина метаданных у каждого файла разная и считается как `Количество файлов * 64`, каждый элемент метаданных - 64 байта.
|
||||||
|
[0..8] ASCII описание типа файла, например TEXM или MAT0
|
||||||
|
[8..12] Неизвестное число
|
||||||
|
[12..16] Длина файла в байтах
|
||||||
|
[16..20] Неизвестное число
|
||||||
|
[20..40] ASCII имя файла
|
||||||
|
[40..44] Неизвестное число
|
||||||
|
[44..48] Неизвестное число
|
||||||
|
[48..52] Неизвестное число
|
||||||
|
[52..56] Неизвестное число
|
||||||
|
[56..60] Смещение подфайла от начала NRes (именно самого NRes) в байтах
|
||||||
|
[60..64] Индекс в файле (от 0, не больше чем кол-во файлов)
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user