DiHalt Lite 19, взгляд новичка. Часть 1/2

Это была авантюра от начала и до конца, и это было прекрасно!

Я знал, что в январе проходит DiHalt Lite, и считал, что я еще не готов туда ехать. Но как-то в декабре Влад Vinnny Виноградов мне написал в telegram и спросил, не хочу ли я что-то нарисовать на DHL19. Это было довольно неожиданный вопрос, так как у меня была опубликована всего одна картинка на zxart.ee, да и то специфическая, mockup. Такое на компо не выставляют. Но тут меня вдруг осенило: «А ведь это отличная возможность, и туда надо ещё и поехать лично!». Во-первых, можно попробовать что-то нарисовать по-настоящему, даже если не займу никакого места со своей первой конкурсной работой; во-вторых, познакомиться с демосценерами и развиртуализироваться; в-третьих, отдохнуть в новогодние каникулы и вырваться вместе с женой из надоевшего Екатеринбурга; в-четвертых, посмотреть Нижний Новгород, в котором мы с ней ни разу не были.
Читать дальше →

Переключение банков видеопамяти в Famicom/NES/Денди на примере игры Contra Force

Как я писал в статье про графическую архитектуру Famicom/NES/Денди возможности видеочипа консоли были ограничены сразу с нескольких сторон. Всё изображение обязательно состояло из четырёхцветных тайлов 8x8 пикселей и было всего два банка по 256 уникальных таких тайлов которые могли одновременно быть выведены на экран (при этом бОльшая часть изображения состояла из повторяющихся тайлов). Для игр первого поколения подобных Lode Runner или Bomberman двух этих банков видеоданных хватало на всю игру. Но с усложнением игр 512 уникальных тайлов на кадр резко перестало хватать и были изобретены мапперы переключающие банки на лету чтобы значительно увеличить разнообразие выводимого изображения.
Сегодня мы рассмотрим как переключались эти банки тайлов в первом уровне игры Contra Force чтобы увидеть как все эти технические ограничения с одной стороны обходились, а с другой влияли и в некоторых случаях даже формировали геймплей игр.

Читать дальше →

The Viewer v1.0 by Kpacku — вьювер, который вы ждали


История утилиты Best View знала 6 прекрасных, ярких лет — каждый, кто ей пользовался, привык и к атмосфере, и к привычному набору возможностей. Тогда было ощущение, что выйти из этой зоны комфорта просто невозможно — возможности утилиты, казалось, были написаны с 10-летним запасом.

Годы уюта закончились в 2004-м году, 15 лет назад, когда Best View не смог проиграть музыку, написанную в Pro Tracker 3.7. Со временем он ослабевал всё сильнее — в широком доступе появлялась гигаскрин и мультигигаскрин графика, бордерные картинки, да и просто атрибутные. Ответа на новые вызовы в виде обновления вьювера не последовало.


The Viewer — это ответ.
Читать дальше →

Скроллинг на Commodore 64

Commodore 64 не был распространён в наших широтах, но в Северной Америке он сыграл наверное такую же роль, как ZX Spectrum в Европе. Вот только он был примерно в два раза дороже и наверное примерно в два раза лучше по усреднённому количеству возможностей своих компонент. Так, например, его видеочип (VIC-II) умел несколько разных видеорежимов, причём как текстовых так и графических, поддерживал аппаратные спрайты и в целом был гораздо более заточен под игровые применения, нежели спектрум.

Читать дальше →

ZX-Art интеграции: ZXDB, Virtual TR-DOS и внешнее API

Итак, наступило время поговорить об очередных этапах развития ZX-Art. В результате недавно прошедшей напряженной разработки, удалось слить воедино базы софта ZXDB и Virtual TR-DOS.




Читать дальше →

Теоретический вопрос по железной начинке ZX Spectrum

На фоне обсуждений последних двух дней у меня родился вот какой вопрос:
Возможно ли было в чипах ULA спектрума сделать дёшево и сердито вот какую концепцию:
а) запись в некие два порта вывода X и Y координаты пикселя генерировали бы на входе трёх других портов ввода:
б) верхний байт адреса полоски пикселей в массиве пикселей видеопамяти
в) нижний байт адреса полоски пикселей в массиве пикселей видеопамяти
г) верхний байт адреса атрибута этой полоски пикселей
(нижний байт адреса атрибута тут не нужен, т.к. мы уже знаем, что он совпадает с (в) после предыдущих тем)
На уровне проводов это просто разброска линий и их перемешивание, что мы видели в предыдущих темах.
Так не было ли бы это возможным сделать без весомых затрат на самом старте?
(сразу обозначу — это чисто теоретический вопрос и статью я по нему писать не собираюсь. просто очень интересно.)

Почему у ZX Spectrum нелинейная адресация видеопамяти

v.1.0. черновая.

Почему экран ZX Spectrum устроен так необычно? Казалось бы, линейный экран намного проще?

Рассмотрим ZX Spectrum 16K. Контроллеру дисплея требуется считывать сразу два байта подряд (На самом деле он считывает в burst’е 2+2 байт, но для объяснения это несущественно). Сначала считывается байт атрибутов, затем байт пиксельных данных. Адрес приходится выставлять дважды: адрес атрибутов и адрес пикселей.

Читать дальше →

Почему у ZX Spectrum нелинейная раскладка видеопамяти

Если у вас был ZX Spectrum, то даже без навыков программирования графики в ассемблере вы постоянно должны были замечать странную вещь при загрузке игр с магнитофона — линейная заливка видеопамяти данными визуально выглядела нелинейно:




Читать дальше →

Почему у ZX Spectrum нелинейная раскладка видеопамяти?

Вопрос этот мучает меня довольно давно и я немало гуглил и задавался этим вопросом на других (непрофильных) форумах, так что хочу задать его теперь здесь.

Читать дальше →