PDA

Просмотр полной версии : Помощь в программировании Денди



rw6hrm
17.02.2013, 14:23
Внезапно потребовалось создать простенький генератор видеосигнала-заглушку, ну как обычно у нас на ТВ "матрас" вешают ;). Только вместо "матраса" (цветные полосы) должна быть статическая картинка с логотипом и не более того. Рассматриваю два варианта:
- на AVR-ке;
- Денди.
Пока решил выбрать Денди. Треба создать простой картридж с двумя ПЗУ ("нулевой" маппер), дабы при включении грузилась заставка. И всё.
Среди имеющихся конвертеров типа bmp->chr не отработал ни один, графический редактор, что гуляет в Сети, определяется как вирус. Ну ладно, картинку вручную сделать можно, а вот как её загружать?

Никто не поможет? Хотя бы до уровня "файл .nes" ? С железом сам разберусь...

Tronix
17.02.2013, 14:54
Сорри за офтоп, но по памяти вспоминается старая статья в журнале Радио(?): Генератор испытательных телевизионных сигналов на DENDY (http://nestalgia.ru/pedia/make-yourself/4bc4d7756cc02) Может поможет чем-то...

rw6hrm
17.02.2013, 15:33
Собирал, лежит. Но тут задача проще - нужен не ГИТС, а тупая заставка из произвольной картинки. Вот как бы еще эту картинку перевести в чарсет...

Tronix
19.02.2013, 00:08
Апну тему.
Неужели нет прогеров у нас на просторах бывшего СНГ на NES? Это же банальная задача, тащемто... Если кто то может, не не может зарегаться на форуме, напишите хотя-бы мне: tronix286 сабачго рамблир.ru

PS: Такая простейшая задача и нет ответов - аж самому интересно стало...

BYTEMAN
19.02.2013, 00:20
есть Рюмиковский проект ГИТС на базе Сеги, в который можно произвольные картинки запихивать.

vinxru
19.02.2013, 00:51
Я могу сделать, но я занят пока.

---------- 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

BYTEMAN
19.02.2013, 01:10
http://d.theupload.info/down/t6d1hd1wmttfvojjw2qeqv2edsrstyhi/avtor_neizvesten_zhurnal_radio_2005_8.djvu

Статья ГИТС-3. Там же инструкция как впихуть свою картинку.

rw6hrm
19.02.2013, 09:17
Ребята, это всё понятно, спасибо. Просто тупо составить чарсет и выбирать отдельно буковки я уже смог. А вот по загрузке в чарсет произвольной картинки я пока пас... Поигрался с yy-chr, но он мне поччему-то выдает чистый файл на выходе...

BYTEMAN, ссыль, к сожалению, не открывается :(

vinxru буду благодарен, оно неспешно.

ЗЫ. Где-то, в далёких временах, попадались ромы, которые при загрузке тупо выводили заставку Win95 ;). Найти бы для препарирования...

Blade
19.02.2013, 10:21
rw6hrm, Можно посмотреть на страничке Shiru: http://shiru.untergrund.net/. Там есть NES Screen Tool. Произвольную картинку на NES нарисовать нельзя - весь экран 960 тайлов, а в знакогенераторе только 256.

rw6hrm
19.02.2013, 10:46
Blade, спасибо, хорошая вещь оказалась, удобнее, чем yy-chr. Касаемо ёмкости знакогенератора, то можно же и второй подключить, да и картинку оптимизировать на повторяющиеся знаки...

vinxru
19.02.2013, 11:39
Касаемо ёмкости знакогенератора, то можно же и второй подключить

Можно попробовать сделать на плате картриджа регистр, который будет заполняться старшими битами адреса при обращении к видеопамяти. А эти старшие биты будут выступать в качестве старших битов знакогенератора.

Таким макаром 3 знакогенератора для каждой части экрана.

Tronix
19.02.2013, 11:57
Отписались мне в почту:


Для полноэкранной картинки с произвольным содержанием NROM недостаточно - он поддерживает всего 8 килобайт графики, а полный экран требует без малого 16. Нужен любой простейший маппер с переключением банков CHR, например CNROM (одна микросхема 74HC161). Нужно сделать несколько пустых циклов, которые будут включать нужные банки графики на определённых строках после начала кадра.

Если картинка с множеством повторяющихся элементов, не более 256 разных - тогда хватит NROM, достаточно просто загрузить карту тайлов в видео ОЗУ и больше ничего не делать.

В любом случае автоматическая конверсия позволит использовать только 4 цвета на всю картинку, так как алгоритм разбиения на блоки атрибутов и подбора оптимальной палитры - тот ещё матан. Никто толком не осилил сделать ничего прилично работающего.


Alex Semenov (Shiru)

rw6hrm
19.02.2013, 12:54
Вот как раз про CNROM я и подумал, он допускает 4 банка по 8К для фонтов. Про атрибуты.., ну никто и не говорил, что это просто ;), тут всё ручками делать надобно... Сделать картинку, посмотреть её отдельными элементами, выкинуть повторяющиеся (в моём случае много прозрачных, или пробелов по-привычному), так и уменьшить можно до двух фонтов...
Ну уже начинаю играться ;)