[FAQ] Распаковка и упаковка контейнеров BIN 
 
 
Шаг 1 - Распаковка - Запускаем PersianRugRusExtra и переходим на вкладку "Bin распаковщик".
 
- Жмём кнопку "Открыть" и выбираем, например, файл MenuInGame_wow_ff0e01f5.bin
 
- Тут же открывается следующее окно, где предлагается сохранить файл с расширением binexpanded
 
- Всё! Файл разархивирован!
 
 - Переходим во вкладку "Bin анализатор", нажимаем кнопку "Анализировать бинарник" и выбираем, либо уже распакованный binexpanded, либо запакованный бинарник
 
- Потрошим оттуда необходимые ресурсы. Например, картинка шрифта всегда имеет название 2F008574.
 
- Всё! Имеем сырьё нижнего уровня для работы!
 
 
 
Шаг 2 - Упаковка 
На примере  MenuInGame_wow_ff0e01f5.bin. - Складываем всё сырьё на свои места в распакованный файл binexpanded через хекс-редактор.
 
- Как правило, все бинарники складываются блоками по 0x20000 (131072 байта), поэтому режем наш файл такими кусками. То есть, открываем в хекс-редакторе файл MenuInGame_wow_ff0e01f5.binexpanded, выделяем первые 0x20000 байт и вырезаем выделенный код (CTRL+X). Открываем новое окно и вставляем туда вырезанный код (CTRL+V). Сохраняем под названием, например MenuInGame_wow_ff0e01f5.part1. Оставшийся код не превышает 0x20000, поэтому просто сохраняем его под названием MenuInGame_wow_ff0e01f5.part2
 
- Берём из вложения в шапке "Prince of Persia Tools.zip" папку с программой "JADE Pack Tool".
 
- Закидываем туда подготовленные part1 и part2, и архивируем оба файла:
- Можно через командную строку следующей командой: 
	jadepack -c infile outfile 
 
 
- Либо, для нашего примера, запускаем батник с расширением *.bat следующего содержания: 
	@echo off
jadepack -c MenuInGame_wow_ff0e01f5.part1 MenuInGame_wow_ff0e01f5.part1.compressed
jadepack -c MenuInGame_wow_ff0e01f5.part2 MenuInGame_wow_ff0e01f5.part2.compressed
pause 
 
 
  
- Открываем оба файла в хекс-редакторе. Первые 4 байта нам приклеил архиватор JADE движка. Они указывают на размер всего остального файла, но нам эта информация не нужна, поэтому удаляем эти данные у обоих файлов сразу.
 
- У первого файла part1 теперь в начале должен быть код 00 00 02 00, что означает размер распакованного файла (байты читаются задом наперёд). Следующие 4 байта указывают на размер оставшейся части файла, заканчивающимся кодом 11 00 00. Поэтому спускаемся в конец файла, находим этот код и удаляем все нули после него. Для подстраховки можем проверить размер тела файла, для этого, выделяем с конца до метки размера весь код и сравниваем показания. Хекс-редактор внизу отображает размер выделенной области.
 
- Переходим ко второму файлу part2. Не забываем, что первые 4 байта мы уже удалили ранее у этого файла. Теперь просто выделяем весь файл (CTRL+A) и копируем выделенное содержимое (CTRL+C).
 
- Переключаемся на первый файл part1, ставим курсор в конец файла и вставляем ранее скопированное содержимое второго файла (CTRL+V). Нули в конце не трогаем.
 
- Сохраняем склеенный файл, как MenuInGame_wow_ff0e01f5.bin.
 
- На этом всё! Можно переходить к пункту: "Шаг 1 - Распаковка", чтобы проверить его на распаковываемость и схожесть с исходным binexpanded.
 
 
Выражаю ОГРОМНЕЙШУЮ благодарность  riku.kh3 за помощь в методе упаковки!  
	 
		
		
		
		
		
			
		
		
		
	 
		
		
						 
  
				
				Последний раз редактировалось ErikPshat; 02.08.2015 в 22:37.
				
				
			
		
		 
	 |