(WIP) Портирование decap патча на Prince of Persia: Rival Swords
Вложений: 3
Порт decap патча RhymeKidder'a для PSP версии Rival Swords (ULUS-10240), включает разрубание монстров в игре. Залил во вложения пропатченный boot.bin и написанную на скорую руку простенькую утилитку, которая патчит boot.bin или iso образ.
Большое спасибо riku.kh3 и Yoti за помощь! :good: Скриншоты Архив |
Исходники это, конечно, хорошо, но лучше бы ссылку на источник. В каком виде он сделан? Если это dll, то в случае с psp по аналогии писать плагин. Либо писать вставки кода в свободные места исполняшки с возвратом обратно. Мануал к архитектуре вот, например.
|
Вложений: 1
Yoti, источник был здесь, залил во вложения, т.к. ссылка там уже мертва. Да, сделано в виде dll-инжекта.
|
Лучший пример модуля-патчера с загрузчиком оригинального eboot для внедрения в образ вот тут: https://github.com/RaienryuuNoNatsu/ZeroAoVoice-PSP
|
На PSP хуки вам не нужны, продолжайте делать все так же, как и до этого делали - вносить правки непосредственно в сами функции. Если что-то где-то не влезает - заменяете одну из инструкций бранчем, по новому адресу возвращаете замененную инструкцию, свой код и ставите бранч назад (или используете связку jal-jr). Место для своего кода можно взять там, где обрабатываются строки с различными ошибками (0x47D2D4-0x47D30C например).
"decap_archer" вызывает пустую "fix_archer", которая вообще ничего не делает, после чего вызывает саму "decap". То есть ее сразу на "decap" можно заменить. Остается только "decap_brute" (вернее "fix_brute"): она смотрит одно из значений в стэке. Если оно равно 0x82830304, то это значение заменяется на 0x82830403. Это надо в отладчике уже смотреть где оно на PSP в стэке. Должно быть что-то вроде того: Код:
0x47D2D4: |
Выглядит нормально.
Эмулятор, да, он вместо связки lui и addiu будет отображать псевдоинструкцию 'li v0, 0x82830304'. Вот так тогда попробуйте: Код:
0x47D2D4: И у вас там в гидре криво некоторые инструкции добавились. В самом эмуляторе попробуйте их скомпилировать (правый клик по инструкции --> Assemble Opcode) и из вкладки 'Memory' переписать hex-значения (одна инструкция = 4 байта). |
Вложений: 1
Попробовал сгенерить hex-код, заменить. В эмуляторе половину инструкций по непонятным причинам выводит битыми:crazy:
Код:
0047d2d4 ef ff 00 10 b LAB_0047d294 Edit2: всёравно ломает инструкции, вот скопированные из дизасма PPSSPP + прикрепил ELF Код:
1000FFEF |
А, нет, стоп, это не Гидра виновата. Тут таблица релокаций ELF вносит изменения в код при загрузке, в ней занулить надо несколько мест. Замените в эмуляторе инструкции на правильные, если все нормально будет работать я посмотрю где там таблица.
|
riku.kh3, я тоже начал подозревать, что что-то переписывает код :D
BlackDaemon добавил 30.04.2020 в 13:40 Потестил чуть код через замену в эмуляторе, вроде всё норм работает :good: https://streamable.com/kywdld |
Вложений: 1
Проверяйте.
|
riku.kh3, потестил чуть, вроде бы всё нормально. Большое спасибо! :good: Добавил только переход для 0x4096c на 0x47D2D8, и основной decap функции 0x3132b4 заменил код на return 1. Ночью сделаю ещё тест-драйв по сюжетке, если всё будет стабильно то будет релиз :)
|
Тогда еще лучше вот так, понадежнее должно быть:
Код:
0x47D2D4: |
riku.kh3, прошёл сюжетку, проблем на эмуляторе не возникло :good: Обновил шапку, прикрепил пропатченный бутник и простенькую утилитку :)
|
Небольшое обновление - убрана цензура крови, теперь она как и положено красная :D
|
BlackDaemon, вы можете дать ссылку на уже пропатченый образ игры?
|
Вложений: 1
|
Upd: прошёл сюжетку, PPSSPP крашнулся один раз, но скорее всего из-за того, что savestate'ами баловался. Обновил шапку, добавил последнюю версию патча. Есть ранние наработки по пересадке эффектов крови песочным монстрам, но из-за того, что ресурсы игры плохо изучены результат пока не совсем удовлетворителен.
|
Здравствуй. А как убрать цензуру вначале игры и добавить кровь для версии ПК в патче RhymeKidder?
|
YuriiM, наверное установить патч, не? Для этого его и создавали
|
Текущее время: 05:25. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.