Вход

Просмотр полной версии : Реверс-инжиниринг чипов от Dendy (NES)



Titus
27.12.2019, 18:12
Ввиду того, что параллельная тема (https://zx-pk.ru/threads/27091-potaktovyj-klon-dendi-na-fpga.html) на нашем форуме, а так же тема на emu-russia (http://forum.emu-russia.net/viewtopic.php?f=13&t=3938) пришли в упадок, вместе с протуханием картинок, и грустью топикстартеров, - сделал собственную тему.

Учитывая то, что фактически оба чипа от Dendy отфотканы, можно очень неспешно в них поковыряться.

И прежде всего мне интересен видео-чип UA6538 отфотканный (http://hwm.us.to/emustuff/Decap/UMC_UA6538/) zeptobars'ом.
Слой кремния выглядит качественным. Фотографий слоя металла целых три, но у первой фотки нет высокого разрешения, а третья совсем мутная. Остается вторая, которая тоже не подарок, но вполне понятная, во всяком случае в части тех фрагментов схемы, которые я смотрел.

Отдельное спасибо товарищу Flamer за отзывчивость и активность! :v2_ny:

Чип сделан по технологии N-МОП, и, судя по всему, используются транзисторы со встроенным каналом, работающие как в режиме обеднения, так и в режиме обогащения. Т.е. любой транзистор (верхний или нижний) открыт, когда на затворе '1', и любой транзистор закрыт, когда на затворе '0'.
Может быть только верхние транзисторы работают в режиме обеднения, а нижние обычные с индуцированным каналом. Если есть специалисты в этой области, поправьте меня.
Так как до этого мне приходилось ковыряться только в K-МОП логике, я еще не настоящий пожарник, просто каску на дороге нашел)

И ради затравочки темы сразу поразбирался в устройстве памяти спрайтов (OAM). Она у нас динамическая (DRAM), хранящая информацию на конденсаторах, образуемых затворами полевых транзисторов, и, соответственно, требующая регенерации.

Вот фрагмент схемы, на примере 4 ячеек памяти.
https://pic.maxiol.com/images2/1577459176.1504841820.memorycells.png

Информация хранится в комплиментарном виде, т.е. в каждой ячейке хранится информационный бит X и его инверсная копия Y. Ничего удивительного в этом нет, т.к. это особенности данной NMOS-технологии.

SEL_COL - выбор столбца
SEL_ROW -выбор ряда
OAM_CHARGE - пока не знаю, зачем нужен.

Интересно, что память организована банками, сгруппированными по 9, 9, 9, 7, 7, 7, 9, 9 рядов. Таким образом, всего 34 ряда, и 32 столбца. Что дает нам 136 байт памяти, что на 8 байт больше, чем нужно для хранения спрайтов. Зачем лишние 8 байт? Пока не знаю)


А вот как выглядят порты ввода-вывода:
https://pic.maxiol.com/images2/1577379792.1504841820.porto.png

https://pic.maxiol.com/images2/1577379813.1504841820.portio.png

HardWareMan
27.12.2019, 19:05
В этом нет смысла. PPU уже полностью переведён мной в Verilog и проходит все тесты. На том дендике, который с FPGA вместо PPU.

Titus
27.12.2019, 19:20
В этом нет смысла. PPU уже полностью переведён мной в Verilog и проходит все тесты. На том дендике, который с FPGA вместо PPU.
1. У меня схемы PPU нет, и когда я написал в ту ветку, ты сказал, что ничего нет, и не будет, и проект закрыт.
2. Вы реверсили NTSC версию, а меня интересует исключительно PAL. А точнее 6538.

HardWareMan
27.12.2019, 21:25
А, ок. Продолжай.

org
20.03.2022, 14:18
Titus,

Заходи на дискорд emu-russia, введу в курс дела, мы за последние пару месяцев много чего сделали по сабжу :)

https://discord.gg/BMNEQWnDpW

Titus
20.03.2022, 20:34
Заходи на дискорд emu-russia, введу в курс дела, мы за последние пару месяцев много чего сделали по сабжу
Пока что я потихонечку рисую Z80 :)

org
20.03.2022, 20:40
> потихонечку

А где?

Titus
21.03.2022, 01:52
А где?

https://zx-pk.ru/threads/34173-revers-inzhiniring-z80.html

and1981
17.06.2022, 11:24
Вентильные схемы NTSC, PAL и RGB PPU можно также найти на форуме 6502.org http://forum.6502.org/viewtopic.php?f=4&t=7102, спасибо товарищу ttlworks :cool:

Titus
18.06.2022, 02:02
Вентильные схемы NTSC, PAL и RGB PPU можно также найти на форуме 6502.org http://forum.6502.org/viewtopic.php?f=4&t=7102, спасибо товарищу ttlworks

Я там нашел только ppu_rev0.zip, да и ту непонятно в чем открывать.

and1981
18.06.2022, 12:10
eagle autodesk http://eagle.autodesk.com/
он там задеморганил конечно логику, немец этот дотошный сильно:v2_dizzy_botan: и даже диаграммы нарисовал к некоторым блокам, единственный блок который пока не уточнён - кодер PAL, но думаю после успешной симуляции его в нашем логисиме он поправит и его.

Titus
18.06.2022, 16:48
А кто делал потранзисторные схемы все эти? И где полный список чипов, к которым потранзисторные схемы уже есть?

and1981
18.06.2022, 23:54
Потранзисторные реверсил org. Вентильные схемы делал ttlworks по нашей просьбе, пока только три ППУ 2с02g, 2c07a, 2c04-0003. На очереди у него АПУ 2а03. Думаю в ближайшее время он доделает и его. Также для книги по 6502 есть его схемы процессора, тоже деморганеные.

Titus
19.06.2022, 10:47
тоже деморганеные.
Что такое 'деморганеные'? )

and1981
19.06.2022, 14:09
Упрощенные и преобразованные по законам де Моргана им в позитивную логику из негативной

HardWareMan
19.06.2022, 15:17
Будь на позитиве!

and1981
19.06.2022, 23:48
Сравнил сегодня VPLA и HPLA UMC 6538 и Ricoh 2C07a. HPLA 6538 не имеет выраженных отличий от 2с07а. Тем не менее VPLA 6538 отличается только одним выходным сигналом VPLA_4. Он срабатывает позже на 50 строк. Сигнал этот отвечает за формирование /VSET, кототрый используется схемой генерации прерывания PPU. Собственно на nesdev https://www.nesdev.org/wiki/PPU_variants мы можем найти этому подтверждение

Vblank IRQ intentionally emitted 50 scanlines later than 2C07
https://i.ibb.co/TTZqDnR/VPLA-DIFF.jpg

HardWareMan
20.06.2022, 08:56
and1981, именно для того, чтобы его длинна соответствовала NTSCшному: от выстрела до рендера ровно 20 строк (вроде как). Отсюда и феноменальная совместимость с NTSC играми. Не полная, но очень хорошая. Как говорят буржуи на несдеве: китайцы сделали адаптацию под PAL лучше самой Нинки.

- - - Добавлено - - -

Да точно, вот известная табличка, которую Жека собирал опытным путём: https://www.nesdev.org/wiki/Cycle_reference_chart

Titus
20.06.2022, 15:22
Тем не менее VPLA 6538 отличается только одним выходным сигналом VPLA_4.
И это все??? Одно отличие?

and1981
20.06.2022, 17:09
Остальные отличия не столь существенны. На данный момент известно, по крайней мере, еще 2 отличия от 2С07 Ricoh.
1) Схема блокировки инкремента счетчика адреса ОАМ1 в 6538 отключена, хоть и физически она присуствует на чипе. Схема блокирует попытки записи в ОАМ1 во время VBLANK (с 265-й по 311-ю строку).
https://i.ibb.co/P5yhhmZ/odd-even-zomg-6538.jpg
2) Сигнал OAM8 (выбор адресации ОАМ1 или ОАМ2) имеет дополнительный буфер для усиления сигнала, так как его трасса имеет приличную длинну.
https://i.ibb.co/0BtdM7L/oam8-buff.jpg
Кодер PAL без изменений, присуствуют некоторые отключенные логические цепочки, что и в оригинале 2C07 Ricoh.
На данный момент это все найденные отличия. Буду дополнять по мере обнаружения новых, если такие будут найдены.

newart
21.06.2022, 00:16
А как на счет реверса:
1582ВМ1-хххх
ULA1
И185
КА1515ХМ1-171
КА1515ХМ1-216
КА1515ХМ1-433
КА1515ХМ1-458
КА1515ХМ1-6003
КА1515ХМ1-6004
КА1515ХМ1-6006
КА1515ХМ1-6008
КА1515ХМ1-6108
КБ01ВГ1-2
КН1854ВГ5
Мэджик
СК1
СК2

Titus
21.06.2022, 01:17
1) Схема блокировки инкремента счетчика адреса ОАМ1 в 6538 отключена
Зачем это сделано?

and1981
21.06.2022, 12:06
Выясняем, пока непонятно назначение данной схемы.

org
22.06.2022, 13:13
Похоже китайцы раскусили как пофиксить коррапт спрайтовой памяти. Наверное секрет как раз и заключается в отключении "заплатки", которую делала Нинка (схема "Even/Odd") и добавлении буфера на OAM8.

- - - Добавлено - - -


А как на счет реверса:
1582ВМ1-хххх
ULA1
И185
КА1515ХМ1-171
КА1515ХМ1-216
КА1515ХМ1-433
КА1515ХМ1-458
КА1515ХМ1-6003
КА1515ХМ1-6004
КА1515ХМ1-6006
КА1515ХМ1-6008
КА1515ХМ1-6108
КБ01ВГ1-2
КН1854ВГ5
Мэджик
СК1
СК2

Я пас :)

- - - Добавлено - - -

Занёс все различия найденные and1981 сюда: https://github.com/emu-russia/breaks/blob/master/BreakingNESWiki/PPU/umc6538.md

Titus
22.06.2022, 16:53
Похоже китайцы раскусили как пофиксить коррапт спрайтовой памяти.
Что за коррапт? Подробности.

newart
22.06.2022, 18:20
Я пас :)


Это все отечественные чипы для Спектрумов

org
23.06.2022, 16:46
Что за коррапт? Подробности.

https://www.nesdev.org/wiki/Errata

and1981
24.06.2022, 00:17
Цитата:

[2C07 и 2C07A] Доступ к OAM невозможен из строк развертки с 21 по 70 после того, как произошел бы NMI. (Чтобы компенсировать более длительный период гашения PAL, 2C07 всегда включает логику обновления OAM для части периода гашения.)

and1981
26.08.2022, 18:49
Вентильные схемы NTSC RP2А03-G APU (pAPU) теперь можно также найти на форуме 6502.org http://forum.6502.org/viewtopic.php?f=4&t=7102&start=15, спасибо за обновление ttlworks :v2_dizzy_roll:
77713

and1981
15.11.2023, 09:35
Небольшой видос, как симулируется 6502 в среде LOGISIM

https://www.youtube.com/watch?v=dFyq43pBDUY

and1981
15.12.2024, 16:20
Давно хотел закрыть вопрос по перепутанной скважности прямоугольных каналов Денди (25% и 50% попутаны местами). Данный дефект видимо был намеренно добавлен производителями чипов в те далёкие годы, чтобы тем самым избежать судебных тяжб с правообладателем патента. Львиная доля пиратских APU содержат данный глюк скважности, из известных это UMC 6527P и Хуалон HA6527P. Но не только чипы региона PAL имеют эту особенность, но и NTSC чипы UMC6527. Тогда как в чипах ТА03 (предположительно производства SIS) данный глюк сважности не наблюдается.
За основу реверса были взяты изображения чипа Хуалон HA6527P сделанные org. Они находятся тут: https://drive.google.com/drive/folders/13bDbzYGwTS5HLJGDKzQiMw5SDT6gqRwn
Фото данного чипа без особых проблем позволяет просмотреть топологию интересующего участка даже без снятия металла. Нужен определенный опыт в этом деле разумеется :smile:
В результате было найдено, что мультиплексор скважности имеет перепутанный порядок управляющих сигналов с регистра управления скважностью и управляющие сигналы для 25% стали похожи на 50% и наоборот.
Такое также можно легко получить, просто перепутав в регистре управления сважностью D6 и D7.
2A03G
D6 D7
12.5% 0 0
25% 1 0
50% 0 1
75% 1 1

HA6527P
D6 D7
12.5% 0 0
25% 0 1
50% 1 0
75% 1 1

вот изображения топологии и транзисторная схема данного участка прямоугольного канала:
https://pic.maxiol.com/thumbs2/1734267128.1389483554.dutybug.png (https://pic.maxiol.com/?v=1734267128.1389483554.dutybug.png&dp=2)
https://pic.maxiol.com/thumbs2/1734269721.1389483554.dutytran.png (https://pic.maxiol.com/?v=1734269721.1389483554.dutytran.png&dp=2)

Titus
15.12.2024, 19:14
В результате было найдено, что мультиплексор скважности имеет перепутанный порядок управляющих сигналов с регистра управления скважностью и управляющие сигналы для 25% стали похожи на 50% и наоборот.
Такое также можно легко получить, просто перепутав в регистре управления сважностью D6 и D7.
Просто и легко) И копирайты не страшны)

Вопрос, на сколько музыка приятнее или неприятнее звучит в тех NESах, что ходили у нас, в отличие от оригиналов?

and1981
18.12.2024, 18:19
Бытует мнение, что Супер Марио звучит приятнее на клонах с неправильной скважностью, тут слушать надо. :v2_dizzy_botan: