MiGeRA / FlashKit-MD-Plus

Продвинутая и расширенная редакция утилиты работы с интерфейсом (программатором) перезаписываемых Sega MegaDrive/Genesis картриджей – FlashKit MD
12 stars 5 forks source link

Поддержка MSP55LV650 #1

Open murgatroid79 opened 2 years ago

murgatroid79 commented 2 years ago

Привет. Прежде всего хочу сказать спасибо. Благодаря твоим трудам,я сегодня прошил картридж с микросхемой MX29L3211 !!! 3211 Так получилось,что в процессе поиска обучающих приставок на базе SEGA я за копейки купил около сотни таких картриджей от клавиатурного клона Киборд005 ( CyberShell ). Я распаял на таких платах MX29LV160...,но это только 2Мб,а при заказе этих микросхем на глаза попалась 3211 ну и заказал пару штук. Но мой программатор (TL866) не смог её прошить...Потом я поглядывал на проект " MegaBurner",даже шилд со слотом под картридж на ардуину спаял...но что-то не заработало у меня....Ущё из платы DVD сделал программатор,но он тоже не осилил эту микрушку. Но вот,наконец-то!!!! Спасибо тебе огромное!!!

А теперь ,собственно,вопрос. Обнаружились ещё микросхемы в корпусе SOP44: MSP55LV128 на 16Мб (я считывал такую в четыре захода https://www.emu-land.net/forum/index.php/topic,86079.msg1508490.html#msg1508490 ) Ну их в продаже уже нету,зато есть MSP55LV650 на 8Мб https://aliexpress.ru/item/1005002377323208.html?_ga=2.45078306.725654718.1661453179-833532989.1580224318&mp=1&sku_id=12000020415904109&spm=a2g2w.cart.0.0.7b354aa6eTsZfe

Реально ли доработать FlashKit-MD-Plus так,чтобы прошивать эту микросхему?

MiGeRA commented 2 years ago

Приветствую! Сорри за задержку с ответом … Не поверишь, только сегодня и то случайно обнаружил что тут на гитхабе есть закладка где могут писать мне отзывы и более того: мне пишут! Приятно, что не только я пользуюсь результатами своего творчества. Думал что только боты копируют репозитории автоматом сразу после их публикации, а так посещаемость тут меньше даже чем у меня на сайте.

По теме MSP55LV128:

Доработать – не вопрос! Нужен даташит на микросхему с описанием команд и алгоритма ее программирования, но я его навскидку не нашел. Можно конечно попробовать «отбомбить» ее уже реализованными алгоритмами для других микросхем (отключив проверки) … Вцелом FlashKit удобный инструмент и с той или иной степенью оптимальности его можно заставить «прошить» любую микросхему (с 16-битной шиной данных в рамках мегадрайв-картриджа). А если переписать (апгредить) конфигурацию в его FPGA, то и оптимальность повысить (пока этого прям-так-позарез не требовалось). Но это с точки зрения софта. А на какую плату картриджа ее распаивать будем? Или уже есть реализация? Т.е. чтоб подключение было корректное (и к программатору и к приставке). Так например порой даже одной серии но разного объема микросхемы по ногам не всегда вперед-назад совместимы даже по минимальному объему. В мой вариант платы флэш-картриджа «один-в-один» подходят далеко не все SOP-44 даже размером 4Мбайта (уж не говоря про другие размеры). Для отладки неплохо иметь железо (а не только по даташиту кодить): MSP55LV128 у меня нет (в первый раз про такую услышал если честно). Покупать? На алишнике продаются сейчас и 29L3211 и 29LV320 в SOP-44, причем дешевле чем 55LV128 – и под первые уже есть плата и код. В планах нарисовать плату картриджа под TSOP-48 (они еще дешевле) и сделать ее двухрежимной: чтоб и на 8Мбайт микросхемы могли работать в линейном режиме тоже – для мортал-комбатов там всяких, бэд-эплов и прочего самопала (то, что на эвердрайве в режиме M10 запускается).

PS. TL866 у меня тоже есть – он хорош для восьмибитных ПЗУ. И если Дендёй я занимался в прошлом (тогда этот программатор неплохо помогал), то другими приставками с восьмибитной шиной картриджа, как SNES (технологический урод – даже смотреть в её сторону противно, как технарю) или N64 (ошибка маркетологов в части отсутствия CD-ROM, но с потрясающим «вычислительным ядром») - не занимаюсь. Хотя N64 в планах для творчества стоИт, и в железе вместе с эвердрайвом есть ;-) Под TL866, кстати, есть опенсорсный софт под линукс, я его под винду собрал – см. на сайте у меня если интересно.

murgatroid79 commented 2 years ago

Привет. Рад что откликнулся. Касаемо даташитов и распиновки микросхем серии MSP55LVxxx всё плохо... MSP55LV128 у меня одна,снята с приставки CyberSmart и пересажена на платку: MSP55LV128M Большая часть сигналов определена методом прозвонки со слота самой приставки: MSP55LV128M распиновка а считывал такую микросхему на TL866 в четыре захода(16 Мегабайт всё-таки),меняя логические комбинации на А21 и А22 : 00 ;01 ;10 ;11. MSP55LV650 у меня две штуки,одну запаял на картридж и поэксперементировал с помощью паяльника и твоей модификацией FlashKit-a. Поначалу отталкивался от полученной ранее распиновки 128-й и сигнал !WE кинул проводком на 44-ю ножку микросхемы,но софт ругался,по кнопке "Cart info" выдавались какие-то немыслимые объёмы,но с отрицательным знаком!!! После энного количества комбинаций со старшими адресами,сигналами !WE и !BYTE объём стал определяться в 2 Мегабайта и считалось что-то осмысленное.В конце дампа похоже дата и название игры : "20060421 (C) Newgin Nobunaga No Yabo ... Но ни стереть,ни записать на микросхему ничего не вышло. Может тебе на опыты отправить одну?

murgatroid79 commented 2 years ago

А на какую плату картриджа ее распаивать будем? Или уже есть реализация? Т.е. чтоб подключение было корректное (и к программатору и к приставке).

Так на разработанный тобой картридж и распаивать,хотя-бы в качестве эксперимента.Чтобы разъём картриджа стандартом был. Как-раз для "Bad Apple" и "titan-overdrive2" хотел картридж сделать ...

P.S.:А как тут дамп приложить?

MiGeRA commented 2 years ago

«Cart Info» - это кнопка с куском кода унаследованного в части определения размера полезной информации на картридже из стокового исходника, в котором предполагалось (видимо) что картридж будет либо а-ля оригинальной одноигровкой классического размера до 4МБайт, либо одним из двух предлагаемых автором к данному программатору (с микросхемой на 4МБ без ОЗУ и батарейки или на 2МБ с ними – т.е. M29W320 или M29W160 соответственно, под них же и софтина стоковая). А алгоритм определения размера (при беглом его анализе) основан на детекте начала зеркалирования пространства памяти картриджа, если микросхема не максимального объема. Прогонять его по картриджам с мапперами бессмысленно (т.е. некорректно), как и по картриджам с подключением ПЗУ, отличным от классических сеговских (до 4Мбайт). Я добавил к этой кнопке также анализ размера информации в заголовке, чтоб не делать овердампов, когда микросхема памяти большая, но стерта не полностью (ведь стоковый вариант софта стирает только нужное пространство от начала и оставляет старую и де-факто мусорную инфу в конце). Как способ борьбы с овердампом сначала были сделаны кнопки запускающие алгоритм полной очистки чипа, потом также добавлен анализ заголовка. В любом случае эта кнопка (как и вся софтина) это экспериментальный «продукт», который я в исходниках постарался куда как более френдлёво оформить и прокомментировать чем это было изначально. Излишний и закомменитрованный код также призван помочь найти нужное решение в каждом конкретном случае. Как «продукт из коробки» FlashKit-MD-Plus отлажен только на анонсируемых в описании микросхемах (их немного, но они недорогие и доступные). В функционале этой кнопки важнее не размер, а идентификаторы производителя и марки микросхемы. И даже не как таковые, просто если мы их прочитали (отличными от 00 или FF), это уже означает что микросхема понимает наши команды записи, принимая их (ногу WE скоммутировали правильно) – и есть фактически зеленый свет к функциям стирания/записи массива памяти.

Как известно, при одинаковом корпусе (SOP-44 в рассматриваемом случае) большая часть ног имеет фиксированный («прибитый гвоздями») функционал вне зависимости от объема памяти микросхемы. Но часть ног имеет различный функционал в зависимости от объема (первые и последние по нумерации – «верхняя часть» корпуса): при меньшем объеме у микросхемы больше управляющих и информационных линий и даже неиспользуемые ноги остаются. С ростом объема растет количество линий адреса и этот «резерв» расходуется. Но вот в каком порядке его расходовать каждый производитель решает, к сожалению, самостоятельно! Вслед за пустыми ногами пропадает отдельный вывод WP (защита от стирания), VPP, потом RP (сброс), в крайнем варианте отказываются даже от 8-битного режима, используя ногу BYTE (как в MX29LV640) … Это я к тому, что без распиновки фантазировать с поножовщиной творчество еще то: даже привязка WE не фиксирована. «Брутфорсить» распиновку? – лениво ... это я давным-давно генератором случайных последовательностей «вскрывал» алгоритм управления программатором PGM-02 и писал (вместе с товарищем) замену «черного ящика» в нем на PIC-контроллере, а потом и софт под винду. Щас предпочитаю по красоте и по документации работать даже в рамках хобби.

А еще тут недавно при чтении очередной книжицы любимого жанра «техническая документация», с главным героем в лице вполне современной, емкой и быстродействующей флэшки под названием MX26L6420, был крайне удивлен одной из характеристик. Не поверил глазам, перечитал (думал опечатка, прошелся по всему тексту и всем таблицам – но нет). Просто уже как-то вроде привыкли, что у флэш-ПЗУ гарантированное количество циклов стирания, например: у MX29LV320 = 100тыс. раз; у MX29L3211 = 10тыс. раз (хоть и в десяток раз меньше, но тоже не мало, а с учетом меньшей цены - норм.); а у MX26L6420 = 100 раз (не тысяч, а штук! – что имхо «сушите весла», как говорится, деградируем а не развиваемся). Для чего привел пример: стоит ли вообще заморачиваться с серией MSP55LVxxx ? Ресурс у нее какой, к слову? Неизвестно (надо понимать, и отталкиваться от худшего) … Думал сначала что ее производитель Microchip, погуглил, оказалось что ваще Fujitsu (не знаком с ним как с производителем флэш-памяти). Раньше (лет 10-20 назад) хорошие и доступные ПЗУ были Intel и AMD, потом постепенно перешли на ST и MXIC … А тут непонятный новодел, да еще и без документации, м-да. Вобщем в современных реалях ориентируюсь и предлагаю ориентироваться на продукцию двух последних марок (ретро микросхемы AMD и Intel если только с распайки брать, покупать их неразумно дорого имхо).

PS. Почта россии драконовские цены за пересылку (даже внутри страны) ломит, вероятно дешевле выйдет купить и заплатить за доставку из китая … У тебя реально этих плат (что на фотке) под сотню? А штатно у них разводка под какой объем микросхемы? (фотку без микросхемы приложи). И какая микруха там в стоке впаяна?

PPS. Кстати, у тебя же есть Взломщик кодов - смотрел проект Mega-CC? Тестировал? А я тем временем написал альтернативный конфиг реализации маппера взломщика … Сейчас жду панельки под PLCC-44 и макетки для отладки. Если все получится (стирать и записывать древние CPLD современными средствами), то много интересного без всякой лишней пайки сделать можно будет: и отладчик начального уровня (перехватывать и обрабатывать не только VInt), и сега-программатор (и не только обходится без флэш-кита и перетыкания картриджей, но и RAM-картридж полно-объемный смастерить – дешевая замена эвердрайва, типа), ну и работу самого взломщика оптимизировать ...

PPPS. Файлы драг-энд-дропом (как картинки) попробуй затаскивать сюда ...

murgatroid79 commented 2 years ago

Спасибо за развернутый ответ.Убедил. MSP55LV650 откладывается в долгий ящик 😜 Тем более она и не была какой-то целью,просто на глаза попала,когда MX29L3211 заказывал.Вот они,(на 4Мб ) и были в некотором роде целью. А теперь, благодаря тебе,цель достигнута. Даже более того,флешкитом прошил картриджи с распаянной MX29LV160 😁 А потом ...получилось прошить сам картридж с микросхемой каплей!!! Два мегабайта получается прошить. IMG20220929161015

murgatroid79 commented 2 years ago

Так,пофоткал картриджи. IMG20220929160338 IMG20220929160415 IMG20220929160540 IMG20220929160607 IMG20220929161121 IMG20220929161057 IMG20220929161216 IMG20220929161138

murgatroid79 commented 2 years ago

Ну и примерное количество IMG20200323152153

murgatroid79 commented 2 years ago

Вот тут я немного описал Киборд005 : https://forums.atariage.com/topic/185904-mega-drive-with-a-keyboard/

MiGeRA commented 2 years ago

Ух-ты ё! В коробке они минимум в три слоя, обалдеть ;-0))) Конфискат? Отсыпешь чуток?

А стоковая «капля» (как я понял) оказалась еще и флэшкой? – век живи, век удивляйся. Однако не исключено (т.е. вполне вероятно) что циклов перезаписи у такой флэшки очень не много, но десяток наверняка есть (сотня циклов, как приводил пример выше, оказалась не пределом аскетизма – заглянул в даташит на MX26L12811: а там всего 10 …). Но в любом случае «не для отладки», а для финального применения и десятка хватит. Можешь выпускать тираж собственного софта теперь, только наклейки новые сделать осталось ;-)

Благодарю за фотки. Получается что плата практически идентична «моей белой», разве что сигнал WE не разведен. Но провод можно имхо и не паять (если не в отладочных целях применять) – обжатый проводок можно и без пайки к слоту программатора подрубить в параллель картриджу (как я это делал и задокументировал в проекте «флэшеризации» картриджа). Ну и цепь питания на двух диодах (а не стабилизаторе, как в моем варианте), но я стабилизатор использовал только в первом экземпляре – потом вместо него паял светодиод (подобранный по напряжению), суть та же но имхо прикольно что он активность еще визуализирует. В твоих платах тоже есть практически готовое место для светодиода в качестве стабилизатора: в районе «LEIC5» зачистить дорожку и для smd-корпуса размера 0805 как раз (пару штатных диодов выкидываешь при этом, кстати вот электролит там вообще никчему в любом случае). Светодиод подобрать по напряжению (они все ооочень разные в зависимости от цвета и модели).

Насчет размера «капли»: можно поэкспериментировать с разрезанием/замыканием тест-поинтов на ее адаптере, может и на 4МБ ее включить получится. Аппаратный идентификатор какой у нее кстати? И каким алгоритмом ее прошить удалось?

А вот «осминожка» загадкой пока для меня осталась – глянул как она подключена … Да она питается и принимает в себя три входных сигнала, при этом НЕ имея подключенных к.л. выходов из нее к приставке или ПЗУ. Как так? Это шпионский радио-модуль? ;-)) Получает она сигналы с линий B12,13,14 т.е. #YS, #VSync, #HSync – эти сигналы дополняют информацию о картинке генерируемой VDP в формате сигнала RGB, из штатного применения они используются аппаратным аддоном 32Х и позволяют совмещать в одном кадре слои изображения сразу с двух видеопроцессоров. Отбросив конспирологию остается предположить что используется какая-то недокументированная фича с этими сигналами (это как взломщик кодов сбрасывает систему через #M3, хотя для этого есть вполне определенные другие линии).

По Киборду-005 линки тоже посмотрел. Улыбнуло то, как наши отечественные разработки востребованы в штатах … а купить им не так-то просто ;-)

PS. Для обмена информацией и контентом, можешь черкануть мне на е-мэйл аналогичный нику и такой же домен в зоне .ru

murgatroid79 commented 2 years ago

Отсыплю,без проблем 😉

Откуда картриджи продавец мне не сознался. На gbx он продавал обучающие картриджи да денди и сегу,лотами по 4 штуки.Я сеговские выкупил штук 12 на опыты...а в переписке уже он предложил около сотни... ещё и подешевле. Я и взял все сеговские и штуки 4 дендёвых. Продавцу ещё писал,спрашивал не был ли он связан с производством,но ответа не получил. По поводу восьминожки и контактов на слоте я чуть голову не сломал...оказалось в этом Киборде005 на этих контактах не штатные сигналы Sega,а свои какие-то. Какая-то защита.Если восьминожку снять,на экране напишет: illegal copy... А на плате обучалки есть ещё бескорпусный чип(капелька на маленькой плате с разводкой под DIP16).Вроде как "голосовой чип" ,связан с аудиотрактом,и восьминожкой в картридже.На шелкографии надпись speech. Была версия что восьминожка это память для звукового чипа,так-как существует в природе ещё пара картриджей (для изучения английского языка),но от этой версии пришлось отказаться.Восьминожки в обычных и "языковых" картриджах взаимозаменяемы. На эмуленде есть немного информации о этой системе,но она распылена по разным топикам. https://www.emu-land.net/forum/index.php/topic,65837.msg1265453.html#msg1265453

https://www.emu-land.net/forum/index.php/topic,86079.msg1514830.html#msg1514830 Теги для поиска Cyber Shell, Комбат 16,Киберзнайка.

У меня ещё есть Магистр16 с дисководом https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.nedopc.org/forum/viewtopic.php%3Ft%3D9360&ved=2ahUKEwjKsYGtnb36AhVnkIsKHUnCCqEQFnoECAgQAQ&usg=AOvVaw1XMhI5Nk5m8uUCy3zEC6xh И его "младший брат" Магистр Бакалавр (Вот для них и нужны были флешкарики на 4Мб) И ещё есть китайский Magic Teacher: https://www.emu-land.net/forum/index.php/topic,81057.0.html

Угадай,что у них всех общего? 😜

PS.: Что-то я не смог на е-мейл тебе написать😬 Моя почта: murgatroid_79@mail.ru

MiGeRA commented 2 years ago

Самопальщики «Киборд-мэйкеры» покусились на распиновку слота значит – печально … В смысле неправильно с инженерной точки зрения это! При желании защиту от копирования и в джойстик засунуть можно было. Но при таком раскладе ничего удивительного не остается. По трем проводам много разных интерфейсов реализовать можно. Навскидку я бы I2C предложил, если задачу поставили бы мне (два провода всего), или SPI (если еще линию добавить). То что на клавиатурник 32Х не подключишь – хрен бы с ним. Сомнение в другом – картридж с такой осминожкой на официальной сеге коллизий вызывать не будет ни в каких случаях? Хотя зачем он там в оригинале? (но механической же защиты нет!) Так что лучше выпаивать ее сразу …

У тебя, кстати, есть 32Х ? Я себе планирую как-нибудь купить, попрограммить в «нативном виде» так сказать. Под эмуляторы писать и на них отлаживать софт имхо скучно и не интересно. Другое дело на живой машине ;-)) И не на однокристаллке (что по сути тот же эмулятор, хоть и аппаратный) – а на настоящей «рассыпушной» консоли, где в каждую точку можно осциллографом ткнуться или анализатором (если очень нужно будет), оценить нагрев ее компонентов, распаять все по панелькам и протестить разные микросхемы в действии (путем легкой замены), с оверклоком поколдовать ;-0.

По ссылкам фотки для коллекции сохранил, но там многие линки (на яндекс.диск) мертвые уже, местами ракурсы неудачные имхо.

С дисководом забавный вариант. Там плата микросхемами вниз получается стоит? И слот для Sega-CD слева а не справа – зачем? – в таком исполнении к нему все равно уже не подключиться (даже если пластик корпуса позволит). Размер дискеты в 1.44МБ маленький даже по меркам 90-х был (DOOM2 был на трех дискетах), разве что как для переносимости документов между разными архитектурами … А для хранения даже в рамках игровой консоли флэш-ПЗУ выгоднее со всех сторон. Таже Intel PA28F400 (которой я флэшеризовал картридж) была доступна еще в 1992 году минимум. А флэш-ПЗУ в МегаДрайве можно даже прошивать внутрисхемно! Пример реализации я показал в Mega-CC. Никакой дополнительной «памяти на батарейках» не нужно (как и её более дорогой альтернативы без батареек - FRAM) – можно все данные сохранять здесь же, в единой флэш-ПЗУ. Даже 10тыс. перезаписей у MX29L3211 хватит за глаза чтоб в хвосте у нее организовать «хранилище». Для минимизации перезаписей можно (заморочиться и) организовать хранение в виде связанного циклического списка (как в свое время Интел рекомендовал в апп-нотах).

Лучшее применение дисковода нынче – это что-то вроде такого пожалуй ;-)

PS. Эму-лендовский форум не перевариваю … Там толковых 3 – 4 человечка (не буду ники перечислять), а остальные, включая админов, только щеки надувают да сопли пускают от богатства ума не иначе: время убиваешь на серфинг там много, а инфы полезной в итоге около нуля. Ни шапок в ветках нет, ни зачистки флуда … Мрак короче.

PPS. В почту черканул, глянь …