Historie vývoje počítačových her (45. část - grafický subsystém herní konzole SNES)

27. 9. 2012
Doba čtení: 16 minut

Sdílet

V dnešní části seriálu o historii výpočetní techniky si podrobněji popíšeme grafický subsystém konzole SNES. Také si řekneme, jaké další podpůrné čipy bylo možné ke konzoli připojit – jedná se zejména o čip Nintendo Super FX, který lze považovat za jeden z prvních široce dostupných grafických akcelerátorů.

Obsah

1. Historie vývoje počítačových her (45. část – grafický subsystém herní konzole SNES)

2. Grafické režimy v herní konzoli SNES

3. Generování pozadí (background)

4. Zobrazování spritů

5. Alternativní podpůrné čipy dostupné pro herní konzoli SNES

6. Čip MARIO aneb Nintendo Super FX

7. Podpora pro akceleraci vykreslování prostorových (3D) objektů čipem Super FX

8. Podpora pro akceleraci vykreslování 2D spritů čipem Super FX

9. Odkazy na Internetu

1. Historie vývoje počítačových her (45. část – grafický subsystém herní konzole SNES)

V dnešní části seriálu o historii vývoje výpočetní techniky se zaměříme na popis grafického subsystému herní konzole SNES. Připomeňme si, že tato herní konzole byla založena na šestnáctibitovém mikroprocesoru Ricoh 5A22 odvozeného od čipu WDC 65c816. Tento mikroprocesor je součástí mikroprocesorové řady 6502, na jejímž začátku stál osmibitový čip MOS 6502 (technologie NMOS) následovaný taktéž osmibitovým čipem 65c02 (technologie CMOS). Rozšířením instrukční sady, zvětšením interní šířky pracovních registrů i šířky operandů zpracovávaných v aritmeticko-logické jednotce a dále doplněním tří dalších registrů pak vznikl šestnáctibitový mikroprocesor WDC 65c816 s 24bitovými adresami. Kromě mikroprocesoru byla herní konzole SNES vybavena i samostatně pracujícím zvukovým subsystémem a grafickým subsystémem. Zajímavé je, že tyto subsystémy obsahovaly vlastní RAM, takže skutečně dokázaly pracovat do značné míry nezávisle na činnosti mikroprocesoru.

Obrázek 1: Herní konzole SNES ve variantě určené pro připojení k televizorům pracujícím v normě PAL.

Grafický subsystém herní konzole SNES byl postaven na podobných principech jako tomu bylo u grafického subsystému původního NESu. Obraz posílaný na televizor byl poskládán z několika objektů různých typů. Především se jednalo o pozadí (background), dále pak o okna (window) a konečně o sprity, tj. objekty, které se mohly pohybovat nezávisle na sobě i nezávisle na pozadí. První změnou oproti NESu je nabídka více rozlišení pozadí. Připomeňme si, že v NESu bylo při použití televizní normy PAL 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ů. V případě herní konzole SNES měli programátoři při výběru rozlišení pozadí více možností: od 256×224 pixelů (neprokládané režimy) až po 512×448 pixelů v případě prokládaných režimů (interlaced modes).

Obrázek 2: Detail připojení modulu se hrou ke konzoli SNES.

2. Grafické režimy v herní konzoli SNES

Grafický subsystém herní konzole SNES má pro svoje potřeby vyhrazenou samostatnou oblast paměti o kapacitě 64 kB. Tato oblast je (zjednodušeně řečeno) rozdělena na čtyři podoblasti:

  1. Tvary znaků, z nichž každý má velikost 8×8 pixelů.
  2. 2D pole s dlaždicemi (z těch jsou složena pozadí), odkazuje se na indexy znaků.
  3. Dvě tabulky spritů, které se odkazují na indexy znaků.
  4. Barvovou paletu o délce 512 bajtů

Obrázek 3: Jedna z variant ovladače herní konzole SNES.

Podporováno je celkem devět režimů pozadí, přičemž každý režim má odlišné vlastnosti. Z následující tabulky lze vyčíst, kolik současně zobrazitelných pozadí je v daném režimu podporováno a taktéž i počet barev pro jednotlivá pozadí (ta si můžeme představit jako přes sebe se posunující poloprůhledné vrstvy). Pokud je v některém sloupci zobrazena pomlčka, znamená to, že daný grafický režim nepodporuje současné zobrazení tolika různých pozadí:

Režim číslo Pozadí 1 Pozadí 2 Pozadí 3 Pozadí 4
0 4 4 4 4
1 16 16 4  –
2 16 16  –  –
3 256 16  –  –
4 256 4  –  –
5 16 4  –  –
6 16  –  –  –
7 256  –  –  –
7EXTBG 256 128  –  –

Režim číslo 7 má zvláštní postavení, protože pozadím bylo možné rotovat a taktéž měnit jeho zvětšení. Díky jednoduchému triku se zvětšení mohlo měnit pro každý obrazový řádek zvlášť, což se mohlo využít například při simulaci perspektivní projekce. Zvláštnosti tohoto režimu si ještě připomeneme v dalších dílech tohoto seriálu při popisu her, které tento režim využívaly.

Obrázek 4: Tato varianta ovladače byla dodávána s konzolemi určenými pro připojení k televizorům pracujícím v normě PAL.

3. Generování pozadí (background)

Pozadí (background) není v případě herní konzole SNES uloženo v paměti ve formě normálního framebufferu, tj. jako bitmapa s určitým počtem bitů na jeden pixel. Namísto toho se používají podobné datové struktury, s nimiž jsme se již v tomto seriálu několikrát setkali – pozadí je totiž složeno z takzvaných dlaždic (tiles) a ty jsou dále složeny ze znaků (characters). Základní datovou strukturou určující, co se má na pozadí zobrazit, je dvourozměrné pole o rozměrech 32×32, 64×32, 32×64 či 64×64 dlaždic. Pro každou dlaždici jsou v tomto poli vyhrazeny dva bajty, v nichž jsou zakódovány následující informace:

Index Struktura Počet bitů Význam
15 V 1 povoluje/zakazuje vertikální zrcadlení dlaždice
14 H 1 povoluje/zakazuje horizontální zrcadlení
13 O 1 priorita pozadí (oproti spritům a dalším pozadím)
10 P 3 index barvové palety (0–7)
0 C 10 index znaku, z nichž se dlaždice skládá (jedná se vždy o čtyři znaky za sebou)

Každá dlaždice může mít rozlišení 8×8 či 16×16 pixelů, což znamená, že horizontální či vertikální rozměry pozadí mohou nabývat hodnot: 32×8=256 pixelů, 64×8=32×16=512 pixelů či 64×16=1024 pixelů. Tyto rozměry jsou v obou směrech větší, než horizontální i vertikální rozlišení obrazovky, což však nevadí, protože pozadí může (nezávisle na ostatních pozadích) scrollovat.

Obrázek 5: Vytvoření paralelně scrollujícího pozadí ze dvou bitmap, které musí být rozloženy na dlaždice.

4. Zobrazování spritů

Kromě pozadí může být grafická informace zobrazená na televizoru ještě doplněna o sprity, tj. objekty s měnitelnou pozicí (vůči pozadí) a taktéž měnitelnou prioritou, která určuje, jak se jednotlivé sprity a pozadí budou překrývat. V případě herní konzole SNES je možné vykreslit až 128 na sobě nezávislých spritů, ovšem s tím omezením, že na jednom řádku může být zobrazeno pouze 32 spritů. Každý sprite může mít až patnáct barev, přičemž nultý index barvy je vyhrazen pro průhledné pixely – oblasti spritů, přes něž je vidět na pozadí a/nebo sprity s nižší prioritou.

Obrázek 6: Sprity získané z paměťového modulu hry Final Fantasy IV (dvakrát zvětšeno).

Pro všech 128 spritů je v grafické paměti (64kB celkem) vyhrazena oblast o velikosti 544 bajtů, která je rozdělená na dvě části: tabulku o velikosti 512 bajtů a pomocnou tabulku o velikosti 32 bajtů. V první tabulce jsou pro každý sprite vyhrazeny čtyři bajty s následujícím významem:

Bajt číslo Struktura Význam
1 xxxxxxxx Horizontální pozice spritu
2 yyyyyyyy Vertikální pozice spritu
3 cccccccc Index prvního znaku, z něhož je sprite složen
4 vhoopppc Vertikální/horizontální zrcadlení, priorita, barvová paleta, 9.bit znaku

Ve druhé tabulce o velikosti 32 bajtů jsou pro každý sprite vyhrazeny pouze dva bity, v nichž je uložen nejvyšší bit x-ové a y-ové pozice spritu. V každém bajtu této tabulky jsou tedy uložena data pro čtyři sousedící sprity.

Obrázek 7: Další série spritů získaných z paměťového modulu hry Final Fantasy IV (dvakrát zvětšeno).

5. Alternativní podpůrné čipy dostupné pro herní konzoli SNES

Mezi jednu ze zajímavých vlastností herní konzole SNES, o níž jsme se prozatím nezmínili, patří i možnost přidat na zásuvný modul se hrou další podpůrné integrované obvody. To znamená, že tento modul (cartridge) nemusel obsahovat pouze čip (E)PROM s binárním kódem a daty hry, ale k vybraným herním titulům bylo navíc možné dodat další čip určený pro generování zvuků či podpůrné čipy pro grafický subsystém. Vzhledem k relativně dlouhé době morální životnosti herní konzole SNES se její výrobce dostal do situace, kdy uživatelé začali vyžadovat hry s kvalitnější 3D grafikou, kterou již nebylo možné vykreslit programově, zvláště když vezmeme v potaz spíše průměrný výpočetní výkon mikroprocesoru 65c816 v porovnání s konkurenčními čipy. Jen pro porovnání: na přelomu osmdesátých a devadesátých let minulého století již byly k dispozici výkonné mikroprocesory Motorola 68040 a Intel 80486DX pracující na vyšších frekvencích, než byla frekvence 3,58 MHz v případě 65c816/Ricoh 5A22 ve SNESu (80486DX mělo frekvence 20, 25, 33 a posléze dokonce 50 MHz, Motorola 68040 pak frekvence 25, 33 a později též 40 MHz).

Obrázek 8: Díky existenci výkonných čipů 80386, 80486DX a Motorola 68030/68040 již bylo možné vytvářet hry, v nichž se vykreslovala prostorová scéna programově. Na tomto screenshotu pravděpodobně většina čtenářů pozná slavný Doom, který bylo možné provozovat i na počítači s mikroprocesorem AMD 80386 40MHz (v některých případech se však vykreslování na takto výkonném počítači zpomalilo, například v závěrečné úrovni hry Doom 2).

Pro herní konzoli SNES bylo navrženo popř. upraveno větší množství alternativních podpůrných čipů. Asi nejznámější je čip nazvaný Nintendo Super FX (též MARIO), který akceleroval vykreslování 2D a 3D grafiky. Popisem tohoto zajímavého integrovaného obvodu se budeme zabývat v následující kapitole. Ovšem kromě čipu Nintendo Super FX se na modulech s některými hrami nacházely i další integrované obvody. Jedná se například o SA-1 neboli Super Accelerator 1, což je ve skutečnosti mikroprocesor 65c816, ovšem taktovaný na 10 MHz, tj. zhruba třikrát rychleji, než hlavní mikroprocesor herní konzole SNES. Tento mikroprocesor byl doplněný dalšími moduly s programovatelnými časovači, podporou přímého přístupu do paměti (DMA), bitmapovými operacemi atd. Dalším podpůrným obvodem byl čip S-DD1, jenž podporoval práci s komprimovanými daty (data bylo nutné komprimovat kvůli omezené kapacitě cartridge). Vykreslování 3D grafiky bylo podporováno i čipem nazvaným Cx4, jenž obsahoval moduly pro matematické operace (včetně rotací). Zapomenout nesmíme ani na čipy DSP a DSP-2, které bylo možné použít pro implementaci bitmapových operací, konverzí, výpočtů s vektory dat atd.

Obrázek 9: Dungeon Master ve verzi pro SNES obsahoval čip DSP.

6. Čip MARIO aneb Nintendo Super FX

Jedním z nejznámějších podpůrných integrovaných obvodů, které vznikly pro herní konzoli SNES je čip Nintendo Super FX, který byl původně vyvíjen pod názvem MARIO (což byla poměrně násilně vytvořená zkratka ze sousloví „Mathematical, Argonaut, Rotation and I/O“). Tento čip vznikl společně s vývojem hry StarFox, jejíž herní prostředí bylo z velké části založené na vykreslování prostorových modelů složených z polygonů. Z tohoto důvodu bylo jedním z hlavních úkolů čipu Nintendo Super FX právě vykreslování polygonů s konstantním stínováním (flat shading), ovšem o jejich správné umístění do 3D scény se musel postarat programátor, který musel vyřešit jejich správnou rotaci, změnit barvu polygonu v závislosti na osvětlení atd. (tyto operace dnes dokáže provádět přímo GPU na grafickém akcelerátoru). Ani další pokročilejší efekty, například průhlednost či efekt mlhy, nebyly přímo tímto čipem podporovány (dnes se naopak běžně používají).

Obrázek 10: Hra Super Mario Bros – the Lost Levels je typickou ukázkou 2D hry masivně používající sprity.

Odkazy na další informační zdroje o čipu Nintendo Super FX:

  1. MyMedia Games Network Retrospective – Nintendo Super FX chip
    http://psp.mmgn.com/News/MyMedia-Games-Network-Retrospe-G6W
  2. Wikipedia: Super FX
    http://en.wikipedia.org/wiki/Super_FX

Obrázek 11: Hra Super Mario World 2: Yoshi's Island využívající možností čipu Nintendo Super FX.

7. Podpora pro akceleraci vykreslování prostorových (3D) objektů čipem Super FX

Čip Super FX byl založen na mikroprocesoru s architekturou RISC, jenž byl taktovaný hodinovým signálem o frekvenci 21 MHz. Ovšem v první verzi tohoto čipu byla hodinová frekvence interně dělena dvěma na 10,5 MHz, a teprve druhá verze Super FX II dokázala pracovat na plné frekvenci 21 MHz. Interně se jednalo o 16bitový procesor obsahující šestnáct pracovních registrů. Data bylo možné přenášet do paměti RAM rychlostí až 1MB za sekundu, což společně s hodinovou frekvencí 10,5/21 MHz omezovalo celkový počet a velikost vykreslovaných polygonů na několik set až jednotky tisíc. To sice může z dnešního pohledu vypadat jako směšná vykreslovací rychlost, ale na začátku devadesátých let to bylo s ohledem na rozlišení obrazovky dostačující. Celá dvourozměrná či prostorová scéna se vykreslovala do framebufferu vytvořeného v paměti RAM umístěné vedle čipu Super FX. Aby se však scéna skutečně zobrazila, musel se obsah framebufferu přenést s využitím přímého přístupu do paměti (DMA) do video paměti konzole. Toto řešení sice nevypadá příliš elegantně, ale bylo funkční a nevyžadovalo změny v interním zapojení SNESu.

Obrázek 12: Hra Super Mario World 2: Yoshi's Island využívající možností čipu Nintendo Super FX.

8. Podpora pro akceleraci vykreslování 2D spritů čipem Super FX

Ve hře StarFox se s využitím 3D polygonů zobrazovaly například kosmické lodi, ovšem značná část menších předmětů byla zobrazována ve formě 2D spritů s proměnnou velikostí (docházelo ke zmenšování a/nebo zvětšování bitmapy se vzdáleností od pozorovatele a tím pádem i k simulaci perspektivy), což byla další funkce, kterou čip Nintendo Super FX podporoval. Na této funkci vlastně není nic překvapivého, když si uvědomíme, že velká část 3D her, zejména FPS (her viděných z pohledu hráče) původně kombinovala 3D prostředí s 2D sprity. Příkladem může být světoznámá hra Wolfenstein 3D či neméně známá hra Doom, kde se jak 3D scéna, tak i 2D sprity vykreslovaly programově. Možnost podpory práce s 2D sprity, kterou čip Nintendo Super FX programátorům nabízel, byla využita například v čistě dvourozměrné hře Super Mario World 2: Yoshi's Island, kde se Super FX staral o vykreslování spritů, závěrečných bossů (jejichž obrazy překračovaly běžnou velikost spritů) i pro podporu paralaxního scrollingu, tj. pro vytvoření pozadí z několika bitmap zobrazených přes sebe (s využitím průhledné barvy), přičemž každá bitmapa se pohybovala jinou rychlostí.

Obrázek 13: Wolfenstein 3D ve verzi pro počítače PC. Zatímco herní prostředí bylo tvořeno otexturovanými polygony, všechny předměty ve hře i všichni protivníci byli vykreslováni formou prostých 2D spritů, u nichž se pouze měnila jejich velikost v závislosti na vzdálenosti od pozorovatele.

bitcoin školení listopad 24

Čip Nintendo Super FX byl použit v několika hrách, zejména v již zmíněném herním titulu StarFox a dále pak ve hrách Stunt Race FX (v Japonsku prodáván pod jménem Wild Trax), ve hře Vortex a upravený čip Super FX 2 byl později dokonce použit pro portaci slavné hry Doom na konzoli SNES, i když zde musela být plocha obrazovky vyhrazená pro 3D pohled oproti PC verzi poněkud zmenšena – zde zvítězila hrubá výpočetní síla mikroprocesorů 80386 a 80486 nad sofistikovanějším řešením použitým v případě SNESu. Nicméně ani s nástupem další generace herních konzolí vybavených již skutečnými 3D akcelerátory nebyla technologie použitá v Super FX ztracena, protože základ tohoto čipu posloužil pro návrh uživatelsky modifikovatelných (zákaznických) mikroprocesorů s architekturou RISC, které byly určeny především pro vestavné systémy (zde má možnost konfigurace schopností mikroprocesoru uživatelem poměrně velký smysl s ohledem na celkovou cenu čipu, jeho energetické nároky atd.).

Obrázek 14: Sloupy, lustry, květina na pozadí, protivníci, střílející zbraň hlavního hrdiny – to vše je zde vykresleno formou 2D spritů.

9. Odkazy na Internetu

  1. Super NES Programming/Initialization Tutorial
    http://en.wikibooks.org/wi­ki/Super_NES_Programming/I­nitialization_Tutorial
  2. SNES Development sites
    http://www.snescentral.com/de­velopment.php
  3. Super NES Programming
    http://en.wikibooks.org/wi­ki/Super_NES_Programming
  4. Super Nintendo Development Wiki
    http://wiki.superfamicom.or­g/snes/show/HomePage
  5. 6502.org
    http://www.6502.org/
  6. The 6502/65C02/65C816 Instruction Set Decoded
    http://www.llx.com/~nparker/a2/op­codes.html
  7. 6502 Addressing Modes
    http://www.obelisk.demon.co­.uk/6502/addressing.html
  8. HuC6280 CPU
    http://shu.emuunlim.com/dow­nload/pcedocs/pce_cpu.html
  9. Hudson Soft HuC6280 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Hudson_Soft_HuC6280
  10. William D. Mensch jr.
    http://www.computerhallof­fame.org/index.php?option=com_con­tent&view=article&id=31&I­temid=4
  11. Bill Mensch
    http://en.wikipedia.org/wi­ki/Bill_Mensch
  12. SPC 700 Documentation
    http://emureview.ztnet.com/de­veloperscorner/SoundCPU/spc­.htm
  13. Super NES Programming/SPC700 reference
    http://en.wikibooks.org/wi­ki/Super_NES_Programming/SPC700_re­ference
  14. Mega Lo Mania
    http://www.mobygames.com/game/mega-lo-mania
  15. Mega Lo Mania
    http://en.wikipedia.org/wi­ki/Mega_Lo_Mania
  16. Cannon Fodder
    http://www.allgame.com/ga­me.php?id=739
  17. Cannon Fodder [European]
    http://www.allgame.com/ga­me.php?id=15717
  18. Retrospective: Cannon Fodder
    http://www.rockpapershotgun­.com/2007/11/11/retrospec­tive-cannon-fodder/
  19. Cannon Fodder
    http://en.wikipedia.org/wi­ki/Cannon_Fodder_(video_ga­me)
  20. BC Racers
    http://en.wikipedia.org/wi­ki/BC_Racers
  21. Desert Strike Advance
    http://www.ign.com/articles/2002/06/03/de­sert-strike-advance
  22. Three Strikes And You're Out
    http://www.eurogamer.net/ar­ticles/three-strikes-and-youre-out-article
  23. Head 2 Head: Desert Strike – SNES vs MegaDrive
    http://www.retrogamescollec­tor.com/head-2-head-desert-strike-snes-vs-megadrive/
  24. Desert Strike: Return to the Gulf
    http://en.wikipedia.org/wi­ki/Desert_Strike:_Return_to_the_Gulf
  25. The Chaos Engine (Soldiers of Fortune USA)
    http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine.htm
  26. The Chaos Engine series
    http://www.mobygames.com/game-group/chaos-engine-series
  27. The Chaos Engine
    http://en.wikipedia.org/wi­ki/Chaos_Engine
  28. The Chaos Engine 2
    http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine2.htm
  29. The Chaos Engine series
    http://www.mobygames.com/game-group/chaos-engine-series
  30. Moby Games: Speedball series
    http://www.mobygames.com/game-group/speedball-series
  31. Bitmap Brothers: Speedball (original)
    http://www.bitmap-brothers.co.uk/our-games/past/speedball.htm
  32. Bitmap Brothers: Speedball 2: Brutal Deluxe
    http://www.bitmap-brothers.co.uk/our-games/past/speedball2.htm
  33. Wikipedia: Speedball (video game)
    http://en.wikipedia.org/wi­ki/Speedball_(video_game)
  34. Golden Axe
    http://strategywiki.org/wi­ki/Golden_Axe
  35. Golden Axe (series)
    http://en.wikipedia.org/wi­ki/Golden_Axe_(series)
  36. Golden Axe II
    http://www.gamespot.com/golden-axe-ii/platform/genesis/
  37. Golden Axe II
    http://strategywiki.org/wi­ki/Golden_Axe_II
  38. Golden Axe III
    http://strategywiki.org/wi­ki/Golden_Axe_III
  39. Game Freaks 365: Sonic the Hedgehog 2
    http://gamefreaks365.com/re­view.php?artid=1631
  40. Sonic The Hedgehog 2 (GENESIS)
    http://web.archive.org/web/20070831062914/htt­p://sonic.neoseeker.com/so­nic_the_hedgehog2/GENESIS/pa­ges/release_dates_backgrou­nd3/
  41. Neoseeker: Sonic the Hedgehog 2 (16-bit)
    http://www.neoseeker.com/Ga­mes/Products/GENESIS/sonic_the_hed­gehog2/
  42. Wikipedia: Sonic the Hedgehog 2 (16-bit)
    http://en.wikipedia.org/wi­ki/Sonic_the_Hedgehog2_(16-bit)
  43. Gamespot: Disney's Aladdin
    http://www.gamespot.com/disneys-aladdin-in-nasiras-revenge/platform/ps/
  44. Moby Games: Disney's Aladdin
    http://www.mobygames.com/game/disneys-aladdin
  45. Internet Movie Database: Aladdin (I) (Video Game 1993)
    http://www.imdb.com/title/tt0204798/
  46. Wikipedia: Disney's Aladdin (video game)
    http://en.wikipedia.org/wi­ki/Disney's_Aladdin_(vide­o_game)
  47. Eric Chahi
    http://en.wikipedia.org/wi­ki/Eric_Chahi
  48. Wikipedia: Another World (video game)
    http://en.wikipedia.org/wi­ki/Another_World_(video_ga­me)
  49. SN76489 sound chip details
    http://web.inter.nl.net/u­sers/J.Kortink/home/articles/sn76489/
  50. SN76464 datasheet
    http://www.ic-on-line.cn/view_online.php?id=1106623&fi­le=0054%5Csn76494_409323.pdf
  51. Texas Instruments SN76489 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Texas_Instruments_SN76489
  52. SN76489
    http://www.smspower.org/De­velopment/SN76489?sid=ae16503f2fb18070f3f40f2af­56807f1
  53. YM2413 FM Operator Type-LL (OPLL) Application Manual
    http://www.smspower.org/ma­xim/Documents/YM2413Appli­cationManual?sid=28c370e1fcac51d57­74319979bf96f4c
  54. Programming the Sega MegaDrive
    http://darkdust.net/writin­gs/megadrive
  55. MegaDrive / SegaGenesis docs
    http://www.genny4ever.net/in­dex.php?page=docs
  56. IGN: Top 25 Consoles
    http://www.ign.com/top-25-consoles/13.html
  57. Sega Mega Drive
    http://sega.jp/archive/segahard/md/
  58. Sega Archives
    http://sega.jp/archive/segahard/
  59. Sega Genesis
    http://www.dmoz.org/Games/Vi­deo_Games/Console_Platfor­ms/Sega/Genesis/
  60. The Retro Gen Plays Genesis Games
    http://uk.gamespy.com/arti­cles/998/998637p1.html
  61. The Sega Mega Drive/Genesis
    http://www.captainwilliam­s.co.uk/sega/megadrive/me­gadrive.php
  62. Sega Game Gear 101: A Beginner's Guide
    http://www.racketboy.com/re­tro/sega/gamegear/sega-game-gear-101-a-beginners-guide
  63. SEGA GameGear | Marc's Realm
    http://darkdust.net/retro­gaming/gamegear
  64. Sega Master System Hardware
    http://www.smspower.org/De­velopment/Documents
  65. SMS/GG hardware notes
    http://www.smspower.org/u­ploads/Development/smstech-20021112.txt?sid=28c370e1fcac51d­5774319979bf96f4c
  66. Sega Master System Museum
    http://alexkidd.com/
  67. Jadeite's Sega Master System Museum
    http://rp_gamer.tripod.com/SMS/1.html
  68. Sega Master System (Wikipedia)
    http://en.wikipedia.org/wi­ki/Sega_Master_System
  69. Sega Card (Wikipedia)
    http://en.wikipedia.org/wi­ki/Sega_Card
  70. Sega Master System VDP documentation
    http://www.smspower.org/u­ploads/Development/msvdp-20021112.txt?sid=28c370e1fcac51d­5774319979bf96f4c
  71. bee – The Multi-Console Emulator
    http://www.thebeehive.ws/
  72. TurboGrafx-16 TurboExpress
    http://www.allgame.com/plat­form.php?id=17673
  73. HuC6280 CPU
    http://shu.emuunlim.com/dow­nload/pcedocs/pce_cpu.html
  74. Hudson Soft HuC6280 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Hudson_Soft_HuC6280
  75. TurboGrafx-16 (Wikipedia)
    http://en.wikipedia.org/wi­ki/TurboGrafx-16
  76. MagicEngine – TurboGrafx-16 emulator
    http://www.magicengine.com/
  77. Motorola 68000 CPU
    http://en.wikipedia.org/wiki/68000

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.