108 votes

Pourquoi est-il nécessaire de maintenir la réinitialisation lors de l'extinction de la NES ?

Pourquoi ces instructions sont-elles nécessaires? Certains jeux exécutent-ils réellement des instructions qui seraient interrompues si le joueur appuie simplement sur le bouton d'alimentation?

Notez que je ne cherche pas de spéculations, mais plutôt une distinction technique entre ce qui se passerait lorsque l'utilisateur maintient enfoncé le bouton de réinitialisation puis appuie sur le bouton d'alimentation, par rapport à simplement appuyer sur le bouton d'alimentation.

Exemple:

Un jeu avec 'Maintenez RESET pendant que vous éteignez l'ALIMENTATION!!' à l'écran

5 votes

Et maintenant j'ai la chanson de l'auberge Final Fantasy dans la tête... maudite soit-elle!

1 votes

Je n'ai jamais entendu parler de ça. Mais mes seuls jeux sauvegardés par batterie étaient la série Zelda.

95voto

Andreas Bombe Points 1051

Je ne possède pas de NES ou ne connais pas la raison de ce message avec certitude, mais d'un point de vue électronique, la raison est assez évidente.

Oui, la raison est d'éviter la corruption des sauvegardes de jeu, mais non, ce n'est pas à cause de "pics de tension" ou de rebonds d'interrupteur comme mentionné dans l'autre réponse et les commentaires.

La première chose à savoir est qu'il n'existe pas de source d'alimentation infiniment rapide. L'alimentation stabilise et tamponne sa sortie (et le circuit lui-même fait plus de tamponnage) et cela signifie que la tension de sortie va augmenter progressivement dans un certain laps de temps lors de la mise sous tension. Pour la même raison, la tension ne baissera pas immédiatement à zéro lors de la mise hors tension.

La deuxième chose à savoir est que les dispositifs électroniques tels que le CPU ont une plage de tension spécifiée dans laquelle ils fonctionnent. Ils ne peuvent rien faire lorsque la tension est inférieure à certaines tensions seuils pour les transistors. Cela signifie qu'il existe toujours une plage de tension entre "ne rien faire" et "fonctionner correctement" où il fonctionnera de manière peu fiable.

Maintenant, lors de la mise sous tension, il y a des circuits triviaux qui maintiendront la ligne de réinitialisation pendant un certain temps pour que le CPU sorte de la réinitialisation uniquement après que l'alimentation soit bonne. Il existe des circuits un peu plus complexes (détecteurs de coupure de tension) qui peuvent générer une réinitialisation à chaque fois que la tension d'alimentation chute en dessous d'un seuil, pas seulement lors de la mise sous tension. De toute évidence, cela n'a pas été intégré dans la NES car cela coûte de l'argent et n'est pas vraiment nécessaire. Bien sûr, la NES peut bug et planter lors de la mise hors tension, mais quelle importance ? L'utilisateur ne le remarquera probablement pas et ne s'en souciera certainement pas car cela n'a aucun effet durable.

Cela change lorsque des mémoires non volatiles sont impliquées. Le CPU peut continuer à exécuter du code dans des conditions de coupure de tension, mais des erreurs peuvent survenir. Par exemple, lorsqu'il écrit dans la mémoire, il pourrait écrire à l'emplacement incorrect et cet emplacement pourrait juste être au sein de votre précieuse sauvegarde, la corrompant.

Étant donné que la NES n'en possède pas, les fabricants de jeux auraient pu inclure un détecteur de coupure de tension sur leur propre module qui protège en écriture leur mémoire. La solution la moins chère et la plus évidente est simplement de dire au joueur de maintenir le bouton de réinitialisation enfoncé lors de la mise hors tension. Cela empêche le CPU de faire quoi que ce soit, coupure de tension ou non, et l'empêche donc également de marcher de manière incontrôlée sur vos sauvegardes.

1 votes

Les jeux NES sauvegardaient les parties en cours en utilisant de la RAM sauvegardée par une pile.

12 votes

@fluffy La RAM sauvegardée par batterie est une forme de mémoire non volatile.

4 votes

+1 Cela devrait être la réponse acceptée. Principe solide de génie électrique/informatique. Je n'arrive pas à croire que cela soit battu par une réponse qui commence par "Après avoir googlé un moment", juste parce qu'elle est postée par un utilisateur avec un haut score de réputation...

85voto

Nolonar Points 41610

Après avoir cherché sur Google pendant un certain temps, je n'ai malheureusement pas pu trouver de réponse spécifique. La seule chose que nous savons avec certitude, c'est que maintenir RESET était nécessaire pour presque tous les jeux qui offraient un mécanisme de sauvegarde alimenté par batterie, par opposition aux sauvegardes basées sur des mots de passe.

Les réponses que j'ai trouvées comprenaient:

  • Le maintien de RESET permettait à la NES de terminer l'enregistrement des données avant d'être éteinte.
  • Le maintien de RESET envoyait à la fois la console et la cartouche dans un état de faible consommation d'énergie, ce qui empêchait les pics de tension d'endommager la batterie lors de l'extinction (improbable).
  • Lors de l'extinction, le CPU de la NES subissait des pics de tension qui pourraient potentiellement écrire des données à des emplacements aléatoires, y compris les registres alimentés par batterie de la cartouche, écrasant et corrompant ainsi les sauvegardes. Maintenir RESET envoyait le CPU dans un état de faible consommation d'énergie, ce qui empêchait tout pic de tension d'écraser un registre quelconque.

La raison pour laquelle cela était nécessaire sur la NES et pas sur les consoles plus récentes, c'est que la NES n'a jamais été conçue pour enregistrer des données en premier lieu. Le premier jeu à avoir pris en charge l'enregistrement directement sur la cartouche était The Legend of Zelda qui est sorti 3 ans après le Famicom d'origine, et 1 an après la NES. À l'époque, la perte de données n'était pas importante car les données n'étaient pas censées être persistantes de toute façon.

3 votes

Il est également à noter que les jeux qui supportaient initialement les sauvegardes étaient à l'origine des jeux Famicom Disk System. Bien que Metroid, lorsqu'il a été porté, ait fini par avoir un système de mots de passe à la place.

69 votes

Le dernier point est correct. À l'époque, les interrupteurs étaient physiques et pouvaient finir par "rebondir" entre les états allumé et éteint rapidement tout en relâchant physiquement le bouton d'alimentation. Il était également bien connu que les cartouches pouvaient perdre des données pendant ces "rebonds". Je me souviens d'avoir explicitement essayé cela une fois sur une cartouche de Legend of Zelda en allumant et éteignant le jeu environ 10 fois de suite. La cartouche a enregistré des fichiers plus tard, mais les données originales que j'avais avant d'essayer ont été perdues. Maintenir la réinitialisation a empêché les rebonds qui provoquaient la perte de données.

3 votes

Nous avons toujours été informés de débrancher à la prise de courant, et nous l'avons fait, et n'avons jamais eu de problèmes. Je suppose que c'est alors la même raison que la n°3 et cela exclut pratiquement la n°1.

46voto

http://creek.doorblog.jp/archives/51212263.html

SRAM SRAM

La Family Computer (NES) n'a pas été conçue en tenant compte de la sauvegarde SRAM. Il était donc difficile de protéger la SRAM du bruit ou des fluctuations de l'alimentation, qui pourraient altérer l'état de la SRAM. Maintenir enfoncé le bouton RESET isole la SRAM, en fait, la cartouche entière du jeu, de l'alimentation par conception. Cela réduit considérablement le bruit électrique dû à l'extinction du système par interrupteur matériel atteignant la SRAM enfermée dans la cartouche de jeu.

-3voto

Phil Points 11

Cela a toujours eu du sens pour moi d'un point de vue matériel de base.

Maintenir la réinitialisation maintient légèrement la RAM en vie tout en contrôlant également l'alimentation pour éviter tout saut potentiel comme cela se produirait lors d'une mise hors tension.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X