Приставки > Картриджи / диски

Конструктор многоигровых ROM'ов для картриджей COOLBOY

<< < (44/45) > >>

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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии