Nintendo 64 (stylizováno jakoNINTENDO64, zkráceněN64) je herní konzole páté generace vyvinutá firmouNintendo. Herní konzole byla poprvé uvedena na trh 23. června 1996 v Japonsku. Na západě se poprvé oficiálně objevila až 29. září 1996 v Severní Americe a 1. března 1997 v Evropě.[2] Konzole měla fungovat jako nástupce SNES (Super Nintendo Entertainment System). Celosvětově se prodalo 32,93 milionů kusů (ke 30. září 2024), což z ní dělá 3. nejméně prodávanou konzoli z hlavní linie od Nintenda.[3]
Nintendo si za procesor do konzole vybralo mírně upravenýNECVR4300 (tj. VR4300). MIPS Technlogies, Inc. v roce 1993 přišlo s jeho předchůdcem R4200 a později v roce 1995 jej použili jako předlohu pro vylepšený model R4300i (nyní známý jakoVR4300 nebo takéNEC VR4300).[4]
Mezi jeho funkce patří:
Rychlost93,75 MHz
2 hlavní módy operace
64bitový mód – Nativní režim procesoru. Je kompatibilní s 32bitovými programy
32bitový mód
5stupňový pipelining – Zpracovávání až 5 procesů naráz, které jsou rozděleny do 5 stupňů/kroků. To umožňuje využít všechny nevyužité zdroje procesoru a zvýšit tak počet procesů provedených za jednotku času.[5]
24KB mezipaměť
Interní 64bitový bus napojený na externí 32bitový data bus
Procesor musí vynaložit více cyklů na přesun 64bitových dat
Výkon se ale nesnižuje při interních procesech
Byl to jeden z největší nedostatků VR4300 v té době
Integrovaný matematický koprocesor (FPU), který zrychluje 64bitové a 32bitové číselné operace s pohyblivou řádovou čárkou (tj. Floating-point numbers)[6][7]
Nintendo 64 má vlastní grafický procesor (Reality Co-Processor, tj.RCP), který v té době dal konzoli výhodu nad ostatními konkurenty. To uvolnilo hlavní procesor od počítání grafických operací. RCP je rozděleno do 2 částí, naReality Signal Processor (RSP) aReality Display Processor (RDP). Zatímco RSP se zaměřuje na geometrické transformace, tak RDP řeší rastrování polygonů na pixely, které vidíme na obrazovkách.[8]
RDP (Reality Display Processor) vykresluje snímky z polygonových dat. Grafická a také i audio data jsou v konzoli zpracovávány jedním jádrem koprocesoru označeným jakoRSP (tj.Reality Signal Processor). Toto jádro uvolňuje zbytek procesoru od grafických výpočtu a může odvádět větší část svého výpočetního výkonu na např. herní logiku.RSP také vypočítává data pro osvětlení, stínování, redukce úrovní detailů a dekóduje audio kodeky.[9]
Po dokončení výpočtů polygonových dat, RSP pošle RSP procesoru příkazy na rasterizaci vektorů/míchání barev nebo mapování textur na polygony. Příkazy jsou hlavně posílány přes sběrnici zvanouXBUS a nebo také přes systémovou paměť (RAM).[6]
RDP má určitý systém procesů na vykreslování 3D objektů („rasterisation pipeline“). Do této pipeliny patří:[6]
Rasterizér – Převádí vektorové informace (hlavně tvary a struktury) na rastrovaný obrázek z pixelů. Hodnoty vektorů (např. barva, textura a osvětlení) jsou interpolovány z celé struktury.[10]
Texturovací jednotka – Zpracovává textury pomocí dedikované 4KB pamětiTMEM (Transcedent memory), která umožňuje zpracovávat až 8 texturových dlaždic naráz. Tato paměť také zvládá:
Mapování 2D textur na 3D tvar. Mapovaná textura je následně vyhlazována aby se zabránilo pixelaci. Pixelace je způsobena např. nadměrným vzorkováním dat.
Mip-Mapping – Vybírání verze s textury s nižším rozlišením podle hodnoty LOD („level of detail“). Tento proces spoří výpočetní výkon a zabraňuje aliasování textur, které bychom viděli v dálce.
Korekci perspektivy
Míchač barev – Míchá a interpoluje vícero vrstev barev (více vrstev je potřeba ke stínování).
Blender – Tento prvek kombinuje pixely s frame bufferem pro aplikování průhlednosti, vyhlazování hran a ditheringu.
Frame buffer je vyhrazená část RAM, která uchovává snímky dat, které jsou odesílána na obrazovku. Obsahuje informace o velikosti a umístění každého pixelu zobrazeného snímku.[11]
Dedikovaná paměť na čtení a zapisování aktuálního frame bufferu v RAM nebo k vykonání procesů realizovaných TMEM. RDP má 4 režimy, které různě kombinují tyto procesy pro lepší optimalizaci konkrétních operací.[6]
Nintendo 64 nemá svůj dedikovaný zvukový čip. Místo toho je zvuk zpracováván procesorem. To znamenalo, že CPU muselo soutěžit o prostředky s ostatními procesy. Úlohy se tedy musely dělit mezi tyto 2 komponenty:[6]
CPU – To přenášelo audio data z ROM (Read-only memory) do systémové paměti, které pak jsou následně zpracovány RSP.
RSP (Reality Signal Procesor) – To interpretuje seznamy audio dat z RAM a následně provádí 2 různé operace: Sekvencování a mixování MIDI (Music Instrumental Digital Interface) dat za použití uložených zvukových bank a dekompresiADPCM vzorků.[6][12]
ADPCM (Adaptive Differential Pulse Code Modulation) je ztrátový formát komprese pro PCM formát používaný nejčastěji ve videohrách nebo v médiích, kde se opakují zvukové efekty.[13]
Data o zvukových vlnách jsou následně poslána přesAI (Audio Interface) doDigital-to-Analog konvertoru. Výsledkem celého procesu je stereo audio s 16bitovou hloubkou.
Další vlastnosti systému:
Počet audio kanálů není omezený. Záleží kolik jich je RSP schopno smíchat. (16 až 24 kanálů při zpracování ADPCM, kolem 100 kanálů při PCM).
Vysoké vzorkovací frekvence jsou náročné na procesor. I frekvence 44,1 kHz si zabírá spousty cyklů, které se mohou využít na jiné procesy.
Zatímco konkurence spoléhala na jiná média (např. CD-ROM), herní kazety pro Nintendo 64 pojmou mnohem méně dat a musí sdílet paměť s ostatními komponenty.[6]
Tento systém na za důsledek své charakteristické audio. Nintendo 64 je známé horší audio kvalitou, která je způsobena silnou komprimací. Ta se poté musela maskovat dozvukem.[14]
Systém konzole běží na real-time preemptivním jádru. V konzoli je dodn jako sada funkcí běhové knihovny (Run-time library). To zajišťuje, že do běhového obrazu hry jsou zařazeny pouze ty části, které se skutečně použijí.[15]
Jádro je rozvrstvené na základní fukce a systémové služby vyšší úrovně takto:
Zprávy, události, vstupní a výstupní operace
Tyto funkce tvoří jádro operačního systému konzole. Na nich jsou postaveny další služby, které usnadňují přístup k samotnému hardwaru.
Debug
PAK Souborový systém – PAK soubory jsou často využívány ve videohrách k archivaci herních dat
Rozhraní herního ovladače
Časovač
Boot – Spuštění nebo restart konzole. Operační systém se zavádí ve vícestupňových úkonech do paměti. Mezi takové úkony patří
Diagnostika hardwaru
Kontrola paměti
Inicializace BIOSu hardwaru (Tento úkon probíhá v jiných zařízeních; ne v Nintendu 64. Konzole sama nemá žádné BIOS rutiny.)[6][15][16]