Программное обеспечение для воспроизведения видеороликов

Я просто смотрел Super Mario Bros. -1 World glitch в youtube, и я действительно начал задаваться вопросом о коде для этих игр. Какой язык использовался? Что относительно ОС для консолей видеоигр? Есть ли веб-сайт с ресурсами по этому вопросу? (Я - видеоигры 90-х, поэтому меня особенно интересует программирование этих игр, но вы можете сделать это вики и включать ссылки на ресурсы о программировании видеоигр в целом, если хотите)

Ответ 1

Несколько работал над эмулятором для NES (у меня есть декодирование некоторых кодов операций, но ни одно другое оборудование не эмулируется), возможно, я могу поделиться несколькими ответами.

  • Для большинства игр использовался ассемблер. Оптимизация компиляторов, если они доступны для ЦП, была не так хороша 20-30 лет назад, как сегодня. Чтобы получить производительность, вам нужно написать на ассемблере (это даже верно на ПК. Части Doom находятся в ASM). Тем более, что процессор NES работал менее чем на 2 МГц. Кроме того, память была дороже, чем сегодня. Первоначальный Марио хранился примерно в 40 тыс. Памяти. 16k - это фактический код, а остальная часть - графические и звуковые ресурсы.

  • До 32-разрядной консоли времени любая консольная система или даже встроенные утилиты были необычными (компакт-диск Sega был одним из немногих в эпоху 16 бит с фактическим BIOS и была небольшая программа, сжигаемая в процессоре Game Boy, которая отвечала за прокрутку логотипа Nintendo при включении питания). В качестве основной причины см. Выше ограничения по размеру. При вставке картриджа чип ROM в автомобиле был подключен непосредственно к адресной шине CPU. При включении CPU будет считывать с фиксированного адреса, чтобы получить фактический адрес, с которого была запущена программа, а затем переместился в это место и начал выполнение.

Что касается ресурсов, NES Dev Wiki имеет ресурсы, касающиеся оборудования NES, а также ссылки на программирование. Домен Zophar также имеет технические документы и общедоступные ПЗУ для нескольких консолей (я не знаю, должен ли я ссылаться на ZD на этом сайте, просто на Google)

Ответ 2

Большинство старых консолей имели своего рода BIOS ROM.

Некоторые исходные тексты для них находятся в режиме онлайн:

Вы можете прочитать дизассемблер с большинством комментариев в BIOS 7800: http://atarihq.com/danb/files/7800bios.asm

Источник Atari 5200 BIOS более интересен, поскольку он не просто инициализирует систему и отображает заставку: http://atarihq.com/danb/files/5200BIOS.txt

У Colecovision был 8K (!) BIOS ROM; он находится здесь: http://xi6.com/code/coleco/coleco29.asm

Источник BIOS Odyssey II находится здесь: http://atarihq.com/danb/files/o2romsrc.txt

У Intellivision была ОС под названием "exec", которая не может найти разборку в Интернете, хотя я нашел кучу информации об этом: http://www.intellivisiongames.com/bluesky/hardware/intelli_tech.html#exec и http://www.beeslife.com/faq.htm#_Toc140592020 - у него были подпрограммы для перемещения спрайтов, чтения контроллеров и вычисления квадратных корней!

Ответ 3

Большинство глюков в этом видео - это сбои на основе плитки, где есть ошибки в обнаружении конфликтов карт плитки, которые составляют уровни. Все уровни состоят из квадратной плитки. Если вы заметили, что марио всегда находится между плитами, где его не должно быть.

Ответ 4

В конце 70-х, 80-х и начале 90-х годов большинство программ (включая игры) были написаны в ASM (Assembly). Если вы не знакомы с Assembly, это практически очень простой язык программирования, который является аппаратным для программирования CPU. Это означает, что вам нужно было контролировать каждый пиксель на экране и воссоздавать библиотеки для таких вещей, как физика, графика и даже звук! Вы были очень ограничены в памяти, поэтому переработка была обязательной. В оригинальном Super Mario Bros вы заметите, что облака такие же, как кусты, единственным отличием является цвет. Многие спрайты были переработаны, и физика игры была ограничена.

По мере того как игры становились все более сложными, разработчики переходили на язык C, что позволяло писать гораздо быстрее, потому что требовалось меньше строк кода. В настоящее время на С++ написано много консольных и компьютерных игр, поскольку оно позволяет ускорить разработку, а также позволяет достаточно быстро поддерживать программное обеспечение для аппаратного обеспечения для более быстрой игры.

Ответ 5

Я не делал исследований об этом, но Super Mario Bros и выпустил 90 игр, доступных как .nes файлы вместо картриджа, и там есть эмулятор opensource.

AFAIK, они обычно написаны на С++. Я не знаю о законности этих файлов и эмулятора, но они доступны в Интернете. у вас есть поиск с правильной строкой!