Les passionnés du système d'exploitation Microsoft effectuent toutes sortes de tests pour vérifier le comportement actuel et passé des différentes versions. C'est ce qui est arrivé à cet utilisateur qui a développé un jeu compatible avec le API Windows 1.0 et l'a testé sur les versions actuelles du système.
Nous parlons d'un projet qui vient d'être rendu public sur Reddit et qui teste les versions actuelles de Windows pour un jeu développé avec l'API de la première version du système d'exploitation.
Comment le projet pour Windows 1.0 a été développé
Son créateur s'est fixé comme objectif de développer un jeu pour Windows 1.0 et de tester 40 ans de compatibilité, un projet que vous pouvez voir de première main à partir de ce lien.
Comme nous le dit son créateur, il a décidé d'écrire une application pour la première version de Windows afin de voir à quel point l'API Windows actuelle est réellement différente de ses premières versions. Tout d’abord, il faut savoir que Windows 1.0 est sorti au milieu des années 1980. C'était une époque marquée par Processeurs 16 bits et MS-DOS.
À première vue, il peut sembler que cette version n'a rien de commun avec Windows moderne, mais en étudiant l'API de l'application, nous avons réalisé que ce n'est pas le cas. Il a généré une petite application avec des graphiques, une saisie au clavier, des minuteries et un redessinage constant, qu'il a appelé Xonix. Il s'agit en fait d'un jeu simple compatible avec Windows 1.0.
Pour tout cela, il a utilisé MicrosoftC4.0 et un des premiers compilateurs Windows. Le code source utilise l'ancien style de déclaration de fonction et des extensions de compilateur obsolètes telles que FAR et PASCAL.
Compatibilité du jeu avec Windows actuel
Mais malgré l’âge du système, l’architecture de l’application n’est pas si différente. Même à l’époque, presque tous les mécanismes actuels de l’API Windows existaient déjà. Il nous parle des procédures de fenêtre, boucle de messagesles minuteries, les ressources ou le fonctionnement du clavier et de la souris.
En interne, Windows a énormément changé au fil des décennies, mais l'interface de l'application est restée si stable que le code du milieu des années 1980 est toujours très compatible. Il faut dire que le jeu n’utilise que les fonctions les plus basiques du système. Il n'utilise pas de bibliothèques externes ni de composants non standard. Ainsi, il est compilé sans modifications dans les différentes versions du SDK Windowsde Windows 1.0 à systèmes 64 bits modernes.
Seul le compilateur et sa configuration changent. La conclusion à laquelle parvient l'amateur de Windows est que, pour un projet visant un système d'exploitation du milieu des années 80, le niveau de compatibilité qui en résulte avec les versions modernes est surprenant. Si vous souhaitez le consulter, il a été rendu public sur cette page du plate-forme GitHub.
L'une des parties les plus intéressantes de l'expérience consistait à tester la compatibilité des Fichier EXE 16 bits déjà compilé avec les versions ultérieures de Windows. Eh bien, le jeu fonctionne sans problème sur les systèmes allant de Windows 1.x aux versions 32 bits de Windows 10. Il existe cependant quelques exceptions, puisque, par exemple, il ne démarre pas sous Windows 95.
En revanche, sur les versions modernes 64 bits de Windows, le projet se compile mais ne s'exécute pas non plus, puisque la prise en charge des applications Windows 16 bits, par exemple, a été supprimée. Bref, la grande réussite de la conception originale de l’API Windows est frappante. Malgré le grand nombre de changements internes subis par le système, Microsoft a réussi à préserver le modèle d'application principal avec très peu de changements.
Questions sur la compatibilité des anciens logiciels dans Windows moderne En effet, Microsoft a conservé la structure de base de son API (interface de programmation d'applications) très stable. Bien que le système d'exploitation ait changé en interne, les mécanismes de base tels que le bouclage des messages et le redessinage des fenêtres sont toujours compatibles avec le code original des années 1980.
Pas directement. Les versions 64 bits de Windows (comme Windows 10 ou 11 Pro/Home habituel) ont supprimé la prise en charge native des applications 16 bits. Cependant, le code source d'origine peut être recompilé pour fonctionner comme une application 64 bits moderne.
Le développeur a utilisé Microsoft C 4.0 et les compilateurs originaux de l'époque. Le code utilise d'anciennes normes et des extensions de compilateur désormais obsolètes, telles que FAR et PASCAL, qui étaient courantes dans le développement de Windows 16 bits.
Fait intéressant, l'expérience a révélé que le jeu ne se lance pas sous Windows 95, bien qu'il fonctionne sur des versions 32 bits antérieures (1.x) et ultérieures. Cela marque une exception dans la lignée de la compatibilité prouvée.
L'auteur a publié l'intégralité du projet, y compris le code source compatible Windows 1.0, sur la plateforme GitHub afin que tout passionné puisse le consulter et tester par lui-même la rétrocompatibilité.
Pourquoi un jeu Windows 1.0 peut-il fonctionner sous Windows 10 ?
Le fichier 16 bits d'origine fonctionne-t-il sur les versions 64 bits actuelles ?
Quels langages et outils ont été utilisés pour cette expérimentation ?
Existe-t-il des versions de Windows où le jeu plante de manière inattendue ?
Où puis-je consulter le code de ce projet ?