Разработка для Atari 2600 в браузере

Крайне интересный сайт для тех, кто хотел бы освоить программирование для Atari 2600. Содержит реализованную на HTML5 связку из эмулятора и интегрированного с ним ассемблера с хорошими отладочными возможностями, а также 36 примеров прекрасно документированного кода — начиная от простейшего, типа hello world, продолжая постепенным ростом сложности и освоением аппаратных средств платформы, и заканчивая довольно сложными этюдами, такими как классические трюки с выводом текста и 6-значных десятичных чисел (на 2600 очень трудно отображать текст) и отображением дороги в перспективной проекции, как в гоночных играх. Не обойдён вниманием и звук, поддержка которого также присутствует. В общем, всё, что нужно, чтобы начать писать собственные игры или демо.

Среди интересных возможностей — ассемблер умеет показывать время выполнения команд в тактах, что очень актуально для 2600, где вся работа с графикой напоминает по своей сути мультиколор или бордюрные эффекты на ZX Spectrum.

Напоминаю, что несмотря на близкую к предельной древность (1977 год) и крайнюю ограниченность технических средств (например, всего 128 байт ОЗУ и штатно максимум 4096 байт ПЗУ для программы), на платформе существует довольно активная сцена, создающая немало интересных продов. Прекрасный выбор для поклонников минимализма в поисках самых крупных и самых остроугольных пикселей.

Посетить незамедлительно!

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

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


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

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

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




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

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

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


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

Hype NES Intro

С приходом на этот ресурс у меня были планы написать серию постов о программировании для 8-битной игровой приставки NES. Для вводного поста и в качестве примера для дальнейшего разбора было сделано это простейшее интро. Но объём работы оказался велик, свободного времени мало, мотивация низка, и когда до этого всего дойдут руки — неясно. Поэтому планы были отложены на светлое будущее, а пока я решил опубликовать то, что есть, чтобы оно не потеряло актуальность окончательно.

ROM и исходник без единого комментария: shiru.untergrund.net/files/nes/hype.zip