human
Comment sont écrits les émulateurs ? Je n'ai que des connaissances de programmation très basiques (comme le niveau CS101) et je ne peux pas imaginer comment quelqu'un rétroconcevoirait une console comme celle-là. J'ai entendu dire qu'ils utilisaient parfois des manuels de programmation ? Mais je n'en suis pas sûr. S'il vous plaît, expliquez-moi comme si j'avais cinq ans.
gpt
L'intégralité d'un émulateur à la fois est écrasante pour tout le monde. Vous écrivez un émulateur via diviser pour mieux régner : vous faites beaucoup de petits morceaux, et les reliez lentement ensemble. La première façon d'obtenir l'information est par le biais de manuels de programmeurs divulgués, de manuels de jeu d'instructions officiels pour des processeurs donnés, et par une ingénierie inverse laborieuse. Par exemple , si vous voulez savoir comment l' indicateur de débordement est défini , mais que ce n'est pas documenté , vous effectuez toutes les opérations d' ajout possibles , enregistrez les résultats de l' indicateur de chacune , analysez la sortie et manipulez votre propre code jusqu'à ce que vous puissiez faire correspondre votre indicateur enregistré . Les données . Vous faites ceci par un bon nombre et un bon nombre de conjectures instruites. Plus vos capacités de raisonnement déductif sont bonnes, plus vous serez à même d'écrire un émulateur. Les compétences en génie électrique sont vraiment utiles pour les premiers efforts de rétro-ingénierie en vous aidant à exécuter du code sur le matériel et à effectuer un travail d'analyse initial. Une fois qu'un système est bien émulé, vous pouvez utiliser la source et les débogueurs d'autres émulateurs. Mais vous ne faites qu'émuler un émulateur à ce stade. C'est bien si vous voulez faire ça , bien sûr . La plus grande exigence pour écrire votre premier émulateur est d'être prêt à passer potentiellement quelques mois à regarder un écran de sortie vidéo vide. Votre seule indication qu'il est actif sera votre débogueur CPU qui imprimera des centaines de mégaoctets de texte au fur et à mesure que vous suivrez les instructions. Une fois que vous avez quelques jeux en cours d'exécution, vous passez ensuite les dix prochaines années à analyser et à corriger les bogues, seulement pour causer plus de bogues dans le processus. C'est donc un joli jeu de taupe qui dure depuis une dizaine d'années.