Obsah
3. Nová rozlišení podporovaná Enhanced Chip Setem
4. Čipset AGA – Advanced Graphics Architecture
5. Nová rozlišení podporovaná čipsetem AGA
7. Grafické karty dalších výrobců
1. Práce se sprity
V předchozí části tohoto seriálu jsme si popsali grafické režimy čipu Denise použitého v originálním Amigáckém čipsetu, včetně režimů EHB (Extra Half-Brite) a HAM (Hold and Modify). Také jsme si řekli, jakou úlohu měly koprocesory Copper a Blitter (nejenom) při zobrazování grafiky. Prozatím jsme se však nevěnovali další důležité vlastnosti Amigáckého čipsetu – možnostem zobrazování spritů, tj. grafických objektů umístěných v samostatné oblasti paměti, mimo vlastní framebuffer, s nimiž je možné pohybovat a získávat informace o jejich vzájemných kolizích, popř. kolizích spritu s pozadím (obrázkem uloženým ve framebufferu). Podpora pro práci se sprity se začala ve větší míře objevovat u některých osmibitových domácích počítačů, například osmibitových Atari i legendárního Commodore C64. Sprity se používaly především ve hrách, například pro vykreslení hráče či protihráčů, ale i v dalších aplikacích zaměřených na počítačovou grafiku.
![pc82](https://i.iinfo.cz/images/617/pc82-1.png)
Obrázek 1: Prakticky všechny pohyblivé objekty v této osmibitové hře (hráč, papoušek…) jsou tvořeny pomocí spritů. Mimochodem, jedná se o hru BC's Quest for Tires známé firmy Sierra On-line.
Velká část grafických subsystémů podporujících práci se sprity (čip GTIA u osmibitových Atari, čip VIC u Commodore C64 apod.) taktéž obsahovala takzvané kolizní registry, do kterých se automaticky ukládaly příznaky překryvu pozadí se sprity nebo mezi několika sprity navzájem. Díky tomu se při práci s pohyblivými obrazy předmětů nemusely provádět zdlouhavé testy mezi všemi zobrazovanými pixely. Originální Amigácký čipset práci se sprity, podobně jako výše zmíněné osmibitové domácí počítače, taktéž podporoval. Pracovat bylo možné s osmi sprity (pro každý sprite byl vyhrazen samostatný DMA kanál), jejichž horizontální velikost byla rovna šestnácti pixelům a vertikální velikost byla ve své podstatě libovolná. Skutečná velikost pixelů byla nezávislá na nastaveném grafickém režimu a z něj odvozených velikostí pixelů, protože horizontální velikost pixelů u spritů odpovídala 1/320 šířky obrazovky a vertikální velikost buď 1/200 (NTSC) nebo 1/256 (PAL) její výšky. Pixely ve spritech, z nichž každý byl reprezentován dvojicí bitů, mohly být obarveny jednou ze tří barev, „čtvrtou“ barvou byla průhlednost (díky tomu mohly mít pixely při zobrazení libovolný tvar). 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ý prosvítá pozadí.
![pc82](https://i.iinfo.cz/images/617/pc82-2.png)
Obrázek 2: V této osmibitové hře (Ghost Chaser) jsou pohyblivé předměty taktéž tvořeny pomocí spritů, takže mikroprocesor nemusí při jejich animaci provádět zdlouhavé blokové přenosy dat.
Díky jednoduchému triku známému již z počítačů Commodore C64 či osmibitových Atari, se mohl počet současně zobrazených spritů zvýšit – postačilo měnit horizontální pozici spritů na zvoleném obrazovém řádku spolu s počáteční adresou spritu v paměti, například během přerušení při zpětném běhu elektronového paprsku. Pro tento účel bylo možné využít minule popsaný koprocesor Copper, takže mikroprocesor nemusel být těmito operacemi vůbec zatížený. Prakticky jediným omezením při práci se sprity na počítačích Amiga je tak zobrazení osmi spritů na jednom obrazovém řádku (i to však lze obejít), poněkud složitější práce s kolizními registry při zvýšení počtu spritů a taktéž to, že rastrová data představující všechny sprity musela být umístěna v prvním megabajtu paměti (toto omezení platí především pro originální čipset, protože například dále popsané čipsety ECS či AGA již dokáží adresovat větší rozsah paměti).
![pc82](https://i.iinfo.cz/images/617/pc82-3.png)
Obrázek 3: Obrazovka osmibitového počítače Commodore C64 s velkým množstvím spritů, při jejichž zobrazování se využil trik popsaný v předchozím odstavci.
2. ECS – Enhanced Chip Set
Originální Amigácký čipset OCS, kterým jsme se prozatím zabývali, byl použit, jak jsme si již řekli v předchozích dvou částech tohoto seriálu, především v modelech Amiga 1000 (první prodávaný model), Amiga 500 („low-end“) 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. Další počítač firmy Commodore – Amiga CDTV – byl, podobně jako Amiga 3000 uveden na trh v roce 1990. Mělo se jednat zejména o herní systém, čemuž odpovídá jak název výrobku, tak i jeho design (především černá varianta). Původně byl tento počítač dokonce dodáván bez klávesnice, myši a disketové jednotky, zato ovšem s mechanikou CD-ROM, což bylo na počátku devadesátých let ještě poměrně neobvyklé. V obou zmíněných modelech se poprvé objevila vylepšená verze čipsetu nazvaná ECS neboli Enhanced Chip Set.
![pc82](https://i.iinfo.cz/images/617/pc82-4-prev.jpg)
Obrázek 4: Osobní mikropočítač Amiga 3000.
V 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).
![pc82](https://i.iinfo.cz/images/617/pc82-5-prev.jpg)
Obrázek 5: Herní systém Amiga CDTV se samozřejmě mohl použít i jako plnohodnotný osobní počítač.
3. Nová rozlišení podporovaná Enhanced Chip Setem
Č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.“:
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 |
![pc82](https://i.iinfo.cz/images/617/pc82-6.png)
Obrázek 6: Screenshot ze hry Shadow of the Beast, v níž bylo využito velkého množství grafických triků podporovaných Amigáckým čipsetem.
4. Čipset AGA – Advanced Graphics Architecture
Amiga 1200 (následovník slavné Amigy 500), která byla na trh uvedena v roce 1992, obsahovala zbrusu nový čipset označovaný zkratkou AGA neboli Advanced Graphics Architecture. V některých zemích se též můžeme setkat s označením AA, což je zkratka od Advanced Amiga. Mimochodem, právě u Amigy 1200 došlo k celé řadě dalších vylepšení. Byl použit procesor Motorola 68020 taktovaný již na 14,28MHz (dvojnásobná frekvence oproti předešlým modelům), základní kapacita operační paměti se zvýšila na 2MB a dokonce byl dodáván slot PCMCIA, přes nějž se daly připojovat paměťové karty, modemy, síťové karty apod. Taktéž Amiga 4000 obsahovala, podobně jako výše popisovaný model Amiga 1200, čipset AGA. Tento model počítače měl sloužit jako nástupce Amigy 2000 a Amigy 3000. Svým celkovým pojetím se firma Commodore snažila s tímto modelem přiblížit ke klasickým počítačům PC (popř. grafickým stanicím), čemuž odpovídá i zabudování IDE řadiče a existence „tower“ verze (viz fotografie).
![pc82](https://i.iinfo.cz/images/617/pc82-7-prev.jpg)
Obrázek 7: Počítač Amiga 1200.
Čipset Advanced Graphics Architecture nově podporuje grafické režimy s 256 barvami (8 bitplanů – bitových rovin), čtyřiadvacetibitové barvy v režimu HAM8 (teoreticky lze v tomto režimu zobrazit několik set tisíc barevných odstínů, což ale v reálných režimech samozřejmě není možné, protože neobsahují tak velké množství pixelů) a barvovou paletu obsahující 224 barev, což je poměrně významná změna oproti předchozím dvěma čipsetům, v nichž bylo možné pracovat s 212 barvovými odstíny (čtyři bity pro každou barvovou složku RGB). Navíc obvody z této čipové sady využívaly při adresaci plný třicetidvoubitový režim, což se projevilo zejména na šířce datové sběrnice. Tento čipset přes svoje skvělé vlastnosti (rozšířená paleta atd.) znamenal i určité zklamání, protože se obecně očekávalo, že přinese i podporu pro grafické režimy typu packed-pixel (vzhledem k plně 32bitové architektuře dokonce bez nutnosti používat stránky), u nichž se nepoužívají bitplany, ale postupné ukládání barev jednotlivých pixelů po jednotlivých řádcích na obrazovce. Absence packed-pixel grafických módů komplikovala například tvorbu interaktivní 3D grafiky, zejména her, které byly zaměřeny spíše na manipulaci s jednotlivými pixely a nikoli s většími plochami s malým počtem barev.
![pc82](https://i.iinfo.cz/images/617/pc82-8-prev.jpg)
Obrázek 8: Počítač Amiga 4000 v provedení „tower“.
5. Nová rozlišení podporovaná čipsetem AGA
V následující tabulce jsou vypsána nová rozlišení (grafické režimy) podporovaná čipsetem AGA. Tento čipset je samozřejmě zpětně kompatibilní s předchozí dvojicí čipsetů, takže podporuje i všechny grafické režimy vypsané ve třetí kapitole. Povšimněte si, že všech dvanáct nových režimů čipsetu AGA se navzájem odlišuje především svým rozlišením a obnovovací frekvencí obrazu, nikoli počtem současně zobrazitelných barev. V případě AGA totiž platí, že ve všech režimech lze použít jednu až osm bitových rovin (na rozdíl od původních šesti rovin u čipsetů OCS a ECS), nově je taktéž podporován režim nazvaný HAM8, který je popsán v navazující kapitole.
Video systém | Jméno | Rozlišení | Počet barev | Výška:šířka pixelu |
---|---|---|---|---|
DblNTSC | LowRes | 320×200 | 2 – 256, EHB, HAM, HAM8 | 1:1 |
DblNTSC | LowRes No Flicker | 320×400 | 2 – 256, EHB, HAM, HAM8 | 2:1 |
DblNTSC | LowRes Laced | 320×800 | 2 – 256, EHB, HAM, HAM8 | 4:1 |
DblNTSC | HiRes | 640×200 | 2 – 256, EHB, HAM, HAM8 | 1:2 |
DblNTSC | HiRes No Flicker | 640×400 | 2 – 256, EHB, HAM, HAM8 | 1:1 |
DblNTSC | HiRes Laced | 640×800 | 2 – 256, EHB, HAM, HAM8 | 2:1 |
DblPAL | LowRes | 320×256 | 2 – 256, EHB, HAM, HAM8 | 1:1 |
DblPAL | LowRes No Flicker | 320×512 | 2 – 256, EHB, HAM, HAM8 | 2:1 |
DblPAL | LowRes Laced | 320×1024 | 2 – 256, EHB, HAM, HAM8 | 4:1 |
DblPAL | HiRes | 640×256 | 2 – 256, EHB, HAM, HAM8 | 1:2 |
DblPAL | HiRes No Flicker | 640×512 | 2 – 256, EHB, HAM, HAM8 | 1:1 |
DblPAL | HiRes Laced | 640×1024 | 2 – 256, EHB, HAM, HAM8 | 2:1 |
![pc82](https://i.iinfo.cz/images/617/pc82-9.png)
Obrázek 9: Screenshot ze hry Chaos Engine.
6. Grafický režim HAM8
Ve výše uvedené tabulce si pozorný čtenář mohl povšimnout nové zkratky HAM8. Jedná se o rozšíření grafického módu HAM, který jsme si popsali v předchozí části tohoto seriálu. Zatímco původní režim HAM pracoval se šesticí bitových rovin (proto se kvůli odlišení od HAM8 taktéž označuje zkratkou HAM6) a dokázal tak na jedné obrazovce zobrazit, i když s několika omezeními, až 4096 barev (4 bity pro každou barvovou složku), dokáže HAM8 teoreticky pracovat s celým barvovým prostorem čipsetu AGA, tj. s 224 barvami (cca 16 milionů odstínů). Každý pixel je v tomto režimu uložen v osmi bitových rovinách, přičemž šest bitových rovin je určeno pro uložení indexu do palety 64 barev, popř. šesti vyšších bitů barvové složky a dvě zbývající roviny jsou rezervovány pro výběr operace, která se má při výpočtu barvy pixelu provést. Význam bitů v šesté a sedmé bitové rovině (jsou číslovány od nuly) je uveden v následující tabulce:
Bit b7 | Bit b6 | Význam |
---|---|---|
výběr barvy z palety stejným způsobem, jako ve standardním grafickém režimu, přičemž paleta má 64 položek (lze tedy vybrat libovolnou barvu z 224 kombinací). | ||
1 | změna modré složky (šesti vyšších bitů) podle hodnot načtených z rovin 1–6 | |
1 | změna červené složky (šesti vyšších bitů) podle hodnot načtených z rovin 1–6 | |
1 | 1 | změna zelené složky (šesti vyšších bitů) podle hodnot načtených z rovin 1–6 |
![pc82](https://i.iinfo.cz/images/617/pc82-10.png)
Obrázek 10: Známá hra Worms ve verzi pro Amigy.
Vzhledem k tomu, že pro změnu jedné z barvových složek slouží šest bitových rovin, lze pomocí této operace modifikovat pouze šest nejvyšších bitů vždy jedné složky – dva nejnižší bity zůstávají zachovány, tj. zkopírují se z barvy přiřazené předchozímu pixelu. To mj. znamená, že pomocí bitových kombinací 01×xxxxx, 10×xxxxx a 11×xxxxx lze zobrazit 218=262144 barev. Ovšem v barvové paletě mohou být uloženy libovolné barvy, takže je kdykoli možné bitovou kombinací 00×xxxxx změnit i spodní dva bity každé barvové složky, přičemž lze navíc barvovou paletu na každém obrazovém řádku měnit, typicky pomocí Copperu. Teoreticky je tedy možné, aby každý pixel na obrazovce byl obarven jinou barvou (tj. pro rozlišení 640×512 pixelů se jedná o 327680 barev), ale reálný počet barev bude u běžných obrázků nižší, podobně jako je tomu u minule popsaného módu HAM (HAM6).
![pc82](https://i.iinfo.cz/images/617/pc82-11.png)
Obrázek 11: Další screenshot ze hry Shadow of the Beast.
7. Grafické karty dalších výrobců
Kromě obvodů určených pro generování grafiky, které byly přímo součástí čipsetů OCS, ECS a AGA bylo možné v některých modelech počítače Amiga používat i grafické karty vyráběné dalšími výrobci. 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í.
![pc82](https://i.iinfo.cz/images/617/pc82-12.png)
V následující tabulce jsou vypsány řádkové a obrazové frekvence několika základních grafických režimů podporovaných grafickou kartou Picasso 2. Obnovovací obrazová frekvence 15 kHz je použita v režimu zpětné kompatibility (televizory, monitory A2024 apod.), naopak vysoké obnovovací obrazové frekvence 48 – 64 kHz vyžadují multifrekvenční monitory:
Řádková frekvence | 640×480 | 800×600 | 1024×768 | 1280×1024 |
---|---|---|---|---|
15 kHz | 50 Hz | n/a | n/a | n/a |
31 kHz | 59 Hz | 50 Hz | 74 Hz (i) | 55 Hz (i) |
35 kHz | 68 Hz | 56 Hz | 87 Hz (i) | 63 Hz (i) |
38 kHz | 71 Hz | 59 Hz | 87 Hz (i) | 67 Hz (i) |
48 kHz | 71 Hz | 75 Hz | 60 Hz | 87 Hz (i) |
57 kHz | 71 Hz | 82 Hz | 70 Hz | 87 Hz (i) |
64 kHz | 71 Hz | 82 Hz | 79 Hz | 90 Hz (i) |
![pc82](https://i.iinfo.cz/images/617/pc82-13-prev.png)
8. Odkazy na Internetu
- Picasso 2
http://www.iol.ie/…icasso2.html - Hold-And-Modify
http://en.wikipedia.org/…d-And-Modify - Amiga Halfbrite mode
http://en.wikipedia.org/…d-And-Modify - HAM8 Explained
http://www.amigans.net/…/article.php?… - Amiga FAQ (Frequently asked questions) (Part 1 of 4)
http://www.faqs.org/…ction/part1/ - Amiga FAQ (Frequently asked questions) (Part 2 of 4)
http://www.faqs.org/…ction/part2/ - Amiga FAQ (Frequently asked questions) (Part 3 of 4)
http://www.faqs.org/…ction/part3/ - Amiga FAQ (Frequently asked questions) (Part 4 of 4)
http://www.faqs.org/…ction/part4/ - Amiga Coding Wiki
http://www.amigacoding.com/…hp/Main_Page - Amiga screen
http://amigadev.elowar.com/…ode0061.html - Amiga HAM mode
http://amigadev.elowar.com/…ode008F.html - Copper WAIT instruction
http://amigadev.elowar.com/…ode004B.html - Copper MOVE instruction
http://amigadev.elowar.com/…ode004A.html - Amiga
http://en.wikipedia.org/wiki/Amiga - GalaxSIM: Solutions for Digital Living
http://www.amiga.com/ - Denise Pin Assignment
http://www.ntrautanen.fi/…c/denise.htm - Motorola 68000
http://en.wikipedia.org/wiki/68000 - Motorola 68008
http://en.wikipedia.org/…torola_68008 - Motorola 68020
http://en.wikipedia.org/…torola_68020 - Motorola 68030
http://en.wikipedia.org/…torola_68030 - Great Microprocessors Past and Present
http://www.microprocessor.sscc.ru/great - Custom Chips: Paula
http://www.amiga-hardware.com/…hardware.cgi?… - Big Book of Amiga Hardware
http://www.amiga-resistance.info/bboahfaq/ - Amiga Hardware Database
http://amiga.resource.cx/ - ExoticA
http://www.exotica.org.uk/wiki/Main_Page - The absolute basics of Amiga audio
http://www.sufo.estates.co.uk/…/amimus.html