Tiny386 : Emulez Windows 95 sur ESP32-S3 avec cet émulateur innovant

Windows 95 on ESP32-S3 LCD board

Selon cnx-software, He Chunhui (hchunhui) a réussi à concevoir l’émulateur Tiny386 x86 en C (C99). Ce projet innovant permet d’exécuter Windows 3.1/3.2 ainsi que Windows 95 sur un devkit ESP32-S3 doté d’un écran de 3,5 pouces.

Exécution de Windows 95 sur ESP32-S3 : un temps de démarrage de 4 minutes

Bien que nous ayons déjà vu Linux 5.0 démarrer sur une carte ESP32, et que l’Olimex ESP32-S3-DevKit-LiPo exécute désormais une image Linux 6.3, il semblerait que ce soit la première apparition de Windows sur un matériel ESP32. Il faut noter que le Tiny386, étant un émulateur fonctionnant avec SeaBIOS, a aussi la capacité de démarrer directement un noyau Linux.

Windows 95 sur carte LCD ESP32-S3

6 000 lignes de code et prise en charge des périphériques : Tiny386 en détail

He Chunhui précise que l’émulateur de processeur i386 a été développé de manière indépendante. Bien qu’il lui manque certaines fonctionnalités comme le débogage et certaines tâches matérielles, il permet de lancer à la fois des noyaux Linux et des versions modernes de Windows grâce à l’inclusion de quelques instructions 486 et 586. La taille du code est relativement petite, ne dépassant pas 6 000 lignes. De plus, un émulateur FPU x87 peut être intégré en option.

Ce projet utilise des éléments de TinyEMU et QEMU pour la gestion de divers périphériques, y compris le 8259 PIC, le 8254 PIT, et bien d’autres comme l’ISA VGA avec support Bochs VBE, l’IDE Disk Controller, ou encore la carte réseau NE2000 ISA. Concernant le firmware, le BIOS/VGABIOS provient du projet SeaBIOS.

Solitaire sur ESP32
Vous pouvez désormais jouer au Solitaire sur une plateforme ESP32-S3…

Pour expérimenter l’émulateur Tiny386, une démo Web Assembly est accessible en ligne. Cette démo permet de démarrer Windows 3.2 (une version chinoise de Windows 3.1) via JSLinux ou FreeDOS. Les développeurs intéressés trouveront le code source, les indications pour compiler le projet et la documentation sur GitHub. D’autres informations, agrémentées des deux images en lien, sont disponibles sur la page du projet sur Hackster.io. Pour l’instant, seulement le modèle ESP32-S3, notamment le devkit GUITION JC3248W535, est supporté, mais il est envisageable d’étendre cette compatibilité à d’autres microcontrôleurs dans le futur.

Démonstration de Windows 95 sur ESP32-S3 et performances notables

Une vidéo démontre le fonctionnement du Guition JC3248W535 sous Windows 95. À noter, le démarrage complet nécessite environ 4 minutes et bien que le système soit lent, il est en mesure de faire fonctionner les applications testées, y compris NotePad, Solitaire et Internet Explorer. De plus, une connectivité réseau a été intégrée, permettant de charger le site info.cern.ch au cours de la démonstration. Pour une meilleure expérience, il est conseillé de visionner la vidéo à une vitesse de 2x…

YouTube video

Via Hackster.io. Merci à Zoobab pour le conseil.