Showing posts with label mega drive. Show all posts
Showing posts with label mega drive. Show all posts

30/04/22

Jemná, grafická sila - Amiga, SNES, Megadrive

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ť.

 SNES - HDMA demo ukážky

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š.

SNES  - HDMA v hrách

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.

22/05/21

Mega Drive! Really?

 V 90. letech, jsa odkojen na hracích automatech, jsem bezostyšně obdivoval tento 16-bitový zázrak od Segy, který se prodával za pro mě nedostižné peníze všude možně po elektrech a hračkářstvích. Na vstupních dveřích obchodu se zdviženým ukazovákem významně pomrkávající Sonic lákající hráče vstoupit. Pestrými barvami hýřící mnohavrstvá 60 fps akce, o jaké se mému ZX Spectru byť i C-64 sotva jen zdálo. Segu Mega Drive jsem si pořídil až v novém tisíciletí z bazaru. A musím přiznat, po dlouhých letech do dnešních dní postupně vystřízlivěl.

Začněme ale od začátku. Mega Drive je tak nějak ušit na konkrétní typ videoher. Zvládá je víceméně průměrně až na výbornou, jak co. Jeho hlavní procesor se v tomto modelovém případu víceméně fláká, grafická karta se potí. V pořádku? No, ani ne. Po letech jsem dospěl k názoru, že systém na hry má být navržen co nejefektivněji a zároveň co nejflexibilněji. To Mega Drive určitě není. Má v hardwaru natvrdo zadrátován jeden model videohry. Jeho čipy tedy disponují výkonem, který ale není všeobecně využitelný – špatně. Dvě dvojrozměrné vrstvy a sprajty. Vše složeno ze znaků – z textového módu chcete-li. Pokud tedy chcete programovat cokoliv, co se jakkoliv začne vymykat zmíněnému scénáři, nastává problém. To se týká především trojrozměrných her, které vyžadují namísto znaků jednotlivé pixely, tedy bitmapu.

Ovšem i u dvojrozměrných her se ptám: co když budu chtít namísto druhé vrsty zobrazit více sprajtů? Co když budu chtít vykreslit jednotlivé pixely namísto celých znaků?


Předně si uvedeme výčet kladných stránek této konzole:

    • dedikovaný grafický procesor – CPU nemusí generovat grafiku a zůstává volné pro jiné výpočty

    • 2 nezávislá skrolující pozadí a k tomu sprajty – poměrně silný základ pro pokročilejší 2D hry

    • CPU může přistupovat do video paměti, i když omezeně – např. Neo Geo neumožňuje CPU vůbec přístup a tím pomocí něj není možné generovat např. 3D grafiku


A nyní nedobré stránky konzole:

    • příliš mnoho komponent a k tomu ne ideálně zapojených – vše kvůli nepotřebné zpětné kompatibilitě s Master System

    • pouze 320/256 pixelů na řádek pro sprajty – při zaplnění této kapacity dochází k viditelným výpadkům vykreslování sprajtů – problém zejména u bojových her s velkými postavami a intenzivních stříleček – problém korektně portovat např. hry z CPS či Neo Geo, ale i Sega16!

    • omezená propustnost do video paměti – Virtua Racing jede kvůli tomu jen na 15 fps, přestože 3D koprocesor v kazetě zvládne mnohem více

    • omezené použití barevné palety na 15 barev po 4 podpaletách

    • neoptimální zapojení Z80 ve vztahu k hardwarovému přerušení hlavního CPU – nemožnost napsat kód Z80 pro 100% korektní softwarové přehrávání digitalizovaného zvuku

    • absence dedikovaného ADPCM čipu pro přehrávání digitalizovaného zvuku – souvisí s výše uvedeným bodem


Jak vidíte, je co zlepšovat. Především si myslím, že Sega udělala jednu zásadní chybu. Mega Drive neměl být zpětně kompatibilní s Master System. Nebyl k tomu objektivní důvod, protože MS neměl významnou penetraci na trhu. Než osazovat systém dalším procesorem Z80 a integrovat zvukové SN, bylo vhodnější investovat do ADPCM čipu. Mega Drive má totiž velké problémy s přehráváním digitalizovaných zvuků, a to z důvodu, že pro jejich přehrávání je nutno napsat kód, který ale vyžaduje velký procesorový čas. Jenomže sekundární Z80 není synchronizována žádným přerušením s chodem hlavního CPU a je tudíž vlastně nemožné korektně načasovat digitální přehrávání. Navíc pokud Z80 přistupuje k digitalizovaným zvukům v ROM, významně omezuje hlavnímu CPU přístup do video paměti. Samozřejmě tyto operace můžete provádět hlavním CPU – 68000, oberete se ale o část jeho strojového času a hlavně: na co je tam potom Z80? Zkrátka totálně nedoladěné, nepromyšlené zapojení. Sega měla zkrátka použít pouze jedno CPU (Motorolu 68000) a jeden zvukový čip (vhodnou verzi Yamahy s integrovaným ADPCM, anebo stávající 2612 a dedikované ADPCM jako např. OKI MSM6295). Jako praktickou demonstraci zprzněného návrhu přehrávání digitalizovaného audia budiž ukázka ze hry Street Fighter II a následně její nadšenecký "patch" z doby nedávno minulé. Jen podotýkám, že samply v ROM jsou 100% kvalitní a przněné jsou až samotnou konzolí při běhu hry…



 

Dalším omezením je limit 320 nebo 256 pixelů na řádek pro sprajty. 320 platí pro video mód 320x224, 256 pro 256x224. Je mi jasné, že je to dáno limity propustnosti použitých pamětí a rychlostí grafického čipu. Tento totiž dopředu obrazový řádek po řádku vyhledává a načítá z video paměti grafická data pro sprajty a míchá je s pozadími – Mega Drive nemá obrazovku uloženou ve formě bitmapy – frame buffer kvůli malé kapacitě video RAM vzhledem ke komplexnosti obrazu. Nicméně určitě stálo za to se nad tím zamyslet vícekrát a pokud možno zvýšit tento strop alespoň na hodnotu 500 pixelů pro 320x224. Vždyť už v roce 1989 vypustil NEC své SupergrafX, které právě hodnotou 500 pixelů na řádek oplývá! Já bych osobně hledal i zvýšení tohoto limitu v možnosti vypustit generování druhé skrolovací roviny a ušetřený čas a propustnost přemístnil do zvýšení limitu pro sprajty – např. by to mohlo být volitelné programem…

Problémy s tímto tzv. přetečením sprajtů (sprite overflow) jsou vidět typicky v bojových hrách s velkými postavami, např. Final Fight pro Sega CD převedeném z Capcom CPS. Často vidíte, jak mizejí celé řádky uprostřed bojovníků jako by je někdo rozpůlil pilkou. Patrné je to taky u intenzivních stříleček jako je Raiden Trad nebo Truxton při upgradu zbraní. Nebo např. Vectorman, který v mnoha úrovních používá sprajty jako další pozadí, ale často toto pozadí při větším počtu objektů částečně mizí.

Pro útěchu Mega Drivu těmito neduhy trpí i TurbografX a SNES. SNES má sice o něco větší limit, než je šířka obrazu (272 na 256x224), ale zato nemá tak flexibilní možnost velikostí sprajtů a k výpadkům renderování v praxi ve hrách zde dochází ještě častěji. Ono totiž pro všechny tyto konzole platí, že do limitu se započítávají i „vypnuté“ pixely, které jsou vždy součástí sprajtů, pokud nechceme zobrazovat jen celé čtvercové bloky o minimální velikosti 8x8 pixelů.

Na závěr dodávám, že je mi jasné, že Sega chtěla zajistit lehkou portovatelnost ze svých automatů, zejména Sega16A (Shinobi, Golden Axe…). Nicméně šetřit a redukovat se mělo na těch nejsprávnějších místech a architektura měla zůstat 100% vybalancovaná a nabízet co největší flexibilitu v renderování. To se tak nějak na 100% určitě nepodařilo.

18/12/20

Sonic - optimalizácia a kompresia

Final Fantasy 6 pre SNES je kolosálna hra s famóznou pixel art grafikou a audiom. Priemerná doba prvého prejdenia hry je niekde okolo 35-40 hodín a celé sa to vôjde na 3 megový kartridž. Ešte technicky lepší Chronotrigger si vystačí so 4 megami. Tales of Phantasia mala 6 megabajtov /a intro so samplovanými hlasmi a 16 kanálové audio/ a nakoniec Star Ocean to úplne zarezal s dodatočným čipom S-DD1 pre dekompresiu a hra mala po rozbalení 12 mega. To je ekvivalent 100 gigovej hry dnes. Všetky tie SNES JRPG gamesy som krvopotne svojho času pretlačil cez SNES emuláciu, ktorá vtedy bola ešte v pokakaných plienkach. Vidíte teraz koľko vzácneho kartridžového priestoru dobrá hra zaberie a aké vychytané softvérové, optimalizačné postupy asi museli japončíci vymyslieť, aby to tam natlačili. Opúšťam teraz nintendo a preskakujem na megadrive, kde mi miestny borec Sonic hovorí, že len jeho vlastná animácia má cca 220 kilobajtov. Celá FF6 pre SNES má pritom 3 mega !! 

 
Sonic 3D Blast je posledná, vydaná sonic hra pre megadrive. Používa "izometrické" zobrazenie a hlavný hrdina nemá ručne urobenú pixel grafiku ale vyrenderovanú v 3D štúdiu s peknými odleskami. Hýbe sa do 16 smerov a v každom má 12 frejmov animácie. Vyzerá to v pohybe krásne ako CG panduľák z Toy Story. Celá táto paráda ale bez úprav zaberá 220 kilo. Takže toto číslo musíme zraziť dole zapojením mozgu a bez pomoci drahého čipu pre HW dekompresiu. Prvý redukčný krok je využitie faktu, že postavička v niektorých smeroch behá zrkadlovým otočením animácie. Nemusíme teda tieto dáta uložiť ale stačí ich v HW v smere osi otočiť. Už teda nepotrebujeme animáciu v 16tich ale iba v 9tich smeroch. Objem dát spadol na 121 kilo. Skoro na polovicu.

A ideme ďalej. Hlavný sprajt sonica je umiestnený na mriežke 6 x 6 znakov /znak je vlastne atribút veľkosti 8x8 pixel/. Neukladáme dáta všetkých 36 znakov ale iba 22, v ktorých sa pixely sonica reálne nachádzajú. Dokonca keď telo sonica úmyselne posunieme o pár pixelov v gride doprava, tak zistíme, že dosiahneme nižšie pokrytie plochy a úsporu 3 celých znakov a tých 19, ktoré v tomto momente potrebujeme už zaberajú len 64 kilobajtov. Sme opäť takmer o polovicu dole. A posledný krok. Pozrieme sa aj "dovnútra" jednotlivého 8x8 pixel znaku. Zistíme, že ani tam samozrejme nie je 100% pokrytie, takže použijeme triviálnu RLE kompresiu, ktorú zvládne aj 8 bit. V tomto bode bude mať celá animácia sonica vo všetkých smeroch na kartridži iba 53 kilobajtov, teda 25% pôvodnej veľkosti. Zázrak.

 
Sonic 3D Blast - intro

Zázrak do troch dní, nemožné na počkanie. Sonic 3D Blast totiž má aj plne renderované FMV intro /full motion video/. Základná matematika - 320x224 pixel krát 30 frejmov za sekundu krát 12.5 sekúnd dĺžky intra = 27 megabajtov na kartridži o kapacite 4 megabajtov !!  Takže optimalizujeme. Veľkosť frejmu stiahneme na 320x200 pixelov, rýchlosť videa na 15 snímkov za sekundu a použije sa farebná paleta o sile iba 16 farieb. Voilá a intro video už má iba 6 megabajtov. Do akcie nabehne RNC kompresia /Rob Northen compression/ v sofvérovom režime a v tom prípade by to mohla zabaliť až s efektivitou 3:1. Problém, je že naše CPU to nezvládne rozbaľovať v reálnom čase dostatočne rýchlo /iba cirka na úrovni 5 fps/.

Prepočet ukazuje, že dekodovaný obraz nemôže mať väčšiu veľkosť ako 256x80 pixelov. Ako však vidíte vo YT videu vyššie, tak intro pokrýva "celú" plochu obrazovku, nie len maličký výsek v strede. Na roztiahnutie obrazu na celú plochu /primitívny upscale/ využijeme schopnosť GPU /VDP - Video Display Processor/ megadrajvu, že DMA pri blokových presunoch dát dokáže generovať prerušenie /kontrolovaný horizontálny interupt/ na každom horizontálnom riadku a takto vlastne riadok zduplikujeme dvakrát po sebe a dosiahneme lepšie pokrytie plochy. Pokračujeme vertikálnym ditheringom a interlace alterovaním snímkovania s dosiahnutím lepšieho rozlíšenia videa /doslova ako šachovnicový checkerboard rendering či interlace upscale na PS4ke, heh/. Finálna veľkosť FMV intra po všetkých týchto krokoch je 660 kilobajtov namiesto pôvodných 27 megabajtov /v nekompromisne najvyššej kvalite/. Asi je vám jasné a sonic to potvrdzuje, že Call of Duty dev tím zjavne nerobí všetko preto, aby sme pri ďalšom diely ságy nemuseli sťahovať 350 gigabajtov dát. Stále platí, že tvrdé limity, ktoré sa snažíte nejako obísť, podporujú tvorivosť, inovácie. Hojnosť je pochabosť.

14/04/20

Another World /Éric Chahi, 1991/


V severnej amerike sa predávala pod menom Out of This World. Ikonický, adventúrny 2D platfomer portovaný na každú relevantnú 16 bit plus platformu. Natívne ide o 2 ročný projekt jednej osoby postavený okolo hardvéru Amiga 500. Vojde sa na dvojicu 880KB amiga floppy diskiet alebo iba na jednu jedinú 1.44MB HD pri PC verzii napriek skvelému intru a úmyselne "filmovému" vzhľadu. Celá hra je vytvorená z polygónov. Túto vetu, keď som pozeral na malé obrázky v herných časopisoch, som vtedy nechápal. Videl som limitovanú farebnú paletu a pozadia, síce štýlové ale statické alá Prince of Persia. Avšak naozaj je celá grafika vytvorená z polygónov. A hra sa dá prejsť pod 20 minút, s čím mal distribútor PC verzie celkom morálny problém.

verzia pre Amiga 500: rozlíšenie 320x200 pixelov v 16 farbách, 981 polygónov !!

Super úsporná vektorová grafika. V rozlíšení 320x200 v 16 farbách by každá miestnosť hry ako bitmapa /kreslený pixel art/ zaberala 32KB. Nakreslite 94 obrazoviek a už máte plné ruky amiga diskiet. Pridajte skoro trojminutové intro, samplovanú hudby a zvuky a začína sa žonglovanie s disketami, známa "diskotéka". Éric Chahi však nevyriešil dizajnom grafiky radikálne len tento problém. Pri rozborke jeho amiga kódu zistíte, že smotná herná logika má iba 6000 riadkov kódu, menej ako vírus. Pri pohľade na PC verziu tiež nebudete veriť vlastným očiam, že exe súbor má iba 20KB, zvyšok sú dáta pre "polohu vektorov" a nejaké audio.

Pointou je, že to "exe" vlastne nie je samotná hra ale VM /virtual machine/ vytvorené vnútri vašej mašiny s 256 registrami, 64 pracovných vlákien, asi 30 vlastných inštrukcií, 4 x video framebuffer a pomocou "syscalls" si volá služby pod sebou bežiaceho OS a ním vykresľuje tie "vektory a polygóny" a prehráva zvuky. Akýkoľvek stroj dokáže spustiť túto VM na 20fps tak dostane hrateľnú verziu Another World /AW/. Samozrejme hra voliteľne umožňuje aj JIT /just in time/ rekompiláciu bajtkódov VM do natívneho prostredia procákov motorola alebo intel, ARM.

Amiga verzia. Motorola CPU 68000 na 7.1Mhz s trojicou pomocných čipov Paula /4 kanálové samplované audio/, Denise /videočip, až 4096 farieb naraz, herne štandardne 32-64/ a Agnus /najdôležitejší z nich kontroluje Blitter - presúvanie dát v RAM bez asistencie CPU, Copper a DMA/. Zdieľaná, bežne 0.5-1 megová RAM medzi CPU a GPU, tzv. chip RAM. Amiga mala podporu aj pre dokupiteľnú "fast" RAM, ktorú malo CPU iba samo pre seba. Prvé amigu boli 512 kilové, čo sa ukázalo ako žalostné málo /veľké samplíky hudby a zvukov/ a 1 megabajt bol praktickým, zlatým štandardom. Another World si na PC vystačil asi s 600 kilobajtami RAM. Vykresľovanie polygónov pri amige mal na starosti Blitter /funkcia fill a draw line/.

Atari ST verzia vznikala paralelne s tou pre Amigu. Detto Motorola CPU 68000 ale rýchlejšia na 8 Mhz. Hra viacmenej zámerne používa iba 16 farieb naraz /aj na amige, aj keď by táto zvládla aj 4 krát toľko/ práve s ohľadom na Atari ST. Hra neuvyužívala rozšírené možnosti málo rozšírenej Atari STE, ktoré by ju viac priblížili ku amige ale mierila na chudobnejšiu ST. To znamená, že kód hry sa nemohol spoliehať na Blitter alebo DMA. Ako to teda ST vôbec dokázalo ?  Maximalizovala sa softvérová optimalizácia až na úroveň jednotlivých inštrukcií s využitím množstva programátorských trikov /aj variabilný "shader" algoritmus/. Hra ma technicky čiste softvérový blitting a efektívne sa využíva odlišný spôsob adresovania pamäte ST, ktorý je pomalší v 2D ako pri amige, ale rýchlejší pri "3D". Amiga teda hru utiahne pod 25fps a ST iba o trošku pomalšie, ale v tom istom rozlíšení 320x200px a kvalite animácie.

PC MS-DOS verzia. Projekt rátal s použitím i386 na 16Mhz s 2 megami RAM. PC nemá DMA použiteľné pre grafiku, nemá blitter, nemá samplované ani PSG audio /ako Atari ST/, grafický adaptér je často iba na 8bit zbernici. PC je teda rýchle CPU s veľmi pomalou "2D" grafikou zavesené na kope RAM. Konverzia hry preto prešla rovnako intenzívnou liečbou ako na Atari ST. Využilo sa veľmi rýchle "3D" mapovanie pamäte a optimalizovalo o dušu. Výsledkom bolo zníženie odporúčanej konfigurácie pre plynulé hranie na i286 na 10Mhz CPU s 640 KB RAM vo farebných paletách pre TGA, EGA a 256 farebnú VGA grafické karty.

vkusná európska a nevkusná americká obálka

Sega Megadrive /MD/ a Super Nintedo /SNES/. Obe sú prvý jasne výkonnejšie ako Amiga alebo Atari ST, takže sa žiadne veľké problémy neočakávali. MD má overené CPU 68000 na 7.61Mhz, veľmi výkonné DMA /fill, copy/, skvelú grafiku v podobe VDP čipu. Bohužiaľ sa ukázalo a testy potvrdili, že je to všetko hrubo nevhodné pre vektorovú grafiku AW a MD nemá dosť grafickej pamäte /iba 64KB/ na uloženie štyroch framebufferov. Musíme teda využiť aj hlavnú pracovnú RAM /tiež 64 kilo/ a celá grafika sa preklopí do tile map 8x8 pixel formátu. Kopa transferov medzi RAM a VRAM nie je zadarmo a je problémom, lebo MD nie je stavané na riešenie "full screen" grafiky týmto spôsobom. Matematika. Grafický H32 mód s 32x28 bunkami, aktívných bude iba 28x22 /necháme tam čierny okraj a ušetríme trochu priepustnosť/ a teda 224x176 pixelov/19 KB na frame, tri frejmy teda vieme natlačiť do 64KB  pracovnej RAM, v VRAM je uložený 2 x "double" buffer. SNES riešenie vyzerá v podstate rovnako. Výhodou je väčšia hlavná RAM /128KB vs 64 pri MD/ a jednou z nevýhod oveľa pomalšie CPU. Výsledné rozlíšenie hry - iba 224x160 pixelov !!

3DO konzolka - "nevektorové", kreslené fujky pozadia

Another World teda zjavne ku dobrému behu potrebuje hlavne rýchle CPU a veľa RAM. Po všetkých tých trampotách si položme otázku, ako by sme tu hru dnes, v modernej súčasnosti dostali aj na staré či nové 8 bity. Odpoveď je - vcelku ľahko. Éric Chahi totiž ešte počas vývoja Amiga/Atari ST verzie pridal do kódu špecialny "bit", ktorý umožňuje zbaviť sa vektorovej grafike a nahradiť ju kompletne bitmapami samozrejme na úkor razantného navýšenie celkovej veľkosti hry. Presne tak to urobila aj naozaj hnusná verzia pre inak dostatočne výkonnú konzolku 3DO. Elegantné vektory skončili ako rozpatlané vodovkové fantázie. Pri 8 bitoch /vrátane ninja rýchleho ZX Spectrum Next/ však môžte zachovať aj v bitmapách pôvodnú estetiku, len to musíte celé umiestniť na dnes už štandardné, rýchle SD flashky /ZX Spectrum Next ju má v sebe aj s radičom a optimalizovanými inštrukciami pre transfer zabudovanú rovno od výroby/. A hra môže žiť ďalej - C64 Another World koncept v bitmapovom móde.

15/03/10

Mega Drive '92-'93


Když máme letos hento 20. výročí Segy Mega Drive v Evropě, prolistujeme si tu jen rychle jeden dobový katalog od Electronic Arts, co na mě vypadl z nějaké jejich hry (tuším to byla skvělá plošinovka Legend Of Galahad). V úvodu tohoto pro Evropu určeného letáku najdeme dlouhý proslov pana ředitele a již započíná první velká sekce věnovaná sportům, přesněji také Electronic Arts Sports Networks (snaha podobat se skutečným TV přenosům). Na hřiště vbíhá s velkým aplausem NHLPA Hockey '93 - tehdy teprve druhý díl v celé této sérii NHL! Následován je americkým fotbalem John Madden Football '93 - středověká verze dnešních Madden NFL, která koncem 80. let začínala na Commodore 64! Pak zde máme již tehdy excelentní PGA Tour Golf II. Osobně vlastním jeho pozdější verzi "European '94" a je to parádní golf i pro více hráčů současně! Pokračujeme Team USA Basketball a Bulls vs Lakers And The NBA Playoffs. Dále vstupujeme do teritoria EA Air Force, kde se prezentují pecky jako simulátor helikoptéry LHX Attack Chopper nebo excelentní arkádově pojatý Desert Strike. Prvně jmenovaný byl zřejmě portován z IBM PC, Desert Strike je asi Amiga port. Vzdušné síly opouštíme původně megadraivovským akčním simulátorem F-22 Interceptor! Další sekcí je Millennium uvádí a představují se zde série James Pond, z nichž bych doporučil zejména druhý díl Codename Robocod. Vesměs se jedná o lehké plošinovky s výborným ovládáním a excelentní paralax grafikou. Následuje opět exkluzivní hra, pinball Crüe Ball. A již se dostáváme ke skvělým autíčkům od Gremlin Graphics - Lotus Turbo Challenge, v parádní grafice a hře i pro 2 hráče! A aby toho nebylo málo, skvělý Road Rash II.! Excelentní motorkářská jízda plná překvapení nejen na silnici ale i za sedadlem. Na dalším listu je vyobrazena záhadná Furry Friends - nikde o této hře ani zmínky. Buď ji nevydali vůbec nebo přejmenovali. Kdo ví, napoví... A již nastupují se svým nášupem 16-bitoví Psygnosis: Shadow Of The Beast I + II, a již zmiňovaná Galahad. Dále je tu pouze prototypová Zombie High - zřejmě na motivy filmu z roku '87. Pokračujeme víceplatformovou skákačkou Risky Woods a již přecházíme do sekce věnované strategii a adventurám. Je zde Powemonger od Bullfrog, hra postavená na enginu Populouse, opět zřejmě Amiga konverze. Pak se společně s Brøderbund ptáme Where In The World Is Carmen Sandiego a končíme stručnou rekapitulací.



Takže jsme se přenesli aspoň na chvíli někdy do roku 1992, kdy se řešili hry jako Desert Strike či Powermonger a jak vidíte řešili se v top kvalitě i na Sega Mega Drive!