EBOOT.BIN Patcher v1.1 - запуск новых игр на 5.00M33|5.03GEN/MHU
EBOOT.BIN Patcher v1.1
Как обладатель непрошиваемой 3008 версии psp я не мог смириться с тем, что 80% (если не больше) новых игр на ней не запускается.
Я начал изучать декомпилированный код загрузчиков игр на предмет несоответствий.
Сначала я пошел неправильным путем, считая, что в новых играх используются API-функции новой прошивки, при вызове которых psp зависала. Потратив несколько дней на изучение, я понял, что принципиальных отличий между загрузчиками нет.
После этого я начал обращать внимание на все детали и увидел, что практически в самом начале вызывается функция SysMemUserForUser_91DE343C. Поискав о ней информацию, я к сожалению, обнаружил, что данная функция ядра недокументирована ни в СДК, ни где либо еще. Продолжив раскопки я увидел это:
Используя дебаггер эмулятора jpcsp 0.3.1105 я увидел, что значение регистра $v0, в который записывается число 505h по адресу 8e2c290 передается функции SysMemUserForUser_91DE343C по 8e2c2b8. На самом деле получается, что вызывается функция ядра SysMemUserForUser_91DE343C(0x0505,...), что наводит на мысль по аналогии с вызовом функции
// @param sdkversion - The sdkversion to set
// (e.g.: 0x02070110 in applicationc compiled for firmware 2.71)
int sceKernelSetCompiledSdkVersion(int sdkversion);
что говорит о том что число 0x0505 может означать версию прошивки 5.50.
Недолго думая, исправив это значение на 0x0500 я успешно запустил данную игру на 5.03 MHU.
Два дня ушло на проверку теории и тестирование на всех играх на прошивках 5.0m33-6 и 5.03MHU (Мой друг Mercyful тестировал на 5.0m33-6, я тестировал на 5.03MHU). Результат оказался впечатляющим - на 5.0 работают 98% игр (2% ушло на несколько игр плюс небольшой запас).
Для не знакомых с ассемблером процессора MIPS предлагаю небольшую инструкцию для быстрого патча и универсальный патчер для любой игры, включая (я надеюсь) еще невышедшие:
Инструкция
1. Извлеките с помощью UMDGen из образа игры загрузчик EBOOT.BIN и экспортируйте File list (меню File>File list>Export);
2. Декриптуйте загрузчик EBOOT.BIN с помощью EDecrypt v1.3.1 либо PRXDecryptor 2.3;
3. Примените патчер из вложения к декриптованному загрузчику EBOOT.BIN (проверьте, что это именно декриптованный - у него хедэр ELF).
4. Упакуйте загрузчик обратно в образ (с помощью UMDGen замените загрузчик EBOOT.BIN в образе на декриптованный).
5. Импортируйте File list обратно, согласившись с вопросом о желании зафорсить положение файлов в образе! (этот пункт обязателен для многих игр, в частности DiRT2 без этой процедуры валится в черный экран)
6. Сохраните новый образ из UMDGen (cохраните оригинал)
7. Перепишите образ на psp и играйте.
P.S. В ссылке на патчер приведен список всех протестированных игр.
UPDATE: Для тех, кто будет править файл вручную, обратите внимание, что есть игры в которых таких проверок не одна. Точно знаю что не одна проверка в DIRT2, Bloons Minis и Undead Knigts. Именно поэтому патчер патчит так долго, ищет дополнительные проверки.
Последний раз редактировалось ErikPshat; 25.03.2010 в 16:51.
Причина: Update to version 1.1
greenbond,та же ошибка, но с FIFA 10. Кто-нибудь знает в чём дело? Образ ISO, не CSO. Sector Viewer'e показывает ~PSP, тоесть EBOOT не декриптован. То же самое с Thexder Neo. Пробовал на 2-4 версии Game Decrypter'a
Всё, разобрался. Пропатчил все игры, всё работает за исключением одной мини игры - герой спарты. Уже где то 10 образов скачивал везде и все по весу разные, пишет или ошибку (драйвер менял) или черный экран и не запускается. Ладно, не велика потеря. ща гт русский будем пробывать
mc707, огромное спасибо, особенно приятно, что соотечественник смог сделать это)).Прошлую проблему исправил, возникла другая - все правильно делаю, твоя прога изменяет 1 байт и потом при попытке запуска собранной игры вылетает ошибка 80020001, пробовал на разных дровах...Все та же Disgaea 2...
Последний раз редактировалось Anima; 08.10.2009 в 22:39.
Anima, 0x80020001 - generic kernel error. Что то не так сделал, либо с прошивкой что-то не то. Качать все игры у меня нет возможности и проверять, но знакомый 100% проверял на фатке м33.
mc707, спасибо, сам обладатель 5.50GEN-B2, но то что ты сделал, продвинула взлом PSP вперед на огромный шаг! Erik, у тебя получилось включить Marvel 2, значит он идет только на 5.00М33-6, а на виртуалках?
хоть и обладатель старой phat'ки и довольно счастливый пользователь 5.50 от гена, но благодарен тебе за проделанную работу. для владельцев непрошиваек это как праздник=)
даже интересно посмотреть как поступит дальше Соня
Последний раз редактировалось dirty2007; 09.10.2009 в 00:01.
Помогите пожалуиста, скачал ещё Naruto нового (ULES-01306) - не работает как и Disgaea 2, сейчас распишу что делаю:
1)File-File List-Export
2)PSP_GAME=>SYSDIR=>ПКМ EBOOT.BIN (Exract Selected...), сохраняю.
3) скачиваю в ms0:, запускаю дескриптор, он проводит все успешно.
4) Копирую EBOOT.BIN из DESCRYPTOR на комп.
5)Патчю прогой (заменяет 1 байт).
6)Через UMDGEN PSP_GAME=>SYSDIR заменяю вместо оригинального EBOOT.BIN
7)FIle-File List-Import выбираю сохраненный файл.
8)Save-Uncompressed (.iso) - сохраняю и записываю в ms0:/ISO, когда запускаю - черный экран постоянно - пытаюсь выключить через выключатель - постоянно начинает мигать зелёный диод, что я не так делаю, скажите пожалуиста...Все те же действия делаю с Disgaea 2 (ULUS-10461)...Что я не так делаю?
Последний раз редактировалось Anima; 09.10.2009 в 22:54.
Другие консоли: NES-подобное нечто, Talking Brick Game 1997 in 1, "Ну, погоди", "Автослалом"
Регистрация: 04.01.2007
Сообщений: 2,620
Вы сказали Спасибо: 712
Поблагодарили 1,147 раз(а) в 842 сообщениях
Сила репутации: 1
Репутация: 1160 
(за этого человека можно гордиться)
Во 1-х, вроде как после использования декриптора v4 (нажатие кнопки для декриптовки под 5.00 М33-6 и виртуальные проши) eboot уже не надо дополнительно патчить.
Во 2-х, когда у меня была ошибка 80020001 с моторштормом, я сделал так: https://www.pspx.ru/forum/showpost.ph...6&postcount=64
Другие консоли: NES-подобное нечто, Talking Brick Game 1997 in 1, "Ну, погоди", "Автослалом"
Регистрация: 04.01.2007
Сообщений: 2,620
Вы сказали Спасибо: 712
Поблагодарили 1,147 раз(а) в 842 сообщениях
Сила репутации: 1
Репутация: 1160 
(за этого человека можно гордиться)
Как знаешь. Я бы пробовал все что можно: v4, сохранение с/без файллиста, разные no-umd режимы, извлечение файлов образа и создание нового (см мою ссыль выше), поиск уже патченых образов... что там еще можно...