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

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 »

Оффлайн godun

  • Пользователь
  • Сообщений: 3937
    • Просмотр профиля
Вообщем задубоировал полностью под флешку, записал программатором, все завелось

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
Значит в разводке платы перепутаны старшие адреса. Чтобы выяснить какие именно - записать что-нибудь без повторов программатором, прочитать дампером и сравнить.

Оффлайн yaiba1989

  • Пользователь
  • Сообщений: 66
    • Просмотр профиля
This is coolboy can rewrite ok, 99% MMC3, I tested ok

Оффлайн yaiba1989

  • Пользователь
  • Сообщений: 66
    • Просмотр профиля
This is coolboy? 150 in 1 PRG 29GL256
I dumped ok, but rewrite is fail

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
I dumped ok, but rewrite is fail
The mapper is SMD133, but the flash WE signal is connected to VCC on this board. To rewrite you have to unsolder flash and use programmer or fix the circuit.

Оффлайн yaiba1989

  • Пользователь
  • Сообщений: 66
    • Просмотр профиля
The mapper is SMD133, but the flash WE signal is connected to VCC on this board. To rewrite you have to unsolder flash and use programmer or fix the circuit.
unsoldering OE and WE? I try it but it fail same that.
And i try with this cartridge, it fail same

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2280
  • Пол: Мужской
    • Просмотр профиля
А прошивка в дампере последняя? У меня старая ревизия дампера со старой прошивкой не умеет прошивать coolboy, которым нужно два провода допаивать. Кластер выпускал новую версию, но я так и не проверил, заработала ли она с кулбоями, т.к. надо кабель паять чтобы альтеру прошить.

Оффлайн yaiba1989

  • Пользователь
  • Сообщений: 66
    • Просмотр профиля
А прошивка в дампере последняя? У меня старая ревизия дампера со старой прошивкой не умеет прошивать coolboy, которым нужно два провода допаивать. Кластер выпускал новую версию, но я так и не проверил, заработала ли она с кулбоями, т.к. надо кабель паять чтобы альтеру прошить.
yes, it is new fw 3.2

Оффлайн supremacy

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

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
Старый кластеровский софт не умел работать с мелкими флешками, которые не поддерживали блочные команды записи, и с разными блоками стирания - есть флешки где первые или последние блоки имеют меньший размер, чем прочие. Как сейчас - не знаю, давно пользуюсь своим софтом.
В принципе SMD133, которые мне попадались, работали весьма стабильно, а вот для прошивки TEC9719 пришлось допиливать прошивку дампера, т.к. этот маппер ресетается буквально за несколько микросекунд и воспринимает кривые клоки ардуино дампера как ресет.

Оффлайн yaiba1989

  • Пользователь
  • Сообщений: 66
    • Просмотр профиля
Надо узнать тестировал ли кто-нибудь прошивку таких кулбоев на этом дампере. Может быть прошивка до сих пор не работает.
Могу только сказать, что на старом дампере, не все простые кулбои прошивались. Мне попадались такие, где прошивка постоянно прерывалась ошибкой.
Я перекидывал флеш память на другой кулбой (с аналогичной платой) где прошивка работала и после успешной прошивки возвращал обратно. Не знаю в чём была проблема, возможно маппер детектил ресет.
Do you try new mindkids cartridge?
https://ae01.alicdn.com/kf/Sd23774997462429f8de54ed34dcd125bF.jpg

Старый кластеровский софт не умел работать с мелкими флешками, которые не поддерживали блочные команды записи, и с разными блоками стирания - есть флешки где первые или последние блоки имеют меньший размер, чем прочие. Как сейчас - не знаю, давно пользуюсь своим софтом.
В принципе SMD133, которые мне попадались, работали весьма стабильно, а вот для прошивки TEC9719 пришлось допиливать прошивку дампера, т.к. этот маппер ресетается буквально за несколько микросекунд и воспринимает кривые клоки ардуино дампера как ресет.
What PCB do you rewrite?

Просьба не размещать с помощью тэга img изображение со стороной более 700 пикселей. ghostdog3
« Последнее редактирование: 26 Январь 2025, 20:52:24 от ghostdog3 »


Оффлайн yaiba1989

  • Пользователь
  • Сообщений: 66
    • Просмотр профиля
Are you using arduino? I have SM168L5 - YH2018A not rewwrite


Оффлайн soulstorm

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Подскажите, а как можно прошить SMD173C_L1?
Стандартным софтом Кластера такой вывод:
Autodetected virtual serial port: COM3
Dumper initialization... OK
Dumper hardware version: 3.2
Dumper firmware version: 3.4
Reset... OK
Device size: 8 MByte / 64 Mbit
Erasing all PPBs... OK
Erasing sector #0... OK
Writing bank #0/512 (0%, 00:00:00/00:00:00)... ERROR: Flash write timeout
Lets try again
Reset... OK
Erasing sector #0... ERROR: Flash erase timeout
Lets try again
Reset... OK
Erasing sector #0... OK
Writing bank #0/512 (0%, 00:00:06/00:00:00)... ERROR: Flash write timeout
Lets try again
Reset... OK
Erasing sector #0... ERROR: Flash erase timeout
Lets try again
Reset... OK
Erasing sector #0... OK
Writing bank #0/512 (0%, 00:00:12/00:00:00)... ERROR: Flash write timeout
ERROR: Flash write timeout

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
Возможно этот софт не умеет нормально работать с этой флешкой. Хз как в последних версиях, но раньше он не умел писать флешки побайтово, и не поддерживал стирание разноразмерных блоков.

Оффлайн soulstorm

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Софт взял с гитхаба v3.4 ещё от 2023 года, других там нет. Т.е. прошить его никак не получится?
Чтение при этом работает, подходит маппер AA6023Sub3.
« Последнее редактирование: 27 Январь 2025, 22:36:20 от soulstorm »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
Прошить наверняка получится если допилить софт. Если работает определение объема флешки, и даже стирание через раз - значит аппаратных проблем нет. А что там за флешка стоит? Кстати сделайте качественные фото с обоих сторон - добавлю в коллекцию.

Оффлайн soulstorm

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Сделал фото с двух сторон:
Флешка стоит вот такая:
Определение объёма флешки работает, тут стоит 8Мб. Но вот стирание не работает совсем. Мало того, после каждой попытки перепрошивки, картридж как бы блокируется и уже не определяется даже после ресета, надо перетыкать.
К сожалению, сам допилить софт не смогу, не программист.
« Последнее редактирование: 27 Январь 2025, 12:51:24 от soulstorm »

Оффлайн mutabor

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

Оффлайн soulstorm

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Дампер от Cluster'а, покупал у него напрямую. Rev. 3.2
« Последнее редактирование: 27 Январь 2025, 12:46:26 от soulstorm »

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2280
  • Пол: Мужской
    • Просмотр профиля
soulstorm, форум позволяет нормально вставлять картинки, зачем вставлять fastpic, который не позволяет ничего кроме рекламы увидеть?

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
Дампер от Cluster'а, покупал у него напрямую. Rev. 3.2
Ну хз, Кластер в своем видосе прям восхвалял его, типа идеальный. Но я все карики шил обычным ардуиновским дампером, правда под некоторые типы (например TEC9719) пришлось допилить его прошивку, но все SMD133 без проблем шились практически с дефолтной. Но комповый софт у меня свой, основанный на старом кластеровском, например я выкинул посекторное стирание и и стираю глобальным (флешка лучше знает как себя стереть), а оно может идти минуту или дольше, в зависимости от флешки. На такое дефолтная прошивка дампера не рассчитана и отлетит по таймауту, и пришлось задрать таймаут в прошивке дампера.

Оффлайн soulstorm

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Понял. Видимо зря только деньги потратил.

Добавлено позже:
А для этого картриджа надо OE и WE припаивать?
« Последнее редактирование: 27 Январь 2025, 20:57:25 от soulstorm »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 321
    • Просмотр профиля
А для этого картриджа надо OE и WE припаивать?
Нет
Если работает определение объема флешки, и даже стирание через раз - значит аппаратных проблем нет.
Если бы с WE было что-то не так - объем бы не продетектился - для его чтения тоже используются операции записи.

Оффлайн soulstorm

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Ну я вот уже попробовал припаять OE и WE, результат тот же. Картриджей несколько, результат один
Writing bank #0/512 (0%, 00:00:01/00:00:00)... ERROR: Flash write timeout

Добавлено позже:
Вывод инфо:
Autodetected virtual serial port: COM3
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: 128us
Typical timeout for maximum-size multi-byte program: 128us
Typical timeout for individual block erase: 1024ms
Typical timeout for full chip erase: 0ms
Maximum timeout for single byte/word/D-word program: 1024us
Maximum timeout for maximum-size multi-byte program: 4096us
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: 32
Erase block region #1:
 - Sectors size: 8192 Bytes
 - Sectors count: 8
Erase block region #2:
 - Sectors size: 65536 Bytes
 - Sectors count: 127
Done.

Оффлайн JRBVZ

  • Пользователь
  • Сообщений: 343
    • Просмотр профиля
soulstorm, а дампит кулбой без проблем? Сдампи картридж 3 раза подряд с именами файлов например cool1.nes, cool2.nes, cool3.nes и выложи архив. Хочу кое-что проверить.