21. 12. 2014

DOOM : Falcon versus Jaguar


Firma ATARI je zlatým atramentom zapísaná do veľkej videohernej knihy. Legendárna konzolka Atari 2600, E.T. pochovaný v púšti, kontraverzná postava žida Jaceka Trzmiela, domáca rada počítačov Atari 800, ST. Mali veľmi šikovných inžinierov. Rok 1993 /DOOM = záhuba/ sa však ukázal ako smrtiaci pre dovtedy veľmi silné značky Atari a Commodore, zrazu ich začalo vytláčať modulárne a čím ďalej lacnejšie a výkonnejšie "PC". V tomto článku vám predstavím dve posledné výrobky Atari a to nedostižne multimediálny Atari Falcon030 Computer System a tiež ich poslednú herná konzola Atari Jaguar.

Atari Falcon. Dodnes veľmi populárna mašinka, aj keď bola v predaji iba zopár mesiacov /na prelome rokov 1992-1993/. Oproti, v tom istom čase štartujúcej, "konkurenčnej" hernej Amiga 1200 /$600 za 2 mega RAM bez HDD v amerike, CPU 68020 na 12Mhz/ ponúkal profesionálnejší Falcon /$1299, 4 mega ram + interný 84MB HDD alebo $1899 za 14 mega + HDD s 68030 na 16Mhz/ hlavne skvelé zázemie pre hudobníkov. Kvalitný a rýchly DSP 56001 procesor, ADCs/DACs, S/PDIF či ADAT konektory, MIDI podpora, patričný softvér a hlavne 8 kanálové, 16 bitové audio až do 50Khz. Aby sa predsa len trochu ušetrilo, tak sa nepoužil plne 32 bitový dizajn, datová zbernica ide len na 16 bitoch, RAM je teda "trošku" pomalšia.

Falcon zvládne vtedy obľúbené herné rozlíšenie 320x240 /640x480/ pixelov v 256 farbách a má dokonca aj 16 bitový PC "chunky" mód, v našom prípade veľmi vhodný pre Wolf/Doom engine. Výkonnejšia verzia Falcon040 ostala iba v prototype. Atari sa totiž snažilo skočiť nazad do videoherného biznisu konzol, dokonca stoplo aj vývoj 16 bitovej konzoly Atari Panther /výkonnostne SNES a Megadrive killer/ a všetky sily vrhli na vývoj herného HW s ktorého neskorším neúspechom sa s nami atari vlastne rozlúčilo a zbankrotovalo. 

Atari Jaguar /vo výrobe 1993 až 1996/. Konzola stála $249 /!!/ a v hrách 2D grafickými možnosťami a 3D výkonom Falcona aj A1200ku úplne zdevastovala. Jaguar bol primárne 2D konzola s "3D ready" potenciálom. Riadiacim CPU je lacná a pomalá 68000ka na 13.3Mhz, sekunduje jej dvojica skvelých 32 bit RISC koprocesorov na 26.6Mhz a to grafický čip "Tom" integrujúci tri výkonné jednotky - 32 bit RISC GPU, 64 bitový Objektový procesor /hlavne 2D operácie, sprite engine a vytvára display list, viac o chvíľu/ a 64 bitový Blitter /rasterizér, softvérový texture mapping, Z-buffer, Gouraudovo tieňovanie v 3D grafike/. RAM - 2 megabajty na rýchlej 64bit, 100mega/sec zbernici a audio procák "Jerry" - ide vlastne o DSP ala ten Falcon vyššie zvládajúce FM, Wave syntézu, programovateľne custom audio engine /U-235, 8 x16 bit kanál až 50Khz/ a ak treba aj general-purpose úlohy.

Prekvapenie. Jaguar nemá klasický framebuffer, to jest dostatočne tučnú VRAM o veľkosti  - rozlíšenie krát farebná hĺbka !!. Namiesto toho použili systém známy z archaického Atari 2600. Objektový procák /OP/ jaguara, ukladá objekty-pixely do LINE buffera - čo sú skutočne a doslova iba dva riadky grafiky /front a back buffer line/ a obvod, ktorý sa stará o vytvorenie videosignalu číta dáta iba z tejto podivnosti a nemá prístup do hlavnej operačnej pamäti. Nedrancuje teda ani hlavnú RAM zbernicu. OP vytvára stále nový a nový OL /object list - zoznam toho čo vlastne dať na obrazovku/ každý jeden nový riadok, čo okrem iného umožňuje dynamické zmeny /aj palety, nielen objektov v OL/ zavideniahodných rozmerov. Hlavne v kombinácii s veľmi prepracovaným Blitterom. Atari inžinieri presne vedeli čo robia a dali programátorom do rúk skvelé future proof možnosti, aj keď to chcelo trochu filipa.

"The Jaguar was definitely significantly hampered by its technical flaws, which kept me from ever being too big of a Jaguar booster. I was proud of my work on Wolf and DOOM (more so than just about any of the other console work Id has been involved in until just recently), but in the end, the better consoles won the war.” ~ John Carmack, marec 2000.

DOOM. Začneme s Jaguar verziou /release 28.11.1994/. Oficiálny port z rúk ID software. Všetci sme to hrali, vynechám omáčku okolo, tiež rozdiely medzi PC a JAG verziou /menej hudby, chýbajúce obludky a podobne/. Carmack sám povedal, že termíny bolo krajne šibeničné a dalo sa to urobiť aj lepšie, ako však uvidíte odviedol kvalitnú prácu. Ako dobre to vlastne beží /viď video nižšie/, pri FPS ide o kriticky dôležitú vlastnosť. Nielen zahraničné dobové članky prirovnávali plynulosť DOOM Jaga  ku behu na veľmi dobrej 486/DX50, v našich časákoch dokonca spomínali i486/DX66. Ak by sa totiž DOOM JAG spoliehal iba na svoje centrálne CPU /68000 na 13Mhz/, hra by v režime 320x240/256 dávala tak 1-2fps. Výkon komplexného JAG GPU je teda ohromný.




Pikantné pri DOOM je, že značnú časť výkonu žerie aj beh hernej logiky alebo AI a proste hra vyžaduje slušné CPU, ktoré JAG nemá, takže bol Carmack nútený naprogramovať akýsi asymetrický model a ručne vyladené kúsky ASM kódu posielať na spracovanie tým RISC koprocesorom. Bolo to komplikované, aj preto ta jeho averzia voči Jagovi a blahorečenie PSone /ktoré do bodky spĺňalo jeho predstavy o harmonickej konzole - dobré CPU, GPU, RAM, všetko jednoduché a prehľadné/.

Na pripomenutie ako PC DOOM vyzeral na i386/DX40 čo bola vtedy hi-end mašina, ktorú ste sem tam mohli doma u niekoho nájsť nájsť /väčšinou bez zvukovej karty, iba na beeper spíkri, heh/. V inom videu na oveľa lacnejšej a utrápenej i386/16Mhz - rovnaká 32/16 bit konfigurácia ako nás Falcon030 na 16Mhz, vidíte, že tá DX40 je vyslovene sociálne minimum, aj to iba pri stiahnutej veľkosti okna a keď akcia na obrazovke nie je príliš divoká. Na excelentnej i486/DX2-66 /vlhký sen každého hráča, príšerne drahá a nedostupná/ to už fičalo ako nadržaný svišť.

Pre zaujímavosť - id Software pri vývojoji PC doom engine pracoval na exotických pracovných staniciach NeXTstation-NeXTcube /1990-1993/ a tu príde zábavná pointa. Práve v tom čase ich poháňali Motoroly 68040/25Mhz /integrované FPU/ s DSP 56001 na 25MHz a 8-16+ mega RAM, na hocičom slabšom sa doom ledva plazil, čo je nás vracia nazad ku nevydanému Falcon040 a hlavne ku "DSP" Falcon030ke a jeho trápeniu s DOOMom.

"Doug Little vypustil na demoparty SillyVenture v polském Gdaňsku plně hratelnou beta verzi jeho Doomu pro standardní Atari Falcon." - vianočný darček ataristom

Badmood alias projekt DOOM pre Falcona. Ešte raz zrekapitulujem, čo vlastne máme v rukách. Falcon nemá dobré GPU z pohľadu náročných 3D hier, má úzku 16 bit dátovú zbernicu a teda aj pomalú RAM, CPU je smiešne, ak nestačí i386/DX40, tak 68030/16Mhz je úplne mimo terč, ešte aj pod tou 100% nepoužiteľnou i386/SX16. Prvé Falcon testy ukázali, že tam DOOM beží rovnako ako na SX16ke, teda nič až 5 fps. Na Falcon DOOM engine sa však s prestávkami pracuje vyše 20 rokov /meno programátora, ktoré si máte zapamätať je - Doug Little/. Ja si vám teraz dovolím ukázať ako vyzerá beh hrateľnej verzie Falcon DOOMa po oživení celého projektu.



Sureálny pohľad, však. Engine je rozložený na atómy a riadok po riadok adaptovaný pre Falcona. Stovky zmien a optimalizácii - audio, grafika, render jadro, animácia, AI. Niečo sa oproti PC vylepšilo, pribudol aj free mouse look niečo sa zjednodušilo /AI je múdrejšia v malej vzdialenosti, oveľa blbejšia o 50 metrov ďalej/. Hra mala objektívne bežať ako slideshow ako je teda možné, že z toho dostal tých 10-15fps. Ako to teda dosiahol ? Nuž, znásilnením toho audio DSP na 32Mhz. Používa teda rovnaké triky ako kóderi na PS2 /VU - vektor jednotky/, PS3 /CELL - SPE/ alebo PS4 /ACE, async direct compute/. Má to iba "jeden" háčik - to DSP je vyslovene prispôsobené audio operáciam, nemá žiadne "grafické extenzie", má miniatúrne kešky úplne nevhodné pre grafické účely a je so zvyškom systému spojené 8 /!!/ bitovou zbernicou, takže akúkoľvek komunikáciu s CPU je žiadúce držať na úplnom minime. Tu však hovoríme o grafike /a objeme dát/ jednej z najnáročnejších hier svojej doby. Hrateľný DOOM pre neupravený Falcon je skutočne technický zázrak.

Misia je splnená. Falcon môže napínať bicáky, že DOOMa zložil na lopatky a beží to na ňom lepšie ako na i386/DX40. Blahoželám a teším sa na finálnu verziu. Čo ďalej ? Skúsme Falcona vylepšiť o neporovnateľne  výkonnejší 060 procák, alebo to nechajme tak a prilepme tam FPU koprocesor /16 megahertzová 68882ka/ + trochu RAM /14 mega, oficiálne maximum/ a posuňme sa o level vyššie smerom ku QUAKE enginu. No nie je to nádhera /opäť programatórske cvičenia "malého" Douga/. Morálne ponaučenie, ktoré z toho plynie. PS4 je stroj o výkone 2 Tflopy /CPU+GPU/. Je to tiger tank cielene prispôsobený na šrotovanie grafických dát. Už len také AVX CPU extenzie alebo asynchrónne výpočty na GPU by ktoréhokoľvek z poctivo programujúcich veteránov priviedli ku mdlobám, trasľavým rukám a nočnému pomočovaniu. Do budúcnosti, keď máte pochybnosti o modernom hernom HW /Ubicrap vycucal PS4 na 110% a preto im Assasin: Parity pajdá na 18 fps v prázdnej ulici !!/ a nejaký, degenerovaný vylízanec, SONY hater, nenávistné PC vemeno vás chce zviesť ku hriechu, tak vždy zamierte svoj zrak do minulosti, držte pevne froté ručník modrej farby a neprepadajte panike.