Might and Magic I-V na Windows XP a vyšších v emulátoru DOSBox

Předem musím upozornit, že následující článek se týká pouze IBM/Tandy neboli tzv. DOS verzí Might and Magic, tedy verzí, které jsou primárně určeny pro operační systém MS-DOS. V tomto ohledu záleží na kontextu, v jakém se na jednotlivé díly série díváme. V 80. letech minulého století existovala celá řada osobních počítačů (PC), které mezi sebou zápasily o místo na slunci, a mnoho her bylo díky tomu vyvíjeno nebo portováno pro širší okruh počítačů. Pokud zůstaneme u západní produkce, tak nejvýznamnějšími zástupci PC byly Apple II, Commodore 64, IBM PC a jeho konkurenční klon Tandy, Mac a Amiga. Na počátku 90. let zaznamenalo IBM PC raketový růst a označení PC se v Evropě stalo v podstatě synonymem pro tuto jednu konkrétní platformu (IBM už navíc při konstrukci těchto počítačů dávno nehrálo prim). S IBM PC je od počátku spojen operační systém DOS, ovšem ten nebyl jen doménou IBM PC, nicméně pokud hovoříme o DOSových hrách, máme obvykle na mysli kombinaci (IBM) PC a MS-DOSu. Z pohledu kompatibility je proto výhodnější mluvit o těchto verzích her jako o DOS verzích, protože všechny předchozí díly si snadno spustíte v prostředí MS-DOSu i na novějších PC.

Série Might and Magic byla původně vyvíjena pro počítače Apple II, ale oba první díly byly záhy portovány i na počítače IBM/Tandy a od třetího dílu pak byl vývoj série přesunut už jen na (IBM) PC. Odtud pak vznikaly porty na další počítače té doby (např. Amiga, Mac). Díky tomu tvoří DOSové verze Might and Magic I-V ucelenou řadu, které konkurují jen počítače Mac. DOSové verze Might and Magic I-V jsou však v současné době asi nejznámější a snadno sehnatelné (abandonware nebo oficiální distribuce přes GOG apod.). Proto se budu v tomto článku věnovat právě jim.

Poznámka: původní text článku vznikal v roce 2008, takže v průběhu následujících 10 let jsem musel párkrát zasáhnout drobnými edity, ale ani dnes (rok 2018) není potřeba rozsáhlejší editace. Základní smysl emulace a virtualizace je pořád stejný a stejná zůstala i jejich aplikace, jen je to dnes díky výkonnějším procesorům mnohem jednodušší. Článek jsem nicméně trošku upravil (omladil), rozšířil o úvod, oddělil stať o virtualizaci a přidal jsem pasáž o použití konfiguračních souborů jako parametrů DOSBoxu.

V krátkosti o virtualizaci a emulaci

Virtualizace je v našem kontextu použití speciální druh emulace, kdy se neemuluje komplet celá platforma (počítač), ale vzniklý virtuální stroj využívá shodné architektury hostitelského procesoru, takže k němu má přímý přístup (tzv. nativní virtualizace). Výhoda je zřejmá, běžící aplikace komunikují přímo s daným procesorem (jádrem) a jsou tím pádem svižnější. Funguje to však jen tehdy, pokud existuje vzájemná kompatibilita mezi použitým procesorem a danou aplikací. Virtualizace začala mít na domácích PC smysl až s příchodem vícejádrových procesorů a poprvé jsem jí tu zmínil ke konci roku 2013. U vícejádrového procesoru si totiž můžete dovolit celé jedno jádro přiřadit virtuálnímu stroji, zatímco druhé jádro nadále ovládá chod samotného počítače (hostitelské PC).

Emulace je oproti tomu mnohem uzavřenější a emulátor při ní simuluje komplet hardwarovou platformu, která nemusí mít s hostitelským PC nic společného (např. emulace Amigy na PC). Díky tomu je však emulace mnohem pomalejší a vyžaduje dostatečný výkon na straně hostitelského PC. Jak jsem naznačil v předchozím odstavci, u virtualizace se část prostředků také emuluje, ale dopad na výkon už není tak drastický, jako emulace odlišné procesorové architektury.

Navenek vypadá virtualizace hezky, ale z pohledu běžného uživatele je mnohem náročnější na prvotní nastavení a obsluhu. Virtualizační software vám poskytne jen virtuální stroj, který se v základu chová jako holý počítač. V první řadě na něj tedy musíte nainstalovat operační systém, což se v případě MS-DOSu nebo Windows neobejde bez licence a pak musíte provést úvodní nastavení operačního systému. Je to stejné, jako byste instalovali operační systém na skutečný počítač. Nastavení MS-DOSu pak může být pro mnohé oříšek, připomenu např. hrátky s uvolněním horní paměti, nebo nutnost instalace ovladačů zařízení a nastavení jejich konfigurace. Virtualizační software vám navíc nemusí poskytnout vše, co je pro provoz her nutné, problémy jsou nejčastěji s emulací zvukové karty. Smysl virtualizace tkví hlavně v provozu virtuálního stroje se staršími verzemi Windows (Windows 98 SE a Windows XP), což je třeba způsob, jakým do určité míry funguje režim kompatibility od Windows 7 Professional výše. Pro DOSové hry se mnohem více hodí emulace v prostředí DOSBoxu, který je navíc přímo vyvíjen s ohledem na potřeby hráče.

Pokud byste na virtualizaci přeci jen lpěli, nebo si jí chcete jen vyzkoušet, tak doporučuji sáhnout po Virtual PC od Microsoftu. Je jednoduchý na nastavení a hlavně v něm bez problémů rozchodíte zvuk. Potíž je trochu s výběrem vhodné verze, ale na internetu najdete dostatek informací, které vám s výběrem pomohou. Já bych se opravdu rád podrobnostem vyhnul, protože virtualizace z mého pohledu nenabízí pro hraní DOSových her nic, co by z ní činilo něco výjimečného, za co by stálo se jí podrobněji věnovat.

Poznámka: pro úplnost musím zmínit ještě jednu věc. MS-DOS není jediným DOSem na platformě (IBM) PC. Silným konkurentem MS-DOSu býval třeba DR-DOS, který se dá v určitých verzích získat bezplatně, ale je to stejné jako se slevou zadarmo. DR-DOS není úplně kompatibilní s MS-DOSem, a jelikož pro vývoj her byl primárně využíván MS-DOS, tak se můžete dočkat různých komplikací. Z bezplatných alternativ MS-DOSu doporučuji spíše FreeDOS.

Emulace v DOSBoxu

Předesílám, že následující text je zpracován vzhledem k technickým vymoženostem dostupným k podzimu 2008. Postupně se jej budu pokoušet průběžně aktualizovat, ale již dopředu avizuji, že opravdu nemám v úmyslu se jakkoliv zabývat i možnostmi spouštění starších dílů série Might and Magic pod Windows Vista apod.

Poznámka: za ta léta byly Windows Vista nahrazeny Windows 7, 8 a nakonec Windows 10. Pro všechny Windows od verze 2000 (popř. NT) však platí, že DOSové aplikace pod nimi nelze provozovat nativně, ale vždy je k tomu potřeba emulátor (standardem se stal DOSBox). Platilo to tehdy i pro Windows Vista. Ta větička vznikla kvůli tomu, že jsem několik následujících let modernější verze Windows ignoroval, takže jsem neměl funkčnost DOSBoxu na Vistách jak ověřit.

Ještě před rokem by jedno ze zaručených řešení, které bych zajisté upřednostňoval, byl dualboot Windows XP a Windows 98, protože pod Win98 je možné spouštět řadu DOSových her bez nejmenších obtíží. Bohužel, doba značně pokročila a řada současného hardware nemá pro tento systém dostupné ovladače a tak se Win98 stávají v dnešní době nepoužitelné. Pokud zrovna patříte do této kategorie, tak mám pro vás alternativní řešení. Jelikož novější hardware disponuje mimo jiné lepším výpočetním výkonem (mám na mysli zejména dvoujádrové procesory), není problém se uchýlit k dříve tolik diskutabilní emulaci a jednoduše si pod Windows XP prostředí DOSu naemulovat. Osobně k tomu používám software jménem DOSBox (domovská stránka http://www.dosbox.com/). Tento program dokáže bravurně překládat systémová volání z prostředí MS-DOSu na Windows, resp. spolupracuje s původním DOSovým substémem, který je ve WinXP stále skryt. Přesto se však jedná o čistou emulaci a je to na jejím výkonu znát. Ovšem pokud máte cokoliv od pentia 4 od 3 GHz výše, tak se nemusíte ničeho obávat. Pro chod samotných Might and Magic stačí i výkon procesoru okolo Pentia I, čemuž postačí i emulace za použití jednojádrového procesoru okolo 2,0 GHz (kdo má cokoliv slabšího, tomu spíše doporučím zmíněný dualboot, neboť k tomu má zřejmě i odpovídající hardware :)). Navíc chod DOSBoxu lze upravovat i zásahem do konfiguračního souboru a vyladit si ho tak celkem na míru.

Poznámka: ono to dvojité spřažení výkonu může vypadat divně, ale tady je potřeba mít na paměti, že procesory prošly v minulé dekádě několika významnými vývojovými skoky. Podobně tomu bylo i u samotného DOSBoxu. Osobně jsem DOSBox zkoušel poprvé někdy v roce 2002 - 2003, tehdy jsem na PC používal Athlon XP 1800+ (Thoroughbred, 1,53 GHz) a výsledek mě příliš nepřesvědčil. Celá ta věc má totiž jeden háček. Jak jsem zmínil již na začátku, DOSBox neemuluje jen procesor, ale krom něj musí emulovat grafickou a zvukovou kartu. Výkon procesoru se navíc musí dělit mezi DOSBox a hostitelský systém, takže dost záleží i na tom, co všechno v té chvíli počítač dělá. Pro emulaci PC 286 a Might and Magic I a II si opravdu vystačíte s výkonem Pentia I na 166 MHz, ale s dalšími díly nároky rostou a tady už se ty oficiální tabulky mohou lišit. Jednojádrový procesor okolo 1 GHz je podle mě minimum, pro univerzální použití pak 2 GHz (mám na mysli stále Athlony XP, u Pentia 4 je potřeba 1 GHz přidat). Teprve s příchodem dvoujádrových procesorů nabraly počítače dostatečnou rezervu.

Největší vliv na výkon emulátoru má nastavení cyklů pro emulovaný procesor, což právě souvisí s výkonem procesoru hostitelského počítače. Řada her byla ještě do roku 1994 vyvíjena s plnou kompatibilitou pro počítače IBM PC 286, bez ohledu na to, jak se vývoj IBM PC na počátku 90. let zrychlil. Důvodem byla hlavně cena nových počítačů a jejich komponent (zvukové karty, grafické karty apod.). Osobně hraji spíše v emulovaném prostředí počítačů PC 386. Důvodem je fakt, že 386 se oprávněně považují za zlatý standard první poloviny 90. let. Pro PC 286 se nastavují hodnoty v rozmezí 2500 - 3000, pro PC 386 hodnoty v rozmezí 7000 - 8000.

Po instalaci DOSBoxu je tedy dobré si v adresáři s jeho instalací otevřít soubor dosbox.conf a provést v něm patřičné změny. Krom nastavení cyklů (část [cpu]) jsou dalšími zajímavými položkami velikost okna a citlivost myši (část [sdl]). Dříve býval s nastavením citlivosti problém, kurzor myši často při pohybu tzv. plaval, takže bylo potřeba nastavit hodnotu citlivosti od 200 nahoru. V současné době jsem podobné problémy nezaznamenal (DSOBox 0.73 a vyšší). Volba fullscreen ovlivňuje velikost okna, ve kterém se DOSBox a následně i hra spustí. Tato položka je závislá na parametru fullresolution, který říká, jak velké bude okno, pokud bude hodnota fullscreen nastavena na true. Chcete-li např. nastavit velikost okna na rozlišení 800x600, pak nastavte hodnotu fullscreen=true a fullresolution=800x600 (u DOSových her mějte na paměti, že základním rozlišením bylo 320x200 px, takže volte patřičné násobky - správně by to tedy nebylo 800x600, ale 800x500). Položka windowresolution upravuje velikost výsledného výstupu, ale to nebude třeba měnit. Při zvětšení okna je dobré rovnou nastavit výstupní filtr, typicky normal2 nebo normal3 (určuje, jakým způsobem bude výstup zvětšen). Pokud se chcete dozvědět o dalších nastaveních, tak konfigurační soubor je bohatě okomentován a k samotnému DOSBoxu existuje velmi slušná dokumentace a mnoho nastavení je diskutováno na různých internetových fórech, takže je zbytečné se tím podrobně zabývat i zde.

Poznámka: konfigurační soubor DOSBoxu skrývá ještě jedno úskalí a tím je nastavení zvukové karty. DOSBox umí hezky emulovat Soundblaster a obsahuje podporu pro Gravis UltraSound. Z pohledu kompatibility (univerzálnosti) se zaměřím jen na SoundBlastery. Řada her, Might and Magic nevyjímaje, má vlastní instalační utilitku (INSTALL.EXE), přes kterou se provádí úvodní nastavení chodu hry. INSTALL.EXE vám po volbě zvukové karty nabídne defaultní nastavení portu, IRQ a DMA (nejčastěji hodnoty 220, 7 a 1). Tyto hodnoty si pečlivě poznamenejte a poté se podívejte do konfiguračního souboru DOSBoxu do části [sblaster]. Krizové je hlavně nastavení IRQ, neboli přerušení. Pokud se patřičné hodnoty liší, hra bude různě zamrzat. Vcelku je jedno, jestli upravíte nastavení ve hře nebo parametry v konfiguračním souboru DOSBoxu, podstatné je, aby byly obě hodnoty shodné. Jako typ karty (sbtype) si v konfiguračním souboru zvolte sb16, který je univerzální a zpětně kompatibilní s předchozími modely.

Jakmile máte hotovo, čeká vás už jen naučit se DOSBox používat. Jedno z nejjednodušších použití spočívá v tom, že soubor programu, který chcete spustit, jednoduše přetáhnete na ikonku DOSBoxu na pracovní ploše. Tím se automaticky připojí příslušný adresář se souborem a soubor se spustí. Druhá možnost je otevřít samotný DOSBox a adresář s hrou si připojit manuálně. Zní to možná složitě, ale je to ve skutečnosti jednoduché. Každému písmenku jednotky je totiž možné přiřadit konkrétní adresář a pak se na něj takto odkazovat (resp. DOSBox nejprve vyžaduje, aby se pracovní adresář k jeho systému připojil, teprve pak s ním bude moci pracovat). Kdo někdy pracoval např. s linuxem, tak mu to bude nejspíše povědomé. Doporučuji si tedy na nějakém z disků vytvořit jednoduše pojmenovaný adresář, kam nakopírujete soubory hry a s ním pak budete pracovat. Ušetříte si tak práci s vypisováním dlouhých adresářových cest. Jako příklad si uvedeme adresář na disku c: se jménem wox, tedy c:\wox . V DOSBoxu ho připojíte tak, že na příkazové řádce použijete příkaz mount c c:\wox. Když se pak přepnete pomocí "příkazu" c: na svazek c, dostanete se přímo do adresáře wox, který si poté můžete prohlédnout třeba příkazem dir. Odtud můžete stejným způsobem spouštět libovolný spustitelný soubor a začít tak třebas rovnou hrát (koncovky souborů lze vynechat). DOSBox ukončíte příkazem exit. Blíže viz následující obrázky (přeci jen ne každý si ještě pamatuje práci s MS-DOSem ;)):

Základní obrazovka DOSBoxu
Připojení jednotky (adresáře) a přepnutí se do něj
Výpis připojeného adresáře a příprava ke spuštění souboru go.bat

DOSBox však není jen emulátor, disponuje také řadou užitečných funkcí, jako je např. nahrávání videa z obrazovky nebo pořizování screenshotů. Nepotřebujete tak žádný další software. Krom toho lze některé funkce aktivovat pomocí klávesových zkratek, mimo jiné i přepínání mezi celoobrazovkovým režimem a oknem. Možná vás teď napadá, proč jsem to neřekl rovnou a místo toho vám psal o nastavení velikosti okna pomocí konfiguračního souboru, ale odpověď je jednoduchá. Pokud totiž disponujete širokoúhlou obrazovkou, tak přepnutím do fullscreenu pomocí klávesové zkratky získáte zdeformovaný obraz, což už nemusí být zrovna ono. Seznam nejdůležitějších klávesových zkratek uvádím níže:

Pokud jde o nahrávání videa nebo snímání screenshotů, tak výsledný obraz nebo video se ukládá do adresáře capture v adresáři se samotnou instalací DOSBoxu (umístění lze samozřejmě v konfiguračním souboru přenastavit). Screenshoty jsou ukládány ve formátu png, video v kontejneru avi s použitím kodeku ZMBV (Zip Motion Block Video). ZMBV je ztrátový kodek, specielně navržený pro nahrávání starších her s nízkým počtem barev. Je obsažen v instalaci DOSBoxu a videa je poté možno běžně přehrávat např. ve Windows Media Playeru.

V případě čtvrtého a pátého dílu ságy (stejně tak u World of Xeen) se často stává, že se