Skip to Content

Faire fonctionner les jeux MS-DOS sous linux

Suite à une discussion avec mes enfants sur les jeux d’hier et d’aujourd’hui, j’ai été amené à chercher les jeux sur lesquels j’avais passé quelques heures dans ma jeunesse. Ceux-ci tournaient à l’époque avec MS-DOS dans un mode graphique qui dépassait rarement le 640x480 en 256 couleurs.

Aujourd’hui, beaucoup de ces jeux refuse de fonctionner avec windows. La solution va consister à utiliser un émulateur MS-DOS sur linux dans lequel on installera ces vieux logiciels .

pré-requis Installation (...)

Suite à une discussion avec mes enfants sur les jeux d’hier et d’aujourd’hui, j’ai été amené à chercher les jeux sur lesquels j’avais passé quelques heures dans ma jeunesse. Ceux-ci tournaient à l’époque avec MS-DOS dans un mode graphique qui dépassait rarement le 640x480 en 256 couleurs.

Aujourd’hui, beaucoup de ces jeux refuse de fonctionner avec windows. La solution va consister à utiliser un émulateur MS-DOS sur linux dans lequel on installera ces vieux logiciels .

pré-requis
Installation effectuée sur kubuntu 6.10 avec un fichier /etc/apt/sources.list qui contient les lignes suivantes :

deb http://fr.archive.ubuntu.com/ubuntu/ edgy main restricted
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-updates main
deb http://fr.archive.ubuntu.com/ubuntu/ edgy universe
deb http://fr.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb http://security.ubuntu.com/ubuntu edgy-security universe
deb http://security.ubuntu.com/ubuntu edgy-security multiverse
deb http://www.getautomatix.com/apt edgy main

La dernière ligne permet d’installer des paquets non libres, je sais c’est pas bôô, et notamment de décompacter les archives RAR que nous allons utiliser. Il faut ensuite lancer plusieurs commandes pour prendre en compte ces modifications.

wget http://www.getautomatix.com/apt/key.gpg.asc
gpg --import key.gpg.asc
gpg --export --armor 521A9C7C | sudo apt-key add -
sudo aptitude update
sudo aptitude install automatix2 dosbox

Ceci va installer un grand nombre de programmes indispensables au bon déroulement de la suite de ce mémo ainsi qu’un émulateur MS-DOS.

Il suffit de lancer le programme dosbox depuis une console pour faire apparaître une fenêtre DOS ! On en sort classiquement avec exit ou en fermant la fenêtre. Ce document explique de manière très complète tous les réglages possibles. Il explique notamment comment configurer le clavier français. En résumé, il faut récupérer sur ce site les 2 fichiers binaires suivant :

  •  KEYB.EXE extrait de http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/keyb/KEYB200X.ZIP
  •  KEYBOARD.SYS extrait de http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/keyb/kblayout/kpdos25x.zip

    et les copier dans /home/jeb/dosemu.

    NOTA : Il faut remplacer jeb par votre login ici et partout plus bas lorque j’écris /home/jeb.

    Finalement j’ai du renoncer au clavier français car il était alors impossible de lancer le jeu par manque de mémoire. Ah ce fameux manque de mémoire, ça me rappelle des jongleries avec highmem et ses copines.

    A ce stade de l’installation, le programme rar n’est pas installé. On va faire cette opération avec le programme Automatix2 qu’on lance avec le menu K / Système / Automatix.

    Le programme rar se trouve dans la section Utilities / Archiving Tools

    Et maintenant, le jeu.

    Le jeu que je souhaitais montrer à mes enfants se nome Little big adventure (LBA pour les intimes). On peut le télécharger sur l’un des nombreux sites abandonware qui regroupe tous ces jeux anciens et leur évite de tomber dans l’oubli. Si vous voulez en savoir un peu plus sur celui-ci il suffit d’interroger wikipédia.

    Pour ce mémo j’ai utilisé la version disquette que l’on trouve ici.

    Il suffit d’extraire les fichiers. Je les ai placé dans mon répertoire /home/jeb/dosemu/LBA.

    Il faut ensuite copier le code suivant dans le fichier dosbox.conf à la racine de votre répertoire personnel.
    Lors du premier lancement, il faut configurer le jeu. Il faut choisir français puis :

  •  carte video = vesa
  •  musique = sound blaster pro 1 ; 220h
  •  effets = sound blaster pro 1 ; 220h ; 7 ; 1
  •  sauvegarder la configuration
  •  retour au dos

    Une fois la configuration effectuée, il faudra commenter la ligne qui la lance en ajoutant un # devant le mot setup à la fin du fichier /home/jeb/dosbox.conf.

    [sdl]
    # fullscreen -- Start dosbox directly in fullscreen.
    # fulldouble -- Use double buffering in fullscreen.
    # fullresolution -- What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
    # windowresolution -- Scale the window to this size IF the output device supports hardware scaling.
    # output -- What to use for output: surface,overlay,opengl,openglnb.
    # autolock -- Mouse will automatically lock, if you click on the screen.
    # sensitiviy -- Mouse sensitivity.
    # waitonerror -- Wait before closing the console if dosbox has an error.
    # priority -- Priority levels for dosbox: lowest,lower,normal,higher,highest.
    #             Second entry behind the comma is for when dosbox is not focused/minimized.
    # mapperfile -- File used to load/save the key/event mappings from.
    # usescancodes -- Avoid usage of symkeys, might not work on all operating systems.

    fullscreen=false
    fulldouble=false
    fullresolution=original
    windowresolution=original
    output=surface
    autolock=true
    sensitivity=100
    waitonerror=true
    priority=higher,normal
    mapperfile=mapper.txt
    usescancodes=true

    [dosbox]
    # language -- Select another language file.
    # memsize -- Amount of memory dosbox has in megabytes.
    # machine -- The type of machine tries to emulate:hercules,cga,tandy,pcjr,vga.
    # captures -- Directory where things like wave,midi,screenshot get captured.

    language=
    machine=vga
    captures=capture
    memsize=16

    [render]
    # frameskip -- How many frames dosbox skips before drawing one.
    # aspect -- Do aspect correction, if your output method doesn't support scaling this can slow things down!.
    # scaler -- Scaler used to enlarge/enhance low resolution modes.
    #           Supported are none,normal2x,normal3x,advmame2x,advmame3x,advinterp2x,advinterp3x,tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x.

    frameskip=0
    aspect=false
    scaler=normal2x

    [cpu]
    # core -- CPU Core used in emulation: simple,normal,full,dynamic.
    # cycles -- Amount of instructions dosbox tries to emulate each millisecond.
    #           Setting this higher than your machine can handle is bad!
    #           You can also let DOSBox guess the correct value by setting it to auto.
    #           Please note that this guessing feature is still experimental.
    # cycleup   -- Amount of cycles to increase/decrease with keycombo.
    # cycledown    Setting it lower than 100 will be a percentage.

    core=normal
    cycles=10000
    cycleup=500
    cycledown=20

    [mixer]
    # nosound -- Enable silent mode, sound is still emulated though.
    # rate -- Mixer sample rate, setting any devices higher than this will
    #         probably lower their sound quality.
    # blocksize -- Mixer block size, larger blocks might help sound stuttering
    #              but sound will also be more lagged.
    # prebuffer -- How many milliseconds of data to keep on top of the blocksize.

    nosound=false
    rate=22050
    blocksize=2048
    prebuffer=10

    [midi]
    # mpu401      -- Type of MPU-401 to emulate: none, uart or intelligent.
    # device      -- Device that will receive the MIDI data from MPU-401.
    #                This can be default,alsa,oss,win32,coreaudio,none.
    # config      -- Special configuration options for the device. In Windows put
    #                the id of the device you want to use. See README for details.

    mpu401=none
    device=default
    config=

    [sblaster]
    # sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16.
    # sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of the soundblaster.
    # mixer -- Allow the soundblaster mixer to modify the dosbox mixer.
    # oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3.
    #            On auto the mode is determined by sblaster type.
    #            All OPL modes are 'Adlib', except for CMS.
    # oplrate -- Sample rate of OPL music emulation.

    sbtype=sb16
    sbbase=220
    irq=7
    dma=1
    hdma=5
    mixer=true
    oplmode=auto
    oplrate=22050

    [gus]
    # gus -- Enable the Gravis Ultrasound emulation.
    # gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the
    #            Gravis Ultrasound. (Same IRQ's and DMA's are OK.)
    # gusrate -- Sample rate of Ultrasound emulation.
    # ultradir -- Path to Ultrasound directory.  In this directory
    #             there should be a MIDI directory that contains
    #             the patch files for GUS playback.  Patch sets used
    #             with Timidity should work fine.

    #gus=true
    #gusrate=22050
    #gusbase=240
    #irq1=5
    #irq2=5
    #dma1=3
    #dma2=3
    #ultradir=C:\ULTRASND

    [speaker]
    # pcspeaker -- Enable PC-Speaker emulation.
    # pcrate -- Sample rate of the PC-Speaker sound generation.
    # tandy -- Enable Tandy Sound System emulation (off,on,auto).
    #          For auto Tandysound emulation is present only if machine is set to tandy.
    # tandyrate -- Sample rate of the Tandy 3-Voice generation.
    # disney -- Enable Disney Sound Source emulation.

    pcspeaker=true
    pcrate=22050
    tandy=auto
    tandyrate=22050
    disney=true

    [bios]
    # joysticktype -- Type of joystick to emulate: none, 2axis, 4axis,
    #                 fcs (Thrustmaster) ,ch (CH Flightstick).
    #                 none disables joystick emulation.
    #                 2axis is the default and supports two joysticks.

    joysticktype=none

    [serial]
    # serial1-4 -- set type of device connected to com port.
    #              Can be disabled, dummy, modem, directserial.
    #              Additional parameters must be in the same line in the form of
    #              parameter:value. Parameters for all types are irq, startbps, bytesize,
    #              stopbits, parity (all optional).
    #              for directserial: realport (required).
    #              for modem: listenport (optional).
    #              Example: serial1=modem listenport:5000

    serial1=disabled
    serial2=disabled
    serial3=disabled
    serial4=disabled

    [dos]
    # xms -- Enable XMS support.
    # ems -- Enable EMS support.
    # umb -- Enable UMB support (false,true,max).

    memsize=64
    xms=true
    ems=true
    umb=true

    [ipx]
    # ipx -- Enable ipx over UDP/IP emulation.

    ipx=false

    [autoexec]
    # Lines in this section will be run at startup.

    mount c /home/jeb/dosemu
    c:
    #keyb fr
    cd lba
    setup
    lba

    Pour jouer :

  •  H : Holomap (pour afficher la carte)
  •  P : pause
  •  les flèches pour se déplacer
  •  F1 : mode normal
  •  F2 : mode sportif
  •  F3 : mode agressif
  •  F4 : mode discret
  •  F5 : zoom
  •  F6 : le menu du jeu
  •  "espace" pour effectuer une action, par exemple fouiller dans le mode normal, frapper dans le mode agressif, sauter en mode sportif.
  •  "shift" pour appeler l’inventaire
  •  "Echap" pour sortir de l’inventaire
  •  "Ctrl" affiche le mode actif

    Attention, si on clique avec la souris sur la fenêtre le curseur est capturé par celle-ci et disparait. Pour le libérer, il faut utiliser Ctrl+F10. Mais il faut insister car Ctrl est controlé par le jeu pour afficher le mode actif !

    texte - 106.1 ko

    Historique des modifications

    Version Date Commentaire
    0.1 01/03/2007 Création par Jibux
  • Fichier attachéTaille
    twinsen-libere.jpg106.16 Ko

    Commentaires

    > Faire fonctionner les jeux MS-DOS sous linux

    C’est assez complet :)

    Tous à vos Duke Nukem 3D !!!

    > Faire fonctionner les jeux MS-DOS sous linux

    Merci,

    Fait attention ce jeu est assez prenant ;-)

    > Faire fonctionner les jeux MS-DOS sous linux

    Très bon article.
    Je vais m’y coller.
     :)

    Patrice.