Hlavní navigace

DOSBox: herní klasiky znovu ožívají

4. 10. 2007
Doba čtení: 5 minut

Sdílet

Každý si čas od času zahraje nějakou tu počítačovou hru. Ty pravé klasiky vznikaly před více než deseti lety a dodnes dokáží pobavit stejně dobře jako v dobách největší slávy. DOSBox je program emulující počítač se systémem DOS a dají se na něm hrát takřka všechny hry z doby onoho zlatého věku.

Návrat do minulosti

Devadesátá léta. V té době jsem chodil na gymnázium a také dostal první PC. Hodně jsem hrál hry. Kraloval tehdy operační systém DOS a na něm takové klasiky jako Civilization, Wizardry VII, Dungeon Master, Monkey Island… no jéje.

Nyní, na začátku třetího tisíciletí, máte možnost oživit veškeré vzpomínky a pocity z tehdejších digitálních bojů: existuje emulátor, který se chová jako DOSový počítač – zhruba taková 486ka. Je jím DOSBox.

Představujeme DOSBox

Program je možné sehnat na webu dosbox.source­forge.net – jsou zde jednak binární balíčky pro velké množství OS (Windows, MacOS X, různé distribuce linuxu, dále FreeBSD a třeba i Risc OS nebo BeOS). Také máte k dispozici zdrojový kód, pokud si chcete DOSBox přeložit sami – nebo třeba i modifikovat. DOSBox je šířený pod licencí GNU GPL 2 a je napsán v C++ za použití knihovny SDL.

Výsledkem kompilace je pouze jediná binárka dosbox, kterou můžete nakopírovat do systémového adresáře (třeba /usr/bin). Já si třeba vždycky přejmenovávám starší verze soubor§ na dosbox_065 a podobně. To pro případ, kdy by náhodou nějaká hra padala s novější verzí a ne se starší.

Jdeme do DOSu!

Pokud spustíte samotný DOSbox bez parametrů – uvidíte obrazovku DOSového okna s příkazovým řádkem – textový režim DOSu s  command.com.

DOSBox 1

Disk Z: je disk, který DOSBox namountuje automaticky a obsahuje jeho utilitky. Našim cílem bude spustit nějaký DOSový program. Předpokládejme, že je u nás na disku v adresáři /cesta/hry/hra  – potom v DOSBoxu namountujeme na disk C tento adresář:

$ mount c /cesta/hry/hra

Nyní se můžeme na nově mountnutý disk dostat příkazem c: a spustit hru zadáním názvu „exáče“ jako v DOSu. Programy .com a .bat fungují samozřejmě také. Zjistíme že spousta DOSových interních příkazů (dir, cd, copy, mem, help, type…) bude víceméně fungovat i tady na řádce. Trochu mi chybí copy con soubor.txt pro rychlé vytvoření textového souboru.

Jaký hardware DOSBox emuluje, je určeno v souboru dosbox.conf  – standardně je to XMS i EMS, myš, Sound Blaster, Gravis Ultrasound i PC speaker. COM a LPT porty jako takové (pro obecná externí zařízení) jsem nezkoušel.

Pokud emulovaný program podporuje myš, můžete kliknout do okna DOSBoxu, on vám kurzor myši „pohltí“ a myš začne pracovat uvnitř hry. Z tohoto „zajetí“ myš „osvobodíte“ stisknutím kombinace kláves Ctrl+F10. Další důležité zkratky jsou Ctrl+F12 a Ctrl+F11 pro zvyšování a snižování rychlosti emulace ( Cpu Cycles v okně DOSBoxu).

Od verze 0.70 má DOSBox i nový přístup k počítání cyklů: je možno použít cycles:max, což znamená, že hra běží v plné rychlosti, jaké je váš reálný OS schopen. Tento režim se aktivuje automaticky u her v chráněném (Protected) režimu, ovšem můžete ho zapnout i ručně:

Na příkazovém řádku můžete totiž zadávat přímo i položky z dosbox.conf: Například pokud máte položku cycles=5000 v dosbox.conf, můžete na příkazové řádce napsat třeba cycles 6000 nebo cycles max. Další často používaný příkaz/přepínač je core normal, core full nebo core simple jsou různé způsoby emulace CPU. S některými hrami bývá v některých režimech potíž, ale naštěstí pouze velmi zřídka.

Dalším (u mě často používaným) příkazem je joysticktype none  – mám k PC připojený joystick, ale DOSBox od verze 0.70 mi s ním v některých hrách pracuje špatně a v takovou hru je pak problém ukončit, protože se nemůžete kurzorem trefit na tlačítko Exit. Takové hry pak pouštím právě v režimu bez joysticku nebo ve starší verzi DOSBoxu.

Pokud se vám nechce absolvovat celou „mountovací” proceduru, mám tu pro vás další fintu. Pokud totiž na příkazovém řádku, jímž spouštíte DOSBox (ještě v Linuxu) zadáte přímo jméno spustitelného DOSového programu i s cestou, DOSBox jeho adresář sám namountuje jako disk C: a rovnou jej spustí. Pokud zadáte jen cestu, připojí se adresář a spuštěný DOSBox pak bude čekat další instrukce.

Rozcházíme novou hru

Běžná praxe, když chci rozchodit „novou starou“ hru je následující:

  • rozbalím hru: řekněme do /cesta/hry/hra
  • pustím dosbox /cesta/hry/hra a tím mám hru na C:
  • ve hře pustím setup, nastavím zvuk a grafiku
  • pak pustím hru samotnou
  • pokud něco nefunguje, snažím se ladit pomocí příkazů jako core normal, joysticktype none, irq a dma pro zvuk a podobně

Jakmile je vše rozchozeno, vytvářím novou položku v menu ve svém správci oken ve tvaru dosbox /cesta/hry/hra/hra.exe -exit . Ten exit je tam proto, aby DOSBox po skončení hry sám potichu zmizel.

V případě větších potíží má řádek tvar třeba

dosbox -c "joysticktype none" -c "irq 5" /cesta/hry/hry/hra.exe -exit

Další užitečné tipy

Pokud to s DOSBoxem myslíte vážně, pravděpodobně se vám budou hodit ještě další zajímavé triky a vychytávky.

Pokud hra, která je v /cesta/hry/neco, potřebuje být v adresáři C:\NECO, aby se spustila, vytvořím o úroveň výše soubor neco.bat, který obsahuje:

cd neco
neco.exe

Hru pak pouštím příkazem

$ dosbox /cesta/hry/neco.bat

Pokud se hra hraje myší, ale myš se „nechytá“, spouštím ještě uvnitř DOSBoxu ovladač ctmouse.exe, který najdete na cutemouse.sou­rceforge.net.

Když hra vyžaduje CD-ROM na D:, pouštím ještě

$ mount d /kde/jsou/data/z/cd -t cdrom -usecd 0 -label POTREBNY_LABEL

Položka POTREBNY_LABEL je nepovinná, ale některé hry ji chtějí. Někdy stačí místo /kde/jsou/data/z/cd dát libovolný adresář, typicky  /tmp.

Pokud klávesové zkratky ve hře kolidují s klávesovými zkratkami v Linuxu (tedy správci oken), klikněte do DOSBoxu myší: když je myš „vevnitř“, zkratky zachytává DOSBox.

Jestliže spouštíte DOSBox v Linuxu, ale hry máte na FAT32 disku, vypněte u něj v /etc/fstab  volbu utf8. V opačném případě vám začnou na disku vznikat zmatky s velkými/malými písmeny u dočasných souborů vytvořených hrou.

Pro větší pohodlí si pro každou hru napište vlastní skriptík .bat s celou konfigurací a ten pak spouštějte. Je to rychlejší, pohodlné a na nic nezapomenete.

Výsledkem se můžete kochat a zavzpomínat si na staré dobré herní časy…

DOSBox 2

Kde získat hry?

Možná vás bude zajímat, kde vlastně ty staré dobré hry seženete. Některé jsou uvolněné jako freeware, ale o většinu z nich se už výrobce nestará. Takové hry se nazývají abandonware a naleznete je třeba na www.abandonia.com nebo na www.the-underdogs.info.

root_podpora

Takové hry sice nejsou doopravdy uvolněné, ale obvykle jsou tak staré, že se k nim původní společnosti už nehlásí, takže je možné je volně stahovat z internetu, ačkoliv jsou právně stále chráněné autorským zákonem. Taková Abandonia si ale celou věc velmi hlídá a pokud se ozve vlastník práv s tím, že si nepřeje hru zveřejňovat na internetu, okamžitě je z databáze odstraněna.

Takže vám přeji, abyste ve všech hrách dosáhli vysokého skóre a dostali se do posledního levelu!

Líbí se vám staré hry?

Byl pro vás článek přínosný?

Autor článku