Thème d'affichage

BasicBox : un émulateur de PC x86 écrit intégralement en Visual Basic 6

Nicolas Lecointre · 30 Mar 2026 à 08h46
BasicBox : un émulateur de PC x86 écrit intégralement en Visual Basic 6

Un développeur a publié son projet BasicBox sur GitHub : il s’agit d'un émulateur de PC x86 complet, fonctionnel, capable de faire tourner Windows NT 4.0, Linux et DOS. Le tout écrit intégralement en Visual Basic 6.

Eh ouais, vous avez bien lu, mes p’tits potes à la compote. Pas en C, pas en Rust, ni en assembleur. En motherf*cking VB6.

Et vous savez quoi ? Ça marche. Lentement, certes (le README précise d'ailleurs de s'armer de "beaucoup de patience"), mais ça marche.

Le retrocomputing poussé à son paroxysme

Mais pourquoi écrire un émulateur x86 dans un langage dont Microsoft a arrêté le support étendu en 2008 ?

Mike Chambers, le développeur, explique avoir grandi avec VB6, et adorer faire des trucs complètement idiots avec. C'est lui qui le dit, alors on ne va pas lui reprocher sa cohérence.

Meme how do you do fellow kids

BasicBox est en réalité un port de PCulator, son émulateur principal écrit en C (ouais, le gars est chaud quand même).

Comme il l’indique lui-même sur l’indémodable (non) VBForums, son projet VB6 a un seul but : prouver qu'on peut écrire à peu près tout et n'importe quoi en VB6, du moment qu'on se fiche éperdument de la vitesse d’exécution (c’est pas faux).

Le développeur n'en est d'ailleurs pas à son coup d'essai avec VB6 : il avait déjà publié un émulateur NES (vbNES) et un émulateur 8086 dans le même langage.

486 raisons d’être impressionné

Sans mauvais jeu de mot, la liste des composants émulés est vraiment FAT.

Le processeur est un 486 enrichi de quelques instructions plus récentes (CMOV, RDTSC), accompagné d'un coprocesseur mathématique 387 porté depuis Tiny386. Pour le stockage, on a un contrôleur ATA/IDE et un contrôleur SCSI BusLogic BT-545S porté depuis 86Box. Le réseau passe par une carte NE2000 portée depuis Bochs, et côté son, une Sound Blaster maison couplée à un OPL3 (NukedOPL porté en VB6).

Ajoutez la VGA et une souris série compatible Microsoft, et vous avez une machine virtuelle complète des années 90, reconstituée dans un langage conçu pour faire des formulaires Windows.

Windows NT 4 émulé en VB6

Côté OS testés, Debian 2.2 Potato (oui, celle de l'an 2000) tourne de manière utilisable sur un CPU moderne avec un bon IPC. Windows NT 4.0 fonctionne aussi, à condition de booter sur un disque SCSI (le contrôleur IDE provoque un écran bleu au démarrage de NT). Windows 95, 98 et 2000 refuseraient encore de coopérer.

Mais rendez-vous compte : on peut même faire tourner VB6 dans cet émulateur écrit en VB6 !

VB6 dans un émulateur en VB6, ça en jette quand même, non ?

Le Select de la Muerte

Sans grande surprise, la performance reste un gros sujet. Mike Chambers indique que même avec un CPU de poste fixe récent, ça tourne correctement, sans plus. Sur un PC portable... beaucoup moins.

Les jeux DOS qui nécessitaient un vrai 486 à l'époque ne sont globalement pas jouables. Après tout, on reste sur de l'émulation logicielle pure dans un langage interprété, sans JIT, sans accès bas niveau au matériel : chaque instruction x86 passe par la moulinette VB6.

Le premier point de sa TODO list pour optimiser le tout ? Voir quel gain de perf il peut obtenir en remplaçant les appels de fonction par un gigantesque Select Case. Miam.

Il y a des projets qu'on admire pour leur utilité. Et il y en a qu'on admire pour l'obstination absurde et admirable qui les porte. Je vous laisse deviner dans quelle catégorie ranger BasicBox.

À propos de l'auteur

Nicolas Lecointre

Nicolas Lecointre

Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.

Voir sa page auteur

À lire également

Articles recommandés

Plus de contenu

Charger +