Оглавление
Оглавление
Часть I: Подготовка
Введение 1. Краткая история РЭШ 2. Основные понятия 3. Приступаем к разработке 4. Оборудование РЭШ 5. Знакомство с языком ассемблера 6502. 6. Заголовки и векторы прерываний 7. Зачем это вообще делать? 8. РефакторингЧасть II: графика
9.ППУ 10. Спрайтовая графика 11. Язык ассемблера: ветвление и циклы 12. Циклы на практике 13. Фоновая графика 14. Движение спрайта 15. Фоновая прокруткаВведение
Осенью 1990 года родители подарили мне набор действий Nintendo Entertainment System: серую угловатую консоль (Control Deck), два контроллера, ярко-оранжевый световой пистолет «Zapper» и картридж с Супер Братья Марио.И Утиная охота .
Консоль NES с одним контроллером.
Фото Ована Омоса .
Панель управления подключалась к большому телевизору ЭLT в шкафу с помощью радиочастотного переключателя — по сути, антенны, которая подавала видеосигнал с консоли на телевизор на канале 3. Это была моя первая игровая консоль, и она мне очень понравилась.
В тот год я провел много времени в чулане.
Сначала так же поступил и мой отец - он прошел Супер Братья Марио.
, разобрался с расположением секретных варп-зон и попытался пробраться мимо опасных братьев Хаммер.
Однажды ему удалось победить Баузера («дракона», как он его называл) и спасти принцессу, после чего он практически перестал играть в игры на NES. .
Однако консоль меня очаровала.
Я получил электронное письмо с рекламным сообщением, предлагающим бесплатный картридж.
воин-Дракон для подписки на журнал Nintendo Power: подпишитесь на журнал за 20 долларов, чтобы получить игру за 50 долларов? О чем тут думать!
Коробочная версия Dragon Warrior продается в США.
воин-Дракон познакомил меня с миром ролевых игр, как и Супер Братья Марио.
познакомил меня с миром платформеров.
Я потратил много времени на другие игры: моими любимыми были Утиные истории , Последняя фантазия , Контра И Мегамен III .
В конечном итоге РЭШ определила мою взрослую карьеру.
В детстве я знал, что видеоигры — это нечто особенное, и что, когда я вырасту, я хочу их создавать.
У меня было (ошибочное) представление, что карьера создателя видеоигр означает карьеру в прохождение видеоигры.
Сразу после того, как в моей семье появился компьютер, я начал изучать C++, потому что с ним работали «настоящие» программисты.
(Я понятия не имел, что программисты игр для NES не используют C++, но я был молод и наивен.
) Однако я никогда не создавал реальных игр.
Программирование игр всегда казалось более сложным, чем я был готов; Кроме того, не было недостатка в замечательных играх, в которые играли другие люди.
Но моя мечта осталась со мной, и после многих лет работы профессиональным веб-разработчиком я начал изучать разработку для NES. (Большой толчок в правильном направлении меня получила великолепная книга Натана Я ошибка .
)
Я ошибка .
Трудно было понять, с чего начать.
В Интернете полно ресурсов, но все они в той или иной степени неполны или неточны.
я начал с серии «Ботанические ночи» автор Bunnyboy на форумах NintendoAge. Потом я нашел это на GitHub. Шаблон НРОМ пользователь теплер и начал изучать ассемблер ca65. После нескольких месяцев борьбы с операциями записи PPU, таблицами атрибутов и регистрами прокрутки, в моей голове начало формироваться понимание.
Я рад, что у меня был опыт самостоятельного изучения этих концепций, но было бы здорово, если бы существовало какое-то руководство, которое начинало бы с нуля и обучало всем основам разработки для NES. Надеюсь, что книга, которую вы сейчас читаете, станет для вас таким руководством.
1. Краткая история РЭШ
Вообще говоря, NES («Nintendo Entertainment System») — это домашняя игровая консоль, предназначенная для подключения к LT-TV. Для хранения игр используются сменные картриджи («Game Pak»), поскольку система не имеет постоянных запоминающих устройств.Ввод осуществляется через два порта контроллера на передней панели системы; Стандартный контроллер NES состоит из четырехточечной панели управления и четырех дополнительных кнопок: «Пуск», «Выбор», «А» и «В».
Консоль NES с одним контроллером.
Фото Ована Омоса .
В США NES была выпущена в 1985 году; никто точно не знает, когда, но большинство источников сходятся во мнении, что это будет октябрь.
Nintendo продавала NES в США до 1995 года, спустя много времени после выпуска в 1991 году ее преемницы Super NES. За эти десять лет для NES было выпущено около 700 официально лицензированных игр, как от самой Nintendo, так и от различных сторонних разработчиков, таких как Konami и Capcom. Это была самая продаваемая консоль своего поколения [Дэвид Шефф.
Игра окончена: как Nintendo разрушила американскую индустрию, захватила ваши доллары и поработила ваших детей .
1-е издание.
Random House New York, 1993. ISBN: 0679404694.], а «играть в Nintendo» стало синонимом видеоигр в Соединенных Штатах, так же, как «играть в Atari» в предыдущее десятилетие.
NES не появилась полностью сформированной в научно-исследовательской лаборатории Nintendo. К тому, что эта система стала движущей силой в мире домашних видеоигр, привела уникальная серия неудач и инноваций.
Поэтому, прежде чем мы перейдем к NES, важно сделать шаг назад и поговорить о том, откуда взялась эта система.
Историческое прошлое NES имеет важные последствия для архитектуры и возможностей системы, что в конечном итоге повлияло на игры, которые могли (и не могли) быть созданы для системы.
Американский эксперимент
Компания Nintendo была основана в 1889 году в Киото, Япония, как производитель игральных карт для Ханафуда .: успех в Cards for Nintendo. .
] Когда Хироши Ямаути, правнук основателя компании Фусадзиро Ямаути, возглавил бизнес в 1949 году, он начал расширять линейку продукции компании, диверсифицируя ее в такие области, как услуги такси, «отели для свиданий» и игрушки Ultra Hand. [ Nintendo исполняется 125 лет: 6 фактов, которые вы, возможно, не знали об этом игровом гиганте.
] Nintendo не добилась прорывного успеха, пока не начала производить электронные игрушки.
В 1977 году компания начала производство серии игровых приставок Color TV-Game (клоны «Понг»), а в 1980 году выпустила серию портативных видеоигр Game & Watch. [ Высокий балл!: Иллюстрированная история электронных игр.
]
К тому времени Nintendo выпустила несколько аркадных автоматов, самым успешным из которых был Радарный прицел 1979
Листовка Радарный прицел .
Игровой процесс Радарный прицел
Космический шутер стал второй по популярности аркадной игрой в Японии после Pac-Man от Namco. [ Полная история видеоигр: от понга до покемонов — история увлечения, которое коснулось нашей жизни и изменило мир .
] К 1978 году Namco уже добилась огромного успеха на американских игровых автоматах, и Taito передал Midway лицензию на невероятно популярную Space Invaders для продажи на рынке США.
Nintendo знала, что на американском рынке открываются огромные возможности, но ей придется конкурировать как со своими японскими конкурентами, так и с американскими компаниями по производству игровых автоматов, такими как Atari. Президент Nintendo Хироши Ямаути решил, что Radar Scope станет отличной возможностью для создания американского филиала Nintendo. В 1980 году он приказал своему зятю Минору Аракаве арендовать офис и склад для новой Nintendo of America и отправил ему 3000 машин Radar Scope из Японии.
К сожалению, почти годичное ожидание начала поставок радаров плюс две недели доставки с западного побережья США на склад Аракавы в Нью-Джерси привели к тому, что радарный прицел выглядел устаревшим, поэтому американские покупатели не особо интересовались им.
Отделу продаж Аракавы удалось продать лишь около тысячи машин Radar Scope, а остальные постепенно покрывались пылью на складе.
Это было серьезной проблемой для Nintendo. В начале 1980-х две тысячи игровых автоматов стоили довольно прилично.
Для сравнения, в тот же период Atari предоставила заинтересованным клиентам «Смету стоимости материалов проекта» с подробным описанием деталей, необходимых для создания игрового автомата, и их стоимости.
Типичная аркадная игра Atari, такая как Missile Command, стоила 871 доллар по частям и продавалась в игровых автоматах или барах за 1995 долларов.
[Подробнее об аркадном бизнесе начала 80-х читайте в этой статье.
Сказки с цехов фабрики игровых автоматов .
] В долларах 2018 года это соответствует стоимости деталей в размере 2695 долларов США и цене автоматического автомобиля в 6170 долларов США.
Таким образом, две тысячи непроданных игровых автоматов означали невозвратные затраты в пять миллионов (2018 г.
) долларов.
У Хироши Ямаути возникла идея: что, если Nintendo разработает новую игру, более привлекательную для американских потребителей, в которой будет использоваться больше компонентов Radar Scope? Ямаути выделил на этот проект 100 тысяч долларов (1980 г.
) и поручил молодому дизайнеру, ранее работавшему над сериалом Color TV-Game, придумать новую игру.
Этим дизайнером был Сигэру Миямото, который впоследствии прославился как создатель Марио, Линка и многих самых известных персонажей игр Nintendo.
Сигэру Миямото на E3 2013.
Миямото создал игру о бесстрашном плотнике, чью девушку похитила огромная обезьяна.
Его источником вдохновения были комиксы «Попай» и классический фильм «Кинг-Конг».
Вот как это появилось Осел Конг .
Осел Конг .
Чтобы сделать игру более «американской», Nintendo of America назвала героя Марио (в честь владельца склада Марио Сигале) и его подругу Паулину.
Donkey Kong пользовалась невероятной популярностью как в США, так и в Японии, что сделало Nintendo лидером на рынке игровых автоматов.
Главная Рынок игр
Успех проекта по превращению Radar Scope в Donkey Kong привел к появлению еще одной замечательной идеи: домашней системы, которая, как и машина Radar Scope, могла бы запускать различное игровое программное обеспечение на одном и том же оборудовании.До этого момента игровые системы представляли собой узкоспециализированные машины, часто предназначенные для запуска только одной игры (иногда с разными вариациями).
Например, различные модели Color TV-Game от Nintendo могут поддерживать от шести до пятнадцати вариантов Pong, но не более того.
Самой универсальной системой того времени была Magnavox Odyssey, на которой можно было играть более чем в дюжину игр, вставив «игровые карты», прилагавшиеся к системе.
Но карты не содержали игровых данных, а лишь активировали разные части внутренней схемы системы, а значит дальнейшее расширение функций Одиссеи было крайне ограничено.
Конструкция домашней системы Nintendo должна была работать так же, как машина Donkey Kong: игровой код должен был храниться отдельно от основных компонентов обработки, без предварительного программирования кода в самой системе.
При создании такой системы существовало одно серьёзное препятствие: цена.
Видеоигры, особенно для дома, продаются семьям с детьми как интересный способ провести время вместе.
Если бы машина была слишком дорогой, родители бы даже не подумали о ее покупке, какими бы хорошими ни были ее игры.
Ни один родитель не захотел бы тратить 871 доллар на домашнюю систему, поэтому научно-исследовательской лаборатории Nintendo пришлось найти способ сделать аркадный автомат Donkey Kong за меньшие деньги.
Целью Ямаути была система, достаточно мощная, чтобы запустить Donkey Kong дома, но при этом продаваться по сумасшедшей цене в 9800 иен (что эквивалентно примерно 40 долларам).
Чтобы достичь этой цены, лаборатория исследований и разработок Nintendo начала с процессора системы.
Ядром аркадного автомата Donkey Kong стал процессор Zilog Z80, разработанный группой бывших инженеров Intel, которые попытались взять все хорошее, что есть в процессорах серии Intel 8080, и реализовать их в меньшем, более быстром и дешевом корпусе.
Z80 был очень популярен на японском компьютерном рынке и использовался в стандартной комплектации домашних компьютеров MSX.
Процессор Зилог Z80.
Однако Nintendo не смогла найти производителя, который согласился бы на ее строгие требования.
Единственной японской компанией, которая отчаялась подписать сделку с Nintendo, была Ricoh. В то время Ricoh использовала только 10% своих мощностей по производству процессоров, поэтому для расширения своего бизнеса она согласилась предоставить Nintendo три миллиона процессоров авансом.
Чтобы воплотить проект домашней консоли в реальность, Nintendo поставила на карту все.
Однако у Ricoh не было лицензии на производство Z80. Приобретение этой лицензии было бы дорогостоящим и трудоемким, поэтому Ricoh предложила альтернативу: почему бы не использовать MOS Technologies 6502?
МОС Технологии 6502.
У Ricoh уже была лицензия на производство 8-битного процессора 6502, сравнимого по производительности с Z80. Он также был значительно менее известен в Японии (несмотря на то, что он использовался на Apple II, Commodore 64, Atari VCS и многих других популярных западных компьютерах).
Использование 6502 обеспечит своего рода «защиту от копирования» для новой системы Nintendo, поскольку игры, написанные для системы Nintendo, будет нелегко переносить на конкурирующие системы.
MOS Technologies 6502 был разработан группой бывших инженеров Motorola, которые попытались взять все хорошее, что есть в процессорах Motorola серии 6800, и реализовать их в меньшем, более быстром и дешевом корпусе.
(Кажется, мы это где-то уже слышали.
) Однако у Ricoh была лицензия на производство 6502. не было лицензии на функцию двоично-десятичного числа (BCD) чипа.
Чтобы не ссориться с MOS Technologies, процессор Ricoh оборвал все электрические соединения между BCD-модулем и остальной частью чипа.
Когда компания Commodore купила MOS Technologies, последняя попыталась подать в суд на Nintendo за нарушение лицензии, но сдалась, когда инженеры Commodore обнаружили изменения Ricoh. Даже сегодня процессоры на базе 6502 доступны в Western Design Center (WDC) и широко используются в промышленных приложениях.
Продажи 6502 начались в 1975 году, и ей исполнилось десять лет, когда Nintendo решила использовать ее в новой домашней системе.
В 1975 году один процессор 6502 стоил 25 долларов, а массовый заказ Nintendo еще больше снизил его стоимость.
Ricoh дополнила свой процессор на базе 6502 собственным блоком обработки изображений (PPU) для обработки экранной графики.
PPU позволял создавать сложную графику, поддерживал палитру из 64 цветов, дисплей разрешением 256x240 пикселей, 64 аппаратных спрайта и фоновый слой с аппаратной прокруткой.
Определившись с внутренней структурой, компании осталось спроектировать внешний корпус и дать системе имя.
Nintendo решила назвать свою новую домашнюю систему «Семейным компьютером» или сокращенно «Famicom».
Нинтендо Фамиком.
Корпус спроектирован так, чтобы устройство напоминало забавную игрушку: красно-белый, с золотыми элементами.
У Famicom было два несъемных контроллера, прикрепленных по бокам консоли, и 15-контактный разъем расширения спереди.
Картриджи с играми вставлялись в слот в верхней части консоли.
Выпущенная в июле 1983 года, Famicom имела огромный успех, несмотря на то, что на ней было всего три игры (Donkey Kong, Donkey Kong Jr. и Popeye), и за два месяца было продано 500 000 консолей.
Хотя научно-исследовательская лаборатория Nintendo не смогла достичь амбициозной цели Ямаути по снижению цены до 9800 иен, система продавалась за 14800 иен (что эквивалентно 65 долларам) и поэтому была привлекательной для родителей из-за своей низкой цены.
Американский Ренессанс
Учитывая популярность Famicom в Японии, было ясно, что его определенно стоит продавать в США.Однако на американском рынке были свои проблемы; В 1983 году в США произошел «крах Atari» — торговые сети отказались от идеи домашних видеоигр из-за перепроизводства и отсутствия контроля качества, что привело к огромным непроданным запасам картриджей Atari 2600. Розничные сети США не были заинтересованы в покупке новых игровых систем.
Nintendo потратила два года на перепроектирование Famicom для рынка, пережившего крах видеоигр.
Консоль не могла выглядеть как игровая приставка, поэтому внешний корпус превратили в серую коробку с откидной крышкой спереди, чтобы она выглядела как видеомагнитофон.
Маленькие красочные картриджи для Famicom превратились в большие серые игровые пакеты, почти пустые внутри; однако из-за большого размера и единообразия они отдаленно напоминали видеокассеты.
Также необходимо было изменить название системы.
Бренд Nintendo Entertainment System позиционировал систему как часть домашнего кинотеатра, которую можно было разместить рядом со стереоаппаратурой.
Модифицированная система была почти готова, но Nintendo все еще чувствовала, что ей нужно что-то уникальное, чтобы сделать продукт обязательным для покупки в глазах потребителей.
В набор Deluxe добавлен световой пистолет Zapper, который идеально подходит для игр-стрелялок, таких как Утиная охота , а также Р.
О.
Б.
(Робот-оператор)
Р.
О.
Б.
Это была не просто система видеоигр — она продавалась за робот ! Камеры в глазах Р.
О.
Б.
мог распознавать закодированные образцы мерцающего света, исходящего от телевизора, и командовал R.O.B. повернуть влево или вправо, опустить или поднять руки.
Р.
О.
Б.
можно использовать в двух играх, Гиромит И Стек-ап , но ни один из них не был особенно хорош.
Однако не игры были главным: Р.
О.
Б.
была нужна исключительно для того, чтобы продать NES американским родителям, уже обожженным Atari 2600. Прежде чем мы перейдем к программированию аппаратного обеспечения, необходимо упомянуть еще один аспект ребрендинга Famicom. Основной причиной краха 1983 года стало отсутствие контроля качества и лицензирования игр Atari 2600. Видеоигры были большим бизнесом, и любая компания могла нанять одного или двух программистов для продажи игр Atari. Результатом стала лавина игр, некоторые из которых почти не работали.
Большинство потребителей, несколько раз обжегшись на покупке ужасных игр за полную цену, перестали их покупать, и рынок видеоигр рухнул.
Отчаявшись избежать повторения этой ситуации для NES, Nintendo добавила в материнскую плату чип под названием 10NES (иногда называемый «CIC» или «Проверка интегральной схемы»).
Чип 10NES в картридже NES.
Чип 10NES использовался в качестве криптографического ключа и замка.
Консоль и картридж имели собственные чипы CIC; каждый из них рассчитывал значение по специальному алгоритму, после чего картридж отправлял свой ответ на консоль для сравнения.
Если результаты совпали, система загрузилась.
Если они не совпадают, чип CIC перезагрузится и повторит попытку.
Вот почему вам часто приходилось «дуть на картридж», чтобы игра для NES заработала.
Если контакты картриджа не образовывали надежное соединение с консолью, то чип 10NES не мог передать код и входил в цикл сброса.
На самом деле дуть на патрон не было необходимости; для устранения проблемы достаточно было вынуть и снова вставить картридж для восстановления соединений.
Архитектура чипа 10NES и работающий на нем алгоритм были запатентованы Nintendo, а это означает, что чипы 10NES могли производиться только на законных основаниях Nintendo. В результате картриджи для NES могла делать только Nintendo — нелицензионные картриджи не имели этого чипа, и консоль NES отказывалась их запускать.
Последнее слово в выборе игр, которые можно выпустить для ее платформы, оставалось за Nintendo. Создание игр для NES на языке ассемблера 6502: приступим Теги: #Разработка игр #игровые консоли #nes #ИТ-история #Старое оборудование #компиляторы #Ассемблер #развлекательная система Nintendo #famicom
-
Хищнический
19 Oct, 24 -
Планшетный Пк Samsung Series 7
19 Oct, 24 -
Wix: Комплекс С Видом На Море
19 Oct, 24