Obsah
1. Historie vývoje počítačových her (108. část – herní konzole Sony PlayStation)
2. Zpočátku úspěšná spolupráce s firmou Nintendo
3. Roztržka mezi Nintendo a Sony – vznik herní konzole Sony PlayStation
4. Základní parametry a moduly herní konzole Sony PlayStation
6. Programátorský model mikroprocesoru R3000A
7. Instrukční soubor mikroprocesoru R3000A
8. Grafický subsystém – základ úspěchu Sony PlayStation
9. Vykreslovaná grafická primitiva
10. Rozdíly mezi grafickými primitivy konzole Sega Saturn a Sony PlayStation
1. Historie vývoje počítačových her (108. část – herní konzole Sony PlayStation)
V dnešní části seriálu o historii vývoje počítačových her i herního hardware si popíšeme další konzoli páté generace. Jedná se o Sony PlayStation, kterou při zpětném pohledu můžeme považovat za nejúspěšnější konzoli své éry, dokonce se (alespoň prozatím) jedná o čtvrtou nejprodávanější konzoli vůbec s počtem prodaných kusů překračujících hodnotu sto milionů. Připomeňme si krátce, že éra herních konzolí páté generace začala v roce 1993, kdy se do prodeje dostaly hned tři nové herní konzole. První 32bitovou herní konzolí (navíc již vybavenou jednotkou CD-ROM) byla Amiga CD32; v témže roce se do prodeje dostala i již popsaná konzole Atari Jaguar a konečně si hráči mohli pořídit třetí konzoli se jménem 3DO Interactive Multiplayer. Tato herní konzole je zajímavá i způsobem její výroby a prodeje – koncept tohoto zařízení byl licencován, takže se o výrobu a prodej mohlo pokusit více společností (což se nakonec stalo). Tento způsob výroby a prodeje herních konzolí se však neosvědčil, neboť v něm nebylo možné konzoli prodávat pod skutečnými výrobními náklady, takže se jednalo o poměrně drahé zařízení (samozřejmě v porovnání s konkurencí).
Zatímco v roce 1993 začaly být prodávány tři výše zmíněné konzole, které však nebyly po komerční stránce příliš úspěšné, bylo tomu o rok později již zcela jinak. Tehdy totiž byla vydána herní konzole Sega Saturn popsaná minule a předminule a především pak (s týdenním zpožděním oproti Saturnu) slavná herní konzole Sony PlayStation. O rok později byla vydána konzole Nintendo 64, jež však svojí popularitou již Sony PlayStation nedokázala překonat, což je poněkud paradoxní, protože právě společnost Nintendo nasměrovala firmu Sony na trh herních konzolí. V případě Nintenda 64 je možná pozdní vstup na trh překvapivý, ovšem nesmíme zapomenout na to, že Nintendo mělo a dodnes má poměrně široký profil výrobků, kde (dodnes) hrají velký význam kapesní herní konzole, takže se pravděpodobně v případě N64 nejednalo o největší prioritu.
Tabulka s odhadovanými počty prodaných herních konzolí páté generace:
# | Konzole | Počet kusů | Poznámka |
---|---|---|---|
1 | PlayStation | 102 000 000 | čtvrtá nejprodávanější konzole vůbec |
2 | Nintendo 64 | 33 000 000 | na čtrnáctém místě (žebříček všech konzolí) |
3 | Sega Saturn | 9 400 000 | |
4 | 3DO | 2 000 000 | |
5 | Atari Jaguar | 250 000 | |
6 | Amiga CD32 | 100 000 | |
7 | Apple Bandai Pippin | 45 000 | (zmíněno v seznamu 25 nejhorších technologických produktů) |
8 | Sega 32X | 665 000 | rozšiřující modul pro Segu Mega Drive |
2. Zpočátku úspěšná spolupráce s firmou Nintendo
O společnosti Sony jsme se v tomto seriálu prozatím nijak podrobněji nezmiňovali, protože se jedná o firmu, která na trh herních konzolí přišla později než například společnosti Atari, Nintendo či Sega. To však neznamená, že by Sony byla úplným nováčkem; dokonce by se dalo říci, že je tomu přesně naopak, zejména s ohledem na to, jaký podíl měla Sony v odvětví spotřební elektroniky (nesmíme zapomenout ani na zkušenosti získané vývojem domácích mikropočítačů řady MSX). Ovšem do oboru herních konzolí se Sony dostala nejprve nepřímo, a to díky její know-how v oblasti optických pamětí, konkrétně CD-ROM. Firma Sony totiž úspěšně spolupracovala se společností Philips na vývoji specifikace CD-ROM (specifikace se později stala dostupná pod názvem Yellow Book a pochází z roku 1988), což je rozšíření staršího audio formátu CD DA (Digital Audio, u jehož zrodu mimochodem taktéž stála Sony) tak, aby bylo možné na kompaktní disky ukládat soubory. Zajímavé je, že společně s akceptováním a rozšířením CD-ROM zanikly některé konkurenční formáty, například dnes již zcela neznámý Thor-CD firmy Tandy.
Dalším společným projektem bylo rozšíření formátu CD-ROM takovým způsobem, aby bylo možné vzájemně kombinovat (souběžně číst) datové soubory, zvuková data i video. Toto rozšíření, které mělo (alespoň podle plánů) hrát velkou úlohu v nových multimediálních systémech, vešlo ve známost pod názvem CD-ROM XA (eXtended Architecture). Právě velké zkušenosti v oboru optických pamětí vedly firmu Nintendo k tomu, aby se Sony navázala spolupráci na návrhu konstrukce nové mechaniky (nazvané pracovně SNES-CD, posléze Mega-CD) pro své herní konzole, a to z toho důvodu, že původní systém Nintenda založený na magnetických discích (Famicom Disk System) byl poruchový a především nebyl nijak chráněn proti kopírování, což je v oboru dotovaných herních konzolí, jejichž výrobní cena se zaplatí až společně s nákupem několika her, velká nevýhoda. Spolupráce ovšem byla navázána například i v návrhu čipů pro starší herní konzole Nintenda, konkrétně se jedná o čip Sony SPC700 použitý v Super NESu.
3. Roztržka mezi Nintendo a Sony – vznik herní konzole Sony PlayStation
Z dnešního (zpětného) pohledu velmi úspěšná spolupráce mezi firmami Nintendo a Sony pokračovala do takové míry, že Sony plánovala vydat pod svým logem konzoli kompatibilní se SNESem. Kompatibilita měla zaručovat možnost použití původních paměťových modulů (cartridgí) ze SNESu a současně měla tato konzole pracovat s kompaktními disky (CD), jejichž formát měla naopak využívat nová jednotka SNES-CD. Zmíněná herní konzole firmy Sony nesla jméno Play Station (s mezerou mezi oběma slovy). Ovšem v roce 1991, kdy měla být tato konzole oficiálně představena veřejnosti Nintendo spolupráci se Sony jednostranně ukončilo a začalo na vývoji CD mechaniky spolupracovat s Philipsem. Toto rozhodnutí bylo zpočátku velmi negativně vnímáno především v Japonsku (odkud obě firmy pochází, i když se dnes jedná o mezinárodní korporace), kde se dodržovalo nepsané pravidlo, že japonské firmy pro spolupráci vždy preferují národního partnera před zahraniční konkurencí.
Tento „prohřešek“ sice společnost Nintendo nakonec bez větších problémů přečkala, ovšem stalo se něco jiného a – minimálně z pohledu Nintenda – i horšího: Sony totiž pokračovala ve vývoji své herní konzole Play Station, která však již nemusela být se SNESem v žádném ohledu kompatibilní a navíc měla přímo konkurovat jak novému (tehdy ještě plánovanému, ale samozřejmě nevydanému) Nintendu 64, tak i ostatním tehdy teprve vznikajícím konzolím páté generace. První, se SNESem částečně kompatibilní verze konzole Play Station vznikla v roce 1992. Vyrobeno bylo přibližně 200 kusů těchto prototypů; ovšem potom byl tento prototyp zahozen a začalo se s návrhem zcela nové konzole, již nezatížené žádnou snahou o zpětnou kompatibilitu ani o podobný styl vývoje, jako tomu bylo na starších konzolích (tuto snahu můžeme vidět jak u NESu/SNESu, tak i u výrobků společnosti Sega – viz například vlastně již technologicky zcela překonaný a v praxi jen málo využívaný modul pro FM syntézu použitý v Sega Saturnu).
4. Základní parametry a moduly herní konzole Sony PlayStation
Návrhem zcela nové herní konzole Sony PlayStation (zde již bez mezery v názvu) byl pověřen Ken Kutaragi, který se v minulosti podílel například na návrhu zvukového čipu pro SNES. Výsledkem byla konzole oficiálně představená 3.12.1994, týden po vydání konkurenční Segy Saturn. Ken Kutaragi zvolil zcela odlišný design než společnost Atari se svým Jaguarem či firma Sega s konzolí Sega Saturn. Z předchozích třech dílů tohoto seriálu již víme, že jak Atari Jaguar, tak i Sega Saturn byly založeny na použití RISCových procesorů, které musely spolupracovat s velkým množstvím podpůrných čipů, jež se staraly o vykreslování grafiky, generování zvuků a hudby, řízení přenosových kanálů, čtení stavu herních ovladačů atd. Programování těchto herních konzolí bylo velmi složité a mnoho firem ani nedokázalo všechny možnosti nabízené konzolemi Atari Jaguar a Sega Saturn využít (již jen zajištění přístupu více procesorů do společné paměti se ukázalo být pro mnohé vývojáře velkým problémem, což ostatně platí až do dnešní doby :-).
Naproti tomu byl Kutaragiho návrh herní konzole Sony PlayStation velmi čistý a vlastně i jednoduchý, což se ostatně projevilo i v tom, že pro Sony PlayStation byl vydán vývojový kit použitelný na běžných PC a nikoli na specializovaném hardware. Prioritou se stala podpora trojrozměrné grafiky; ostatně právě na Sony PlayStation je asi nejvíce viditelný odklon od klasických 2D spritů k otexturovaným trojúhelníkům (viz „blitter“ v Jaguaru, problematické čtyřúhelníkové sprity v Saturnu atd.). Sony PlayStation je založena na RISCovém mikroprocesoru R3000A vybaveném navíc jednotkou pro výpočty nad vektory a maticemi (velmi často používané operace v 3D grafice). Mikroprocesor měl přístup pouze do operační paměti. Druhým důležitým čipem byl grafický procesor (GPU – Graphics Processing Unit), jenž měl k dispozici vlastní paměť s framebufferem, texturami, barvovými paletami atd. Tato paměť nebyla přímo přístupná pro hlavní procesor, což vedlo k dalšímu zjednodušení návrhu celé konzole.
5. Mikroprocesor R3000A
Základním prvkem herní konzole Sony PlayStation je modifikovaná varianta mikroprocesoru R3000A, jenž byl navržen ve firmě MIPS Computer Systems a jehož výrobu zajistila společnost LSI Logic. Jednalo se o čip s architekturou RISC navazující na starší osvědčený model R2000, jenž byl vybavený klasickou „RISCovou“ instrukční pipeline. Tento čip byl vybaven třiceti dvěma pracovními registry s 32bitovou šířkou a adresním rozsahem 232 bajtů. V Sony PlayStation byl použit hodinový signál o frekvenci 33,8688 MHz a reálná výpočetní rychlost dosahovala 30 MIPS (30 milionů instrukcí za sekundu). Mikroprocesor byl kromě ALU, řadiče a sady registrů vybaven i instrukční a datovou vyrovnávací pamětí. Instrukční cache měla kapacitu 4 kB a udávaný úspěch čtení instrukce z cache (a nikoli z operační paměti) byl 80%, což není na tak malou cache špatná hodnota. Datová cache mělo kapacitu 1 kB, odlišnou strukturu a úspěch při čtení/zápisu taktéž přibližně 80%.
Vlastní instrukční sada mikroprocesorů R3000 se vyznačuje dvěma zvláštnostmi. První z nich je úplná absence registru příznaků (flags), protože konstruktéři tohoto mikroprocesoru (zdá se, že správně) usoudili, že by používání příznaků typu zero, carry, overflow atd. mohlo vést ke vzniku konfliktů, kdy by na výsledek jedné instrukce čekala instrukce další. Kvůli absenci příznaků jsou v instrukční sadě pouze dva podmíněné skoky beq (branch on equal) a bne (branch on not equal), při nichž se skok provede/neprovede na základě porovnání obsahu dvou pracovních registrů, jejichž indexy jsou přímo součástí instrukčního slova. Povšimněte si, že díky existenci registru $zero (registru s konstantní nulou) se vlastně zadarmo instrukční sada rozšiřuje o pseudoinstrukce bz (branch on zero) a bnz (branch on non zero). Dále se použití příznaků nahradilo logickými instrukcemi slt (set on less than) a slti (set on less than immediate). Výsledkem je velmi jednoduchá a přitom výkonná instrukční sada vhodná pro kód generovaný překladači (to ostatně platí i pro další typy instrukčních sad procesorů s architekturou RISC).
6. Programátorský model mikroprocesoru R3000A
Mikroprocesor R3000A používající instrukční sadu MIPS nabízel programátorům 32 základních pracovních registrů, z nichž každý měl šířku třiceti dvou bitů (už jen tento fakt velmi výrazně dopomohl překladačům v tvorbě rychlejšího kódu bez zbytečných přenosů dat/operandů mezi operační pamětí a mikroprocesorem). Navíc se při načítání instrukcí z operační paměti používal čítač instrukcí (PC – Program Counter) o šířce taktéž třiceti dvou bitů, jehož obsah však nebyl programátorům přímo přístupný; měnil se nepřímo operacemi skoku a volání subrutiny. První z pracovních registrů, který byl označovaný jménem R0 nebo též přezdívkou (aliasem) $zero, měl speciální význam, protože obsahoval vždy nulovou hodnotu, nezávisle na tom, jaká hodnota byla do registru zapisována (zápis však nebyl zakázán, ovšem neměl žádný viditelný efekt). Existence registru obsahujícího nulovou konstantu umožnila zmenšit celkový počet instrukcí v instrukční sadě.
Dalším třiceti pracovním registrům sice nebyla při konstrukci mikroprocesoru přiřazena žádná určitá funkce, ale vývojáři operačních systémů i překladačů vyšších programovacích jazyků začali některým registrům přiřazovat zvláštní význam, čemuž taktéž odpovídají aliasy používané například v assemblerech či debuggerech. Poslední registr R31 se používal při volání subrutiny pro uložení návratové adresy. Kromě již zmíněných 32 pracovních registrů byl R3000A vybaven i dvěma 32bitovými registry se speciálním významem. Tyto registry se totiž používaly při násobení a dělení. Pokud byla prováděna operace násobení, mohly se oba speciální registry považovat za registrový pár obsahující 64bitový výsledek násobení. Při dělení obsahoval jeden z registrů výsledek této operace (podíl) a druhý registr pak zbytek po dělení. Mimochodem – operace násobení a dělení byly jedinými operacemi, které se neprováděly v klasické RISCové pipeline, ale byl pro ně vyhrazen zvláštní modul, který využíval ostatní moduly mikroprocesoru.
7. Instrukční soubor mikroprocesoru R3000A
Všechny instrukce mikroprocesorů R3000A měly konstantní šířku třicet dva bitů, což mj. taktéž znamenalo, že instrukce byly v operační paměti vždy zarovnány na násobek čtyř bajtů, takže každá instrukce byla načtena v jediném strojovém taktu. Podle způsobu rozdělení bitových polí v 32bitovém instrukčním slovu se instrukce dělily pouze do třech kategorií – I-type (Immediate), J-type (Jump) a R-Type (register). U prvního typu instrukcí (I-type) je přímo v instrukčním slovu uložena šestnáctibitová konstanta chápaná podle konkrétní instrukce buď jako šestnáctibitové slovo bez znaménka (0..65535) či šestnáctibitové slovo se znaménkem (-32768..32767). Proto je zde použito označení immediate (přímá hodnota). Ve zbývajících šestnácti bitech byl uložen šestibitový operační kód, pětibitový index zdrojového registru a taktéž pětibitový index registru cílového:
I-Type (immediate) ------------------------------------------------------------ | 31 26 | 25 21 | 20 16 | 15 0 | ------------------------------------------------------------ | opcode (6) | rs (5) | rt (5) | offset/konstanta (16) | ------------------------------------------------------------
Formát instrukcí typu J (Jump) je ještě jednodušší než formát předchozí, protože za šestibitovým operačním kódem následuje pouze 26 bitů tvořících adresu skoku (skutečná adresa se získá vynásobením konstanty čtyřmi, resp. bitovým posuvem o dva bity doleva):
J-Type (jump) ------------------------------------------------------------ | 31 26 | 25 0 | ------------------------------------------------------------ | opcode (6) | adresa (26) | ------------------------------------------------------------
Poslední instrukční formát je využíván u většiny aritmetických a logických instrukcí, které používají takzvaný tříadresový kód, tj. instrukce je provedena se dvěma operandy (zdrojovými registry) a do třetího registru je uložen výsledek operace. Kromě operačního kódu jsou v instrukčním slovu uloženy pětibitové indexy obou zdrojových registrů (rs, rt) i registru cílového (rd), šestibitový kód operace a taktéž pětibitová hodnota posunu (shift) použitá u bitových posunů a rotací (i to je zajímavé – posuny a rotace bylo možné provádět „zadarmo“):
R-Type (register) ------------------------------------------------------------ | 31 26 | 25 21 | 20 16 | 15 11 | 10 6 | 5 0 | ------------------------------------------------------------ | opcode (6) | rs (5) | rt (5) | rd (5) | shift | operace | ------------------------------------------------------------
8. Grafický subsystém – základ úspěchu Sony PlayStation
Kromě mikroprocesoru byl dalším důležitým prvkem herní konzole Sony PlayStation její grafický procesor, neboli GPU (Graphics Processing Unit), jenž byl nepřímo doplněn modulem GTE (Geometry Transformation Engine) umístěným na stejném čipu jako hlavní mikroprocesor. Grafický procesor byl sice řízen příkazy posílanými z CPU či přenášenými přes DMA kanál z operační paměti, nicméně se jednalo o samostatně pracující čip, který měl navíc k dispozici vlastní framebuffer o kapacitě jednoho megabajtu. K tomuto framebufferu neměl mikroprocesor přímý přístup, takže nebylo zapotřebí řešit kolize při souběžném přístupu, zastavovat GPU při zápisu dat jiným modulem atd. Kromě externího framebufferu ještě grafický procesor obsahoval vyrovnávací paměť o kapacitě dvou kilobajtů, která byla použita pro uložení částí textur (přesný význam tohoto modulu si vysvětlíme příště).
Framebuffer představoval z hlediska programátora virtuální obrazovku s rozlišením 1024×512 pixelů s bitovou hloubkou 16bpp. Ve skutečnosti se ovšem v mnoha operacích, například při vlastním zobrazení snímku, používal jiný formát, především s bitovou hloubkou 15bpp (nejvyšší šestnáctý bit měl význam masky či příznaku poloprůhlednosti, v závislosti na nastaveném režimu) a 24bpp (zde byly tři pixely ve framebufferu rovny dvěma zobrazeným pixelům). Samotné – poněkud matoucí – rozlišení virtuální obrazovky tak mělo význam především při zadávání souřadnic pro vykreslování grafických primitiv a/nebo při blokovém čtení či zápisu obrazových dat.
Fyzické rozlišení obrazu na televizoru bylo mnohem menší než rozlišení virtuální obrazovky. Podle nastavení provedené programátorem bylo fyzické horizontální rozlišení rovno 256, 320, 384, 512 či 640 pixelům a vertikální rozlišení pak 240 či 480 pixelům (ne všechny kombinace se však reálně používaly). Dále se při nastavení grafického režimu nastavovalo několik příznaků, především: přepnutí mezi normou PAL a NTSC, přepnutí mezi bitovou hloubkou 15bpp a 24bpp a přepínač prokládaného a neprokládaného režimu (interlaced/non-interlaced).
9. Vykreslovaná grafická primitiva
Činnost grafického procesoru byla řízena buď přímo hlavním mikroprocesorem nebo bylo možné příkazy přenášet poloautomaticky s využitím DMA kanálu. GPU dostával a následně zpracovával takzvané pakety s grafickými příkazy. Ty byly uspořádány do lineárního vázaného seznamu, což znamená, že příkazy šly snadno modifikovat, například přidat další příkaz doprostřed seznamu atd. bez nutnosti přerovnávat data v paměti. Grafický procesor konzole Sony PlayStation dokázal vykreslit několik typů grafických primitiv, které jsou vypsány v tabulce zobrazené pod tímto odstavcem:
# | Typ | Geometrie zadána | Popis grafického primitiva |
---|---|---|---|
1 | bod | 1 vrchol | vykreslení jednoho pixelu |
2 | úsečka | 2 vrcholy | vykreslení úsečky, možnost jednorozměrného Gouraudova stínování |
3 | obdélník | 1 vrchol+rozměry | zobrazen rychleji než obecný čtyřúhelník |
4 | sprite | 1 vrchol+rozměry | obdélník s texturou, rychlejší než obecný otexturovaný čtyřúhelník |
5 | polygon | 3 nebo 4 vrcholy | čtyřúhelník je interně rozdělen na dva trojúhelníky |
6 | otexturovaný polygon | 3 nebo 4 vrcholy | opět dochází k rozdělení na dva trojúhelníky |
Sprity mohly mít buď (téměř) libovolnou velikost, nebo bylo možné využít speciální formát pro sprity o rozměrech 8×8 a 16×16 pixelů, které se vykreslovaly rychleji.
10. Rozdíly mezi grafickými primitivy konzole Sega Saturn a Sony PlayStation
Na tabulce uvedené v předchozí kapitole sice můžeme vidět určitou (na první pohled možná i nápadnou) souvislost s grafickými primitivy zobrazovanými konkurenční herní konzolí Sega Saturn, ovšem ve skutečnosti jsou možnosti PlayStation v tomto ohledu mnohem větší, a to z toho důvodu, že se při vykreslování otexturovaných polygonů mohly specifikovat souřadnice v prostoru textury (takzvané u-v souřadnice), což mj. znamenalo, že jedna textura mohla být snadno využitelná více polygony, které na sebe mohly plynule navazovat apod. Naproti tomu čip VDP1 v konzoli Sega Saturn sice dokázal taktéž vykreslovat čtyřúhelníky, ovšem tam se jednalo o zobecněné sprity, které byly vždy pokryty celým rastrovým obrázkem (texturou) bez možnosti zadávat u-v souřadnice (to se muselo řešit různými triky).
Grafický subsystém Sony PlayStation má i další zajímavé vlastnosti, například podporu poloprůhlednosti. Podrobnosti si popíšeme v navazující části tohoto seriálu.
11. Odkazy na Internetu
- MIPS Architecture Overview
http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/mips.html - MIPS Technologies R3000
http://www.cpu-world.com/CPUs/R3000/ - Sony PlayStation (Wikipedia)
http://en.wikipedia.org/wiki/PlayStation_(console) - The Official PlayStation muzeum
http://playstationmuseum.com/playstation-systems/ - CPU-collection: IDT R3010 FPU
http://www.cpu-collection.de/?tn=0&l0=co&l1=IDT&l2=R3010+FPU - The MIPS R2000 Instruction Set
http://suraj.lums.edu.pk/~cs423a05/Reference/MIPSCodeTable.pdf - Maska mikroprocesoru RISC 1
http://www.cs.berkeley.edu/~pattrsn/Arch/RISC1.jpg - Maska mikroprocesoru RISC 2
http://www.cs.berkeley.edu/~pattrsn/Arch/RISC2.jpg - The MIPS Register Usage Conventions
http://pages.cs.wisc.edu/~cs354–2/beyond354/conventions.html - C.E. Sequin and D.A.Patterson: Design and Implementation of RISC I
http://www.eecs.berkeley.edu/Pubs/TechRpts/1982/CSD-82–106.pdf - Berkeley RISC
http://en.wikipedia.org/wiki/Berkeley_RISC - Great moments in microprocessor history
http://www.ibm.com/developerworks/library/pa-microhist.html - Great Microprocessors of the Past and Present
http://www.cpushack.com/CPU/cpu1.html - Sega documentation
http://koti.kapsi.fi/~antime/sega/docs.html - 1995 Programming on the Sega Saturn
http://cowboyprogramming.com/2010/06/03/1995-programming-on-the-sega-saturn/ - Sega Myths-Saturn was the most difficult console to program for of 5th Gen
http://forums.sega.com/showthread.php?313485-Sega-Myths-Saturn-was-the-most-difficult-console-to-program-for-of-5th-Gen - SuperH RISC engine Family
http://www.renesas.com/products/mpumcu/superh/index.jsp - Sega Saturn
http://en.wikipedia.org/wiki/Sega_saturn - Jaguar Sector – II
http://www.jaguarsector.com/index.php - Atari Age: Atari Jaguar History
http://www.atariage.com/Jaguar/history.html - Jaguar
http://www.giantbomb.com/jaguar/3045–28/ - Consoles that won't die: The Atari Jaguar
http://venturebeat.com/2013/04/25/consoles-that-wont-die-atari-jaguar/ - Atari Jaguar and Atari Jaguar CD
http://videogamecritic.com/jaguarinfo.htm - Atari Jaguar Documentation (Forum)
http://www.jaguarsector.com/index.php?showforum=65 - Atari Jaguar Programming (Forum)
http://www.jaguarsector.com/index.php?showforum=63 - The Jaguar Underground Documentation
http://justclaws.atari.org/devcats/dox/dox.htm - Blitter (Wikipedia CZ)
http://cs.wikipedia.org/wiki/Blitter - Blitter (Wikipedia EN)
http://en.wikipedia.org/wiki/Blitter - Bit blit
http://en.wikipedia.org/wiki/Bit_blit - Disassembler for the portable Jaguar DSP emulator (zdrojový kód s instrukcemi)
http://mamedev.org/source/src/emu/cpu/jaguar/jagdasm.c.html - Fourth-Generation Consoles
http://gaming.wikia.com/wiki/Fourth-Generation_Consoles - Fifth-Generation Consoles
http://gaming.wikia.com/wiki/Fifth-Generation_Consoles - History of video game consoles (fifth generation)
http://en.wikipedia.org/wiki/History_of_video_game_consoles_(fifth_generation) - Atari Jaguar
http://gaming.wikia.com/wiki/Atari_Jaguar - Atari Jaguar Games
http://gaming.wikia.com/wiki/List_of_Atari_Jaguar_games - MyMedia Games Network Retrospective – Nintendo Super FX chip
http://psp.mmgn.com/News/MyMedia-Games-Network-Retrospe-G6W - Wikipedia: Super FX
http://en.wikipedia.org/wiki/Super_FX - IGN: Top 25 Consoles
http://www.ign.com/top-25-consoles/13.html - Sega Mega Drive
http://sega.jp/archive/segahard/md/ - The16bit Era Of Console Video Games
http://tvtropes.org/pmwiki/pmwiki.php/Main/The16bitEraOfConsoleVideoGames - The Console Wars
http://www.cracked.com/funny-2590-the-console-wars/ - Console Wars
http://tvtropes.org/pmwiki/pmwiki.php/Main/ConsoleWars - Era of the „Bit Wars“
http://www.gtplanet.net/forum/threads/era-of-the-bit-wars.119796/ - Rez Wars: How the Bit Wars never really ended
http://www.ign.com/blogs/beastmastertoad/2013/01/31/rez-wars-how-the-bit-wars-never-really-ended - Which system ended the „Bit Wars“?
http://atariage.com/forums/topic/199163-which-system-ended-the-bit-wars/