Обзор графической архитектуры Famicom/NES/Денди

Про Famicom/NES/Денди уже написано и рассказано очень много, включая те сведения, что я напишу ниже, включая на этом же самом сайте. Но раз уж у меня получился цикл статей про графику в разных консолях, то обойти вниманием денди из детства не представляю возможным. Так что повторим еще раз как устроена с точки зрения программиста денди…


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

Имитация двух задних фонов в Famicom/NES/Денди

Как я писал в предыдущей статье о VBlank/HBlank, видеочип в денди мог выводить только один задний фон состоящий из плиток тайлов 8x8 пикселей и единственной технической возможностью создать иллюзию нескольких скроллящихся независимо фонов была техника HBlank–отсечения, которая, однако, могла поделить картинку только на горизонтальные полоски. Невозможно было вывести два фона из которых один бы частично заслонял другой.
Однако некоторые из читателей могли бы вспомнить как минимум парочку контр–примеров.

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

Игры, которые хотелось бы увидеть на Pentevo & TS-conf

Думаю, что не ошибусь, заявив: для многих NES (aka Famicom, aka Dendy) очень многое значит. Сколько времени было угрохано, уперевшись в ящик и сжимая в потных ладошках контроллер с крестовиной. Да что таить, иногда и на наших современных ноутбуках появляются боевики из Contra, неуклюжие существа из Milk & Nuts и бесстрашные пилоты на воздушных шариках из Balloon fight.
Не так давно я увидел скриншоты демок под пентеву, заинтересовался, скачал эмулятор, осмотрел имеющиеся работы, и, честно признаться, мне понравилось. «Чёрт возьми, мне бы такой спектрум лет 20 назад!» — это первое, что я подумал. (Спокойно, пост не проплачен, just, как говорится, imaginations).
А ведь под эту платформу, имхо, так и просятся ремейки, тем более, что вышеупомянутый Milk & Nuts под пентеву уже написан.
Поэтому немного помечтаю, и призываю желающих составить ностальжи компанию.

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

Кодинг на 6502 – сверхбыстрый старт

Допустим, у Вас возникло странное желание начать кодить для Apple II, Atari 2600, Atari 7800, Atari 8bit, C64, NES. Но вся жизнь посвящена спектруму, другие платформы — темный лес, с чего начинать — гуглить?




Нет!

NES - замер времени выполнения кода

При разработке для ретро-платформ нередко возникает необходимость сделать оценку быстродействия разных частей программы — то, что в современной практике называется 'профилированием'. Например, после добавления новых возможностей в игру её логика перестала укладываться в один кадр, начались замедления, и требуется выяснить, на какой части кода нужно сосредоточить усилия по оптимизации в первую очередь. Конечно, для небольших фрагментов кода на ассемблере всегда можно (и нужно) посчитать время выполнения в тактах вручную, но на больших участках со сложной логикой, либо при написании программы на языке высокого уровня, этот подход не годится. Рассмотрим, какие способы решения этой задачи есть в арсенале современного разработчика для NES.


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

Разбор полётов: демо High Hopes на NES

За редкими исключениями, игровые приставки не завоевали сколько-нибудь заметной популярности в качестве демо-платформ. Эту участь разделяет и NES, оставаясь лишь изредка всплывающей в демо-конкурсах в категориях wild или oldschool экзотикой, а большинство работ для неё в основном примечательно самим выбором платформы. За многие годы существования сцены любительской разработки для NES, демо, в отличие от игр, было написано немного. На Pouet их перечислено всего десять. Наиболее высоко оценённым и популярным из них до сих пор заслуженно является High Hopes, занявшее на Assembly 2007 первое место в категории oldskool demo. На его примере сегодня мы разберём, какие особенности и хитрости применяются при реализации классических демо-эффектов на NES.




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

Карта памяти NES

Одна из первых вещей, которую приходится изучать при освоении низкоуровневого программирования для новой платформы — её карта памяти, то есть где в адресном пространстве находятся ОЗУ, ПЗУ, регистры устройств и тому подобное. Если простота устройства ZX Spectrum, которое можно описать одним предложением — 'нижние 16 килобайт ПЗУ, остальное ОЗУ, экран в начале ОЗУ, весь ввод и вывод через один порт' — позволяет не особо задумываться о самом существовании этого вопроса, то у многих других современных ему платформ дела обстоят несколько сложнее. В особенности это справедливо для NES, карту памяти которой, а также причины именно такой её организации, мы и рассмотрим в этой статье.


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