Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

DOSbox - plnohodnotný emulátor DOSu s extrémními nároky

12.10.2005, Eagle , článek
DOSbox - plnohodnotný emulátor DOSu s extrémními nároky
Pokud máte rádi staré hry, jistě jste si po přechodu na operační systém Windows 2000/XP všimli jedné nemilé věci - staré hry určené pro DOS často nefungují. Naštěstí existuje řešení v podobě emulátoru DOSbox, který si poradí prakticky se vším včetně zvuku.
Kapitoly článku:
Kde ho vzít

DOSbox je stejně jako mnoho jiných freewarových produktů hostován v největším open-source hostingu Sourceforge.net - http://dosbox.sourceforge.net. Na stránkách projektu naleznete ke stažení mnoho verzí pro všemožné operační systémy. Přestože DOSbox je primárně určen pro Windows, jsou zde i verze pro Linuxové distribuce a MacOS.

Poslední stabilní verze programu je 0.63. Právě tu si můžete ze zmíněných stránek stáhnout. Rovnou ale řeknu, že to nemáte dělat. Proč? Mnohem zajímavější je stáhnout si verzi nejnovější. Projekty hostované na Sourceforge.net často používají systém CVS (Concurrent Version System), což je v podstatě adresář na serveru dostupný programátorům, do nějž jsou prováděny úpravy kódu. Na projektu tak pracuje několik lidí, kteří nepravidelně aktualizují zdrojový kód, aniž by se o tom veřejně někde publikovalo. Pozitivní zprávou je, že s pomocí programu CVS je možné adresář ze Sourceforge.net stáhnout a poté zkompilovat. Tím lze získat nejnovější verzi, která má vyřešenu řadu problémů s kompatibilitou a nezřídka kdy je rychlejší. Pochopitelně k tomu potřebujete alespoň základní znalosti programování. Nikdo ale neříká, že nutně musíte věc kompilovat sami, můžete si totiž stáhnout již předpřipravené soubory zkompilované někým jiným.

Mimo to lze ze Sourceforge.net získat také patche, které upravují CVS kód. A právě u DOSboxu je to velmi důležité. Od poslední stabilní verze 0.63 uvedené téměř před rokem totiž vyšly minimálně dvě dost zásadní úpravy zvyšující výkon a řada dalších přidávajících nějaké ty funkce. Protože normální uživatel nemá šanci se orientovat ve změti patchů, je pro něj ideální právě ona varianta stažení si předpřipravených souborů. Zde proto nabízím ke stažení velmi rychlou verzi založenou na CVS kódu z října 2005:


Další kompilace CVS kódu najdete na diskuzním fóru k DOSboxu.

Stažení správné verze je poměrně klíčové, protože rychlost je ten největší problém (jako u každého emulátoru). Oficiální požadavky hovoří o tom, že chcete-li hrát hru určenou pro procesor třídy 286, budete na to potřebovat alespoň Pentium II na 400 MHz. A tyto požadavky opravdu nejsou přehnané. Hry vytvořené v letech cca. 1995 až 1998 určené pro procesory třídy Pentium mají i na těch nejrychlejších dnešních strojích veliké problémy. Že byste například mohli hrát hru Quake vydanou v roce 1996 v rozlišení 640 x 480, na to urychleně zapomeňte - na Athlonu 64 FX55 se to jakž takž hýbe v 320 x 200, ono pětinásobné rozlišení 640 x 480 pak ale připomíná spíše snímkování a je zcela nehratelné.

Z hlediska rychlosti je oficiální stabilní verze 0.63 pro Windows bohužel poměrně pomalá (mám například zjištěno, že kompilace pro Linux běží rychleji). A právě proto, jestliže chcete dosáhnout nějakého výkonu, si stáhněte onu podstatně rychlejší verzi CVS uvedenou výše. Mimo samotného DOSboxu vám nabídnu ještě jednu věc - chcete-li zjistit, jak je váš počítač na tom, můžete si také stáhnout shareware verzi Quake obsahující časové demo1. Tuto hru také nabízím ke stažení, přičemž jejím nakopírováním k DOSboxu získáte jeden z testů, který budu používat pro porovnávání výkonu procesorů. Spuštěním příslušného souboru tak budete moct zjistit, kolik snímků za vteřinu je váš počítač schopen zvládnout.


Pro zajímavost dodávám výsledky naměřené na některých počítačích:


Protože starší hry jsou často hodně závislé na výkonu FPU jednotky, není překvapením, že DOSbox běží rychleji na procesorech od AMD. Především generace Athlonů 64 získává znatelný náskok. Zde bych vás ale rád upozornil na jednu důležitou věc - tato verze DOSboxu CVS byla vytvořena s vypnutými optimalizacemi FPU jednotky. Bohužel tyto optimalizace značně snižují výkon a u takového Pentia 4 znamenají propad až na úroveň 1 GHz Athlonu! U Athlonů pak dochází k cca. 20 až 35 procentním propadům. Není mi zcela jasné, proč DOSbox standardně tyto "optimalizace" obsahuje a má je zapnuté. Pro vás z toho ale plyne jedna nepříjemnost - standardní stabilní verze 0.63 s těmito optimalizacemi bude výrazně pomalejší. Na Pentiích 4 pak propad činí více než 60% !

Konfigurace

Veškerá konfigurace DOSboxu je prováděna v textovém souboru dosbox.conf nacházejícím se v adresáři se spustitelným souborem dosbox.exe. Nastavení zde přítomná jsou klíčová pro rychlost provozu a nastavení vlastností hardware. Proto si některé prvky popíšeme.

Skupina [sdl]

fullscreen - Nastavením na true se budou programy spouštět na celé obrazovce. To je vhodné, pokud má hra nízké rozlišení (např. 320 x 200) a byla by v okně příliš malá.

fulldouble - Nastavením na true přikážete používat double buffering, což je technika zobrazování, kdy je na obrazovce zobrazován ne aktuálně renderovaný, nýbrž předchozí snímek To může vyřešit některé problémy se zobrazováním, avšak také to může znamenat menší snížení výkonu.

output - Určuje způsob renderování obrazu. Mód surface používá klasické zobrazení (což je pomalé), mód overlay pak překryvy. Nejlepší jsou ale nastavení ddraw (DirectDraw) a OpenGL, které využívají některé 2D urychlovací funkce grafických akcelerátorů.

Některé CVS kompilace DOSboxu nabízí také OpenGL HQ a Direct3D, které umožňují hardwarovou akceleraci škálování obrazu (o tom dále). Pro spuštění těchto režimů ale potřebujete poměrně výkonnou grafickou kartu.

sensitivity - Nastavuje citlivost myši. Typickým problémem DOSboxu je, že kursor myši se v náročných hrách pohybuje trhaně. Úpravou citlivosti zajistíte, že kursor se bude hýbat jinak rychle, tj. myš bude použitelná. Obvykle je vhodné citlivost z původní hodnoty 100 snížit.

Skupina [dosbox]

machine - Nastavení typu grafického adaptéru. Většinou postačí standard VGA (256 barev), avšak některé staré hry pracují ještě v režimech CGA (4 barvy). Pokud by byl problém se spuštěním hry, zkuste nastavení změnit.

memsize - Velikost paměti přidělená spouštěným programům. Maximum je 63 MB, přičemž některé kompilace nabízí i 120 MB. Typický DOSový program si ale bohatě vystačí s 32 MB paměti.

Skupina [render]

smartupdate - Volba true přikáže renderovat pouze ty snímky, které jsou rozdílné oproti předchozím. Jedná o jeden ze dvou patchů, které mají razantní vliv na výkon. V 3D akčních hrách s neustále se měnící scénou nelze zaznamenat rozdíl, avšak například při spouštění hry, kdy hra dekomprimuje veliké soubory s daty, je takto možné vynechat tisíce snímků a ušetřený výkon procesoru věnovat samotným výpočtům prováděným hrou. Tak například načítání hry Quake je takto o několik řádů rychlejší

frameskip - Položka umožňuje vynechávat renderování zvoleného počtu snímků. Volba 1 tak vynechá každý druhý. Hře se bude jevit vše v normálu, a tak například vypočítá 30 snímků za vteřinu. Protože ale každý druhý nebude zobrazen, objeví se na obrazovce pouze 15 snímků. Takto je možné výrazně ušetřit výkon procesoru a tím dostat hru do provozuschopného stavu, byť za cenu menší plynulosti zobrazení.

scaler - Umožňuje škálovat obraz s nízkým rozlišením na vyšší hodnoty. Takto je možné prťavý obraz 320 x 200 pixelů roztáhnout na 640 x 400. Volby none, normal2x, advmame2x, advmame3x, advinterp2x, interp2x, tv2 určují použitý typ roztažení (kvalitu) a navzájem se liší také nároky. Nastavení má obrovský vliv na výkon a obecně doporučuji ponechat hodnotu none a v případě malého obrazu použít full screen režim.

Skupina [cpu]

core - Určuje typ použité emulace jádra. Ponechte dynamic.

timesynched - Druhá klíčová úprava CVS kódu. Umožňuje automatickou regulaci počtu emulovaných cyklů (viz položka cycles). Silně doporučuji nechat zapnuté, protože si tak ušetříte spoustu starostí s hledáním optimálního počtu cyklů.

cycles - Udává počet emulovaných cyklů procesoru. Vysoká hodnota umožní hrám běžet rychleji (vyšší počet cyklů simuluje rychlejší počítač), avšak značně zvyšuje zátěž na procesor. Pokud je zatížení procesoru vyšší než 100 procent, znamená to, že některé snímky nebudou vyrenderovány, přestože hra si bude myslet, že renderovány jsou. Proto je důležité udržet tuto hodnotu na co nejvyšším zatížení procesoru, ale nikdy ne na 100 procent. To je samozřejmě velmi složité a pro každou hru individuální. Hledání optima je tak časově velmi náročné. V případě použití timesyched tato položka udává maximální povolený počet emulovaných cyklů - aktuálně emulovaný počet je řízen automaticky výpočtem.

Skupina [sblaster]

V této skupině se nachází nastavení zvukové karty. Doporučené je zvolit typ sb16 (Creative Labs Sound Blaster 16), což je 16bit stereofonní ISA zvuková karta schopná CD kvality, navíc zpětně kompatibilní. Možné je zvolit i původní 8bit monofonní Sound Blaster či jeho stereo variantu Sound Blaster Pro.

Ptáte-li se, proč právě Sound Blaster, pak odpověď je jednoduchá - tato karta byla svého času velmi kvalitní a stala se synonymem toho, co má být použito. Všechny ostatní zvukovky pak více či méně emulovaly Sound Blaster a všechny hry podporovaly právě tento typ karty.

base, irq, dma, hdma - Určuje nastavení emulace zvukové karty. Pod DOSem se všechny zvukové čipy musí konfigurovat pomocí programů Setup dodávaných k jednotlivým hrám. V těch se nastavují adresa, přesušení a DMA kanál (a případně také High DMA kanál). Doporučené hodnoty pro karty Sound Blaster 16 jsou adresa 220, IRQ 5, DMA1, HighDMA 5. U starších karet Sound Blaster se používalo IRQ 7. Dodržení obvyklého nastavení je důležité z toho důvodu, že řada Setupů má pouze omezený rozsah voleb, a není tak možné zvolit jiné IRQ hodnoty.

oplmode - Typ použité MIDI syntézy. V DOSových hrách se pro zvuk používají klasické nahrané zvuky. Pro hudbu se ale často používá systém MIDI, což je v podstatě záznam tónu, které má zvuková karta přehrát. V zásadě existují dva režimu - emulace OPL a wavetable syntéza. Druhý zmíněný pracuje tak, že karta má v paměti ROM uloženy záznamy zvuků jednotlivých nástrojů. To je velmi kvalitní režim, ale většina tehdejších zvukových karet ho neuměla (z těch, které ho uměly, jmenujme například Sound Blaster AWE32 a Gravis Ultrasound). Proto DOSbox emuluje OPL syntézu, kdy jsou zvuky tvořeny jakousi emulací (výsledek sice nic úžasného, ale pro ilustraci to stačí). Jednotlivé čipy Sound Blaster se liší použitým OPL. Nejlepší je zvolit režim OPL3 použitý u karet SoundBlaster 16.

Některé příkazy DOSboxu

DOSbox se ovládá prakticky stejně jako operační systém DOS. Po spuštění se objeví příkazová řádka.




Narozdíl od DOSu ale nemáte standardně přístupné adresáře pevného disku. Ty musíte nejdříve připojit, podobně jako je tomu v Linuxu. Použijete příkaz

mount cíl zdroj

...kde cíl je jméno jednotky, pod kterou bude adresář dostupný a zdroj je umístění na pevném disku. Takže například příkaz mount c c:HryPanzer zpřístupní adresář s Panzer Generalem jako jednotku c:. Zapsáním příkazu C: se pak přepneme na diskový oddíl c, odkud už můžeme hru spustit. Do adresářů se přepíná příkazem cd c:adresar, případně cd adresar.

Tento typ mapování v podstatě připomíná DOSový příkaz Subst - hra se nekopíruje do paměti, vše se čte z pevného disku. Proto i případné uložené pozice v hrách se ukládají přímo na váš pevný disk do zdrojového adresáře.

Soubory v adresáři můžeme prohlížet příkazem Dir /p.




DOSbox samozřejmě umí i další příkazy DOSu jako například výpis obsahu (type), nicméně pro běžné hraní to již není potřeba. Podrobné informace o dostupných příkazech získáte příkazy Help a Intro.

Jako zajímavý doplněk slouží možnost změny souboru dosbox.conf ve skupině [autoexec]. Tam můžete napsat příkazy, které chcete, aby DOSbox vykonal ihned po spuštění. Můžete tak namountovat několik adresářů současně či přímo vyžádat spuštění nějaké té hry.

Kde vzít hry

Pokud byste si rádi zavzpomínali na některé ze starších titulů, ale již je nemůžete ve svém archivu najít, řešení je vcelku jednoduché. Stačí do vyhledávače (jakým je např. Google) zadat heslo "abandonware". Takto můžete najít mnoho stránek přímo se zabývajících tématikou starých her. Tou největší a nejlepší je patrně známý server Home of the Underdogs (http://www.the-underdogs.org/), kde najdete stovky až tisíce titulů počínaje těmi nejstaršími z osmdesátých let až po některé nejnovější.



Některé starší hry byly převedeny do prostředí Windows 9x (např. zde zobrazená legendární hra UFO: Enemy Unknown). Většina jich ale stále vyžaduje DOS.

Z těchto serverů si pak můžete vaše oblíbené "pařby" stáhnout a často se o nich i něco dozvědět. Konkrétně třeba Home of the Underdogs u každého titulu uvádí popis, hodnocení redaktora, hodnocení čtenářů, informace o vydavateli a odkaz na stažení, případně odkaz na prodejce, pokud je hra stále v prodeji. Mezi těmi nejlepšími tituly jsou samé perly - Master of Orion, Populous II...

Protože ale často abandonware servery nabízejí cracknuté verze (tj. verze modifikované tak, aby například nevyžadovaly originální médium CD nebo takové, z kterých byly odstraněny animace, videa či jiné části, aby bylo možné výrazně redukovat velikost), můžete se někdy cítit ošizeni. Nalézt původní verze se vším všudy není úplně jednoduché. Především u her na celé CD to bývá problém a na webu je nikde nenajdete. Naštěstí i v tomto případě můžete mít štěstí - klíčovým faktorem úspěchu je zde Peer-to-Peer program eMule (http://www.emule-project.net), případně některý z Torrentů. Řada uživatelů sdílí kompletní verze her, které už mnoho let nikde neseženete.




Stahování her z P2P sítí trvá obvykle hodně dlouho a není pro netrpělivé uživatele. Zda se čekání vyplatí, nechám již na vás.

V této souvislosti bych vás rád upozornil, že zákon 121/2000 Sb. nedovoluje pořizování kopií počítačových programů pro vlastní potřebu. Veškerou tuto činnost provádíte na vlastní zodpovědnost a redakce Světa hardware vás k takové činnosti nenavádí. Ustanovení zákona se vztahuje i na programy, které se již neprodávají.

Pokud máte chuť a chvilku času, budu rád, když si stáhnete zde nabízený test a napíšete do diskuze, jak rychle se kombinace DOSbox + Quake hýbe na vašem počítači.