PELIKAPSELI - retropelitaivas
Kun Playstation ei riitä...

= MS-DOS retropelaajan näkökulmasta - kuule kun gurusi kuiskii =

Pääsivulle Jutut Pelit Linkit Koneet

Monilla lukijoillamme saattaa olla ongelmia saada MS-DOS -pohjaisia pelejä toimimaan, peli saattaa pyöriä uudessa koneessa liian nopeasti tai kieltäytyä käynnistymästä kokonaan vedoten liian vähäiseen muistin määrään tai johonkin vielä käsittämöttämpämpään asiaan. Tämän artikkelin on tarkoitus valaista asiaa ettei retroinen peli-elämys ainakaan sen takia jäisi toteutumatta.

Miten MS-DOSin muistinhallinta toimii

Kuten tiedämme, MS-DOS on sangen alkeellinen käyttöjärjestelmä ja peräisin muinaisilta ajoilta jolloin tietokoneetkin olivat puuta ja käyttäjät rautaa. Huolimatta siihen että koneeseen olisi tungettu kuinka monta sataa megatavua muistia, MS-DOS näkee siitä suoraan vain 640 kilotavua, tätä kutsutaan perusmuistiksi (conventional memory). Tästä ylöspäin 1024 kiloon asti oleva alue kuuluu sitten ylämuistiin (high memory ja upper memory block), sen yläpuolella olevaa muistia pitää sitten käsitellä eri tavoin.

Vanhin näistä tavoista on EMS, joka alunperin oli erillisillä muistikorteilla, mutta nykyisin sitä voidaan emuloida myös tavallisilla muistipiirillä. Hieman uudempi ja DOS-peleissä varsin yleinen tapa on XMS. Jotkin edistyneet ja uudemmat pelit käyttävät myös DPMI:tä, joka mahdollistaa koko muistin näkemisen yhtenä alueena kuten Oikeissa Käyttöjärjestelmissä. Tämä onkin varsin mukavaa, sillä perusmuistia tarvitaan tällöin yleensä erittäin vähän ja peli käynnistyy yleensä ihan käyttöjärjestelmän asennuksenkin luomilla asetuksilla. DPMI-muistia käyttävät ohjelmat tunnistaa usein ulkoisen muistimanagerin käytöstä, näistä yleisimpiä ovat DOS4GW:tä tai CWSDPMI:ä.

Pelistä riippuen sille pitää siis tarjota sen tarvitsema määrä perusmuistia ja mahdollisia muita muisteja. Käytännössä pelikoneeseen siis kannattaa säätää mahdollisimman paljon perusmuistia vapaaksi lataamalla DOSin osia muistin muihin osiin.

Windowsin eri versiot

Windows9x-perhe (95, 98 ja ME) ajaa dos-pohjaisia pelejä yleensä varsin hyvin jo ihan varsinainen käyttöjärjestelmän päälläkin ja toisin kuin urbaani legenda väittää niissä myös on mukana ihan oikea MS-DOS - tai ainakin riittävän oikea DOS useimpien pelien pelaamiseen. Sen sijaan NT:n kanssa voi olla suuria ongelmia, Windows 2000:n tilanteesta en juuri tiedä.

Näitä ohjeita siis voi soveltaa myös DOS 6.22:n tai sitä vanhempien kanssa, mutta missään nimessä sellaisen asentaminen minkään 9x-sarjan windowsin rinnalle ei ole tarpeen eikä edes järkevää. Vanhalla DOSilla ainakin Windows95 osr2:n saa siihen tilaan ettei se enää käynnisty eikä se myöskään hallitse FAT32-tiedostojärjestelmää. Mikäli kone on pelkästään retroiluun tarkoitettu, DOS 6 on ihan hyvä valinta.

Windows95 Osr2:n ja Windows98:n suomalaiset versiot ovat ongelmallisia. Niissä on viallinen IO.SYS joka taas aiheuttaa sen että HIMEM.SYS huomattavasti enemmän perusmuistia kuin sen pitäisi. Windows95:lle tähän on onneksi olemassa päivitys, jonka voi hakea vaikka MBNetin Tilaajanurkassa tai suoraan Microsoftilta. Sen sijaan 98:aan se pitää käsittääkseni pyytää MS:n puhelintuesta tai jotain yhtä perverssiä. Itse olen pitänyt parhaana pysyä näissä UK-versioissa koko käyttiksestä. Järki ja huhu sanoisivat, että kopiomalla englanninkielisestä versiosta IO.SYSin, bugin pitäisi korjaantua.

Windows ME:stä taas on "poistettu" MS-DOS-tila. Jos oikein olen ymmärtänyt, se kuitenkin vaatii ainoastaan esiin kaivamista, suomeksi sanottuna MSDOS.SYS-tiedoston säätämistä jäljessä mainitulla tavalla. Jos jollain on ME niin saa kertoa pitääkö tämä paikkansa ja onko sen suomenkielisessä versiossa sotkettu mokoma IO.SYS.

Käynnistystiedostot

Kun MS-DOS käynnistetään, se lukee asetuksiaan lähinnä kahdesta tiedostosta, C:\CONFIG.SYS ja C:\AUTOEXEC.BAT. Näistä CONFIG.SYS sisältää yleisempiä määreitä ja AUTOEXEC.BAT taas on periaatteessa tavallinen bat-komentojono, jossa on suoritettavia komentoja peräkkäin. Windowsin9x:n mukana myös ennen binäärimuotoinen järjestelmätiedosto MSDOS.SYS muutti tekstimuotoiseksi asetustiedostoksi, johon voi myös tehdä muutamia säätöjä.

Seuraavaksi esittelen yhden tavan toisaalta bootata Windows peliyhteensopivaan DOS-tilaan ja toisaalta Windowsiinkin niin että DOS-pelien pelaaminen sieltäkin on mahdollista. Avuksi tulee jo DOS 5.0:ssa mukaan tullut käynnistysvalikko, josta siis voidaan valita halutaanko käynnistää Windows vaiko DOS. Toki on olemassa muitakin tapoja, monet esimerkiksi pitävät parempana säätää dos-ohjelmien pikakuvakkeitat, joille myös voi määritellä omat käynnistystiedostonsa.

Ensimmäiseksi otamme käsittelyyn karvaisen kaverin nimeltä MSDOS.SYS, joka asuu C:\-juuressa ja on juuri . Siltä pitää ottaa kaikki säätämistä haittaa attribuutit eli ainakin "read-only" päällä esim. Windows Explorerilla - mikäli sen on säätänyt näyttämään kaikki tiedostot. Tämän jälkeen voidaan "BootGUI" laittaa arvoon 0, alkuperäisen ollessa 1. Tällöin kone käynnistyy oletusarvoisesti dos-tilaan. Myös "Logon" arvoksi voi halutessaan laittaa nollan jolloin ei Windowsin käynnistyskuvaa näytetä. Nämä säädöt voi luonnollisesti hoitaa myös mainiolla TweakUI:lla, joka löytyy Microsoftin omasta Powertoys-paketista ja joka ehdottomasti jo muunkin käytön kannalta on hyvä olla asennettuna.

Tämän jälkeen siirrytään säätämään käynnistysvalikkoa CONFIG.SYS tiedostoon. Sen alkuun sijoitetaan esimerkiksi seuraavaa:

[menu]
menuitem=win, Windows
menuitem=dos, DOS
menuitem=ems, DOS (ems)
menudefault=win,10

Tässä esitellään kolme erilaista tapaa bootata kone, joko Windowsiin tai Dosiin EMS-muistilla tai ilman. Listaan voi sitten lisätä vaikka Linuxin jos tahtoo loadliniä käyttää sen käynnistämiseen. Mikäli käyttäjä ei tee mitään, kymmenen sekunnin kuluttua valitaan Windows-vaihtoehto. Luonnollisesti myös tiedoston loppuosaa pitää muokata lisää, jotta ko. vaihtoehdoilla olisi jotain eroakin. Loppuosa tiedostosta voi näyttää esimerkiksi tältä:

Config.sys

[win]
device=c:\windows\himem.sys
device=c:\windows\emm386.exe noems 
dos=umb,high;
Country=358,850,C:\WINDOWS\COMMAND\country.sys


[dos]
device=c:\windows\himem.sys
device=c:\windows\emm386.exe noems I=B000-B7FF
dos=umb,high;
Country=358,850,C:\WINDOWS\COMMAND\country.sys
devicehigh=c:\cdrom\gscdrom.sys /d:mscd000


[ems]
device=c:\windows\himem.sys
device=c:\windows\emm386.exe ram I=B000-B7FF
dos=umb,high;
Country=358,850,C:\WINDOWS\COMMAND\country.sys

Jokaiselle vaihtoehdolle siis oma määritelty omat lohkonsa. Lisäksi voisi olla lohko [common], joka sisältäisi määrityksiä kaikkiin vaihtoehtoihin.

Ensimmäiseksi ladataan muistia hallinnoivat HIMEM.SYS ja EMM386.EXE, jolle voidaan antaa NOEMS-parametri, jolloin EMS-muistia ei ole käytössä mutta perusmuistia voidaan saada enemmän. Mikä taas haluttu peli kaipaa EMS-muistia, laitetaan tilalle parametri ram (valitettavasti en enää muista mitä se tekee eikä minun peräti aidossa DOS 5.0:n manuaalissani kerrota EMM386:n konfiguroinnista käytännössä mitään).

Sitten pitää ladata DOS käyttämään ylämuistia (dos=umb,high) ja myös maakoodien määrittäminen on ihan hyvä ajatus mikäli mielii käyttää skandinaavisia merkkejä (hätätilassa nekin voi tietysti jättää pois parin lisäkilon toivossa). Dos-vaihtoehtoon ladataan lisäksi cd-rom-aseman ajuri, ems-muistia kaipaavat pelit ovat yleensä sen verran vanhoja etteivät moista kaipaa ja Windowsin alle taas ei ole mitään idea DOS-ajureita asentaa, dos-ohjelmat kykenevät käyttämään hiirtä, cd-asemaa ja muita härveleita Windowsin avulla.

Tässä olen käyttänyt esimerkkinä oman Goldstar-asemani ajuria. Kunkin aseman mukana tulee usein oma ajurinsa, mutta todellisuudessa IDE-cd-asemat toimivat kaikki lähes samalla tavalla ja Mitsumin ajuria pidetään yleisesti hyvin yleispätevänä. Itse sain sillä IBM Thinkpad -kannettavan CD-aseman toimimaan, IBM:n omalla ajurilla en...

Autoexec.bat

goto %config%

:win
keyb su,,C:\WINDOWS\COMMAND\keyboard.sys

win


:dos

lh c:\windows\command\mscdex.exe /d:mscd000

:ems

keyb su,,C:\WINDOWS\COMMAND\keyboard.sys
lh c:\windows\command\mouse.exe

Autoexecissä tarvittaessa käynnistetään MSCDEX.EXE toimimaan rajapintana cd-ajurin ja dosin välillä. Myös hiiriajuri on olennainen monissa peleissä - mitä pätee Mitsumin CD-ROM-ajuriin pätee myös Logitechin hiiri-ajuriin, se saa oudommankin jyrsijän juttelemaan. Lh eli loadhigh-määre vapauttaa perusmuistia entisestään lataamalla ajurit ylämuistiin.

Huomaa että homma toimii gotoilla (ph33r!) eli ensimmäisellä rivillä suoritus hyppää kohtaan, joka aikaisemmin on CONFIG.SYSissä olleessa valikossa määritelty. Koska muita hyppyjä ei ole ja suoritus etenee suoraan alaspäin, "dos"-vaihtoehto ajaa myös "ems"-vaihtoehdon rivit. "win"-vaihtoehdossa suoritus loppuu Windowsin käynnistymiseen.

Äänikortti

Tarvittaessa voidaan SB-yhteensopiva äänikorttia varten kehittää BLASTER-ympäristömuuttuja Autoexec.batissa, esimerkiksi seuraavaan tapaan


SET BLASTER=A220 I5 D1

Tässä siis A:n perään laitetaan Base Address (SoundBlasterissa varsin usein tuo 220), I:n jälkeen keskeytys ja D:n jälkeen DMA-asetus (1 on varsin hyvä arvaus). Oikeita arvoja voit selvitellä esimerkiksi jollain pelillä jossa on autodetect-toiminto. Omassa koneessani moista ei muuttujaa ei yleisesti ottaen ole tarvittu, mutta onhan se toki hyvä olemassa. Oma korttisi saattaa tietysti vaatia myös jonkinlaisia ajureita, aidon Creative Labsin tuotteet eivät välttämättä.

CD-ROM

CD-aseman kanssa olennaista on muistaa käyttää sekä ajurin että MSCDEX:n perässä samaa tunnusta, esimerkiksi mscd000 on hyvä nimi ensimmäiselle asemalle.

Mikko Järvinen

Liiallinen nopeus

Pyörivätkö pelisi niin lujaa että Game Over pärähtää ruutuun saman tien kun sen käynnistää? Ei hätää! Ratkaisu ongelmiisi on ohjelma, jolla hidastetaan PC:n toimintaa. Alla esittelemme Mo'Slo-nimisen hidastusohjelman ja neuvomme sen käyttöä.

Moslo

Mo'Slo on ohjelma jolla saat hidastettua tietokonettasi 1-99% "normaalista nopeudesta". Perusasetuksilla ohjelmaa ajettaessa se hidastaa koneesi keskimäärin PC/XT 4.77MHz:n tasolle.

Asennus

Asennus on hyvinkin simppeli toimenpide. Purat netistä hakemasi zip-paketin mielellään hakemistoon, joka löytyy polusta. DOS:ssa näet komennolla PATH mitä hakemistoja sinulla on polussa. Varmimmin Mo'Slo on polussa purkettuasi paketin suoraan C aseman juureen. (Mikä on kuitenkin varsin epäsiistiä, tee mieluusti oma hakemisto kaikille sekalaisilla pikkuohjelmillesi ja laita se polkuun --Toim. huom.)

Mo'Slon käyttö

Mo'slolle pitää ilmoittaa täydellinen hakemisto, josta hidastettava peli löytyy sekä tietysti ajettavan pelitiedoston nimi:

moslo /20 c:\pelihakemisto\peli.com

Oheinen komento hidastaisi hakemistosta c:\pelihakemisto löytyvää peli.com:a 20 prosenttia normaalista nopeudesta. Monet pelit käyttävät kuitenkin eri tiedostoja mm. pelitilanteen tallennukseen etc. On järkevämpää siirtyä valmiiksi siihen hakemistoon, josta peli löytyy ja ajaa sitten vasta hidastus. Lopettaessasi pelin/ohjelman lopetetaan samalla myös Mo'Slo ja nopeus palautuu ennalleen. Valitettavasti Mo'Slo ei osaa hidastaa komentojonotiedostoja (.BAT). Tähän on ratkaisuna koneen COMMAND.COM:n hidastus komennolla:

moslo /n command.com 

(jossa n on hidastus prosentteina esim: 20),jonka jälkeen ajetaan normaalisti haluttu pelitiedosto komennolla pelin_nimi. Lopetettuasi pelaamisen pääset "ulos" Mo'slon hidastamasta tulkista kirjoittamalla EXIT.

Mo'Slo ja Windowsin DOS-kehote

Mo'Slota ei pidä ajaa Windowsin DOS-kehotteessa ilman hidastusparametriä, koska kone saattaa kaatua. Muutenkaan ei ole kovin suositeltavaa ajaa sitä Windowsissa vaan kannattaa käynnistää kone DOS-tilaan. Sopiva hidastusnopeus riippuu tietenkin koneesi nopeudesta, joten kannattaa kokeilla eri prosenttiarvojen antamista. Mielestäni on järkevämpää hidastaa juuri COMMAND.COM:a kunhan lopettaessasi muistat kirjoittaa EXIT. (Myös Windowsin hidastaminen Mo'Slolla on näköjään mahdollista, jos joku jostain syystä niin tahtoo tehdä... --Toim. huom.)

Janne Heinikangas

© Pelikapseli 2000-2001