Описание: Освоив данный алгоритм, Вы сможете сконвертировать любой образ игры PS1 в вид принимаемый на PS3 эмулятором PSOne Classics. Эмулятор PS1 на PS3 встроен во все официальные и неофициальные прошивки и запускает официально скачанные с PSN игры с подназванием PSOne Classics. Теперь этот эмулятор будет запускать то, что Вы хотите. Поддерживается смена дисков внутри игры: в игре нужно нажать кнопку PS, и в открывшемся меню будет пункт смены диска (обычно он затемнен, и становится доступным тогда, когда игра просит сменить диск). Естесственно, такую многодисковую игру сначала надо собрать
Умение/Терпение работать в HEX-редакторе (в ходе процесса используется HxD из Aldo's ps3tools)
Ну и скачанный архив
Идём в папку PSX2PSP+PBP_Unpacker, запускаем PSX2PSP.exe
Нажимаем Options в нижнем левом углу, выставляем сжатие (Compression) на 0, поставить галки на первый и второй пункт, нажать Save.
Нажать Convert Menu, в первой строке выбрать исходный диск(и) игры, которую будем делать. (В выпадающем списке File 1=диск 1, File 2=диск2 и т.д.) . При этом немаловажно, что Вы оперируете полноценно сделанными образами. Как определить эту "полноценность" у скачанного образа я не подскажу, но как правильно сделать его со своего диска с PS1 игрой - вот.
Во второй строке выбрать место, куда будет сохранен полученный файл EBOOT.PBP. Остальные строки не трогать. Теперь, откройте в блокноте файл VALUES.txt и записывайте сюда все переменные, используемые во время прохождения инструкции. Из поля Game ID записать в блокнотик значение для первого диска. Нажать Convert, как сконвертируется, программку закрываем, для этой игры она больше не понадобится.
Запускаем PBP Unpacker - ReaperX.exe, выбираем первый пункт. После распаковки, удаляем все файлы, кроме EXE-шника анпакера, EBOOT.PBP и DATA.PSAR.
Запускаем HEX-редактор. Вы можете найти HxD в PS3Tools_Menu->Cheats & Saves .
Открываем файл DATA.PSAR . Затем жмём Search->Find (или просто Ctrl+F) - и ищем PSISOIMG0000
Затем мотаем вниз на 0х400 до Game ID диска (в примере _SLUS_00594), записываем в блокнотик начальный оффсет (в данном случае 0х8400) как header cd1 start offset
Далее жмём Edit->Select Block...(или просто Ctrl+E). Вписываем в поле Start-offset значение из header cd1 start offset (в данном случае 8400), и в поле Length значение FFC00 (это значение всегда одинаковое)
Далее жмём Edit->Copy , затем File->New . В открывшейся вкладке нового файла жмём Edit->Paste Insert , после чего File->Save as... - и сохраняем с именем header.dat в папку ps1classic_hasher
Продолжаем оперировать с файлом header.dat . Мотаем вниз, пока не начнутся однотипные символы как на картинке ниже. Это есть таблица секторов.
Примечание: блоки имеют размер(Length) 0х20, правильное выделение блока на картинке слева, неправильное – на картинке справа.
Записываем в блокнотик стартовый оффсет таблицы (в данном случае это 0х3C00) как header cd1 table start offset
Теперь мотаем вниз, до конца однотипных символов
Определяем конечный оффсет для последнего блока таблицы (см. примечание выше про правильное выделение), в данном случае конечное смещение получается 9C57F. Записываем его в блокнотик как header cd1 table end offset
Далее жмём Edit->Select Block... , вписываем в поля Start-offset и End-offset значения header cd1 table start offset и header cd1 table end offset соответственно (в данном случае 3C00 в Start-offset и 9C57F в End-offset)
Далее жмём Edit->Copy , затем File->New . В открывшейся вкладке нового файла жмём Edit->Paste Insert , после чего File->Save as... - и сохраняем с именем table.dat в папку ps1classic_hasher
Определяем размер ISO находящегося внутри файла DATA.PSAR. Продолжаем оперировать с файлом table.dat. Мотаем вниз к последнему блоку.
Первые 4 байта в этом блоке – оффсет последнего сектора iso в DATA.PSAR, следующие 2 байта – размер сектора.
Для получения размера iso нужно просуммировать оффсет последнего сектора с размером сектора. Особенность в том, что эти данные записаны в little endian, т.е. читать их нужно побайтово - т.е., по два символа справа налево. Итак, на картинке первые 4 байта это 0011CF2B, но это в little endian. Читая справа налево получаем смещение 2BCF1100, записываем это значение в блокнотик как iso cd1 last sector.
Аналогичным образом из последующих 2 байт получаем размер блока: на картинке это 0093, переводим из little endian, получаем 9300, записываем это значение в блокнотик как iso cd1 sector size.
Теперь нужно просуммировать iso cd1 last sector и iso cd1 sector size . Для этого запускаем обычный виндовый калькулятор, переводим его в режим программиста (Вид->Программист), выставляем Hex и 8 байт в переключателях слева. В данном случае суммируем значения 2BCF1100 и 9300, получаем 2BCFA400, это значение является размером ISO, записываем его в блокнотик как iso cd1 size.
В HEX-редакторе возвращаемся к файлу DATA.PSAR . Жмём Edit->Select Block... , в поле Start-offset вписываем значение 100000 для однодисковых, и 108000 для многодисковых игр (оно всегда одинаковое), в поле Lemgth вписываем значение iso cd1 size, в данном случае 2BCFA400, затем Edit->Copy . Далее жмём Edit->Copy , затем File->New . В открывшейся вкладке нового файла жмём Edit->Paste Insert , после чего File->Save as... - и сохраняем с именем iso.dat в папку ps1classic_hasher
Переходим в папку ps1classic_hasher , запускаем ps1iso.exe подождать. Немного погодя, появится final.dat .
В HEX-редакторе возвращаемся в файл header.dat, жмём Edit->Select Block... , в Start-offset вставляем значение header cd1 table start offset (в данном случае 3C00), в End-offset вставляем значение header cd1 table end offset (в данном случае 9C57F).
В HEX-редакторе открываем final.dat , жмём Edit->Select all (или просто Ctrl+A), затем Edit-Copy. Возвращаемся в файл header.dat, жмём Edit->Paste write .
Далее, всё, что будет написано фиолетовым - будет относится к многодисковым играм. Жмём Search->Goto... (или просто Ctrl+G), в Offset вписываем значение 7FC. В блок 7FC-7FF требуется сделать Paste write значение вписать оффсет старта iso, что принимается для многодисковых игр (см. Шаг2.3).
В данном случае оффсет для первого диска 108000, но особенность всё в том же - они должны быть записаны в формате little endian. Переводим значение 108000 в little endian (переписываем побайтово справа налево) и получаем 008010, но полученное значение является 3х байтовым, а нужно заполнить 4 байта – просто дописываем в конце два нуля, и получаем итоговое значение 00801000. Вставляем в блоки 7FC-7FF значение 00801000
На данный момент, мы всё это время оперировали в файле header.dat . Теперь жмём File->Save as... и сохраняем с именем header-final-cd1.dat в папку PSOneClassic Build
Если игра содержит два и более дисков, то нужно повторить шаги2.2-2.4 для каждого диска. Алгоритм действий тот же, разница только в других смещениях, ну и сохранять полученные файлы под другими именами и т.д. Для шага2.2 нужно точно так же сделать в DATA.PSAR . Поиск по PSISOIMG0000, но найти второй PSISOIMG0000 (и т.п. для каждого диска). Для шага2.3и2.4 для нахождения оффсетов стартовых позиций последующих iso добавить 0x100000 к оффсету второго и последующих PSISOIMG0000.
В HEX-редакторе жмём File->New. Можно сразу сохранить файл как ISO.BIN.DAT .
Далее, скопируйте и вставьте следующую строчку:
Код
50 53 49 53 4F 49 4D 47 30 30 30 30 00 00 00 00
- после этого выглядеть должно так:
Жмём Edit->Insert Bytes... , в Bytecount пишем 3F0 , в Hex-values пишем 00
В HEX-редакторе возвращаемся к файлу header-final-cd1.dat , жмём Edit->Select all , затем Edit->Copy . Возвращаемся в файл ISO.BIN.DAT , убеждаемся, что курсор находится в самом конце файла, жмём Edit->Paste Insert . После этого последней строкой должна быть строка с оффсетом 0х000FFFF0
Сохраняем изменения, если ещё не обозвали файл - сохраняем с именем ISO.BIN.DAT
В HEX-редакторе жмём File->New. Можно сразу сохранить файл как ISO.BIN.DAT .
В начало этого файла (в правое поле) вставляем PSTITLEIMG000000.
Далее, жмём Edit->Insert Bytes... , в Bytecount пишем 1F0, в Hex-values оставляем нули.
Далее копируем следующие значения (в левое поле, где нули):
для двухдисковой игры
Код
00040000000410000000000000000000
для трехдисковой игры
Код
00040000000410000004200000000000
для четырёхдисковой игры
Код
00040000000410000004200000043000
Место вставки вышеуказанного значения должно выглядеть вот так (вариант для двух дисков):
- т.е. оффсет 200
После вставки вышеуказанного значения делаем Edit->Insert Bytes... , в Bytecount пишем 60, в Hex-values оставляем нули.
Теперь, в HEX-редакторе возвращаемся к файлу DATA.PSAR , переходим к началу файла и мотаем вниз до оффсета 0х260 . В этой строке будет Game ID диска, полностью выделяем эту строчку (блок 260-26F), жмём File->Copy, затем идём в файл ISO.BIN.DAT , ставим курсор в начало оффсета 260 и жмём Edit->Paste write. После этого должно выглядеть вот так (Game ID соответственно от вашей игры):
В HEX-редакторе Edit->Insert Bytes... , в Bytecount пишем 190 , в Hex-values оставляем нули.
Далее жмём Edit->Insert Bytes... , в Bytecount пишем 10 , в Hex-value выделяем и вставляем:
Код
50 53 49 53 4F 49 4D 47 30 30 30 30 00 00 00 00
после этого выглядеть должно так:
Жмём Edit->Insert Bytes... , в Bytecount пишем 3F0 , в Hex-value пишем 00
В HEX-редакторе открываем файл header-final-cd1.dat , жмём Edit->Select all, затем Edit->Copy. Возвращаемся в файл ISO.BIN.DAT, жмём Edit->Paste insert. После этого последней строкой должна быть строка со смещением 0х001003F0
Жмём Edit->Select Block... . Вписываем в поле Start-offset значение 400, в поле End-offset значение 7FF. Edit->Copy . Ставим курсор в текущий конец файла и жмём Edit->Paste insert.
В HEX-редакторе открываем файл header-final-cd2.dat , жмём Edit->Select all, затем Edit->Copy. Возвращаемся в файл ISO.BIN.DAT , жмём Edit->Paste insert. После этого последней строкой должна быть строка со смещением 0х002003F0. Сохраняем изменения - File->Save.
Если есть последующие диски - повторить для них аналогичные процедуры, описанные в двух предпоследних абзацах (Жмём Edit->Select Block...)
python-2.7.9 установлен ли ? - тогда погнали дальше.
Файл ISO.BIN.DAT , полученный в той или иной предыдущей части скопировать в папку Encrypt_DAT и назвать его data (просто data, без расширения)
Далее, оперируем в командной строке (Пуск->Все программы->Стандартные->Командная строка). Командой cd нужно перейти в папку Encrypt_DAT. Пример команды:
Код
cd C:\Users\You\Desktop\PSOneClassic Build\Encrypt_DAT
. Запустить файл sign.py Если скрипт пишет ошибку "ImportError: No module named ecdsa" , то нужно сделать следующее: делаем в командной строке cd в папку, где установлен Питон (пример команды: cd C:\Program Files (x86)\Python27 ), затем пишем команду
Код
python -m pip install ecdsa
Если скрипт sign.py отработал успешно, в командной строке появится много строк с цифро-буквами. Нас интересуют строки R: и S:, содержимое этих строк скопировать в блокнотик - прям в окне командной строки пр.кн.мыши – Пометить, выделить нужные строки, ещё раз пр.кн.мыши (оп, скопировалось в буфер обмена) и вставить в блокнотик.
Если в начале в этих строках присутствуют нули (как на картинке), то нужно удалить первые два нуля в каждой строке. После чего обе суммы нужно объединить в одну строку. В данном случае получается 2AAFB28076B5ED64CEB7579EC2F1AB62662FC0D541A6F660DFB38519BD1B562BBDF7F261B0908F83 - тоже фиксируем в блокнот.
В HEX-редакторе открыть файл ISO.BIN.DAT, поставить курсор в самый конец файла и вставить полученную выше строку. В данном случае это выглядит так (скриншот в HEX-редакторе файла ISO.BIN.DAT создаваемого для двухдисковой игры. Для однодискового верхняя строчка на картинке была бы с оффсетом 000FFFF0):
- сохраняем. Полученный файл помещаем в папку DATtoEDAT .
Придумываем Package ID вашего будущего PKG файла, этот ID так же нужен для зашифровки, и должен быть таким же как при создании PKG, поэтому думаем сейчас же. Этот ID должен быть вида UP9000-NPUJ00594_00-0000000000000001, где UP9000 (обычно) не трогается, NPUJ00594 – это Game ID (первого) диска вашей игры, последующие два нуля не трогаются, затем идут 0000000000000001 – тут можно написать что угодно из микса английских букв и цифр (обязательно большими буквами и обязательно количество символов должно быть равно 16). Например, можно написать название игры – METALGEARSOLIDRU. Записываем итоговое название в блокнотик, как пример UP9000-SLUS00594_00-METALGEARSOLIDRU.
Когда название придумано, переходим к зашифровке: в командной строке делаем cd в папку DATtoEDAT . Выполняем команду:
- где вместо UP9000-SLUS00594_00-METALGEARSOLIDRU пишем название, придуманное вами. Остальные цифры не трогать! Цифра 5 после названия тоже нужна!
Если всё прошло успешно, получаем заветный файл ISO.BIN.EDAT .
Идём в папку pkg_creation, там лежит файл package.conf, открываем его блокнотом. В Content-ID = вписываем придуманный ID из Шага5, в TitleID = вписываем Game ID. Больше ничего не трогаем, сохраняем изменения, выходим.
Обязательно переименовываем папку-болванку в придуманный Content ID.
В корне этой папки лежат следующие файлы:
ICON0.PNG – это иконка игры в XMB, её разрешение 320х176. При желании можно вставить свою обложку.
PARAM.SFO – его обязательно нужно отредактировать. Запускаем PS3Tools, в открывшемся окне находим PARAM SFO Editor, запускаем. Жмём значок с папкой, находим наш PARAM.SFO. В поле Title ID вписываем Game ID, в поле TITLE пишем название игры (так оно будет отображаться в XMB). Дальнейшие поля оставляем как есть: Category = (1P PS1 Game), PS3 System = 3.41, Parental Lock Level = 0 – Unlocked, Version = 01.00. Жмём кнопку "Save" и закрываем.
PIC0.PNG – информация об игре, разрешение 1000х560, отображается поверх фоновой картинки, не является обязательным файлом. При желании можно написать своё описание или установить свою картинку.
PIC1.PNG – фоновая картинка, разрешение 1280х720 или 1920х1080. Тоже можно поставить свою.
PS3LOGO.DAT – нас не интересует.
Разобравшись с вышеуказанными файлами, открываем папку USRDIR . Заменяем находящийся там файл-пустышку ISO.BIN.EDAT на созданный Вами. Далее идём в подпапку CONTENT. Заменяем находящийся там файл-пустышку EBOOT.PBP на созданный Вами.
После того, как все файлы находятся на своих местах, приступаем к созданию pkg непосредственно. В командной строке делаем cd и переходим в папку pkg_creation. Вводим команду:
где вместо UP9000-SLUS00594_00-METALGEARSOLIDRU вписываем свой Package ID .
Если всё сделано правильно, через некоторое время появится готовый к установке PKG файл.
Владельцам приставок с припаянными эмуляторами привода. Вместо создания целого PKG можно создать mini-pkg . Да, mini-pkg тоже можно создать и для эмулятора PSOne Classics. Для этого, если ещё не видали, ознакомьтесь с этим. bat.txt должен будет выглядить как-то так:
Устанавливаем mini-UP9000-SLUS00594_00-METALGEARSOLIDRU.pkg и заливаем файл ISO.BIN.EDAT и папку CONTENT (с файлом EBOOT.PBP) в /dev_hdd0/game/SLUS00594/USRDIR .
Бедолажные владельцы обыкновенных приставок с OFW для "установки pkg" используют проги, базированные на ps3xport, а стильные владельцы продуктов ODE или CFW (?!) легко ставят этот pkg . Если при запуске экран темнеет и вылетает с ошибкой 80028F17 - Вы где-то напутали с оффсетами. Вам необходимо пройтись заново в поисках ошибки или неторопливо начать с нуля. А так - должён работать! :)
Описание: На сколько возможно упрощенный алгоритм по конвертации образов игр PS1 в вид принимаемый на PS3 эмулятором PSOne Classics. Если сравнивать со старой инструкцией - автоматизированы программами некоторые шаги. Всё же, полностью правку в HEX-редакторе автоматизировать в единый программный алгоритм не удаётся.
Умение/Терпение работать в HEX-редакторе (в ходе процесса используется HxD из Aldo's ps3tools)
* Sony Sound Forge если наберётесь терпения собрать игру с AudioCD
Ну и скачанные файлы
Внимание! Если суммарный размер дисков PS1 игры которую вы хотите сделать превышает 2Gb – то начинать нужно с «Этап 1.3: размер EBOOT.PBP превышает 2Gb»
1) Распаковываем все части скачанного архива PSX2PSOne.zip, распаковываем PSX2PSOne Classic.7z. Идём в папку 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
Внимание! Данный этап обязателен к выполнению если суммарный размер дисков 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-редакторе (в инструкции все действия будут проделываться в HxD из Aldo's PS3tools со следующими настройками: Кодировка = ANSI; Байт в строке = 16; Группировать байты = По одному; Базис смещения = Шестнадцатеричный).
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) В HEX редакторе выделяем первые 4 байта после PSTITLEIMG000000, затем нажимаем «Правка» - «Заполнить выделенное». В поле «Hex-значения» вставляем значение, полученное в предыдущем пункте (в данном примере C0B00AAA), без пробелов.
EBOOT.PBP исправлен, в HEX редакторе нажимаем «Файл» - «Сохранить».
Исправлять созданные в PSX2PSP_v.1.4.2 файлы EBOOT.PBP возможно так же и те, в которых размер первых трёх дисков превышает 2Gb, однако для этого требуется значительно больше операций. Расписывать подробно я их не буду, но, что нужно делать, вкратце я всё-таки опишу: -0x10200 – там находятся оффсеты стартов для каждого диска, смещение старта PSISOIMG0000 для четвертого диска высчитывается неверно -реальное расположение PSISOIMG0000 4го диска в eboot.pbp неправильное -реальное расположение старта ISO 4го диска неверное, должно быть на 0x100000 после PSISOIMG0000 -ну и после всего этого пофиксить STARTDAT
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».
1) Запускаем «_Fix_EBOOT.PBP_.exe», ждём пока файл EBOOT.PBP не исчезнет из папки, это будет означать что программа завершила свою работу.
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». Т.к. у Вас установлено Aldo's PS3tools - просто открываем файл двойным кликом.
Проверяем правильность заполнения полей: в поле «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 файл.
1.1) Нажимаем Shift+ПКМ по папке «PSX2PSOne Classic», и выбираем «Открыть окно команд», в командную строку вставляем (без кавычек) «make_psone_classic_metadata EBOOT.PBP», через некоторое время в папке появится файл «ISO.BIN.DAT»
1.2) Создаём ID как описано в Этапе 2 Пункте 4. В командную строку вставляем
где вместо «UP9000-SLUS00594_00-METALGEARSOLIDRU» нужно вписать созданный ID, не забываем цифру 5 в конце после ID. В папке появится файл «ISO.BIN.EDAT».
1.3) Перемещаем файлы «EBOOT.PBP» и «ISO.BIN.EDAT» по путям, описанным в пункте 2 в предыдущем спойлере
1.) Добываем файлы треков игры.
2.) с помощью Sony Sound Forge, конвертируем их в .aa3(ATRAC3) со следующими настройками: 132 Kbps, 44 100 hz, Stereo (ATRAC3). Именно ATRAC3 а не ATRAC3plus, ничего кроме обычного ATRAC3 работать не будет, максимальный битрейт у этого формата - 132кб/с
3.) Открываем .aa3 трек в хекс редакторе, удаляем header файла. ГДЕ заканчивается header и начинается поток определить не сложно - достаточно посмотреть на структуру файла. Подсказка: после header'а далее структура идёт блоками по 0хС0, каждый блок начинается с одинаковых(или похожих байт) - вот перед началом таких "первых" байт и есть конец того header'а.
4.) С помощью cryptor.exe (из прикреплённого архива CDDA_batch_tool.7z в #5-ом посту) зашифровываем трек любым 4х байтовым ключом. Использование:
5.) Открываем EBOOT.PBP в HEX-редакторе, в любом месте после дата трека игры (в любом месте где идут аудио сд треки игры) выделяем точно такое же количество байт, сколько занимает зашифрованный трек, после чего копируем-вставляем трек в eboot с перезаписью.
6.) На 0х800 от стартового оффсета header'а (к примеру, стартовый оффсет header'а в однодисковом EBOOT.PBP есть оффсет 0x10C00 - вот от него на расстоянии 0x800...) создаём таблицу со следующим содержанием (всё записывается в little endian): --первые 4 байта - оффсет начала трека (указывается значение сколько нужно отступить от стартового оффсета iso. А стартовый оффсет iso в EBOOT.PBP есть 0х110000) --вторые 4 байта - HEX длина трека --третьи 4 байта - пустота (нули) --четвертые 4 байта - ключ (cryptor.exe автоматически переворачивает указанный ключ, т.е., если был указан 11223344 то именно так его и пишем в таблицу) (что значит "в little endian" - допустим, вы померили HEX длину трекового файла. Она, допустим, 01A980 . Значит пишем 80A901. Также и со всеми другими значениями, кроме ключа)
повторить всё это для каждого трека, после чего как обычно - make_psone_classic_metadata и т.д.
а на консоли с офф прошивкой нельзя поставить пкг через ps3 proxy? ну например поставить на скачку какую нибудь демо игру остановить его. менять ссылку в proxy на свой пкг и продолжать загрузку PS4 Fat 8.0 + PS3 Slim CFW + PS3 Fat x2 :( + PS2 Fat + PS2 Slim + PS1 Slim :( + PSVita Fat + PSP Slim + XBOX 360 Slim + XBOX 360 FAT
karenjan99, на обычной консоли с OFW на данный момент нет возможности устанавливать pkg. Когда-то указанным тобой способом можно было установить, но это пофиксили - теперь когда ты начинаешь скачивать pkg и останавливаешь его - будет одна ссылка для скачивания на pkg - а когда опять возобновляешь скачивание - ссылка меняется. PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
будет ли автоматизация процесса? так и не заработал этот ps1tops3 у меня кстати здесь же ведь конвертнутые игры под псп используются те запускаются они с эмулятором псп что в пс3? те эмулятор в эмуляторе? PS4 Fat 8.0 + PS3 Slim CFW + PS3 Fat x2 :( + PS2 Fat + PS2 Slim + PS1 Slim :( + PSVita Fat + PSP Slim + XBOX 360 Slim + XBOX 360 FAT
Ды чёта глухо всё. А жаль - так обманули офф. эмулятор PS1! А PS2 так и не додумались(( Насчёт того, что ты заметил про PS1toPS3 - я тоже того же мнения выходит что так - эмулятор-в-эмуляторе. У меня была идея подсунуть там запускаемый файл какое-нито мини-хоумбрю от PS3, но НАСТОЛЬКО мини - где-то 65Кб - я не нашёл. ДАЖЕ спецом собрал PS3 SDK, нашёл "Hello, World!" - а в итоге получившийся запускаемый файл от него где-то ~200Кб PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod