Разработка и ромхакинг > Инструменты
Sega_Genesis_Patch_Manager_v4.0
drakula1912:
## Sega Genesis / Mega Drive Patch Manager v4.0 (15 мая 2026)
**Sega Genesis / Mega Drive Patch Manager** — это программа для наложения IPS‑патчей на игры Sega Genesis / Mega Drive. **Это последняя и самая актуальная версия на данный момент.**
**Основные возможности:**
* Быстрое и безопасное применение одного или нескольких патчей к одному ROM‑файлу.
* Поддержка форматов ROM: `.bin`, `.smd`, `.gen`, `.md`.
* Не требует установки Python — готова к использованию сразу после скачивания.
* Оригинал ROM не повреждается (копируется во временный файл).
* Встроенный парсер IPS поддерживает обычные и RLE‑сжатые патчи.
**Важные особенности:**
* Автоматическое исправление контрольной суммы после наложения патчей (предотвращает появление красного, чёрного или синего экрана при запуске игры).
* **Ключевое замечание:** красного экрана в большинстве случаев не будет, если не снимать галочку **«Исправить контрольную сумму»**.
* Экспериментальный обход защиты Electronic Arts (замена JSR+BNE на NOP) — может помочь запустить некоторые игры EA (работоспособность не гарантируется).
Пошаговая инструкция:
1. 📁 **Выберите папку с ROM** — либо укажите путь к папке, либо перетащите файл прямо в окно программы.
2. 🗂️ **Добавьте патчи** — можно добавить целую папку с патчами или отдельные файлы.
3. ✅ **Отметьте нужные патчи галочками** в списке.
4. 📝 **Выберите имя выходного файла** из выпадающего списка:
* оригинальное имя игры (из заголовка ROM);
* имя любого из отмеченных патчей.
5. 🖱️ **Нажмите кнопку «Применить патчи»** — программа начнёт обработку.
Версия 4.0 — это **осознанное упрощение и подготовка к международному релизу**.
**Основные нововведения:**
- 🌐 **Объединение языков в одной программе** — больше не нужно скачивать отдельные русскую и английскую версии. Язык выбирается при запуске.
- 🪟 **Плавающее окно контрольных сумм** — CRC32 и SHA1 можно вынести в отдельное окно, которое всегда видно.
- 💾 **Два режима сохранения**:
* сохранить результат в выбранную папку;
* сохранить рядом с оригинальным ROM (с другим именем, оригинал не перезаписывается).
- 📝 **Экспорт лога** — все сообщения программы можно сохранить в текстовый файл.
- 💾 **Проверка свободного места** на диске (не менее 100 МБ) перед началом работы.
- 🔒 **Экспериментальный обход защиты EA** (замена JSR+BNE на NOP).
- 🔄 **Кнопка «Вернуть сохранённые пути»** — очищает временные данные от перетаскивания и возвращает к последним сохранённым путям из конфигурации.
- 🧩 **Улучшенный мастер первого запуска** — теперь его можно пропустить, и он запоминает уже выбранные папки.
- ⚫ **Настройка для отключения автовыбора последних папок** — в версии 3.0 автовыбор был всегда включён, теперь его можно отключить.
- 🤲 **Порядок патчей** теперь задаётся через диалог с перетаскиванием (drag & drop) вместо галочек.
- 🗑️ **Автоматическое резервное копирование** убрано — не нужно, так как оригинал ROM никогда не изменяется.
- 📊 **Анализ конфликтов патчей** (HTML‑отчёты, проценты совместимости) **удалён** — эта функция тормозила разработку и работала нестабильно. Автор планирует вернуть её в будущем в более качественном виде.
- ⚡ **Общая оптимизация кода** — программа стала быстрее и стабильнее.
| Версия | Дата выхода | Основные изменения |
|--------|-------------|--------------------|
| **3.0** | 1 августа 2025 | Мастер первого запуска, конфигурация в config.ini, выбор папки с ROM и выпадающий список ROM‑файлов, полноценный анализ конфликтов с HTML‑отчётами, вкладки «Контрольные суммы» и «Лог», Drag & Drop, настройки (отключение имени из ROM, автозамена, скрытие логов), запоминание последних папок (всегда включено), отдельные сборки для русского и английского языков. |
| **4.0** | 15 мая 2026 | Объединение языков в одной программе, плавающее окно контрольных сумм, два режима сохранения, экспорт лога, проверка свободного места, экспериментальный обход защиты EA, кнопка «Вернуть сохранённые пути», улучшенный мастер первого запуска (можно пропустить), настройка отключения автовыбора папок, порядок патчей через диалог с перетаскиванием (вместо галочек), автоматическое резервное копирование убрано, анализ конфликтов удалён (будет доработан позже), общая оптимизация. |
- **Drakula1912** — главный идеолог программы, тестировщик. Познакомился с нейросетями и загорелся идеей перевести простой bat‑файл в полноценный графический инструмент.
- **DeepSeek** — нейросеть, полностью реализовавшая программу на основе идей и требований автора.
- **uuuser** — создатель первого bat‑файла для наложения патчей, тестировщик, помогает советами по программированию, подсказывает, как улучшить реализацию функций.
- **Sharpnull** — тестировщик, предлагал идеи для некоторых функций, которые сейчас присутствуют в программе.
- **Ramzet** — тестировщик (не программист), предлагал некоторые решения, в том числе идею отображать номер версии и дату выпуска в заголовке окна.
Скачайте последнюю версию Sega Mega Drive Patch Manager (версия 4.0):
**[Скачать Sega Genesis / Mega Drive Patch Manager v4.0](https://disk.yandex.ru/d/zNaVSXGUe5TGZA)**
**Информация о файле:**
* Название: sega-mega-drive-patch-manager-v4.0.zip
* Платформа: Windows 10/11 (x64)
* Дата выпуска: 15 мая 2026 года
* Формат архива: ZIP
* Размер: 35 МБ
* Внутри архива: исполняемый файл программы
Mad:
Чем обусловлено ограничение только Сегой? Почему это не просто какой-нибудь Retro IPS patch Applier? :?
drakula1912:
Программа создавалась для применения большинства патчей к игре Streets of Rage 2. Я не играю в другие платформы, и я не знаю, где можно жонглировать патчами на других платформах.
Добавлено позже:
Важное уточнение: программа была полностью написана и адаптирован весь код с помощью нейросетей.
Mr2:
--- Цитата: drakula1912 от 26 Ноябрь 2024, 12:09:20 ---Sega Genesis Patch Applier — это мощный инструмент для модификации игр Sega Genesis
--- Конец цитаты ---
А чего это он такой тяжёлый, 32 Мб? :?
drakula1912:
--- Цитата: Mr2 от 26 Ноябрь 2024, 16:22:49 ---А чего это он такой тяжёлый, 32 Мб? :?
--- Конец цитаты ---
Программа написана на питоне, и скрипт упакован каким образом со всеми зависимостями, которые нужны для работы программы.
Sharpnull:
--- Цитата: drakula1912 от 26 Ноябрь 2024, 12:25:32 ---Я не играю в другие платформы, и я не знаю, где можно жонглировать патчами на других платформах
--- Конец цитаты ---
Везде так можно, только контрольная сумма у вас для MD ромов, поэтому нужно проверять расширение файла или уточнить. Для SNES ромов сложнее, ромы могут быть с заголовком и патчи могут требовать заголовок, программно определить патч не получится (в лучшем случае эвристика).
Замечания. Нет проверки конфликта патчей, для такой программы необходимо, хотя это не гарантирует совместимость. Нельзя перетащить ром из Проводника, чтобы не нажимать "Выбрать ROM файл"; IPS-патчи тоже можно было бы перетаскивать, определяя их по расширению; когда папка для вывода не выбрана можно использовать путь до входного рома. Для выбора языка сделать кнопку "Язык/Language" вместо двух EXE, по умолчанию язык Windows. Стоило бы выложить исходный код, чтобы не было распаковки 80 МиБ при каждом раз, которая занимает заметное время (у меня SSD), к тому же написано на PyQt, можно запускать в Linux, macOS. UPD: Обращение по имени учётной записи Windows не стоит использовать.
drakula1912:
--- Цитата: Sharpnull от 26 Ноябрь 2024, 16:32:27 ---Везде так можно, только контрольная сумма у вас для MD ромов, поэтому нужно проверять расширение файла или уточнить. Для SNES ромов сложнее, ромы могут быть с заголовком и патчи могут требовать заголовок, программно определить патч не получится (в лучшем случае эвристика).
Замечания. Нет проверки конфликта патчей, для такой программы необходимо, хотя это не гарантирует совместимость. Нельзя перетащить ром из Проводника, чтобы не нажимать "Выбрать ROM файл"; IPS-патчи тоже можно было бы перетаскивать, определяя их по расширению; когда папка для вывода не выбрана можно использовать путь до входного рома. Для выбора языка сделать кнопку "Язык/Language" вместо двух EXE, по умолчанию язык Windows. Стоило бы выложить исходный код, чтобы не было распаковки 80 МиБ при каждом раз, которая занимает заметное время (у меня SSD), к тому же написано на PyQt, можно запускать в Linux, macOS. UPD: Обращение по имени учётной записи Windows не стоит использовать.
--- Конец цитаты ---
Спасибо за предложение по поводу улучшения программы.
Для меня программа сейчас работает идеально.
По поводу языков нейросеть говорит, что мне нужно переписать полпрограммы. Я не собираюсь переписывать полпрограммы для выбора языков, мне это не нужно.
По поводу исходного кода могу предоставить, если интересно. Я занимаюсь программой, пока есть настроение и время. Настроения сейчас нет. У меня не было даже в мыслях добавлять другие платформы, поскольку я не понимаю, как работает патч для других платформ.
Редактировать сообщение.
Редактировать сообщение.
Sharpnull:
--- Цитата: drakula1912 от 26 Ноябрь 2024, 17:30:09 ---По поводу языков нейросеть говорит, что мне нужно переписать полпрограммы
--- Конец цитаты ---
Везде где текст нужно добавлять tr или как там делается в Qt. Можно сделать проще и некрасиво как я делал для tkinter приложения. Для динамического текста функция выбирающая текст: def fun1(f, s): return f if current_lang == 0 else s и использование print(fun1("Открыть", "Open")). Для пунктов меню и других виджетов две отдельные функции, я указывал в функции объект в котором изменить текст (типа fun2("Открыть", "Open", obj)), он сохранялся в словаре, где ключ - основной текст, значение - другой перевод и список объектов с таким текстом, потом остаётся пройтись по объектам для изменения текста.
--- Цитата: drakula1912 от 26 Ноябрь 2024, 17:30:09 ---По поводу исходного кода могу предоставить, если интересно
--- Конец цитаты ---
Мне не нужно, но для остальных может пригодиться.
--- Цитата: Yoti от 26 Ноябрь 2024, 16:36:40 ---Для игр, которые выходили в 90-ых годах.
--- Конец цитаты ---
Современные инструменты разработки требуют новых версий ОС. На Python + tkinter я делал для WinXP когда-то, приходилось отказаться от некоторых возможностей языка. Чтобы сделать для WinXP с размером файла меньше 1 МиБ нужно использовали древний софт или мучиться с программированием на C/C++. Можно для Web, но там свои ограничения и работать с файлами неудобно.
drakula1912:
--- Цитата: Yoti от 28 Ноябрь 2024, 02:39:24 ---В смысле "тебе"? Это же сеть всё сделала. :wow:
--- Конец цитаты ---
Ты думаешь, оно так просто, я не являюсь программистом совсем?
Меня в данный момент программа полностью устраивает, на данном этапе я собираю баги, ошибки текущей версии, чтобы массово их исправить через нейросеть.
Багов немного нашлось, основные баги были исправлены во 2 версии.
Баги не критичные, если баг будет критичен, я буду мучить нейросеть до тех пор, пока баг не исправится.
Добавлено 1 декабря 2024 года:
--- Цитата: perfect_genius от 01 Декабрь 2024, 02:16:32 ---Ты только слишком не дави на неё, а то они потом тебе припомнят.
--- Конец цитаты ---
Это уже готовая программа, не то что раньше, когда я эту программу только превращал в программу из батника. Прошло то время, когда я на программу тратил по 10 часов в день, чтобы нейросети объяснить, что я конкретно хочу. Вы как видите, у меня всё получилось.
Sharpnull:
Кстати, попалась на глаза Advanced Patch Conflict Finder (https://www.romhacking.net/utilities/1386/), не очень удобная, но конфликты показывает (отображаются как промежутки с несколькими файлами).
drakula1912:
--- Цитата: Sharpnull от 03 Декабрь 2024, 17:22:23 ---Кстати, попалась на глаза Advanced Patch Conflict Finder (https://www.romhacking.net/utilities/1386/), не очень удобная, но конфликты показывает (отображаются как промежутки с несколькими файлами).
--- Конец цитаты ---
я решил Слегка модифицировать первоначальный батник, пока добавил только все все расширения, с которыми работает Sega Genesis.
Дальше в планах избавиться от внешних программ, у меня в голове, как батник окончательно выглядит, как он должен выполнять то же самое, только в виде командной строки, с русским языком на операционных системах, кроме Windows 10, проблемы, но с английским всё хорошо, так что будет 2 версии: русская и английская.
Беларус:
Сколько она весит теперь? 60 мегабайт?
Раз поддерживает и ромы Mega Drive, то почему упоминается только Genesis?
Название темы надо бы переименовать теперь в [SMD] Patch Applier by drakula1912 или хотя бы в Sega Genesis Patch Applier by drakula1912.
drakula1912:
--- Цитата: Sharpnull от 03 Декабрь 2024, 17:22:23 ---Кстати, попалась на глаза Advanced Patch Conflict Finder (https://www.romhacking.net/utilities/1386/), не очень удобная, но конфликты показывает (отображаются как промежутки с несколькими файлами).
--- Конец цитаты ---
Сегодня будет обновление программы, я что-то похожее в ней реализовал.
Добавлено 15 марта 2025 года:
версия 25 уже готова завтра выложу она уже собрана только загрузить и описание осталось
Patch Applier by drakula1912ru.2.5Версия 2.5 уже готова, завтра выложу, она уже собрана, только загрузить и описание осталось.
Добавлено 17 марта 2025 года:
--- Цитата: drakula1912 от 26 Ноябрь 2024, 17:30:09 --- Спасибо за предложение по поводу улучшения программы.
Для меня программа сейчас работает идеально.
По поводу языков нейросеть говорит, что мне нужно переписать полпрограммы. Я не собираюсь переписывать полпрограммы для выбора языков, мне это не нужно.
По поводу исходного кода могу предоставить, если интересно. Я занимаюсь программой, пока есть настроение и время. Настроения сейчас нет. У меня не было даже в мыслях добавлять другие платформы, поскольку я не понимаю, как работает патч для других платформ.
Редактировать сообщение.
Редактировать сообщение.
--- Конец цитаты ---
Я выложил новую версию, у меня есть только 1 вопрос по форуму: как мне удалить старый скриншот из темы.
ghostdog3:
drakula1912, какой именно? Вижу в первом сообщении 7 скринов. Если не получается редактировать старое сообщение, напишите, какие именно картинки удалить или на какие новые картинки их заменить (можно написать прямо в тему или мне в личные сообщения).
drakula1912:
--- Цитата: ghostdog3 от 18 Март 2025, 00:44:59 ---drakula1912, какой именно? Вижу в первом сообщении 7 скринов. Если не получается редактировать старое сообщение, напишите, какие именно картинки удалить или на какие новые картинки их заменить (можно написать прямо в тему или мне в личные сообщения).
--- Конец цитаты ---
Спасибо, я разобрался.
s1nka:
Я сейчас без критики, просто улыбнуло.
> патчер ips
> код написан нейросетью
> 30 мегабайт exe-файл
> нет понимания как работает ips
> нет понимания кода
> автор не спорит с нейросетями
Будущее которое мы заслужили. :)
з.ы. а можно питоноский код? Чтобы можно было на других ОС запускать
drakula1912:
--- Цитата: s1nka от 22 Март 2025, 09:24:55 ---Я сейчас без критики, просто улыбнуло.
> патчер ips
> код написан нейросетью
> 30 мегабайт exe-файл
> нет понимания как работает ips
> нет понимания кода
> автор не спорит с нейросетями
Будущее которое мы заслужили. :)
з.ы. а можно питоноский код? Чтобы можно было на других ОС запускать
--- Конец цитаты ---
для программы которая родилась из батника это более менее нормально
в 1 версиях которые не были публичными у программы были еще зависимости она работала с помощью другого патчера через который эта программа
выступала в качестве оболочки
весит она много потому что она упакована в исполняемый файл со всеми библиотеками
я честно не знаю насчет исходного кода чтобы не получилась куча потом похожих программ на мою
Редактировать сообщение
Sharpnull:
--- Цитата: s1nka от 22 Март 2025, 09:24:55 ---30 мегабайт exe-файл
--- Конец цитаты ---
Пора бы привыкнуть, что программа с GUI на современных фреймворках/библиотеках весит много. Размер 33.8 МиБ в запакованном exe, реальный размер 82 МиБ из них 66.8 МиБ - PyQt6. Если бы выложили .py скрипт, то можно было бы сэкономить место, когда много программ с использованием PyQt6.
К слову, Хеллоу ворды на хромиум движке весят от 100 МиБ, у Steam CEF занимает 624 МиБ, в Epic Games Launcher - 502 МиБ, Ubisoft Connect - 160 МиБ, GOG Galaxy - 100 МиБ. Для маленького размера используют "древние" технологии или специальные способы (например, для open source Qt можно скомпилировать статически). С GUI вообще беда, одно хуже другого.
--- Цитата: drakula1912 от 22 Март 2025, 11:54:51 ---я честно не знаю насчет исходного кода чтобы не получилась куча потом похожих программ на мою
--- Конец цитаты ---
Не так чтобы много кому это нужно было. В чём проблема похожих программ? Допустим, вы забрасываете разработку, а человеку что-то неудобно, что не хватает или есть баг, ему придётся писать программу заново вместо изменения существующей.
UPD:
--- Цитата: s1nka от 22 Март 2025, 09:24:55 ---нет понимания как работает ips
--- Конец цитаты ---
Нужно убрать Sega Genesis из названия программы, добавить проверку на расширение файлы, чтобы Fix checksum работал только для MD ромов. Ещё нет поддержки .smd файлов, этот формат (если файл правильно назван) отличается от bin (он же gen, md - другие расширения, а не формат), тогда Fix checksum не нужно давать применить, для определения можно посмотреть код ucon64.
UPD2: Также можно улучшить: проверка совместимости патчей без выбора рома; вместо написания "1.ips и 2.ips конфликтуют по адресу" для каждого адреса, перечислить адреса для каждой пары патчей; когда не выбран патч или выбран один патч, нужно сделать неактивной кнопку "Сравнить адреса патчей" вместо "Ошибка Выберите патчи для сравнения." после нажатия, с "Открыть папку вывода" та же история. Поддержки перетаскивания файлов всё ещё нет.
Беларус:
s1nka, это ещё не будущее, это его начало :)
А что значит вот это?
--- Цитата: s1nka от 22 Март 2025, 09:24:55 ---автор не спорит с нейросетями
--- Конец цитаты ---
А как же его?:
--- Цитата: drakula1912 от 28 Ноябрь 2024, 13:09:27 ---я буду мучить нейросеть до тех пор, пока баг не исправится.
--- Конец цитаты ---
Sharpnull, ты и раньше писал в мебибайтах? Я что-то не замечал. В них удобнее считать? На Хабре есть такой автор текстов (atomlib), неужели это ты? :)
Sharpnull:
--- Цитата: perfect_genius от 23 Март 2025, 15:06:01 ---На Хабре есть такой автор текстов (atomlib), неужели это ты?
--- Конец цитаты ---
Я слишком тупой, чтобы писать на Хабре. Иногда пишу МиБ для точности, но не всегда, т. е. когда пишу МБ значит или 10^6, или 2^20. К слову, меня однажды удивило, что в телефонах ОЗУ может быть по основанию 10,а не 2 как на ПК, но я не нашёл простого способа узнать точно, вроде программно можно получить размер в байтах.
Навигация
Перейти к полной версии