Obsah
1. Historie vývoje počítačových her (23.část – herní konzole Nintendo Entertainment System)
2. Základní technické parametry herní konzole NES
5. Generátor šumu a mapa řídicích registrů zvukového subsystému
7. Datové struktury použité pro vytvoření obrázku pozadí
1. Historie vývoje počítačových her (23.část – herní konzole Nintendo Entertainment System)
V již osmdesáté čtvrté části seriálu o historii vývoje výpočetní techniky se budeme zabývat popisem osmibitové herní konzole nazvané Nintendo Entertainment System, zkráceně NES, která byla navržena a následně vyráběna společností Nintendo Corporation. Tato firma se již před uvedením NESu na trh zabývala konstrukcí video automatů a taktéž jednoúčelových herních konzolí s jedním či dvěma LCD (v našich zemích jsou známější podobné konzole vyráběné v SSSR). Stejně jako herní konzole firmy Sega, i konzole NES pochází z Japonska, kde se prodávala pod názvem Family Computer neboli Famicom (pod stejným názvem se ostatně tato konzole prodávala i v některých dalších asijských zemích). Jedná se o nejúspěšnější osmibitovou herní konzoli vůbec, a to jak z pohledu celkového počtu prodaných kusů, tak i při pohledu na časové období, kdy byla tato konzole vyráběna a prodávána.
Obrázek 1: Osmibitová herní konzole Nintendo Entertainment System (NES).
Uvádí se, že bylo vyrobeno téměř 62 milionů kusů NESu, což je velmi vysoké číslo, a to například i v porovnání s další (již popsanou) úspěšnou herní konzolí Atari 2600, jíž bylo prodáno celkem 30 milionů (do obou čísel nejsou započítány klony konzole, které většinou nebyly korektně licencovány). Zajímavá je i „morální životnost“ NESu, protože tato konzole byla představena již v roce 1983 v Japonsku a i když byl oficiálně prodej NESu ukončen „již“ v roce 1995 (tj. po dvanácti letech), ve skutečnosti výroba pokračovala až do roku 2003 a ještě do roku 2007 nabízela firma Nintendo možnost oprav NESu (posléze byla tato nabídka stažena, protože již nebyly k dispozici příslušné náhradní díly). Právě na příkladu NESu a taktéž herní konzole Atari 2600 je možné ukázat, že se vývoj herních konzolí poměrně podstatným způsobem odlišuje od vývoje osobních počítačů.
Obrázek 2: K herní konzoli NES postupně vzniklo velké množství různých přídavných zařízení a doplňků, například rozhraní pro MIDI či disketová jednotka používající speciální diskety o průměru dva palce. Zajímavý byl taktéž modem prodávaný zejména v Japonsku, který měl být používán především pro hraní loterií.
Zatímco v oblasti osobních počítačů (a taktéž pracovních stanic či serverů) panuje kontinuální vývoj, u herních konzolí můžeme vidět jasně patrné skoky ve výpočetním výkonu či v grafických a zvukových schopnostech konzolí a taktéž dosti dlouhou morální životnost těchto zařízení, která vlastně vůbec nekoresponduje s technickými parametry. Prodej konzole s osmibitovým mikroprocesorem a pouhými dvěma kilobajty operační paměti RAM v roce 2003 je totiž z technologického hlediska vlastně docela nesmyslný, z herního hlediska tomu však může být úplně jinak.
Obrázek 3: Rozhraní pro MIDI určené pro NES.
2. Základní technické parametry herní konzole NES
Konstruktéři herní konzole NES stáli před podobným problémem jako konstruktéři všech dalších osmibitových konzolí: jakým způsobem dosáhnout uspokojivého výpočetního výkonu, dobrých grafických i zvukových schopností, a to za co nejnižší výrobní cenu, která je samozřejmě ve velmi konkurenčním prostředí herních konzolí jedním z nejdůležitějších parametrů. Výsledkem snahy o dobré vybalancování výrobní ceny a schopností konzole byl systém se čtyřmi hlavními čipy: osmibitovým mikroprocesorem Ricoh 2A03 (kapitola 3) obsahujícím i zvukový generátor (kapitola 4), dále čipem RP2C02 resp. RP2C07 (PPU) zajišťujícím generování grafického obrazu (kapitola 6) a dvojicí paměťových čipů. Jeden paměťový čip přitom tvořil programovou a datovou RAM, druhý čip sloužil grafickému procesoru pro uložení vzorků, z nichž se skládalo pozadí a sprity, popř. i další důležité informace nutné pro vygenerování grafického obrazu.
Obrázek 4: Herní série The Legend of Zelda
Systém Nintendo Entertainment System samozřejmě podporoval (přesněji řečeno přímo vyžadoval) použití zásuvných modulů s hrami či jinými aplikacemi. Tyto moduly mohly obsahovat jak paměť ROM/EPROM s binárním kódem hry i se všemi statickými daty (maximální adresovatelná kapacita dosahovala 32 kB, zvýšit ji bylo možné klasicky přes paměťové banky), tak i paměť RAM, jejíž typická kapacita byla 8 kB. Pomocí zásuvného modulu bylo možné rozšířit i kapacitu video paměti. Schéma zapojení jedné z variant herní konzole Nintendo Entertainment System je dostupné například na této adrese: http://nesdev.parodius.com/Ntd_8bit.jpg. Povšimněte si především způsobu vzájemného propojení mikroprocesoru (CPU) s grafickým procesorem (PPU) pomocí datové sběrnice a šesti bitů adresové sběrnice i toho, jak jsou od sebe odděleny oba čipy RAM (ve druhém případě je adresa zachycena do latche LS 373 pomocí signálu ALE).
Obrázek 5: Screenshot ze hry The Legend of Zelda.
Užitečné odkazy:
- Nocash NES Specs
http://nocash.emubase.de/everynes.htm - Nintendo Entertainment System
http://cs.wikipedia.org/wiki/NES - Nintendo Entertainment System Architecture
http://nesdev.icequake.net/nes.txt
Obrázek 6: Další screenshot ze hry The Legend of Zelda.
3. Mikroprocesor Ricoh 2A03
Ústředním čipem, na němž je postavena herní konzole NES, je mikroprocesor Ricoh 2A03, popř. Ricoh 2A07 (tyto čipy se od sebe liší především odlišným časováním a jsou určeny pro různé televizní normy). Konstruktéři v případě mikroprocesoru 2A03/2A07 vsadili na osvědčenou jistotu, protože tento čip je založen na jádru oblíbeného mikroprocesoru MOS 6502, jenž byl v různých variantách použit v několika dalších osmibitových herních konzolích (Atari 2600, Atari 5200, Atari 7800) a taktéž v mnoha domácích osmibitových mikropočítačích (Atari 400/800/800XL/130XE a varianty, Apple I, Apple II, BBC Micro, Commodore C64…). V případě čipů 2A03/2A07 však došlo k určitému zjednodušení jádra původního MOS 6502; chyběl například nepříliš často používaný režim pro práci s BCD čísly, kdy se v jednom bajtu ukládaly dvě číslice 0–9, tj. rozsah ukládaných hodnot byl 00 až 99 a nikoli 0 a 255. Původní mikroprocesor MOS 6502 mohl být do tohoto režimu přepnut pomocí instrukce SED, bližší informace o tomto režimu lze najít na adrese http://www.6502.org/tutorials/decimal_mode.html.
Obrázek 7: Mikroprocesor Ricoh 2A03.
Zatímco jádro mikroprocesoru bylo nepatrně zjednodušeno, byly na čip Ricoh 2A03/2A07 přidány další podpůrné moduly, díky jejichž existenci mohlo být redukováno celkové množství integrovaných obvodů, z nichž se herní konzole NES skládala. Jednalo se o následující moduly, z nichž některé budou popsány v navazujících kapitolách:
- Programovatelný „pomalý“ časovač se základní frekvencí 240 Hz, z níž mohly být odvozeny další frekvence (48, 60, 96, 120 a 192 Hz).
- Modul pro přímý přístup do paměti a přenosy dat (DMA).
- Dva programovatelné generátory obdélníkového signálu používané pro tvorbu zvuků.
- Jeden generátor trojúhelníkového signálu, taktéž používaný pro tvorbu zvuků.
- Konfigurovatelný generátor šumu tvořený posuvným registrem se zpětnou vazbou.
- Modul pro přehrávání samplů (D/A převodník).
___ ___ |o \/ | ROUT <--- 01] [40 <--- VCC COUT <--- 02] [39 ---> $4016W.0 /RES ---> 03] [38 ---> $4016W.1 A0 <--- 04] [37 ---> $4016W.2 A1 <--- 05] [36 ---> /$4016R A2 <--- 06] [35 ---> /$4017R A3 <--- 07] [34 ---> R/W A4 <--- 08] [33 <--- /NMI A5 <--- 09] [32 <--- /IRQ A6 <--- 10] 2A03 [31 ---> PHI2 A7 <--- 11] [30 <--- --- A8 <--- 12] [29 <--- CLK A9 <--- 13] [28 <---> D0 A10 <--- 14] [27 <---> D1 A11 <--- 15] [26 <---> D2 A12 <--- 16] [25 <---> D3 A13 <--- 17] [24 <---> D4 A14 <--- 18] [23 <---> D5 A15 <--- 19] [22 <---> D6 VEE ---> 20] [21 <---> D7 |________|
Obrázek 8: Schéma pinů mikroprocesoru Ricoh 2A03.
Užitečné odkazy:
- NesDev
http://nesdev.parodius.com/ - 2A03 technical reference
http://nesdev.parodius.com/2A03%20technical%20reference.txt - NES Dev wiki: 2A03
http://wiki.nesdev.com/w/index.php/2A03 - Ricoh 2A03
http://en.wikipedia.org/wiki/Ricoh_2A03 - 2A03 pinouts
http://nesdev.parodius.com/2A03_pinout.txt
Obrázek 9: Další pohled na mikroprocesor Ricoh 2A03.
4. Zvukový subsystém NESu
V této kapitole si řekneme základní informace o zvukovém subsystému herní konzole NES. Z předchozího textu již víme, že je tento subsystém přímo součástí integrovaného obvodu s mikroprocesorem 2A03/2A07. Zvuk či melodie mohly být tvořeny v pěti na sobě nezávislých kanálech. Jedná se o dva generátory obdélníkového signálu s volitelnou amplitudou, frekvencí a střídou, dále o generátor trojúhelníkového signálu s volitelnou frekvencí a automaticky měněnou amplitudou, generátor šumu, u nějž bylo možné zvolit režim činnosti, amplitudu a frekvenci posunu a konečně o D/A převodník, který mohl být buď ovládán přímo programově, nebo bylo umožněno načítat zvukové vzorky (samply) uložené v paměti ROM či RAM. Zajímavé je, že zvukový subsystém neobsahoval žádné filtry, na rozdíl od (jednoduchých) filtrů nabízených čipem POKEY (Atari) či komplexnějších filtrů použitých v čipu SID (Commodore C64).
Obrázek 10: Super Mario Bros ve verzi pro NES.
Taktéž podpora pro tvarování obálky generovaných signálů byla pouze dosti jednoduchá (tuto funkcionalitu však neměl ani POKEY, kde se musela řešit programovými cestami). Čip 2A03/2A07 obsahoval dva piny, na které byl přiváděn výstup ze všech pěti zvukových kanálů. Na pin číslo 1 (ROUT) byl přiváděn výstup z obou generátorů obdélníkových signálů, zatímco výstup z ostatních třech kanálů byl přiváděn na pin číslo 2 (COUT). V herní konzoli NES byl výstup z obou kanálů sloučen a analogově sečten s mikrofonním vstupem (ten se příliš často nepoužíval) a výsledný analogový signál byl zesílen a dále zpracován.
Obrázek 11: Další screenshot hry Super Mario Bros.
Na ovládání nejjednodušší byly oba generátory obdélníkových signálů, u nichž bylo možné měnit zejména tři základní parametry: amplitudu (4 bity = 16 úrovní), frekvenci (přibližně 54,6 Hz až 12,4 kHz podle použité televizní normy, frekvenci bylo možné měnit plynule) a střídu (1:8, 1:4, 1:2, 3:4). U generátoru trojúhelníkového signálu se měnila jeho úroveň (4 bity = 16 úrovní) automaticky, ale programově bylo možné nastavit frekvenci změn signálu v rozsahu 27,3 Hz až 55,9 kHz (opět v závislosti na použité televizní normě). Generátor šumu si popíšeme v následující kapitole, takže nám zbývá už jen pátý kanál, jímž je D/A převodník. Ten bylo možné ovládat programově změnou jednoho řídicího registru (sedmibitová hodnota), popř. byla podporována funkce automatického přehrávání vzorků (samplů) z ROM, přičemž při načítání samplu došlo k pozastavení mikroprocesoru. Při přehrávání vzorků byla frekvence nastavitelná v rozsahu 4,2 kHz až 33,5 kHz (ovšem zvolit bylo možné jen šestnáct přednastavených frekvencí).
42Obrázek 12: Poslední screenshot ze hry The Legend of Zelda ve verzi pro NES.
5. Generátor šumu a mapa řídicích registrů zvukového subsystému
Podobně jako zvukové čipy POKEY či AY-3–8910, obsahoval i zvukový subsystém herní konzole NES generátor šumu. Ten byl vytvořen pomocí patnáctibitového posuvného registru se zpětnou vazbou: vybrané dva bity posuvného registru byly přes hradlo XOR přesunuty na jeho začátek, přičemž se obsah registru mezitím posunul o jeden bit doleva. Zvukový výstup byl generován na základě aktuálního obsahu bitu s indexem 14. Posuvný registr mohl pracovat ve dvou režimech činnosti: „krátkém“ a „dlouhém“. Ve dlouhém režimu se generovala sekvence pseudonáhodných bitů s periodou 32767 vzorků (zbývající 32768 stav nemohl být použit, protože se jednalo o nulovou hodnotu spadající mimo generovanou sekvenci). V krátkém režimu byla perioda pseudonáhodného signálu kratší: 93 bitů/vzorků. Samozřejmě bylo taktéž možné měnit frekvenci posunu, a to přibližně v rozsahu 29,3 Hz až 447 kHz (opět v závislosti na tom, jaká televizní norma byla použita).
<======================= +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ v v _____ ^ v +-------| xor |--------------------------------------------------+ +------------|_____|
Obrázek 13: Konfigurace generátoru šumu v „dlouhém“ režimu.
<======================= +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ v v _____ ^ v +-------| xor |-------------------------+ +-------------------------------------|_____|
Obrázek 14: Konfigurace generátoru šumu v „krátkém“ režimu.
Na závěr si ještě uvedeme mapu všech 22 řídicích registrů ovlivňujících funkci všech zvukových generátorů:
Adresa | Název řídicího registru | Význam |
---|---|---|
$4000 | SQ1_VOL | Duty and volume for square wave 1 |
$4001 | SQ1_SWEEP | Sweep control register for square wave 1 |
$4002 | SQ1_LO | Low byte of period for square wave 1 |
$4003 | SQ1_HI | High byte of period and length counter value for square wave 1 |
$4004 | SQ2_VOL | Duty and volume for square wave 2 |
$4005 | SQ2_SWEEP | Sweep control register for square wave 2 |
$4006 | SQ2_LO | Low byte of period for square wave 2 |
$4007 | SQ2_HI | High byte of period and length counter value for square wave 2 |
$4008 | TRI_LINEAR | Triangle wave linear counter |
$4009 | Not used | |
$400A | TRI_LO | Low byte of period for triangle wave |
$400B | TRI_HI | High byte of period and length counter value for triangle wave |
$400C | NOISE_VOL | Volume for noise generator |
$400D | Not used | |
$400E | NOISE_LO | Period and waveform shape for noise generator |
$400F | NOISE_HI | Length counter value for noise generator |
$4010 | DMC_FREQ | Play mode and frequency for DMC samples |
$4011 | DMC_RAW | 7-bit DAC |
$4012 | DMC_START | Start of DMC waveform is at address $C000 + $40*$xx |
$4013 | DMC_LEN | Length of DMC waveform is $10*$xx + 1 bytes (128*$xx + 8 samples) |
$4014 | OAM_DMA | Writing $xx copies 256 bytes by reading from $xx00-$xxFF and writing to $2004 (OAM data) |
$4015 | SND_CHN | Sound channels enable and status |
Obrázek 15: Jeden z trackerů pro herní konzoli NES: Nerd Tracker.
Užitečné odkazy:
- How to make NES music
http://blog.snugsound.com/2008/08/how-to-make-nes-music.html - Nintendo Entertainment System Architecture
http://nesdev.icequake.net/nes.txt - MIDINES
http://www.wayfar.net/0×f00000_overview.php - FamiTracker
http://famitracker.com/ - nerdTracker II
http://nesdev.parodius.com/nt2/
Obrázek 16: FamiTracker pro PC, který dokáže generovat hudbu pro konzoli NES.
6. Grafický subsystém NESu
Grafický subsystém použitý v herní konzoli Nintendo Entertainment System byl v mnoha ohledech ještě zajímavější než její zvukový subsystém. Víme již, že herní konzole NES existovala ve variantě pro televizní normu NTSC i pro normu PAL. Konzole určené pro televizní normu PAL obsahovaly mikroprocesor 2A07 s hodinovou frekvencí 1,66 MHz, zatímco pro normu NTSC byly určeny konzole s mikroprocesorem 2A03 používající hodinovou frekvenci 1,79 MHz. I grafické čipy se lišily podle toho, pro jakou televizní normu byly určeny. Pro normu NTSC se používal čip RP2C02 se vstupní hodinovou frekvencí 5,37 MHz, zatímco pro normu PAL byl použit čip RP2C07 s frekvencí 5,32 MHz. Tyto čipy, označované taktéž zkratkou PPU, obsahovaly 256 interní paměti využívané systémem pro zobrazení spritů. Kromě toho přistupoval PPU k samostatnému čipu RAM o kapacitě dva kilobajty. V této paměti bylo uloženo větší množství datových struktur nesoucích informace o pozadí scény, o barvové paletě i o tvarech spritů. Ve skutečnosti však mohl PPU přistupovat i k paměti ROM umístěné na paměťovém modulu se hrou.
Obrázek 17: Barvová paleta používaná herní konzolí NES.
V sedmé kapitole bude stručně popsán způsob generování pozadí a v kapitole osmé pak práce se sprity.
Obrázek 18: Screenshot ze hry Kirby's Adventure.
Užitečné odkazy:
- How NES Graphics work
http://nesdev.parodius.com/nesgfx.txt - NES Technical/Emulation/Development FAQ
http://nesdev.parodius.com/NESTechFAQ.htm
Obrázek 19: Další screenshot ze hry Kirby's Adventure.
7. Datové struktury použité pro vytvoření pozadí
U herní konzole NES se obraz posílaný na televizor skládal ze dvou částí: pozadí a pohyblivých spritů. Nejprve si stručně popíšeme, jakým způsobem se vytvářelo pozadí. Při použití televizní normy PAL bylo rozlišení obrazu rovno 256×240 pixelům, zatímco u normy SECAM bylo horních osm řádků a spodních osm řádků zatemněných, tj. rozlišení bylo sníženo na 256×224 pixelů. Teoreticky sice bylo možné vytvořit klasický framebuffer, v němž by bylo celé pozadí uloženo, ale při šestnáctibarevném obrazu, tj. při použití čtyř bitů na pixel, by musela být kapacita framebufferu poměrně velká: 28 kilobajtů. Konstruktéři čipu PPU tedy využili technologii, s níž jsme se seznámili i u dalších typů herních konzolí: namísto framebufferu byly v obrazové paměti uloženy vzorky o velikosti 8×8 pixelů, které byly skládány do mřížky 32×30 dlaždic, což přesně odpovídá již zmíněnému rozlišení 256×240 pixelů (32×8=256, 30×8=240).
Obrázek 20: Screenshot ze hry Kirby's Adventure.
Základní datovou strukturou byla struktura nazvaná Name Table o velikosti 960 bajtů, která obsahovala indexy všech tvarů tvořících dlaždicovitý obraz 32×30 dlaždic. Mohlo by se tedy zdát, že jedinou další potřebnou strukturou je tabulka všech vzorků (bitmap), z nichž každá má velikost 8×8 pixelů. Situace je však poněkud složitější, protože na pozadí lze vykreslit až šestnáct různých barev. V tabulce vzorků (Pattern Table) jsou pro každý pixel vyhrazeny dva bity, tj. lze rozlišit čtyři možnosti/barvy. Kromě toho existuje ještě tabulka atributů (Attribute Table) o velikosti 64 bajtů, která obsahuje horní dva bity pro oblast o velikosti 4×4 dlaždice, tj. 32×32 pixelů. Díky existenci této druhé tabulky je skutečně možné – i když s mnoha omezeními – použít na pozadí šestnáct různých barev. Důležité přitom je, že tabulka vzorků může být přemapována do ROM na paměťovém modulu, takže je možné poměrně jednoduchým způsobem například animovat celou scénu pouhou změnou „ukazatele“ na tuto tabulku.
Obrázek 21: Další screenshot ze hry Kirby's Adventure.
8. Sprity
Způsob vytváření pozadí, o němž jsme se zmínili v předchozí kapitole, je poměrně složitý (i když výhody spočívající v relativně malém zatížení procesoru, většinou převažovaly). Se sprity je však situace poněkud jednodušší. Základem při vykreslování spritů je opět tabulka vzorků, ta je ovšem doplněna pomocnou pamětí o kapacitě 256 bajtů, která je umístěna přímo na čipu PPU. Programátor měl k této paměti přístup buď přes řídicí registry PPU, alternativně pak přes DMA. Ve zmíněných 256 bajtech jsou umístěny informace o 64 spritech, tj. pro každý sprite jsou vyhrazeny čtyři bajty. V těchto bajtech se nachází horizontální pozice spritu, vertikální pozice spritu, horní dva bity barvy (spodní bity jsou přímo v tabulce vzorků), index do tabulky vzorků (ukazuje na tvar spritu) a konečně taktéž bitové příznaky: horizontální zrcadlení, vertikální zrcadlení a priorita spritu (před/za pozadím).
Obrázek 22: Screenshot ze hry Donkey Kong.
Kvůli dalším technologickým omezením čipu PPU mohlo být na jednom řádku (tj. vedle sebe) zobrazeno pouze omezené množství spritů, tj. nebylo například možné všechny sprity umístit vedle sebe. Taktéž počet celkově zobrazovaných barev nedosáhl hodnoty 32 (16 pro pozadí, 16 pro sprity), ale pouze 25, přičemž barvová paleta obsahovala 48 barev a pět odstínů šedi (konkrétní způsob zobrazení barev byl na obou televizních normách poněkud odlišný).
Obrázek 23: Další screenshot ze hry Donkey Kong.
9. Odkazy na Internetu
- Sega Master System Hardware
http://www.smspower.org/Development/Documents - SMS/GG hardware notes
http://www.smspower.org/uploads/Development/smstech-20021112.txt?sid=28c370e1fcac51d5774319979bf96f4c - Sega Master System Museum
http://alexkidd.com/ - Jadeite's Sega Master System Museum
http://rp_gamer.tripod.com/SMS/1.html - YM2414 FM Operator Type-LL (OPLL) Application Manual
http://www.smspower.org/maxim/Documents/YM2413ApplicationManual?sid=28c370e1fcac51d5774319979bf96f4c - Sega Master System (Wikipedia)
http://en.wikipedia.org/wiki/Sega_Master_System - Sega Card (Wikipedia)
http://en.wikipedia.org/wiki/Sega_Card - Sega Master System VDP documentation
http://www.smspower.org/uploads/Development/msvdp-20021112.txt?sid=28c370e1fcac51d5774319979bf96f4c - bee – The Multi-Console Emulator
http://www.thebeehive.ws/ - Sega Retro: H.E.R.O.
http://segaretro.org/H.E.R.O. - Sega Retro: The Castle
http://segaretro.org/The_Castle - Sega Retro: Star Force
http://segaretro.org/Star_Force - Sega Retro: Girl's Garden
http://segaretro.org/Girl's_Garden - Sega Retro: The Black Onyx
http://segaretro.org/The_Black_Onyx - Catalog of non-gaming Vectrex demos
http://vectrex.wikia.com/wiki/Catalog_of_non-gaming_Vectrex_demos - Nebula Commander
http://www.classicgamecreations.com/nebula.html - ParaJVE – Parabellum's Java Vectrex Emulator, version 0.7.0
http://www.vectrex.fr/ParaJVE/ - Vectrex System History – The Mini Arcade
http://vectrexmuseum.com/vectrexhistory.php - GCE Vectrex: unique system, unique subculture. Part 2. Unique subculture
http://lady-eklipse.livejournal.com/ - Novinky.org: PSPVE v1.0.2 (Emulátor konzole Vectrex)
http://psp.novinky.org/view.php?cisloclanku=2008060010 - 3 Generations of Game Machine Architecture
http://www.atariarchives.org/dev/CGEXPO99.html - Atari 5200
http://www.atariage.com/software_search.html?SystemID=5200 - Atari 5200 Hardware and Accessories
http://www.atariage.com/5200/archives/hardware.html - Atari 5200 Screenshots
http://www.atariage.com/system_items.html?SystemID=5200&ItemTypeID=SCREENSHOT - History of video game consoles (second generation): Wikipedia
http://en.wikipedia.org/wiki/History_of_video_game_consoles_(second_generation) - Atari 5200: Wikipedia
http://en.wikipedia.org/wiki/Atari_5200 - 6502 – the first RISC µP
http://ericclever.com/6500/ - The Video Game Console Library: Fairchild Channel F
http://www.videogameconsolelibrary.com/pg70-fairchild.htm - Jerry Lawson
http://www.vintage.org/2006/main/bio.php?id=1586 - Fairchild Semiconductor F8
http://www.nyx.net/~lturner/public_html/F8_ins.html - Fairchild Channel F 101: A Beginner's Guide
http://www.racketboy.com/retro/fairchild-channel-f-101-a-beginners-guide - Lowell O. Turner: This old microprocessor
http://www.nyx.net/~lturner/public_html/OldCPU.html - VC&G Interview: Jerry Lawson, Black Video Game Pioneer
http://www.vintagecomputing.com/index.php/archives/545 - Fairchild Channel F
http://en.wikipedia.org/wiki/Fairchild_Channel_F - The Great CPU List Part II: Fairchild F8, Register windows
http://jbayko.sasktelwebsite.net/cpu2.html#Sec2Part2 - Fairchild F8
http://en.wikipedia.org/wiki/Fairchild_F8 - 6+ Nostalgic Emulators For Vintage Video Gaming Enthusiasts (1972–1980)
http://www.makeuseof.com/tag/6-nostalgic-emulators-vintage-video-gaming-enthusiasts-19721980/ - Channel F
http://www.giantbomb.com/channel-f/60–66/ - MESS Wiki
http://www.mess.org/ - O2 Homepage
http://www.the-nextlevel.com/odyssey2/ - Magnavox Odyssey2 (1978), Philips Videopac G7000 / C52 (1979)
http://www.mess.org/sysinfo:odyssey2 - The Video Game Critic's Odyssey 2 Reviews
http://videogamecritic.net/odd.htm - Computer Closet Collection: Magnavox Odyssey2
http://www.computercloset.org/MagnavoxOdyssey2.htm - PHILIPS Videopac C52
http://old-computers.com/museum/computer.asp?c=1060 - O2 Tech. Manual V.1.1 (PDF dokument)
http://www.atarihq.com/danb/files/o2doc.pdf - Magnavox Odyssey2
http://www.game-machines.com/consoles/odyssey2.php - Magnavox Odyssey2 (Wikipedia EN)
http://en.wikipedia.org/wiki/Odyssey2 - Magnavox Odyssey2 Games (Wikipedia EN)
http://en.wikipedia.org/wiki/List_of_Videopac_games - The FPGA Videopac Project
http://www.fpgaarcade.com/videopac.htm - Last minute addition: Odyssey 2 (P824×) VDC chip!
http://ploguechipsounds.blogspot.com/2009/10/last-minute-addition-odyssey-2-p824×.html - Space Invaders (Killer List of Video Games)
http://www.arcade-museum.com/game_detail.php?game_id=9662 - Spy Hunter (Killer List of Video Games)
http://www.arcade-museum.com/game_detail.php?game_id=9742 - Spy Hunter (Wikipedia)
http://en.wikipedia.org/wiki/Spy_Hunter - DP Interviews … Bob Whitehead
http://www.digitpress.com/library/interviews/interview_bob_whitehead.html - Atari Age: Video Chess
http://www.atariage.com/software_page.html?SoftwareID=1429 - Moby Games: Video Chess
http://www.mobygames.com/game/video-chess - Wikipedia: Video Chess
http://en.wikipedia.org/wiki/Video_Chess - The Video Game Critic's Atari 2600 Reviews A
http://videogamecritic.net/2600aa.htm - Classic gaming: Atari 2600 – Bezerk
http://classicgaming.gamespy.com/View.php?view=GameMuseum.Detail&id=13 - Classic gaming: Atari 2600 – E.T. the Extra-Terrestrial
http://classicgaming.gamespy.com/View.php?view=GameMuseum.Detail&id=290 - The Video Game Critic's Reviews With „ET“ Icon
http://videogamecritic.net/icon_ET.htm - Atari 2600 ROMs
http://www.atariage.com/system_items.html?SystemID=2600&ItemTypeID=ROM - Atari 2600 ROMs – #, A through E (582K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_A-E.zip - Atari 2600 ROMs – F through J (298K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_F-J.zip - Atari 2600 ROMs – K through P (432K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_K-P.zip - Atari 2600 ROMs – Q through S (539K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_Q-S.zip - Atari 2600 ROMs – T through Z (260K)
http://www.atariage.com/2600/emulation/RomPacks/Atari2600_T-Z.zip - Top 10 Best-Selling Atari 2600 Games
http://retro.ign.com/articles/903/903024p1.html - Top 100 Games Hits (past week) Atari 2600 VCS
http://www.atarimania.com/top-atari-atari-2600-vcs-_G2_7.html - Visitor Top 25 Total Downloads
http://www.atarimania.com/pgemainsoft.awp?type=G&system=2 - Atari 2600 FAQ
http://www.atariage.com/2600/faq/index.html - Atari 2600 Consoles and Clones
http://www.atariage.com/2600/archives/consoles.html - Atari 2600 Programming (odkazy)
http://www.atariage.com/2600/programming/index.html - Design case history: the Atari Video Computer System
http://www.atariage.com/2600/archives/design_case.html?SystemID=2600 - Atari 2600 (Wikipedia)
http://en.wikipedia.org/wiki/Atari_2600 - Schémata zapojení Atari 2600 (překresleno)
http://www.atariage.com/2600/archives/schematics_pal/index.html - Schémata zapojení Atari 2600 (skeny původních schémat)
http://www.vintagegamingandmore.com/atari-2600-schematics - Adventure for the Atari 2600 Video Game Console by Warren Robinett
http://www.warrenrobinett.com/adventure/index.html - Mapa hry Adventure
http://www.warrenrobinett.com/adventure/adv-map1.gif - Jay Glenn Miner Interview Pasadena, September 1992
http://www.rabayjr.com/jay_miner.htm - Magnavox and the Odyssey systems
http://www.pong-story.com/odyssey_other.htm - Magnavox Odyssey First home video game console
http://www.pong-story.com/odyssey.htm - The Odyssey in France
http://www.pong-story.com/odypubfr.htm - Magnavox Odyssey at old-computers.org
http://www.old-computers.com/museum/photos.asp?t=1&c=883&st=2 - Magnavox Odyssey Series (Wikipedia)
http://en.wikipedia.org/wiki/Magnavox_Odyssey_Series - MAGNAVOX ODYSSEY (1971)
http://balduin.wordpress.com/2007/10/15/magnavox-odyssey-1971/ - Magnavox Odyssey FAQ
http://www.pong-story.com/o1faq.txt - Richard Hewison – Level 9: Past masters of the adventure game
http://www.sinclairlair.co.uk/level9.htm - Level 9 Computing
http://en.wikipedia.org/wiki/Level9 - Worm in Paradise – Level 9 (CZ recenze)
http://sinclairzxspectrum.cz/software/recenze/worm_in_paradise.php - World of Spectrum: Jewels of Darkness
http://www.worldofspectrum.org/infoseekid.cgi?id=0011293 - World of Spectrum: Hry společnosti Level 9
http://www.worldofspectrum.org/infoseekpub.cgi?regexp=^Level+9+Computing+Ltd$&loadpics=1 - Adventure International
http://en.wikipedia.org/wiki/Adventure_International - Stránky o firmě Infocom a jejích hrách
http://www.csd.uwo.ca/Infocom/ - atari.fandal.cz
http://atari.fandal.cz/games.php - Zork I: The Great Underground Empire (Moby games)
http://www.mobygames.com/game/dos/zork-the-great-underground-empire/reviews/reviewerId,4465/ - Zork I (Wikipedia)
http://en.wikipedia.org/wiki/Zork_I - Zork I Walkthrough
http://www.gamefaqs.com/pc/564446-zork-i/faqs - Zork I: The Great Underground Empire
http://www.csd.uwo.ca/Infocom/zork1.html - Zork II: The Wizard of Frobozz (Moby games)
http://www.mobygames.com/game/dos/zork-ii-the-wizard-of-frobozz - Zork II (Wikipedia)
http://en.wikipedia.org/wiki/Zork_II - Zork II: The Wizard of Frobozz
http://www.csd.uwo.ca/Infocom/zork2.html - Zork III: The Dungeon Master (Moby games)
http://www.mobygames.com/game/zork-iii-the-dungeon-master - Zork III (Wikipedia)
http://en.wikipedia.org/wiki/Zork_III - SAGA – Scott Adams Grand Adventure
http://www.msadams.com/index.htm - Player 4 Stage 1: The Productivity Eaters
http://www.thedoteaters.com/p4_stage1.php - Textovky.cz – Textovkářův ráj
http://www.textovky.cz/ - Scott Adams (game designer, Wikipedia)
http://en.wikipedia.org/wiki/Scott_Adams_(game_designer) - Interview with Scott Adams (Adventure Classic Gaming)
http://www.adventureclassicgaming.com/index.php/site/interviews/129/ - Scott Adams game interpreter
http://www.ifarchive.org/indexes/if-archiveXscott-adamsXinterpreters.html - Ohlédnutí za herní historií: Textovky
http://www.slunecnice.cz/tipy/ohlednuti-za-herni-historii-textovky/ - BASIC Computer Games (published 1978) – Hammurabi
http://atariarchives.org/basicgames/showpage.php?page=78 - Hamurabi – zdrojový kód v BASICu
http://www.dunnington.u-net.com/public/basicgames/HMRABI - Hamurabi (Wikipedia)
http://en.wikipedia.org/wiki/Hamurabi - Hammurabi naprogramovaný v JavaScriptu
http://www.hammurabigame.com/hammurabi-game.php - Empire – hratelné demo (připojení přes telnet)
http://198.212.189.111/ - Empire Classic (video game)
http://en.wikipedia.org/wiki/Empire_Classic_(computer_game) - Wolfpack empire (moderní verze hry Empire)
http://www.wolfpackempire.com/default.htm - FOCAL (programming language, Wikipedia)
http://en.wikipedia.org/wiki/FOCAL_(programming_language) - Forty Years of Lunar Lander
http://technologizer.com/2009/07/19/lunar-lander/ - Category: Timelines of video games (Wikipedia)
http://en.wikipedia.org/wiki/Category:Timelines_of_video_games - Dennis M. Ritchie – home page
http://cm.bell-labs.com/who/dmr/index.html - Space Travel: Exploring the solar system and the PDP-7
http://cm.bell-labs.com/who/dmr/spacetravel.html - Yes, A video game contributed to Unix Development
http://people.fas.harvard.edu/~lib215/reference/history/spacetravel.html - Space Travel (video game)
http://en.wikipedia.org/wiki/Space_Travel_(video_game) - Computer and Video Game History
http://inventors.about.com/library/inventors/blcomputer_videogames.htm - OXO (Wikipedia)
http://en.wikipedia.org/wiki/OXO - Tennis for Two (Wikipedia)
http://en.wikipedia.org/wiki/Tennis_for_Two - Who really invented the video game?
http://www.atarimagazines.com/cva/v1n1/inventedgames.php - The Video Game Revolution
http://www.pbs.org/kcts/videogamerevolution/history/timeline.html - The First Video Game?
http://www.bnl.gov/bnlweb/history/higinbotham.asp - První část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic1.jpg - Druhá část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic2.jpg - MUD (stránka jednoho z tvůrců hry)
http://www.mud.co.uk/richard/mud.htm - MUD1 (Wikipedia)
http://en.wikipedia.org/wiki/MUD1 - Text-based game (Wikipedia)
http://en.wikipedia.org/wiki/Text-based_game - Text mode games
http://www.textmodegames.com/ - Why Text-Mode Games are Cool
http://www.textmodegames.com/articles/why-text-mode-games-are-cool.html - The Dragon Ate My Homework
http://www.wired.com/wired/archive/1.03/muds.html - Hunt the Wumpus
http://en.wikipedia.org/wiki/Hunt_the_Wumpus - A Brief History of „Rogue“
http://www.wichman.org/roguehistory.html - Rogue (video game) (Wikipedia)
http://en.wikipedia.org/wiki/Rogue_(computer_game) - Roguish Charm
http://www.1up.com/features/essential-50-rogue - Colossal Cave Adventure Map
http://www.spitenet.com/cave/ - Colossal Cave Adventure
http://www.rickadams.org/adventure/ - Here's where it all began…
http://www.rickadams.org/adventure/a_history.html - David Kinder's guide to Adventure downloads at the Interactive Fiction Archive
http://www.rickadams.org/adventure/e_downloads.html - Everything you ever wanted to know about …the magic word XYZZY
http://www.rickadams.org/adventure/c_xyzzy.html - Colossal Cave Adventure jako Java Applet
http://www.astrodragon.com/zplet/advent.html - Colossal Cave Adventure
http://en.wikipedia.org/wiki/Colossal_Cave_Adventure - iPod Adventure Game
http://hamimiami.com/ipod/adventure/index.html