Сообщения без ответов | Активные темы Текущее время: 19 мар 2024, 11:57



Ответить на тему  [ Сообщений: 411 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 21  След.
 Очень низкоуровневый эмулятор 6502 / NES 
Автор Сообщение
Сообщение 01 ноя 2012, 09:07
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
EvGS писал(а):
Для RGB-варианта надо RP2C03 где-то искать и вскрывать.

Данный чип добывается с ПлейЧойса10. А ниче, что у него отличается пол литра от NESовской? Это документировано.
org писал(а):
На самом деле нет ) Небольшие изменения в видеотракте и можно на выходе RGB получать (выкинуть DAC и генератор фаз, добавить еще один PLA для преобразования хромы/люмы в фиксированный RGB)

Именно. Пол литру, при этом, подбирать уже свою, как это делают на несдеве. Максимально близкую к оригиналу.
org писал(а):
С логической схемой посложнее, я ещё такого не делал)
Я сразу в Си-код перевожу работу всех блоков, думаю конвертировать потом в Verilog будет не сложно. Просто я с Verlog не сталкивался ещё.

Верилог - моя проблема. А логику работы можно будет проследить и из Ц кода. ;)

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 01 ноя 2012, 13:30
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Я сравнивал несколько дней назад на одном телике поллитры у RP2C02 (famicom) и UA6538 (микросхемная денди).
Вообще две большие разницы. Может декодеры PAL/NTSC влияют, а скорее всего, и в самих чипах есть отличия в пол-литре.

Надо думать, как нам раздербанить UMC/TA со слоями, обязательно.
Там, помимо палитры, нужно посмотреть, как в транзисторной логике формируются тайминги и всякие заглушки на VBLANK. И делитель проца в 6527Р тоже.
Можно на коммерческой основе отдекапить. Есть ли новости от Homer'a?

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 04 ноя 2012, 21:36
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Вообще, правильней даже формировать не RGB. В яркостный сигнал Y вместе с синхрой кодируется 4х уровневая яркость дендика, а 12 фаз поднесущей кодируются в цветоразностные сигналы R-Y/B-Y. Таким образом, наиболее правильным выходом для клона PPU я вижу именно компонент YRpBp.

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 06 ноя 2012, 23:30
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Закончил трассировку PPU:
Изображение Изображение
(картинки кликабельны, полноразмерные фотки примерно по 20 MB каждая)

Исходники фотошопа тут : http://breaknes.com/files/PPU/2C02G.zip (260 MB)

Также получили снимки травленного чипа от Гомера, сейчас я их сшиваю (комп тупит дико :) +сказываются выходные :D )
Изображение

Так вышло что наши фотки появились почти одновременно с отслоенными фотками PPU от мембера с Visual6502:
http://uxul.org/~noname/visual6502/RP2C ... gned/view/

Ну и в плане схем: сейчас работаю над "средним" куском чипа. Из интересного обнаружил там контрольные регистры 2000/2001, мультиплексор (правее я разместил его схему из патента US4824106), регистр 2003 (для доступа к OAM) со схемой инкремента, а также какую-то затейливую схему, на вход которой подаются V-counter и данные спрайтового буфера, похоже на компаратор. Попутно обнаружил много новых линий (которые уже учтены на полоноразмерных схемах выше).
Изображение


Сообщение 07 ноя 2012, 11:08
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
Сайт запущен:

http://breaknes.com/

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 07 ноя 2012, 16:54
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Сшил полученные фотографии стравленного PPU:
Изображение
(полноразмерная фотка 40 MB)

не хватает маленького кусочка, но там выше есть такой же участок схемы, так что не важно )


Сообщение 07 ноя 2012, 23:24
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Пожалуйста, пожалуйста, пожалуйста дублируйте распознанные блоки в логическую схему тоже! Оченама хочется замутить функциональный клон ППУ с компонентным выходом!

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 08 ноя 2012, 09:54
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
HWM, не раньше чем будет готова полная транзисторная схема. Смотри, всего там 5 крупных блоков, 3 из них я практически уже разобрал.
Остался массив счетчиков слева внизу (там 8 (или 16) однотипных счетчиков, с ними проблем не будет) и ещё справа-внизу квадратный кусок, я называю его data reader, он занимается выборкой данных PPU (name table, patterns, attribute table)


Сообщение 08 ноя 2012, 15:24
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Отлично! Родина тебя не забудет!

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 08 ноя 2012, 17:04
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Я выяснил суть куска, который находится в левом нижнем углу :

http://code.google.com/p/breaks/wiki/PPU_OAM_FIFO

Поражаюсь насколько всё просто и одновременно сложно устроено в PPU )


Сообщение 09 ноя 2012, 18:16
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Транзисторная схема OAM FIFO:
Изображение

-- 10 ноя 2012, 00:55 --

Принялся за последний кусок PPU: data reader.

Расположение на чипе :
Изображение

Эта часть схемы PPU занимается выборкой строки тайла из 8 точек, на основе scroll-регистров, которые задают положение тайла в name table и точного (fine) смещения начальной точки внутри тайла. Результаты (текущая точка тайла) передаются в мультиплексор, для смешивания с текущей точкой спрайта, ну а результаты смешения уже выводятся непосредственно на ТВ (используя палитру и фазогенератор).

Я как-нибудь нарисую схемы следственных связей, как выбирается точка тайла, а пока просто первые результаты разбора транзисторной схемы :

Изображение

-- 10 ноя 2012, 01:06 --

Всю писанину теперь можно найти тут : http://breaknes.com/info


Сообщение 11 ноя 2012, 02:06
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Закончил работы над data reader-ом (картинки обновил, см. выше). Теперь у меня есть практически вся схема (осталось кое-чего в середине доделать и мультиплексор)!


Сообщение 11 ноя 2012, 15:57
Профиль WWW
Аватара пользователя

Зарегистрирован:
22 июл 2007, 22:03
Сообщения: 480
Когда же будет релиз этого убер эмулятора-убийцы разогнанных хексакоров? :)

_________________
Challenge the Legend / Мой сайт - http://www.u-sm.ru
8700K, 16GB, RTX 3070 Ti


Сообщение 11 ноя 2012, 19:51
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Точную дату назвать не могу, ещё много чего нужно сделать.

Доделал середину PPU:
Изображение

Обнаружил что можно каким-то образом использовать горизонтальную позицию тайла в качестве текущего цвета, вместо смешанного цвета заднего фона/спрайта. Значит можно делать "радужные" картинки (горизонтальные градиенты).

-- 11 ноя 2012, 19:11 --

А, как оказалось это просто для доступа к палитре через $3F00...$3F1F :)


Сообщение 11 ноя 2012, 20:17
Профиль
Аватара пользователя

Зарегистрирован:
24 июл 2007, 06:54
Сообщения: 492
Откуда: Embedded
Какие еще адреса пространства ППУ стали известны? Я про кусок между 3000 до 3EFF. И было бы не плохо уже куски в схемку переводить. :blush:

_________________
Tried so hard and got so far, but in the end, it doesn't even matter...


Сообщение 11 ноя 2012, 21:41
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Вот как раз адресный декодер я и найти не могу )))
Ещё осталась милипизерная схемка в самом низу чипа, но на декодер она не похожа, где-то в недрах data reader-а находится декодирующая схема.

Там по сути и декодера то не должно быть, т.к. адресный регистр работает наружу. Тут скорее адресный генератор на базе счетчиков и плюс схема проверки, когда адресный регистра настроен на палитру, то активировать эту линию TH/MUX.

Всю схему слеплю уже скоро, но вначале хочу симулировать работу H/V-счетчиков, потому что из них выходит много контрольных линий, которые расползаются по всему чипу и я не могу идентифициорвать их назначения. А без названия этих контрольных линий схема будет не полной.


Сообщение 11 ноя 2012, 22:23
Профиль
Аватара пользователя

Зарегистрирован:
23 июл 2007, 19:37
Сообщения: 401
Откуда: Мытищи
org писал(а):
Поэтому я взял и замерил сколько тактов эмуляции в секунду делает ядро Breaks 6502. Результаты конечно весьма печальные: на моем средненьком Intel Dual Core T4500 2 ггц компиляция с помощью lcc выдает примерно 80.000 операций/сек (0.08 MIPS), то есть в 50 раз медленнее чем необходимо :(
Поэтому стало интересно какие цифры получатся в новой Express 2012. В 4 часа утра я наконец умудрился скомпилировать проект и результаты следующие : примерно 220.000 оп/сек (0.2 MIPS). Уже лучше, но все равно в 20 раз медленнее.

А как насчет intel compiler?
Может быть /O2 и /QxO улучшат ситуацию?

Изображение

-- 11 ноя 2012, 22:45 --

Вот, кое-что для справки

_________________
Nestopia 1.37/1.40 Fixed


Сообщение 12 ноя 2012, 17:02
Профиль WWW
Аватара пользователя

Зарегистрирован:
22 июл 2007, 22:03
Сообщения: 480
org писал(а):
Точную дату назвать не могу, ещё много чего нужно сделать.


Если в Credits'ы попадут донаторы (или даже их сайты ? :laugh: ), я первый в очереди на материальную помощь проекту. Очень интересна мне вся эта задумка :)

_________________
Challenge the Legend / Мой сайт - http://www.u-sm.ru
8700K, 16GB, RTX 3070 Ti


Сообщение 13 ноя 2012, 10:56
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
EvGS, вопрос с компилятором пока неактуален, есть более важные вопросы )

Мат. помощь пока не требуется, работаем за еду ээээ идею :D


Сообщение 14 ноя 2012, 16:40
Профиль ICQ WWW
Аватара пользователя

Зарегистрирован:
24 июл 2007, 10:41
Сообщения: 570
Подчистил схемку PPU-рендерера (находится в верхнем левом углу):

Изображение

В этой схеме находится самая интересная часть, "мозг" PPU : H/V random logic. По сложности он конечно уступает рандомной логике 6502, который сложнее примерно раз в 5. Но тем не менее, логика достаточно сложная, без транзисторной схемы я вообще не представляю как можно разобраться в хитросплетении этих кишочков )) А со схемой все гораздо понятнее.

Все блоки идентифицированы, можно приступать к эмуляции чипа. Хотя нет, ещё остается та самая милипизерная схема, в самом низу чипа :D

Бонус: контакт /RES
Изображение
В нем находится динамическая защелка (выделена желтым гексагоном), которая устанавливается при возникновении импулься сброса (/RES).
Контрольная линия - RC очищает все регистры PPU, пока защелка активна.
А специальная линия - REGCL очищает саму защелку. Это происходит в конце каждого кадра, после vblank. Скорее всего это что-то вроде отклика от PPU на сигнал сброса.


Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 411 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 21  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF (mod by Zeru-j).
Русская поддержка phpBB