| Приставки > 1-3 поколения |
| Dendy Classic SECAM |
| << < (11/18) > >> |
| HardWareMan:
Рукалицо.жпег... Кто-ж так строит? Открой для себя {}. |
| Phen:
Ну че круто. Ждем скринов (с пояснениями) окончательного мода в корпусе. |
| SkyNIC:
--- Цитата: Phen от 20 Июля 2017, 10:01:16 ---Ну че круто. Ждем скринов (с пояснениями) окончательного мода в корпусе. --- Конец цитаты --- Плату которую я использовал можно купить, например тут https://ru.aliexpress.com/item/Free-Shipping-1pcs-lot-ALTERA-FPGA-CycloneII-EP2C5T144-minimum-system-development-board-learning-board/1617704540.html. Также необходим программатор Altera USB Blaster, который можно купить у этого же продавца. Нарисовал вот схему, если что не так, поправьте. У UM6558 контакты CD0..CD5 не подключены к UM6559. СD6 и СD7 подключены, а остальные контакты у UM6558 и UM6559 оставлены как есть. В корпус помещается, но соберу позже, когда окончательно наиграюсь с палитрой. Заметил интересную особенность, изменяя значения цвета 0F, можно управлять яркостью всей картинки или затемнять нужную компоненту цвета всей картинки по отдельности. Ещё, сейчас заметил дрожание спрайта марио в smb1, при использовании стандартной частоты генератора в 50 МГц, пришлось задействовать умножитель частоты (ALTPLL) и поднять до 350 МГц, теперь дрожания нет. --- Цитата: HardWareMan от 20 Июля 2017, 01:53:12 ---Рукалицо.жпег... Кто-ж так строит? Открой для себя {}. --- Конец цитаты --- --- Цитата: HardWareMan от 01 Июля 2017, 12:39:54 ---через пару дней покажу свой кодер PAL. --- Конец цитаты --- Вы имели в виду использовать {} для записи значений палитры? Например, для цвета 00: color[0]={3{6'b011001}}. Также, можно узнать, как там успехи по реализции кодера PAL? |
| Phen:
Как я понял UM6559 используется только для синхронизации. --- Цитата: SkyNIC от 20 Июля 2017, 19:16:21 ---Заметил интересную особенность, изменяя значения цвета 0F, можно управлять яркостью всей картинки или затемнять нужную компоненту цвета всей картинки по отдельности. --- Конец цитаты --- Насколько я понимаю проблема с самопроизвольным изменением яркости решена? А-то мало-ли вдруг это PPU виноват. |
| HardWareMan:
--- Цитата: SkyNIC от 20 Июля 2017, 19:16:21 ---Заметил интересную особенность, изменяя значения цвета 0F, можно управлять яркостью всей картинки или затемнять нужную компоненту цвета всей картинки по отдельности. --- Конец цитаты --- Потому что номер этого цвета используется для гашения. Изменяя это значение просто обманываешь АРУ телевизора/монитора. --- Цитата: SkyNIC от 20 Июля 2017, 19:16:21 ---Ещё, сейчас заметил дрожание спрайта марио в smb1, при использовании стандартной частоты генератора в 50 МГц, пришлось задействовать умножитель частоты (ALTPLL) и поднять до 350 МГц, теперь дрожания нет. --- Конец цитаты --- Потому, что надо было взять родную частоту 26,6 с приставки. Тогда не было бы биений. --- Цитата: SkyNIC от 20 Июля 2017, 19:16:21 ---Вы имели в виду использовать {} для записи значений палитры? Например, для цвета 00: color[0]={3{6'b011001}}. --- Конец цитаты --- Нет, я имел в виду агрегатирование сигналов. Ваш код может быть гораздо проще: --- Код: ---colorNOW[5:0] <= {IN6,IN5,~IN4,~IN3,~IN2,~IN1} --- Конец кода --- Порядок бит в {} от старшего к младшему, как и в []. Так же, используйте неблокирующее присвоение <=, чтобы схема стала полностью синхронной. Получается, colorNOW уже лишний. Дальше, от colorIN можно сделать case внутри always блока и синхронно прогружать данные в выход, причем для удобства человека (а машине пофигу) я бы разделил colorOUT[17:0] на R[5:0], G[5:0] и B[5:0]: --- Код: ---case (colorIN[5:0]) 6'h00 : begin R[5:0] <= 6'h01; G[5:0] <= 6'h02; B[5:0] <= 6'h03; end 6'h01 : begin R[5:0] <= 6'h14; G[5:0] <= 6'h15; B[5:0] <= 6'h16; end 6'h02 : begin R[5:0] <= 6'h27; G[5:0] <= 6'h28; B[5:0] <= 6'h29; end 6'h03 : begin R[5:0] <= 6'h3A; G[5:0] <= 6'h3B; B[5:0] <= 6'h3C; end ... 6'h3F : begin R[5:0] <= 6'h1D; G[5:0] <= 6'h2E; B[5:0] <= 6'h3F; end endcase --- Конец кода --- Кейс, желательно, делать на все значения (чтобы синтезатор не сходил с ума, иногда вытворяет такие перлы), но он позволяет записывать константы или значения функций синхронно по такту, причем допустимо обьединять случаи case в одно действие, перечисляя их через запятую (ну прям как в С). h позволяет использовать хекс, что сокращает запись и делает ее наглядной. Но следует пойти дальше и просто сделать мегафункцию ПЗУ 6х18. И просто грузить ее HEX файлом, тогда код вообще станет десятком строк, больше половины которых будут заголовком. И еще, я думаю 6 бит на канал даже с избытком, достаточно и 5. А это сокращает необходимый объем CPLD. --- Цитата: SkyNIC от 20 Июля 2017, 19:16:21 ---Также, можно узнать, как там успехи по реализции кодера PAL? --- Конец цитаты --- Я работаю над ним, просто я недавно вернулся домой с командировки и еще не закончил накопившиеся текущие дела. |
| SkyNIC:
--- Цитата: Phen от 20 Июля 2017, 23:51:29 ---Как я понял UM6559 используется только для синхронизации. Насколько я понимаю проблема с самопроизвольным изменением яркости решена? А-то мало-ли вдруг это PPU виноват. --- Конец цитаты --- Да, только для синхронизации, яркость теперь не изменяется, так как цвет 0F теперь зафиксирован. --- Цитата: HardWareMan от 21 Июля 2017, 06:30:34 ---Потому что номер этого цвета используется для гашения. Изменяя это значение просто обманываешь АРУ телевизора/монитора. --- Конец цитаты --- Интересно, получается таким образом можно реализовать emphasis? То есть, если вклинится в шину ppu и проверять когда установлены эти биты, то можно в момент когда они установлены, затемнять нужные компоненты, управляя цветом 0F. --- Цитата: HardWareMan от 21 Июля 2017, 06:30:34 ---Потому, что надо было взять родную частоту 26,6 с приставки. Тогда не было бы биений. --- Конец цитаты --- Насчёт частоты, в секаме же вроде 21.477МГц, а и стоит ли сейчас заморачиваться и брать сигнал частоты с приставки, если при 350МГц на плис биений уже нет? --- Цитата: HardWareMan от 21 Июля 2017, 06:30:34 ---сделать мегафункцию ПЗУ 6х18. --- Конец цитаты --- Сигналы IN1..IN6 агрегировал, от colorNOW избавился, присваивания поменял. Когда наиграюсь с палитрой так и сделаю. --- Цитата: HardWareMan от 21 Июля 2017, 06:30:34 --- И еще, я думаю 6 бит на канал даже с избытком, достаточно и 5. А это сокращает необходимый объем CPLD. --- Конец цитаты --- Ну это можно учесть будет уже в следующей плате, если она будет или если кто нибудь будет делать сам. И спасибо за развёрнутый ответ :) |
| HardWareMan:
--- Цитата: SkyNIC от 21 Июля 2017, 10:29:04 --- Насчёт частоты, в секаме же вроде 21.477МГц, --- Конец цитаты --- А, точно, тогда сделаю NTSC кодер. :) |
| Phen:
--- Цитата: HardWareMan от 21 Июля 2017, 11:46:33 ---А, точно, тогда сделаю NTSC кодер. --- Конец цитаты --- А как на счет скорости звука, она будет как в Dendy или как в Famicom (NES) ? |
| HardWareMan:
--- Цитата: Phen от 21 Июля 2017, 13:48:00 ---А как на счет скорости звука, она будет как в Dendy или как в Famicom (NES) ? --- Конец цитаты --- Мы процессор же не меняем. И PPU не меняем. Это будет NTSC50. Скорее всего придется таки делать PAL, современные телики такое не поймут. Немного еще матана. Вот картинка: Карта цветов: --- Код: ---00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 08 09 0A 0B 0C 0D 0E 0F 18 19 1A 1B 1C 1D 1E 1F 28 29 2A 2B 2C 2D 2E 2F 38 39 3A 3B 3C 3D 3E 3F --- Конец кода --- Вот запись 2х кадров картинки сверху: Вот 2 строки 00 - 07: Как уже говорилось ранее, CD3:CD0 это инверсия координаты HUE (младшие 4 бита палитры), CD5:CD4 это прямой сигнал LUMA (старшие 2 бита палитры). Причем, для гашения PPU использует 0F. Что касается CD6 и CD7: CD6 это инверсия синхронизации. Примечателен тот факт, что в кадровом обратном ходе присутствует синхронизация цветовых полей, которая была изначально в видеосигнале в виде трапецеидальных символов в видеосигнале, но потом из-за введения телетекста они были заменены на особую кадровую синхронизацию (серия строчных синхроимпульсов на удвоенной частоте): Будем надеяться, что они не будут сбивать с толку телевизор. А вот CD7 сигнал странный, видимо тоже относится к генерации кадровой цветовой синхронизации. Плохо то, что SECAMу не требуется цветовая синхровспышка в строке, поэтому этот сигнал отсутствует и его придется вырабатывать самому. |
| SkyNIC:
--- Цитата: HardWareMan от 21 Июля 2017, 14:49:55 ---А вот CD7 сигнал странный, видимо тоже относится к генерации кадровой цветовой синхронизации. --- Конец цитаты --- а он случайно не является сигналом начала кадра? |
| HardWareMan:
Не похоже. Слишком широк для синхронизации. И слишком сдвинут для кадрового гашения. |
| SkyNIC:
Решил вернуться к своей модифицированной Dendy Secam и заметил, странную проблему, если играть на обычном картридже в танки, то на сером фоне экрана выбора уровня есть диагональные и черные размытые вертикальные полосы, диагональные ещё и мерцают периодически. Пробовал другие картриджи с танками, полосы меняют интенсивность вроде, но полностью не исчезают. Однако если использовать Everdrive N8, то полос на сером фоне нет вообще. Как это можно объяснить? Обычный картридж: Everdrive N8: |
| HardWareMan:
У N8 шифтеры, которые не дают нагрузку на выходы PPU. А именно нагрузка на выходы адреса PPU и дают эти джейлбары, из-за особенности расположения видео ЦАП внутри PPU. |
| KykyPyky:
--- Цитата: HardWareMan от 30 Октября 2017, 16:18:44 ---У N8 шифтеры, которые не дают нагрузку на выходы PPU. А именно нагрузка на выходы адреса PPU и дают эти джейлбары, из-за особенности расположения видео ЦАП внутри PPU. --- Конец цитаты --- HardWareMan, интересные дела 0_0 получается что бы избавиться от джейлбаров надо поставить на выходы адреса ppu шифтеры или какие нибуть шинные формирователи типа КР580ВА86 и все? |
| HardWareMan:
580ВА86 сожрут всю батарею за секунды. Уж лучше 1533 ставить. |
| SkyNIC:
Разобрался с полосами, добавил 74HC244 между РРU (А8-13) и слотом, 74HC125 между СPU (А0-А2) и слотом, а также ещё электролит на 1000мкФ и тантал на 10мкФ по питанию ПЛИС. Остальные адресные линии слота трогать не стал, так как они либо не подсоединены напрямую к PPU, либо двунаправленные. Теперь полос не видно. |
| KykyPyky:
--- Цитата: SkyNIC от 02 Ноября 2017, 15:55:02 ---74HC125 между СPU (А0-А2) --- Конец цитаты --- думается мне это лишнее, цп общается с ppu когда изображение не выводится можешь сфоткать как сделал монтаж 74HC244? |
| SkyNIC:
--- Цитата: KykyPyky от 03 Ноября 2017, 10:56:30 ---думается мне это лишнее, цп общается с ppu когда изображение не выводится можешь сфоткать как сделал монтаж 74HC244? --- Конец цитаты --- Проводами навесом, разрезал дорожки, входы 74HC244 к ppu, выходы к слоту припаял, жидкими гвоздями все провода зафиксировал. Не сказать что надёжно выглядит, но работает. Вышло так, потому что там мало места снизу из-за платы с ПЛИС, а сверху из-за самодельной платы. Возможно 74HC125 лишняя, но раз хуже не стало, то не буду отпаивать. |
| Phen:
Не планировал я реализовывать свою схему. Но подумав пришел к выводу, что данная схема более аутентичная что-ли для того времени. Платы конечно не с самой лучшей разводкой. Главное все поместилось в корпус. Старющий шилялис с несведением и уставшими пушками ;) жк монитор + конвертер SCART to HDMI :) Получилось вроде неплохо, остались проблемы о которых я писал выше. Еще бы RP2A03 вместо UM6527 поставить, проверить исправится ли ситуация со скважностью звуковых каналов. Конечно данный вариант на сегодня не актуальный, SkyNIC реализовал решение избавляющее от UM6559 с кривой палитрой, но все же... P.S. Спасибо всем, кто помогал, советовал, критиковал :) |
| Nikooone:
:thumbup: :thumbup: :thumbup: :thumbup: :thumbup: |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |