Приставки > Картриджи / диски
SMD Дамп встроенных игр 62 in 1
binturong_reiko:
С одной стороны, тема про железо 4 поколения, с другой вопрос все же о дампе встроенных игр, а это ближе к картриджам, как ни крути.
Да рассудит модератор, и да перенесет он в случае необходимости в нужный раздел тему сию.
Попал в руки клон на tct-6801, а на нем встроенные игры в количестве 62. С обратной стороны платы подложка с bga чипом на 27 дата линий(я так думал), что интересно, они все уходят в 6801, va[1..23] на штатные места, еще четыре на пины с 61 по 64.
Снял, навесил на плату, подключил старшие адреса через пачку переключателей и погнали.
В общем, активных линий 25, при переключении 26й и 27й содержимое не меняется. либо флешка меньшего размера, чем расчитана подложка, либо содержимое записано 4 раза. Итого, общий дамп 64 мегабайта.
Первая "страница" в 1Мбайт содержит меню. Интересно то, что игр там прописано больше двух сотен.
И вот, наконец, вопрос. Кто-то пытался разобраться с этой "многоигровкой" или подобными? Интересует в частности изменение меню, количества отображаемых игр и их состав.
Или если никто до сих пор не разбирался, то может быть тут есть люди, способные помочь, направить или хотя бы пнуть в нужном направлении.
Дамп первого мегабайта прилагаю, эмуль его запускает. Если будет нужно, выложу полный дамп микры.
Эмуляторы, естественно, им давятся и не работают
JRBVZ:
Дампил флэшкитом? Посмотри в этой теме https://www.emu-land.net/forum/index.php/topic,83028.0.html
Там было похожее меню.
Бедная двухвольтовая память :cry:
binturong_reiko:
Спасибо, почитаю.
Да, китайклоном. Сначала пытался софтом Migera, но у него косяк, его софт пытается считывать ровно тот объем, который указан в заголовке, а меня это категорически не устраивало, надо было читать блоками по 1Мб. Взял оригинальную утилиту, вот ей и снял кусками.
Кстати, не знаете, как с Мигерой связаться? Может он тут на форуме есть? Я весь его сайт прошерстил, но контактов не увидел
Да, память там интересная.. В консоли она питается от 3.6 стаба через 1 диод. Я поэтому преобразователь навесил и настроил его на 2.5 вольта, вышло удачненько)))
stargazer:
В TCT-6801 какой-то встроенный маппер :-\ Меню много пишет по "нестандартным" адресам 0xA14ххх и 0xA16xxx
JRBVZ:
binturong_reiko, как вариант, написать в issue https://github.com/MiGeRA/FlashKit-MD-Plus
Оффтоп: я в своем форке развел дополнительные адреса под колодку, но софт и прошивку не трогал, нет у меня таких знаний :biggrin: А так можно было бы шить большие флэшки автоматически. https://github.com/JRBVZz/Flashkit-MD
binturong_reiko:
--- Цитата: stargazer от 26 Январь 2026, 11:40:21 ---В TCT-6801 какой-то встроенный маппер :-\ Меню много пишет по "нестандартным" адресам 0xA14ххх и 0xA16xxx
--- Конец цитаты ---
он явно там есть, потому что есть отдельные /ce и /oe под встроенные игры + этот камень умеет адресовать все 23 линии адреса, да еще и 4 дополнительных есть.
А как вы вообще это видите? можете кратко написать? я постараюсь дальше сам разобраться
JRBVZ, а не пробовали сами с ним связаться, чтобы допилить прогу для вашего варианта дампера? И еще вопрос, у вас печатки лишней не осталось?
stargazer:
Загрузил в дизассемблер (IDA) и посмотрел. Потом добавил пару строчек для логирования обращений по данным адресам в мою сборку эмулятора GenesisGX и запустил этот ром :neznayu:
Используются следующие адреса:
При запуске:
--- Код: ---0000 => A14406
0000 => A14404
4750 => A14408
0000 => A14404
5000 => A16302
1CF1 => A16304
0112 => A16306
0516 => A16310
0417 => A16312
08C0 => A16314
0547 => A16316
0546 => A16318
90C3 => A16300
9BC3 => A16300
--- Конец кода ---
После заставки (splash screen):
--- Код: ---чтение (word) <= A14444
0068 => A1630C
--- Конец кода ---
При запуске выбранной игры:
--- Код: ---0007 => A14406
000x => A14404 (0,3,2,...зависит от выбранной игры)
--- Конец кода ---
Последние 2 записи происходят из RAM.
Что находится по адресам A163xx неизвестно, но в коде эмулятора есть диапазон A144хх, и хотя специальной обработки нет, в комментариях написано, что это "Radica".
Возможно стоит поискать техническую информацию об этой штуке: https://segaretro.org/Arcade_Legends_Sega_Mega_Drive
P.S. Ко мне можно на ты :)
binturong_reiko:
спасибо, поковыряюсь
"по адресам A163xx " в какой-то теме натыкался на конфигурирование дополнительных регистров в mdp(это же сборник судя по сплэшскрину для mdp), типа настройка региона в 6803(или 6801)... надо освежить память
JRBVZ:
--- Цитата: stargazer от 26 Январь 2026, 15:39:08 ---в комментариях написано, что это "Radica".
--- Конец цитаты ---
Скорее всего старая схема:
binturong_reiko:
о, интересно. затупил. надо попробовать урезать дамп до 16 мегабайт и на этой схеме запустить
Добавлено позже:
stargazer, вот, посмотри, это не оно?
--- Цитата: Rumata от 06 Июль 2018, 12:36:59 ---Что-то типа того. Не совсем GPIO, ибо игра умеет обращаться только к стандартному порту, но какое-то переключение режима происходит.
Наиболее подозрительные места:
MOVE.W #$00A0,$00A16106
и
MOVE.W #$3000,$00A16302
MOVE.W #$F0CC,$00A16304
MOVE.W #$7828,$00A16306
Понятно, что $00A1xxxx - это диапазон регистров управления, но сами адреса очень странные.
Там должно быть два момента: настройка джойстика и конфигурирование дисплея по SPI
--- Конец цитаты ---
stargazer:
--- Цитата: binturong_reiko от 26 Январь 2026, 16:29:12 ---stargazer, вот, посмотри, это не оно?
--- Конец цитаты ---
Оно :) Только значения другие.
В той теме много интересной информации есть:
--- Цитата: megavolt85 от 12 Июль 2018, 01:16:35 ---итого, единственный оставшийся вариант который может рулить режимом джойстиков это bit7 регистра 0xA16106
--- Конец цитаты ---
Здесь обращение к этому регистру отсутствует, что логично т.к. это не портативка со специфическим подключением джойстика :)
--- Цитата: megavolt85 от 14 Октябрь 2019, 14:46:38 ---TCT-6801 и TCT-6803 (остальные надо проверять), консоль не запустила встроенные игры без инициализации регистра 0xA1630C, при активном /CART инициализация не обязательна
--- Конец цитаты ---
Тоже похоже на правду :)
Остальные регистры управляют настройками дисплея (опять же, актуально только для портативок) но, возможно, просто не стали заморачиваться с выпиливанием этого функционала из прошивки, т.к. он ни на что не влияет.
Так что, на все эти регистры можно не обращать внимания, и изучить только те, что управляют старшими адресами (0хA14406,0хA14404).
Полный дамп бы пригодился для этого :)
binturong_reiko:
Да, там долго ковырялись с портативками, вот мне и вспомнилось.
Полный дамп прилагаю. Но, как я понял, адреса эти нифига не стандартные, т.е. они реализовали отдельный маппер, а не засунули в кристалл кучку логики с управлением через /TIME, потому что если к куску с меню приклеить следующий, с After Burner II - эмуль не запускает, просто reset
https://disk.yandex.ru/d/YqsJNiBwIY3gTg
JRBVZ:
А почему эмулятор должен запускать? Он как раз не в курсе про доп логику.
binturong_reiko:
Вроде какие-то эмуляторы эмулируют стандартный маппер для многоигровок, нет? Может с 8-мибитками путаю
засовывали же в эмуль поддержку Pier Solar, а там логики дофига
JRBVZ:
У nes в заголовке прописан маппер, на сеге такого нет. Можно определять маппер по определенным местам, как например запись SSF (маппер Super Street Fighter), Pier Solar можно по названию внутри детектить. Но это мапперы конкретных игр, а многоигровки не прописывали. Но это не точно :D
stargazer:
--- Цитата: JRBVZ от 26 Январь 2026, 16:22:01 ---Скорее всего старая схема:
--- Конец цитаты ---
Да, это оно :)
Похоже, меню универсальное: и для картриджа и для встроенной памяти. Старшие адреса подключены A24 к D7, A25 к D8, а также за них отвечает регистр по адресу 0xA14404.
Таким образом, адресами A16-A23 можно управлять записью значения 0 по адресам 0xA130xx (/TIME), а адресами A24, A25 записью значений 0000 000x x000 0000 по этим же адресам либо записью значений 0000 0000 0000 00xx в регистр 0xA14404.
binturong_reiko:
а в коде меню нет обращений по 0xA130xx или и они присутствуют?
я попробовал углубиться в разбор кода, но уперся в то, что нужен ida pro и еще куча софта накомпилить надо.. пока разбираться пытаюсь
меня собственно интересует вот что: если собрать схему с соответствующими изменениями, то оно будет работать и в виде картриджа? Просто это было бы проще в плане перезаливки при тестах
stargazer:
--- Цитата: binturong_reiko от 27 Январь 2026, 14:41:12 ---а в коде меню нет обращений по 0xA130xx или и они присутствуют?
--- Конец цитаты ---
Есть. Я их поначалу проглядел :)
Кстати, в ядре GenesisGX есть частичная поддержка таких многоигровок, запускаются игры в пределах первых 4МБ. Это Alien3,After Burner II,Rainbow Islands,Aladdin
binturong_reiko:
а каким либо образом можно понять из полного дампа, как собрана та часть маппера для управления по А130? какой там размер блока выходит?
хотя, в дампе игр меньше 512кБ нет, так что наверное ответ очевиден
Добавлено позже:
--- Цитата: stargazer от 27 Январь 2026, 14:43:16 ---Есть. Я их поначалу проглядел :)
Кстати, в ядре GenesisGX есть частичная поддержка таких многоигровок, запускаются игры в пределах первых 4МБ. Это Alien3,After Burner II,Rainbow Islands,Aladdin
--- Конец цитаты ---
именно этот дамп?
stargazer:
--- Цитата: binturong_reiko от 27 Январь 2026, 14:47:48 ---а каким либо образом можно понять из полного дампа, как собрана та часть маппера для управления по А130? какой там размер блока выходит?
хотя, в дампе игр меньше 512кБ нет, так что наверное ответ очевиден
--- Конец цитаты ---
Это следует не из дампа, а из схемы маппера - 64кБ. В этом дампе нет игр меньше 512кБ.
--- Цитата: binturong_reiko от 27 Январь 2026, 14:47:48 ---именно этот дамп?
--- Конец цитаты ---
Да :)
Навигация
Перейти к полной версии