Képzeljük el: egy borús délutánon rájön, hogy nosztalgiázna egy kicsit. Nem valami régi fotóalbumot lapozgatna, hanem elmerülne a ’90-es évek pixelvilágában, újra átélné a Doom borzongató hangulatát, vagy egy Command & Conquer csatában mérné össze erejét a mesterséges intelligenciával. De ahogy megpróbálja elindítani a régi CD-ről a játékot, a modern operációs rendszere (legyen az Windows 11 vagy a legújabb Linux disztribúció) csak megvonja a vállát. A DOS-korszak szoftverei, amelyek valaha uralták a számítógépes világot, mára idegenek a mai gépeken. Ez az a pont, ahol a múltidézés útvesztői kezdődnek, tele rejtett akadályokkal és titokzatos beállításokkal, mint a DOS, a DOSBox, az XMS memória és a kevesek által ismert numhandles titka.
A DOS, a múlt királya: Ahol minden elkezdődött
A DOS (Disk Operating System) az IBM PC-k és kompatibiliseik uralkodó operációs rendszere volt a ’80-as és ’90-es évek nagy részében. Egy egyszerű, szöveges alapú parancssori felületet kínált, és közvetlen hozzáférést biztosított a hardverhez. Ez a „közvetlenség” volt a kulcs a játékok és alkalmazások működéséhez: a programok közvetlenül kommunikáltak a videókártyával, a hangkártyával és a lemezmeghajtókkal, optimalizálva a teljesítményt a korlátozott erőforrások mellett. De ez a közvetlenség ma a legnagyobb problémánk. A modern operációs rendszerek absztrakciós rétegeket használnak, hogy megvédjék a rendszert, és elválasszák a szoftvert a hardvertől. A 16 bites DOS-programok futtatása egy 64 bites környezetben szinte lehetetlen közvetlenül, és a régi hardveres interfészek (például az ISA buszhoz készült Sound Blaster kártyák) emulálása nélkülözhetetlen.
DOSBox: Az időutazás kapuja
És ekkor jön a képbe a DOSBox, a hőn szeretett emulátor, ami képes létrehozni egy virtuális DOS-környezetet a modern gépeken. Nem virtualizációt végez a klasszikus értelemben (mint a VMware vagy a VirtualBox), hanem valójában emulálja a hardvert: a CPU-t (Intel 286-tól Pentiumig), a memóriát, a grafikus kártyákat (VGA, SVGA, VESA), a hangkártyákat (Sound Blaster, AdLib, GUS) és a lemezmeghajtókat. A DOSBox lehetővé teszi, hogy szinte bármilyen régi DOS-os játékot vagy alkalmazást zökkenőmentesen futtassunk, mintha egy korabeli gépen lennénk. A használata egyszerűbb, mint gondolnánk: fel kell csatolnunk (mount) a merevlemezünk egy mappáját virtuális meghajtóként, majd onnan elindíthatjuk a programot. A konfigurálása azonban már kicsit mélyebbre visz minket a nyúl üregébe, különösen, ha optimalizálni szeretnénk a teljesítményt vagy megoldani a speciális problémákat. Ehhez a dosbox.conf
fájlt kell ismernünk.
Memóriagondok a DOS-ban: A XMS rejtélye
A DOS-korszak egyik legnagyobb kihívása a memóriakezelés volt. A klasszikus DOS csupán 640 KB úgynevezett „konvencionális memóriát” tudott közvetlenül címezni. Sok program számára ez hamar szűk keresztmetszetté vált. Ezen a korláton igyekeztek túllépni a kiterjesztett (XMS – Extended Memory) és a lapozható (EMS – Expanded Memory) memória szabványokkal. Az XMS vált dominánssá a későbbi DOS-játékok és alkalmazások körében, mivel lehetővé tette a programok számára, hogy hozzáférjenek a 640 KB feletti fizikai memóriához. Gondoljunk csak a Doom-ra, a Duke Nukem 3D-re vagy a Warcraft II-re – ezek mind nagymértékben támaszkodtak az XMS-re. A DOS-ban ehhez olyan memóriakezelő programokra volt szükség, mint a HIMEM.SYS
és az EMM386.EXE
, amelyeket a CONFIG.SYS
fájlban kellett betölteni. Ezek a programok feleltek azért, hogy a rendszer hozzáférjen a kiterjesztett memóriához, és adott esetben emulálja az EMS-t az XMS-ből. A DOSBox szerencsére alapértelmezetten kezeli az XMS és az EMS emulációt. A dosbox.conf
fájlban található [dos]
szekcióban a xms=true
és ems=true
beállítások általában elegendőek. Ha egy játék mégis „Out of memory” hibaüzenetet ad, a memsize
paraméterrel növelhetjük a DOSBox által emulált memória méretét (pl. memsize=16
vagy memsize=32
MB-ra), ami gyakran megoldja a problémát a memóriaéhes alkalmazásoknál.
A numhandles: Az elveszett fájlok titka
Ez az egyik legkevésbé ismert, de gyakran kulcsfontosságú beállítás, amikor a régi DOS programok furcsán viselkednek. A numhandles (más néven fájlkezelő leírók száma) arra utal, hogy egy program hány fájlt tud egyszerre megnyitva tartani. A klasszikus DOS rendszerekben ezt a CONFIG.SYS
fájlban a FILES=XX
sorral állítottuk be, ahol az XX egy szám volt, általában 30-60 között. Ha egy program – különösen egy komplex játék, amely sok textúrát, hangot, pályarészletet vagy adatfájlt tölt be egyszerre – túllépte ezt a limitet, akkor „Too many open files” (Túl sok nyitott fájl) hibaüzenetet kaphatunk, vagy ami még rosszabb, a program egyszerűen összeomlik, vagy hibásan jeleníti meg a tartalmat (pl. hiányzó textúrák, rossz hangok).
Például, ha egy játék egy nagy pályát tölt be, ami sok kisebb fájlból áll össze, és mindegyiket megpróbálja egyszerre megnyitni, könnyen elérheti a fájlkezelő leírók maximumát. Gondoljunk csak a nagyobb stratégiai játékokra vagy a későbbi FPS-ekre. Ha egy DOS-alkalmazás furcsa, megmagyarázhatatlan hibákat produkál, és a memóriabeállítások (XMS/EMS) rendben vannak, érdemes a numhandles-re gyanakodni. A DOSBox-ban ezt a dosbox.conf
fájlban állíthatjuk be, általában a [dos]
szekcióban, a files=XX
(vagy egyes verzióknál a numhandles=XX
) sorral. Az alapértelmezett érték gyakran túl alacsony lehet a modern elvárásoknak. Javasolt értékek lehetnek: files=128
vagy files=255
. Ez a beállítás biztosítja, hogy a régi programok elegendő „kapuval” rendelkezzenek a lemezről beolvasandó adatokhoz, elkerülve a váratlan összeomlásokat és hibákat.
Optimalizálás és további tippek a DOSBoxhoz
A dosbox.conf
fájl igazi aranybánya a finomhangoláshoz. Íme néhány további kulcsfontosságú beállítás és tipp:
- CPU Cycles: A
cycles=auto
beállítás általában jól működik, de ha a játék túl gyors vagy túl lassú, kísérletezhetünk fix értékekkel (pl.cycles=10000
) vagy acycles=max
beállítással a maximális teljesítményért (bár ez instabilitást okozhat). A futás közben is állítható a CTRL+F11 (lassítás) és CTRL+F12 (gyorsítás) billentyűkombinációval. - Memória: Ahogy említettük, a
memsize
(pl.memsize=32
) beállítással növelhetjük az emulált RAM méretét, ha a játék „out of memory” hibát jelez. - Hang: A
[mixer]
és[sblaster]
szekciókban állíthatjuk be a hangkártya emulációt. Asb16
a leggyakoribb és legkompatibilisebb Sound Blaster emuláció. - Grafika: A
[sdl]
szekcióban azoutput=surface
,output=overlay
,output=openglnb
vagyoutput=ddraw
beállításokkal szabályozhatjuk a grafikus kimenet módját. Azoutput=openglnb
gyakran élesebb, pixelesebb képet ad, ami ideális a retro játékokhoz. Afullscreen=true
ésfullresolution=desktop
beállítások segítenek a teljes képernyős megjelenítésben. - Több konfiguráció: Mentsünk el egy-egy külön
.conf
fájlt minden játékhoz, hogy elkerüljük a beállítások állandó módosítását. Például:dosbox_doom.conf
,dosbox_cnc.conf
. Ezt a parancssorban indíthatjuk adosbox -conf dosbox_doom.conf
paranccsal. - Front-end programok: A DOSBox-hoz számos felhasználóbarát grafikus felület (pl. D-Fend Reloaded, DBGL) létezik, amelyek egyszerűsítik a játékok kezelését és a beállítások finomhangolását.
Gyakori hibaelhárítási tippek
- „Out of memory” vagy „Not enough memory”: Növelje a
memsize
értékét adosbox.conf
fájlban. Ellenőrizze, hogy azxms=true
ésems=true
beállítások aktívak-e. - „Too many open files” vagy váratlan összeomlások: Növelje a
files=
(vagynumhandles=
) értékét adosbox.conf
fájlban, példáulfiles=128
vagyfiles=255
-re. - A játék túl lassú vagy túl gyors: Állítsa be a
cycles
értékét. Kezdjecycles=auto
-val, majd próbálkozzon fix értékekkel (pl.cycles=15000
) vagy a CTRL+F11/F12 billentyűkkel. - Nincs hang vagy rossz hangminőség: Ellenőrizze a
[sblaster]
és[speaker]
szekciók beállításait. Győződjön meg róla, hogy azirq
,dma
éshdma
értékek (pl.irq=7
,dma=1
,hdma=5
) megfelelőek, és amixer
beállítások is rendben vannak. - Grafikus hibák vagy villogás: Kísérletezzen az
output
beállítással (surface
,overlay
,openglnb
,ddraw
).
A múlt emlékei ma
A DOSBox és a mögötte álló elkötelezett közösség elképesztő munkát végez a digitális kulturális örökség megőrzésében. Ezek a régi játékok és alkalmazások nem csupán szórakoztató időtöltést kínálnak; bepillantást engednek a számítástechnika korai időszakába, és megmutatják, milyen leleményesen oldották meg a fejlesztők az akkori korlátokat. Bár a DOS, az XMS és a numhandles fogalmai elsőre rémisztőnek tűnhetnek, a DOSBox-nak köszönhetően ezek a „titkok” mára könnyen hozzáférhetővé váltak, és lehetővé teszik, hogy bárki újra belevessen magát a ’90-es évek varázslatos világába. Ne habozzon, kísérletezzen a beállításokkal, és fedezze fel újra gyermekkora vagy fiatalkora kedvenc programjait! Az időutazás vár!