Приставки > Картриджи / диски
Конструктор многоигровых ROM'ов для картриджей COOLBOY
Cluster:
Обновление тут.
Наконец-то я довёл до ума и выложил в паблик свой конструктор многоигровых 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 можно вот этим дампером.
Sharpnull:
--- Цитата: woddy от 02 Июнь 2025, 16:18:32 ---отпаял и прочитал программатором
--- Конец цитаты ---
Работает как 268.3 в NintendulatorNRS, FCEUX. Заголовок рома вставил 4E 45 53 1A 00 00 C2 08 31 02 70 0C 00 00 00 2A.
woddy:
спасибо. и правда в FCEUX работает. У меня стоял Mesen в нем только меню, но после выбора игры краш.
осталось понять как это перезаписывать. Из интереса припаял флешку am29f016b (2мбайт 5 вольт), её дампер не распознает. может потому что бут кода для маппера нет
JRBVZ:
Похоже дампер не хочет работать с флэшками объемом меньше 128мбит, во всяком случае на запись.
Добавлено позже:
--- Цитата: woddy от 02 Июнь 2025, 17:26:49 ---осталось понять как это перезаписывать. Из интереса припаял флешку am29f016b (2мбайт 5 вольт), её дампер не распознает. может потому что бут кода для маппера нет
--- Конец цитаты ---
А какую команду вводил для записи? По идее должно быть типа этого:
famicom-dumper write-coolboy --mapper 268.3 --prg-size 2M --file coolboy.nes
mutabor:
--- Цитата: woddy от 02 Июнь 2025, 17:26:49 ---осталось понять как это перезаписывать.
--- Конец цитаты ---
Сравнил все дампы - и тут что-то совсем странное. В дампах как SMD133 дублируются 8КБ блоки, т.е. размер страницы MMC3, что намекает на некорректную работу с маппером - страницы не переключается или маппер ресетается. Но в дампе как MMC3 дублируются вообще блоки по 512 байт и это совсем какая-то хрень, т.к. маппер просто не адресует такие блоки - этот адрес идет напрямую со слота на память. И тут как бы можно подумать что этот адрес в дампере отгнил, но тогда почему при дампе как SMD133 оно нормально дампится? Мб был плохой контакт в слоте когда дампил как MMC3?
Короче тут всё сложно и непонятно, надо вдумчиво разбираться с исходниками и желательно с осциллом.
Там потом будет веселье с erase секторами и побайтовой записью, но это потом. Но блин дампиться то он должен. Если даже сдампить не получается - о перепрошивке дампером точно можно забыть.
Если уж отпаяли флешку - шейте программатором. Сборник собирать под маппер 268.3.
И кстати сделайте качественные фото платы без флешки.
woddy:
а это может быть. перечитал mmc3, crc отличается (читаю со второго карика, но они якобы идентичные, куплены вместе)
Добавлено позже:
--- Цитата: JRBVZ от 02 Июнь 2025, 18:27:58 ---А какую команду вводил для записи?
--- Конец цитаты ---
до записи не дошло
--- Код: --->famicom-dumper.exe info-coolboy
Famicom Dumper Client v3.4
(c) Alexey 'Cluster' Avdyukhin / https://clusterrr.com / clusterrr@clusterrr.com
Autodetected virtual serial port: COM7
Dumper initialization... OK
Dumper hardware version: 3.2
Dumper firmware version: 3.4
Reset... OK
ERROR: Can't enter CFI mode. Invalid flash memory? Broken cartridge? Is it inserted?
--- Конец кода ---
JRBVZ:
Дампер точно рабочий? Если взять другой кулбой и сдампить несколько раз, crc должны быть одинаковые. Если разные, значит дампер мозги компостирует, могут быть виноваты бу шифтеры.
woddy:
Других кулбоев нет. Оригинальные фамики и самодельные unrom, mmc1 (честные 5 вольт) читает корректно. Повторно читать CRC совпадает. Потому склоняюсь что прошлый раз когда читал ммс3 был плохой контакт.
Перечитал в режиме MMC3 несколько раз, картирдж доставал вставлял. crc файла разный из-за мусора в CHR RAM. но CRC блока PRG совпадает.
шифтеры да, с помойки прислал али. Но вроде отобрал живые
woddy:
добрался еще раз. купил другой кулбой SMD173C_L4 из соседней темы
итого если дампить в режиме --mapper 268.3 то оба картриджа дампятся корректно. дамп получается 32мб (не смотря на то что флешка 8мб). запускаются на эмуляторе fceux64
собирается и шьется тоже корректно на SMD173C_L4 . на первый картридж не шьется, ошибка очистки
UPD пересадил флешку с SMD173C_L4 на старый SMD168L8 - стал прошиваться в программаторе как положено
UPD2 На картридже флешка запитана через диод встроенный в sm133. Можно запитать нормально через линейник 1117-3.3. Для этого достаточно перерезать перемычку под надписью u1 с обратной стороны и запаять линейник так
Nikooone:
Ага.. судя из последних постов мне что-то подобное попалось SMD168L7 от 2023.11.28 по внешнему виду очень похоже по расположению сопротивлений как у автора из постов выше, он с разницей раслоложения PRG ОЗУ, у меня оно с обратной стороны.
Изначально это просто 3х игровка из серии марио/2/3.
Приколы начались когда собрал старой версией сборщика файл где еще "МНОГОИГРОВКА", прошил ПЗУ (программатором с отпайкой, предварительно сняв дамп, прикрепил в архиве). Включаю - есть меню :nyam: выбираю игру :-\ всё повисло.. Выкл/вкл консоль - битая графика, выбираю что либо, пишет - несовместимая игра... Выбрал еще что-то наугад вовсе повисло и картридж окирипичился.
Почитал тут и нашел подобное поведение и начал искать свежую версию мейкера, нашел... поправил в файле Makefile строчку с субмаппером исправив 0 на 3, собрал ром, отпаял флешку, прошил, припаял, включаю :jumpy: есть меню :shifty: выбираю любую игру :facepalm: а происходит условно сброс :wall:
Чо делать люди добрые!??? :surrender:
И что за загадочные R2(J2) J4 J1? Есть какое либо описание понятным языком, кроме как "J2" - регистры.... (кого чего... :neznayu:)
Yoti:
--- Цитата: Nikooone от 13 Июль 2025, 19:52:59 ---И что за загадочные R2(J2) J4 J1? Есть какое либо описание понятным языком, кроме как "J2" - регистры.... (кого чего... )
--- Конец цитаты ---
Внятное описание есть в учебнике радиоэлектроники. Ну или в каких-нибудь статьях в Интернете. Первая буква радиоэлемента (Резистор, ДЖампер и т.д.) и его порядковый номер.
Nikooone:
--- Цитата: Yoti от 13 Июль 2025, 20:49:05 ---Внятное описание есть в учебнике радиоэлектроники. Ну или в каких-нибудь статьях в Интернете. Первая буква радиоэлемента (Резистор, ДЖампер и т.д.) и его порядковый номер.
--- Конец цитаты ---
Ну да)) прям и не поспоришь :biggrin:
mutabor:
--- Цитата: Nikooone от 13 Июль 2025, 19:52:59 ---прошил, припаял, включаю :jumpy: есть меню :shifty: выбираю любую игру :facepalm: а происходит условно сброс :wall:
--- Конец цитаты ---
А оригинальный ром то запускался? Дамп запускается как mapper268.3, т.е. вроде как должно работать, т.е. надо фиксить сборщик. Для начала попробуй отключить сейвы.
--- Цитата: Nikooone от 13 Июль 2025, 19:52:59 ---И что за загадочные R2(J2) J4 J1?
--- Конец цитаты ---
Даташит на smd133 есть в инете, можешь посмотреть куда идут дорожки на плате. Но по идее должно работать, если конечно ничего не перепаивал.
Nikooone:
--- Цитата: mutabor от 14 Июль 2025, 00:09:26 ---А оригинальный ром то запускался?
--- Конец цитаты ---
Да залил обратно его, работает. Ну закинул его до вдохновения, была мысль всёж старым сборщиком собрать ром, и отцепить WE от маппера и посмотреть что получится, но опять таки каждый раз монтаж демонтаж пзу уже поднадоел.
Про сохран - гляну, но кажется он и так откл.
Добавлено позже:
--- Цитата: mutabor от 14 Июль 2025, 00:09:26 ---Дамп запускается как mapper268.3
--- Конец цитаты ---
Вот это кстати странно)) вставлял заголовок из постов выше - у мне не поехало) ваше исправление не открывал пока хексом, позже гляну)))
JRBVZ:
На днях решил попробовать нынче модный вайб-кодинг :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/
Nikooone:
Прям с языка снял, какой день вынашиваю закинуть идею автору о графическом интерфейсе ПО, с возможностью выбора сабмаппера, выбора файлов на выходе, а то не очень то уж и удобно как мне показалось заставить собрать bin, т.к прошиваю обычным программатором. Ну а про конвертер картинок в заголовок у меня вовсе оперативка кончилась :D
Добавлено позже:
--- Цитата: JRBVZ от 17 Июль 2025, 18:01:50 ---оболочка для Makefile.
--- Конец цитаты ---
Ну неплохо :thumbup:
ded_rubyroid:
Подскажите по вот такому картриджу - 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:
--- Цитата: ded_rubyroid от 11 Октябрь 2025, 23:49:01 ---это китайцы пропатчили игры и записали
--- Конец цитаты ---
Contra и Jackal в этом дампе на MMC3. Скорее всего все на MMC3.
ded_rubyroid:
--- Цитата: Sharpnull от 12 Октябрь 2025, 00:32:29 ---Contra и Jackal в этом дампе на MMC3. Скорее всего все на MMC3.
--- Конец цитаты ---
Благодарю! :thumbup:
MS_Logging:
--- Цитата: JRBVZ от 17 Июль 2025, 18:01:50 ---На днях решил попробовать нынче модный вайб-кодинг :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:
Программа не может найти make.exe, посмотри есть ли такой файл в msys64\usr\bin. Если нет, то косяк с установкой msys2
Навигация
Перейти к полной версии