Historie vývoje počítačových her (48. část - multimediální herní konzole Commodore CDTV)

18. 10. 2012
Doba čtení: 27 minut

Sdílet

Dnes se budeme zabývat další herní konzolí čtvrté generace. Jedná se o multimediální herní konzoli nazvanou Commodore CDTV, která byla z velké části postavena na architektuře slavných počítačů Amiga. I přesto, že základem byly kvalitní čipy, nebyla CDTV komerčně tak úspěšná jako konkurenční Sega Genesis či SNES.

Obsah

1. Historie vývoje počítačových her (48. část – multimediální herní konzole Commodore CDTV)

2. Architektura mikropočítačů Amiga i herní konzole Commodore CDTV

3. OCS aneb Original Amiga Chipset

4. Čip Denise a základní grafické režimy OCS

5. ECS – Enhanced Chip Set

6. Syntéza hudby, pulzně kódová modulace (PCM) a pulzně šířková modulace (PWM)

7. Zvukový čip Paula

8. Stereo výstup a řízení hlasitosti

9. Odkazy na Internetu

1. Historie vývoje počítačových her (48. část – multimediální herní konzole Commodore CDTV)

V dnešní části seriálu o historii vývoje výpočetní techniky se začneme zabývat dalším typem herní konzole čtvrté generace. Touto herní konzolí je Commodore CDTV, což je zařízení postavené na architektuře slavných mikropočítačů Amiga, i když se ve skutečnosti v názvu CDTV jméno Amiga kupodivu nevyskytuje. Tato herní konzole se v mnoha ohledech odlišuje od většiny dalších konzolí čtvrté generace, a to především použitou architekturou. Asijské konzole společností SEGA (Sega Genesis) a Nintendo (SNES) byly z velké části založeny na filozofii starších osmibitových herních konzolí, což se týká především jejich grafického subsystému (pozadí složené z dlaždic + sprity) i subsystému zvukového (syntetizér + generátor šumu + podpora pro přehrávání samplů). V případě herní konzole CDTV je však architektura zcela odlišná, protože grafický subsystém používá planární grafiku (žádné dlaždice!) + sprity a zvukový subsystém je již založen jen čistě na přehrávání samplů (žádný syntetizér v čipu).

Obrázek 1: Amiga CDTV.

Multimediální herní konzole Commodore CDTV byla, podobně jako Amiga 3000 uvedena na trh v roce 1990. Mělo se jednat především o herní systém, čemuž odpovídá jak název výrobku, tak i jeho design v elegantním černém provedení. Původně byl tento počítač dokonce dodáván bez klávesnice, myši a disketové jednotky. I zde byl, stejně jako u předchozího modelu, použit čipset OCS a posléze ECS. Tento počítač byl osazen mikroprocesorem Motorola 68000 taktovaným na obligátních 7,14MHz (podobně jako ostatní základní modely počítačů Amiga), základní kapacita paměti RAM byla rovna jednomu megabajtu. Největším „tahákem“ měla být mechanika CD-ROM, která měla umožnit využívání multimediálních produktů, čímž se měl CDTV odlišit od konkurence. Ve skutečnosti však byl výsledkem jakýsi mix mezi počítačem (ale kdo chtěl počítač, koupil si například Amigu 500, která byla interně s CDTV srovnatelná), multimediálním centrem (to se však vůbec neujalo) a herní konzolí (zde ovšem vládla tvrdá konkurence asijských firem). Další problémovou částí CDTV byla starší verze operačního systému – podrobnosti o této problematice si však řekneme až příště.

Obrázek 2: Prvním komerčně dostupným počítačem z řady Amiga byla Amiga 1000, která začala být firmou Commodore prodávána již v roce 1985. V té době byl největším konkurentem Amig počítač Atari ST (zejména 520ST, později také 1040ST), částečně také Apple. Prodávané modely tohoto počítače byly osazeny 256 kB nebo 512 kB paměti Chip RAM, která byla teoreticky (omezení OCS) rozšiřitelná až na 32MB (Fast RAM).

2. Architektura mikropočítačů Amiga i herní konzole Commodore CDTV

Osobní počítače Commodore Amiga a tudíž i multimediální herní konzole Commodore CDTV, byly – především díky promyšlenému návrhu jejich architektury – mezi uživateli velmi oblíbené a s trochou nadsázky je možné říci, že se již v době své největší slávy staly legendami, podobně jako jejich největší rival – počítače řady Atari ST (při pohledu na historii vzniku obou zmíněných počítačových řad je však rivalita spíše úsměvná). Obliba mikropočítačů Amiga pramenila mj. i z toho, že jejich grafický subsystém byl založen na několika vzájemně spolupracujících čipech o vysoké integraci (VLSI), které mohly některé činnosti vykonávat souběžně s mikroprocesorem (řady Motorola 680×0). Díky rozdělení práce mezi více čipů bylo možné, aby i na počítačích vybavených relativně pomalým mikroprocesorem mohly být provozovány graficky poměrně náročné aplikace, například vyspělé hry, dema či programy pro editaci videa. Na druhou stranu však byl další vývoj těchto mikropočítačů a herních konzolí omezen snahou o udržení zpětné kompatibility – to se týkalo i způsobu ovládání všech dále zmíněných čipů, nejenom struktury paměti a/nebo instrukční sady mikroprocesoru.

Obrázek 3: Legendární počítač Amiga 500 obsahující čipset OCS a oblíbený mikroprocesor Motorola 68000, taktovaný na 7,14 MHz. V základní konfiguraci byl tento mikropočítač osazen již 512 KB paměti, jež byla rozšiřitelná na 32 MB (Fast RAM). Naproti tomu byl model Amiga 500 Plus osazen 1 MB s možností rozšíření Chip RAM na 2 MB a Fast RAM až na 32 MB (mezi oběma modely: 500 a 500+ byly i další konstrukční odlišnosti).

Společnost Commodore vytvořila (přesněji řečeno zpočátku zakoupila) poměrně velké množství modelů počítačů nesoucích ve svém jménu slovo Amiga. Tyto modely je mj. možné rozlišit i podle toho, jakou sadu čipů (čipset) tvůrci pro konstrukci daného modelu použili. První modely nabízené po roce 1985, především Amiga 1000 a taktéž slavná Amiga 500, byly vybaveny sadou čipů pojmenovanou OCS – Original Amiga Chipset. V roce 1990 se začaly prodávat modely vybavené novým čipsetem nazvaným ECS – Enhanced Chip Set a některé modely prodávané po roce 1992 (například Amiga 1200) obsahovaly čipset nazvaný AGA – Advanced Graphics Architecture. Zajímavé je, že všechny tři zmíněné čipsety podporovaly téměř výhradně grafické režimy založené na takzvaných bitových rovinách (bitplanes), což na jednu stranu umožnilo snadnou tvorbu určitých efektů, například paralelně se pohybujících pozadí (paralax scrolling) v některých hrách (asi nejznámějším příkladem je Shadow of the Beast), ovšem hry vyžadující přímou manipulaci s jednotlivými pixely („doomovky“) se v těchto režimech implementovaly složitěji.

pc81

Obrázek 4: Titulní obrazovka hry Shadow of the Beast využívá (v případě televizní normy NTSC) grafický režim s rozlišením 320×200 pixelů a 32 barev.

I to byl jeden z pravděpodobných důvodů, proč byly i tyto počítače nakonec překonány architektonicky mnohem jednoduššími PCčky. Ve skutečnosti však byly i pro Amigy později nabízeny vylepšené grafické karty s „klasickým“ framebufferem. Mezi známé grafické karty patří například Picasso. Konkrétně kartu Picasso 2 bylo možné použít například v modelech Amiga 2000, Amiga 3000 a Amiga 4000 – jedná se o modely vybavené Zorro II slotem. Tato grafická karta mohla obsahovat framebuffer o kapacitě 1 MB (levnější varianta) nebo 2 MB (dražší verze). V případě použití jednomegabajtové varianty byly podporovány například grafické režimy s rozlišením 640×480 pixelů a 24bitovou barevnou hloubkou či naopak režim o rozlišení 1600×1200 pixelů v šestnácti barvách. Přidání dalšího megabajtu paměti pro framebuffer umožnilo, aby se zvýšilo rozlišení plnobarevného grafického režimu na 800×600 pixelů a režim 1600×1200 používal místo šestnácti barev barev 256. Navíc tato grafická karta obsahovala i blitter a dokonce i možnost kombinovat video signál s výstupem z původního čipsetu, ovšem pouze v případě použití nižších (kompatibilních) řádkových frekvencí.

Obrázek 5: První část plošného spoje mikropočítače Amiga 500, na kterém můžeme vidět některé čipy náležící do Original Amiga Chipsetu.

V dalším textu se budeme zabývat především popisem OCS a částečně taktéž ECS, protože herní konzole Commodore CDTV byla původně postavena právě nad těmito čipovými sadami (původně OCS a posléze ECS).

Obrázek 6: Druhá část plošného spoje mikropočítače Amiga 500.

3. OCS aneb Original Amiga Chipset

Original Amiga Chipset, zkráceně též OCS, byl použit především v osobních počítačích Amiga 1000 (základní model), Amiga 500 (ekonomická varianta, která byla mezi uživateli velmi oblíbená, například i v našich zemích), Amiga 2000 („hi-end“ model), Amiga 2500 a Amiga 1500. Z technologického hlediska se jedná o velmi zajímavý čipset, při jehož návrhu bylo prvotním cílem jeho tvůrců dosáhnout co největšího odlehčení práce centrální procesorové jednotce – CPU. Tuto snahu lze snadno pochopit, protože použité procesory Motorola 68000 s taktovací frekvencí 7,14 MHz i přes velmi dobře navrženou (v několika ohledech ortogonální) instrukční sadu a třicetidvoubitovou architekturu zpočátku velkou rychlostí neoplývaly, což by se negativně projevilo například při nutnosti provádění všech grafických operací přímo mikroprocesorem. Neexistence podpůrných čipů byl mj. i jeden z nedostatků prvních verzí počítačů Apple Macintosh.

Obrázek 7: Osobní počítač Amiga 2000, který byl nabízen jako hi-end model společně s low-endovou řadou počítačů Amiga 500. Tomu odpovídá i vybavení Amiga 2000, zejména použití šestnáctibitové i osmibitové sběrnice ISA, na kterou bylo možné připojit přes přídavné karty například pevné disky, jednotky CD-ROM i další rozličná zařízení používaná například i u počítačů PC. Také se zde objevuje proprietární Zorro slot určený pro rozšiřující moduly.

Z tohoto důvodu pracují čipy použité v OCS do značné míry nezávisle na mikroprocesoru, který pouze provádí inicializaci všech operací a tyto operace následně probíhají samostatně, popřípadě s řízením přes přerušení. Original Amiga Chipset se skládal z více částí (čipů), které budou popsány v následujícím textu. Čip nazvaný Agnus byl určen především pro řízení přístupu do operační paměti (RAM), nazývané také Chip RAM. Při řízení přístupu jsou použity priority, takže Agnus zde působí podobně, jako arbitr u sběrnic. V tomto čipu jsou přítomny i dva funkční bloky nazvané Blitter a Copper, jejichž popis je uveden v navazujícím textu. Původní verze čipu Agnus dovedla adresovat maximálně 512KB paměti, později se začal používat vylepšený čip Fat Agnus, u nějž byl umožněn přístup až k jednomu megabajtu RAM. Další rozšíření adresovatelné paměti zvládaly až modernější čipy obsažené v později zavedených čipsetech ECS a AGA. Při přístupu do operační paměti se čipy a mikroprocesor střídaly podle jednotlivých cyklů. Základním rozlišením, na kterém se přístup do Chip RAM prováděl, byl sudý a lichý cyklus – odd/even cycle.

Obrázek 8: Amiga 3000 byla uvedena na trh v roce 1990 jako náhrada za stávající modely vyšší řady Amiga 1000 a Amiga 2000. Namísto čipsetu OCS se v tomto počítači objevuje nový čipset nazvaný ECS – Enhanced Chip Set. Také původní procesor Motorola 68000 byl nahrazen novějším modelem 68030, který se (kromě dalších vylepšení) navenek jevil jako plně třicetidvoubitový procesor, což se samozřejmě pozitivně projevilo na celkové rychlosti počítače.

4. Čip Denise a základní grafické režimy OCS

Druhým důležitým čipem použitým v OCS byl čip nazvaný Denise, jenž byl určen především pro řízení grafických režimů. Z technologického hlediska se jedná o velmi dobře navržený čip, jehož schopnosti byly dále rozvíjeny i v modernějších čipsetech (ECS a AGA) a některé jeho vlastnosti nejsou vlastně dodnes překonány – například se jedná o nezávislý scrolling (posuv) jednotlivých bitových rovin (bitplanů), čehož bylo možné využít například v některých typech her. Základní vlastností každého grafického řadiče jsou podporovaná rozlišení a počet současně zobrazitelných barev. Denise se může nacházet ve dvou základních režimech. Prvním je takzvaný režim lowres, jehož horizontální rozlišení je 320 pixelů, druhým je režim hires s horizontálním rozlišením 640 pixelů. Vertikální rozlišení bylo buď 200 řádků při použití televizní normy NTSC nebo 256 řádků v normě PAL. Pomocí prokládaného (interlaced) režimu se však toto rozlišení dalo zdvojnásobit, takže se používalo i 400 resp. 512 řádků se všemi přednostmi i zápory prokládaných režimů (upřímně řečeno zápory převažovaly, což bylo poznat především při dlouhodobější práci).

pc80

Obrázek 9: Hra Black Crypt využívající grafický režim EHB (Extra Half-Brite).

V následující tabulce jsou vypsány základní grafické režimy počítačů Amiga s čipsetem OCS:

Režim lowres hires
PAL, non-interlaced 320×256 640×256
PAL, interlaced 320×512 640×512
NTSC, non-interlaced 320×200 640×200
NTSC, interlaced 320×400 640×400
pc81

Obrázek 10: Obrázek, který je vykreslený v módu Extra Half-Brite.

Velmi zajímavé a pro počítače Amiga ve své podstatě i typické bylo rozdělení obrazové paměti. Denisa totiž pracuje striktně v módu planární bitmapové grafiky, což znamená, že barva jednoho pixelu je získána z obsahu přes sebe ležících bitových rovin (bitplanů), podobně jako je tomu například v šestnáctibarevných grafických režimech karet EGA a VGA. Počet barvových bitových rovin je měnitelný a pohybuje se od jedné do pěti, k dispozici je i šestá bitová rovina určená pro speciální účely. Konfigurace bitových rovin mohla být následující:

  • EHB – extra half-brite: pět bitových rovin je určeno pro specifikaci barvy pixelu (výběr z barvové palety), šestá bitová rovina modifikuje jeho světlost. Počet současně zobrazitelných barev je tedy (bez vlivu Copperu) roven 32/64 (podle chápání barvové palety). Tento grafický režim byl použit například i ve hře Black Crypt.
  • HAM – hold and modify: každý šestibitový pixel je rozdělen na dva řídicí bity a čtyři datové bity. Řídicími bity je určeno, zda se datovými bity přímo nastaví barva, nebo se modifikuje jedna ze tří barvových složek RGB. V tomto režimu je tak možné zobrazit až 4096 barev, což bylo neporovnatelné s počítači PC té doby (resp. s jejich grafickými kartami). Zvýšený počet barev se však negativně projevuje na rychlosti práce s bitmapami.
  • Dual playfield: jsou použity dvě relativně nezávislé pixmapy, přičemž každá se skládá ze tří bitových rovin. V každé pixmapě je možné zobrazit až osm barev.
pc81

Obrázek 11: Barvová paleta obrázku číslo 10. Povšimněte si, že prvních 32 barev se opakuje, ovšem se sníženou intenzitou.

Kromě třech výše uvedených grafických režimů tvořících vlastně „podklad“ pro vytváření obrazu na monitoru či televizoru, bylo možné pracovat až s osmi nezávisle vykreslovanými sprity, jejichž horizontální velikost byla rovna šestnácti pixelům a vertikální velikost byla ve své podstatě libovolná (vzdáleně je tento systém podobný spritům generovaným čipem GTIA na osmibitových počítačích Atari). Pixely ve spritech mohly nabývat jedné ze tří barev, „čtvrtou“ barvou byla průhlednost. Spojením dvojice spritů se dosáhlo zvýšení počtu barev na patnáct, šestnáctá hodnota byla opět rezervována pro průhlednost, tj. pro tu část spritu, přes který mohly prosvítat barvy pozadí. Spritů bylo možné zobrazit i větší množství, pokud se použil režim podobný režimu u osmibitových Commodorů či Atari, tj. změna horizontální pozice spritů během přerušení při zpětném běhu elektronového paprsku. Se sprity bylo možné provádět poměrně značné množství grafických efektů (především při znalosti interní funkce čipsetu).

pc81

Obrázek 12: Na tomto obrázku vykresleném s využitím módu HAM, je použito celkem 327 barev.

5. ECS – Enhanced Chip Set

Originální Amigácký čipset OCS, kterým jsme se prozatím zabývali, byl použit především v modelech Amiga 1000 (první prodávaný model), Amiga 500 (oblíbený „low-end“ model) a Amiga 2000 („hi-end“). V roce 1990 byl na trh uveden nový model Amiga 3000, který nahrazoval stávající „hi-end“ řadu, tj. částečně Amigu 1000 a především Amigu 2000. V obou zmíněných modelech se poprvé objevila vylepšená verze čipsetu nazvaná ECS neboli Enhanced Chip Set.

pc81

Obrázek 13: Na této obrazovce ze hry Chaos Engine je na systémech podporujících televizní normu NTSC využit grafický režim s rozlišením 320×200 pixelů s 32 barvami (tj. je využito pět bitových rovin).

ECS jsou použity vylepšené verze původních čipů. Například čip Agnus byl nahrazen obvodem Fat Agnus, jenž podporuje adresaci 2MB RAM. V čipu Fat Agnus je zabudovaný i vylepšený koprocesor Blitter, který dokáže přenášet bloky paměti větší než 1024×1024 pixelů. Čip Super Denise nahradil původní Denise. I zde došlo k rozšíření adresovatelné paměti, ale především se objevila podpora pro mnoho nových grafických režimů, především režimu Productivity s rozlišením 640×480 pixelů (bez použití prokládání) a SuperHires, jehož rozlišení bylo rovno 1280×200 pixelům (NTSC) resp. 1280×256 pixelům (PAL) a počet současně zobrazitelných barev dosahoval čtyř. Tyto režimy byly určeny především pro práci s desktopovými programy, například textovými procesory, u nichž nehrál nižší počet zobrazitelných barev tak velkou roli. Kromě toho se změnil i subsystém pro práci se sprity, které je možné v ECS posunout i mimo zobrazovanou oblast do okraje obrazovky (border).

pc81

Obrázek 14: Barvová paleta použitá při vykreslení obrázku #13.

Čipset ECS umožňuje, podobně jako tomu bylo i u originálního čipsetu OCS, měnit velké množství parametrů zobrazení. Například je možné volit mezi neprokládaným a prokládaným režimem (v prokládaném režimu se používá dvojnásobný počet obrazových řádků), nastavovat počet prázdných řádků na horním i spodním okraji obrazovky (blank lines), měnit počet skutečně zobrazených pixelů na každém obrazovém řádku (tj. zvětšovat či zmenšovat okraj) atd. V následující tabulce jsou vypsány některé typické grafické režimy určené pro různé video systémy – televizory pracující v normách PAL či NTSC, multifrekvenční monitory atd. Původní režimy podporované již čipsetem OCS jsou pro odlišení označeny hvězdičkou a režimy prokládané mají za svým názvem uvedenu zkratku „int.“ (interlace):

Video systém Jméno Rozlišení Počet barev Výška:šířka pixelu
* NTSC LowRes 320×200 2 – 32, EHB, HAM 1:1
* NTSC LowRes interlaced 320×400 2 – 32, EHB, HAM 2:1
* NTSC HiRes 640×200 2 – 16 1:2
* NTSC HiRes interlaced 640×400 2 – 16 1:1
* PAL LowRes 320×256 2 – 32, EHB, HAM 1:1
* PAL LowRes interlaced 320×512 2 – 32, EHB, HAM 2:1
* PAL HiRes 640×256 2 – 16 1:2
* PAL HiRes interlaced 640×512 2 – 16 1:1
NTSC (60Hz) Super-HiRes 1280×200 2 – 4 1:4
NTSC (60Hz) Super-HiRes int. 1280×400 2 – 4 1:2
PAL (50Hz) Super-HiRes 1280×256 2 – 4 1:4
PAL (50Hz) Super-HiRes int. 1280×512 2 – 4 1:2
Multiscan Productivity 640×480 2 – 4 1:1
Multiscan Productivity int. 640×960 2 – 4 1:2
A2024 NTSC 10Hz 1024×800 2 – 4 1:1
A2024 NTSC 15Hz 1024×800 2 – 4 1:1
A2024 PAL 10Hz 1024×1008 2 – 4 1:1
A2024 PAL 15Hz 1024×1008 2 – 4 1:1
Euro36 (36Hz) LowRes 320×200 2 – 32, EHB, HAM 1:1
Euro36 (36Hz) LowRes int. 320×400 2 – 32, EHB, HAM 2:1
Euro36 (36Hz) HiRes 640×200 2 – 16 1:2
Euro36 (36Hz) HiRes int. 640×400 2 – 16 1:1
Euro36 (36Hz) Super-HiRes 1280×200 2 – 4 1:4
Euro36 (36Hz) Super-HiRes int. 1280×400 2 – 4 1:2
Euro72 (72Hz) Productivity 640×480 2 – 4 1:1
Euro72 (72Hz) Productivity int. 640×960 2 – 4 1:1
Super72 (72Hz) HiRes 400×300 2 – 16 1:1
Super72 (72Hz) HiRes int. 400×600 2 – 16 1:2
Super72 (72Hz) Super-HiRes 800×300 2 – 4 2:1
Super72 (72Hz) Super-HiRes int. 800×600 2 – 4 1:1
pc81

Obrázek 15: Úvodní obrazovka Amigácké verze hry R-Type používá pouze čtyři bitové roviny, tj. maximálně šestnáct barev.

6. Syntéza hudby, pulzně kódová modulace (PCM) a pulzně šířková modulace (PWM)

Při popisu většiny herních konzolí, jimiž jsme se zabývali v předchozích částech tohoto seriálu, jsme se zmiňovali i o jejich zvukovém subsystému. Ten byl většinou založen na nějakém typu čipu určeného pro provádění zvukové syntézy z harmonického signálu vytvářeného buď bistabilním klopným obvodem, popř. generátorem šumu (ten byl u většiny zmiňovaných čipů založený na posuvném registru určité délky se zpětnou vazbou vybavenou většinou jedním hradlem XOR). Tyto signály se u některých modernějších herních konzolí tvarovaly pomocí nějaké obálky typu ADSR (Attack, Decay, Sustain, Release). U popisu dalších herních konzolí jsme si taktéž řekli, že obvod pro syntézu zvuku byl doplněn o další modul, jenž dokázal přehrávat zvukové vzorky: samply. Idea konstruktérů herních konzolí byla v oblasti zvukového výstupu zřejmá – zvuková syntéza je nenáročná na kapacitu paměti i na výkon mikroprocesoru a proto se použije pro přehrávání hudby, zatímco zvukové vzorky (samply) budou použity pro ostatní zvuky ve hře.

Obrázek 16: Pseudonáhodný signál generovaný čipem POKEY (jedná se o výsledek simulace práce poly-čítače, protože reálné čipy POKEY výstupní signál poněkud zkreslovaly, přičemž míra zkreslení závisela na frekvenci).

Na druhou stranu však nemusí být vždy snadné pouze s využitím výše zmíněných generátorů harmonických signálů či generátorů šumu přehrát všechny možné tóny a zvuky – problematická je například mluvená řeč či kvalitní zvuky perkusních nástrojů (ty je možné alespoň částečně nahradit právě generátorem šumu). Z tohoto důvodu se i autoři hudby v některých případech uchýlili k přehrávání zvuků uložených ve formě vzorků (samplů) metodou pulzně kódové modulace (PCM) či pulzně šířkové modulace (PWM). Přehrávání s využitím pulzně kódové modulace bylo na většině čipů zmíněných v předchozím odstavci omezeno na čtyřbitové či osmibitové vzorky. Alternativu k pulzně kódové modulaci představovala pulzně šířková modulace. Výsledkem aplikace této modulace na původní data uložená ve formě vzorků je signál s pouhými dvěma úrovněmi (tedy stále digitální signál), ovšem s mnohem vyšší frekvencí, než je frekvence vzorkovací.

Obrázek 17: Obdélníkový, trojúhelníkový a pilový signál vygenerovaný zvukovým čipem s rozlišením 256 úrovní signálu.

Při použití této modulace jsou ovšem nároky na výpočetní výkon mikroprocesoru či zvukového čipu a přesné časování při přehrávání ještě vyšší než v případě PCM. Výhodou PWM je však to, že se tvůrci hudby nemuseli omezovat pouze na čtyřbitové či osmibitové vzorky. Příkladem může být hudba vytvořená pro původní osmibitový domácí počítač ZX Spectrum (48k) s jednobitovým zvukovým výstupem (beeper) či hudba pro PC Speaker (zde se taktéž jedná o reproduktor připojený na dvoustavový – binární – výstup). Na tomto místě je vhodné uvést, že se PWM používala i v některých přehrávačích audio CD, protože jednobitový převodník použitý v PWM má oproti šestnáctibitovému D/A převodníku použitému při PCM několik výhod – například nedochází ke zkreslení zvuku v případě, že se jednotlivé tranzistory v D/A převodníku zapínají s různým zpožděním, do jisté míry se odstraňuje nelinearita výstupního zesilovače (ten tedy může mít odlišné zapojení a přitom i větší výstupní výkon) apod.

Obrázek 18: Obdélníkový, trojúhelníkový a pilový signál vygenerovaný zvukovým čipem s rozlišením 16 úrovní signálu (při výpočtech průběhu signálu jsou použity čtyři bity a D/A převodník je taktéž čtyřbitový). „Schody“ do generovaného zvuku přináší vyšší harmonické frekvence, čímž je ovlivněna barva výsledného tónu.

7. Zvukový čip Paula

Konstruktéři mikropočítačů Amiga, na nichž je multimediální herní konzole Commodore CDTV postavena, se vydali poněkud odlišnou cestou než mnozí další výrobci domácích a osobních počítačů i herních konzolí. Namísto návrhu či použití již hotového zvukového čipu s různými více či méně sofistikovanými generátory signálů, tvarovačů ADSR obálky a analogovými filtry navrhli čip nazvaný Paula (číselné označení 8364) určený převážně k mixování a přehrávání zvuků uložených v operační paměti počítače ve formě číslicových vzorků (samplů). Paula podporovala souběžné přehrávání čtyř hlasů, každý s osmibitovým rozlišením (počet reprezentovatelných úrovní je tedy roven 256, což představuje při použití lineárního D/A převodníku dynamický rozsah přibližně 48 dB). Zvukové vzorky sice zabírají poměrně velké množství operační paměti – například jednosekundový zvuk vzorkovaný s frekvencí 22050 Hz a osmibitovým rozlišením obsadí cca 21,5 kB RAM – ovšem již první Amigy byly osazeny 256 kB či 512 kB operační paměti a při vhodném způsobu uložení hudby byla velikost skutečně obsazené paměti pro celou hudební skladbu poměrně malá.

Obrázek 19: Sinusový signál vzorkovaný s osmibitovým rozlišením (256 úrovní) a tentýž signál vzorkovaný s rozlišením čtyřbitovým (16 úrovní).

Aby nebyl mikroprocesor mikropočítače při přehrávání zvuků příliš zatížený jejich neustálým kopírováním, bylo možné jednotlivé vzorky přenášet z operační paměti do čipu Paula pomocí DMA, neboli přímého přístupu do operační paměti (Direct Memory Access). Zvukový čip Paula existoval v několika verzích (některé verze se navíc vyráběly v různých pouzdrech), které jsou vypsány v následující tabulce:

Označení čipu Rozlišující kód Použito v počítači
Paula 8364 R4 A1000
Paula 8364 R7 252127–02 A3000, AA3000
Paula 8364 R7 391077–01 A600, A4000

Obrázek 20: Zvukový čip Paula R7 v pouzdře DIL.

8. Stereo výstup a řízení hlasitosti

Zvukový čip Paula podporoval ve standardním režimu čtyři zvukové kanály se stereo výstupem, přičemž první dva kanály byly přiváděny do levého reproduktoru a další dva kanály do reproduktoru pravého. Toto striktní oddělení kanálů je sice akceptovatelné pro výstup na reprobedny, ale při poslechu ve sluchátkách (kde nedochází k téměř žádným interferencím) je vhodnější provést externí „promíchání“ všech kanálů s poměrem od 30% do 65%. Toto míchání lze například navolit i v emulátorech počítačů Amiga, provádí ho i mnohé přehrávače hudebních modulů.

Obrázek 21: Další varianta zvukového čipu Paula R7.

ict ve školství 24

Vzorkovací frekvence každého zvukového kanálu mohla dosahovat až 28867 Hz, což je omezení dané originálním čipsetem (OCS) a způsobem práce s pamětí při generování obrazu (pro každý kanál je možné zvolit odlišnou frekvenci). Rozlišení vzorků je osm bitů, přičemž pro jejich uložení byl použit dvojkový doplněk (střední hodnota je rovna nule, nikoli 127). Navíc bylo možné pro každý kanál nastavit hlasitost pomocí šestice bitů, což, jak si řekneme v následující části tohoto seriálu, může být využito pro zvýšení počtu bitů ve vzorcích/samplech z původních osmi na čtrnáct. Důležité je, že jak o načítání jednotlivých vzorků z operační paměti, tak i o jejich mixování, se z velké míry postaral přímo čip Paula, tj. pro tuto činnost nebylo zapotřebí používat mikroprocesor.

Obrázek 22: Hudba byla většinou ukládána ve formě takzvaných modulů (mod), v nichž se (velmi zjednodušeně řečeno) ukládaly zvlášť samply hudebních nástrojů a zvlášť seznam vzorků, které se měly v každém ze čtyř kanálů přehrávat.

9. Odkazy na Internetu

  1. Commodore CDTV
    http://en.wikipedia.org/wi­ki/Commodore_CDTV
  2. Amiga
    http://en.wikipedia.org/wiki/Amiga
  3. Picasso 2
    http://www.iol.ie/~ecarro­ll/picasso2.html
  4. Hold-And-Modify
    http://en.wikipedia.org/wi­ki/Amiga_Hold-And-Modify
  5. Amiga Halfbrite mode
    http://en.wikipedia.org/wi­ki/Amiga_Hold-And-Modify
  6. HAM8 Explained
    http://www.amigans.net/mo­dules/AMS/article.php?sto­ryid=22
  7. Amiga FAQ (Frequently asked questions) (Part 1 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part1/
  8. Amiga FAQ (Frequently asked questions) (Part 2 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part2/
  9. Amiga FAQ (Frequently asked questions) (Part 3 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part3/
  10. Amiga FAQ (Frequently asked questions) (Part 4 of 4)
    http://www.faqs.org/faqs/a­miga/introduction/part4/
  11. Amiga Coding Wiki
    http://www.amigacoding.com/in­dex.php/Main_Page
  12. Amiga screen
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node0061.html
  13. Amiga HAM mode
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node008F.html
  14. Copper WAIT instruction
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node004B.html
  15. Copper MOVE instruction
    http://amigadev.elowar.com/re­ad/ADCD2.1/Hardware_Manual_gu­ide/node004A.html
  16. GalaxSIM: Solutions for Digital Living
    http://www.amiga.com/
  17. Denise Pin Assignment
    http://www.ntrautanen.fi/com­puters/hardware/misc/deni­se.htm
  18. Custom Chips: Paula
    http://www.amiga-hardware.com/showhardware­.cgi?HARDID=1460
  19. Big Book of Amiga Hardware
    http://www.amiga-resistance.info/bboahfaq/
  20. Amiga Hardware Database
    http://amiga.resource.cx/
  21. ExoticA
    http://www.exotica.org.uk/wi­ki/Main_Page
  22. The absolute basics of Amiga audio
    http://www.sufo.estates.co­.uk/amiga/amimus.html
  23. Wikipedia: Tracker
    http://en.wikipedia.org/wiki/Tracker
  24. Wikipedia: Trackers
    http://en.wikipedia.org/wiki/Trackers
  25. Ultimate Soundtracker
    http://en.wikipedia.org/wi­ki/Ultimate_Soundtracker
  26. Protracker
    http://en.wikipedia.org/wi­ki/ProTracker
  27. Impulse Tracker
    http://en.wikipedia.org/wi­ki/Impulse_Tracker
  28. Scream Tracker
    http://en.wikipedia.org/wi­ki/ScreamTracker
  29. MikMod for Java
    http://jmikmod.berlios.de/
  30. List of audio trackers
    http://en.wikipedia.org/wi­ki/List_of_audio_trackers
  31. Wikipedia: Module File
    http://en.wikipedia.org/wi­ki/Module_file
  32. Wikipedia: Chiptune
    http://en.wikipedia.org/wiki/Chiptune
  33. Amiga Original chipset
    http://www.princeton.edu/~acha­ney/tmve/wiki100k/docs/Ami­ga_Original_chipset.html
  34. The Final Fantasy
    http://www.thefinalfantasy.com/
  35. Final Fantasy: Mystic Quest
    http://www.gamefaqs.com/snes/532476-final-fantasy-mystic-quest
  36. Book:Final Fantasy series
    http://en.wikipedia.org/wi­ki/Book:Final_Fantasy_seri­es
  37. The World of Final Fantasy
    http://www.mobygames.com/fe­atured_article/feature,18/sec­tion,114/
  38. Final Fantasy Style
    http://www.mobygames.com/fe­atured_article/feature,18/sec­tion,116/
  39. List of Final Fantasy video games
    http://en.wikipedia.org/wi­ki/List_of_Final_Fantasy_vi­deo_games
  40. SQUARE ENIX CO.
    http://www.square-enix.com/
  41. Square Enix : Corporate history
    http://www.square-enix.com/jp/company/e/history/
  42. The History of Computer Role-Playing Games Part 1: The Early Years (1980–1983)
    http://www.gamasutra.com/fe­atures/20070223a/barton01­.shtml
  43. The History of Computer Role-Playing Games Part 2: The Golden Age(1985–1993)
    http://www.gamasutra.com/fe­atures/20070223b/barton_pfv­.htm
  44. Dungeon Master – Return To Chaos
    Window port of DM
  45. Dungeon Master (video game)
    http://en.wikipedia.org/wi­ki/Dungeon_Master_(video_ga­me)
  46. Dungeon Master Encyclopaedia
    http://dmweb.free.fr/
  47. Dungeon Master Overview
    http://dmweb.free.fr/?q=node/247
  48. Chaos Strikes Back Overview
    http://dmweb.free.fr/?q=node/249
  49. Dungeon Master II Overview
    http://dmweb.free.fr/?q=node/250
  50. Dungeon Master – Return To Chaos
    http://www.ragingmole.com/RTC/
  51. Dungeon Master Speed Run in 20 minutes! Part 1/2
    http://www.youtube.com/wat­ch?v=Ho5E05Bi3bU
  52. Dungeon Master Speed Run in 20 minutes! Part 2/2
    http://www.youtube.com/wat­ch?v=Fpht4dWOnGE
  53. Dungeon Master CZ
    http://dm.zpc.cz/
  54. Dungeon Master
    http://rpg.yin.cz/d/dungeon-master/
  55. Return to Chaos (CZ info)
    http://dm.zpc.cz/?sekce=rtcinfo
  56. Dungeon Master – kouzla (CZ)
    http://dm.zpc.cz/?sekce=dmkouzla
  57. Dungeon Master Java (CZ info)
    http://dm.zpc.cz/?sekce=dmjavainfo
  58. Dungeon Master Java (CZ novinky a download)
    http://dm.zpc.cz/?sekce=dmja­vadownload
  59. Best of Old Games: Dungeon Master
    http://www.bestoldgames.net/stare-hry/dungeon-master.php
  60. Muzeum: Dungeon Master – klasika všech klasik
    http://www.doupe.cz/defau­lt.aspx?article=124596
  61. Návody – Dungeon Master 1
    http://www.abcgames.cz/?p=na­vody_zobraz&id=1307
  62. Super NES Programming/Initialization Tutorial
    http://en.wikibooks.org/wi­ki/Super_NES_Programming/I­nitialization_Tutorial
  63. SNES Development sites
    http://www.snescentral.com/de­velopment.php
  64. Super NES Programming
    http://en.wikibooks.org/wi­ki/Super_NES_Programming
  65. Super Nintendo Development Wiki
    http://wiki.superfamicom.or­g/snes/show/HomePage
  66. 6502.org
    http://www.6502.org/
  67. The 6502/65C02/65C816 Instruction Set Decoded
    http://www.llx.com/~nparker/a2/op­codes.html
  68. 6502 Addressing Modes
    http://www.obelisk.demon.co­.uk/6502/addressing.html
  69. HuC6280 CPU
    http://shu.emuunlim.com/dow­nload/pcedocs/pce_cpu.html
  70. Hudson Soft HuC6280 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Hudson_Soft_HuC6280
  71. William D. Mensch jr.
    http://www.computerhallof­fame.org/index.php?option=com_con­tent&view=article&id=31&I­temid=4
  72. Bill Mensch
    http://en.wikipedia.org/wi­ki/Bill_Mensch
  73. SPC 700 Documentation
    http://emureview.ztnet.com/de­veloperscorner/SoundCPU/spc­.htm
  74. Super NES Programming/SPC700 reference
    http://en.wikibooks.org/wi­ki/Super_NES_Programming/SPC700_re­ference
  75. Mega Lo Mania
    http://www.mobygames.com/game/mega-lo-mania
  76. Mega Lo Mania
    http://en.wikipedia.org/wi­ki/Mega_Lo_Mania
  77. Cannon Fodder
    http://www.allgame.com/ga­me.php?id=739
  78. Cannon Fodder [European]
    http://www.allgame.com/ga­me.php?id=15717
  79. Retrospective: Cannon Fodder
    http://www.rockpapershotgun­.com/2007/11/11/retrospec­tive-cannon-fodder/
  80. Cannon Fodder
    http://en.wikipedia.org/wi­ki/Cannon_Fodder_(video_ga­me)
  81. BC Racers
    http://en.wikipedia.org/wi­ki/BC_Racers
  82. Desert Strike Advance
    http://www.ign.com/articles/2002/06/03/de­sert-strike-advance
  83. Three Strikes And You're Out
    http://www.eurogamer.net/ar­ticles/three-strikes-and-youre-out-article
  84. Head 2 Head: Desert Strike – SNES vs MegaDrive
    http://www.retrogamescollec­tor.com/head-2-head-desert-strike-snes-vs-megadrive/
  85. Desert Strike: Return to the Gulf
    http://en.wikipedia.org/wi­ki/Desert_Strike:_Return_to_the_Gulf
  86. The Chaos Engine (Soldiers of Fortune USA)
    http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine.htm
  87. The Chaos Engine series
    http://www.mobygames.com/game-group/chaos-engine-series
  88. The Chaos Engine
    http://en.wikipedia.org/wi­ki/Chaos_Engine
  89. The Chaos Engine 2
    http://www.bitmap-brothers.co.uk/our-games/past/chaos-engine2.htm
  90. The Chaos Engine series
    http://www.mobygames.com/game-group/chaos-engine-series
  91. Moby Games: Speedball series
    http://www.mobygames.com/game-group/speedball-series
  92. Bitmap Brothers: Speedball (original)
    http://www.bitmap-brothers.co.uk/our-games/past/speedball.htm
  93. Bitmap Brothers: Speedball 2: Brutal Deluxe
    http://www.bitmap-brothers.co.uk/our-games/past/speedball2.htm
  94. Wikipedia: Speedball (video game)
    http://en.wikipedia.org/wi­ki/Speedball_(video_game)
  95. Golden Axe
    http://strategywiki.org/wi­ki/Golden_Axe
  96. Golden Axe (series)
    http://en.wikipedia.org/wi­ki/Golden_Axe_(series)
  97. Golden Axe II
    http://www.gamespot.com/golden-axe-ii/platform/genesis/
  98. Golden Axe II
    http://strategywiki.org/wi­ki/Golden_Axe_II
  99. Golden Axe III
    http://strategywiki.org/wi­ki/Golden_Axe_III
  100. Game Freaks 365: Sonic the Hedgehog 2
    http://gamefreaks365.com/re­view.php?artid=1631
  101. 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/
  102. Neoseeker: Sonic the Hedgehog 2 (16-bit)
    http://www.neoseeker.com/Ga­mes/Products/GENESIS/sonic_the_hed­gehog2/
  103. Wikipedia: Sonic the Hedgehog 2 (16-bit)
    http://en.wikipedia.org/wi­ki/Sonic_the_Hedgehog2_(16-bit)
  104. Gamespot: Disney's Aladdin
    http://www.gamespot.com/disneys-aladdin-in-nasiras-revenge/platform/ps/
  105. Moby Games: Disney's Aladdin
    http://www.mobygames.com/game/disneys-aladdin
  106. Internet Movie Database: Aladdin (I) (Video Game 1993)
    http://www.imdb.com/title/tt0204798/
  107. Wikipedia: Disney's Aladdin (video game)
    http://en.wikipedia.org/wi­ki/Disney's_Aladdin_(vide­o_game)
  108. Eric Chahi
    http://en.wikipedia.org/wi­ki/Eric_Chahi
  109. Wikipedia: Another World (video game)
    http://en.wikipedia.org/wi­ki/Another_World_(video_ga­me)
  110. SN76489 sound chip details
    http://web.inter.nl.net/u­sers/J.Kortink/home/articles/sn76489/
  111. SN76464 datasheet
    http://www.ic-on-line.cn/view_online.php?id=1106623&fi­le=0054%5Csn76494_409323.pdf
  112. Texas Instruments SN76489 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Texas_Instruments_SN76489
  113. SN76489
    http://www.smspower.org/De­velopment/SN76489?sid=ae16503f2fb18070f3f40f2af­56807f1
  114. YM2413 FM Operator Type-LL (OPLL) Application Manual
    http://www.smspower.org/ma­xim/Documents/YM2413Appli­cationManual?sid=28c370e1fcac51d57­74319979bf96f4c
  115. Programming the Sega MegaDrive
    http://darkdust.net/writin­gs/megadrive
  116. MegaDrive / SegaGenesis docs
    http://www.genny4ever.net/in­dex.php?page=docs
  117. IGN: Top 25 Consoles
    http://www.ign.com/top-25-consoles/13.html
  118. Sega Mega Drive
    http://sega.jp/archive/segahard/md/
  119. Sega Archives
    http://sega.jp/archive/segahard/
  120. Sega Genesis
    http://www.dmoz.org/Games/Vi­deo_Games/Console_Platfor­ms/Sega/Genesis/
  121. The Retro Gen Plays Genesis Games
    http://uk.gamespy.com/arti­cles/998/998637p1.html
  122. The Sega Mega Drive/Genesis
    http://www.captainwilliam­s.co.uk/sega/megadrive/me­gadrive.php
  123. Sega Game Gear 101: A Beginner's Guide
    http://www.racketboy.com/re­tro/sega/gamegear/sega-game-gear-101-a-beginners-guide
  124. SEGA GameGear | Marc's Realm
    http://darkdust.net/retro­gaming/gamegear
  125. Sega Master System Hardware
    http://www.smspower.org/De­velopment/Documents
  126. SMS/GG hardware notes
    http://www.smspower.org/u­ploads/Development/smstech-20021112.txt?sid=28c370e1fcac51d­5774319979bf96f4c
  127. Sega Master System Museum
    http://alexkidd.com/
  128. Jadeite's Sega Master System Museum
    http://rp_gamer.tripod.com/SMS/1.html
  129. Sega Master System (Wikipedia)
    http://en.wikipedia.org/wi­ki/Sega_Master_System
  130. Sega Card (Wikipedia)
    http://en.wikipedia.org/wi­ki/Sega_Card
  131. Sega Master System VDP documentation
    http://www.smspower.org/u­ploads/Development/msvdp-20021112.txt?sid=28c370e1fcac51d­5774319979bf96f4c
  132. bee – The Multi-Console Emulator
    http://www.thebeehive.ws/
  133. TurboGrafx-16 TurboExpress
    http://www.allgame.com/plat­form.php?id=17673
  134. HuC6280 CPU
    http://shu.emuunlim.com/dow­nload/pcedocs/pce_cpu.html
  135. Hudson Soft HuC6280 (Wikipedia)
    http://en.wikipedia.org/wi­ki/Hudson_Soft_HuC6280
  136. TurboGrafx-16 (Wikipedia)
    http://en.wikipedia.org/wi­ki/TurboGrafx-16
  137. MagicEngine – TurboGrafx-16 emulator
    http://www.magicengine.com/
  138. Motorola 68000 CPU
    http://en.wikipedia.org/wiki/68000
  139. Motorola 68008
    http://en.wikipedia.org/wi­ki/Motorola_68008
  140. Motorola 68020
    http://en.wikipedia.org/wi­ki/Motorola_68020
  141. Motorola 68030
    http://en.wikipedia.org/wi­ki/Motorola_68030

Autor článku

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