닌텐도 64 프로그래밍 특성

Nintendo 64 programming characteristics

닌텐도 64의 프로그래밍 특성닌텐도 64(N64) 게임 시스템의 쓰기 소프트웨어 요소를 설명한다.

역사

닌텐도 64는 1996년에 출시되었다.당시 이코노미스트는 이 시스템을 "끔찍하게 복잡하다"[1]고 표현했다.그 어려움은 하드웨어 설계자 부분에 대한 감독, 3D 그래픽에 대한 제한, 당시의 기술 한계, 제조 문제 등이 복합적으로 작용했다고 한다.

닌텐도 64가 라이프사이클의 막바지에 이르자, 하드웨어 개발 책임자인 다케다 겐요가 한세이(일본어: 反省 " "반성적인 유감")라는 단어를 사용한 프로그래밍 난제를 언급했다.다케다 씨는 닌텐도 64를 만들 때는 고급 게임을 만들려면 기술적으로 더 어려워지는 게 당연하다고 생각했다.우리가 틀렸다.이제 우리는 순간적인 피크 전력의 섬광이 아니라 순항 속도라는 것을 이해하게 되었다."[2]

기억력

이 콘솔은 대역폭이 높지만 대기 시간이 긴 람부스 D램을 사용한다.[3]리얼리티 신호 프로세서, 리얼리티 디스플레이 프로세서, IO(마이크로프로세서 포함) 인터페이스에 걸쳐 내부 인터커넥트가 있는 RCP(Reality Coprocessor)에서 호스팅된다.

Game Pak, RSP 명령 및 데이터 로컬 스토리지를 포함하여 대부분의 리소스가 매핑되는 물리적 주소 공간이 있지만 RDP 텍스처 로컬 스토리지나 CPU 캐쉬는 없다.RSP, RDP, IO 인터페이스는 각각 자체 DMA 엔진을 가지고 있으며, 물리적 주소 공간을 통해 노출되는 레지스터에 의해 프로그래밍 가능하다.RSP는 로컬 스토리지만 처리할 수 있으며 DMA 엔진을 프로그래밍할 수 있다.RDP DMA 엔진은 명령 버퍼(일명 디스플레이 목록)를 처리하며, RDP는 비디오 버퍼와 데이터에 액세스하기 위한 추가 메모리 프런트 엔드를 가지고 있어 별도의 데이터 경로를 통해 RSP 데이터 로컬 스토리지에서 직접 가져올 수 있다.

R4300 CPU는 마이크로프로세서 인터페이스를 통해 RCP에 연결되며 캐시와 메모리 프런트엔드를 통해 프로그래밍된 IO를 수행할 수 있다.

리얼리티 디스플레이 프로세서

Reality Display 프로세서는 고정 파이프라인 래스터라이저 및 쉐이더로, Z-버퍼링으로 디스플레이에 스캔할 비디오 인터페이스용 프레임 버퍼를 출력한다.

텍스처 캐시

텍스처 캐시의 크기는 4KB였다.그것의 작은 크기로 인해 개발자들은 비교적 큰 공간에 작은 질감을 뻗게 되었다.콘솔의 양면 필터링은 그들을 흐리게 할 뿐이다.mipmapping을 사용할 경우 텍스처 폭 요구사항과 mipmap 레벨에 대한 추가 스토리지로 가장 큰 mipmap 레벨을 2KB로 제한한다.닌텐도 64의 시장 사이클이 끝나갈 무렵, 일부 개발자들은 클램프를 많이 한 다층 텍스처와 작은 텍스처 조각을 사용하여 텍스처를 미리 계산하여 더 큰 텍스처를 시뮬레이션했다.이 해결책의 예는 리어즈 퍼펙트 다크, 밴조 투이, 콘커의 나쁜데이, 그리고 인자 5의 인디아나 존스와 인페널 머신에서 찾을 수 있다.[4]비현실적 미학을 지닌 일부 게임에서는 특정 표면(예: 슈퍼 마리오 64)에 텍스처링 대신 플레인 컬러의 구라오 음영을 사용한다.[5]

큰 강점은 N64 카트리지였다.우리는 카트리지를 거의 일반 RAM과 비슷하게 사용하고 있으며 게임이 실행되는 동안 모든 레벨의 데이터, 텍스처, 애니메이션, 음악, 사운드, 그리고 심지어 프로그램 코드까지 스트리밍하고 있다.레벨의 최종 크기와 텍스처의 양으로, N64의 RAM은 어떤 개별 레벨에도 맞도록 원격으로 존재하지는 않았을 것이다.그래서 카트리지 기술은 정말로 시간을 절약해 주었다.

Factor 5, Bringing Indy to N64, IGN[4]

채우기율

많은 닌텐도 64게임은 기하학적으로 제한되지 않고 충전률에 제한이 있다.예를 들어, 활성화되었을 때 Z-버퍼링은 메모리 액세스의 중요한 공유로, 그렇지 않으면 텍스처와 프레임 버퍼에 필요하다.사용자 지정 마이크로코드를 사용해 이 기능을 RSP와 CPU에 밀어넣으면 최적화가 가능하다.[6][4]각 게임에 적합한 마이크로코드를 사용하면 상당한 성능 최적화를 찾을 수 있다.닌텐도 64의 초당 다각형은 하드웨어 기능이 활성화된 약 16만 개다.[7]보다 다각적인 닌텐도 64경기 중에는 세계 드라이버 챔피언십, 투록 2: 악의 씨앗, 인디아나 존스와 인페널 머신 이 있다.[4]

리얼리티 시그널 프로세서

리얼리티 시그널 프로세서(RSP)는 마이크로코드를 받아들인다.[8] 마이크로코드를 통해 개발자는 다른 작업에 접근하고, 새로운 효과를 창출하며, 속도나 품질을 최적화할 수 있다.RSP는 RISC 프로세서로 CPU보다 성능이 떨어지지만 8방향 16비트 벡터 엔진이 탑재되어 있다.이 엔진의 효율적 사용은 각각의 복잡한 지침에 대한 작은 명령 순서를 정의하는 마이크로코드에 의해 관리된다.사용자 지정 마이크로코드의 기능을 홍보하는 동안, 닌텐도는 처음에 관련 마이크로코드 도구를 사용하는 방법에 대한 정보를 공유하기를 거부했다.경쟁사들에 의해 베끼게 될까봐 두려운 탓이었다.하지만 콘솔의 지난 몇 년 동안, 닌텐도는 마이크로코드 정보를 몇몇 개발자들과 공유했다.닌텐도의 공식 코드 도구는 디버거가 없고 문서화가 서툴러 기본이다.

SGI의 닌텐도 64용 기본 마이크로코드는 "Fast3D"라고 불리며, 일부 개발자들은 게임에서 사용하기 위해 프로파일이 형편없다고 주장했다.초당 10만개 이상의 고정밀도 폴리곤을 발생시키지만 이 마이크로코드는 속도보다 정확도에 최적화돼 성능이 떨어진다.닌텐도의 '터보3'D" 마이크로코드는 초당 50만~600,000개의 정상 정확도 폴리곤을 허용한다.그러나 그래픽 저하로 인해 닌텐도는 공식적으로 사용을 금지했다.Factor 5, [4]Boss Game Studio, Rearge와 같은 회사들은 SGI의 표준 마이크로코드보다 그들의 게임 엔진을 더 잘 작동시킨다고 알려진 맞춤형 마이크로코드를 작성할 수 있었다.

사용자 지정 마이크로코드의 가장 좋은 예로는 인디아나 존스의 N64 포트와 인페르날 머신 PC 게임이 있다.Factor 5 팀은 시각적으로 선명하기 때문에 640×480의[9] 고해상도 모드를 목표로 했다.이 기계는 640×480으로 작동하면서 한계에 도달했다고 한다.Z-버퍼는 이미 제한된 질감 충전률을 단독으로 소비했기 때문에 사용할 수 없었다.4KB 텍스처 캐시를 사용하기 위해 프로그래머들은 사용자 정의 텍스처 형식과 도구를 고안했다.각 텍스처를 분석하여 성능 및 품질을 위해 최상의 텍스처 형식에 맞게 장착했다.이들은 카트리지를 텍스처 스트리밍 소스로 활용해 각 환경에 최대한 세밀한 부분을 짜넣고 RAM 한계를 극복했다.이들은 SGI에서 공급받은 마이크로코드가 이 작업에 최적화되지 않았고, PC 버전보다 더 많은 조명을 원했기 때문에 실시간 조명을 위한 마이크로코드를 작성했다.Factor 5의 마이크로코드는 거의 무제한의 실시간 조명을 허용하며 폴리곤 카운트를 크게 증가시킨다.결국 N64 버전은 PC 버전보다 기능이 풍부하다는 평가를 받으며 유닛의 가장 앞선 게임 중 하나로 꼽힌다.[4]

요인 5는 스타워즈: 로그 비행대, 스타워즈: 에피소드 1: 배틀 포 나부 같은 게임과 함께 사용자 지정 마이크로코드를 다시 사용했다.스타워즈: 로그 비행대에서, 이 팀은 외계 세계를 창조하기 위해 조경 엔진의 마이크로코드를 조작했다.스타워즈: 배틀 포 나부(Battle for Naboo)의 경우, 그들은 로그 비행대에서 배운 것을 사용하고 640×480으로 게임을 운영하게 해 입자와 조경 엔진에 대한 개선도 구현했다.나부 전투는 고해상도 모드에서도 드로잉 거리가 길고 많은 양의 눈과 비가 내린다.[10]

실제 고해상도(480i) 모드의 N64 게임은 640x480으로 거의 운영되지 않았고, 팩터 5게임의 경우 고해상도 대신 400x440, 투록2, 투록3, 투록 레이지워즈는 480x360으로, 퍼펙트 다크는 NTSC의 640x222, PAL의 448x268을 사용했다.[11]

참고 항목

참조

  1. ^ "닌텐도가 깨어나다." 경제학자 8월 03: 55-. ABI/INFO 글로벌; 프로퀘스트 연구 도서관웹. 2012년 5월 24일.
  2. ^ 크로알, 은개, 가와구치, 마사토, 솔츠만, 마르크."스퀘어가 되는 것은 힙 토 비"뉴스위크 136.10 (2000) : 53. 마스터파일 프리미어.웹. 2013년 7월 23일.
  3. ^ "Difference Between RDRAM and DDR". Retrieved 2009-01-15.
  4. ^ a b c d e f "Bringing Indy to N64". IGN. 2000-11-09. Retrieved September 24, 2013.
  5. ^ "Super Mario Galaxy". Retrieved 2009-01-11.
  6. ^ "Hidden Surface Removal" (PDF). Archived from the original (PDF) on March 4, 2009. Retrieved April 24, 2014.
  7. ^ 차세대, 발행 24 (1996년 12월), 74페이지
  8. ^ "Nintendo 64". Archived from the original on 2007-07-10. Retrieved 2009-01-14.
  9. ^ "Indiana Jones and the Infernal Machine". IGN. December 12, 2000. Retrieved September 24, 2013.
  10. ^ "Interview: Battling the N64 (Naboo)". IGN64. 2000-11-10. Retrieved 2008-03-27.