Программные характеристики Nintendo 64 описывают элементы написания программного обеспечения для игровой системы Nintendo 64 (N64).
История
Nintendo 64 была выпущена в 1996 году. В то время The Economist описал систему как «ужасающе сложную». [1] Сложности были названы сочетанием недосмотра со стороны разработчиков оборудования, ограничений на 3D-графику, технологических ограничений того времени и производственных проблем.
Когда Nintendo 64 подошла к концу своего жизненного цикла, директор по разработке оборудования Гэнё Такеда назвал ее проблемы программирования словом hansei (по- японски :反省«рефлексивное сожаление»). Такеда сказал: «Когда мы делали Nintendo 64, мы думали, что логично, что если вы хотите делать сложные игры, это становится технически сложнее. Мы ошибались. Теперь мы понимаем, что важна крейсерская скорость, а не мгновенная вспышка пика. мощность." [2]
объем памяти
Консоль использует Rambus DRAM с высокой пропускной способностью, но с высокой задержкой . [3] Он размещается на сопроцессоре реальности (RCP), имеющем внутреннее соединение через процессор сигналов реальности, процессор отображения реальности и интерфейсы ввода-вывода (включая микропроцессор).
Существует физическое адресное пространство, в которое отображается большинство ресурсов, включая Game Pak, инструкцию RSP и локальное хранилище данных [ требуется разрешение неоднозначности ] , но ни локальное хранилище текстур RDP, ни какой-либо кэш ЦП. Интерфейсы RSP, RDP и IO имеют свой собственный механизм DMA, программируемый регистрами, доступными через физическое адресное пространство. RSP может обращаться только к своему локальному хранилищу и может программировать свой механизм DMA. Механизм RDP DMA обрабатывает буферы команд (так называемые списки отображения); RDP имеет дополнительный интерфейс памяти для доступа к видеобуферам и данным, способный напрямую извлекать данные из локального хранилища данных RSP через отдельный путь к данным.
R4300 процессор подключен к RCP через интерфейс микропроцессора, и может выполнять запрограммировано IO через его кэш - память и интерфейс.
Процессор отображения реальности
Процессор Reality Display - это растеризатор и шейдер с фиксированным конвейером, с Z-буферизацией, выводящий буфер кадра для видеоинтерфейса для сканирования на дисплей.
Кеш текстур
Размер кэша текстур составлял 4 КБ . Его небольшой размер побудил разработчиков растянуть небольшие текстуры на сравнительно большее пространство. Билинейная фильтрация консоли только размывает их. Когда Мипмаппинг используется, текстура ширины требований и дополнительной памяти для уровней MIPMAP ограничить наибольший уровень MIPMAP до 2 КБ. К концу рыночного цикла Nintendo 64 некоторые разработчики предварительно вычислили свои текстуры, используя многослойное текстурирование и небольшие фрагменты текстуры, которые были сильно зажаты, для имитации более крупных текстур. Примеры этого обходного пути можно найти в Rare 's Perfect Dark , Banjo-Tooie , Conker's Bad Fur Day и в Indiana Jones and the Infernal Machine из Factor 5 . [4] В некоторых играх с нереалистичной эстетикой на определенных поверхностях вместо текстурирования используется однотонная штриховка Гуро (например, Super Mario 64 ). [5]
Большой силой был патрон Н64. Мы используем картридж почти как обычную оперативную память и передаем в потоковом режиме все данные уровня, текстуры, анимацию, музыку, звук и даже программный код во время работы игры. С окончательным размером уровней и количеством текстур оперативной памяти N64 никогда не хватило бы даже удаленно, чтобы соответствовать любому индивидуальному уровню. Так что картриджная технология действительно спасла положение.
- Фактор 5, вывод Indy на N64, IGN [4]
Скорость заполнения
Многие игры для Nintendo 64 имеют ограничение по скорости заполнения, а не по геометрии. Например, Z-буферизация, когда она включена, составляет значительную долю доступа к памяти, в противном случае она необходима для текстур и кадрового буфера. Оптимизация возможна путем передачи этой функции на RSP и CPU с использованием специального микрокода. [6] [4] Значительную оптимизацию производительности можно найти с помощью микрокода, подходящего для каждой игры. Рейтинг полигонов Nintendo 64 в секунду составляет около 160 000 при включенных аппаратных функциях. [7] Некоторые из наиболее многоугольных игр для Nintendo 64 включают World Driver Championship , Turok 2: Seeds of Evil и Indiana Jones and the Infernal Machine . [4]
Реальный сигнальный процессор
Действительность сигнальный процессор (RSP) , принимает микрокод , [8] , через которую, разработчик может получить доступ различных операций, создавать новые эффекты, а также оптимизировать для скорости или качества. RSP - это RISC-процессор, менее способный, чем CPU, но с 8-процессорным 16-битным векторным движком. Эффективное использование этого механизма регулируется микрокодом, который определяет небольшую последовательность инструкций для каждой сложной инструкции. Продвигая особенность пользовательских микрокодов, Nintendo сначала отказалась делиться информацией о том, как использовать соответствующие инструменты микрокода. Это было связано с опасением, что его скопируют конкуренты. Однако в течение последних нескольких лет консоли Nintendo делилась информацией о микрокоде с несколькими разработчиками. Официальные инструменты кода Nintendo являются простыми, без отладчика и плохой документацией.
Микрокод SGI по умолчанию для Nintendo 64 называется Fast3D, который, по утверждениям некоторых разработчиков, плохо профилирован для использования в играх. Хотя он генерирует более 100 000 полигонов высокой точности в секунду, этот микрокод оптимизирован больше для точности, чем для скорости, и производительность пострадала. Микрокод Nintendo "Turbo3D" позволяет обрабатывать от 500 000 до 600 000 полигонов нормальной точности в секунду. Однако из-за ухудшения графики Nintendo официально не рекомендовала его использовать. Такие компании, как Factor 5 , [4] Boss Game Studios и Rare, смогли написать собственный микрокод, который, как сообщается, работает с их игровыми движками лучше, чем стандартный микрокод SGI .
Одним из лучших примеров нестандартного микрокода является порт N64 от Factor 5 для компьютерной игры Indiana Jones and the Infernal Machine . Команда Factor 5 стремилась к режиму высокого разрешения 640 × 480 [9] из-за его визуальной четкости. Было сказано, что машина работала на пределе своих возможностей при разрешении 640 × 480. Z-буфер нельзя было использовать, потому что он сам по себе потреблял уже ограниченную скорость заполнения текстуры. Чтобы обойти кэш текстур размером 4 КБ, программисты придумали собственные форматы текстур и инструменты. Каждая текстура была проанализирована и адаптирована к лучшему формату текстур по производительности и качеству. Они использовали картридж в качестве источника потоковой передачи текстур, чтобы втиснуть как можно больше деталей в каждую среду и обойти ограничения оперативной памяти. Они написали микрокод для освещения в реальном времени, потому что поставляемый микрокод от SGI не был оптимизирован для этой задачи, и потому что они хотели иметь больше освещения, чем версия для ПК. Микрокод Factor 5 обеспечивает практически неограниченное освещение в реальном времени и значительно увеличивает количество полигонов. В конце концов, версия N64 считается более многофункциональной, чем версия для ПК, и считается одной из самых продвинутых игр для устройства. [4]
Фактор 5 снова использовал собственный микрокод в таких играх, как Star Wars: Rogue Squadron и Star Wars: Episode I: Battle for Naboo . В Star Wars: Rogue Squadron команда изменила микрокод ландшафтного движка, чтобы создать инопланетные миры. В « Звездных войнах: Битва за Набу» они использовали то, чему научились у Rogue Squadron, и заставили игру работать с разрешением 640 × 480, а также внесли улучшения для частиц и движка ландшафта. В Battle for Naboo большая дальность прорисовки и большое количество снега и дождя даже в режиме высокого разрешения. [10]
Смотрите также
- Технические характеристики Nintendo 64
Рекомендации
- ^ «Нинтендо просыпается». Экономист 3 августа 1996: 55-. ABI / INFORM Global; Исследовательская библиотека ProQuest. Интернет. 24 мая 2012 г.
- ^ Croal, N'Gai; Кавагути, Масато; Зальцман, Марк. «Это модно, чтобы быть квадратным». Newsweek 136.10 (2000): 53. MasterFILE Premier. Интернет. 23 июля 2013 г.
- ^ «Разница между RDRAM и DDR» . Проверено 15 января 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ а б в г д е "Перенос Инди на N64" . IGN. 2000-11-09 . Проверено 24 сентября 2013 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Супер Марио Галактика» . Проверено 11 января 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Удаление скрытых поверхностей» (PDF) . Архивировано из оригинального (PDF) 4 марта 2009 года . Проверено 24 апреля 2014 года . CS1 maint: обескураженный параметр ( ссылка )
- ↑ Next Generation , выпуск 24 (декабрь 1996), страница 74
- ^ «Нинтендо 64» . Архивировано из оригинала на 2007-07-10 . Проверено 14 января 2009 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Индиана Джонс и адская машина» . IGN. 12 декабря 2000 . Проверено 24 сентября 2013 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Интервью: Битва с N64 (Набу)» . IGN64. 2000-11-10 . Проверено 27 марта 2008 . CS1 maint: обескураженный параметр ( ссылка )