2 points par GN⁺ 2025-01-06 | 1 commentaires | Partager sur WhatsApp

One Dog contre la stack graphique de Windows 3.1

Introduction

  • En apprenant le matériel VGA, j’ai essayé de résoudre les problèmes rencontrés en modifiant de vieux pilotes vidéo.
  • J’ai également tenté d’installer Windows 3.11 sur un Asus Eee PC 1000H pour obtenir une sortie vidéo correcte.

Sortie vidéo de base de Windows 3.x

  • Par défaut, Windows 3.x rend en 16 couleurs à une résolution VGA de 640×480.
  • Sur l’écran 1024×600 de l’Eee PC, cette résolution n’est pas adaptée.

Problème du pilote Super VGA

  • Windows 3.11 inclut des pilotes pour d’anciens adaptateurs vidéo, mais n’intègre pas la prise en charge de l’Intel GMA 950.
  • Le pilote Super VGA prend en charge une résolution de 1024×768 en 256 couleurs, mais ne fonctionne pas.

Problèmes liés à la vidéo IBM PC

  • Le VGA est un contrôleur vidéo très spécifique, conçu par IBM dans les années 1980.
  • Le SVGA désigne une technologie plus avancée que le VGA, mais ce n’est pas une norme.

VBE (VESA BIOS Extensions)

  • La VBE est une interface qui permet aux logiciels d’interagir avec l’adaptateur vidéo.
  • VBE9x et VBEMP de BearWindows permettent d’utiliser la VBE sous Windows 9x et NT.
  • SVGAPatch modifie le pilote Super VGA 256 couleurs de Microsoft pour qu’il utilise la VBE.

Problèmes de SVGAPatch

  • SVGAPatch provoque des soucis de compatibilité avec les logiciels DOS.
  • Lorsque l’invite DOS est ouverte, l’affichage se détériore.

Structure de Windows 3.x

  • En mode Enhanced, trois systèmes d’exploitation s’exécutent simultanément.
  • Un gestionnaire de machine virtuelle crée les machines virtuelles, et Windows en mode standard s’exécute dans la première machine virtuelle.

Structure du pilote d’affichage

  • Sélectionner un adaptateur vidéo dans Windows Setup installe plusieurs pilotes.
  • La structure se compose d’un Grabber, d’un Display Driver et d’un Virtual Display Device (VDD).

Fonctionnement de SVGAPatch

  • SVGAPatch définit un mode vidéo spécifique et gère la mémoire vidéo via la VBE.
  • Il remplace les fonctionnalités d’un adaptateur vidéo donné pour y ajouter la prise en charge de la VBE.

Rôle du VDD

  • Les programmes DOS s’attendent à un accès direct au matériel.
  • Windows gère cela via une implémentation virtualisée.

Conclusion

  • SVGAPatch offre un meilleur affichage grâce à la VBE, mais la compatibilité avec les logiciels DOS doit encore être réglée.
  • La gestion d’état complexe du VDD pourrait être à l’origine du problème.

1 commentaires

 
GN⁺ 2025-01-06
Commentaires Hacker News
  • C'est étonnant qu'il soit possible de charger Windows 3.x sur un PC moderne et d'utiliser immédiatement le VGA de base. Mais sur les Linux/BSD modernes, il est difficile d'obtenir un support par défaut du framebuffer VGA avec accélération logicielle si l'on n'a ni pilotes corrects ni fichiers de configuration adaptés.
    • Le projet xfree86 a tenté de résoudre ce problème, mais cette approche n'a pas été conservée dans le fork de Xorg.
  • L'interface graphique de Windows 3.1 semble plus intuitive, plus efficace et plus facile à utiliser que celle d'aujourd'hui.
  • Le menu Démarrer de Win11 est presque inutilisable, sauf pour saisir un mot-clé et espérer que ça marche.
  • Windows NT et 2k représentaient l'état optimal, puis les chefs de produit ont commencé à introduire des changements.
  • KDE et Gnome ont fini par devenir de plus en plus attractifs avec le temps.
  • Le problème d'affichage corrompu au moment d'ouvrir l'invite DOS en mode fenêtre vient du fait que l'invite DOS tourne dans une VM séparée.
    • Le BIOS VGA ROM peut être un wrapper VBE et peut inclure des instructions IN et OUT qui communiquent avec les ports E/S VBE.
  • Les développeurs de pilotes d'affichage Windows 3.x/9x utilisaient des traps de ports I/O pour virtualiser l'accès matériel.
  • Le VDD (Virtual Display Device) joue le rôle de multiplexeur du matériel vidéo, et envoie les commandes directement à l'adaptateur VGA réel lorsque l'application DOS passe en plein écran.
  • L'interface graphique de Windows 3.x fonctionne dans une VM DOS, et le noyau hyperviseur VMM32 la multiplexe avec d'autres VM de processus DOS.
  • En écrivant le pilote framebuffer VESA pour Win9x, ils ont constaté que la sauvegarde et la restauration de l'état du GPU varient selon les fabricants.
  • Sur DOSBox, le mode texte s'affiche avec des caractères corrompus, et sur un Eee PC certaines couleurs de l'interface graphique disparaissent.
  • Je tourne un Debian 32 bits sur un Eee PC, où Firefox est lourd, mais mpv suffit pour la lecture de flux vidéo.
  • En lisant sur le fonctionnement des anciennes versions de Windows basées sur DOS, je ressens toujours de l'admiration.
  • J'ai déjà contacté le support technique de Microsoft pour obtenir le disque de pilotes quand l'ET4000H n'était pas pris en charge par Windows 3.1.
  • Je possède un EEEPC 207g, et il serait amusant de l'utiliser pour essayer des jeux rétro.
  • J'ai comparé les transitions d'état entre l'GUI et le mode DOS pour analyser les motifs.
  • La conception du site web m'a fait penser à la période faste du vieux web, ce qui était rafraîchissant.