Характеристики программирования Nintendo 64 - Nintendo 64 programming characteristics
В Программные характеристики Nintendo 64 описать элементы письма программного обеспечения для Nintendo 64 (N64) игровая система.
История
Nintendo 64 была выпущена в 1996 году. В то время Экономист описал систему как «ужасающе сложную».[1] Утверждалось, что трудности связаны с недосмотром со стороны разработчиков оборудования, ограничениями на 3D-графику, технологическими ограничениями того времени и производственными проблемами.
Когда Nintendo 64 подошла к концу своего жизненного цикла, начальник отдела разработки оборудования Геньо Такеда упомянул о своих проблемах программирования, используя слово Хансей (Японский: 反省 «рефлексивное сожаление»). Такеда сказал: «Когда мы делали Nintendo 64, мы думали, что логично, что если вы хотите делать продвинутые игры, это станет технически сложнее. Мы ошибались. Теперь мы понимаем, что важна крейсерская скорость, а не мгновенная вспышка пика. мощность."[2]
объем памяти
Консоль использует высокую пропускную способность, но высокая задержка Rambus DRAM подключен к Реальный сопроцессор (RCP) в единой архитектуре памяти.[3] В R4300 ЦП подключен к RCP, через который он обращается к ОЗУ, и не имеет собственного контроллера DMA. За исключением Game Pak, который представляет собой память, отображаемую на CPU, вся передача данных происходит через DMA в RDRAM и обратно. Процессор сигналов реальности, процессор отображения реальности, периферийный интерфейс, последовательный интерфейс и аудиоинтерфейс - каждый имеет контроллер прямого доступа к памяти.
Характеристики
Кеш текстур
В кеш текстур было 4КБ по размеру. Его небольшой размер побудил разработчиков растянуть небольшие текстуры на сравнительно большее пространство. Консоли билинейная фильтрация только размывает их. Когда mipmapping , требования к ширине текстуры и дополнительное хранилище для уровней MIP-карты ограничивают максимальный уровень MIP-карты 2 КБ. Ближе к концу рыночного цикла Nintendo 64 некоторые разработчики предварительно вычислили свои текстуры, используя многослойное текстурирование и небольшие фрагменты текстуры, которые были сильно зажаты, для имитации более крупных текстур. Примеры этого обходного пути можно найти в Редкий с Perfect Dark, Банджо-туи, День плохого меха Конкера, а в Факторе 5 Индиана Джонс и адская машина.[4] В некоторых играх с нереалистичной эстетикой используется однотонный цвет. Затенение по Гуро вместо текстурирования на определенных поверхностях (например, Супер Марио 64 ).[5]
Большим преимуществом был патрон Н64. Мы используем картридж почти как обычную оперативную память и передаем в потоковом режиме все данные уровня, текстуры, анимацию, музыку, звук и даже программный код во время работы игры. Учитывая окончательный размер уровней и количество текстур, ОЗУ N64 никогда не было бы достаточно даже удаленно, чтобы соответствовать любому индивидуальному уровню. Так что картриджная технология действительно спасла положение.
— Фактор 5, вывод Indy на N64, IGN[4]
Наполняемость
Многие игры для Nintendo 64 имеют ограничение по скорости заполнения, а не по геометрии. Например, Z-буферизация когда включено, это значительная часть доступа к памяти, в противном случае она необходима для текстур и буфера кадра. Оптимизация возможна путем передачи этой функции на RSP и CPU с использованием специального микрокода.[6][4] Значительную оптимизацию производительности можно найти, используя микрокод, подходящий для каждой игры. Рейтинг полигонов Nintendo 64 в секунду составляет около 160 000 с включенными аппаратными функциями.[7] Некоторые из наиболее многоугольных игр для Nintendo 64 включают Чемпионат мира по водителям, Турок 2: Семена зла, и Индиана Джонс и адская машина.[4]
Микрокод
Процессор сигналов реальности (RSP) принимает микрокод,[8] с помощью которых разработчик может получать доступ к различным операциям, создавать новые эффекты и оптимизировать скорость или качество. RSP - это RISC-процессор, менее способный, чем CPU, но с 8-процессорным 16-битным векторным движком. Эффективное использование этого механизма регулируется микрокодом, который определяет небольшую последовательность инструкций для каждой сложной инструкции. Продвигая особенность пользовательских микрокодов, Nintendo изначально отказалась делиться информацией о том, как использовать соответствующие инструменты микрокода. Это было связано с опасением, что его скопируют конкуренты. Однако в течение последних нескольких лет консоли Nintendo делилась информацией о микрокоде с несколькими разработчиками. Официальные инструменты кода Nintendo являются простыми, без отладчика и плохой документацией.
Микрокод SGI по умолчанию для Nintendo 64 называется Fast3D, который, по утверждениям некоторых разработчиков, плохо профилирован для использования в играх. Несмотря на то, что он генерирует более 100 000 полигонов высокой точности в секунду, этот микрокод оптимизирован больше для точности, чем для скорости, и снизилась производительность. Микрокод Nintendo "Turbo3D" позволяет обрабатывать от 500 000 до 600 000 полигонов нормальной точности в секунду. Однако из-за деградации графики Nintendo официально не рекомендовала его использовать. Такие компании как Фактор 5,[4] Boss Game Studios, и Редкий смогли написать собственный микрокод, который, как сообщается, работает с их игровыми движками лучше, чем SGI Стандартный микрокод.
Одним из лучших примеров пользовательского микрокода является порт N64 Factor 5 Индиана Джонс и адская машина Компьютерная игра. Команда Factor 5 нацелена на режим высокого разрешения 640 × 480.[9] из-за его визуальной четкости. Было сказано, что машина работает на пределе своих возможностей при разрешении 640 × 480. Z-буфер нельзя было использовать, потому что он сам по себе потреблял уже ограниченную скорость заполнения текстуры. Чтобы обойти кеш-память текстур размером 4 КБ, программисты придумали собственные форматы текстур и инструменты. Каждая текстура была проанализирована и адаптирована к лучшему формату текстур по производительности и качеству. Они использовали картридж как текстуру потоковая передача source, чтобы втиснуть как можно больше деталей в каждую среду и обойти ограничения ОЗУ. Они написали микрокод для освещения в реальном времени, потому что поставляемый микрокод от SGI не был оптимизирован для этой задачи и потому, что они хотели иметь больше освещения, чем версия для ПК. Микрокод Factor 5 обеспечивает практически неограниченное освещение в реальном времени и значительно увеличивает количество полигонов. В конце концов, версия N64 считается более многофункциональной, чем версия для ПК, и считается одной из самых продвинутых игр для устройства.[4]
Фактор 5 снова использовал собственный микрокод с такими играми, как Звездные войны: Разбойная эскадрилья и Звёздные войны: Эпизод I: Битва за Набу. В Звездные войны: Разбойная эскадрилья, команда настроила микрокод ландшафтного движка для создания инопланетных миров. За Звездные войны: Битва за Набу, они использовали то, чему научились Разбойная эскадрилья и заставил игру работать с разрешением 640 × 480, также улучшив частицы и движок ландшафта. Битва за Набу уже давно расстояние прорисовки и большое количество снега и дождя даже в режиме высокого разрешения.[10]
Смотрите также
Рекомендации
- ^ «Нинтендо просыпается». The Economist 3 августа 1996: 55-. ABI / INFORM Global; Исследовательская библиотека ProQuest. Интернет. 24 мая 2012 г.
- ^ Кроал, Н'Гай; Кавагути, Масато; Зальцман, Марк. «Это модно, чтобы быть квадратным». Newsweek 136.10 (2000): 53. MasterFILE Premier. Интернет. 23 июля 2013 г.
- ^ «Разница между RDRAM и DDR». Получено 2009-01-15.
- ^ а б c d е ж "Привлечение Инди к N64". IGN. 2000-11-09. Получено 24 сентября, 2013.
- ^ «Супер Марио Галактика». Получено 2009-01-11.
- ^ «Удаление скрытой поверхности» (PDF). Архивировано из оригинал (PDF) 4 марта 2009 г.. Получено 24 апреля, 2014.
- ^ Следующее поколение, выпуск 24 (декабрь 1996 г.), стр. 74
- ^ «Нинтендо 64». Архивировано из оригинал на 2007-07-10. Получено 2009-01-14.
- ^ «Индиана Джонс и адская машина». IGN. 12 декабря 2000 г.. Получено 24 сентября, 2013.
- ^ "Интервью: Битва с N64 (Набу)". IGN64. 2000-11-10. Получено 2008-03-27.