PDA

Просмотр полной версии : Konami-5 (SCC) mapper



ram_scan
21.11.2014, 18:05
Други. Я тут вышел на финишную прямую с этим маппером (пока без звука) и встал на могучие грабли.

Моделирование и испытание на стенде "с тумблерами" кажет, что в первом приближении оно работает правильно (дешифратор срабатываэ корректно, запись/чтение страничек происходит). Но пара игрушек на которых я взлетал (Solid Snake в частности) суют мне под нос болт на 19 с левой резьбой. Картридж стартует, но на заставку не выходит.

Я это к чему. Ковырять солидснэйка в IDA долго, а шагать в отладчике в эмуляторе муторно.

Может кто в этой игрушке ковырялся ? Может так получиться что он не стартует из-за того что звуковой чип ощупать не может ? Или ему поуху, дудит в SCC как дудится, а то что не стартует это я по граблям хожу ?

На всякий случай прикладаю схему прототипа (может кто незамыленным глазом ошибку увидит).

50006

UPD: демо версия SolidSnake прошитая в MX28F2000 взлетела. Я окончательно сбит с толку.

UPD2: Kings Valley 2 - не стартует. Kontora (Contra) - работает. Такое ощущение что действительно нужен SCC звук.

UPD3: Quarth стартует.

UPD4: Space Manbow стартует.

UPD5: схема рабочая. Просто некоторые программы проверяют наличие звука и застревают в этом месте.

goodboy
21.11.2014, 18:43
Может кто в этой игрушке ковырялся ?
тут на форуме проскакивала инфа о MetalGear - японская версия точно проверяет какие-то ячейки в пзу

ram_scan
21.11.2014, 19:23
Это первый Metal Gear проверял, и в ресет на КУВТ2 уходил. Я его успешно от этого дела отлечил (одну процедуру поправить, она проверяет наличие канджи если я не путаю). Я спервоначалу в эмуляторе на русской версии КУВТ2 гоняю. Потому-что мне хотя бы надо убедиться под какой мапер игрушка (они перехаченые бывают, например контра есть в интернетах и под конами4 и под конами5).

Такое ощущение что некоторым играм SCC звук действительно нужен. Нужно делать "затычку" пока звук не реализую. Потому-что двухмегабитная Space Manbow на моей реализации картриджа взлетает. В это уже вторая 155РУ2 (четвертый бит в мапере используется начиная с нулевого), значит там тоже не напутано.

UPD: прошил Space Manbow в UV EPROM M27С4001. Взлетело. Похоже схема все-же рабочая.

Макет:
50007

DJs3000
21.11.2014, 22:10
ram_scan, обрати внимание что часто ромы подписанные как SCC являются не чистым дампом с карика, а уже внесены изменения для того чтобы SCC работал с дополнительным звуковым модулем вставленным в MSX как отдельный картридж. Я столкнулся с этой проблемой когда пытался запустить такие ромы во флеш картридже :) разработчик картриджа мне объяснил что к чему.

James DiGreze
22.11.2014, 12:08
На всякий случай прикладаю схему прототипа (может кто незамыленным глазом ошибку увидит).
Сразу не понял зачем D2...
Размышляю: если 155РУ2 заменить, к примеру, на 62256, то можно убрать D2. Надо будет попробовать.

ram_scan
22.11.2014, 14:41
Сразу не понял зачем D2...
Размышляю: если 155РУ2 заменить, к примеру, на 62256, то можно убрать D2. Надо будет попробовать.

Тогда надо будет и инвертор по входу убирать, подтяжку с выхода, и мультиплексировать шину данных на чтение/запись (потому-что на запись она шина данных а на чтение - кусок шины адреса). С ASCII мапером получится еще заковыристее, там на разные банки памяти по разному мультиплексировать придется, придется городить "два этажа". Мультиплексор шире 4 бит - микросхема кузовом длинная и средой обитания нераспространенная, значит придется ставить две КП-шки. В итоге получится еще большая бодяга, три мелких микросхемы убираются, три больших появляются. Я думал поставить туда более "классическую" SRAM, смысла не нашел в этом. Во первых обвязка, во вторых самая мелкая которую можно сейчас найти - 6216, а нужно всего 128 бит памяти. Вобщем огорода городить черти сколько получается. Проще триггерами заморочиться, благо их есть по 6 штук на корпус (ТМ9 кажется).

Вобщем я старался чтобы карик был на максимально доступных микросхемах. У меня руки чесались например 556РТ4 дешифратором поставить, вышло бы на корпус меньше и звук потом цеплять намного проще. Но кто ее желающим собрать прошивать будет ?

Опять-же у 155РУ2 время чтения/записи 50нС (плюс минус, на чтение чота около по даташиту, 45, на запись 55, но обычно быстрее, от экземпляра зависит). Имхается мне что 62256 будет раза в три тормознее. Успеет ли поворачиваться с мультиплексированием ?

В принципе 155РУ2 можно было бы поменять на 155РП1 (или 155РУ32), тогда инвертор не понадобится. Но они не имеют входа начального сброса, поэтому по подаче питания вся память там записана единицами. Я в соседней теме про Konami-4 расписал почему из-за этого не выстреливает.

Там я правда крутнулся чуть по другому, нулевой банк мапить не приходилось. Поэтому в этой схеме инвертор переехал с выхода на вход, и в памяти данные хранятся "наизнанку".

James DiGreze
22.11.2014, 20:57
Кстати, да, я про раздельный вход-выход не подумал. Тогда, наверно, будет лучше использовать 4 регистра.

ram_scan
22.11.2014, 21:37
К ним надо будет еще двоично-десятичный дешифратор 2 на 4. Это уже матрица триггеров получается пять корпусов вместо трех как у меня. Хотя от РУшки можно тогда избавиться.

В соседнем NESовском разделе кто-то из форумчан MMC3 маппер именно так и сгородил, на четырех регистрах.

155РУ2 кстати реально недефицитная микросхема. Во всяком случае я у себя на деревне нашел аж в двух магазинах разом. Правда дорого, что-то около 20 рублей за корпус.

Недостаток у нее по большому счету один, она жрет в одно лицо под 100 мА, и греется здорово.

James DiGreze
23.11.2014, 09:20
Ну... у нас несколько разные деревни, в моей вообще радиолавок нет, а в соседней, в которой я отовариваюсь "по талонам" - нет 155ру2 ;) но это всё лирика. Если сильно приспичит - буду искать на широких просторах.

ram_scan
23.11.2014, 13:20
Ну... у нас несколько разные деревни, в моей вообще радиолавок нет, а в соседней, в которой я отовариваюсь "по талонам" - нет 155ру2 ;) но это всё лирика. Если сильно приспичит - буду искать на широких просторах.

http://ru.aliexpress.com/item/SN7489N-64-BIT-RANDOM-ACCESS-READ-WRITE-MEMORY-IC-Free-Shipping/570458120.html

Берите тут. Получится дороже чем в магазине конечно. Но если вам в любом случае с почтой заморачиваться то наверное дешевле не выйдет. Ну или на регистрах тогда уже.

DJs3000
23.11.2014, 13:37
Даже в дорогущем чипидип если брать 200 штук будет цена 3,4рубля http://www.chipdip.ru/product/k155ru2/

ram_scan
23.11.2014, 14:18
Даже в дорогущем чипидип если брать 200 штук будет цена 3,4рубля http://www.chipdip.ru/product/k155ru2/

Они походу в цене просто нолик пропустили. У них К155ЛА3 по 41 рублю. Я бы по 3 рубля купил, по 10 бы у себя на деревне сдал (смели бы начисто, продается то по 20), денег бы заработал.

Опять-же почтовые расходы рубликов в 170 минимум встанут. Если форумчанину покупать с доставкой до лесосибирска. Так что китайская цена не выглядит ощемта необоснованной. Если прикинуть цену доставки (это минимум 4 бакса на нынешние цены) то фактически розничная цена в магазине и получается.

DJs3000
23.11.2014, 15:48
Они походу в цене просто нолик пропустили. У них К155ЛА3 по 41 рублю. Я бы по 3 рубля купил, по 10 бы у себя на деревне сдал (смели бы начисто, продается то по 20), денег бы заработал.

Опять-же почтовые расходы рубликов в 170 минимум встанут. Если форумчанину покупать с доставкой до лесосибирска. Так что китайская цена не выглядит ощемта необоснованной. Если прикинуть цену доставки (это минимум 4 бакса на нынешние цены) то фактически розничная цена в магазине и получается.

Ну вот тогда http://specelservis.ru/catalog/info/102991 аж 87 года выпуска :)

James DiGreze
24.11.2014, 10:41
Похоже есть в соседней деревне ИР32/74170 по 10рэ. Надо будет десяток взять.

DJs3000
20.06.2015, 04:07
ram_scan, если ещё актуально вот тебе схема Konami флешкарика на 512кб. Штука прикольная но только для мапера Konami ну и конечно без SCC звука. Игры заливать можно непосредственно с MSX. Если будет интересно есть уже разведенная печатка.
http://cs623130.vk.me/v623130711/3c35e/O3pz2lddoh4.jpg

В идеале добавить сюда SCC чип и будет круто. А вообще сделать бы флешкарик для всех 4х мапперов было бы круто:
-> KONAMI 8K
-> KONAMI SCC
-> ASCII 8K
-> ASCII 16K

SCC я постараюсь найти под ПЛИСину.

---------- Post added at 04:07 ---------- Previous post was at 03:12 ----------

Вот (http://www.hat.hi-ho.ne.jp/tujikawa/esepld/download.html) удалось найти SCC для ПЛИС. Там же есть PSG что в случае с MSX значит YM2149F т.е. YA чип :) что может пригодится для спека. Вот тут (http://bifi.msxnet.org/msxnet/tech/megaroms.html#konami) немного про мапперы.

ram_scan
07.11.2015, 17:10
ram_scan, если ещё актуально вот тебе схема Konami флешкарика на 512кб. Штука прикольная но только для мапера Konami ну и конечно без SCC звука. Игры заливать можно непосредственно с MSX. Если будет интересно есть уже разведенная печатка.

Эта схема к сожалению неверная. То есть я допускаю что она рабочая и некоторые игрушки на ней идут. Но она не умеет мапить банк в адресе 4000, как раз из-за того что микросхемма с триггерами после подачи питания записана единицами. Строго говоря она записана нулями, но у нее инвертирующий вход и инвертирующий выход, поэтому снаружи так выглядит. Для конами-4 картриджа решение изящное (я konami-4 именно так сделал только на 155РУ2 с инвертором по входу без трюка с пуллдауном), но для конами-5 это не годится.

Я горожу на 1556ХЛ8 кому для ностальгии, и GAL16V8 кому не мучиться, иба это суть одно и то же. Там вся логика дешифрации и выбора кристаллов ROM/MRAM/SCC правильно в один чип влазиит. Хотел на 556РТ4, одной адресной ноги под фидбэк не хватает, либо триггер ставить, а 556РТ5 уже очень жирно.

_Nikanor_
02.01.2016, 01:27
Есть у меня картридж Kings Valley 2.

И он почему то не автостартует. При этом в дебаггере он виден и сигнатура AB в адресе 4000h присутствует.

Но при попытке запустить исполнение с этого адреса идет вылет в перезагрузку.

Есть ли какой нибудь способ запустить картридж из BASICа ?

Как вообще устроен заголовок картриджа - как система определяет, где находится начало кода в картридже?

ram_scan
02.01.2016, 09:10
Формат заголовка картриджа:
DEFB "AB" ; expansion ROM header
DEFW initcode ; start of the init code, 0 if no initcode
DEFW callstat; pointer to CALL statement handler, 0 if no such handler
DEFW device; pointer to expansion device handler, 0 if no such handler
DEFW basic ; pointer to the start of a tokenized basicprogram, 0 if no basicprogram
DEFS 6,0 ; room reserved for future extensions

Игровые картриджи в подавляющем большинстве запускаются с адреса initcode (если не на бейсике в них программа). Напрямую из бейсика запустить не получится, нужно в памяти разместить небольшую процедурку в машинном коде которая переключит слот и отдаст туда управление. Теоретически можно переключить слот и из бейсика но пользы с этого никакой, так как после переключения бейсик немедленно поломается.

Но можете попытаться запустить из отладчика. Правда ему тоже скорее всего не понравится если все банки памяти под слот отдать.