Pull to refresh
  • by relevance
  • by date
  • by rating

Разработка игр под NES на C. Главы 1-3. От введения до Hello World

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

Впервые я задумался о том, как разрабатывают игры под приставки где-то через 20 минут после того, как в самый первый раз увидел Turbo Pascal. На глаза иногда попадался Subor с клавиатурой, и появилась мысль: "Наверное можно набрать какую-то программу, а потом в нее поиграть". Но интерес быстро затух, потому что абсолютно никакой информации по этой теме тогда не было доступно. Следующий раз эта же идея всплыла, когда увидел вполне играбельные эмуляторы старых консолей. Тогда стало ясно, что вбивать листинг в саму консоль и необязательно. Где-то очень потом появился Хабр с благожелательной аудиторией для таких вещей. В какой-то момент даже начал собирать разрозненную инфу чтобы написать мануал самому, и вот сегодня наткнулся на готовый учебник, который явно надо перевести.


Разработка под старые консоли документирована вдоль и поперек, но именно по NES 99% информации относятся к разработке на Ассемблере. Меня почему-то зарубило, что надо освоить именно работу с С.


следующая >>>
image

Читать дальше →
Total votes 52: ↑52 and ↓0 +52
Views28.9K
Comments 6

Разработка игр под NES на C. Главы 4-6. Рисуем персонажа

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

В этой части рассмотрим работу с графикой: фон и спрайты персонажей.
<<< предыдущая следующая >>>

image
Источник


Что такое V-blank?


PPU — графический процессор — может или отправлять сигнал в телевизор, или получать информацию от процессора, но не одновременно. Так что единственное время для пересылки это V-blank, период кадрового гасящего импульса.


90% времени PPU отправляет пиксели в видеовыход, строка за строкой слева направо и сверху вниз. Внизу экрана делается пауза, и все повторяется снова. Это происходит 60 раз в секунду. Пауза после отрисовки кадра и есть V-blank. Это весьма короткий промежуток времени. В него реально вложить обновление 2-4 столбцов фоновых тайлов и обновление спрайтов. Обновление фона особенно критично для игр с прокруткой.

Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Views14.8K
Comments 2

Разработка игр под NES на C. Главы 7-10. Работа с джойстиком. Коллизии спрайтов

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

Плавно движемся к написанию игры. В этой части описана работа с джойстиками и коллизиями спрайтов.


<<< предыдущая следующая >>>


image
Источник


Пользовательский ввод


Работа с джойстиками довольно простая. Нажатия кнопок первого джойстика читаются по адресу $4016, а второго — $4017. Достаточно считывать один раз за кадр, сразу после обновления PPU и установки прокрутки.

Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Views6.7K
Comments 0

Разработка игр под NES на C. Главы 11-13. Пишем и отлаживаем простой платформер

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

В этой части появляется первая играбельная демка в стиле Марио. Для этого надо разобраться с прокруткой и способами отладки.


<<< предыдущая следующая >>>


image


Источник


Прокрутка


Регистр $2005 управляет прокруткой фона. Первая запись туда выставляет положение горизонтальной прокрутки, а вторая — вертикальной. Если неизвестно, какая прокрутка была выставлена, можно сбросить на горизонтальную чтением из регистра $2002.

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views6.5K
Comments 0

Разработка игр под NES на C. Главы 14-16. Работа со звуком

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

В этой части базовая информация о работе со звуком. Звуковая подсистема NES весьма низкоуровневая, ее описание весьма запутано и использует специфическую терминологию, так что описание местами может быть не очень внятное.
<<< предыдущая следующая >>>
image
Источник


Начало работы со звуком


Обзор инструментов, которые представляет нам платформа NES. Впрочем, дальше мы уйдем на более высокий уровень и будем использовать библиотеку Famitracker.


Проще всего пощупать звуковые возможности консоли можно с помощью демки Sound Test, разработанной SnoBrow. Она совместима не со всеми эмуляторами, но FCEUX поддерживается.


Кнопка Селект переключает звуковые каналы, Старт включает их. Доступны 4 канала:
1 — меандр 1
2 — меандр 2
3 — треугольный сигнал
4 — шум

Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views7.1K
Comments 4

Разработка игр под NES на C. Главы 17-21. Своя игра

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

В этой части соберем все вместе и сделаем простую скроллерную стрелялку на космическую тему: корабль летит и лазерами отстреливает врагов


<<< предыдущая следующая >>>


image
Источник


Планирование

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views6.9K
Comments 1

Разработка игр под NES на C. Главы 22-23. Приложение 1 — мапперы и цифровой звук

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial

Здесь будет информация, не вошедшая в основной цикл, но слишком ценная, чтобы ее игнорировать.


<<< предыдущая следующая >>>


image
Источник


Из нашего обсуждения почти полностью выпала тема мапперов — сопроцессоров в картридже. Если надо сделать игру размером больше 0x8000 байт, то стандартных возможностей консоли для этого не хватит. Маппер позволяет переключать банки памяти в игре, и cc65 умеет с этим работать. Самый популярный маппер — MMC3. Кроме переключения банков памяти, он имеет счетчик строк.

Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views4.9K
Comments 0

Разработка игр под NES на C. Глава 24. Приложение 2 — работа с банками памяти

Abnormal programmingAssemblerGame developmentC
Translation
Tutorial
Завершающая часть цикла. В этой главе рассмотрим работу с маппером MMC3 на примерах
<<< предыдущая

image
Источник

Раньше мы не использовали переключение банков памяти, но теперь настало время освоить маппер MMC3. Без маппера можно использовать 32 килобайта PRG ROM для кода и 8 килобайт CHR ROM для графики. Маппер позволяет обойти этот барьер.
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views4.7K
Comments 1

Разработка демо для NES — HEOHdemo

Abnormal programmingDemosceneOld hardwareGames and game consoles
История проведения фестивалей компьютерного искусства, также известных как демопати, насчитывает в нашей стране уже четверть века. Люди со всех концов страны собираются, чтобы показать свои упражнения в извлечении невозможного из старых или современных компьютеров и сверхмалых объёмов кода. В первую пятилетку одним из главных демопати страны стал CAFe (внезапно, Computer Art Festival), проводившийся в Казани с 1999 по 2003 годы. Позже он надолго исчез с радаров, отдав пальму первенства более известным ныне Chaos Constructions и DiHalt, и только в этом году произошло довольно триумфальное его возвращение — если не по масштабу мероприятия, то по количеству разнообразных работ, показ которых затянулся до шести утра. Среди них была и моя, о создании которой пойдёт речь в этой статье.

Читать дальше →
Total votes 53: ↑53 and ↓0 +53
Views4.7K
Comments 5

Making a demo for NES — HEOHdemo

Abnormal programmingDemosceneOld hardwareGames and game consoles
There is a lengthy history of computer arts festivals, also known as demo parties, held in Russia over the last quarter century. For decades, once in a while people from all over the country gather together to compete in their ingenuity at getting what was once deemed impossible out of the old or new computer hardware and mere bytes of code. A few leading annual events has been established in the early years. One of them, creatively named CAFe (an acronym for Computer Art FEstival), was held in Kazan from 1999 to 2003. It went under the radar since, making the way for the everlasting Chaos Constructions (1999 — now) and DiHalt (2005 — now). After so long hiatus, the last year CAFe made a loud comeback, returning in full glory — at least by the number of prods released, if not in the scale of the event itself. Presentation of the compo entries went far into the night, with the last demos being shown at 6 AM to the popping eyes of the few hardy ones. There was my demo, too, and this is the story of its making.

Read more →
Total votes 13: ↑12 and ↓1 +11
Views3K
Comments 0