Просмотр полной версии : Помощь в программировании Денди
Внезапно потребовалось создать простенький генератор видеосигнала-заглушку, ну как обычно у нас на ТВ "матрас" вешают ;). Только вместо "матраса" (цветные полосы) должна быть статическая картинка с логотипом и не более того. Рассматриваю два варианта:
- на AVR-ке;
- Денди.
Пока решил выбрать Денди. Треба создать простой картридж с двумя ПЗУ ("нулевой" маппер), дабы при включении грузилась заставка. И всё.
Среди имеющихся конвертеров типа bmp->chr не отработал ни один, графический редактор, что гуляет в Сети, определяется как вирус. Ну ладно, картинку вручную сделать можно, а вот как её загружать?
Никто не поможет? Хотя бы до уровня "файл .nes" ? С железом сам разберусь...
Сорри за офтоп, но по памяти вспоминается старая статья в журнале Радио(?): Генератор испытательных телевизионных сигналов на DENDY (http://nestalgia.ru/pedia/make-yourself/4bc4d7756cc02) Может поможет чем-то...
Собирал, лежит. Но тут задача проще - нужен не ГИТС, а тупая заставка из произвольной картинки. Вот как бы еще эту картинку перевести в чарсет...
Апну тему.
Неужели нет прогеров у нас на просторах бывшего СНГ на NES? Это же банальная задача, тащемто... Если кто то может, не не может зарегаться на форуме, напишите хотя-бы мне: tronix286 сабачго рамблир.ru
PS: Такая простейшая задача и нет ответов - аж самому интересно стало...
есть Рюмиковский проект ГИТС на базе Сеги, в который можно произвольные картинки запихивать.
Я могу сделать, но я занят пока.
---------- Post added at 23:50 ---------- Previous post was at 23:43 ----------
В ПЗУ видеоадаптера зашивается 512 спрайтов 8x8 4 цвета.
Программа пишется на ассемблере 6502. Доступ к видеопамяти через 2 регистра: адрес, данные. Видеопамять, это массив 32x30 из номеров спрайтов (0..255). Плюс атрибуты определяющие цвета спрайтов.
Подготавливается палитра из 16 цветов. Палитра делится на 4 группы по 4 цвета. Экран делится на 16x15 частей, каждой можно назначить одну группу цвета.
Ну а спайты (правильнее говорить тейлы) сами по себе 4-х цветные.
---------- Post added at 23:51 ---------- Previous post was at 23:50 ----------
Тут все понятно расписано
http://dendy.migera.ru/nes/g02.html
http://d.theupload.info/down/t6d1hd1wmttfvojjw2qeqv2edsrstyhi/avtor_neizvesten_zhurnal_radio_2005_8.djvu
Статья ГИТС-3. Там же инструкция как впихуть свою картинку.
Ребята, это всё понятно, спасибо. Просто тупо составить чарсет и выбирать отдельно буковки я уже смог. А вот по загрузке в чарсет произвольной картинки я пока пас... Поигрался с yy-chr, но он мне поччему-то выдает чистый файл на выходе...
BYTEMAN, ссыль, к сожалению, не открывается :(
vinxru буду благодарен, оно неспешно.
ЗЫ. Где-то, в далёких временах, попадались ромы, которые при загрузке тупо выводили заставку Win95 ;). Найти бы для препарирования...
rw6hrm, Можно посмотреть на страничке Shiru: http://shiru.untergrund.net/. Там есть NES Screen Tool. Произвольную картинку на NES нарисовать нельзя - весь экран 960 тайлов, а в знакогенераторе только 256.
Blade, спасибо, хорошая вещь оказалась, удобнее, чем yy-chr. Касаемо ёмкости знакогенератора, то можно же и второй подключить, да и картинку оптимизировать на повторяющиеся знаки...
Касаемо ёмкости знакогенератора, то можно же и второй подключить
Можно попробовать сделать на плате картриджа регистр, который будет заполняться старшими битами адреса при обращении к видеопамяти. А эти старшие биты будут выступать в качестве старших битов знакогенератора.
Таким макаром 3 знакогенератора для каждой части экрана.
Отписались мне в почту:
Для полноэкранной картинки с произвольным содержанием NROM недостаточно - он поддерживает всего 8 килобайт графики, а полный экран требует без малого 16. Нужен любой простейший маппер с переключением банков CHR, например CNROM (одна микросхема 74HC161). Нужно сделать несколько пустых циклов, которые будут включать нужные банки графики на определённых строках после начала кадра.
Если картинка с множеством повторяющихся элементов, не более 256 разных - тогда хватит NROM, достаточно просто загрузить карту тайлов в видео ОЗУ и больше ничего не делать.
В любом случае автоматическая конверсия позволит использовать только 4 цвета на всю картинку, так как алгоритм разбиения на блоки атрибутов и подбора оптимальной палитры - тот ещё матан. Никто толком не осилил сделать ничего прилично работающего.
Alex Semenov (Shiru)
Вот как раз про CNROM я и подумал, он допускает 4 банка по 8К для фонтов. Про атрибуты.., ну никто и не говорил, что это просто ;), тут всё ручками делать надобно... Сделать картинку, посмотреть её отдельными элементами, выкинуть повторяющиеся (в моём случае много прозрачных, или пробелов по-привычному), так и уменьшить можно до двух фонтов...
Ну уже начинаю играться ;)
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot