Грамотная пересборка образов PS1 и PS2

Материал из ConsolWiki
Перейти к: навигация, поиск

В этой статье я напишу, как правильно пересобирать образы игр PSX/PS2 (статья применима к случаю, когда все LBA вычисляются относительно позиций файлов на диске, для игр типа Final Fantasy VII, Final Fantasy X эта статья не подойдёт).

Что же такое "грамотная" пересборка, чем отличается от обычной и зачем нужна?

"Грамотная" пересборка - пересборка образа с соблюдением исходного порядка файлов. Разработчики собирают образы с оптимальным расположением данных на диске (надеюсь, по крайней мере). Т.е. они делают всё, чтобы была максимальная скорость загрузки и был наименьший износ привода (но не всегда они так делают). Когда же мы пересобираем образ - мы не следим за порядком, в итоге самые частозапрашиваемые файлы могут оказаться в конце диска, что приведёт как минимум к снижению скорости загрузки. Для тех, кто в танке. Допустим, у нас есть три больших файла, расположенных поочерёдно. Читаются данные из них в таком же порядке. Головка считывает блок данных из первого файла, сразу же перескакивает на второй, потом на третий. А что, если в результате пересборки поменять местами все файлы? Т.е., например, вместо 1,2,3 сделать последовательность 2,1,3. Головка перейдёт на середину диска, и начнёт считывать данные из первого файла. Затем она перейдёт в самое начало диска до второго, считает, а потом уже перескочит в самый конец диска на третий файл.

Итог: Резкое снижение скорости загрузки, лишние движения головки и, как следствие, больший износ привода.

Итак, приступим. Нам понадобятся:

  1. IsoBuster или любой другой аналог (цель: извлечь файлы с диска/образа).
  2. CDVDGEN (цель: создать iml-карту образа).
  3. Apache 2 / Apache 3 / IML2ISO или любой другой аналог, способный создать образ по iml-карте (цель: генерация образа).
  4. Alcohol 120% / ImgBurn / Nero / ... - любой доступный имейдж-рекордер (цель: записать образ).


Для примера возьму образ Final Fantasy VII: Dirge of Cerberus. Перевод этой игры можете найти на сайте Эксклюзива.

Шаг 0. Узнать последовательность файлов.

Для этого нам понадобится оригинальный образ. Или человек, у которого он есть и который может дать вам список файлов и их LBA. Узнать последовательность файлов довольно просто - достаточно упорядочить их по значению LBA (это номер сектора, с которого начинается файл). В IsoBuster'е можно, например, получить список файлов на диске/образе в формате 'LBA , File', но упорядочивать по LBA придётся вручную. Если файлов мало - то можно кликнуть по полю LBA в списке файлов - они автоматически упорядочатся по значению этого параметра. В общем, импровизируйте ;) В нашем случае последовательность такова:

  • 0000277 , >:\SYSTEM.CNF
  • 0000278 , >:\SLUS_214.19
  • 0002590 , >:\E419C51B\IOPRP.IMG
  • 0002713 , >:\E419C51B\HASH.INF
  • 0002714 , >:\FILELIST.BIN
  • 0002854 , >:\E419C51B\KEL.DAT
  • 0732815 , >:\E419C51B\23CFDD41.F7
  • 1327522 , >:\E419C51B\B08ED50C.AA

Далее значения LBA можно опустить, они были нам нужны только лишь для определения порядка файлов.

Шаг 1. Извлечение файлов.

Сперва надо извлечь файлы на жёсткий диск и проделать с ними необходимые вам операции (например, применить к ним патч). Для этого желательно не пользоваться стандартным проводником, а прибегнуть к помощи какого-либо менеджера образов, например, IsoBuster. Можно извлечь файлы прямо с диска, или же из заранее имеющегося/созданного образа.

Вообще, этот шаг интуитивно прост, поэтому ограничусь скриншотом.

Per extract.png


Шаг 2. Составление iml-карты образа.

Что такое iml-карта? Это своеобразный конфиг, который говорит программе-сборщику, что и куда писать. Но сейчас не об этом. Вам понадобится CDVDGEN. Открываем программу, выбираем Create new project, затем выбираем тип необходимого вам образа:

  • CD-ROM Master Disc - для создания CD-образа PSX/PS2.
  • DVD-ROM Master Disc - для создания DVD-образа PS2.
  • DVD-ROM Master Disc (Dual) - для создания двуслойного DVD-9 образа PS2.

После этого перетягиваем извлечённые [и пропатченные] нами файлы в правую часть окна программы.

Per iml.png


После этого жмём кнопку Layout и упорядочиваем файлы в соответствии с составленным нами заранее списком (чтобы выделить файл, нужно нажать правую кнопку мыши и выбрать пункт "Move (select)", а чтобы вставить - нужно выбрать "Move (insert)"):

Per iml2.png


После этого клацаем на Volume и редактируем данные об образе. Лучше всего взять те же данные, что были в исходном образе, но это уже как душе угодно, не должно на что-то сильно повлиять.

Per iml3.png


Можем сохранить проект. Далее жмём File->Export iml file и сохраняем под любым именем. В итоге получатся два файла: *.iml и *.ims (бинарная информация о образе и папках).

Шаг 3. Сборка образа.

Запускаем Apache 2 и сразу жмём File->Import IML File. И перед вашим взором предстаёт готовый макет образа. Всё, что вам осталось для его создания - нажать File->Build ISO. В случае чего не пугайтесь заоблачного значения прогресс-бара - у автора что-то не так с алгоритмом высчитывания процента готовности.

Per build.png


Шаг 4. Запись.

Конечный этап - берём любую прогу для записи дисков и пишем образ на диск. Всё.

Всё вышенаписанное является лишь моим способом и мнением, и не обязательно должно полностью соответствовать действительности и быть самым оптимальным решением. Также я не несу ответственности за какой-либо ущерб, повлечённый использованием этой статьи - вы делаете всё на свой страх и риск!