Képzeljük el, hogy egy padláson porosodó, régi dobozban rábukkanunk egy évtizedekkel ezelőtti relikviára: egy DOS-os számítógépes program lemezére. Talán egy elfeledett játék, egy egyedi üzleti alkalmazás, vagy egy kreatív grafikai szoftver. Ahogy beindítjuk – persze egy modern emulátor segítségével –, nosztalgia önt el minket, és hirtelen egy kép villan fel a képernyőn. Egy karakter, egy táj, egy felirat, ami valaha annyira ismerős volt. De mi van, ha ezt a képet szeretnénk megőrizni, kinyerni a DOS univerzumából, és a jelen digitális világába átmenteni? Ez a „digitális régészet” egy izgalmas, néha kihívásokkal teli, de annál jutalmazóbb utazás a múltba. Cikkünkben részletesen bemutatjuk, hogyan lehet kép kinyerést végezni régi, DOS grafikát használó programokból, lépésről lépésre, a legegyszerűbbtől a legbonyolultabb módszerekig.
Miért olyan nehéz a DOS grafikával bánni?
A modern operációs rendszerekben, mint a Windows, macOS vagy Linux, a képernyőn látható dolgok lementése szinte gyerekjáték: egy Print Screen gomb, és kész. De a DOS korszaka egészen más világ volt. Akkoriban nem létezett egységes grafikus interfész, mint ma. A programok közvetlenül a hardverhez, például a VGA, EGA vagy CGA videókártyákhoz szóltak. Ez azt jelentette, hogy minden fejlesztő maga kezelte a képpontokat, a színeket (palettákat) és a grafikus módokat. Ráadásul a képek nem standardizált fájlformátumokban (mint a JPEG vagy PNG) tárolódtak a merevlemezen, hanem gyakran „on-the-fly” generálódtak a program futása közben, vagy speciális, a programhoz kötött, proprietary formátumokban. Emiatt a régi adatokhoz való hozzáférés, és a képek mai formátumba való átmentése valóságos szoftver régészetet igényel.
Miért érdemes belevágni a digitális régészetbe?
A puszta nosztalgián túl számos oka lehet annak, hogy valaki képeket szeretne kinyerni régi DOS programokból. Lehet, hogy egy elfeledett játékból szeretnénk a kedvenc képernyőinket, karakterrajzainkat megmenteni, mint egyfajta retro gaming relikviát. Egykori tervezők, művészek számára ez a lehetőség adódik, hogy a valaha alkotott pixel art műveiket visszahozzák a digitális köztudatba. Vagy egyszerűen csak szeretnénk hozzájárulni a digitális archiválás és a szoftverörökség megőrzéséhez. Minden egyes megmentett kép egy apró mozaikdarab a számítástechnika történetében.
Előkészületek: Az Időgép beindítása
Mielőtt belevágnánk a képkinyerés bonyolultabb módszereibe, szükségünk lesz egy „időgépre”, ami visszarepít minket a DOS korszakba. A legnépszerűbb és legmegbízhatóbb megoldás erre a célra a DOSBox emulátor. Ez a szoftver képes futtatni szinte bármilyen régi DOS-os programot egy modern operációs rendszeren, teljes hang-, grafika- és billentyűzet-támogatással.
1. DOSBox telepítése: Töltsük le és telepítsük a DOSBoxot a hivatalos weboldalról.
2. Program előkészítése: Hozzunk létre egy mappát a merevlemezünkön (pl. C:DOSGAMES
), és másoljuk ide a DOS-os programunk fájljait.
3. DOSBox indítása és program betöltése:
* Indítsuk el a DOSBoxot.
* Húzzuk fel (mountoljuk) a DOS-os mappát a DOSBox virtuális meghajtójaként: MOUNT C C:DOSGAMES
(vagy ahová a programot tettük).
* Lépjünk be a virtuális C meghajtóra: C:
* Navigáljunk a program könyvtárába (ha szükséges): CD PROGRAMNEVE
* Indítsuk el a programot (pl. GAME.EXE
).
Képkinyerési módszerek: A legegyszerűbbtől a legbonyolultabbig
1. Az egyszerű képernyőfotó: A DOSBox beépített funkciója
A legegyszerűbb módszer, ha a DOSBox beépített képernyőfotó funkcióját használjuk. Ez a megoldás gyakran elegendő a gyors és problémamentes képmentéshez.
- Használat: Amikor a kívánt kép megjelenik a DOSBox ablakában, egyszerűen nyomjuk meg a
CTRL+F5
billentyűkombinációt. - Eredmény: A DOSBox automatikusan elment egy PNG fájlt a beállításokban megadott „capture” mappába (általában a DOSBox telepítési mappájának „capture” alkönyvtárába). A fájlnevek sorszámot és dátumot tartalmaznak.
Előnyök: Gyors, egyszerű, nem igényel különleges technikai tudást.
Hátrányok:
- Felbontás: A kép pont azzal a felbontással mentődik, amivel a DOSBox éppen fut (pl. 320×200, 640×480). A modern monitorokon ez rendkívül kicsinek tűnhet, és nagyításkor pixeles lesz.
- Paletta problémák: Néha előfordulhat, hogy a színek „elcsúsznak”, különösen ha a program speciális paletta trükköket használ.
- Részleges képek: Csak azt menti le, ami éppen látszik a képernyőn, nem nyer ki rejtett, képernyőn kívüli grafikai elemeket.
2. Memória dump és kézi értelmezés: A digitális régészet csúcsa
Ez a módszer már mélyebb technikai tudást igényel, de gyakran ez az egyetlen módja annak, hogy tökéletes, vagy a képernyőn láthatónál több adatot tartalmazó képet nyerjünk ki. A DOS-ban a grafikus adatok közvetlenül a videókártya memóriájában (VRAM) tárolódtak. Megfelelő eszközökkel ezt a memóriát „dumpolhatjuk”, azaz lementhetjük egy fájlba, majd ebből rekonstruálhatjuk a képet.
A folyamat lépései:
- A DOSBox debugger bekapcsolása: Indítsuk el a DOSBoxot
dosbox -debug
paranccsal, vagy adosbox.conf
fájlban állítsuk adebug=true
opciót. - A program futtatása a kívánt képernyőig: Juttassuk el a programot abba az állapotba, ahol a kinyerni kívánt kép megjelenik.
- A debuggert aktiválása: A DOSBox ablakban nyomjuk meg a
CTRL+BREAK
(vagyCTRL+PAUSE
) billentyűt. Ezzel belépünk a DOSBox beépített debuggerébe. Egy parancssor fog megjelenni. - A grafikus memória azonosítása:
* A VGA memória jellemzően aA000:0000
szegmens címen kezdődik.
* A legtöbb DOS program 320×200-as, 256 színű Mode 13h (VGA) módot használt. Ebben a módban 64000 bájt tárolja a képpontokat (320 * 200 = 64000). - Memória dumpolása:
* Használjuk a debuggerMEMDUMP
parancsát:
*MEMDUMP A000:0 64000 C:memdump.bin
* Ez a parancs aA000:0
címtől kezdődően 64000 bájtot ment le aC:memdump.bin
fájlba (a DOSBox virtuális C meghajtójára, ami a valós C:DOSGAMES mappánknak felel meg). - A paletta adatok kinyerése: Ez a legkritikusabb része. A DOS programok a 256 színből álló palettát (RGB értékeket) a videókártya regisztereiben tárolták. Ezt a debuggerekkel nehezebb közvetlenül kinyerni. Gyakran a program indításakor a memória dumpolásával, vagy speciális utility-kkel (pl. VGA palette viewer, ha létezik) lehet hozzáférni. Egyes esetekben a paletta adatok a program futtatható fájljában (EXE/COM) vannak tárolva, és azt kell visszafejteni. Ha nem sikerül a pontos palettát kinyerni, a kép furcsán, elszíneződve fog megjelenni.
- A nyers adat konvertálása képpé:
* Ez a lépés a legbonyolultabb. A lementettmemdump.bin
fájl nyers képpontadatokat tartalmaz. Nincs beépített eszköz, ami ezt automatikusan PNG-vé vagy BMP-vé alakítaná.
* Egyedi szoftver fejlesztése: A leggyakoribb megoldás egy kis program (Python, C++ stb.) írása, ami:
* Beolvassa amemdump.bin
fájlt.
* Beolvassa a kinyert paletta adatokat (pl. egy 768 bájtos (256 * 3 RGB komponens) fájlból).
* A nyers képpontadatokat (minden bájt egy index a palettában) átalakítja egy szabványos képformátummá (pl. BMP vagy PNG).
* Figyelembe kell venni a grafikus mód sajátosságait (pl. a VGA Mode X, vagy planar módok esetén a képpontok adatai interleaved módon, azaz síkokra bontva vannak tárolva, ami bonyolítja a feldolgozást).
* Online vagy speciális eszközök: Néhány pixel art közösségben léteznek egyedi eszközök vagy scriptek, amelyek segíthetnek bizonyos módok konvertálásában.
* Nagyobb felbontás esetén, vagy ha több kép is lehet a memóriában, nagyobb méretet kell megadni. Például egy 640×480-as kép (VGA Mode 12h) 307200 bájt.
Előnyök: A legprecízebb módszer, lehetőséget ad rejtett grafikus adatok kinyerésére is.
Hátrányok: Magas technikai tudást, programozási ismereteket és sok időt igényel. Gyakran trial-and-error folyamat.
3. Szakirányú eszközök és utility-k
Bár ritka, de léteznek bizonyos, kifejezetten régi DOS-os programokhoz vagy játékokhoz írt extrakciós utility-k. Ezeket általában a rajongói közösségek fejlesztik ki, és képesek lehetnek a játék belső fájlformátumából közvetlenül kinyerni a grafikákat, hangokat, stb.
- Keresés: Érdemes rákeresni a konkrét program vagy játék nevére + „extractor”, „tools”, „graphics converter” kulcsszavakra.
- Példák: Régi ID Software (Doom, Wolfenstein 3D) játékokhoz rengeteg tool létezett a WAD fájlok tartalmának kinyerésére.
Előnyök: Ha létezik, akkor a legegyszerűbb megoldás a bonyolult formátumokhoz.
Hátrányok: Nagyon specifikusak, és valószínűleg nem léteznek minden régi programhoz.
4. Videófelvétel és képkockák kinyerése
Ha a célunk nem egy statikus kép, hanem például egy animáció vagy egy program introja, akkor a videófelvétel lehet a megoldás.
- Használat: A DOSBox beépített videófelvétel funkciójával (
CTRL+ALT+F5
) rögzíthetünk egy AVI fájlt. - Képkockák kinyerése: Ezt az AVI fájlt utána bármilyen modern videószerkesztővel (pl. VLC, FFmpeg, DaVinci Resolve) feldarabolhatjuk egyes képkockákra.
Előnyök: Könnyű, dinamikus tartalmakhoz ideális.
Hátrányok: Nem „kinyerés” a szó szoros értelmében, inkább rögzítés. A felbontás és a minőség a felvételtől függ.
Utófeldolgozás: A pixel art tökéletesítése
Miután sikerült kinyernünk a képet, valószínűleg szükség lesz némi utófeldolgozásra, hogy modern környezetben is jól mutasson:
- Paletta korrekció: Ha a színek elcsúsztak, manuálisan vagy szoftveresen próbáljuk visszaállítani az eredeti palettát.
- Felskálázás: A pixel art felbontás (pl. 320×200) rendkívül alacsony. Grafikai szoftverekben (pl. GIMP, Photoshop) vagy speciális pixel art upscaler eszközökkel (pl. Aseprite, vagy online upscalerek) felnagyíthatjuk a képet, de fontos, hogy „nearest neighbor” vagy hasonló módszerrel tegyük, ami nem mosja el a pixeleket, hanem élesen tartja az éleket.
- Zajszűrés/tisztítás: Esetleges artefaktumok, zaj vagy a DOSBox ablakkeretének eltávolítása.
- Formátum konverzió: Mentés standard formátumokba (PNG a veszteségmentes minőségért, JPEG a kisebb fájlméretért).
Összefoglalás: Egy utazás, ami sosem ér véget
A régi DOS grafikákból származó képek kinyerése nem pusztán technikai feladat, hanem egyfajta „időutazás”, egy tiszteletadás a múltbéli digitális műalkotások előtt. Legyen szó egyszerű képernyőfotóról a DOSBox segítségével, vagy bonyolult VGA memória elemzésről és egyedi programozásról, minden megmentett kép egy darabka történelem, ami újra láthatóvá válik. Ez a folyamat a digitális archiválás és a szoftver régészet fontos része, ami biztosítja, hogy a jövő generációi is megismerhessék a számítástechnika korai időszakának vizuális örökségét. Vágjunk bele bátran ebbe a digitális kalandba – a múlt vár ránk!