MartyPC, un émulateur IBM PC/XT cycle-exact écrit en Rust
En bref
- MartyPC est un émulateur d'IBM PC et compatibles, écrit en Rust, qui vise la précision cycle-par-cycle plutôt que la convivialité.
- L'auteur a validé la précision du CPU 8088 en le comparant avec du matériel réel via Arduino, atteignant 99,9997% d'exactitude.
- L'outil s'adresse aux développeurs rétro-informatique et aux enthousiastes de démo PC : il peut exécuter des démos exigeantes comme 8088 MPH et Area 5150.
- Disponible sur Windows, Linux et macOS, avec une version web de test ; le développement a commencé en avril 2022.
Ce que dit la source
L'auteur a lancé MartyPC comme projet personnel pour apprendre Rust en écrivant un émulateur de zéro. Le projet a progressé au-delà des attentes initiales et s'est construit autour d'une niche précise : un outil de développement pour la rétro-informatique, orienté vers la précision cycle-exacte plutôt que vers la facilité d'utilisation grand public. L'approche s'appuie sur une validation matérielle rigoureuse : l'auteur a connecté un vrai CPU 8088 à un Arduino pour comparer instruction par instruction l'exécution sur l'émulateur versus le matériel réel.
- Le CPU 8088 atteint 99,9997% de précision cycle-exacte, validée contre du matériel réel avec un Arduino MEGA et un bus sniffer utilisant un analyseur logique.
- MartyPC émule l'IBM Model 5150 (PC original), le 5160 (XT), ainsi que des variantes comme le PCjr et le Tandy 1000.
- Implémentation complète du CGA (carte graphique) simulant le champ d'affichage complet incluant l'overscan, permettant de rouler des démos PC exigeantes.
- Support de multiples cartes vidéo : MDA, Hercules, EGA en cours, VGA partiellement (Mode 13h et Mode X fonctionnels).
- Son : émulation du haut-parleur PC via PWM, Adlib (OPL2), et support du Disney Sound Source.
- Version développement actuelle 0.5.0 ; l'outil inclut des outils de débogage et de journalisation destinés aux développeurs 8088.
- Première version capable d'exécuter 8088 MPH (avril 2023) et premier émulateur capable de tous les effets d'Area 5150 (mai 2023).
Dans les commentaires
Débat très maigre : un utilisateur signale un problème de gel sur 8088 MPH, un autre note que le post est un doublon. Pas de discussion substantielle sur la technique ou l'utilité.
- Un commentateur rapporte que 8088 MPH se fige après le message initial, ce qui contredit partiellement la revendication de l'auteur quant à la capacité à exécuter cette démo.
- Le post est signalé comme doublon d'une discussion de 24 jours avant, suggérant une faible originalité de la résoumission.
Notre lecture
MartyPC est un projet technique sérieux destiné à un public très niche : développeurs travaillant sur du code 8088 ou passionnés de préservation de démos rétro. La rigueur de la validation cycle-exacte (comparaison matérielle, Arduino, analyseur logique) est impressionnante et différencie le projet d'autres émulateurs plus approximatifs. Cependant, l'absence de débat HN substantiel, combinée au report d'un problème d'exécution sur une démo phare, suggère que le projet reste confidentialité et que sa stabilité en conditions réelles mérite vérification. Aucune action recommandée pour une équipe DSI : c'est un outil de niche, plutôt pertinent pour une équipe de rétro-développeurs ou un musée informatique.