Страница 1 из 1

Что такое патч?

Добавлено: 21 фев 2019, 20:58
PostaL
Начнём пожалуй с того, что слово "патч" происходит от английского слова "patch", означающее буквально следующее: заплатка, латать, чинить или заделывать.
Сфера применения.

Сейчас уже трудно сказать для какой именно цели изобрели патчи и всё, что с ними связано, но используют их (особенно в эмуляции) очень широко.
Самое простое и понятное это перевод игры на русский или любой другой язык. Во-первых это не нарушает авторских прав на игру, а во-вторых, что более существенно, патч всегда меньше оригинальной игры, потому что вы меняете только текст и часть графики (код и музыка как правило остаются неизменными).
Внесение различных изменений в РОМ. Для чего это нужно? Некоторые программисты выпускают патчи к игре, устраняющие ошибки или глюки в игре или позволяющие эмулятору правильно эмулировать игру (снятие всякого рода защит, ...)
РОМ хакинг. Это, я думаю понятно всем. Кто-то расписывает стены пол (а иногда и потолок) в игре надписями типа "здесь был Вася", кто-то делает бессмертие героям, а кто-то просто раздевает Барби или вклинивает в игру любимую музыку
Подготовка

Итак, я думаю для начала хватит теории, перейдём к более приятному.
Запомните, это ОЧЕНЬ ВАЖНО: перед началом любых изменений во-первых:
- Сохраните оригинальный РОМ (анти-патчей как правило никто не выпускает)
- Разархивируйте (распакуйте) РОМ и патч, для удобства в одну папку, хотя это и не важно. С ZIP-ами патчи не работают.
Убедитесь в том, что РОМ именно тот, что вам нужен (как правило в сопроводительной документации указывается какой именно РОМ нужно патчить) Дело в том, что для одной и той же игры может существовать множество РОМов, отличающихся либо версией игры либо языком.
Если у вас есть всё, что нужно и вы выполнили первые два пункта, то, пожалуй начнём.
Что это?

Обратите внимание на то, что лежит в архиве патча.
Файлы типа TXT это разъяснения и комментарии к патчу (иногда просто необходимые). Потеряйте пару минут и ознакомьтесь с ними.
Файлы типа EXE. Именно в таком виде выпускаются все последние патчи и переводы. Если в архиве лежит именно такой файл, то ваши мучения окончены. Запускаете его, выбираете РОМ и жмёте "PATCH" . После этого можно смело приступать к игре.
Файлы типа IPS. См. ниже.
Программы и форматы

Самый распространённый формат патчей, применяемый в эмуляции это формат IPS. Для любознательных расскажу, что существуют и менее распространённые форматы (APS,...), но их используют редко и с большими РОМами (например Зелда для Нинтендо 64). Насколько я знаю, у формата ips ограничение размера РОМа - 16 Мб.

С форматом разобрались, теперь перейдём к программам. Для патчей ips существует много известных и малоизвестных программ (даже я сделал нечто подобное). Самые распространённые из них:
Для MS-DOS существует программка ips, как в ней работать я рассказывать не буду, так как если вы не знаете DOSа, то все мои объяснения будут бесполезны, а если знакомы, то они тем более бесполезны. Замечу, что максимальная длина имени РОМа не должна превышать 8 символов. Так же для этой цели в DOSе подойдут и программы вроде snestool.
Для Windows есть не один десяток программ: smart-IPS, Lunar IPS, IPS-WIN, и.т.д. Первая в списке не всегда работает корректно с маленькими патчами, поэтому лучше ей не пользоваться, Lunal IPS мало распространена, хотя и является прекрасной программкой, так что мы остановимся на последней.
IPS-WIN 2.0

Скачиваем и запускаем её.

Всё очень просто:
- File to patch это наш РОМ
- IPS Patch To Use - естественно здесь надо указать путь к патчу.

Затем нажимаете кнопочку Patch! и дело сделано
Другие программы для патчей работают аналогичным образом.

У меня не получается!

Как правило проблемы с переводом игр возникают для Сеги или Супер Нинтендо. Но перед тем, как паниковать, посмотрите внимательно те патчи и РОМы вы используете или нет. Если это не помогло, то попробуем разобраться:

SEGA
Проблема "КРАСНОГО ЭКРАНА" - решается очень просто: в эмуляторе Gens поставьте галочку в Option/Misc/Auto fix Checksum. Для Kega Fusion есть похожая опция Options/Set Config/Genesis/Auto fix Checksums. Это защита, срабатывающая при неправильной контрольной сумме ROM'a.
Не вдаваясь в технические подробности скажу, что для РОМов Сеги существует несколько форматов, самые распространённые это SMD и BIN. Запустите программу GenRomSuite и определите формат вашего РОМа и, если надо, перекодируйте его (на моей практике это встречалось один раз с игрой Cyber Cop)
Если ничего не помогает, то прочитайте документацию к патчу, а если совсем ничего не помогает, то пишите мне.

SNES
Тут всё посложнее, так как кроме нескольких форматов есть ещё и HEADER (заголовок ROM'a). Поэкспериментируйте: запустите SNESTOOLS и попробуйте удалить или наоборот добавить его. Как правило всё начинает работать. (HEADER имеет размер 512 байт, поэтому сверьтесь с документацией)
Форматы. Их много, но как правило, все патчи выпускаются для формата SMC, реже для FIG,... Это связано с тем, что почти все РОМы в сети имеют формат SMC. Если в сети существует альтернатива (например небезызвестная игра TALES OF PHANTASIA в сети существует в обоих форматах), то патчи выпускаются для обоих форматов. Как перекодировать форматы РОМов SNES я вам не скажу - всё равно запутаетесь.
Если ничего не помогло, то ещё раз внимательно прочитайте документацию к патчу.

Nintendo 64

1. Запомните раз и навсегда: ФОРМАТ IPS корректно работает с файлами, размер которых не превышает 16 Мб! Для работы с большими РОМами используйте программу xSApply, которая уже входит в комплект с патчем и другими утилитами.
Создание патчей.

Для этой цели подойдут программы mkips (dos) и IPSEXE v.1.5 для windows. Остановимся на последней поподробнее.

Запускаем ips2exe.
Description - краткое описание патча размером до 256 байт. Здесь как правило указывается точное название РОМа и информация о патче и его авторе.
Files - укажите здесь пути к оригинальному и изменённому файлу соответственно.
* Так же есть возможность сделать исполняемый EXE файл из патча (Create EXE Patch from existing IPS file)
Save as - указываем в каком виде будет сохранён наш патч (по-правилам желательно в обоих)
Next - Когда всё готово, жмём эту кнопку и пишем имя для своего патча. При необходимости меняем с exe на ips и жмём ещё раз next.

Описание запутанное, но в принципе всё понятно.

Изображение