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

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 »

Оффлайн RetHunter

  • Пользователь
  • Сообщений: 242
  • Пол: Мужской
    • Просмотр профиля
так я по первой ссылке заказал пару 198 и 400, мне говорят что они могут не пойти на перезапись... что-то я запутался уже
по поводу sram тоже не понял, если ее там нет, то как игры работают?
или речь идет про игры  с сохранением?
Никто не говорит что они не перепишутся! По SRAM: просто не все игры из списка Кластера запутятся (не обязательно игры с сохраненями). Из тех что помню не пойдут Утиные истории 1 и Бубл Бабл 1. Срам лкгео допять, контакты для неё на плате разведены. Кстати SRAM можно выпаять из любого старинного LPT модема.
Ещё мне встречались 198 и 400, в которых вместо флеш памяти были капли на текстолите. Уверен что их не перешить.
360 тоже видел на капельном маппере, но в руках не держал.
Последний раз брал тут: https://ru.aliexpress.com/item/2017-New-360-in-1-No-Repeated-Game-Card-For-8-Bit-Dandy-Game-Player-5Pcs/32803029635.html?spm=a2g0s.9042311.0.0.274233edDUnHL0
Но китайцы переделали и их под капли (удешевили). На каплях и маппер и SRAM.
Так что гарантированно пока только 150в1 будут шиться без пайки и 360в1, если повезёт.
« Последнее редактирование: 01 Октябрь 2018, 16:18:08 от RetHunter »

Оффлайн SAMael

  • Пользователь
  • Сообщений: 6191
  • Пол: Мужской
  • SAMuel Alpian Warrior Glegleddore Gleglezavr
    • Facebook
    • Twitter
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
max5775, короче, если с Киева могу попробовать сделать дамп скулбоя\кулгёрла, так и прошить кулбой\кулгёрл.

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
могу попробовать сделать дамп скулбоя\кулгёрла, так и прош
Спасибо, но я сам дампер сделал на mega2560, теперь жду собственно саму ардуину из китая и доноры на прошивку.
Вот пока интересуюсь, что к чему.
ОЗУ даже остались кое-какие, когда картриджи делал.
Да, кстати, на какой-то многоигровке видел Marble Madness, как его туда запихнули, это же ANROM, 7 маппер?
« Последнее редактирование: 28 Сентябрь 2018, 19:58:30 от max5775 »

Оффлайн SAMael

  • Пользователь
  • Сообщений: 6191
  • Пол: Мужской
  • SAMuel Alpian Warrior Glegleddore Gleglezavr
    • Facebook
    • Twitter
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Ну у меня без ардуины, минимализм и простота.

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7422
    • Просмотр профиля
А вы не слишком далеко уехали от темы? Кто-то уже Зауралье бороздит, похоже.
Тебе показалось.

Оффлайн Rumata

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

Оффлайн HardWareMan

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

Оффлайн pix07

  • Пользователь
  • Сообщений: 51
  • Пол: Мужской
    • Просмотр профиля
https://www.zophar.net/utilities/nesutil/cajones.html
это поможет.
его изменение в MMC3.
и этот сайт :
https://www.romhacking.net

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Пришла пара картриджей 198/400 от COOLBOY
Платы по разводке идентичны, по содержанию немного отличаются.
Маппер на обоих собран на капле, причем на 400 в 1 есть резисторы перемычки, а на 198 - нет.
Память на 400 в 1, судя по всему стоит на 256Мб, на 198 в 1 маркировка плохая, похоже что-то на 29GL01, наверное на 128Мб.
На плате 400 в 1 в левом верхнем углу стоит микруха 8pin, на 198 ее нету, хотя место под нее есть.
Также на 400 в 1 стоит диод в цепи питания.
Сдампить или прошить пока не могу, на неделе должна приехать ардуина, тогда и отпишусь об успехах.
Кстати, картриджи сделаны добротно в плане подборки ромов, до этого был такой же сет, но набор игр был похуже и некоторые были с артефактами и мусором.
Ну и пайка по традиции "на высоте".

Оффлайн shikoist

  • Пользователь
  • Сообщений: 500
  • Пол: Мужской
    • Просмотр профиля
Тоже жду такие же картриджи + 360в1 + Ардуино.)

Оффлайн SAMael

  • Пользователь
  • Сообщений: 6191
  • Пол: Мужской
  • SAMuel Alpian Warrior Glegleddore Gleglezavr
    • Facebook
    • Twitter
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Ну и пайка по традиции "на высоте".
Это что то новенькое, что за традиция по пайке? :?

Как по мне обычная чайна пайка.

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Это что то новенькое, что за традиция по пайке? :?

Как по мне обычная чайна пайка.
заляпано флюсом - это по-традиции

Оффлайн KykyPyky

  • Пользователь
  • Сообщений: 516
    • Просмотр профиля
На плате 400 в 1 в левом верхнем углу стоит микруха 8pin
Что это вообще такое? o_0
Можешь маркировку написать?

Оффлайн postal2201

  • Пользователь
  • Сообщений: 345
    • Просмотр профиля
max5775, на левом карике стоит память на 256Mbit, то есть 32 мегабайта, А вот на правый китайцы вкорячили аж на 1Gbit (128 мегабайт).
Чего это они так расщедрились ;)

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7422
    • Просмотр профиля
Может с битыми секторами?

Оффлайн postal2201

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

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Что это вообще такое? o_0
Можешь маркировку написать?
Я б рад, да затерли ее, специально видимо. Могу только сказать, что на 1 вывод приходит + питания.
Я сначала думал, что это типа преобразователь 5v -> 3.3v, но тогда зачем диод стоит... и он не закорочен.
Тоже об этом подумал :)
Надо погонять его в дампере.
Ардуинка приедет завтра-послезавтра, попробую.
Может с битыми секторами?
Вообще, наверное можно по даташиту посмотреть старшие адреса микросхемы и прозвонить их на плюс, как я понимаю, если он ее подрезали?
max5775, на левом карике стоит память на 256Mbit, то есть 32 мегабайта, А вот на правый китайцы вкорячили аж на 1Gbit (128 мегабайт).
Чего это они так расщедрились
Если ее получится нормально прошить, то неплохой сет можно будет собрать, но это пока мечты )
« Последнее редактирование: 09 Октябрь 2018, 13:36:02 от max5775 »

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7422
    • Просмотр профиля
Тут дело в другом. Китай-бабай не будет просто так ставить лишние детальки. Если в сумме записанные игры не набирают полный объем в 128МБ, то микросхема используется частично. Маппер CoolBoy позволяет использовать куски (страницы) внутри в любом порядке, для этого там есть регистр смещения. Т.е., не обязательно половину или четверть отрезать. Можно ювелирно не заполнять битые сектора внутри массива. Для этого требуется правильно расположить игры. Это, короче, как пометка BAD секторов в файловой системе (тут ее нет, конечно, но смысл похож, ибо разметка записана в коде меню). Вот я и думаю: зачем такой объем если он не требуется?

Оффлайн shikoist

  • Пользователь
  • Сообщений: 500
  • Пол: Мужской
    • Просмотр профиля
Возможно, таблица битых секторов пишется первым прогоном автоматически, вторым записываются игры. Мимо битых секторов, естественно. Тоже ничего такой способ избавиться от барахла.

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Попробовал сдампить свои картриджи, о которых писал выше.
Там, где стоит память 128Мб дампер кластера написал что проблемы с PRG, второй картридж с памятью 32Мб написал как неизвестный кулбой...
P.S: Снял дамп с кулбоя 198 в 1, завтра попробую записать. И забыл сказать, он не 198 в итоге, а 205 in 1.
Картридж 400 в 1 так и не определился...
Дамп картриджа 198(205) в 1 - https://yadi.sk/d/FnO17yEm9k4wMQ
« Последнее редактирование: 13 Октябрь 2018, 17:44:18 от max5775 »

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Не смог найти, как отключить сортировку по алфавиту. Пытался сделать сортировку, прописав в начале каждого рома цифры, но после 1 идет 10 и 11, а не 2 и 3.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2255
  • Пол: Мужской
    • Просмотр профиля
Дописывай в начало нули:) 001, 002, 010, 011, 100

--nosort  не работает?

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Дописывай в начало нули:) 001, 002, 010, 011, 100

--nosort  не работает?
не там искал, я шарился по asm-файлам, а сортировка в скрипте сборки находится

Оффлайн shikoist

  • Пользователь
  • Сообщений: 500
  • Пол: Мужской
    • Просмотр профиля
Тоже приехали карики 198в1 и 400в1. Вот фотографии получше.
« Последнее редактирование: 15 Октябрь 2018, 11:59:44 от kingserg »

Оффлайн max5775

  • Пользователь
  • Сообщений: 536
    • Просмотр профиля
Тоже приехали карики 198в1 и 400в1. Вот фотографии получше.
один в один с моими, я правда уже один продал

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2255
  • Пол: Мужской
    • Просмотр профиля
Вот фотографии получше.
Я так понимаю U1 это prg ram, и на них микросхемы памяти допаять не получится. Т.е. игры с сохранениями, и использующие prg ram работать не будут.

Оффлайн RetHunter

  • Пользователь
  • Сообщений: 242
  • Пол: Мужской
    • Просмотр профиля
Тут дело в другом. Китай-бабай не будет просто так ставить лишние детальки. Если в сумме записанные игры не набирают полный объем в 128МБ, то микросхема используется частично. Маппер CoolBoy позволяет использовать куски (страницы) внутри в любом порядке, для этого там есть регистр смещения. Т.е., не обязательно половину или четверть отрезать. Можно ювелирно не заполнять битые сектора внутри массива. Для этого требуется правильно расположить игры. Это, короче, как пометка BAD секторов в файловой системе (тут ее нет, конечно, но смысл похож, ибо разметка записана в коде меню). Вот я и думаю: зачем такой объем если он не требуется?
По использованию флешки 128Мб можно же по ногам старших адресов глянуть куда они ведут или не ведут, т.е. чтобы понять используется первые/последние 32Мб или рандомные небитые куски.
Возможно нас ждут кулбои со всеми играми на ММС3. ;)

Добавлено позже:
Я так понимаю U1 это prg ram, и на них микросхемы памяти допаять не получится. Т.е. игры с сохранениями, и использующие prg ram работать не будут.
Судя по всему - это под капельную SRAM, так что да, много игр работать не будет, т.к. ничего туда не впаяешь.

Добавлено позже:
Что интересно - это то, что отдельно флешка 126 Мб стоит дороже картриджа.
« Последнее редактирование: 15 Октябрь 2018, 19:22:47 от RetHunter »

Оффлайн Cluster

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

Верхние два контакта справа. Они замкнуты и скорее всего идут на землю.

Оффлайн RetHunter

  • Пользователь
  • Сообщений: 242
  • Пол: Мужской
    • Просмотр профиля
(Ссылка на вложение)

Верхние два контакта справа. Они замкнуты и скорее всего идут на землю.
Получается если их повесить на 74hc74, то можно сделать четырёхигровку с переключением по ресету, где при каждом ресете будет четыре многоигровки на +- 150 игр. Если флешка конечно без битых секторов.

Оффлайн Cluster

  • Пользователь
  • Сообщений: 67
    • Twitter
    • ВКонтакте
    • Просмотр профиля
Получается если их повесить на 74hc74, то можно сделать четырёхигровку с переключением по ресету, где при каждом ресете будет четыре многоигровки на +- 150 игр. Если флешка конечно без битых секторов.
Зачем по ресету? В теории можно и через меню переключение сделать. Да и битые сектора не помешают (а на гигабитных флешах они часто бывают), их же просто пропускать при записи можно.