Пишем для 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 — ищем в интернете) или самодельного картриджа и программатора ПЗУ.

Успехов!

C64: MultiColor graphics mode

Данная статья была написана в 2010 году для сайта www.c64.su, и надеюсь спустя столько времени ещё не утратила свою актуальность. Поскольку выше упомянутый ресурс более не поддерживается, то не хотелось бы, что бы статья канула в лету.


Сегодня мне бы хотелось рассказать вам об одном из графических режимов C64 — Mutlicolor (не путайте с одноимённым режимом на ZX Spectrum, ничего общего кроме названия у них нет), одном из стандартных режимов С64. MutliColor представляет собой 320x200 точек, причём по горизонтали точки сдвоенные 2x1 и по сути это режим 160x200.

Итак, что же там внутри?…

Super Mario Bros. COVID-19 Edition

Всем привет!

Сделал для вас игру на актуальную нынче тему :)

Скачать тут:
zxart.ee/rus/soft/game/arcade/platform/super-mario-bros-covid-19-edition/







Движок, который я показывал на CAFe 2019, продолжает развиваться.
За последние пару месяцев в комплекте к нему появился UI-редактор миров.
Именно в нём и сделаны уровни для игры.

Играйте, наслаждайтесь. :)
Баг-репорты присылайте в личку в телеграм.

Mode 7 в SNES

По сравнению с 8–битной Famicom/NES/Денди в 16–битной Super Famicom/SNES графические возможности сильно расширились. Так, например, появились разные видеорежимы с возможностью отображения до четырёх независимо скроллящихся задних слоёв, просвечивающих друг сквозь друга. Однако единственный режим с четырьмя слоями обладал такой же как в Денди цветностью (4 цвета на тайл один из который — прозрачный), что было маловато для 16–битной консоли, так что чаще всего там использовались трёхслойные и двухслойные задние фоны. Однако подлинной вершиной двумерной графики в этой консоли стал однослойный видеорежим номер 7, так называемый Mode 7 (при этом он восьмой и последний по счёту — нумерация идёт с нуля) в котором единственный фон мог быть произвольно масштабирован и повёрнут.

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

IRL environment of demosceners


Мне всегда было интересно, кто все эти люди и на чем они создают свои мастерписы…

Все мы немощны, ибо человецы суть, люди.

Так покажите же свои сычевальни комнаты народу!

Как образец для подражания выкладываю фото интерьера, в коем создавался Super Mega Hit

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

Weekly Game Club #6 Batman: The Movie


На этой неделе предлагаю всем сразиться в мою любимую игру на спекке, выпущенную в далеком 1989 году английской фирмой Ocean Software Ltd.

Лента Диск

Игра сделана по комиксам компании DC Comics inc и завораживает проработанной графикой. Так же радует оригинальное решение для сокращения жизни. Постепенно портрет Бэтмена превращается в лицо Джокера.

Думаю, мало найдется людей, кто ни разу не запускал эту игру.

Итак, вперед на защиту Готэма!

Night Lights (final version)


Приветствую Всех! Предлагаю вашему вниманию, финальную версию композиции «Night Lights» (альтернативное название — Oneira City), которая заняла сильное, для меня, 4 место со 144 баллами (в отличии от «Сity Kernel» — 1 место на дебютном CC'15 со 106 баллами) в конкурсе Multichannel Traditional Music на фестивале Chaos Constructions 2016.

Отличия от пати-версии:
— высококачественные версии сэмплов, которые использовались в пати-версии
— были добавлены эффекты, которые по техническим ограничениям я не мог добавить в трекерной версии
— было добавлено Korg M1 пианино (сэмпл-версия), которое было ранее нереализованной частью этой композиции.
— Финальная версия была сделана в редакторах Logic Pro X и Milkytracker (концовка этой композиции).
— Использована кассетная дека Technics (Panasonic) RS-B405 86-го года; её функции позволяют использовать как «финализатор»/сатуратор. Также был использован модульный усилитель с приёмником (Technics SE-HD50, ST-HD60 1997 года) в режиме линейного входа (AUX или EXT) для более тонкой настройки оцифровки и исправлении проблем со звуком.



Если вам стало интересно, то приглашаем Вас посетить один из ниже представленных сервисов
cyousmusic.bandcamp.com/album/night-lights
soundcloud.com/cyousmusic/nlights-final-version
youtu.be/kCGU-VKb6-I

Hype NES Intro

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

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

  • avatar
  • [просмотров: 2896]
  • 9
  • +23