Сделать авто-патчер

21 сообщение / 0 новое
Обновлено
#1 [-] Добавил Шеф Виггам
Изображение пользователя Шеф Виггам

Задача Сделано! Ну почти
Сделать автоматический создатель патчей. Есть папка с распакованными образами на русском. Есть папка с распакованными образами на английском (оригиналы с Редампа). Названия образов частично совпадают (название игры, дальше в русских пойдёт в скобках код). Есть программы для создания патчей, типа Xdelta и ImageDiff, к которым можно обращаться через командную строку. Нужно сделать программу, которая одним кликом поочерёдно будет делать патч (или сравнивать) для каждого из образов в русской папке на основе образов из папки английских, и сохранит результаты в отдельную папку, например "патчи". Таким образом за раз можно будет сделать патчи для всех имеющихся игр. Зная синтаксис командной строки - задача элементарная. Но в программировании под Винду я не силён.

Задача 2:
Патчер для мльтитрековых игр. Не о какой массовости речи не идёт, разобраться бы с ними хоть по одиночке. Тут надо не просто сравнить (сделать патч) первый трек (который с игрой), а ещё и конвертнуть дорожки с одного формата в другой (из отдельного незжатого "трека" в mp3/ogg или обратно), а затем ещё всё это собрать. В том же PakkISO от редампа (если я название правильно помню) реализовано почти всё из перечисленного. Кодеки/утилиты, а также формат обращения к ним, можно там легко взять/посмотреть. Но я в целом всё это не осилю.



[-] Добавил Шеф Виггам ( authenticated user Администратор) в Пт, 10/01/2014 - 20:44
Изображение пользователя Шеф Виггам

Ниже обсуждение из старой темы. Остатки от наработок Kazooki:
https://www.dropbox.com/s/qn4wc96z0yzeit9/patch_RUS.rar?dl=0

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Пт, 10/01/2014 - 20:47
Изображение пользователя Шеф Виггам

Спасибо за такой хороший патчер! Мы наверное в прошлом диалоге друг друга не правильно поняли - сейчас на выходе получил iso образ (т.е. как в патче iso.xdelta) - всё работает! С img надеюсь тоже проблем нет. Только для него ведь тоже создастся cue? А он будет рабочий?
Ты наверное подумал, что я говорил про оригинал (брать в iso)? Нет, такое конечно же не нужно, весь редамп в bin'е. Я имел в виду, чтобы русский образ на выходе получить такой, как указано в xxx.xdelta .

[-] Добавил DruchaPucha ( authenticated user Редактор) в Пт, 10/01/2014 - 22:14
Изображение пользователя DruchaPucha

Кстати для xdelta есть GUI, но он кривой, так-как для пропатчивания, нужно чтобы названия файла и папки были идентичны тем, в которых был создан этот патч.

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Пт, 10/01/2014 - 22:25 (Ответ на #4)
Изображение пользователя Шеф Виггам

А это точно? Просто у меня который (версия 1.1), я вроде за ним косяков не замечал, хотя и патчил только свои, для проверки.

[-] Добавил DruchaPucha ( authenticated user Редактор) в Пт, 10/01/2014 - 23:00
Изображение пользователя DruchaPucha

А что есть 1.1? Я только 1.0 видел, там проблемы с путями.
http://psxplanet.ru/forum/showthread.php?t=8138

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Пт, 10/01/2014 - 23:06 (Ответ на #6)
Изображение пользователя Шеф Виггам

Разработчик наш paul_met, а у меня буржуйская какая-то. Скачай тут на форуме http://rgdb.info/forum/raznye-instrukcii/kak-sdelat-rusifikator-i-oformit-ego-na-sayte в архиве и редми есть.

[-] Добавил DruchaPucha ( authenticated user Редактор) в Пт, 10/01/2014 - 23:28
Изображение пользователя DruchaPucha

Спасибо. Саму xdelta я бы посоветовал тоже обновить.:)
http://rghost.ru/51550795

[-] Добавил Kazooki ( authenticated user) в Сб, 11/01/2014 - 12:19

Цитата:
Поддержки imageDiff (если нужны ключи командной строки, могу кинуть).

imagePatch.exe original.bin.imageDiff foreign.bin newOriginal.bin
Можно добавить селектор, по дефолту дельтовский патч, а если диф то обрабатываем диф ветку. Вообще патчей какого формата больше того и сделать по умолчанию.

Цитата:
С img надеюсь тоже проблем нет. Только для него ведь тоже создастся cue? А он будет рабочий?
Ты наверное подумал, что я говорил про оригинал (брать в iso)? Нет, такое конечно же не нужно, весь редамп в bin'е. Я имел в виду, чтобы русский образ на выходе получить такой, как указано в xxx.xdelta

Да, патчер берет имя и расширение образа из имени патча. IMG и BIN собственно это одно и тоже по содержанию, это raw данные CD. Расширения только разные бин для cdrwin и имж для WinImage. А в куе указано откуда начинается трек и режим записи. Поскольку все psx диски это Mode 2 Form 1 и прегап для большинства один и тот же, то и без куе все загрузиться, даже многотрековый образ, просто у него загрузиться первый трек с данными.
Кстати универсальней было бы править имя образа в cue, а не генерить его заново. А по поводу iso, итоговые образы все будут получены из бинарников, но с разными расширениями согласно патчу, что ни есть хорошо.

Цитата:
Кстати для xdelta есть GUI, но он кривой, так-как для пропатчивания, нужно чтобы названия файла и папки были идентичны тем, в которых был создан этот патч.

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

Цитата:
Мультитрековые игры. Патчер для монотрековвых в принципе есть, а вот как быть с этими не ясно. Сам патч применяется к первому треку редампа, затем получившаяся русская версия в cue файле редампа встаёт на место первого трека и мы имеем полную версию. Как это сделать автоматически - я не знаю.

Так если треки отдельно, то без проблем патчиться именно он. Можно было вообще не переименовывать редамповские образы, а просто патчить их...

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Сб, 11/01/2014 - 13:52 (Ответ на #9)
Изображение пользователя Шеф Виггам

Цитата:
Можно добавить селектор, по дефолту дельтовский патч, а если диф то обрабатываем диф ветку. Вообще патчей какого формата больше того и сделать по умолчанию.

Будет время - сделай пожалуйста. Тогда твой патч для однотрековых образов будет полностью завершенным! Каких больше... Трудно сказать. Пока что делаю патчи только я, и их там поровну получается. В крайнем случае потом поменяем, оно же не трудно. Но наверное всё же xdelta первый.

Цитата:
Кстати универсальней было бы править имя образа в cue, а не генерить его заново.

А что если кто-то не кинет в папку cue? Его ведь сгенерить не проблема.

Цитата:
А по поводу iso, итоговые образы все будут получены из бинарников, но с разными расширениями согласно патчу, что ни есть хорошо.

В соседней теме я спросил про форматы, которые можно без опасений переименовывать в bin. Но если среди итоговых образов есть такие, с которыми подобное переименование делать нельзя, то данный вариант отпадает, т.к. вряд ли ты условия будешь прописывать.

Цитата:
Так если треки отдельно, то без проблем патчиться именно он. Можно было вообще не переименовывать редамповские образы, а просто патчить их

Ну тебе его для начала надо будет идентифицировать. Например по порядку он первый, или по содержанию "track 1". В общем, тут я не помощник, жду решений от тебя, если захочешь конечно (что было бы очень хорошо :) ).

PS: сегодня задам стили цитате, чтобы не приходилось вручную курсив ставить

[-] Добавил Kazooki ( authenticated user) в Сб, 11/01/2014 - 16:35

Добавил imageDiff, только попробуй реальный патч и реальный образ на предмет действительно ли патчит, т.к мне не на чём.

Цитата:
А что если кто-то не кинет в папку cue?

Проверить можно.

Цитата:
вряд ли ты условия будешь прописывать.

условия чего? где?

Цитата:
Ну тебе его для начала надо будет идентифицировать. Например по порядку он первый, или по содержанию "track 1". В общем, тут я не помощник, жду решений от тебя, если захочешь конечно (что было бы очень хорошо :) ).

Если куе есть то это не проблема, парсим первую строку это и есть искомый первый трек с данными, например у меня есть Mass Destruction, в cue имеем:

FILE "Mass Destruction (Eu)(Track 01).bin" BINARY
  TRACK 01 MODE2/2352
    INDEX 01 00:00:00
FILE "Mass Destruction (Eu)(Track 02).bin" BINARY
  TRACK 02 AUDIO
    INDEX 00 00:00:00
    INDEX 01 00:02:00
...

т.е наш бинарник для патча "Mass Destruction (Eu)(Track 01).bin"

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Сб, 11/01/2014 - 18:45
Изображение пользователя Шеф Виггам

Цитата:
условия чего? где?

Условия на проверку. Забей.
А с правкой cue в мультитрековом идея отличная. Только в идеале не мешает как-то помечать, что образ пропатчился, а то человек разницы даже не заметит. Но конечно, если что, от этого можно отказаться, не так уж важно.

Сегодня проверю твой последний патчер, позже отпишусь.
---
Проверил, к сожалению сразу ошибку выдал, прочитать не успел, вроде "...не является программой...". Скачай любой патч и редамп образ к нему, потестируй. Например:
http://rgdb.info/base/rus-00049
и
http://free-iso.org/load/3-1-0-264

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Ср, 23/07/2014 - 16:36
Изображение пользователя Шеф Виггам

Тема слегка замусорена, к сожалению Kazooki пропал с концами. Поэтому, если кто захочет продолжить дело, задавайте любые вопросы, буду на всё отвечать.

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Пн, 16/01/2017 - 21:27
Изображение пользователя Шеф Виггам

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

[-] Добавил DruchaPucha ( authenticated user Редактор) в Ср, 18/01/2017 - 00:25 (Ответ на #14)
Изображение пользователя DruchaPucha

В xdelta и imagediff есть свои нюансы. xdelta больше подходит для игр с пересобранными файлами, а imagediff только для обычных.

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Ср, 18/01/2017 - 00:39 (Ответ на #15)
Изображение пользователя Шеф Виггам

Я сделал только с imagediff. Вообще можно сделать, чтобы автоматом и xdelta патч делала, а потом смотреть, кто лучше.

[-] Добавил DruchaPucha ( authenticated user Редактор) в Ср, 18/01/2017 - 14:49 (Ответ на #16)
Изображение пользователя DruchaPucha

Ну для последней версии xdelta есть команды, хотя win gui от 2009 года работает отлично.

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Ср, 18/01/2017 - 20:50 (Ответ на #17)
Изображение пользователя Шеф Виггам

Добавлена xdelta

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Ср, 18/01/2017 - 00:50
Изображение пользователя Шеф Виггам

Массовый автопатчер
Качать отсюда https://cloud.mail.ru/public/JjZH/rUAou31HR

Три папки - одна для русских образов, вторая для английских (в смысле с которых будет делаться патч) и в третьей забираем готовые патчи. Сопоставление файлов идёт по названию - оно должно совпадать, за исключением информации в скобках - у редампа это всякая региональная принадлежность, у нас номер издания. Поэтому русскому образу название правьте вручную в соответствии с базой (а оно у нас с редампом всегда совпадает). Также русскому в скобках допишите название издания. Запускаем "patch.bat" и ждём.

Из-за того, что всё зависит от названия образа, у вас не получится делать патчи для игр на нескольких дисках (там название одинаковое, а у редампа индикатор CD аж в конце - морочиться его перетаскивать на начало у меня сил уже нет), ещё были проблемы с восклицательным знаком.

Добавлено:
- контрольная сумма необходимого для патча образа теперь записывается в название патча.
- делаются патчи xdelta и imagediff, пакуются 7z, сравниваются по размеру и остаётся меньший.

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Чт, 19/01/2017 - 13:39 (Ответ на #19)
Изображение пользователя Шеф Виггам

Вот пример использования автопатчера. Я вчера оформил все издания, но без патчей. Т.е. указал суммы и пр. Каждый образ, с которым я уже разобрался, я кидал в папку патчера, правильно его переименовывая. В конце набралось 10 штук (на папки на скринах не обращайте внимания). Затем сегодня скачал с редампа американский образец, 20 минут и готово - упакованные патчи.

Spoiler: Highlight to view
2017-01-19_13-25-56.png
-----------------
2017-01-19_13-25-29.png
---------------
2017-01-19_13-26-19.png

PS: кстати, английских версий можно сколько угодно кидать, будут сделаны патчи для каждой (т.е. один для v1.0, второй для v1.1 и т.д).

[-] Добавил Шеф Виггам ( authenticated user Администратор) в Чт, 02/03/2017 - 12:48 (Ответ на #20)
Изображение пользователя Шеф Виггам

Ещё несколько дополнений, если кому нужно будет.

1. Английский образ должен содержать скобки в конце. Т.е. например "Resident Evil (USA).bin". Важна именно открывающая скобка, т.к. она показывает что название игры на ней заканчивается. Это сделано, чтобы можно было корректно искать игры с невыразиельным названием, например "Blade", т.к. если искать просто по слову "Blade", то можно получить совсем другие игры (например Blade II или Blade Dancer). Все redump образы уже содержат нужные скобки, речь скорее о других платформах. На заметку.

2. Для работы с играми на нескольких дисках я по прежнему так ничего и не сделал (и если честно не собираюсь), поэтому проще всего вручную переименовать образы. Т.е. в русскую папку помещаем что-то вроде "Resident Evil 2 (диск 1) (RUS-0000I-0).bin" и "Resident Evil 2 (диск 2)...", а в английской у редамп образов вручную дописать диски, т.е. "Resident Evil 2 (диск 1) (USA).bin" и т.д.

© Команда RGdb, 2014-2019 | На главную | FAQ | О сайте | Правообладателям