Vieux Geek, épisode 20 : les jeux sous MS-DOS, quelle galère !

C’est grâce un fil lancé par Jean Sebastien Sauvage sur Google+ et une remarque de Lionel Hilaire que j’ai eu l’idée de cet article. Je veux parler des jeux de la grande époque du MS-DOS.

Il faut dire que jusqu’à ce que les jeux se lancent directement et uniquement sous MS-Windows (en gros vers 1999), il fallait jongler avec les réglages des jeux pour avoir le son, ou encore la souris fonctionnelle.

Il faut le dire haut et fort : MS-Dos était surement le système le plus pourri au niveau de la gestion de la mémoire, ou encore du matériel sonore.

Il faut dire que MS-Dos avait une vision spéciale de la mémoire. Conçu à l’origine pour ne fonctionner au maximum qu’avec 640 Ko de mémoire, car on considérait qu’en 1981, 640 Ko seraient long à atteindre. Et si l’on en croit la citation de Bill Gates faite en 1989, c’était trop optimiste.

I have to say that in 1981, making those decisions, I felt like I was providing enough freedom for 10 years. That is, a move from 64k to 640k felt like something that would last a great deal of time. Well, it didn’t – it took about only 6 years before people started to see that as a real problem.

Ce qu’on peut traduire par :

Je dois dire qu’en 1981, en prenant ces décisions, j’avais l’impression de proposer assez de liberté pour 10 ans. Autrement dit, le passage de 64k à 640k était vu comme une transition assez longue. Eh bien, ce ne fût pas le cas – il a fallu environ 6 ans seulement avant que les gens commencent à y voir un vrai problème.

Ce qui en a résulté un gloubiboulga infame de couches successives qui saucissonnait la mémoire vive. En gros :

  1. Mémoire conventionnelle : les 640 premiers Ko
  2. Mémoire supérieure : les 384 Ko suivants
  3. Mémoire étendue : le reste de la mémoire

Au secours !!!!

Certains logiciels, comme les jeux à la Doom s’arrangeait pour prendre à leur charge la gestion de la mémoire, via un outil comme dos4gw qui gérait la mémoire d’un tenant.

Sinon, il fallait jouer avec les fichiers autoexec.bat et config.sys pour libérer un maximum de mémoire. Sans oublier les jeux qui voulait une taille précise disponible dans chaque mémoire… Un casse tête !

Mais la mémoire n’était pas la seule source d’ennuis. Les cartes sonores étaient aussi de la partie. Même s’il existait deux standards, la Creative Sound Blaster, et la carte de la scène des démomakers, la Gravis UltraSound.

Si certains jeux étaient suffisamment gentils pour proposer des outils de configuration et gérer correctement la carte, il en résultat parfois des galères monstrueuses avec des cartes compatibles Sound Blaster. Car les Sound Blaster étaient onéreuses à l’époque. Et les clones bon marchés pullulaitent.

J’ai donc retrouvé un exemplaire de Doom – premier du nom – pour vous montrer comment on s’amusait à configurer un jeu à l’époque. Dosbox a été mon allié pour me permettre d’avoir un MS-DOS bien émulé… Et surtout un monstre avec 16 Mo de mémoire vive par défaut ! Bon, j’avoue, cela fait une éternité que je n’ai plus tâté du Doom 🙂

Rien que l’ensemble de la configuration en mode texte ferait fuir nombre de joueurs actuels, qui se contentent d’insérer une galette plastifié dans le lecteur en attendant que l’ensemble se lance…

Mais quelle époque, celle des premiers Doom, des premiers Civilization et autre Sim City…

7 réflexions sur « Vieux Geek, épisode 20 : les jeux sous MS-DOS, quelle galère ! »

  1. J’ai commencé à jouer sur DOS et à partir du moment où tu connaissais ton adresse, IRQ et DMA de carte son, pas de souci (il suffisait de les sélectionner dans les menus). Configurer archlinux est plus complexe, c’est pour dire…
    Les commandes sont basiques et simples à appréhender, « dir » pour trouver ton répertoire « cd doom » pour entrer dedans, et « doom » pour lancer.

    En fait je me souviens même avoir râlé contre Windows au début car je trouvais que c’était beaucoup plus chiant pour lancer les jeux. Il fallait tout le temps cliquer partout, attendre que ça démarre, ce qui était quand même moins pratique que taper « doom.exe » non ? 😀

  2. Pour le coup de la décision des 640 K, ne pas oublier que l’idée vient d’un mec qui trouvait, plus tard, qu’Internet n’avait pas d’avenir 🙂 contrairement au réseau proprio MSN 😀
    Après, avec MSDOS 6, on pouvait faire des menus de démarrage pour botter sur des config.sys/autoexec.bat différents !
    J’ai souvenir d’un jeu (Rex NEbular) qui plantait après l’intro.
    J’ai mis du temps à trouver pourquoi : le driver souris qui plantait le jeu !
    Saleté !
    Alors qu’un compatible suffisait 😉

  3. Je ne vois rien de compliqué.

    Gérer le himem et le emm386 dans le config.sys et autoexec.bat pour aller chercher le moindre petit ko pour lancer un jeu, ça c’était compliqué.
    Ainsi que le chargement de dos dans différentes parties mémoire.

    Aller, un config.sys pour s’amuser:
    DEVICE=C:\windows\HIMEM.SYS /testmem:off
    DOS=HIGH,UMB
    LASTDRIVE=z
    COUNTRY=049,850,C:\windows\COMMAND\country.sys
    SHELL=c:\4dos\4dos.com c:\4dos /p /e:1024
    DEVICE=C:\windows\EMM386.EXE noems d=64 x=a000-c7ff i=c800-f7ff x=f800-ffff
    rem DEVICE=C:\windows\EMM386.EXE 28000 ram d=64 x=a000-c7ff frame=c800 i=d000-f7ff x=f800-ffff
    DEVICEHIGH=c:\utils\TEAC_CDI.SYS /D:TEAC
    DEVICEHIGH=C:\utils\eansi.sys

    Et un autoexec qui montre la config pour soundblaster & cie.
    @ECHO OFF
    VERIFY OFF
    SET COMSPEC=c:\4dos\4dos.com
    SET TEMP=d:\temp
    SET TMP=d:\temp
    SET BLASTER=A220 I5 D1 H5 P300 T6
    SET SOUND=C:\PROG\SB16
    SET ULTRASND=240,6,6,11,11
    SET ULTRADIR=C:\PROG\GUS
    PATH C:\UTILS;C:\UTILS\P;C:\WINDOWS;C:\WINDOWS\COMMAND
    PROMPT $p$g
    C:\PROG\SB16\SB16SET /M:255 /VOC:255 /CD:240 /MIDI:240 /LINE:240
    C:\PROG\SB16\SBCONFIG.EXE /S
    lh c:\windows\command\KEYB GR,,C:\WINdows\COMMAND\KEYBOARD.SYS

    IF %WINDIR% == C:\WINDOWS GOTO WEITER
    C:\PROG\GUS\ULTRINIT.EXE -EJ
    C:\PROG\GUS\ULTRAMIX
    LH C:\windows\COMMAND\MSCDEX.EXE /D:TEAC /M:0 /L:I
    lh c:\utils\logi\mouse.exe dual 1
    vmode 640-90
    vmode 800-90
    vmode 1024-75
    vmode 1280-75
    lh c:\utils\univbe

      1. C’est des ptit fichiers glanés sur wiki il me sembles.
        Les lignes intéressantes sont les device et sound.

        A l’époque c’était sur ces lignes qu’on pestaient.

        Je me souvient avoir eu un jeu dont j’ai plus le nom, avoir besoin de 630k sur les 640. C’était du sport.

        Bien, que je trouve que c’était simple par rapport à linux car ici, finalement on avait que 2 fichiers de config.

        Après, j’ai fait un peut de dr-dos (http://fr.wikipedia.org/wiki/DR-DOS), mais pas assez pour m’en souvenir. (dr-dos tout une histoire, dixit wikipedia ^^)

        Et puis, on avait le dos shell (http://en.wikipedia.org/wiki/DOS_Shell)

        1. La plupart du temps, tu as un fichier de config pour les logiciels linux. Et les codeurs sympa utilisaient des outils comme dos4gw qui s’occupait de prendre en main la gestion mémoire.

          DR-Dos ? J’en ai taté un peu. Et le Dos-Shell, je ne l’ai connu qu’en émulation, ayant commencé à utiliser MS-Dos à l’époque de la version 6.22.

Les commentaires sont fermés.