Модель консоли: PS3 SS
Прошивка: HFW 4.91.2
Регистрация: 10.04.2016
Возраст: 49
Сообщений: 27,502
Вы сказали Спасибо: 10,195
Поблагодарили 14,667 раз(а) в 6,600 сообщениях
Сила репутации: 10Репутация: 14542 
(репутация неоспорима)
|
Внимание! Основная инструкция содержится в шапке. Это бэкап старой инструкции, найденной в интернете.
Интересно для чтения и понимания основных принципов конвертирования.
Источник: Первая инструкция на русском (by MeatWad).
Инструкция по конвертации дисковых PS1 игр в PSOne Classic 
С помощью данного способа можно переделать почти любую* PS1 игру в PSOne Classic, т.е. полученная в конце игра будет распознаваться системой PS3 как PSOne Classic.
Данный способ прежде всего актуален для русских версий многодисковых игр, таких как Metal Gear Solid, Final Fantasy и т.д.
Преимущества данного способа по сравнению с запуском через Мультимен/Ирисмен и т.п.: - +Полноценная поддержка смены дисков внутри игры: в игре нужно нажать кнопку PS, и в открывшемся меню будет пункт смены диска (обычно он затемнен, и становится доступным тогда, когда игра просит сменить диск).
- +Работает на любой кастомной прошивке, не слетает и не ломается при смене прошивки.
- +Игра не зависает, если попытаться вынуть/вставить карту памяти во время игры.
Недостатки данного способа: - -Невозможность использовать сжатие
Все необходимые файлы и программы содержатся в этом архиве, так же там присутствует offline-инструкция.
*Замечание по поводу совместимости:
Данный метод поддерживает только игры с оригинальным загрузчиком. Проверить какой загрузчик используется в желаемой игре очень просто - достаточно смонтировать образ игры в виртуальный дисковод, после чего открыть блокнотом файл SYSTEM.CNF и посмотреть значение в строке BOOT =, если там написано значение вида "BOOT = cdrom:\SCUS_944.54;1" то это оригинальный загрузчик, если же там указано значение вида "BOOT = cdrom:\PSX.EXE;1" или что-то аналогичное - то это измененный загрузчик, и такая игра однозначно работать не будет. Эмулятор пс1 запускающий пс1классик игру настроен так, что он может работать только с оригинальными загрузчиками (выделено жирным), всякие "что-то_там.EXE" и прочее - 100% не работают. Во вторых, даже если используется загрузчик оригинального вида, но он был изменен, то он так же может не заработать. Проще всего сконвертировать только первый диск от игры и посмотреть что будет. (УСТАРЕЛО! Сейчас это можно исправить по инструкциям ниже)
Размер, после которого начинает ломаться позиция стартдат - 2 147 483 648
Итак, приступаем!
Распакуйте содержимое архива PSX2PSOne Classic.zip в любое удобное место
Этап 1: Создание EBOOT.PBP
1) Идём в папку PSX2PSP_v.1.4.2, запускаем PSX2PSP.exe
2) Нажимаем «Options» в нижнем левом углу, проверяем, чтобы настройки были такие: «Compression level: none» и чтобы были проставлены галки на всех трех пунктах. Нажать кнопку Save.
3) В выпадающем списке “ISO/PBP File” выбрать желаемые диск(и) PS1; в поле “Output PBP folder” выбрать директорию, куда будет сохранён конечный файл, затем нажать кнопку “Convert” внизу.
4) Полученный файл EBOOT.PBP кладём в папку PSX2PSOne Classic, рядом с make_psone_classic_metadata.exe Если суммарный размер дисков превышает 2Gb Внимание! Данный этап обязателен к выполнению если суммарный размер дисков PS1 игры которую вы хотите сделать превышает 2Gb, если же суммарный размер дисков не превышает 2Gb – то делать данный этап не нужно!
Программа PSX2PSP_v.1.4.2 имеет досадный баг: если файл EBOOT.PBP превышает 2Gb, то она создаёт его с ошибками. Данные ошибки были исправлены товарищем ZecoXao в PSX2PSP_v.1.3, но в последствии в ней выявился другой баг, исправить который не представляется возможным, из-за которого игры так же не работают. Ниже будут рассмотрены два способа ручного исправления ошибок в файле EBOOT.PBP.
Для начала определим, какой из двух возможных способов будем использовать, т.к. у каждого есть свои достоинства и недостатки по отношению к другому: - Вариант 1, PSX2PSP_v.1.4.2: Рекомендуется, если вы делаете игру, которая выходила на трёх дисках, а также, для четырех дисковых игр, в которых размер первых трёх дисков меньше 1.9Gb.
- Вариант 2, PSX2PSP_v.1.3: Рекомендуется только для четырех дисковых игр, в которых размер первых трёх дисков превышает 2Gb.
Действия по исправлению файла EBOOT.PBP в обоих вариантах производятся в HEX-редакторе. Если у вас уже установлен какой-нибудь HEX-редактор, можете использовать его, если нет – то из папки «PSX2PSOne Classic\Старый способ\Этап 2» нужно установить HxD (в инструкции все действия будут проделываться в HxD со следующими настройками: Кодировка = ANSI; Байт в строке = 16; Группировать байты = По одному; Базис смещения = Шестнадцатеричный). Вариант 1, PSX2PSP_v.1.4.2 1) Идём в папку PSX2PSP_v.1.4.2, запускаем PSX2PSP.exe
2) Нажимаем «Options» в нижнем левом углу, проверяем, чтобы настройки были такие: «Compression level: none» и чтобы были проставлены галки на всех трех пунктах. Нажать кнопку Save.
3) В выпадающем списке “ISO/PBP File” выбрать желаемые диски PS1; в поле “Output PBP folder” выбрать директорию, куда будет сохранён конечный файл, затем нажать кнопку “Convert” внизу.
4) Полученный файл EBOOT.PBP кладём в корень папки PSX2PSOne Classic, рядом с make_psone_classic_metadata.exe
Теперь, когда мы получили EBOOT.PBP, приступаем к его исправлению:
5.1) Запускаем HxD, нажимаем «Файл» - «Открыть», находим наш файл EBOOT.PBP. В HEX редакторе проматываем в самый конец файла, затем мотаем снизу-вверх до записи «STARTDAT».
5.2) Выделяем нули (именно нули, не нуль-байты!) находящиеся перед STARTDAT, затем удаляем их.
5.3) Записываем адрес смещения (Offset) начала STARTDAT в блокнотик (в данном примере это AA0BB0C0). В HEX редакторе нажимаем «Поиск» - «Перейти», в открывшемся окошке в поле «Смещение» пишем 10000.
5.4) Открываем Калькулятор, переводим его в режим Программист, затем переключаем в под-режим HEX. Значение, полученное в предыдущем пункте (в данном примере AA0BB0C0) вставляем в калькулятор, затем вычитаем из него 10000 (в данном примере получаем AA0AB0C0), записываем это значение в блокнотик. Теперь переводим данное значение в little endian (читаем побайтово справа налево), в данном примере получается значение C0B00AAA (AA 0A B0 C0 -> C0 B0 0A AA), записываем значение в блокнотик.
5.5) Идём в позицию 0x10000. Видим в этой строке PSTITLEIMG000000
В следующей строке 0x10010 выделяем первые 4 байта, затем нажимаем «Правка» - «Заполнить выделенное». В поле «Hex-значения» вставляем значение, полученное в предыдущем пункте (в данном примере C0B00AAA), без пробелов.
EBOOT.PBP исправлен, в HEX редакторе нажимаем «Файл» - «Сохранить».
Исправлять созданные в PSX2PSP_v.1.4.2 файлы EBOOT.PBP возможно так же и те, в которых размер первых трёх дисков превышает 2Gb, однако для этого требуется значительно больше операций:
-0x10200 – там находятся оффсеты стартов для каждого диска, смещение старта PSISOIMG0000 для четвертого диска высчитывается неверно
-реальное расположение PSISOIMG0000 4го диска в eboot.pbp неправильное
-реальное расположение ISO данных 4го диска неверное, должно быть на 0x100000 после PSISOIMG0000
-ну и после всего этого пофиксить STARTDAT.
Более подробнее...
С позиции 0x10200 начинается область метаданных всего контейнера PBP.
Сразу уведомляю, что адрес первого диска нигде не указывается, т.к. он всегда начинается по спецификации с позиции 0x18000. - 1-ые 4 байта и есть адрес первого диска - 0x00800000 читается задом-наперёд как 0x8000
- 2-ые четыре байта - в позиции 0x10204, записано начало второго диска PSISOIMG0000 (не забываем, что позиции записаны с вычетом 0x10000 и задом-наперёд)
- 3-ьи четыре байта - в позиции 0x10208, записано начало третьего диска PSISOIMG0000. конечно же за вычетом 0x10000 и задом-наперёд.
- 4-ые четыре байта - в позиции 0x1020C, записано начало четвёртого диска PSISOIMG0000. где адрес записан неправильно!
- Далее, с позиции 0x10264 записано основное название Title_ID игры - например: _SLUS_01251
- Ну и в позиции 0x1030C записано текстовое название Title игры - например: Final Fantasy IX
В конце контейнера размещается секция STARTDAT, она всегда начинается с этой волшебной метки (8 байт).
Спецификация её простая, относительно её нуля: (задом-наперёд - Little Endian) - 0x00 - Magik header STARTDAT
- 0x08 - Версия 01
- 0x0С - Тип 01
- 0x10 - Позиция иконки PNG - "Warning" (0x50)
- 0x14 - Размер иконки PNG
- После икнки сразу идёт файл PGD до конца.
Вариант 2, PSX2PSP_v.1.3 1) Идём в папку PSX2PSP_v.1.3, запускаем PSX2PSP.exe
2) Нажимаем «Options» в нижнем левом углу, проверяем, чтобы настройки были такие: «Compression level: none» и чтобы были проставлены галки на всех четырёх пунктах.
3) Нажать “Convert Menu”, в поле «Output PBP folder» выбрать директорию, куда будет сохранён конечный файл, затем нажать кнопку “Convert” внизу. В открывшемся окошке выбрать все необходимые диски, после чего нажать Ok.
4) Полученный файл EBOOT.PBP переименовываем в “EBOOT_MULTI.PBP” кладём в корень папки PSX2PSOne Classic, рядом с make_psone_classic_metadata.exe
Теперь приступаем к исправлению файла “EBOOT_MULTI.PBP”:
5.1) Идём в папку PSX2PSP_v.1.4.2, запускаем PSX2PSP.exe
5.2) Нажимаем «Options» в нижнем левом углу, проверяем, чтобы настройки были такие: «Compression level: none» и чтобы были проставлены галки на всех трех пунктах. Нажать кнопку Save.
5.3) В выпадающем списке “ISO/PBP File” выбрать только первый диск PS1 игры, остальные диски не выбирать! В поле “Output PBP folder” выбрать директорию, куда будет сохранён конечный файл, затем нажать кнопку “Convert” внизу.
5.4) Полученный файл EBOOT.PBP переименовываем в “EBOOT_CD1.PBP”, и кладём его в корень папки PSX2PSOne Classic, рядом с make_psone_classic_metadata.exe
5.5) Запускаем HxD, нажимаем «Файл» - «Открыть», выбираем файл EBOOT_MULTI.PBP. Нажимаем «Поиск» - «Найти», в поле «Искать» вставляем (без кавычек) «PSISOIMG0000», в поле «Тип данных» выбираем «Текстовая строка». Будет найден первый диск, если искать дальше – будут находится последующие диски.
5.6) Записываем адрес смещения (Offset) начала PSISOIMG0000 в блокнотик (в данном примере это 18000). Открываем Калькулятор, переводим его в режим Программист, затем переключаем в под-режим HEX. К полученному ранее значению прибавляем 800, записываем полученное значение в блокнотик (в данном примере 18800), после чего переходим к данному смещению («Поиск» - «Перейти»).
5.7) В HxD, нажимаем «Файл» - «Открыть», выбираем файл EBOOT_CD1.PBP. Нажимаем «Поиск» - «Перейти», в поле «Смещение» пишем 10800.
5.8) Начиная со смещения 10800, в центральном столбце выделяем подряд все строки до тех пор, пока не пойдут строки, состоящие из одних нулей, после чего нажимаем «Правка» - «Копировать».
5.9) Возвращаемся к файлу EBOOT_MULTI.PBP, в нем выделяем точно такое же количество строк, как в файле EBOOT_CD1.PBP, после чего нажимаем «Правка» - «Вставить с заменой».

/
5.10) Повторяем шаги с 5.3 по 5.9 для всех последующих дисков.
EBOOT_MULTI.PBP исправлен, в HEX редакторе нажимаем «Файл» - «Сохранить», после чего переименовываем файл «EBOOT_MULTI.PBP» обратно в «EBOOT.PBP». Этап 2: Создание PKG файла 1) Запускаем «_Fix_EBOOT.PBP_.exe», ждём пока файл EBOOT.PBP не исчезнет из папки, это будет означать что программа завершила свою работу.
Если программа «_Fix_EBOOT.PBP_.exe» по каким-то причинам не работает 1.1) Нажимаем Shift+ПКМ по папке «PSX2PSOne Classic», и выбираем «Открыть окно команд», в командную строку вставляем (без кавычек) «make_psone_classic_metadata EBOOT.PBP», через некоторое время в папке появится файл «ISO.BIN.DAT»
1.2) Создаём ID как описано в Этапе 2 Пункте 4. В командную строку вставляем
make_npdata -e ISO.BIN.DAT ISO.BIN.EDAT 1 1 1 0 16 3 00 UP9000-SLUS00594_00-METALGEARSOLIDRU 5
где вместо «UP9000-SLUS00594_00-METALGEARSOLIDRU» нужно вписать созданный ID, не забываем цифру 5 в конце после ID. В папке появится файл «ISO.BIN.EDAT».
1.3) Перемещаем файлы «EBOOT.PBP» и «ISO.BIN.EDAT» по путям, описанным ниже в пункте 2. 2) Так как программа «_Fix_EBOOT.PBP_.exe» работает в фоне, то проверяем что она отработала правильно: наш файл «EBOOT.PBP» должен был переместиться в папку «PSX2PSOne Classic\PKG\USRDIR\CONTENT», так же в папке «PSX2PSOne Classic\PKG\USRDIR\» должен был появиться файл «ISO.BIN.EDAT».
3) Теперь займемся «внешним видом» нашей будущей игры, переходим в папку «PSX2PSOne Classic\PKG\USRDIR», в ней лежат несколько файлов.
3.1) Редактируем файл «PARAM.SFO». Если у вас на компьютере установлена программа «PS3 Tools» (так же известная как «Aldostools», то просто открываем файл двойным кликом; если нет – то идём в папку “PSX2PSOne Classic\PARAM SFO Editor” запускаем «PARAM_SFO_Editor.exe», и открываем в нем файл “PARAM.SFO”.
Проверяем правильность заполнения полей: в поле «Title ID» должен быть указан код (первого) диска вашей игры; в поле «TITLE» записывается название игры (это название будет отображаться в XMB); в столбце “Video Resolution” для игры PAL региона оставляем только 576, для игры NTSC региона оставляем только 480; дальнейшие поля оставляем как есть: “Category = (1P PS1 Game)”, “PS3 System = 3.41”, “Parental Lock Level = 0 – Unlocked”, “Version = 01.00”, “Audio Format = 2 LPCM”. Жмём кнопку Save.
3.2) ICON0.PNG – это иконка игры в XMB, её разрешение 320х176. При желании можно вставить свою обложку.
3.3) PIC0.PNG – информация об игре, разрешение 1000х560, отображается поверх фоновой картинки, не является обязательным файлом. При желании можно написать своё описание.
3.4) PIC1.PNG – фоновая картинка, разрешение 1920х1080.
4) Разобравшись с вышеуказанными файлами, возвращаемся в папку «PSX2PSOne Classic». Редактируем файл «package.conf»: открываем его блокнотом, видим строку «Content-ID = UP9000-SLUS00594_00-METALGEARSOLIDRU», это идентификатор игры, на основе него создаём ID для нашей игры: «UP9000» остается как есть, «SLUS00594» – это код (первого) диска вашей игры, последующие два нуля остаются как есть, затем идут «0000000000000001» – тут можно написать что угодно из английских букв и цифр (обязательно большими буквами и обязательно количество символов должно быть равно 16), на пример можно написать название игры – METALGEARSOLIDRU. Затем дублируем в строку «TitleID = SLUS00594» код (первого) диска вашей игры. Сохраняем изменения.
5) Переименовываем папку «PKG» в ID, придуманный в предыдущем пункте (на пример «UP9000-SLUS00594_00-METALGEARSOLIDRU»).
6) Нажимаем Shift+ПКМ по папке «PSX2PSOne Classic», выбираем «Открыть окно команд» в командную строку вставляем (без кавычек) «psn_package_npdrm.exe package.conf UP9000-SLUS00594_00-METALGEARSOLIDRU», где вместо UP9000-SLUS00594_00-METALGEARSOLIDRU вписываем свой ID, придуманный в Пункте 4, нажимаем клавишу Enter.
Если всё сделано правильно, через некоторое время появится готовый к установке PKG файл. AudioCD (CDDA) треки, и как сделать чтобы они работали - Берём .wav файлы ваших треков, конвертируем их в .aa3(ATRAC3) с помощью Sony Sound Forge со следующими настройками: 132 Kbps, 44 100 hz, Stereo (ATRAC3). именно ATRAC3 а не ATRAC3plus, ничего кроме обычного ATRAC3 работать не будет, максимальный битрейт у этого формата - 132к
- Открываем .aa3 трек в хекс редакторе, удаляем хедер файла. где заканчивается хедер и начинается поток определить не сложно, достаточно посмотреть на структуру файла - потом идёт блоками по 0хС0, каждый блок начинается с одинаковых(или похожих байт)
- С помощью cryptor.exe зашифровываем трек любым 4х байтовым ключом. использование: cryptor.exe <input_file> <output_file> <key> (пр. cryptor.exe 01-V8-Theme.aa3 enc_01-V8-Theme.bin 11223344)
Примечание: Со временем выяснилось, что криптор не обязателен - работать будет даже если не зашифровывать файлы. Соответственно при создании итоговой таблицы ключ указывать не нужно (просто нули).
- Открываем eboot.pbp в хекс редакторе, в любом месте после дата трека игры (в любом месте где идут аудио сд треки игры) выделяем точно такое же количество байт, сколько занимает зашифрованный трек, после чего копируем-вставляем трек в eboot с перезаписью.
- На 0х800 от хедера (0x10C00 от старта однодискового eboot.pbp) создаём таблицу со следующим содержанием (всё записывается в little endian):
- Первые 4 байта - оффсет начала трека (указывает от старта iso (iso в eboot.pbp начинается на 0х110000)
- Вторые 4 байта - hex длина трека
- Третьи 4 байта - пустота
- Четвертые 4 байта - ключ (cryptor.exe автоматически переворачивает указанный ключ, т.е. если был указан 11223344 то именно так его и пишем в таблицу)
Повторить всё это для каждого трека, после чего как обычно - make_psone_classic_metadata и т.д.
Дополнительно по теме: PSX Classics Tools Updated (w/ Tutorial) + CDDA & Multi-Disc Support by Most Hated и ещё.
Последний раз редактировалось ErikPshat; 14.12.2020 в 08:17.
|