Guide: Gjenopplev gamle klassikere med DOSBox

Guide: Gjenopplev gamle klassikere med DOSBox

Windows XP har mulighet til å kjøre programmer i såkalt kompatibilitetsmodus for å etterligne tidligere versjoner av Windows. Dette fungerer ofte med varierende hell med eldre DOS-spill. Løsningen på problemet kan være verktøyet DOSBox.

Denne guiden forutsetter grunnleggende kunnskaper i MS-DOS.

DOSBox forsøker å emulere et DOS-miljø første og fremst med hensikt for å gi mulighet til å kjøre eldre spill i et NT-basert operativsystem, for eksempel NT 4.0, 2000 eller XP. Den er også portet til både Linux og MacOS.

Foruten dette emulerer den også et Sound Blaster-lydkort med støtte for både FM- og sample-basert lyd og musikk. Når dette er sagt så understreker jeg også at DOSBox ikke klarer å kjøre alle eldre spill. DOSBox er heller ikke en virtuell maskin på linje med VMware. For en mer dyptgående redegjørelse om nøyaktig hva som emuleres og en omstendelig liste over spilltitler som støttes kan man besøke nettsiden for DOSBox.

Nedlasting og installasjon

Jeg vil ta for meg Windows-utgaven av DOSBox. I skrivende stund er v0.61 nyeste versjon og den er ikke større enn 662 KB. Installasjonen er enkel. Det er bare og velge katalog man vil kopiere filene til, og en programgruppe blir opprettet på startmenyen.

Last ned DOSBox 0.61 for Windows (662 KB).

For andre operativsystemer som Mac og Linux, gå til nettstedet DOSBox og last ned siste utgave der.

Første kjøring

Hvis du kjører DOSBox uten videre, vil du ikke få gjort så mye.


Kommandolinjen i DOSBox.

Du får bare opp en Z:> -prompt, og lister du katalogen med DIR er det ikke mange filene som ligger der. Du har ikke en gang tilgang til C: eller de andre diskene maskinen!

Grunnen til dette er at Z: kun er en intern virtuell disk som DOSBox bruker til å ”huske” kommandoer i tillegg til de som ligger innebygd i shellet. Du må selv koble opp de områdene på disken din du vil ha tilgang til fra DOSBox sitt shell. DOSBox støtter de fleste av kommandoene som er innebygd i COMMAND.COM, som for eksempel DIR, TYPE, CD osv.

Vinduet bak selve DOSBox-shellet er bare en debugkonsoll som vil skrive ut en del info som vi ikke skal bry oss noe om. Synes du vinduet er i veien så bare minimer det. Du kan også velge å ikke vise vinduet i det hele tatt ved å kjøre DOSBox med parameteren -noconsole.

Konfigurasjon

Lukk DOSBox og klikk på DOSBox.conf i DOSBox-programgruppen. Konfigurasjonsfilen vil åpnes i Notepad. Det meste her er forklart i kommentarer og bør ikke være vanskelig å tilpasse egne preferanser. Jeg vil kommentere enkelte av parametrene:

  • output angir hvilken teknikk DOSBox skal bruke til å vise skjermbilde. Jeg har latt den stå på surface. Dersom skjermkortet ditt støtter det vil overlay gi bedre ytelse, men det virker som om denne innstillingen (ny i versjon 0.61) er ganske ustabil. Den vil forhåpentligvis bli utbedret i fremtidige versjoner. Jeg merket ikke noe forbedret ytelse med verken opengl eller openglnb, men heller det motsatte.
  • memsize angir hvor mye RAM i megabyte DOSBox har til rådighet. Jeg anbefaler å la defaultverdien 16 stå med mindre du skal kjøre spill som krever mer. Enkelte eldre spill skjønner ingen ting hvis de plutselig får rapportert at det er 128 MB med RAM i ”maskinen”.
  • scaler-parameteren er litt interessant. Lar du normal2x stå vil spill som kjører i oppløsninger som 320×240 og lignende oppføre seg normalt og fylle hele skjermen. (Det som virkelig skjer er at spillet kjører i høyere oppløsning, men hver piksel dobles så det virker som om oppløsningen er lavere.) Derimot advmame2x kjører en algoritme som interpolerer/glatter ut grafikken. Dette kan være verdt å forsøke for å gi en ansiktsløfting på grafikken, men husk at den krever mer CPU-kraft.
  • cycles angir hastigheten til DOSBox sin emulerte CPU. Ikke sammenlign dette med Hz eller MHz. Jeg har satt den til ca 12000 som et utgangspunkt på min P4 2,4 GHz, og den kan senkes og økes ved hjelp av hot-keys mens du kjører DOSBox. Ikke bli engstelig over den litt avskrekkende kommentaren om at ”Setting this higher than your machine can handle is bad!” Det eneste som skjer dersom verdien er for høy er lagging i lyd og grafikk.

    Husk at DOSBox faktisk emulerer en 286/386-prosessor samt annen maskinvare, så å kjøre DOSBox kan ikke sammenlignes med å faktisk kjøre MS-DOS rett på maskinvaren din. Ettersom det meste av maskininstruksjoner går gjennom emulator-skallet medfører det et stort tap i ytelse. Dersom du bruker advmame2x (se forrige punkt) må du sannsynligvis senke denne verdien, ettersom en del CPU-tid vil gå med til interpolering av bildet. Jeg har også satt både cycleup og cycledown til 100.

  • Seksjonene som følger nå tar for seg lydinstillinger. Jeg har satt rate, sbrate og adlibrate til 44100. Jeg har også satt irq i sblaster-seksjonen til 5, men det er bare fordi jeg er vant til den innstillingen. Disse innstillingene vil uansett ikke skape konflikter med din eksisterende maskinvares IRQ-innstillinger ettersom dette skjer virtuelt i emulatoren.
  • xms- og ems-parametrene gir mulighet til å skru av emulering av disse vanlige minne-interfacene dersom du har spill som ikke liker de. Hvis ikke, la de stå på.
  • DOSBox emulerer også et modem for nettspilling. Jeg har satt denne til false. Det er denne som trigger en eventuell forespørsel fra brannmurprogramvare om DOSBox skal få lov til å lytte på porter.

Autoexec

I den siste seksjonen i DOSBox.conf-filen kan man skrive hvilke kommandoer man vil skal kjøres hver gang DOSBox startes, helt analogt med AUTOEXEC.BAT.

Ettersom man i utgangspunktet kun har tilgang til en virtuell disk kalt Z: må man montere en eller flere kataloger man vil ha tilgang til i shellet i DOSBox. Vi kan for eksempel tenke oss at vi vil plassere de spillene vi vil kjøre i DOSBox i C:\\DOSSPILL. Da vil det være naturlig å montere C:\\DOSSPILL som en stasjon C: i DOSBox. Dette gjøres med kommandoen MOUNT C C:\\DOSSPILL.

Her gjelder det altså å ha tunga litt rett i munnen. C:\\DOSSPILL er en faktisk katalog, men den oppleves i DOSBox som rota på stasjon C: med eventuelle tilhørende underkataloger.

Det kan være greit å ha tilgang til både diskett- og CD-ROM-stasjon i DOSBox.

Disse monteres på følgende måte:

  • MOUNT A A: -T FLOPPY
  • MOUNT D D: -T CDROM (erstatt D: med din faktiske CD-ROM-stasjon)

De 3 nevnte kommandoene kan altså med fordel legges til i autoexec-seksjonen så man slipper å skrive de hver gang DOSBox starter.

Hvis du vil kan du laste ned min ferdig redigerte DOSBox.conf-fil.

Kjøre et spill

De programmer og spill som DOSBox skal ha tilgang til må legges i C:\\DOSSPILL (eller en annen katalog du har montert).

For å få demonstrert hva DOSBox er i stand til kan det jo være greit å prøve et spill som absolutt ikke vil kjøre under Windows XP, for eksempel Highway Hunter (844 KB) som kan lastes ned i shareware-utgave.

Etter å ha plassert det i for eksempel C:\\DOSSPILL\HIGHWAY kan du prøve å dobbelklikke på START.EXE-filen for å kjøre spillet. Det kommer ikke til å greie å kjøre.

Prøv gjerne også med alle kompatibilitetesmoduser i Windows XP. Kjører du spillet fra CMD-shellet i Windows XP vil du bare få den lite forståelige feilmeldingen “Runtime error 200 at 1A49:0091″. Det er tydelig her at spillet inneholder instrukser som Windows XP ikke liker.

Har du fulgt fremgangsmåten for konfigurering av DOSBox, kan du prøve å kjøre det derfra ved å starte DOSBox, skifte til katalogen C:\\HIGHWAY og skrive START og trykke ENTER. Du bør få opp spillet som vist under:


Her ser du spillet Highway Hunter startet opp i verktøyet DOSBox.

Nå er det mulig at du opplever lagging/hakking i lyden, alt etter hvor kraftig maskin du har. Dette ordnes med justering av cycles og eventuelt frameskips.

Kjør først spillet opp i fullskjerm ved å trykke Alt-Enter. Trykk nå gjentatte ganger på Ctrl-F11 for å senke antall cycles som DOSBox forsøker å kjøre sin emulerte CPU med. Gjenta dette helt til lyden ikke lagger. Hvis hastigheten til spillet fremdeles er akseptabel er du ferdig.

Derimot, hvis spillet oppleves som lite responsivt med lav framerate etc, må du øke cycles igjen ved å trykke Ctrl-F12 og samtidig forsøke å øke frameskips ved å trykke Ctrl-F8. Forsøk å finne en grei balanse mellom disse 2 parametrene, trykk så Alt-Enter igjen for å gå tilbake til vindusvisning, og ta en titt i tittellinjen på hvilke verdier du har satt for cycles og frameskip.

Det kan være greit å legge cycles-verdien inn i DOSBox.conf, og heller øke frameskips manuelt når det trengs.

Andre spill

Av andre spill som ikke vil fungere i Windows XP-kompatibilitetsmodus, men som DOSBox takler bra kan jeg nevne blant annet:

  • Duke Nukem 3D
  • Pinball Fantasies
  • Pinball Illusions
  • Super Frog
  • Commander Keen 4 til 6

Det som derimot imponerte meg mest var at jeg fikk kjørt den klassiske kult-demoen Second Reality i DOSBox så godt som perfekt! Og her er beviset:

Tittelbilde fra Second Reality
Månelandskap fra Second Reality
Polygoneffekt fra Second Reality
Rave-effekt fra Second Reality
Djevelen fra Second Reality
Du husker kanskje denne (den gang) imponerende djevelen i Second Reality?

Har du noen linker til gode, gamle klassikere (lovlige fullversjoner eller shareware) så legg de gjerne inn her som en kommentar.

Lykke til med nostalgien!