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

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 »

Оффлайн negativ72rus

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

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

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

Так же рекомендую допаять последовательно два диода, в D3. Мой картридж после этого перестал греться.
Хм, вроде пошла прошивочка )
А при дампе тоже срабатывает --coolboy-submapper ?

Оффлайн moonbeast

  • Пользователь
  • Сообщений: 9
    • Просмотр профиля
Хм, вроде пошла прошивочка )
А при дампе тоже срабатывает --coolboy-submapper ?

Скорей всего, но, честно говоря, я убил данные со своего карика раньше, чем дошёл до submapper3. Мой дамп не читается эмулятором тоже.

Оффлайн negativ72rus

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

Добавлено позже:
Скорей всего, но, честно говоря, я убил данные со своего карика раньше, чем дошёл до submapper3. Мой дамп не читается эмулятором тоже.
Похоже что не работает. Ром забит нолями. Что-то осмысленное из этого карика вытаскивали только ранние версии дампер клиента. Но они на эмуляторе тоже не работают. Ноя в инете нашел рабочий дамп этого карика, так что не страшно.

Оффлайн negativ72rus

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

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

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

Так же рекомендую допаять последовательно два диода, в D3. Мой картридж после этого перестал греться.
Рано я радовался. Карик прошился, менюшка запустилась. Запуск любой игры - черный экран. Сброс\питание - нет запуска меню. Черный экран до следующей прошивки. Хз что ему не хватает...

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

Так же рекомендую допаять последовательно два диода, в D3. Мой картридж после этого перестал греться.
Вы были правы, нужно было пересобрать ром актуальной версией билдера с сабмаппером 3. Тестовый ром запустился и работает. Демки\игры стартуют.
Спасибо огромное! Пойду ваять свой карик мечты :)
« Последнее редактирование: 09 Март 2023, 18:28:58 от negativ72rus »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
А такой еще вопрос, сори если не по теме. Есть способ вытащить ром конкретной игры из оригинального многоигрового рома с китайского карика?
Самый простой способ - скачать ром этой игры из инета, по сигнатурам найти в дампе PRG и CHR регионы (скорее всего они будут не рядом, надо искать отдельно), вытащить и собрать в ром, приклеив nes хидер.
Если же там что-то совсем уникальное и похожих образов не найти - тогда смотреть в эмуляторе как оно стартует и определять смещение и размер PRG и CHR.

Оффлайн negativ72rus

  • Пользователь
  • Сообщений: 205
    • Просмотр профиля
Самый простой способ - скачать ром этой игры из инета, по сигнатурам найти в дампе PRG и CHR регионы (скорее всего они будут не рядом, надо искать отдельно), вытащить и собрать в ром, приклеив nes хидер.
Если же там что-то совсем уникальное и похожих образов не найти - тогда смотреть в эмуляторе как оно стартует и определять смещение и размер PRG и CHR.
Угу, спасибо. Что-то подобное я и пытался сделать. Но мое кугн-фу оказалось не достаточно сильным.

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Угу, спасибо. Что-то подобное я и пытался сделать. Но мое кугн-фу оказалось не достаточно сильным.
Там что-то уникальное в этом сборнике? Если да - могу вытащить, скинь дамп.

Оффлайн negativ72rus

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

Оффлайн moonbeast

  • Пользователь
  • Сообщений: 9
    • Просмотр профиля
Точнее работает но с графическими глюками. На карике 150 в 1 она была и работала отлично.
А если сделать тест по зажиму SELECT+RESET, сколько CHR SRAM показывает такой картридж?

На моём карике наблюдаются графические глюки, например на Gryzor (Первой японской контре с заставками), Silver surfer, Kira Kira DX, Astro Ninja Man.

Но у меня немного другая история: картридж YH2018A/SMD168L7 был без распаянной PRG SRAM(U4), а CHR SRAM (IC8) был 128k. После запайки U4 стал запускаться, например, Robocop 3 и ушли глюки из Zelda, "внутренний" SRAM тест картридж проходит без ошибок.
Через скрипт PrgRamTest.cs ошибки есть — но я так понял, это из-за того, что я не знаю, какой маппер указать скрипту для SMD133(AA6023B submapper 3) маппера. Кстати, подскажите пожалуйста, кто знает, какой маппер указывать для этого картриджа в этом тесте?

С номером маппера разобрался - 268.

А вот после замены CHR (IC8) на K6T2008V2A-YF85, тест в картридже упорно показывает CHR 128k. Подумал, память битая, запаял K6F2008U2E-YF70 (которую мне max5775 прислал, проверенную), то же самое. Картридж пишет CHR 128k.
Тест ChrRamTest.cs выдаёт ошибки, но в нём уже нет выбора маппера:
...
Mismatch at 1BFB: 7E != D6
Mismatch at 1BFC: A3 != E4
Mismatch at 1BFD: 39 != 5B
Mismatch at 1BFE: 4E != F8
Mismatch at 1BFF: A9 != 33
Problems on line A10 @ PPU
Problems on line A11 @ PPU
Problems on line A12 @ PPU
chrramgood.bin writed
chrrambad.bin writed
ERROR: Failed!

Пока не разобрался, куда должны идти эти A10-A12. Между собой или с другими адресными линиями они не замыкаются.

Может мапперу SMD133(AA6023B submapper 3) нужно как то "сказать", что будет использоваться CHR 256k при инициализации? Программно или перемычками? Пока запаял J4, как на подробных фото от negativ72rus(за что ему спасибо), но и без J4 оно работает также.


Проверяю на AV Famicom.
« Последнее редактирование: 28 Март 2023, 06:02:52 от moonbeast »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Может мапперу SMD133(AA6023B submapper 3) нужно как то "сказать", что будет использоваться CHR 256k при инициализации? Программно или перемычками?
Если тестилка работает именно с регистрами SMD133, а не MMC3 например, то ничего говорить не нужно. Можно прозвонить соединение пин12 маппера и пин9 CHR RAM (A17).
Разводка этих картриджей бывает весьма творческая, адреса могут и перетасовать.

Оффлайн moonbeast

  • Пользователь
  • Сообщений: 9
    • Просмотр профиля
Тест ChrRamTest.cs не использует маппер, и он так же не работает на карике 150 in 1, на котором идёт например Kirby.

Кто-нибудь может поправить его, что бы заработал для SMD133/AA6023B sub3 ?

Линии A10-A12 на которые ругается тест идут в маппер на CA10-12, и потом от маппера идут с соответствующих VA10-12 линий на PPU A10-A12 разъёма карика.

А вот CHR RAM A17 (pin 9) у меня каким то фигом замкнут на VCC, это я проглядел, конечно. (Но в маппер он приходит корректно, на CA17(pin 12)). Это конечно странно, визуально всё норм, наверное, под микрухой сопля. Спасибо, разберусь с этим. У меня появился 150 in 1, в котором всё нормально. Продолжу эксперименты на нём.

Прилагаю картинку, в скобках номер пина.
UPDATE: да, проблема похоже в CHR RAM A17 замкнутом на VCC. на 150 in 1 всё работает корректно, Контра, Kira Kira DX, и другие, требующие 256K CHR. Тест в картридже показывает корректно 256К CHR; а SRAM тест, кстати FAILED.
« Последнее редактирование: 30 Март 2023, 14:36:38 от moonbeast »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
А есть фото без CHR RAM?
Посмотрел что за ChrRamTest.cs, да он вообще про мапперы не знает и естественно будет фейлиться так как на неинициализированном MMC3 все страницы CHR нулевые, т.е. дублируются в адресном пространстве.
CA17 с маппера идет через переходку под буквой A.
Есть SMD168L6, разводка похожа, если не идентична:
« Последнее редактирование: 30 Март 2023, 20:37:39 от mutabor »

Оффлайн moonbeast

  • Пользователь
  • Сообщений: 9
    • Просмотр профиля
А есть фото без CHR RAM?
Есть, но я не снял каптоновую ленту, при фотографировании. Когда буду снимать микросхему, сделаю обязательно получше.

Похоже пора делать отдельную тему по этим SMD168L карикам, а то не совсем по теме трэда получается.
За фотки спасибо, отличное качество, у меня как раз был интерес посмотреть другие ревизии. Уже видел L5, L6, у меня L7. Но самый интересный, например для попытки репродукции SMD173 - у него все микрухи на одной стороне и батарейка сразу разведена.
« Последнее редактирование: 31 Март 2023, 06:53:31 от moonbeast »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Есть, но я не снял каптоновую ленту, при фотографировании. Когда буду снимать микросхему, сделаю обязательно получше.
Да норм, место под микросхемой открыто, а остальное мне не интересно - есть свое. Интересно было бы еще фото разводки под флешкой.
Сравнил разводки - они идентичны. CA17 разведен как надо и должен работать. Если нет залипов или еще каких косяков - возможно косячный маппер. У меня есть один с отгоревшим одним адресом. В принципе если есть большое желание - можно содрать каплю и заменить маппер - эти мапперы продаются отдельно на алике.
Похоже пора делать отдельную тему по этим SMD168L карикам, а то не совсем по теме трэда получается.
Тоже об этом думаю, хотелось бы как-то упорядочить инфу по этим новоделам. У меня есть еще несколько типов, и не только SMD. Думаю как лучше организовать инфу чтобы не было свалки.

Оффлайн gegmaster

  • Пользователь
  • Сообщений: 93
    • Просмотр профиля
По поводу теста памяти через дампер, тоже столкнулся с такой проблемой. Пришлось обратиться к Кластеру. Вот что он сказал:
Цитата
TestChrRam.cs только для простых мапперов типа UNROM

Просто никому вроде не надо было COOLBOY проверять, я не заморачивался :)

И по просьбе написал тест для кулбоев.

* CoolboyTests.zip (2.12 КБ - загружено 103 раз.)

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Вскрыл новодельный маппер TEC9719 (точнее даже 2, но во 2й китайцы забыли положить чип :lol:). Это не SMD133, но во многом схож (распиновка и регистры частично совпадают), хотя и имеет существенные отличия: поддержка MMC3+UxROM+AxROM, поддерживает меньший объем флеша - до 4МБ с CHR 256К либо 8МБ с CHR 128К, а также особенность записи - в прошивке дампера нужно отключать M2, иначе будет постоянно ресетаться.
« Последнее редактирование: 19 Апрель 2023, 19:15:48 от mutabor »

Оффлайн KykyPyky

  • Пользователь
  • Сообщений: 516
    • Просмотр профиля
mutabor, маркировка TEC3719 была на пластике корпуса или на самом кристале?

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
mutabor, маркировка TEC3719 была на пластике корпуса или на самом кристале?
На кристалле же, смотрите 2ю картинку. Маркировки на корпусе там нет - капля же.
Мне этот маппер встречался на платах AS-Z-19 (кстати весьма годные платы - со стабилизатором 3.3v, возможностью добавить PRG RAM, которая работает лучше чем с SMD133, шьются без пайки), которые в свою очередь в картриджах ГеймКард AA-2489, AA-2513.
Также весьма вероятно он на этой плате https://www.emu-land.net/forum/index.php/topic,85984.msg1543711.html#msg1543711 в паре с регистром для старших адресов.

Оффлайн Dianismult

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
Приветствую господа форумчане. Приобрел я один из самых дешевых картриджей недавно, 600 в 1, маппер скрыт под каплей. Плата вроде и похожа на Mindkinds, но это не она. Не могу его сдампить дампером Кластера, прога пишет что не может определить версию coolboy. Судя по дорожкам распиновка отличается от стандартной smd133. Пробовал отключать проверку в скрипте дампера, тогда дампит одни FF. Снял образ с флешки программатором, отыскал в дампе код меню, судя по коду запуска игр используются регистры $4800-$4803. Подскажите может кому попадался такой картридж, реально ли его сдампить дампером и перезаписать.  WRAM допаял самостоятельно, в надежде на удачный эксперимент...
« Последнее редактирование: 17 Апрель 2023, 16:08:08 от Dianismult »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Dianismult, eсли прошивка сливалась программатором - есть фото со снятым флешем? Тогда можно определить пригоден ли он прошивке дампером. Да и в принципе желательно более качественные фото.
Попробуй сдампить как безмапперный и как MMC3. Если флеш жив - одни FF не должны дампиться.
Разводка в некоторых местах прям 1 в 1 как у SMD168L6 (фото выше в этой теме).
« Последнее редактирование: 17 Апрель 2023, 19:31:04 от mutabor »

Оффлайн Dianismult

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
mutabor, Спасибо за ответ. Флеш более чем жив, сам картридж работает. Не догадался сделать фото без флешки, пробовал дампить как ммс3 и как nrom, так же одни FF. Из дампа с программатора я вытащил код меню, и он показал что особо не отличается от кода coolboy, только регистры другие. Поэтому у меня подозрение что дампер с ним не справится без доработок, либо есть какие то еще параметры о которых я не знаю. А пиновка маппера не похожа на smd133 я визуально сравнивал.

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
А в приставке он работает? В дампе именно все FF или только почти все? Все FF в дампе - это очень странно - даже если маппер не управляется должна сдампиться стартовая страница, в которой есть стартап код. Если все FF - значит проблема не в мапперре, или не только в маппере.
Да маппер определенно не SMD133, но схожесть разводок указывает на то, что эта плата не с нуля сделана, и есть хорошие шансы что она прошивается, т.к. SMD168 прошивается.

Оффлайн Dianismult

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
mutabor, ДА действительно по мимо FF присутствуют несколько байт порядка 30, и вектора находятся на своем месте, и как раз на эти данные ссылаются. Очень похоже на какую то инициализацию. Это дамп в режиме ммс3. Судя по дампу с флешки, данные сильно не полные. Все равно не понятно как же его сдампить.

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Выложи дампы, гляну.

Оффлайн Dianismult

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
В архиве дамп который пробовал считать дампером в режиме ммс3, и в режиме coolboy размером 1мб. Еще ссылка на полный дамп с флешки, код меню как я понял начинается с адреса 1f0000, могу ошибаться.
https://cloud.mail.ru/public/9qQV/MuTxg96yR

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Практически разобрался с этим маппером. По сути это сильно модифицированный SMD133.

Registers:

Reg base = #4800

R0.0..2   P: PRG SIZE = 16k*2^P (P=0 size=16k, P=7 size=2m)
R0.5   0 - startup mode, PRG bank fixed to 0x3f; 1 - normal mode
R0.6   lock MMC3 registers
R0.7   0 - NROM8K mode; 1 - MMC3 mode

R1   PRG A13..20

R2.0..3   PRG A21..24

R3.0..4   CHR A13..A17 for NROM8K mode

MMC3 RA001.6   disable flash write

Видно что регистры теперь упорядочены, а не распиханы по всем щелям как у SMD133.

Для примера (4 байта - значения регистров, число - задаваемое смещение в дампе):
Menu (MMC3 2M):
PRG   А7 00 00 00   0000000

Contra konami (MMC3 128k):
CHR   a3 90 0a 00   1520000
PRG   a3 c0 02 80   0580000

ANTARCTIC ADVENTURE (NROM 16k)
CHR   a3 61 0f 00   1EC2000
PRG   a0 52 09 90   12A4000

1942 (NROM 32k)
CHR   a3 bf 0e 00   1d7e000
PRG   a1 f0 06 90   0de0000

В аттаче прошивка дампера, которая нормально работает с ним. Также прикладываю пропатченную менюху, которую можно запустить на эмуле.
P.S. А игр там 430 а не 600, потом начинают повторяться. И тут наипалово :lol:.
UPD: Выяснил, что ром называется 8B3179ic6023 без X, а X - это младший байт числа игр 600 = #0258, #58 = 'X'. Так что пока непонятно как называть этот новый маппер, пока будет зваться по имени платы KJ10A.
« Последнее редактирование: 05 Май 2023, 21:37:43 от mutabor »

Оффлайн Dianismult

  • Пользователь
  • Сообщений: 12
    • Просмотр профиля
mutabor, СПАСИБО за проделанную работу, и такой развернутый ответ. Мозгов конечно у меня не хватит все это осознать, но думаю покопаю дальше.

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Ну допустим кластеровский дампер поправить совсем просто:
UInt16 coolboyReg = 0x4800; //or make detect & switch

var r0 = (byte)0xa0; // 16k PRG page
var r1 = (byte)((bank << 1) & 0xff);
var r2 = (byte)(bank >> 7);
var r3 = (byte)0x10; // NROM mode

Оцените, насколько сократился код по сравнению с тем, что было :). Надеюсь куда и вместо чего это надо вписать - понятно.
Также обновил фото маппера TEC9719 в посте выше (да, название теперь верное). Интересно, 1998 это реально год его разработки? Тогда возможно он стоял даже в стародельных кариках, а SMD133 видимо делался по его образу и подобию.
« Последнее редактирование: 02 Май 2023, 19:27:37 от mutabor »

Оффлайн mutabor

  • Пользователь
  • Сообщений: 380
    • Просмотр профиля
Завершил исследования маппера KJ10A, обновил инфу выше. Он таки нормально шьется дампером, нужно только активировать прошивку через регистр (см. пост выше).
По итогу к сожалению ничего кроме MMC3 он не может, по сути просто аналог SMD133. Свободной PRG RAM у меня нет чтоб проверить нормально она работает или глючит как с SMD133.
В отличие от SMD133, который стартует в MMC3 режиме, этот стартует в своем NROM8K, по этому нормально не дампился как MMC3. Также у него нет поддержки NROM16K/NROM32K, но их можно сделать конфигурацией регистров MMC3. Также нельзя залочить запись в регистры маппера, одна надежда что игры не будут туда ничего писать. По прошивке видно, что китайцы типа пытались его лочить и включать NROM как в SMD133 записью 0x80/0x90 в R3, но по факту это бесполезно, в MMC3 режиме R3 вообще не используется, а режим устанавливается в R0.

Add: Закончил с тулзами, прошивается и работает

Изменения кода дампера:

        const ushort RegBaseV1 = 0x4800;

        public void DumpPrg(IFamicomDumperConnection dumper, List<byte> data, int size)
        {
            dumper.Reset();
            version = DetectVersion(dumper);
            UInt16 baseReg = (UInt16)(version == 2 ? 0x5000 : RegBaseV1);
            int banks = size / 0x4000;

            dumper.WriteCpu(baseReg, 0xa0);
            dumper.WriteCpu(0x8000, 0x06, 0);
            dumper.WriteCpu(0x8000, 0x07, 1);
            for (var bank = 0; bank < banks; bank++)
            {
                var r0 = (byte)0xa0; // 16k PRG page
                var r1 = (byte)((bank << 1) & 0xff);
                var r2 = (byte)(bank >> 7);
                var r3 = (byte)0;
                dumper.WriteCpu(baseReg, r0, r1, r2, r3);

                Console.Write("Reading PRG bank #" + bank + "/" + banks + "... ");
                data.AddRange(dumper.ReadCpu(0x8000, 0x4000));
                Console.WriteLine("OK");
            }
        }


И прошивальщика:

        public static void SetCoolboyBank(IFamicomDumperConnectionExt dumper, int bank, ushort coolboyReg)
        {
            dumper.WriteCpu(coolboyReg, 0xA0); //enable MMC3 access
            dumper.WriteCpu(0xA001, 0x00); //enable write signal
            dumper.WriteCpu(0x8000, 0x06, 0);
            dumper.WriteCpu(0x8000, 0x07, 1);
            var r0 = (byte)0xE0; // 16k PRG page, block MMC3 access
            var r1 = (byte)((bank << 1) & 0xff);
            var r2 = (byte)(bank >> 7);
            var r3 = (byte)0x0;
            dumper.WriteCpu(coolboyReg, r0, r1, r2, r3);
        }

Сборщик ромов в аттаче, иструкция в readme.txt
Upd: багфикс.
« Последнее редактирование: 29 Май 2023, 21:27:21 от mutabor »

Оффлайн Retrobit

  • Пользователь
  • Сообщений: 9
    • Просмотр профиля
Здравствуйте!
Подскажите, пожалуйста. Данный картридж можно перепрошить?
266691-0266693-1