Приставки > Картриджи / диски
Конструктор многоигровых 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 можно вот этим дампером.
woddy:
купил такой coolboy / mindkids
его каким маппером читать надо?
дампер от кластера 3.2, дамп пытается читать, но на эмуле не запускается.
и зачем ему два модуля RAM если нет батарейки? первый 32кб, второй 256кб
среди игр китайская версия танков с иероглифами, артефачит графика (память глючная?)
из хорошего RAM 5вольтовые все таки (оба)
JRBVZ:
Полагаю правая - это wram просто в tsop корпусе.
woddy:
справа BS62LV2000
Very Low Power/Voltage CMOS SRAM
256K X 8 bit
слева
HY62WT08081E Series
32Kx8bit CMOS SRAM
JRBVZ:
Перепутал, слева wram.
ЗЫ на батарейке сэкономили.
mutabor:
--- Цитата: woddy от 29 Май 2025, 13:25:16 ---его каким маппером читать надо?
--- Конец цитаты ---
По виду обычный карик на SMD133 (mapper 268), но возможно там новая версия, надо подобрать submapper. Должен шиться без перепайки.
--- Цитата: woddy от 29 Май 2025, 13:25:16 ---и зачем ему два модуля RAM если нет батарейки?
--- Конец цитаты ---
Некоторые игры требуют PRG RAM, но не поддерживают сохранения - например Марио 3 и вроде снейки. Ну и игры с сохранениями тоже разумеется требуют - как минимум можно будет начать играть.
woddy:
--- Цитата: mutabor от 29 Май 2025, 20:27:06 ---Должен шиться без перепайки
--- Конец цитаты ---
если я правильно вызвонил, то OE на маппер идет, WE на VCC 5V
JRBVZ:
Если WE флэшки точно сидит на +5В, то перемычка должна быть под врам, т.к. именно под нее уходит CPU_RW через переходное отверстие.
mutabor:
--- Цитата: woddy от 30 Май 2025, 05:45:38 ---если я правильно вызвонил, то OE на маппер идет, WE на VCC 5V
--- Конец цитаты ---
Хз конечно, но визуально он похож на этот https://www.emu-land.net/forum/index.php/topic,88077.msg1562388.html#msg1562388 , а он точно шьются (шил лично).
woddy:
Кому не лень, подскажите как такое прошивать?
OE и WE идут на маппер. это я ошибся сначала, не на питание все таки
Собрал билдером образ из пары игр. Пытаюсь прошить просто вставив в дампер
--- Код: --->famicom-dumper.exe write-coolboy --file multirom.nes --mapper 268
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
Device size: 8 MByte / 64 Mbit
WARNING: Secured Silicon Sector Protection Bit is set!
WARNING: Persistent Protection Mode Lock Bit is set!
WARNING: Password Protection Mode Lock Bit is set!
Erasing all PPBs... ERROR! PPB clear failed. Lets continue anyway.
Erasing sector #0... ERROR: Flash erase timeout
Lets try again
Reset... OK
Erasing sector #0... ERROR: Flash erase timeout
Lets try again
Reset... OK
Erasing sector #0... ERROR: Flash erase timeout
Lets try again
Reset... OK
Erasing sector #0... ERROR: Flash erase timeout
Lets try again
Reset... OK
Erasing sector #0... ERROR: Flash erase timeout
ERROR: Flash erase timeout
--- Конец кода ---
попробовал разные подверсии маппера 268.1,...268.5, разницы нет
припаял проводки от дампера к ногам OE WE. разницы нет
--- Код: --->famicom-dumper.exe info-coolboy-gpio
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?
>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
Primary algorithm command set and control interface ID code: 0002h
Alternative algorithm command set and control interface ID code: 0000h
Vcc logic supply sinimum program / erase voltage: 2.7v
Vcc logic supply maximum program / erase voltage: 3.6v
Vpp [programming] supply minimum program / erase voltage: 0.0v
Vpp [programming] supply maximum program / erase voltage: 0.0v
Typical timeout for single byte/word/D-word program: 16us
Typical timeout for maximum-size multi-byte program: 0us
Typical timeout for individual block erase: 1024ms
Typical timeout for full chip erase: 0ms
Maximum timeout for single byte/word/D-word program: 512us
Maximum timeout for maximum-size multi-byte program: 0us
Maximum timeout for individual block erase: 16384ms
Maximum timeout for full chip erase: 0ms
Device size: 8 MByte / 64 Mbit
Flash device interface: X8 and X16 via byte pin
Maximum number of bytes in multi-byte program: 1
Erase block region #0:
- Sectors size: 8192 Bytes
- Sectors count: 8
Erase block region #1:
- Sectors size: 65536 Bytes
- Sectors count: 127
WARNING: Secured Silicon Sector Protection Bit is set!
WARNING: Persistent Protection Mode Lock Bit is set!
WARNING: Password Protection Mode Lock Bit is set!
Done.
--- Конец кода ---
может джамперы какие-то нужны? они зачем на картридже?
JRBVZ:
Скорее всего софт не умеет шить данную влэшку.
mutabor:
Из даташита на MX29LV640D:
Sector Structure
- 8KB(4KW) x 8 and 64KB(32KW) x 127
Т.е. эта флешка с разным размером секторов - у неё 8 секторов на 8кб и 127 на 64 кб. Кластеровский софт не умеет такое шить.
И ещё, если работает детект размера флешки:
--- Цитата: woddy от 31 Май 2025, 16:47:45 ---Device size: 8 MByte / 64 Mbit
--- Конец цитаты ---
то аппаратно точно всё подключено верно и паять ничего не нужно - не мучайте карики.
Кстати каким дампером шьём? Сохранился ли дамп оригинальной прошивки карика?
woddy:
дампер кластера на стм32 с гитхаба (версия 3.2)
дамп пытался читать, что-то сохраняет, но на эмуляторе не запускается
mutabor:
А эмулятор точно поддерживает все сабмапперы, и в заголовке дампа все верно? Видимо там AA6023B. В принципе можно определить визуально по дампу - если там куча дублирующихся блоков - значит неверный маппер. Перебирать пока не сдампиться нормально. Ну а с прошивкой проблема, нужно допиловать софт.
Ну и до кучи как определить проблему:
1. Если инфа по флешке в принципе вычитываема, т.е. определяется размер и прочее - то аппаратно всё в норме, физических препятствий прошивке нет.
2. Если есть такое:
--- Цитата: woddy от 31 Май 2025, 16:47:45 ---Maximum number of bytes in multi-byte program: 1
--- Конец цитаты ---
Значит флешка не поддерживает многобайтовую запись - проблема номер раз.
3. Если тут более одного региона:
--- Цитата: woddy от 31 Май 2025, 16:47:45 ---Erase block region #0:
- Sectors size: 8192 Bytes
- Sectors count: 8
Erase block region #1:
- Sectors size: 65536 Bytes
- Sectors count: 127
--- Конец цитаты ---
То это соответственно проблема номер два.
Если нужно, могу глянуть дамп, по крайней мере определить сабмаппер. А с прошивкой могу помочь только теорией, т.к. у меня другой дампер и соответственно другой софт.
woddy:
дампы снятые в разных режимах
кстати при запуске танчиков он еще и такой мусор выдает (немного разный каждый раз)
9 игр, все непонятные хаки
еще у меня есть программатор, могу отпаять и прочитать в нем попробовать
mutabor:
Посмотрел дампы - действительно какая-то хрень. А можно сдампить как MMC3-512?
woddy:
прочитал как mmc3, вышло 512+256
на эмуле не запускается
chrome2ruremix:
Скажите пожалуйста, что лучше купить Dumper от ClusterА или Dumper на Mega2560?
woddy:
на сколько я понимаю от кластера быстрее в 10 раз. функционал вроде одинаковый?
поскольку цены на стм32 упали то можно дешево спаять кластеровский
chrome2ruremix:
--- Цитата: woddy от 02 Июнь 2025, 12:07:08 ---кластера быстрее в 10 раз
--- Конец цитаты ---
а какая последняя версия DumperА
woddy:
--- Цитата: mutabor от 01 Июнь 2025, 23:01:19 ---Посмотрел дампы - действительно какая-то хрень. А можно сдампить как MMC3-512?
--- Конец цитаты ---
отпаял и прочитал программатором
Навигация
Перейти к полной версии