Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

PlayStation 2 pod drobnohledem

  12:00aktualizováno  11. března 7:20
Je PlayStation 2 skutečně tak složitá pro programování? Co se dá dělat s Linux kitem? Jaký je rozdíl mezi NTSC a PAL normou? Dá se fps odhadnout pouhým okem? Tyto a ještě jiné otázky vám pomůže zodpovědět tento článek!

S ohledem na skutečnost, že v daných oblastech nejsme až tak fundovaní, přizvali jsme si na pomoc odborníka, jemuž jsme položili klíčové otázky nejenom ohledně videoherního systému PlayStation 2.

1) Ahoj Martine. Dříve než začneme mě napadá, že by nebylo od věci, kdyby ses čtenářům profesně trochu blíže představil a dal tím tak našemu povídání jistou dávku relevantnosti.
Jmenuji se Martin Jakl, je mi 27 let a posledních 7 let pracuji jako programátor u firmy MIS AG, kde děláme na výrobě OLAP serverů. Psaní her není moje práce, ale spíš soukromý zájem o to, jak hry fungují a jakým způsobem se co dělá. Programování mne lákalo už od malička; třeba takový BASIC jsem se naučil z okopírovaného manuálu k ZX Spectru dlouho předtím, než jsem viděl první počítač.

2) A jak jsi na tom s hraním?
Moje herní minulost je poměrně jednoduchá. Někdy v roce 1987 jsem začal chodit do počítačového kroužku, kde byla ZX Spectra a jedno PC (Schneider EuroPC s grafickou kartou Hercules). V roce 1989 mi rodiče koupili Didaktik Gama a potom tak v roce 1991 PC. Když jsem se začal živit programováním, začalo mi hraní na PC vadit, protože jsem měl pocit, že bych místo hraní mohl dělat něco užitečnějšího a navíc, začínal u PC her trend, že připravit počítač tak, aby na něm hra šla spustit trvalo skoro déle než vlastní hraní. Oba problémy jsem v roce 1997 vyřešil nákupem PlayStationu a docela mě zaskočilo, že hraní něm má určitou šťávu, která PC titulům skoro úplně chybí. Možná, že to je ovladačem, možná tím, že u toho člověk může ležet v posteli, možná něčím úplně jiným, ale PlayStationové hry mě dokázaly vtáhnout mnohem víc, než nejlepší PC věci, takže jsem na PC postupně přestal hrát úplně. No a v roce 2000 jsem zcela plynule přešel na PS2.

3) No to jsme na tom zhruba stejně. Ale shodou okolností vím, že jsi jeden z mála lidí u nás, kterému se tak trochu podařilo spojit koníčka i profesi tím, že sis k PS2 sehnal "Linux kit" a zkoušíš na ní sám něco jen tak udělat. Mohl bys říci pár slov k obsahu "linux kitu"? Co všechno potřebuješ k tomu, abys na PS2 mohl něco vytvořit?
Linux kit obsahuje harddisk, network adapter, klávesnici, myš, manuály s popisy procesoru, GPU a VPU (tzn. vector processing units, v PS2 jsou dva a jsou to vlastně části, které mu dodávají největší sílu, mohou se chovat jako samostatné procesory nebo koprocesory), DVD s instalací Linuxu a DVD s takzvaným Runtime Environment (RTE). Nejdůležitější součástí je patrně právě RTE. Trochu zjednodušeně řečeno je RTE vlastně disk, který po nabootování načte a spustí z paměťové karty nějaký kód. Může to být Linuxové jádro nebo cokoliv, co jsi vytvořil. RTE zároveň zabraňuje přímému přístupu do BIOSu, takže zablokuje přístup k některým funkcím PS2 (mechanika nedetekuje Audio CD a DVD Video apod.).
Aby se dalo něco vytvořit je k tomu ještě zapotřebí textový editor, překladače, které vytváří kód pro procesor a VPU (jsou k nalezení v distribuci Linuxu). S tímto základem pak lze vytvořit buď program, jenž běží pod Linuxem a nebo program, který Linux zcela obchází a běží přímo pod RTE, což je ovšem o dost složitější, zvlášť kvůli tomu, že Sony tutlá dokumentaci k BIOSu PS2. Takže vlastně by teoreticky stačilo to RTE na spouštění a zbytek by se dal klidně udělat na PC s cross-compilerem (překladač, který vytváří kód pro jiný procesor, než na jakém běží) a čtečkou Memory karet, ale byl bys omezen velikostí Memory karty.

4) A jaké to je pracovat s PS2 na amatérské úrovni?
Na jedné straně je radost z objevování jak to funguje a na straně druhé frustrace ze špatné dokumentace a z toho, že to nedělá to, co sis představoval, ale zase je pak o to větší uspokojení, když přijdeš na skutečnost, proč to nefungovalo. Někdy převáží radost, někdy frustrace. Je to stejné jako při jakékoliv jiné činnosti.

5) Když už jsme u toho programování pro PS2 tak mě napadá, na jakém stroji se vůbec PS2 hry dělají na profesionální úrovni?
Říká se tomu PS2 Tool a jde vlastně o obdobu Linux kitu určeného pro nás nadšence s několika "drobnými" rozdíly. V základě je to vlastně také PS2, jenom s větší operační pamětí, na které běží rovněž Linux. Hlavní rozdíl bych pak viděl ale v kvalitnější dokumentaci a větším množství knihoven, které jsou s PS2 Toolem dodávány.

6) PS2 je obecně považována za velmi komplikovanou architekturu k programování. Dají se ze tvých zkušeností vyvodit nějaké odpovědi na to "proč"? A jaký je případně pro programátora největší rozdíl mezi ní a PCčkem?
Komplikovanost PS2 je z velké části fáma, která podle mne vznikla díky tomu, že Sony ze začátku nedodávala k vývojovým kitům v podstatě žádné knihovny a vývojáři byli nuceni psát úplně všechno od začátku, ale to se už dávno změnilo. Takže přesnější by bylo říct, že PS2 je velmi odlišná platforma, která vyžaduje poněkud jiný přístup. Hlavní rozdíl mezi PS2 a PC bych viděl v tom, že zatímco v PC se věci dějí postupně (nevím o hře, která by byla optimalizována pro víceprocesorové PC), tak PS2 je postavená tak, aby se v ní mohlo dít co nejvíce věcí najednou. Takže je důležité rozvrhnout kód a data tak, aby je bylo možno paralelně zpracovávat, tzn. aby jedna operace nebyla závislá na výsledku té předešlé. Někdy tedy může být problém zajistit, aby se žádná část PS2 „neflákala“. Ze začátku vývojáři vůbec nepoužívali VPU, jenže tím vlastně nechali ležet ladem nejvýkonnější část PS2. VPU jsou v podstatě procesory specializované na paralelní zpracování matematických operací v plovoucí čárce. V zásadě se většinou používá model, že se PS2 „rozdělí“ na dvě části, kdy jednu tvoří EE Core (Emotion Engine se skládá z několika částí EE Core, VPU0, VPU1 apod. EE Core je vlastně CPU s FPU) a VPU0 v koprocesorovém módu a druhou VPU1 v procesorovém módu. Obě tyto části mají pak samostatnou cestu do GS. Takže se dá scéna rozdělit na dvě části, třeba prostředí a postavy. Postavy se zpracují na CPU a VPU0 a prostředí na VPU1 a všechno se to pak smíchá až v GS. Nevýhodou může být, že VPU se dají programovat pouze v assembleru a to ještě rozdílném pro procesorový a koprocesorový mód.

7) Jaké bys z té komparace vypíchl největší výhody PS2, jsou-li nějaké? Když se totiž člověk jako laik podívá na specifikace PS2 (potažmo konzolí vůbec), určitě si musí položit otázku, jak je možné, že po vizuální stránce stále dokáže PS2 v určitých oblastech konkurovat i high-endovějším PCčkům. Vždyť CPU na 300 Mhz, 32 MB RAM či ty 4 MB RAM pro GPU... to dneska vypadá poměrně slabě.
To je srovnávání jablek s hruškama. Emotion Engine je sice na 300 MHz, ale nesmíš zapomenout na to, že je 128 bitový a je v něm několik samostatných částí a každá z nich ještě umožňuje paralelní zpracování dat, což mu dává celkový výkon 6,2 GFLOPS, což je zhruba třikrát více než kolik má například Athlon XP 1800+. V SCE zcela správně vyšli z předpokladu, že hry jsou v podstatě krátké cykly, které zpracovávají velká množství dat v plovoucí čárce a celý systém proto takto optimalizovali. 32 MB RAM se, pravda, může zdát trochu málo, protože paměti není nikdy dost, ale v PS2 nejsou žádné Windows či jiný operační systém, co by ji zbytečně užíraly a jak je vidět z těch lepších her - dá se s tím vyjít. Těch 4MB je taková cache GS. Je v ní umístěn frame buffer a čte se z ní aktuální textura. Při běžné práci potřebujeme dva frame buffery (při PAL rozlišení má každý 640KB) a jeden Z-Buffer (dalších 640KB). Zbytek, tedy více než 2MB, jsou na textury. PS2 má dostatečně rychlé sběrnice, aby se textury daly během renderování měnit. Navíc pro většinu textur stačí 4 bitová paleta, takže je vidět, že 4MB jsou dostatečné množství.

8) A co TV? Nepředstavuje nějaký limitující/zvýhodňující faktor pro využití potenciálu HW v případě konzolí? Přeci jenom u běžných televizí je rozlišení omezené na nějakých 640x480 bodů, což je v porovnání s monitory poněkud málo. Sony navíc kupříkladu specifikací HW PS2 uvádí mnohem lepší zobrazovací schopnosti, než TV umožňuje.
Na začátek malé vysvětlení, aby bylo jasné, o čem budu dál mluvit. HDTV má několik režimů, nejpoužívanější jsou 480p (s rozlišením 720x480), 720p (s rozlišením 1280x720) a 1080i (s rozlišením 1920x1080). PS2 podporuje HDTV a VESA a největší rozlišení je 1920x1080 pro HDTV režim 1080i, ale neexistuje žádná hra, která by podporovala VESA nebo 1080i a hry, které podporují 480p se dají spočítat na prstech jedné ruky. Na druhou stranu je ovšem pravdou, že v případě použití 1080i by ty 4MB pro framebuffer mohly být už nedostatečným množstvím a HW PS2 (potažmo konzolí obecně) tak ani v zásadě nepočítá s jeho využitím. Rozlišení PAL televize je 640x512 a vzhledem k tomu, že na televizi se díváš zhruba z desetkrát větší vzdálenosti než na monitor, je to dostačující. Třeba NTSC televize mají rozlišení 640x448, což už je trochu málo a obraz je tak poněkud řídký a jsou vidět mezery mezi řádky. Nízké rozlišení může být problém, pokud je zapotřebí zobrazit titěrnější věci. Tohle už je ovšem čistě záležitost game designu, pročež hlavně klasické 2D RTS takového stylu - jako jsou na PC - nejsou pro konzole příliš ideální. Dá se na to pochopitelně jít trošku jinak, čehož příkladem může být třeba Warzone 2100 z PSOne.

9) Takže schopnost HDTV, LCD či plasmové TV pracovat ve vyšších rozlišeních je nám prozatím k ničemu. Ale co třeba progresivní scanování? Jeho podporu už přeci jenom najdeme u řady titulů; mohl by si říci něco bližšího k němu?
HDTV má různé módy, které se dělí na p(progressive) a i(interlaced), zatímco normální televize je jenom interlaced. "I" značí, že každý lichý obnovovací cyklus se obnovují liché řádky a každý sudý sudé. Při "P" se každý cyklus obnovují všechny řádky. Pro vývojáře to v praxi znamená, že pokud tedy vyvíjí hru pro běžnou "I" PAL televizi, která má rozlišení 640x512, tak vlastně stačí renderovat pouze obrázky o velikosti 640x256, protože se obnovuje každý druhý řádek. Kdežto když vyvíjejí hru pro 480p, které má rozlišení 720x480, musejí renderovat obrázky o této velikosti. Takže pokud bys chtěl dělat hru, jež podporuje oba režimy, musíš počítat s tím větším a může tě to limitovat v maximální velikosti textury apod. Progresivní scanování nemá v kontextu her smysl. Tento pojem se zavádí u DVD přehrávačů, videokamer apod. Vlastně to znamená, že dané zařízení načítá dopředu interlaced záznam a převádí ho na progressive výstup. Ale vzhledem k tomu, že to nemá přímou souvislost s hrami, tak bych se radši nepouštěl do přílišných podrobností. Upřímně řečeno, tyhle různé televizní normy nám byl čert dlužen a doufám, že co nevidět se celý svět sjednotí na jedné nebo maximálně dvou. Třeba zrovna HDTV a jeho 480p a 1080i.
Myslím, že jasnější už to být nemůže. Každá televizní norma má zkrátka určité rozlišení a určitou obnovovací frekvenci. Takže ta hra musí běžet v tom samém rozlišení a té samé frekvenci!

10) Rozlišení bychom tedy měli, ale napadá mě ještě co obnovovací frekvence u TV? Není tohle do určité míry rovněž limitující/zvýhodňující faktor? Proč je např. u PC doporučeno 85Hz a u TV bývá standard 50Hz? A jaký je rozdíl při sledování 100Hz TV a 50Hz televize?
Zásadní rozdíl je ve vzdálenosti. Kdybys koukal na televizi z takové vzdálenosti, jako se díváš na monitor, tak tě za chvíli z toho blikání pěkně rozbolí hlava (ale mně třeba bolí hlava i z monitorů a musím mít LCD:)). PAL televize má 50Hz a při vzdálenosti 2-3 metry je to dostačující. 100Hz televize musejí načítat signál dopředu a pak buď střídat snímky nebo dopočítávat mezisnímky. V každém případě to, co vidíš na obrazovce, je pár snímků pozadu proti tomu, co bys vidět měl a to může být fatální třeba pro hry se světelnou pistolí, protože pistole nevidí to, co má. Můj názor je, že pokud se nebudu dívat na televizi nalepen na obrazovku, tak 100Hz televize nijak výrazné zlepšení nepřináší, za to má spoustu nevýhod. Zase lepším řešením by byl přechod na HDTV (ta obecně používá 60Hz a stačí to). Nemyslím si, že by obnovovací frekvence byla v čemkoliv limitující. Pouze se musí dodržet zásada, že fps musí být v souladu s obnovovací frekvencí.

11) Zmínil jsi zkratku fps, mohl bys vysvětlit lapidárně co to znamená? Pro co je počet fps klíčový a do jaké hodnoty?
Fps znamená frames per second, tedy česky počet snímků za sekundu. Nějakou dobu jsme se bavili o obnovovacích frekvencích televize a teď se dostáváme k tomu, co vlastně televize zobrazuje. Jde vlastně o to, kolik snímků hra vypočítá a televizi předhodí k zobrazení. Film v kině běží na 24 fps a to je zcela dostačující číslo pro plynulou animaci. Je tady ovšem jedno důležité pravidlo, fps musí být v souladu s obnovovací frekvencí televize nebo monitoru. Pokud tato podmínka není splněna, nelze dosáhnout plynulé animace. Takže pokud například dělám hru pro PAL televizi, která má obnovovací frekvenci 50Hz, mám na výběr 25, 50, 100, 150, 200, … fps. V praxi tedy 25 nebo 50 fps. Fps vlastně znamená, kolikrát proběhne hlavní cyklus hry, tudíž kolikrát se přečtou ovladače, kolikrát se spočítá AI a kolikrát se vyrenderuje obraz. Má tudíž také určitý vliv na citlivost ovládání a proto je spíš ideálem 50 fps. Ale je to trochu mýtus.

12) Dá se pouhým okem rozeznat, při kolika fps hra běží? Pokud nikoli, kde se berou ty běžně uváděné hodnoty, že ta která hra má konstatních 50fps atd.?
Speciálně kvůli této otázce:) jsem si napsal takový testovací prográmek, který správně přepočítává rychlosti a zobrazuje 50 fps nebo 25 fps v PALu a 60 a 30 fps v NTSC a zcela odpovědně musím prohlásit, že rozdíl ve snímkování se poznat nedá. Co se dá poznat velmi snadno je nepravidelný framerate nebo framerate, který není v souladu s obnovovací frekvencí televize. Spousta lidí zaměňuje rychlost hry s rychlostí snímkování, ale tyto dvě věci spolu souvisí pouze tak, že při vysokých rychlostech (třeba 100 m/s) by se při 25 fps mohla animace a ovládání jevit neplynule. Přece jenom urazíš mezi snímky čtyři metry a to už může být dost. Při běžných rychlostech se prostě rozdíl poznat nedá. Teda úplně přesně já a nikdo z lidí, kterým jsem to ukazoval, rozdíl poznat nedokázali. Kde se berou čísla o počtu fps opravdu netuším, jediný kdo je zná, jsou vývojáři té které hry. Recenzenti a hráči si je prostě cucají z prstu. Vysvětleme si to na příkladu. Mějme hru, kde vývojáři plánovali 50 fps, ale nevyladili dost engine a ten jim v průměru dělá 45 fps, takže se jim 40 snímků zobrazuje jeden obnovovací cyklus a 5 snímků se zobrazuje 2 cykly a rázem je animace neplynulá. Kdežto kdyby ta hra běžela na 25 fps, každý snímek by se zobrazoval 2 cykly a animace by byla zcela plynulá. Z toho nám vyplývá, že 25 je lepší než 45. No a nevzdělaní recenzenti by tvrdili, že ta verze s 25 fps má rock solid 50 fps (přesně toto se stalo u hry ICO), kdežto u verze s 45 fps by tvrdili, že má tak 20 – 25 fps.

13) Poměrně často jsme svědky poklesu fps ve hrách, které má za následek rušivé trhání obrazu. Znamená to, že vývojáři měli velké oči a hardware nestíhá, nebo se ve většině případů jedná o špatně optimalizovaný software?
Tvorba hry je vždy hledáním kompromisu mezi tím, co bych chtěl udělat a mezi tím, co se dá udělat. Na konzoli je to o něco snazší než na PC, protože znám přesně jednotné specifikace HW, na kterém hra poběží. Na druhou stranu je pravda, že výpočet každého snímku zabere trošku jiný čas, takže mám třeba na výběr z toho, že mi buď všechno pojede plynule, ale v naprosté většině času nebudu z HW vymačkávat maximum, nebo se z toho pokusím vytlačit víc a holt se to někdy zatrhá. Je to prostě o tom najít tu rozumnou míru. Bohužel se také často stává, že vývojáři se na jakoukoliv optimalizaci vykašlou, obzvláště často jsem toho svědky u konverzí z PC. PC vývojáři nejsou zvyklí optimalizovat, protože u PC neexistuje žádný cílový hardware. A bohužel se vždy najde dost lidí, kteří si i takto špatnou konverzi koupí, takže k optimalizaci nejsou nuceni ani tržními tlaky. Ale takový je život.

14) Jak to, že papírově výkonnější Xbox má větší problémy s tím, udržet konstantně vysoký framerate (50/60 fps) - oproti PS2?
Xbox a PS2 se dají dost těžko výkonnostně srovnávat, protože jsou každá stavěná úplně jinak. Když přimhouříme obě oči, dá se říct, že Xbox má o něco výkonnější GPU, ale ve všech ostatních aspektech je slabší. Ale jak říkám, dá se to těžko srovnávat, protože třeba transformace se u Xboxu dělají v GPU a u PS2 v CPU, proto každý dává větší výkon různým částem. Řekl bych, že hlavní problém Xboxu je ve velkém nepoměru výkonnosti GPU a CPU a rychlostí sběrnic. Silná GPU svádí vývojáře ke komplexní grafice, ale ta se pak nestíhá přenášet po poměrně pomalých sběrnicích, nebo CPU nestíhá rozhodovat o pohybu velkého množství polygonů. Ten kompromis, o kterém jsem hovořil, se prostě u Xboxu hledá hůř, protože je dle mého špatně vyvážený.

15) Čím to, že hry běhající v normě NTSC mívají pravidelně vyšší snímkování než ty v PALu? V čem je mezi oběma rozdíl a dá se ztotožnit současná, v mnoha hrách přítomná volba 50/60 hz s volbou PAL/NTSC?
Je to přesně tak - NTSC má obnovovací frekvenci 60 Hz, tudíž musí používat 60 nebo 30 fps. A volba ve hrách prostě znamená PAL/NTSC.

16) Má v sobě PS2 proklamovanou zvukovou normu DTS a 5.1.? Proč se v ní nedělají všechny hry a co to vlastně znamená?
PS2 nemá žádný HW encodér prostorového zvuku. Osobně bych to označil za její největší chybu. Prostorový zvuk se proto musí počítat na CPU, pročež se častěji používá DTS nebo DPLII než DD, které má přílišnou kompresi a "zbaštilo" by to tedy příliš mnoho výkonu. Že se tak nedělají všechny hry bych viděl ve dvou příčinách:
a/ Hra potřebuje všechen výkon pro sebe a nezbývá na kódování DTS.
b/ Za použití DPLII i DTS se musí zaplatit licenční poplatky Dolby respektive DTS.

17) A... ehm... co teď zrovna paříš a na co se nejvíc těšíš?
Díky tomu, že leden a únor byly z herního hlediska totálně mrtvé měsíce, tak mi nezbývá než hrát Final Fantasy V a ještě jsem se po několikáté pustil do Silent Hillu 2. Momentálně se nejvíce těším na Wild Arms 3, Silent Hill 3, Primal a Tomb Raider: Angel of Darkness.

Dík za rozhovor.

Za BonusWeb se ptali: Jan Spáčil & Martin Kaller

Autor:




Nejčtenější

Outlast (PlayStation 4)
Co budete hrát o víkendu?

Prozraďte, na které hry se chystáte o víkendu. Pustíte se do něčeho nového, nebo rozehrajete nějakou klasiku?  celý článek

WipEout: Omega Collection
Ohlášený soundtrack k WipEoutu vám vylepší pátek

Sony zveřejnilo soundtrack k futuristickým závodům Wipeout, který potěší všechny milovníky elektronické hudby.  celý článek

Fallout 4 (Xbox One)
Vyzkoušejte si o víkendu Fallout 4 zdarma

Během víkendu je Fallout 4 na Steamu a službě Xbox Live Gold k vyzkoušení zcela zdarma. Pokud jste ještě náhodou neměli tu čest, vřele doporučujeme.   celý článek

Far Cry 5
Ve Far Cry 5 budeme bojovat proti fanatické sektě, hra vyjde až v únoru

Ve Far Cry 5 navštívíme současnou americkou Montanu. Namísto obdivování přírodních krás se však pustíme do křížku s fanatickou sektou, která pomocí zbraní...  celý článek

Mirror’s Edge
Fallout 3 lze dohrát za 18 minut, Prey za 8. Fenomén speedrunningu

Speedrunning je zvláštní herní disciplína, jejímž cílem je dokončit danou hru co nejrychleji. Kromě základních pravidel, jakými jsou především zákaz používání...  celý článek

Další z rubriky

Far Cry 5
Ve Far Cry 5 budeme bojovat proti fanatické sektě, hra vyjde až v únoru

Ve Far Cry 5 navštívíme současnou americkou Montanu. Namísto obdivování přírodních krás se však pustíme do křížku s fanatickou sektou, která pomocí zbraní...  celý článek

Overwatch
Zahrajte si o víkendu zadarmo střílečky Overwatch a Rising Storm

Populární střílečky rozšiřují nabídku her, které si můžete tento víkend vyzkoušet zdarma. Vybere si každý.  celý článek

Forza Horizon 3: Hot Wheels
RECENZE: Ve Forze Horizon 3: Hot Wheels si zajezdíte v angličácích

Umění přídavného obsahu spočívá v tom, že se známé věci z originální hry obohatí o něco nového a nevídaného. Jako ve Forza Horizon 3: Hot Wheels.  celý článek

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.