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

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




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

Artfield 2015: JUNIOR


Анонс

28 ноября 2015 года в Воронеже состоится 12 фестиваль ретрокомпьютеров ArtField.

Впервые в этом году фестиваль состоится в новом формате фестиваля искусства. Долгое время мероприятие проходило в формате выставки ретрокомпьютеров, но всё меняется, пришло время и нашему фестивалю стать чем-то иным.

Дата проведения фестиваля
28 ноября 2015

Место проведения фестиваля
Воронеж, главный корпус Воронежского Государственного Университета

Посещение фестиваля бесплатное.

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

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

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


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

Дважды портативный ZX Spectrum

На протяжении многих лет на нашей сцене неоднократно поднималась тема портативного ZX Spectrum. Начинались и затихали обсуждения и споры на форумах, появлялись и исчезали сайты проектов, закупались и раскладывались стройными рядами микросхемы и экраны Nintendo DS, а результат так и не был достигнут. Со временем технический прогресс сделал идею неактуальной, дав каждому желающему возможность заполучить карманный ZX прямо в своём любимом смартфоне, планшете или карманной приставке. Но то, о чём мечтали спектрумисты начала века — железный портативный Spectrum, с реальным Z80, с настоящей клавиатурой, в своём собственном корпусе — всё же свершилось, и прошло у нас практически незамеченным.

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

ZX Spectrum Demoparty Calendar 2016

Demoparty calendar: 2015, 2016, 2017, 2018
DateDemopartyPlatformRemoteLinksOrganizers
JANUARY
09-10 DiHalt 2016 LiteAll, OLDSCHOOLAllowed Vinnny, TmK
FEBRUARY
13 ZX Enhanced CompoZX Spectrum EnhancedAllowed VBI
MARCH
12-13 Sochi Party 2016ZXAllowed Kakos_nonos
18-20 FOReVER 2016ZX, C64,CPC, AtariAllowed MikeZT
25-28 Revision 2016All, OLDSCHOOLNot allowed FRaNKy
APRIL
16 speccy.pl party 2016.1ZX, OLDSCHOOLAllowed Tygrys
30-01 Multimatograf 2016ZX, OLDSCHOOLAllowed Nyuk
MAY
05-06 Outline 2016Atari, OLDSCHOOLAllowed ?
20-22 Decrunch 2016OLDSCHOOLAllowed* wino
JUNE
03-05 De:coded 2016ALL, ZXAllowed keen
04-05 ArtField 2016ZX, OLDSCHOOLAllowed aturbidflow
JULY
02-03 DiHalt 2016ALL, ZXAllowed Vinnny, TmK
15-17 Sundown 2016ALL, OLDSCHOOLAllowed Ruairi (rc55)
30-31 Crazy Siberian Party 2016ZXAllowed wbr
AUGUST
05-06 Wct Pie 2016ZX, MS-DOSAllowed mihip
27-28 Chaos Constructions 2016ALL, ZXAllowed Random
SEPTEMBER
02-04 Riverwash 2016All, OLDSCHOOLAllowed Fei
OCTOBER
29 Out of Compo 2016ZXAllowed Shuran
NOVEMBER
04-05 Demosplash 2016OLDSCHOOLunknown ?
26 AFMC November 2016ZX, OLDSCHOOLAllowed aturbidflow
DECEMBER
04 JHCon 2016ZXunknown logout128


* — except oldschool demo

update1: forever 2016 added
update2: forever 2016 date added (10/10/2015)
update3: wct pie 2016 added (20/10/2015)
update4: russian demoscene winter event 2016 replaced with dihalt lite 2016 (25/10/2015)
update5: nordlicht 2016 added (21/11/2015)
update6: riverwash 2016 added (30/11/2015)
update7: zxe 2016 added (10/12/2015)
update8: multimatograf 2016 and artfield 2016 added (15/12/2015)
update9: sochi party 2016, csp 2016 added (06/01/2016)
update10: outline 2016 added (29/01/2016)
update11: wapniak 2k16 added (14/02/2016)
update12: revision 2016, decrunch 2016, edison 2016, dihalt 2016, sundown 2016, demobit 2016 added (13/03/2016)
update13: de:coded 2016 added (29/03/2016)
update14: arok 2016, speccy.pl 2016 added, demobit 2016 date changed (03/05/2016)
update15: arok 2016 date fixed, demosplash 2016 added (10/06/2016)
update16: wctpie 2016 date changed (11/07/2016)
update17: wctpie 2016 date changed (13/07/2016)
update18: out of compo added (23/09/2016)
update19: jhcon 2016 added (06/11/2016)
update20: AFMC November added (04/12/2016)

Интервью с Наташей Зотовой

"Portrait" by Natasha Zotova
AG – diver4d
NZ – Наталья Зотова, автор игры «Lava» (победитель ZX Spectrum Basic Game Compo)

AG: Здравствуйте! Скажите пожалуйста, вы случайно не участвовали в конкурсе по созданию игр для ZX Spectrum в прошлом году (ZX Spectrum Basic Game Compo)?

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

Полноэкранная графика на NES

Пользователи ZX Spectrum и других домашних компьютеров 80-х привыкли к красочным полноэкранным заставкам, показываемым во время загрузки игры. Сама возможность отображения таких заставок им справедливо кажется естественной. И казалось бы, такая довольно мощная для своего времени игровая система, как NES, должна с лёгкостью с этим справляться — ведь показывает же она во время игры прокрутку полного экрана с крупными спрайтами со скоростью 50/60 кадров в секунду. Однако, если задуматься, можно вспомнить, что полноэкранные заставочные картинки едва ли встречались в играх, а по большей части это был чёрный экран с относительно небольшим по площади изображением. Конечно же это не случайно. Углубимся в тему.


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

Программируем Апогей

Добрый день!


Решился я наконец написать серию статей о программировании для апогея. Упор в них будет делаться на его архитектуру, вниманию, собственно, программированию будет уделяться меньше, так как подразумевается что вы знакомы с программированием и знаете z80. Итак, начнём!

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

Пишем для NES. Краткая версия.

Изложено в формате 'нет времени объяснять'. Подробное раскрытие каждого небольшого пункта потребует статьи большего объёма, чем этот обзор. Это будет сделано впоследствии, если у читателей обнаружатся конкретные интересы.

Хотите написать игру или демо для NES, Famicom, Денди?

Изучаем. Кладезь актуальной мудрости — NesDev Wiki. Вводные для начинающих — Nerdy Nights на английском, другая на русском. Помним, что старые описания неполны и неточны. Отдельно изучаем 6502. Книг и статей много, поиск начинаем отсюда.

Выбираем между ассемблером и C. Тысяча игр на ассемблере, десятки на C. Код на ассемблере в разы эффективнее, на C пишется в разы быстрее. С ассемлером проще получить помощь зала. Для отчаянных есть экзотика, от BASIC до минимальных Lisp и Python.

Выбираем ассемблер. Три популярных, десятки других. NESASM стар, имеет искусственные ограничения (пришёл с MS-DOS, перепилен с PCE/TG16) и мелкие глюки. Легко освоить, большинство старых уроков под него, выдержит средний проект. Современная альтернатива — ASM6, прост в освоении, но не так популярен. Выбор профессионала — CA65. Мощен и гибок, но сложен в освоении (линкер и конфигурация памяти).

Выбираем компилятор C — CC65. Для работы с железом есть библиотеки neslib и KNES, либо пишем свою. По скорости потолок чистого C — подобие Super Mario Bros. Можно писать частично на C, частично на ассемблере, переписывать фрагменты кода по ходу дела. Очень удобно для прототипирования.

Пишем код. Любимый текстовый редактор, bat или make файлы. Есть развитая IDE для CC65 — NESICIDE, но WIP и почти никем не используется.

Рисуем. Отдельные тайлы редактируем непосредственно в YY-CHR, NES Screen Tool, Tile Layer Pro и других, более сложные изображения импортируем из обычных форматов там же. Для сложных проектов может понадобиться свой велосипед. Без трюков NES не может отобразить полноценную картинку на весь экран, аналога Art Studio не ищите.

Музыка и звуки. Два основных трекера, но нужен проигрыватель, выбирается в зависимости от используемого ассемблера. Пишем в FamiTracker, играем FamiTone или Gradual Games Sound Engine. Пишем в Musetracker, играем MUSE. Штатного плеера FamiTracker хватит для простого демо, но не для игр. По желанию пишем свой плеер, оба трекера имеют текстовый экспорт. Для отчаянных есть древности и экзотика.

Делаем уровни. Готовых решений нет. Набираем вручную, пишем конвертер для универсальных редакторов, изобретаем свой редактор.

Для среднего или большого проекта наверняка понадобятся особые конвертеры и утилиты. Пишем на чём угодно, лишь бы работало. Обычно C++ или Python.

Отлаживаем в эмуляторах. Средства отладки развиты в FCEUX и NintendulatorDX. Высокая точность эмуляции в Nestopia и puNES, но отладчика в них нет. Даже самые точные эмуляторы не показывают всех глюков, проверяем во всех четырёх. Если пишем на C с готовой низкоуровневой библиотекой, на железе наверняка заработает. Выжимаем максимум на ассемблере — обязательно проверяем на железе при помощи Flash-картриджей (EverDrive N8, InviteNES, PowerPak — ищем в интернете) или самодельного картриджа и программатора ПЗУ.

Успехов!