Приставки > 1-3 поколения
NESRGB AV Famicom - цифровой шум
and1981:
Касаемо длины проводов, думаю если вы разместите плату на обратной стороне материнской платы фамика то это не должно повлиять на работоспособность конструкции. А спрайты увеличить малой кровью не получится, нужно глобально переделывать весь дизайн, а моя цель была максимально точно повторить внутреннюю структуру оригинального чипа, плюс возможность выводить в РГБ, дабы улучшить качество картинки. Но никто не мешает лично переписать верилог и добавить такую возможность. :cool:
В ближайших планах думаю будет возможность вывода в формате VGA, дабы подключать консоль к мониторам и как вариант выводить в HDMI. А лимит спрайтов может быть будет в будущем, но это уже будет совсем другая история. :)
MaRC:
Проект RGB-PPU открытый? Просто в текущем виде для постороннего человека он имеет мало смысла для сбора в железе - насколько я знаю, оригинальные PPU не то чтобы подвержены выходу из строя, а ради RGB под деньгам что ваш собирать, что LavaRGB будет примерно одинаково.
А так это было бы хорошей точкой входа для тех, кто реально захочет увеличить лимит спрайтов - такие реализации уже есть на плис, но они не опенсорс насколько я знаю. Я верилогом не владею, а вот с переразводкой плат положительный опыт умел и когда появится открытая плата с поддержкой большего количества спрайтов я бы пожалуй переделал ее под установку снизу оригинального фамикома.
and1981:
Проект открытый, я давал уже раньше ссылку на репозиторий. По стоимости будет дешевле Лавы, я изначально и планировал сделать самый дешевый заменитель, на сколько это возможно. Да и исходники Лавы на сколько я знаю не являются открытыми, хотя имея опыт с ранними лавами я нашел в их работе массу недочетов, хотя возможно их уже исправили, но проверять это я больше не хочу :) И самый главный недостаток конвертеров ргб на базе лавы и несргб - это невозможность работы с прямой записью цвета через индекс счетчика тайлов, фулл палетт вьювер тест это подтверждает, конечно кроме тестов я не знаю где это используется, но факт остается фактом, и картинку ниже на них никак не получить.
JRBVZ:
and1981, подскажи по коду, в модуле главного генератора таймингов PPU присвоения нескольких H_LINE, V_LINE описывают свойства разных версий PPU?
--- Код: ---assign H_LINE0 = ~( ~H[8] | H[7] | H[6] | H[5] | ~H[4] | H[3] | ~H[2] | ~H[1] | ~H[0] ); // H279
assign H_LINE1 = ~( ~H[8] | H[7] | H[6] | H[5] | H[4] | H[3] | H[2] | H[1] | H[0] ); // H256
assign H_LINE2 = ~( BLNK | H[8] | H[7] | ~H[6] | H[5] | H[4] | H[3] | H[2] | H[1] | ~H[0] ); // H065
assign H_LINE5 = ~( BLNK | ~H[8] | H[7] | ~H[6] | H[5] | ~H[4] | H[3] | H[2] | ~H[1] | ~H[0] ); // H339
assign H_LINE6 = ~( BLNK | H[8] | H[7] | H[6] | ~H[5] | ~H[4] | ~H[3] | ~H[2] | ~H[1] | ~H[0] ); // H063
assign H_LINE7 = ~( BLNK | ~H[7] | ~H[6] | ~H[5] | ~H[4] | ~H[3] | ~H[2] | ~H[1] | ~H[0] ); // H255
assign H_LINE17 = ~( ~H[8] | H[7] | H[6] | H[5] | H[4] | H[3] | H[2] | ~H[1] | H[0] ); // H258
assign H_LINE18 = ~( H[8] | H[7] | H[6] | H[5] | H[4] | H[3] | H[2] | ~H[1] | H[0] ); // H002
assign H_LINE20 = ~( ~H[8] | H[7] | H[6] | ~H[5] | ~H[4] | H[3] | H[2] | H[1] | H[0] ); // H304
assign H_LINE21 = ~( ~H[8] | H[7] | ~H[6] | H[5] | H[4] | H[3] | H[2] | ~H[1] | ~H[0] ); // H323
assign H_LINE22 = ~( ~H[8] | H[7] | H[6] | ~H[5] | ~H[4] | H[3] | ~H[2] | H[1] | H[0] ); // H308
assign H_LINE23 = ~( ~H[8] | H[7] | ~H[6] | H[5] | ~H[4] | H[3] | ~H[2] | H[1] | H[0] ); // H340
assign V_LINE0N = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | ~V[2] | ~V[1] | ~V[0] | MODE ); // V247 NTSC
assign V_LINE0P = ~( ~V[8] | V[7] | V[6] | V[5] | ~V[4] | V[3] | V[2] | V[1] | V[0] | ~MODE ); // V272 PAL
assign V_LINE1N = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | ~V[2] | V[1] | V[0] | MODE ); // V244 NTSC
assign V_LINE1P = ~( ~V[8] | V[7] | V[6] | V[5] | V[4] | ~V[3] | ~V[2] | V[1] | ~V[0] | ~MODE ); // V269 PAL
assign V_LINE2N = ~( ~V[8] | V[7] | V[6] | V[5] | V[4] | V[3] | ~V[2] | V[1] | ~V[0] | MODE ); // V261 NTSC
assign V_LINE2P = ~( V[8] | V[7] | V[6] | V[5] | V[4] | V[3] | V[2] | V[1] | V[0] | ~MODE ); // V000 PAL
assign V_LINE3N = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | ~V[0] | MODE ); // V241 NTSC
assign V_LINE3P = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | V[0] | ~MODE ); // V240 PAL
assign V_LINE4 = ~( V[8] | V[7] | V[6] | V[5] | V[4] | V[3] | V[2] | V[1] | V[0] ); // V000
assign V_LINE5 = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | V[0] ); // V240
assign VLINE241 = ~( ~V[8] | ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | ~V[0] | ~MODE | DENDY ); // V241 PAL INT
assign VLINE291 = ~( ~V[8] | V[7] | V[6] | ~V[5] | V[4] | V[3] | V[2] | ~V[1] | ~V[0] | ~MODE | ~DENDY ); // V291 DENDY INT
assign VLINE311 = ~( ~V[8] | V[7] | V[6] | ~V[5] | ~V[4] | V[3] | ~V[2] | ~V[1] | ~V[0] | ~MODE ); // V311 PAL
--- Конец кода ---
and1981:
--- Цитата: JRBVZ от 22 Сентябрь 2025, 11:40:35 ---and1981, подскажи по коду, в модуле главного генератора таймингов PPU присвоения нескольких H_LINE, V_LINE описывают свойства разных версий PPU?
--- Код: ---assign H_LINE0 = ~( ~H[8] | H[7] | H[6] | H[5] | ~H[4] | H[3] | ~H[2] | ~H[1] | ~H[0] ); // H279
assign H_LINE1 = ~( ~H[8] | H[7] | H[6] | H[5] | H[4] | H[3] | H[2] | H[1] | H[0] ); // H256
assign H_LINE2 = ~( BLNK | H[8] | H[7] | ~H[6] | H[5] | H[4] | H[3] | H[2] | H[1] | ~H[0] ); // H065
assign H_LINE5 = ~( BLNK | ~H[8] | H[7] | ~H[6] | H[5] | ~H[4] | H[3] | H[2] | ~H[1] | ~H[0] ); // H339
assign H_LINE6 = ~( BLNK | H[8] | H[7] | H[6] | ~H[5] | ~H[4] | ~H[3] | ~H[2] | ~H[1] | ~H[0] ); // H063
assign H_LINE7 = ~( BLNK | ~H[7] | ~H[6] | ~H[5] | ~H[4] | ~H[3] | ~H[2] | ~H[1] | ~H[0] ); // H255
assign H_LINE17 = ~( ~H[8] | H[7] | H[6] | H[5] | H[4] | H[3] | H[2] | ~H[1] | H[0] ); // H258
assign H_LINE18 = ~( H[8] | H[7] | H[6] | H[5] | H[4] | H[3] | H[2] | ~H[1] | H[0] ); // H002
assign H_LINE20 = ~( ~H[8] | H[7] | H[6] | ~H[5] | ~H[4] | H[3] | H[2] | H[1] | H[0] ); // H304
assign H_LINE21 = ~( ~H[8] | H[7] | ~H[6] | H[5] | H[4] | H[3] | H[2] | ~H[1] | ~H[0] ); // H323
assign H_LINE22 = ~( ~H[8] | H[7] | H[6] | ~H[5] | ~H[4] | H[3] | ~H[2] | H[1] | H[0] ); // H308
assign H_LINE23 = ~( ~H[8] | H[7] | ~H[6] | H[5] | ~H[4] | H[3] | ~H[2] | H[1] | H[0] ); // H340
assign V_LINE0N = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | ~V[2] | ~V[1] | ~V[0] | MODE ); // V247 NTSC
assign V_LINE0P = ~( ~V[8] | V[7] | V[6] | V[5] | ~V[4] | V[3] | V[2] | V[1] | V[0] | ~MODE ); // V272 PAL
assign V_LINE1N = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | ~V[2] | V[1] | V[0] | MODE ); // V244 NTSC
assign V_LINE1P = ~( ~V[8] | V[7] | V[6] | V[5] | V[4] | ~V[3] | ~V[2] | V[1] | ~V[0] | ~MODE ); // V269 PAL
assign V_LINE2N = ~( ~V[8] | V[7] | V[6] | V[5] | V[4] | V[3] | ~V[2] | V[1] | ~V[0] | MODE ); // V261 NTSC
assign V_LINE2P = ~( V[8] | V[7] | V[6] | V[5] | V[4] | V[3] | V[2] | V[1] | V[0] | ~MODE ); // V000 PAL
assign V_LINE3N = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | ~V[0] | MODE ); // V241 NTSC
assign V_LINE3P = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | V[0] | ~MODE ); // V240 PAL
assign V_LINE4 = ~( V[8] | V[7] | V[6] | V[5] | V[4] | V[3] | V[2] | V[1] | V[0] ); // V000
assign V_LINE5 = ~( ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | V[0] ); // V240
assign VLINE241 = ~( ~V[8] | ~V[7] | ~V[6] | ~V[5] | ~V[4] | V[3] | V[2] | V[1] | ~V[0] | ~MODE | DENDY ); // V241 PAL INT
assign VLINE291 = ~( ~V[8] | V[7] | V[6] | ~V[5] | V[4] | V[3] | V[2] | ~V[1] | ~V[0] | ~MODE | ~DENDY ); // V291 DENDY INT
assign VLINE311 = ~( ~V[8] | V[7] | V[6] | ~V[5] | ~V[4] | V[3] | ~V[2] | ~V[1] | ~V[0] | ~MODE ); // V311 PAL
--- Конец кода ---
--- Конец цитаты ---
Все просто, те которые используются в ПАЛ и НТСЦ - это общие линии на две системы, те которые помечены как ПАЛ - используются только в ПАЛ ну и НТСЦ соответственно, а для Денди от ПАЛ только одна линия отличается. Надо видимо отдельную тему сделать, дабы не флудить здесь.
rgz:
--- Цитата: and1981 от 19 Июнь 2025, 17:48:00 ---Изначально этот каскад был взят китайцами 1 : 1 как в схеме NESRGB
--- Конец цитаты ---
Привет. А подскажи, где можно найти/скачать принципиальную схему NESRGB? А то, что-то в инете ничего не находит. Если можешь поделиться, буду рад. Можно в личку. Спасибо
and1981:
Схема была мной получена еще в 2020 году, я даже тогда нарисовал плату, но руки как-то не доходили заказать и проверить. Потом увлекся ФПГА PPU по стопам HWM :) и уже эта тема стала не столько актуальна для меня. Но вот совсем недавно решил сделать собственный софт под NESRGB, чисто ради интереса. Пришлось допилить и заказать платы в Китае. :cool:
rgz:
Большое тебе, дружище спасибо and1981 :thumbup:. Просто, я себе купил на Алике LavaRGB, а схемы нигде не находил в инете, хотел срисовать для себя, чтоб понять как и что там реализовано, но все времени нехватало, так пока и лежит платка без действия. Со временем все же хочу установить в свой NES, чтобы был RGB.
PS. Хотел ещё один вопрос уточнить. На твоей схеме есть джампер J7 PAL/NTSC, как он работает? Зависит его работа как-то от применяемых чипов PPU и CPU: PAL NES, NTSC NES или гибрид "Dendy"? Спасибо.
and1981:
--- Цитата: rgz от 23 Сентябрь 2025, 19:11:33 ---Большое тебе, дружище спасибо and1981 :thumbup:. Просто, я себе купил на Алике LavaRGB, а схемы нигде не находил в инете, хотел срисовать для себя, чтоб понять как и что там реализовано, но все времени нехватало, так пока и лежит платка без действия. Со временем все же хочу установить в свой NES, чтобы был RGB.
--- Конец цитаты ---
Так у Lava другая схема, может тебе схема Lava тогда нужна?
rgz:
--- Цитата: and1981 от 23 Сентябрь 2025, 19:14:49 ---Так у Lava другая схема, может тебе схема Lava тогда нужна?
--- Конец цитаты ---
Да, буду тебе благодарен, если такая схема имеется. Платка у меня называется NESRGB CH 2024 на Altera собрана с переходником для установки в Famicom.
and1981:
--- Цитата: rgz от 23 Сентябрь 2025, 19:25:05 ---Да, буду тебе благодарен, если такая схема имеется. Платка у меня называется NESRGB CH 2024 на Altera собрана.
--- Конец цитаты ---
Есть и такая :)
rgz:
--- Цитата: and1981 от 23 Сентябрь 2025, 19:28:54 ---Есть и такая
--- Конец цитаты ---
Большое тебе спасибо :thumbup:
and1981:
После безуспешных попыток победить все глюки LAVA_RGB, мне пришла одна безумная идея, а именно модифицировать уже готовую плату Лавы в плату PPU_LITE. :) К счастью, набортная ФПГА LATTICE LCMXO2-1200HC-4TG100C уже содержит неободимое количество ресурсов для PPU_LITE. При этом ничего резать на плате не нужно, необходимо всего навсего бросить около 20-ти перемычек, отпаять компараторы, видео повторитель и одну LC541A и в теории все это должно заработать. Я уже даже сделал отдельный проект PPU_LITE в Lattice Diamond 3.5 и все успешно синтезируется и собирается. :cool:
Приблизительно это должно выглядеть так:
JRBVZ:
Не отвлекайся, пили свой проект :thumbup:
twink3:
--- Цитата: and1981 от 30 Октябрь 2025, 17:37:49 ---После безуспешных попыток победить все глюки LAVA_RGB, мне пришла одна безумная идея, а именно модифицировать уже готовую плату Лавы в плату PPU_LITE. :) К счастью, набортная ФПГА LATTICE LCMXO2-1200HC-4TG100C уже содержит неободимое количество ресурсов для PPU_LITE. При этом ничего резать на плате не нужно, необходимо всего навсего бросить около 20-ти перемычек, отпаять компараторы, видео повторитель и одну LC541A и в теории все это должно заработать. Я уже даже сделал отдельный проект PPU_LITE в Lattice Diamond 3.5 и все успешно синтезируется и собирается. :cool:
Приблизительно это должно выглядеть так:
--- Конец цитаты ---
А вот это уже интересно, чур я первый в очереди на прошивку для Lattice, а то я собрал лаву, прошил, но она кина не кажет. :neznayu:
and1981:
--- Цитата: twink3 от 01 Ноябрь 2025, 16:52:54 ---А вот это уже интересно, чур я первый в очереди на прошивку для Lattice, а то я собрал лаву, прошил, но она кина не кажет.
--- Конец цитаты ---
Будет прошивка, но сначала надо программатор для них дождаться с Али, а то у меня только для Альтерок есть, Латтисом я как-то не занимался, а вот понадобилось брату цифровой фильтр сделать на Латтисе, пришлось вникать. А как работает, есть ли при этом звук у приставки, или совсем тишина? ну и фото приложи монтажа Лавы, может где ошибка закралась?
twink3:
--- Цитата: and1981 от 01 Ноябрь 2025, 22:11:23 ---Будет прошивка, но сначала надо программатор для них дождаться с Али, а то у меня только для Альтерок есть, Латтисом я как-то не занимался, а вот понадобилось брату цифровой фильтр сделать на Латтисе, пришлось вникать. А как работает, есть ли при этом звук у приставки, или совсем тишина? ну и фото приложи монтажа Лавы, может где ошибка закралась?
--- Конец цитаты ---
Совсем тишина, даже сигнала с кварца нету, при том что Lattice определилась и прошилась без проблем, преобразователи уровней менял, не изменилось ровным счетом ничего, есть не большое подозрение на плату, возможной в ней косяк, но как-то совсем лень сверять со схемой, все желанию пропало.
and1981:
--- Цитата: twink3 от 01 Ноябрь 2025, 23:37:51 ---Совсем тишина, даже сигнала с кварца нету, при том что Lattice определилась и прошилась без проблем, преобразователи уровней менял, не изменилось ровным счетом ничего, есть не большое подозрение на плату, возможной в ней косяк, но как-то совсем лень сверять со схемой, все желанию пропало.
--- Конец цитаты ---
3.3 вольта есть с находящегося на плате LDO стабилизатора? Если есть осциллограф, проверить наличие приходящего с платы консоли клока 21.477 МГц на резисторе 100 Ом справа возле Латтиса.
Если нет клока, дальше рыть бесполезно, ничего не будет работать. Сердце должно биться. :biggrin:
twink3:
--- Цитата: and1981 от 02 Ноябрь 2025, 00:10:14 ---3.3 вольта есть с находящегося на плате LDO стабилизатора? Если есть осциллограф, проверить наличие приходящего с платы консоли клока 21.477 МГц на резисторе 100 Ом справа возле Латтиса.
Если нет клока, дальше рыть бесполезно, ничего не будет работать. Сердце должно биться. :biggrin:
--- Конец цитаты ---
В этом и проблема, что напряжения есть - 3.3в и где надо 5в, а клока нет. o_0
and1981:
--- Цитата: twink3 от 02 Ноябрь 2025, 09:48:05 ---В этом и проблема, что напряжения есть - 3.3в и где надо 5в, а клока нет.
--- Конец цитаты ---
Ищи клок, прозванивай с обоих сторон этот резистор на 100 ом и дальше от него в сторону кварцевого генератора на плате консоли, если контакт есть, попробуй увеличить проходной конденсатор для клока ппу, там он где-то 51 пФ, ну можно попробовать до 100 пФ. и вообще при снятой плате лавы, есть ли генерация? может повредилось что.
Навигация
Перейти к полной версии