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

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

Оффлайн 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 »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
Но резервное питание - это лично моя инициатива и к китайцам она не относится.
А кто говорил о китайцах? o_0

Питание 5в на SRAM идет через токоограничительный резистор 4.7ком, батарейку я припаял до резистора.
Так, не понял. 5 вольт идёт через диод, резистор там не нужен. Резистор ставится в цепь батарейки. На счёт номинала так с ходу не скажу, опять же нужны измерения. Слишком завышать номинал не стоит, так как даже при микротоках на нём большое падение напряжения.

Оффлайн gegmaster

  • Пользователь
  • Сообщений: 87
    • Просмотр профиля
А кто говорил о китайцах?
Ну я имел ввиду, что они это резервное питание совсем не предусмотрели.

Питание SRAM изначально шло через резистор 4.7ком. На схеме все что в красной рамке, уже моя доработка. Диоды стоят Шоттки.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
Ну я имел ввиду, что они это резервное питание совсем не предусмотрели.
Это не стоит обсуждения.
Питание SRAM изначально шло через резистор 4.7ком
Понял  :-\ Но не совсем. Зачем там резистор? Это способ включить 3-вольтовую память на 5 В?
На схеме все что в красной рамке, уже моя доработка
Да, понятно. Хотя не уверен, что так правильно, но только не уверен. Тут думать (и мерить) надо :-\
Диоды стоят Шоттки.
А вот это зря. Шоттки хороши тем, что на них малое падение напряжения (здесь это не важно). И плохи тем, что у них большие обратные токи (здесь это важно). Я бы советовал ставить (как это всегда и делается) стандартные 4148

Оффлайн gegmaster

  • Пользователь
  • Сообщений: 87
    • Просмотр профиля
Я бы советовал ставить (как это всегда и делается) стандартные 4148
Я обязательно в целях эксперимента заменю диоды, но изменит ли это прожорливость SRAM (180мкА) вот в чем вопрос?

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24738
    • Просмотр профиля
Я обязательно в целях эксперимента заменю диоды
Зачем? o_0

но изменит ли это прожорливость SRAM (180мкА) вот в чем вопрос?
А это точно SRAM или утечка через Шоттки?

Оффлайн gegmaster

  • Пользователь
  • Сообщений: 87
    • Просмотр профиля
Зачем? o_0
А это точно SRAM или утечка через Шоттки?
Эксперимент конечно для меня  :)
Спасибо за совет. Завтра выясню в ходе эксперимента, может и утечка  :neznayu:


UPD: Итак, заменил я диоды Шоттки на обычные и действительно ток от батарейки стал почти в 2 раза меньше 100 мкА. Это конечно не идеал, но уже и так батарейка проживет чуть дольше. Напряжение после диода упало до 2.3В, после резистора 4к7 на входе в микросхему 1.7В. Спасибо большое Rumata, за пинок в нужном направлении.
« Последнее редактирование: 13 Февраль 2020, 18:33:42 от gegmaster »

Оффлайн jek666

  • Пользователь
  • Сообщений: 9
  • Пол: Мужской
    • Просмотр профиля
Здорова мужики. Попался мне карик с флешкой 64Мб хотелось бы его полностью забить, но вот конструктор собирает только 32Мб, я попробовал в конструкторе в bat-нике поправить размер с 32 на 64 собирает ром 64, но только этот ром с артефактами и много чего не работает (то есть вообще как надо не работает, только меню норм). Может кто подскажет как мне собрать ром на 64Мб (Собраный ром пробовал на эмуляторе. ). Заранее спасибо.

Оффлайн KykyPyky

  • Пользователь
  • Сообщений: 516
    • Просмотр профиля
конструктор собирает только 32Мб
Именно. Coolboy может адресовать только 32Мб памяти.
Хочешь больше, сам управляй старшим адресом флешки. Самое простое поставить переключатель, ну и прошивать двумя разными ромами при разном положении переключателя.
Заодно подумай, с чего это вдруг китайцы так расщедрились, может вторая половина битая?

Оффлайн xpk2k

  • Пользователь
  • Сообщений: 52
    • Просмотр профиля
Собираю коллекцию игр на MMC3 маппере для кулбоя.
Нашел игры тут: https://clusterrr.com/roms/selfmade/
Прошу поделиться ссылками на известные другие ресурсы с играми MMC3. Хаки игр, переводы на русский. Дампы многоигровок разбирать на отдельные игры не умею, поэтому не предлагайте с этим связываться.

Оффлайн max5775

  • Пользователь
  • Сообщений: 564
    • Просмотр профиля
Доделал наконец кулгерл на 64Мб, собрал ром, все работает, но напрягает пару вещей:
- не пойму где отключить правый курсор (в сборщике от кулбоя есть возможность)
- в меню есть пустой первый пункт, см скриншот.
Есть идеи как поправить?

Оффлайн shikoist

  • Пользователь
  • Сообщений: 517
  • Пол: Мужской
    • Просмотр профиля
Может, для CoolGirl всё-таки завести отдельную тему?

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
У сборщика и меню кулбоя гораздо больше фич.
А насчет пустой строки покажите ваш конфиг.

Оффлайн max5775

  • Пользователь
  • Сообщений: 564
    • Просмотр профиля
Может, для CoolGirl всё-таки завести отдельную тему?
Там писать некому будет, их собирают единицы.
У сборщика и меню кулбоя гораздо больше фич.
А насчет пустой строки покажите ваш конфиг.
Какой именно?
Они стандартные с гитхаба, я ничего не менял

Оффлайн kosmo

  • Пользователь
  • Сообщений: 163
    • Просмотр профиля
А попробуй этим собрать.

Оффлайн max5775

  • Пользователь
  • Сообщений: 564
    • Просмотр профиля
А попробуй этим собрать.
Этот вообще не собирает, сразу ошибка по поводу несуществующего offsets.xml

Оффлайн kosmo

  • Пользователь
  • Сообщений: 163
    • Просмотр профиля
max5775, Странно. У меня всё собирает. Копируешь в эту папку свой games.list. Копируешь в эту папку свою папку с играми. В games.list указано название твоей папки. Копируешь своё menu.png. И всё должно собраться. Не понятно, у меня то всё собирается.

Добавлено позже:
Может быть какую то игру не "пережёвывает"? Поэтому и ошибка выскакивает. Прокрути в верх, может там причина указана.

Оффлайн max5775

  • Пользователь
  • Сообщений: 564
    • Просмотр профиля
max5775, Странно. У меня всё собирает. Копируешь в эту папку свой games.list. Копируешь в эту папку свою папку с играми. В games.list указано название твоей папки. Копируешь своё menu.png. И всё должно собраться. Не понятно, у меня то всё собирается.

Добавлено позже:
Может быть какую то игру не "пережёвывает"? Поэтому и ошибка выскакивает. Прокрути в верх, может там причина указана.
То же самое в итоге.
Разобрался, в games.list какого то хрена черточка стояла.
Закомментировал ее и строчка исчезла.
Теперь остался вопрос по правому курсору

Оффлайн kosmo

  • Пользователь
  • Сообщений: 163
    • Просмотр профиля
max5775, Так, попробуй просто в этой скаченной папке запустить !build_rom.bat. Если всё соберётся и в меню будет одна игра, значит дело в файле games.list. Посмотри чем отличается твой от моего.

Добавлено позже:

Теперь остался вопрос по правому курсору
Вот тут я тебе не помогу. Но если узнаешь, поделись. Тоже интересно.

Оффлайн dssoft

  • Пользователь
  • Сообщений: 1165
    • Просмотр профиля
Теперь остался вопрос по правому курсору
Все очень просто. Открываете файл menu.asm, находите строчку
   ;ldx #$FF ; скрыть правый указатель
и раскомментируете ее
   ldx #$FF ; скрыть правый указатель

Оффлайн max5775

  • Пользователь
  • Сообщений: 564
    • Просмотр профиля
Все очень просто. Открываете файл menu.asm, находите строчку
   ;ldx #$FF ; скрыть правый указатель
и раскомментируете ее
   ldx #$FF ; скрыть правый указатель
спасибо, теперь все

Оффлайн Salvation

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

Оффлайн dssoft

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

Оффлайн max5775

  • Пользователь
  • Сообщений: 564
    • Просмотр профиля
Кому интересно, подправил скрипт сборщика ромов для запуска в Linux.
Должен быть установлен Wine. Запуск через build.sh.
Версии для CoolBoy и CoolGirl.
Проверено на LinuxMint 19.3
« Последнее редактирование: 31 Март 2020, 18:13:17 от max5775 »

Оффлайн Cluster

  • Пользователь
  • Сообщений: 67
    • Twitter
    • ВКонтакте
    • Просмотр профиля
Я наконец-то, спустя четыре года, зарелизил новую версию!

Вот тут документация:
https://github.com/ClusterM/coolboy-multirom-builder

Тут релизы с собранными бинарниками:
https://github.com/ClusterM/coolboy-multirom-builder/releases

Там чуть ли не всё переписано, многое исправлено, добавлена новая анимация, мультиплатформенность и пр.

Оффлайн negativ72rus

  • Пользователь
  • Сообщений: 202
    • Просмотр профиля
Я наконец-то, спустя четыре года, зарелизил новую версию!

Вот тут документация:
https://github.com/ClusterM/coolboy-multirom-builder

Тут релизы с собранными бинарниками:
https://github.com/ClusterM/coolboy-multirom-builder/releases

Там чуть ли не всё переписано, многое исправлено, добавлена новая анимация, мультиплатформенность и пр.

А меню с чайками так и неть? )

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
Я наконец-то, спустя четыре года, зарелизил новую версию!
Submappers 2,3,4,5,8,9
Еще бы пояснили чем они отличаются и как идентифицировать. В соседней теме человек интересовался прошивкой картриджа с маппером на 2 чипах https://www.emu-land.net/forum/index.php/topic,85984.msg1543823.html#msg1543823, ему подойдет что-то из этого?
Еще есть интересные мапперы, похожие на SMD133, но поддерживающие помимо MMC3 еще UxROM и AxROM, они в этот список входят?
P.S. Неплохо было бы сохранить совместимость со старыми версиями .NET (например 3.5 стоит по дефолту в Win7, и даже на XP можно постаивть).

Оффлайн benladen88

  • Пользователь
  • Сообщений: 787
    • Просмотр профиля
Чайки не нужны, это ностальгаторская херь. Нужен контент по VT03 ^_^

(а ещё надо как-то раздобыть дампер-программатор наконец-то)

Оффлайн FEV

  • Пользователь
  • Сообщений: 422
  • Пол: Мужской
  • FEV
    • Просмотр профиля
У кого-нибудь есть рабочая русская версия игры Street Fighter 2010? А то единственный ром, который в архиве глюченный, босс 2 уровня (3-й по счёту) не появляется.

P.S. Еле нашёл. Если кому надо, ром в архиве.
Это версия с глюком?

Всплыл я спустя столько лет))

Оффлайн negativ72rus

  • Пользователь
  • Сообщений: 202
    • Просмотр профиля
Товарищи, здравствуйте.
Приехал такой вот карик, 150 в 1.
Для начала попытался его сдампить. Дамп вроде бы проходит удачно, но в эмуляторе (fceux-2.6.5) ром не работает, просто серый экран.
Попытался зашить в него (без пайки) свой мультиром который проверен и работает на другом "кулбое", запись падает с ошибкой по таймауту. Точно так же ведет себя любой мультиром собранный несколькими версиями сборщика. Т.е. не ругается что не может открыть флешь для записи как было на упомянутом выше другом "кулбое" который шился через gpio. При этом если шить в него тот сдампленный с него ром то прошивка проходит без ошибок. Правда я все еще не уверен что на него что-то прошивается...
В общем два вопроса:
1. Какой маппер подсунуть дамперу для корректного дампа этого карика и должен ли работать дамп в эмуляторе?
2. Этот карик шьется без gpio?

.\famicomdumper.exe write-coolboy-direct --port COM13 --mapper mappers\coolboy.cs --file "multirom.unf" --sound
Famicom Dumper Client v2.0
  Commit 6e9b04e @ https://github.com/ClusterM/famicom-dumper-client
  (c) Alexey 'Cluster' Avdyukhin / https://clusterrr.com / clusterrr@clusterrr.com

Dumper initialization... OK
Reset... OK
Detecting COOLBOY version... Version: 2
Primary Algorithm Command Set and Control Interface ID Code: 0200h
Vcc Logic Supply Minimum Program / Erase voltage: 2,7v
Vcc Logic Supply Maximum Program / Erase voltage: 3,6v
Vpp [Programming] Supply Minimum Program / Erase voltage: 0v
Vpp [Programming] Supply Maximum Program / Erase voltage: 0v
Maximum number of bytes in multi-byte program: 64
Device size: 32 MByte / 256 Mbit
Flash device interface: x8 and x16 via byte pin
Erasing all PBBs... OK
Erasing sector... OK
Writing 1/450 (0%, 00:00:00/00:00:00)... OK
Writing 2/450 (0%, 00:00:01/00:00:00)... OK
Writing 3/450 (0%, 00:00:02/00:00:00)... OK
Writing 4/450 (0%, 00:00:03/00:00:00)... OK
Writing 5/450 (0%, 00:00:04/00:00:00)... OK
Writing 6/450 (1%, 00:00:05/00:00:00)... OK
Writing 7/450 (1%, 00:00:06/00:00:00)... OK
Writing 8/450 (1%, 00:00:07/00:00:00)... OK
Erasing sector... OK
Writing 9/450 (1%, 00:00:09/00:08:24)... OK
Writing 10/450 (2%, 00:00:10/00:08:24)... Error: Write timeout
Lets try again
Reset... OK
Erasing sector... OK
Writing 9/450 (1%, 00:00:22/00:11:44)... OK
Writing 10/450 (2%, 00:00:23/00:11:44)... Error: Write timeout
Lets try again
Reset... OK
Erasing sector... OK
Writing 9/450 (1%, 00:00:34/00:11:50)... OK
Writing 10/450 (2%, 00:00:35/00:11:50)... Error System.IO.IOException: Write timeout
« Последнее редактирование: 09 Март 2023, 09:20:45 от negativ72rus »

Оффлайн moonbeast

  • Пользователь
  • Сообщений: 9
    • Просмотр профиля
У меня YH2018A прошился famicom-dumper-34 такой командой:

famicom-dumper.exe write-coolboy --port COM3 --file mindkidz128-0.nes --coolboy-submapper 3

но лучше указать сабмаппер 3 при билде образа многоигровки в конфиге, тогда дамперу не нужно указывать сабмаппер при прошивке

Так же рекомендую допаять последовательно два диода, в D3. Мой картридж после этого перестал греться.