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

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

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

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Может мне кто подскажет бестолковому среди слаборазвитых как записать этот картридж?

#OE #WE распаяй на дампер и прошивай, правда только первую, чтоб до второй добраться надо софт править

Оффлайн Yurissum

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Какое ещё видео?  это CHR только микра SRAM.
Я имел ввиду что это оперативка для подгрузки изображений или картинок - ну и назвал видео. Я конечно деби, но не до такой же степени...
Разомкнул я перемычку OE#/Vss# - результат отрицательный. Вы правы, оно не прошьется, и здесь как нельзя кстати знаменитая табличка Кинамана.  :wall:Ну и ладно Заказал по ссылкам на этом форуме заведомо вменяемые картриджи. А этот подарю.

Добавлено позже:
#OE #WE распаяй на дампер и прошивай, правда только первую, чтоб до второй добраться надо софт править
Спасибо, попробую. 16 метров тоже неплохо, мои любимые игры меньше весят.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Yurissum, ты кстати каким дампером пользуешься?

Оффлайн Yurissum

  • Пользователь
  • Сообщений: 20
    • Просмотр профиля
Этим
203223-0

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
Сегодня пришел картридж 400 в 1 от POWKIDDY. Меню напоминает 150 в 1, с превьюшками игр.
Прямая заливка через дампер поддерживается.
Обнаружилась проблема с этим картриджем, прошиваться он прошивается, но ни один ром не запускается.
Меню работает, а после запуска любой игры - черный экран

Оффлайн postal2201

  • Пользователь
  • Сообщений: 345
    • Просмотр профиля
max5775, Скорее всего собрал под CoolBoy2.
Кинь перемычку на 5/6k, она переключает регистры между $500x и $600x.

Версия билдера 1.2 собирает по умолчанию под кулбой 1 ($500x). Также в ней исправлены некоторые критические ошибки, некоторые игры не запускались после сборки. Советую скачать 1.2.

Менять версию кулбоя под которую собирать unf можно в !build_rom.bat
SET VERSION=2

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
max5775, Скорее всего собрал под CoolBoy2.
Кинь перемычку на 5/6k, она переключает регистры между $500x и $600x.

Версия билдера 1.2 собирает по умолчанию под кулбой 1 ($500x). Также в ней исправлены некоторые критические ошибки, некоторые игры не запускались после сборки. Советую скачать 1.2.

Менять версию кулбоя под которую собирать unf можно в !build_rom.bat
Спасибо, попробую.
А fceu от санчеса не поддерживает 2-ю версию кулбоя?
У меня вылетает с ошибкой при попытке запустить собранный ром второй версии.
« Последнее редактирование: 11 Ноябрь 2018, 20:18:15 от max5775 »

Оффлайн postal2201

  • Пользователь
  • Сообщений: 345
    • Просмотр профиля
max5775, на эмуляторах не запускал, только на реальном железе.

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
не помогло ни с перемычкой ни без нее, и версии разные ставил...

Оффлайн postal2201

  • Пользователь
  • Сообщений: 345
    • Просмотр профиля
max5775, а лок ставил при записи?

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
max5775, а лок ставил при записи?
это как?

Оффлайн postal2201

  • Пользователь
  • Сообщений: 345
    • Просмотр профиля
max5775,  при записи карика дополнительно используй параметр --lock
Так же желательно еще укажи --check для проверки по окончании записи.

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
max5775,  при записи карика дополнительно используй параметр --lock
Так же желательно еще укажи --check для проверки по окончании записи.
Ну ничего не помогло.
Заметил также одну вещь - курсор не запоминает последнюю выбранную игру, как должно быть.
Т.е получается не может записать информацию об этом.
Сделал скрины info двух кулбоев.
На первом - картридж 150 в 1, который отлично перезаписывается и работает.
На втором - этот проблемный картридж 400 в 1
Есть некоторые различия.
« Последнее редактирование: 13 Ноябрь 2018, 17:09:49 от max5775 »

Оффлайн HardWareMan

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

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
А теперь название флешки из проблемного картриджа в студию!
вроде такая 256M29EWH

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7548
    • Просмотр профиля
max5775, у флешки есть вывод VPP/WP#. Так как в букваре не сказано, что конкретно в этой 28F серии требуется Vpp (хотя в старых оно требовалось 12v), то он работает как WP#, т.е. защита от записи. Пока на нем активный уровень (какой лог.уровень - смотри в букваре) никакой записи ты не добьешься. Это аппаратная защита.

Помимо аппаратной защиты есть еще и программная. Защищённые сектора нельзя стереть или перезаписать. Эту флешку следует сначала полностью разлочить в программаторе. Там же и проверить правильность записи - некоторые сектора могут быть битыми, ведь китайцы любят всякую отбраковку пихать.

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
max5775, у флешки есть вывод VPP/WP#. Так как в букваре не сказано, что конкретно в этой 28F серии требуется Vpp (хотя в старых оно требовалось 12v), то он работает как WP#, т.е. защита от записи. Пока на нем активный уровень (какой лог.уровень - смотри в букваре) никакой записи ты не добьешься. Это аппаратная защита.

Помимо аппаратной защиты есть еще и программная. Защищённые сектора нельзя стереть или перезаписать. Эту флешку следует сначала полностью разлочить в программаторе. Там же и проверить правильность записи - некоторые сектора могут быть битыми, ведь китайцы любят всякую отбраковку пихать.
так он же записывается ромом от кластера, просто игры не запускаются
причем, я могу перезаписать его обратно исходным ромом, который работает без проблем
скажу больше, записываю на него ром 150 в 1, все вроде запускается, но беда с текстурами, часть из них битые, включая картринки превьюшек игр в меню, они перепутаны
 
« Последнее редактирование: 13 Ноябрь 2018, 22:11:32 от max5775 »

Оффлайн megavolt85

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

а ты залей в него ром от кластера, а потом слей обратно и сравни слитое с тем что записывал  ;)

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24721
    • Просмотр профиля
А там при прошивке верификации нет?

Оффлайн SAMael

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

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24721
    • Просмотр профиля
Значит надо активировать :) А так можно вообще в воздух шить.

Оффлайн HardWareMan

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

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
а ты залей в него ром от кластера, а потом слей обратно и сравни слитое с тем что записывал  ;)
я думал об этом, сегодня попробую
Значит надо активировать :) А так можно вообще в воздух шить.
если вы про --check, то делал уже.
А утилита Кластера это не учитывает. Кстати, было бы неплохо добавить и такой функционал тоже...
Вот это здравая мысль, но текстуры не столько битые, сколько перепутаны. И картридж в принципе даже играбелен.
Поясню: В роме 150 в 1 есть превьюшки игр. Так вот, если мы выбираем игру rockman, то превьюшка почему то показывает, что это contra или еще что-то.
Но некоторые превьюшки совпадают. Запустил черепах-3, где-то 5-10% битых (или неправильных?) текстур.
Могу в принципе сделать скрины, кому интересно. Попробую записать ром 198 в 1на него ради интереса. Либо сделать ром на пару игр утилитой кластера, может не попаду на битые сектора, если они есть
« Последнее редактирование: 14 Ноябрь 2018, 09:35:50 от max5775 »

Оффлайн SAMael

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

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
Записал ром 360 в 1, меню запускается отлично.
Пока не запускается только кирби, но он вроде как навороченный сам по себе.
Запускаются чип и дейл обе части, все контры, тини туны, робокопы, черепахи и мнго чего еще.
Так что врядли чип битый, тут что-то другое

Оффлайн RetHunter

  • Пользователь
  • Сообщений: 242
  • Пол: Мужской
    • Просмотр профиля
А как битый сектор может дать такие симптомы? Ну попадёт на него игра, если PRG - игра не будет работать, если CHR - будут побитые спрайты, если сжатая - то не распакуется и не запустится вобще. Но как это может попутать картинки от игр в меню я не понимаю. Да и не будут китайцы каждую флеху проверять на беды ещё и корректировать под них ром. У них эти флешки копейки стоят. Еще поверю когда флешка больше 32Мб и ей физически отрезают чать (возможно битую) урезая её до 32 Мб. Да и разве битые сектора не внутренний контроллер флешки корректирует?

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4477
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Да и разве битые сектора не внутренний контроллер флешки корректирует?
У ей внутре неонка!

Оффлайн max5775

  • Пользователь
  • Сообщений: 555
    • Просмотр профиля
Поясните, за что это отвечает?

Оффлайн SAMael

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

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7548
    • Просмотр профиля
RetHunter, у паралельных флешек такого не встречал уж точно )))) у NAND флешек по сути также, в тех же юсб флешках инфа о битых секторах пишутся в контроллер.
У NAND как у блочных есть SPARE AREA, туда пишется ЕСС. И бэд блоком становится блок, которому не поможет ЕСС. Правда, у самых первых там и не ЕСС была а обычная контролька. Карта бэдов в памяти контроллера так же есть.