Автор Тема: Конструктор многоигровых ROM'ов для картриджей COOLBOY  (Прочитано 109936 раз)

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

Оффлайн Cluster

  • Пользователь
  • Сообщений: 67
    • Twitter
    • ВКонтакте
    • Просмотр профиля
Обновление тут.

Наконец-то я довёл до ума и выложил в паблик свой конструктор многоигровых ROM'ов для картриджей COOLBOY (и клонов):

Исходники: https://github.com/ClusterM/coolboy-multirom-builder
Вот тут можно скачать релизы: https://github.com/ClusterM/coolboy-multirom-builder/releases

Пожалуйста, поправьте там мой корявый английский в документации, если кому не сложно.

Возможности:
  • Умеет собирать ROM'ы-многоигровки вмещающие до 768 игр, которые потом можно записать на дешёвые китайские картриджи COOLBOY
  • Автоматически создаёт меню для выбора игр
  • Может автоматически сортировать игры в меню по алфавиту, если нужно
  • Позволяет использовать свою собственную картинку в меню сверху
  • На новых картриджах, которые перезаписываются без пайки, меню сохраняет последнюю выбранную игру и до 15 отдельных батареечных сохранений
  • Поддерживается много разных версий картриджей
  • Меню имеет встроенные аппаратные тесты
  • Меню может показывать информацию о сборке и железе, если при включении зажать SELECT
  • Позволяет добавлять несколько скрытых ROM'ов для запуска комбинациями кнопок или через Konami Code

Принцип работы:
  • Создаём текстовый файл с именами файлов и/или директориями, содержащими ROM'ы. При желании можно указать там же, как игры будут называться в меню.
  • Запускаем утилиту CoolboyCombiner.exe с опцией "prepare", она автоматически распределит данные игр наилучшим способом и создаст файлы "games.asm" и "offsets.xml" (имена могут отличаться). Первый содержит данные для запуска игр, а второй адреса этих игр в итоговом ROM'е.
  • Компилируем "menu.asm", используя nesasm. Я использую свою собственную модификацию nesasm: https://github.com/ClusterM/nesasm. Он создаст .nes файл с меню для выбора игр.
  • После этого нужно совместить меню и сами игры на основе данных из XML файла сгенерированного выше, для этого запускаем "CoolboyCombiner.exe" уже с опцией "combine".
  • Всё.

Рядовому пользователю не нужно сильно в это всё вникать, т.к. набор сопровождается файлом Makefile для утилиты Make и файлом "!build_rom.bat", они автоматизируют процесс. Просто отредактируйте файл "games.list" и запустите "!build_rom.bat" (для пользователей Windows).

Подробнее можно почитать на английском по ссылке выше.

Если кому не жалко, можете поддержать меня донатом: http://clusterrr.com/donation/
А то я кучу времени на всё это убил.

PS А заливать в CoolBoy можно вот этим дампером.
« Последнее редактирование: 04 Декабрь 2022, 20:55:41 от HardWareMan »

Оффлайн Nikooone

  • Пользователь
  • Сообщений: 1003
  • Пол: Мужской
    • Просмотр профиля
Внятное описание есть в учебнике радиоэлектроники. Ну или в каких-нибудь статьях в Интернете. Первая буква радиоэлемента (Резистор, ДЖампер и т.д.) и его порядковый номер.

Ну да)) прям и не поспоришь  :biggrin:

Оффлайн mutabor

  • Пользователь
  • Сообщений: 419
    • Просмотр профиля
прошил, припаял, включаю  :jumpy: есть меню  :shifty: выбираю любую игру  :facepalm: а происходит условно сброс  :wall:
А оригинальный ром то запускался? Дамп запускается как mapper268.3, т.е. вроде как должно работать, т.е. надо фиксить сборщик. Для начала попробуй отключить сейвы.
И что за загадочные R2(J2) J4 J1?
Даташит на smd133 есть в инете, можешь посмотреть куда идут дорожки на плате. Но по идее должно работать, если конечно ничего не перепаивал.

Оффлайн Nikooone

  • Пользователь
  • Сообщений: 1003
  • Пол: Мужской
    • Просмотр профиля
А оригинальный ром то запускался?
Да залил обратно его, работает. Ну закинул его до вдохновения, была мысль всёж старым сборщиком собрать ром, и отцепить WE от маппера и посмотреть что получится, но опять таки каждый раз монтаж демонтаж пзу уже поднадоел.
Про сохран - гляну, но кажется он и так откл.

Добавлено позже:
Дамп запускается как mapper268.3
Вот это кстати странно)) вставлял заголовок из постов выше - у мне не поехало) ваше исправление не открывал пока хексом, позже гляну)))
« Последнее редактирование: 14 Июль 2025, 01:36:22 от Nikooone »

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 556
    • Просмотр профиля
На днях решил попробовать нынче модный вайб-кодинг  :biggrin: В результате мучения чатгпт родилась небольшая программа-оболочка для Makefile. Работает как с Coolboy Builder так и Coolgirl Builder.

295688-0

Для работы требуются установленные .NET 6.0 https://dotnet.microsoft.com/ru-ru/download/dotnet/6.0 и MSYS2 https://www.msys2.org/docs/installer/

Оффлайн Nikooone

  • Пользователь
  • Сообщений: 1003
  • Пол: Мужской
    • Просмотр профиля
Прям с языка снял, какой день вынашиваю закинуть идею автору о графическом интерфейсе ПО, с возможностью выбора сабмаппера, выбора файлов на выходе, а то не очень то уж и удобно как мне показалось заставить собрать bin, т.к прошиваю обычным программатором. Ну а про конвертер картинок в заголовок у меня вовсе оперативка кончилась  :D


Добавлено позже:
оболочка для Makefile.
Ну неплохо :thumbup:
« Последнее редактирование: 19 Июль 2025, 00:13:16 от Nikooone »

Оффлайн ded_rubyroid

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Подскажите по вот такому картриджу - SMD173C_L4. Я так понимаю что это coolboy.
Читается и пишется дампером от Кластера хорошо. На сколько я знаю coolboy поддерживает только mmc3 маппер. Кластер на гитхабе писал - "COOLBOY supports games with NROM (mapper #0) and MMC3 (mapper #4) mappers only".
Но я вижу что на нём китайцы записали такие игры как Jackal, Contra и т.д, котрые требуют других мапперов.
Вопрос, это китайцы пропатчили игры и записали, или сам картридж поддреживает больше мапперов?
Дамп и фото приложил.
Дампил вот так - famicom-dumper dump --mapper mappers/AA6023Sub3.cs --prg-size 32M --file coolboy.nes --prg-nvram-size 8K --chr-ram-size 256K

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5662
    • Просмотр профиля
это китайцы пропатчили игры и записали
Contra и Jackal в этом дампе на MMC3. Скорее всего все на MMC3.

Оффлайн ded_rubyroid

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Contra и Jackal в этом дампе на MMC3. Скорее всего все на MMC3.
Благодарю!  :thumbup:

Оффлайн MS_Logging

  • Пользователь
  • Сообщений: 16
    • Просмотр профиля
На днях решил попробовать нынче модный вайб-кодинг  :biggrin: В результате мучения чатгпт родилась небольшая программа-оболочка для Makefile. Работает как с Coolboy Builder так и Coolgirl Builder.

(Ссылка на вложение)

Для работы требуются установленные .NET 6.0 https://dotnet.microsoft.com/ru-ru/download/dotnet/6.0 и MSYS2 https://www.msys2.org/docs/installer/

⚠️ Ошибки:
/usr/bin/bash: line 1: make: command not found

❌ Код выхода: 127

вот такой результат. )

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 556
    • Просмотр профиля
Программа не может найти make.exe, посмотри есть ли такой файл в msys64\usr\bin. Если нет, то косяк с установкой msys2

Оффлайн MS_Logging

  • Пользователь
  • Сообщений: 16
    • Просмотр профиля
добавил с помощью "pacman -S make"  ошибки нет больше  :thumbup:

Оффлайн Redskiner

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
извините за (возможно) тупой вопрос, а как на Coolboy записать одну игру без меню?

Оффлайн mutabor

  • Пользователь
  • Сообщений: 419
    • Просмотр профиля
Смотря какой карик и какая игра. Маппер стартует в режиме MMC3-512, так что если на карике CHR RAM и игра требует CHR RAM то достаточно задублировать дамп до 512кб и записать на флешку. Если игра требует CHR ROM то либо искать карики с CHR ROM (иногда встречаются) либо делать загрузчик который загрузит CHR из PRG и запустит игру.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5662
    • Просмотр профиля
извините за (возможно) тупой вопрос, а как на Coolboy записать одну игру без меню?
Если в games.list указан только один ром, то меню не появляется, Cluster гений :)

Оффлайн Redskiner

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Смотря какой карик и какая игра.
платка такая же, как и парой постов выше SMD173C_L4 . Игра любая на 4 маппере. Просто задался таким вопросом на будущее. Мало ли

Добавлено позже:
Если в games.list указан только один ром, то меню не появляется, Cluster гений :)
спасибо, попробую
UPD Кластер, конечно гений, но нет. Чёрный экран при попытке собрать мультиром с одной игрой. Как прописать отключить (не создавать) меню в батнике?
« Последнее редактирование: 05 Февраль 2026, 00:38:48 от Redskiner »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5662
    • Просмотр профиля
Чёрный экран при попытке собрать мультиром с одной игрой. Как прописать отключить (не создавать) меню в батнике?
Скорее всего проблема на вашей стороне. Странно, если у вас сборка с 1 ромом не запускается, а с 2+ ромами запускается, но вы не написали проверяли ли 2+ ромы (вместе с их запуском), какой ром тестировали, на чём запускали. Я проверял на эмуляторе v2.1, про железо вам другие расскажут. В bat-файле нельзя прописать что-то для отключения, в menu.asm (код меню) происходит проверка на кол-во игр и запускается 1-я игра сразу, если кол-во игр 1:

Оффлайн Redskiner

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Скорее всего проблема на вашей стороне. Странно, если у вас сборка с 1 ромом не запускается, а с 2+ ромами запускается, но вы не написали проверяли ли 2+ ромы (вместе с их запуском), какой ром тестировали, на чём запускали. Я проверял на эмуляторе v2.1, про железо вам другие расскажут. В bat-файле нельзя прописать что-то для отключения, в menu.asm (код меню) происходит проверка на кол-во игр и запускается 1-я игра сразу, если кол-во игр 1:
собирал до этого этой же последней версией coolboy-multirom-builder. Все мультиромы, от 4 игр и до 100+ спокойно запускаются и в Mesen-е (только меню) и в Fceux (все открываются и играются).
в gamelist оставил одну игру (Rockin' Cats, ром который до этого в мультиромах нормально запускался).

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 556
    • Просмотр профиля
Всё работает, в эмуле сразу стартует игра. Сабмаппер 0.

Оффлайн Redskiner

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Всё работает, в эмуле сразу стартует игра. Сабмаппер 0.
это прекрасно, но нам-то нужен для прошивки платки сабмаппер 1
UPD. Вообщем, попробовал я прошить изначально собранный ром, который не запустился в эмуляторах. На железе он работает.
« Последнее редактирование: 05 Февраль 2026, 16:12:33 от Redskiner »