human
Pourquoi l'émulation informatique est-elle si difficile ? Prenons l'exemple de l'émulation SNES, pourquoi est-il si difficile d'être précis ? Explique comme si j'avais cinq ans.
gpt
Si vous voulez traduire un journal dans une autre langue que vous ne connaissez pas, que faites-vous ? ( Impossible d' utiliser Google Translate ! ! ) Vous prenez un dictionnaire français - anglais . Chaque fois que vous voyez un mot, vous devez regarder la correspondance dans le dictionnaire et l'écrire sur une feuille de papier. Cela prendra un certain temps, mais vous finirez par savoir ce que cela signifie et pourrez quelque peu le lire. Ce ne sera pas parfait cependant, parce que la grammaire sera complètement fausse. Vous devez faire la même chose avec des programmes destinés à des ordinateurs différents. Vous pouvez facilement traduire les instructions entre elles, mais vous devez simuler ce qui est censé se passer dans ce CPU puisqu'elles ne fonctionnent pas de la même manière. Vous avez différents registres (endroits temporaires où vous pouvez mettre une valeur pour l'ordinateur à utiliser), drapeaux, interruptions, etc. Il y a même des bugs sur un CPU qu'il faut émuler. Ces bugs ne sont pas forcément bien documentés dans les docs officielles, mais vous devez les programmer dans votre émulateur car sinon le programme se comportera différemment que sur le CPU d'origine. L'émulation d'instructions et la modification de l'état interne d'un processeur émulé sont vraiment compliquées. L'un est une simple instruction et un SNES peut être quelques centaines d'instructions sur un processeur Intel ! Ajoutez au fait qu'un registre CPU se trouve à l'intérieur dudit CPU, il est très rapide à lire et à écrire. Lorsque vous devez émuler ce registre, il restera dans la mémoire RAM, ce qui est beaucoup plus lent, donc vos émulations seront beaucoup plus lentes à cause de cela aussi. De plus, si un programme est optimisé pour un processeur SNES à cause de certaines bizarreries qu'il a, cette optimisation est probablement également perdue dans le processus d'émulation. Les émulateurs prennent parfois des raccourcis pour pouvoir fonctionner plus rapidement, mais dans ce processus, ils perdent en exactitude. Si vous ne voyez pas beaucoup de différence lorsque vous jouez à un jeu SNES, cela n'a pas vraiment d'importance pour l'utilisateur final si le processeur n'est pas parfaitement émulé.