Amiga 500 má 7Mhz CPU, a ak necháte všetku prácu iba naňho, tak to dopadne v hre takto - ROLLING THUNDER. Je zjavné, že tie 2D "friendly" bitplány, HW sprajty, DMA, Blitter, Copper a Paula čip ako HW mixér 4 x PCM audio kanálov v amige nie sú nadarmo. Stargunner /PC/ chcel v roku 1996, to už bola amiga dávno pod kytkami, aspoň i486DX/66Mhz na prašivé rozlíšenie 320x240px a na sľubovaných 60 fps ste potrebovali zjavne Pentium, keď mám veriť odporúčaným špecifikáciam /ja som to hral na P133ke/. No a potom tu máme nintendo konzolu SNES s 3.5Mhz CPU /!!/, na ktorom v 1995 hladko bežala beštialita Rendering Ranger R² /mix Turricana a generickej SHMUP od chlapíka, vtedy 30 ročného nemca Manfreda Trenza, čo robil práve tie Turrrican hry/. Očividne pri architektúre tej konzoly mysleli na hry a nie na Excel tabuľky. No a nejaký ten špinavý HW trik /je ich tam more/, čo tá mašinka dokáže vám teraz ukážem.
Ak hovoríme o starých herných systémoch, tak tu bola snaha mať kvalitný DMA /Direct Memory Access/ systém. Kus silikónu, ktorý riadi IOP operácie nezávisle od CPU. Enormne teda šetrí pracovné cykly procáku na iné veci. SNES DMA obsluhuje na prvom mieste potreby nenásytnej grafickej karty /PPU/, ktorá veľmi intenzívne s RAM pracuje. SNES DMA má 8 kanálov a každý nezávisle presúva dáta z hlavnej RAM do registrov grafickej karty alebo naopak. Dokonca je možné využitím WRAM portu na PPU realizovať rýchle presuny iba v rámci hlavnej pracovnej "CPU" RAM /128KB pre CPU, 64 KB pre grafiku, 64KB pre audio/. A keď vám to nič nehovorí, tak to veľmi pripomína Blitter funkciu amigy /presun dát v hlavnej RAM bez asistencie CPU/.
DMA je tak rýchle preto, lebo ide o úmyselne dizajnovanú HW skratku, keď prenesenie jedného bajtu trvá iba 8 pracovných master cyklov, zatiaľ čo pri použití CPU inštrukcie /klasika ako LOAD IN. OUT/ to na SNESe trvá aj 10 krát dlhšie - dostať niečo z RAM do GPU a dokonca 56 cyklov presunúť niečo niekam v samotnej pracovnej "CPU" RAM. Rýchle a dobre navrhnuté DMA je teda alfa a omega výkonu SNES, Megadrive ale aj PlayStation 2 či PlayStation 3 /EIB zbernica, DMA SPE radiče/. Nintendo sa však s DMA svojho času pohralo ešte viac.
HDMA SNES režim. H ako horizontálny. Elektrónové vykresľovacie delo behá na CRT obrazovke po riadkov od vrchu až nadol a HDMA tento pohyb otrocky nasleduje. SNES je teda schopné modifikovať dáta /registre jeho GPU - PPU/ v každom riadku a medzi nimi bez asistencie CPU a to mi zas pripomína Copper procák amigy !! Čo s tým v hrách z praktickej stránky ? To si hneď ukážeme a budete šokovaní, čo všetko /vrátane "3D"/ to dokáže simulovať. Technická stránka veci by nebola úplna, ak by som nespomenul, že HDMA je možné kombinovať s vertikálnym IRQ /interrupt request, riadené s CPU/. Obraz je sieť pixelov v oboch osiach, takže sa žiada mať patričné schopnosti v oboch smeroch. Tretím je alfa /prekrytie vrstiev do hĺbky, SNES je extra dobre vybavené/ alebo Z-buffer na 3D mašinách, ale týmto teraz situáciu nebudem komplikovať.
Príklady /video vyššie/. Farebný gradient. Určite ste si v mnohých amiga hrách všimli duhové prechody na pozadí. Banalita. Copper amigy bez pomoci CPU mení per riadok farebné registry počas toho ako CPU a GPU vykresľujú postupne obraz. Možno dokonca takto na obraz dostať aj viac farieb, než koľko systém oficiálne podporuje. Okienkovanie. Toto sa vysvetľuje trochu krkolomnejšie, ale vedzte, že HDMA už keď tu zmenu urobí, tak tá beži po celom riadku až do konca. Čo však, ak potrebujeme, aby v polovici riadku HDMA akciu prerušilo a po mikrosekunde zas pokračovalo. Na toto slúži "maskovanie" riadku "okienkovaním" a nebudete veriť k čomu je to v hre dobré /neskôr bude herná ukážka/. Horizontálny skroling /sínusová krivka/ a mozaika, ktorá vyzerá ako "zoom" textúry v DOOM engine. To som napovedal až príliš.
Herná prax- video. Axelay od 00:30 - známa to SHMUP strieľačka, ktorá ohuruje zvláštným pasážami s vertikálnym skrolingom, ktoré vyzerajú ako keby pod vami rotovala paralaxne a v 3D matička zem. Zdanlivo textúra na válci. Na prvý pohľad ide o grafický mód 7 SNESu. Avšak nie je tomu tak. Tento grafický režim neumožňuje použiť naraz viac ako práve jednu jedinú vrstvu a nej už iba sprajty. Axelay používa HDMA na modifikovanie grafiky po jednotlivých scanline riadkoch a vytvára ilúziu 3D priestoru a otextúroveneho sveta a tiež to použili na tu "hmlu" na horizonte a farebné gradienty. Všetko bez asistencie CPU. Jim Power: The Lost Dimension in 3-D od 05:56 - pri boss súboji je tam bubák čo rotuje a zoomuje vo veľkom štýle, ten naozaj beží v mód 7ke, potom by ale v pozadí nemela byť žiadna ďalšia grafika, iba čierna tma. To sa zjavne nestalo. Opäť to zachránilo HDMA a dostanete tam aspoň farebný gradient alebo jednoduchú, skrolujúcu "3D" zem v ďalšom súboji. Onizuka Katsuya Super Virtual Boxing od 11:15 - úplne rafinovaná finta G. Okolo bojujúcich postáv sa točí "3D" aréna. Nemôže isť o mód 7, lebo tých vrstiev je tam príliš veľa. Takže opäť HDMA s "okienkovým" maskovaním. HDMA urobí modrý farebný gradient a potom vystrihne "diery" v riadkoch tak, aby sa zdalo, že sa gradient - aréna deformuje a rotuje v 3D. Brilantné. The Adventures of Batman And Robin od 14:39 - kopa veľmi pôsobivých 3D efektov, ktoré všetky vznikli iba vďaka šikovnej manipulácií PPU registrov via HDMA. A malé SNES demoscene demo na koniec. Je to naozaj iba zmena zopár PPU parametrov, trochu HDMA a tie gfx veci sa tam deju doslova samé a bez veľkej intervencie CPU.
Megadrive. Prišiel na trh o 2 roky skôr ako SNES a mal by byť tak o pol generáciu "zastaralejší". Má DMA, nemá HDMA režim, má však takmer 8Mhz CPU a je teda v tomto smere výrazne rýchlejši ako SNES. HDMA na SNES si mení registre v PPU /v grafickej karte/ medzi riadkami rýchlo a bez väčšej námahy. Megadrive dokáže niečo podobné so svojim VDP /to čo PPU pri SNESe/, ale potrebuje občas aj asistenciu CPU /via IRQ/, ktoré síce je rýchlejšie ako pri SNES, ale nie až tak, aby to dokázalo s tak jemnou granularitou. MD dokáže teda to isté ako SNES len trochu "hrubšie" a pomalšie. Viď mód 7 ala SNES na MD alebo Axelay skroling ala SNES aspoň v podobe grafického dema. Iba jedna veta o chystanom ZX Spectrum Next - tam sa pracuje "na všetkom". Špeciálne inštrukcie, špeciálne DMA, pseudo Blitter, IRQ, Copper režimy a spolu s fillrate väčším ako Amiga 500, SNES a Megadrive dokopy, by to malo aj niečo zaujímavé ukázať. Až to teda bude hotové. Snáď o rok. Možno.