Vítám vás u oficiálně posledního dílu našeho seriálu, samozřejmě najde-li se nějaké zajímavé téma o kterém chce někdo z vás něco vědět, může se mi ozvat a budu-li tématu rozumět, napíšu o něm.
Pokud jste již ve strojovém kódu natolik zdatní, že zvládnete napsat o nějakém zajímavém kódu sami, vůbec se neostýchejte a pusťte se do toho, U.F.A. to určitě uvítá.
Dnes se budu věnovat blittingu na počítačích STE. Samozřejmě, že na ST tuto činnost můžete provádět také, ale o tom jsme se bavili už mnohem dříve tuším v třídílném seriálu programování her na ATARI s příklady pro Omikron Basic. Narozdíl od tehdejšího přenášení bloků grafiky, kdy bylo vše provedeno per software, dnes ke stejné činnosti využijeme BLiTTER koprocesor.
Za původní anglickou verzi zdrojáků děkuji Adamu Grenwoodovi, které já v podstatě jen přeložil do češtiny, osobně doufám, že je díky podrobnosti popisu bez problému dostatečně pochopíte.
K čemu blitter slouží doufám víte všichni, ale měli bychom si to alespoň krátce zrekapitulovat spolu s pravděpodobnou výkonností a vhodným použitím ve vašich demech a programech.
Co se tedy dá s BLiTTEREM dělat?
o Vypňování určitého řádku vzorkem
o Vyplňování oblastí
o Transformace textu (italic, bold, outline)
o Textový skroling
o Update oken
o Přemisťování bitbloků s pomocí různých
logických spojek.
Blitter tedy ohromně zjendodušuje naprogramování každé přemisťovací grafické rutiny. Rychlost má však vyšší pouze na STE s 8 Mhz a tedy zároveň 8 Mhz blitterem. Pokud máte 16 Mhz počítač (Falcon) a 16 Mhz blitter, je to s rychlostí poněkud slabší. I přesto bych řekl, že jeho použitím např. na Mega STE nic neskazíte. I když kódeři pracující na Falconech jeho použití neschvalují, pokud pracujete pouze s STE, něměli byste tento procesor opomínat, protože zde urychlíte jednotlivé operace o 20% až 50%, což sice není nejvíce, ale měli byste si uvědomit, že mluvím o poměru proti dokonale optimalizovaným rutinám na ST, jejichž stvoření vyžaduje opravdu dokonalé zvládnutí práce s MC68000.
Teď se však vraťme k našemu příkladu. Koho by zajímali i další informace o tomto procesoru, tak se nacházejí spolu s dalšímy zdrojovými kódy pro STE na disku COD006.
Hlavním souborem je BLITTER2.S, který obsahuje všechny inicializace blitteru, pomocí XBIOSu zjištění toho, je-li procesor přítomen nebo není. Pak jsou zde prováděcí rutiny, které spouští určité operace tohoto procesoru.
Druhý soubor GXB.S se týká Gemdosových, Xbiosových a Biosových maker.
Třetí soubor se jmenuje MACROS.S a týká se zapínání a vypínání rozlišení.
No nic, tak si to zkuste zkompilovat a podívat se jak to vypadá, když se dobře naprogramuje blitter. Můžete s tímto kódem zkusit i experimentovat. Měnit dráhy, vzhled a velikost sprajtů, předělávat double-buffering či si to třeba rovnou přepsat do vlastní hry, ale to už je vaše věc. Hodně zábavy při kódování a někdy jindy při této činnosti nashledanou.
HEAD