Автор Тема: UniPatcher - патчер ROM'ов для Android  (Прочитано 3269 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« : 24 Февраль 2020, 13:36:14 »
UniPatcher - патчер ROM'ов для смартфонов на Android.

Программа поддерживает множество форматов патчей:  IPS, IPS32, UPS, BPS, APS (GBA), APS (N64), PPF, DPS, EBP и XDelta3.

Также программа умеет:
- исправлять контрольную сумму для игр Sega Mega Drive (используется если игра после пропатчивания не запускается, отображая лишь красный экран)
- удалять/добавлять SMC заголовок для игр Super Nintendo
- создавать патчи в формате XDelta3



Сайт программы: https://github.com/btimofeev/UniPatcher
Скачать можно в Google Play или F-Droid.

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

Онлайн Mr2

  • Пользователь
  • Сообщений: 1584
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #1 : 24 Февраль 2020, 14:04:33 »
Я являюсь автором программы, т.ч. принимаю в этой теме пожелания по дальнейшему развитию
Думаю что полезно будет добавить поддержку чит патчей. Формат простой (скрипт). Тут пример создания патча.

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #2 : 24 Февраль 2020, 14:20:43 »
Думаю что полезно будет добавить поддержку чит патчей. Формат простой (скрипт). Тут пример создания патча.

Нужно более подробное описание формата скрипта, из скриншота много не поймешь, а ссылка на Cheat patcher v0.4 битая. А в целом можно добавить.

Онлайн Mr2

  • Пользователь
  • Сообщений: 1584
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #3 : 24 Февраль 2020, 14:30:21 »
Нужно более подробное описание формата скрипта,

Скрипт описан в файле "Техническая информация.txt" в архиве с программой.

А в целом можно добавить.
Круто!  :wow:

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4416
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #4 : 25 Февраль 2020, 02:15:44 »
А в целом можно добавить.
Можешь не тратить зря время, этим никто не пользуется всё равно.

Онлайн Mr2

  • Пользователь
  • Сообщений: 1584
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #5 : 26 Февраль 2020, 08:36:37 »
Позиция недалёкого тро-ло-ло сообщества нам давно ясна: "нам ваш интернет не нужОн". :crazy:
Если и патчить чит коды, то только через хекс редактор, естественно он должен быть консольным, а не унылым окном с кнопками.  :thumbup:
PS: Накручивая счётчик постов глупыми сообщениями, ром хакером стать не получится.  ::)

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #6 : 26 Февраль 2020, 08:59:34 »
Позиция недалёкого тро-ло-ло сообщества нам давно ясна: "нам ваш интернет не нужОн". :crazy:
Если и патчить чит коды, то только через хекс редактор, естественно он должен быть консольным, а не унылым окном с кнопками.  :thumbup:
PS: Накручивая счётчик постов глупыми сообщениями, ром хакером стать не получится.  ::)
Там уже давно все понятно. Не думал о графической оболочке для написания самих патчей, или оно излишне уже будет? Некоторые недохацкеры негодуют наверное, что это за команды и как их правильно расставить чтобы мир не схлопнулся.

Онлайн Mr2

  • Пользователь
  • Сообщений: 1584
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #7 : 26 Февраль 2020, 09:22:24 »
Не думал о графической оболочке для написания самих патчей, или оно излишне уже будет?

Думал, но один все вопросы решить не могу. Да, и изначально формат был открытым, и выкладывался до его реализации на суд публике.
Так что любой, кому не лень, может заняться этим вопросом. :)

Некоторые недохацкеры негодуют наверное, что это за команды и как их правильно расставить чтобы мир не схлопнулся.
Максимум что я мог сделать(Техническая информация.txt), я сделал.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4998
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #8 : 26 Февраль 2020, 14:23:31 »
* Можно добавить исправление контрольной суммы SNES, это не влияет на запуск в эмуляторе, но он пишет, когда неверная.
* Почему-то SD карту не могу выбрать. Может что-то не понял.
* Сортировку возможно лучше сделать без учёта регистра.
* Патчи читов можно сделать простого формата как список 01FFBE:0A и Game Genie как в Game Genie Guy! (есть исходный код). Такой же формат (наверно общепринятый) на https://gamehacking.org/, только там ещё есть интервалы и ещё некоторые приколы.

Какое сжатие поддерживает xdelta (VCDIFF)?
--------
Про xdelta почему спрашиваю. xdelta3 для винды по умолчанию добавляет сжатие (secondary compression) lzma, которое не поддерживает web-патчер https://www.marcrobledo.com/RomPatcher.js/. Попробовал сейчас в UniPatcher - ошибка, без сжатия ещё не пробовал. UPD: Без сжатия работает, если создан так:
xdelta3.exe -e -S -s old.bin new.bin delta.vcdiffЕсли убрать -S, то по умолчанию lzma и ошибка в UniPatcher.
--------
* Можно добавить удаление/добавление FDS заголовка. Игр для FDS мало, но некоторые старые эмуляторы понимают только с заголовком или только без. Это легко, одна сторона всегда размером 65500, а заголовок 16 байт, в котором "FDS", количество сторон и нули. Проверка остатка и всё.
Ещё иногда нужно склеивать стороны в один файл, но это, наверно, излишне.

Если что, дописывал конвертер QD <-> FDS на Python 3:
  • Добавил контрольные суммы, вместо нулей, которые есть в QD, но в образах в сети они не всегда верные и хотя размер QD больше (65536), конец может обрубиться из-за контрольных сумм, но там обычно мусор.
  • Возможность добавления FDS заголовка при QD -> FDS.
  • Любое количество сторон (255 макс. для байта).
  • Исправил некоторые баги.
https://gist.github.com/infval/18d65dd034290fb908f589dcc10c6d25
--------
* Хорошо бы добавить высчитывание контрольной суммы, как в https://www.marcrobledo.com/RomPatcher.js/. Есть отдельные программы и X-plore показывает SHA-1, MD5 (но не CRC32 :( ), но так было бы удобней.
« Последнее редактирование: 26 Февраль 2020, 22:30:30 от Sharpnull »

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM\'ов для Android
« Ответ #9 : 27 Февраль 2020, 12:01:19 »
* Почему-то SD карту не могу выбрать. Может что-то не понял.
* Сортировку возможно лучше сделать без учёта регистра.
Я в одной из ближайших версий планирую перейти на встроенный в Android диалог выбора файлов, т.к. в моей текущей реализации слишком много проблем и от неё давно надо было отказаться.

* Хорошо бы добавить высчитывание контрольной суммы, как в https://www.marcrobledo.com/RomPatcher.js/.
Оно есть, но видимо не в самом интуитивно понятном месте. Нужно при выборе файла сделать долгий тап на него, откроется окошко с свойствами файла, там есть контрольные суммы. С переходом на стандартный выбор файла перенесу это в главное окно.

Какое сжатие поддерживает xdelta (VCDIFF)?
Наверное никакое  :) Подобные патчи мне не попадались. Посмотрю как прикрутить, спасибо.

* Можно добавить удаление/добавление FDS заголовка.
Даже не знал что такое существует. Посмотрю на досуге.

* Патчи читов можно сделать простого формата как список 01FFBE:0A и Game Genie
Уже думал о таком, да и для Symbian когда-то давно писал подобное. Добавлю.


Добавлено позже:
Можешь не тратить зря время, этим никто не пользуется всё равно.
Ну бежать и прямо сейчас делать я не собираюсь, есть куча вещей которых нужно до этого поменять\добавить в программу. Но себе на заметочку я такие штуки записываю, так что может когда-то будет время и желание добавить.
« Последнее редактирование: 27 Февраль 2020, 12:14:15 от Mashin »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4998
    • Просмотр профиля
Re: UniPatcher - патчер ROM'ов для Android
« Ответ #10 : 27 Февраль 2020, 14:24:17 »
Нужно при выборе файла сделать долгий тап на него, откроется окошко с свойствами файла, там есть контрольные суммы.
Я не догадался, но вообще это удобно, чем сначала выбрать файл, а потом смотреть контрольную сумму. Она ещё высчитывается не сразу, поэтому нельзя выводить без явного действия от пользователя. UPD: Но дополнительный пункт в меню для контрольной суммы тоже хорошо.

* Иконку приложения стоило бы заменить на более подходящую по смыслу, обычный геймпад ни о чём не говорит. Добавить изображение заплатки. Например так:
219254-0
« Последнее редактирование: 27 Февраль 2020, 14:40:10 от Sharpnull »

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #11 : 27 Февраль 2020, 15:08:12 »
* Иконку приложения стоило бы заменить на более подходящую по смыслу, обычный геймпад ни о чём не говорит. Добавить изображение заплатки.
Иконка у этого приложения менялась уже раз 5. Последний раз Nintendo выдвинуло требование изменить, тк геймпад был похож на геймпад SNES (с него и рисовался :)). Мне, честно сказать, надоело их менять, тк художник из меня никакой и это отнимает много времени. А если рисовать с заплаткой, то лучше тогда не геймпад, а картридж, так будет более подходить по смыслу. Но если кто-то нарисует красивую иконку в svg формате, то рассмотрю вариант замены, а так пусть будет пока эта.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4998
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #12 : 27 Февраль 2020, 16:10:23 »
А если рисовать с заплаткой, то лучше тогда не геймпад, а картридж, так будет более подходить по смыслу.
Иконка геймпада символизирует игру, а картридж - ром. Игра более широкое понятие, чем ром, хотя в роме может быть не только игра. В принципе, патчить можно не только ром файлы, но образы дисков и вообще любых файлов. Так как вы позиционируете приложение для применения к файлам игр, то геймпад с заплаткой вполне подходит.
Картридж с заплаткой тоже подходит, но будет ли он смотреться. Мой пример с заплаткой на кнопки органично вписывается (в Photoshop как раз заплатка с 4 точками). Для картриджа придётся выдумывать дополнительные детали, поэтому что спереди это просто прямоугольник с некоторыми углублениями.
У https://www.marcrobledo.com/RomPatcher.js/ просто чип (или как это называется), что суть рома или дампа.
Необязательно лепить заплатку, можно изобразить чип или картридж в котором один кусок заменяется другим (вырезан как от пирога), потому что патчи и есть замена части байтов другими.

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #13 : 28 Февраль 2020, 15:00:11 »
xdelta3 для винды по умолчанию добавляет сжатие (secondary compression) lzma
Добавил сегодня поддержку lzma, появится в следующем обновлении приложения. Ещё раз спасибо за наводку.

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #14 : 18 Сентябрь 2020, 10:35:52 »
Выпустил версию 0.17. Изменения:

- встроенный файловый менеджер заменён на стандартный Storage Access Framework. Теперь можно работать с файлами на SD-карте и облачном хостинге (например Google Drive), но применение патчей требует больше времени и свободного места на диске. Временно удалены просмотр контрольных сумм файла и настройка директорий.
- добавлена поддержка LZMA компрессии в патчах формата XDelta3
- удалена возможность добавления SMC заголовка к ROM'ам Snes (за эти годы мне ни разу не понадобилась эта функция)
- поддержка Android 10 и 11
- исправлено исчезновение уведомлений
- много мелких изменений в интерфейсе

Скачать APK можно с офф.страницы https://github.com/btimofeev/UniPatcher/releases/tag/v0.17 В google play и f-droid обновится попозже.

Оффлайн Durakover900000

  • Пользователь
  • Сообщений: 73
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #15 : 20 Сентябрь 2020, 08:14:09 »
Mashin,  можете добавить в пожертвования яндекс кошелёк а то пей пал и биткоит не перевариваю

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #16 : 20 Сентябрь 2020, 08:26:00 »
Mashin,  можете добавить в пожертвования яндекс кошелёк а то пей пал и биткоит не перевариваю

В приложение пока добавить не могу, так как страничка донатов создается внешней библиотекой (отдельно для свободного apk и для версии в Google play), а эта библиотека Яндекс деньги не поддерживает. Но если что, то вот мой номер Яндекс кошелька 41001531787062.

Оффлайн Grinmen

  • Пользователь
  • Сообщений: 28
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #17 : 02 Октябрь 2020, 21:19:01 »
Хотелось чтобы можно было делать по мимо патяиваеия, P. S хотелось бы чтобы можно было корректировать пропатченые файлы если они не запускаются в эмуляторе

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #18 : 03 Октябрь 2020, 13:59:35 »
хотелось бы чтобы можно было корректировать пропатченые файлы если они не запускаются в эмуляторе

В каком смысле корректировать? Для SMD есть исправление контрольной суммы для тех эмуляторов которые сами этого не умеют. Для остального существуют Hex-редакторы, тк другого универсального средства пока не придумали.

Оффлайн Photon9

  • Пользователь
  • Сообщений: 10348
  • Пол: Мужской
  • йОжик сОник
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #19 : 03 Октябрь 2020, 15:34:32 »
Для пк есть утилиткпа правящая это дело, пару раз с витой мне помогала когда вместо игры был красный экран

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #20 : 09 Октябрь 2020, 18:35:26 »
Версия 0.17.1:

- Операции с файлами выполняются пока приложение открыто, а не в фоновом сервисе как раньше.
- Отчет о проделанной работе отображается в виде всплывающего сообщения, а не в области уведомлений.
- Добавлен турецкий язык (перевёл Oğuz Ersen)
- Сервер переводов заменен на https://hosted.weblate.org/engage/unipatcher/

Кстати, хотелось бы доперевести программу на украинский язык, если есть желающие, то велком по ссылке выше.

Скачать APK https://github.com/btimofeev/UniPatcher/releases/download/v0.17.1/UniPatcher-0.17.1.apk
« Последнее редактирование: 09 Октябрь 2020, 19:03:26 от Mashin »

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #21 : 22 Январь 2021, 10:57:21 »
Версия 0.17.2:

- Добавлен перевод на иврит (перевёл Tamer Dabsan)
- Добавлен перевод на немецкий язык (перевёл Honigdieb)
- Закончены переводы на испанский и португальский (перевели Swyter, Marvin SIlc, Yoshi LevelLand, Alberane Lúcio, Alission Queiroz Santos, Daniel de Souza Melo, Joey Mendes)
- Обновлены множество других переводов
- Исправлена ошибка, из-за которой некоторые файлы нельзя было выбрать
- Вы можете предложить идею или задать вопрос на странице https://github.com/btimofeev/UniPatcher/discussions

Скачать APK https://github.com/btimofeev/UniPatcher/releases/download/v0.17.2/UniPatcher-0.17.2.apk

Оффлайн Mashin

  • Пользователь
  • Сообщений: 85
  • Пол: Мужской
    • Twitter
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #22 : 15 Ноябрь 2024, 13:04:20 »
Версия 0.17.3:

- Добавлен перевод на арабский язык (перевел Fayçal Boukamel)
- Добавлен перевод на эсперанто (перевел Jakub Fabijan)
- Добавлен перевод на индонезийский язык (перевели Tsaqib Fadhlurrahman Soka, Lim Jia Ming, Reza Almanda)
- Добавлен перевод на центральнокурдский язык (перевел دیاری ئەرسەلان جەبار)
- Добавлен перевод на литовский язык (перевел Gediminas Murauskas)
- Добавлен перевод на малайский язык (перевел Muhammad Ammar Bin Rozi)
- Добавлен перевод на вьетнамский язык(перевел Haibara Ai)
- Обновлено множество других переводов (спасибо всем кто в этом участвовал)

Скачать APK https://github.com/btimofeev/UniPatcher/releases/download/v0.17.3/UniPatcher-0.17.3.apk

Оффлайн mr287cc

  • Пользователь
  • Сообщений: 70
  • Пол: Мужской
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #23 : 16 Ноябрь 2024, 23:39:23 »
- Добавлен перевод на арабский язык (перевел Fayçal Boukamel)
- Добавлен перевод на эсперанто (перевел Jakub Fabijan)
- Добавлен перевод на индонезийский язык (перевели Tsaqib Fadhlurrahman Soka, Lim Jia Ming, Reza Almanda)
- Добавлен перевод на центральнокурдский язык (перевел دیاری ئەرسەلان جەبار)
- Добавлен перевод на литовский язык (перевел Gediminas Murauskas)
- Добавлен перевод на малайский язык (перевел Muhammad Ammar Bin Rozi)
- Добавлен перевод на вьетнамский язык(перевел Haibara Ai)

Это где же находятся энтузиасты-переводчики на такие редкоземельные языки? Перевести бы одну неплохую китайскую RPG для NES, хотя бы на английский, но там, конечно, диалогов поболе чем в интерфейсе утилиты. Да и в контекст въезжать нужно, китайская мифология, боги-демоны и вот это всё.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
UniPatcher - патчер ROM'ов для Android
« Ответ #24 : 17 Ноябрь 2024, 12:59:28 »
Любители Покемонов и игр Нинтендо переводят, скорее всего. Их миллионы.
Кто-то даже зарабатывает на них, делая им хаки этих игр, а Нинтендо ловит кого может.