11 просмотров

Разборка астероидов

Asteroids — это 2D-шутер, впервые выпущенный в 1979 году. Он стал самой успешной игрой Atari с монетоприемником: было продано более 70 000 экземпляров. Дисплей с векторной графикой использовался для более раннего лунного посадочного модуля, и когда популярность астероидов резко возросла, некоторые шкафы лунного посадочного модуля были перепрофилированы для астероидов (включая около 300 единиц, на которых все еще были изображения лунного посадочного модуля).

Эта разборка основана на работе двух предыдущих попыток:

  • Разборка и анализ, проведенные Лонни Хауэллом и Марком Макдугаллом, опубликованы в разделе «Компьютерная археология».
  • Продолжение этой работы Ника Микстаса, размещенное на его страницах реверс-инжиниринга игры.

На этих сайтах очень подробно рассказывается об оборудовании и функциях системы цифрового векторного генератора, поэтому я не буду объяснять это здесь повторно.Следует отметить, что DVG (также используемый в Lunar Lander, Asteroids Delxue и Omega Race) похож на систему Analog Vector Generator (AVG), используемую в Battlezone, Tempest и многих других играх, но отличается от нее.

Эта разборка включает в себя код 6502 и команды векторной графики в ПЗУ. Я использовал ПЗУ "Asteroids (rev 4)" для MAME (которые вы можете легко найти в Интернете), но вы также можете использовать данные, извлеченные из микросхем ПЗУ. Для создания комментариев к листингу исходников использовался простой дизассемблер DVG.

Авторские права на Asteroids принадлежат Atari, Inc., 1979 г.

  • Листинг разборки rev 4 игры.
  • Набор проектов — файлы проекта и двоичные файлы (требуется SourceGen v1.8 или выше).
  • Инструкции для создание двоичного файла используется для листинга разборки.
  • Первоисточники. Оригинальный исходный код теперь доступен.
  • МАМЕ. Лучший способ играть в классические аркадные игры, если вы не можете позволить себе настоящую.
  • сайт Джеда Марголина. Имеет несколько подробных статей о векторных дисплеях (в частности, «Тайная жизнь векторных генераторов») и о жизни в Atari в прошлом.
  • «Руководство автостопщика по генератору цифровых векторов Atari», Филип Пембертон. Надежный справочник по программированию Atari DVG.
  • сервис мануалы Атари на arcarc.xmission.com. Включает руководства для различных версий Asteroids.
  • Краткое примечание на изменениях с rev 1 на rev 2 (маленькая тарелка стала более агрессивной).
Статья в тему:  Что говорят нам астероиды

Игра

Использование МАМЕ

Проще всего играть через эмуляцию на компьютере. После того, как у вас есть набор ПЗУ Asteroids (вероятно, он называется «asteroid.zip»), сохраните его в папке MAME «roms». Когда вы запускаете интерфейс MAME UI, он автоматически находит игру. Выберите его из списка и нажмите Enter. Когда отобразится сводка системы, снова нажмите Enter. (Если это не работает для вас, посетите один из многочисленных справочных сайтов MAME.)

Пока игра запущена, вы можете получить список ключей, нажав Tab , выбрав «Ввод (эта машина)» с помощью клавиш со стрелками и нажав Enter . Наиболее важными являются:

  • 5 — положить монету
  • 1 — начать игру (1 игрок)
  • LeftArrow — вращать против часовой стрелки
  • RightArrow — вращать по часовой стрелке
  • Ctrl — огонь
  • Alt — тяга
  • Космос — гиперпространственный прыжок
  • P — пауза/снять паузу
  • ЭСК — выход

В меню вкладки также есть подменю «DIP-переключатели», которое позволит вам настроить машину для свободной игры, чтобы вы могли прекратить вставлять виртуальные четверти.

Игра

образец

Игра проста: уничтожайте астероиды, не сталкиваясь с ними. Стрельба по большому астероиду (20 очков) разделяет его на два средних астероида; стрельба по среднему астероиду (50 очков) разбивает его на два маленьких астероида; стрельба по маленькому астероиду (100 очков) просто уничтожает его.

Время от времени появляется летающая тарелка и начинает стрелять. Их выстрелы могут уничтожать астероиды, а могут быть уничтожены при столкновении с астероидом. Большие тарелки стреляют случайным образом, а маленькие нацелены на игрока. По ходу игры маленькое блюдце появляется чаще, а после 35 000 очков становится точнее. Уничтожение большой тарелки стоит 200 очков, а маленькой тарелки — 990 очков.

Статья в тему:  Promiment людей, которые не верят в глобальное потепление

Когда все астероиды и корабли будут уничтожены, начнется следующая волна.

Если разрушение неизбежно, нажатие кнопки гиперпространства телепортирует корабль в новое место и установит скорость корабля на ноль. Это имеет случайный шанс мгновенной смерти.

Подробности

Первая волна начинается с 4 больших астероидов. Каждая последующая волна добавляет еще два, максимум до 11. Игра позволяет отображать на экране до 27 астероидов.

При прыжке в гиперпространство генерируется случайное число от 0 до 31. Если 24-31 (25%), прыжок проваливается и корабль уничтожается. Случайное значение уменьшается до 0-7, удваивается и увеличивается на 4 (4-18). Если это значение меньше, чем текущее количество астероидов на экране, прыжок не удается, что означает, что вероятность неудачи увеличивается по мере того, как на экране становится больше людей. Если прыжок удался, игра будет ждать, пока в непосредственной близости от точки возрождения не останется астероидов.Позиция случайна, но ограничена, чтобы корабль не появлялся у краев экрана.

Заметки

Игра хранит счет в двух байтах BCD и добавляет ноль в конце при отображении, поэтому игра переворачивается на 99 990 очков.

Четвертый образец взрывающейся осколки по цене $51a0 был повторно использован в качестве эффекта взрыва в Battlezone.

Copyright 2021 Энди Макфадден

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x