reklama
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:
  1. DOSbox - plnohodnotný emulátor DOSu s extrémními nároky
  2. Konfigurace, výkon, hry
Benchmark ke stažení naleznete na druhé straně.


Staré hry nechodí

Staré hry naprogramované pro operační systém DOS jsou v zásadě dvojího druhu. Starší fungují v reálném režimu, novější pak v chráněném.




Starší hry jako například na logiku náročný Sokoban (1984), v němž hrajete skladníka, který musí přemístit bedny do cílového prostoru, obvykle pod operačním systémem Windows XP spustit jdou. Tyto hry jsou totiž po všech stránkách nenáročné a klasická konzole si s nimi snadno poradí.

Problém nastává v okamžiku, kdy se pokusíte spustit nějakou novější hru, která pracuje v chráněném režimu (typicky využívá DOS4GW) nebo má větší nároky na paměť.


V lepším případě se setkáte s oznámením, že proces nemá dostatek paměti EMS nebo XMS. To můžete vyřešit vytvořením zástupce PIF, v jehož vlastnostech specifikujete požadavek na vytvoření příslušné paměti.


Co se vám však takto nepodaří zvětšit, je konvenční paměť. Známá Billova věta "640kB bude stačit všem" se právě zde setkává se značnými problémy.


Konvenční paměti má počítač právě 640kB a do této velikosti se musí vejít jak operační systém DOS, tak také všechny podpůrné procesy jako správce XMS paměti Himem.sys, ovladač CDROM mechaniky a obslužný program MSCDEX, ovladač myši a konečně samotná hra. Pod systémem Windows XP zastávají tyto funkce jiné součásti (přeci jenom architektura Windows NT narozdíl od Windows 9x neběží jako nadstavba DOSu), přesto ale paměti není neomezeně. Když nebudete mít dostatek volné konvenční paměti (a některé hry vyžadují až 620kB !), máte smůlu.

Ale i když máte dost paměti, můžete se setkat s dalšími problémy - spousta programů po spuštění vyhodí chybovou hlášku.



Šance, že hra poběží, jsou poměrně malé - řekněme 30 procent. Čím je hra novější, tím jsou šance nižší.

Dalším "menším" nedostatkem je absence zvuku. Koncepce Windows aplikací je založena na DirectX. Hra obsahuje napojení na DirectSound, které samo o sobě obsahuje standardizovanou vrstvu napojení na ovladač zvuku. Jakmile nainstalujete ovladač zvukové karty dodaný výrobcem karty, DirectSound dostane potřebný hardware a zvuk poběží ve všech Windows aplikacích. V DOSu je to tomu jinak. Žádné univerzální rozhraní jako DirectSound zde neexistuje, a tak si každá hra s sebou nese balík ovladačů zvukových karet. Tento balík buďto vytvořili přímo programátoři hry nebo výrobce zakoupil nějakou distribuci již předpřipravených ovladačů (např. Miles Sound System). V praxi to znamená, že množství podporovaných karet je omezeno. Standardem v DOSu byly zvukové karty Adlib a od Creative Labs známá řada SoundBlaster, SoundBlaster Pro, SoundBlaster 16. Hodně rozšířený byla také karta Gravis Ultrasound. Ve starých DOSových hrách navíc bývá striktně odlišován zvuk a hudba. Hudba je totiž řešena pomocí MIDI (Musical Instruments Digital Interface), což je v podstatě něco jako skladba zapsaná pomocí tónů. Staré zvukové karty obsahovaly podporu pro MIDI buďto formou OPL syntézy (emulací tónu nástrojů) nebo plnohodnotnou Wavetable (zvuky nástrojů byly nahrány v ROM). Dnes už se samozřejmě MIDI nepoužívá, protože má mnoho omezení, tehdy to ale byla standardní záležitost, která šetřila velikost programu a také výkon počítače.



Zvukové karty se pod DOSem konfigovaly přímo zadáním adresy, přerušení a DMA kanálu (případně dvou kanálů), tedy přímým přístupem k zařízení. Stejně tak i MIDI se konfigurovalo pomocí adresy. Problémem pod operačním systémem Windows XP je, že aplikacím přímý přístup k zařízení z bezpečnostních důvodů nedovoluje.

Vše pod DOSem běží v procesorovém režimu CPL0, což je nejvyšší režim umožňující vykonávat veškeré typy instrukcí. Pod systémem Windows běží v CPL0 pouze jádro operačního systému a ovladače SYS. Vše ostatní běží v CPL3, který umožňuje jen bezpečné instrukce.

Absence přímého přístupu znamená, že DOSové hry spuštěné pod Windows si žádného zvuku neužijí, ať se budete snažit sebevíc. Situace je o to horší, že k novým zvukovým kartám se ovladače pro DOS nedodávají, takže třeba není řešením nabootovat do DOSu z diskety a spustit hru odtamtud. I když se vám tedy podaří hru pod Windows spustit, zážitek nebude plnohodnotný.

DOSbox

Řešením je proto emulátor. DOSbox je open-source projekt emulátoru operačního systému DOS. Primárně byl vyvíjen právě kvůli starým hrám. Jeho cílem je vytvořit vrstvu mezi hrou a systémem Windows (či Linux) tak, aby byla docílena plná kompatibilita. DOSbox provádí vše potřebné - plně emuluje operační systém, paměť EMS a XMS, emuluje zvuk včetně MIDI, emuluje PC Speaker a dokonce má i nějaké ty síťové možnosti.



Emulátor DOSbox

Pomocí DOSboxu můžete spustit prakticky všechny starší hry. Zatím jsem nenarazil na žádnou, která by nefungovala. Otázkou je jen rychlost (o tom dále).


Zavzpomínejme si tak například na Transport Tycoon Deluxe...


Panzer General...


Jazz Jackrabbit a mnoho jiných. Pod DOSboxem opravdu spustíte téměř vše. Protože program je stále ve stádiu betaverze, některé programy nemusí korektně fungovat. Faktem ale je, že taková situace nastane u cca. jednoho programu z dvaceti. Proti nekompatibilitě příkazové řádky systému Windows XP je to velký skok.

reklama