Table des matières
Jouer aux jeux d'une autre région sur une Nintendo64
Introduction au modding de la Nintendo 64
Le modding de consoles peut ouvrir de nouvelles possibilités pour les gamers, permettant par exemple de jouer à des jeux d'autres régions, d'améliorer les performances, ou de personnaliser l'expérience utilisateur. Cet article explore comment dépasser les limites régionales imposées par la Nintendo 64.
Les différentes régions de la Nintendo64
La Nintendo 64 a été commercialisée dans plusieurs régions, chacune utilisant différentes normes de télévision :
- Région PAL (Europe, Australie) : Utilise la norme PAL avec 625 lignes par image en entrelacé et un taux de rafraîchissement de 50 Hz.
- Région NTSC (Amérique du Nord, Japon) : Utilise la norme NTSC avec 525 lignes par image en entrelacé et un taux de rafraîchissement de 60 Hz.
- Région M-PAL (Brésil) : Similaire à la norme PAL pour l'encodage des couleurs, mais utilise 525 lignes en entrelacé et 60 Hz comme la norme NTSC.
De manière grossière (on reviendra sur les détails plus loin), on peut dire que toutes les Nintendo64 sont capables de générer les signaux de toutes les régions. C'est le jeu qui décide quel signal la Nintendo64 génère. En revanche, il y a une protection anti-import qui empêche un jeu d'une autre région de s'exécuter.
Comprendre la protection anti-import de la Nintendo64
La Nintendo 64 intègre une protection anti-import qui empêche l'exécution de jeux de différentes régions. Deux composants principaux sont impliqués :
- Le PIF (Peripheral InterFace) : Un processeur contenant une ROM embarquée qui gère l'initialisation de la console, la protection anti-copie/import, la communication avec les périphériques, et les sauvegardes des cartouches.
- Le CIC (Checking Integrated Circuit) : Situé dans la cartouche de jeu, ce processeur est dédié à la protection anti-copie/import.
Plus précisément, le PIF est un processeur dérivé du Sharp SM5 existant notamment dans les Game&Watch contenant une ROM embarquée et chargé sur la N64 de :
- Fournir le code permettant au processeur de booter et d'initialiser le minimum vital pour lire le code de la cartouche de jeu
- Protection anti-copie / import
- Communiquer avec les manettes (et toutes leurs extensions : memory pak, rumble pak, transfer pak, voice pak etc.)
- Communiquer avec les sauvegardes de type EEPROM dans les cartouches
De son côté le CIC est un processeur également dérivé du SM5 mais qui est cette fois dans la cartouche de jeu et a comme unique fonction la protection anti-copie / import. Il existe plusieurs CIC sur chaque région à savoir:
- 6102 : environ 90% des jeux ntsc
- 7101 : environ 90% des jeux pal
- 6101,6103,6105,6106 :Autres CIC ntsc
- 7102,7103,7105,7106 : Autres CIC pal
Les CIC autre que 6102 et 7101 étaient utilisés pour les jeux premium où on souhaitait une protection renforcée. Le but était que les appareils de copie existants ne soient pas compatibles au moment de la sortie des jeux.
Au démarrage, le PIF et le CIC communiquent ensemble pour vérifier l'authenticité de la cartouche. Une incompatibilité entraîne le blocage du jeu. Ils vont notamment générer une seed permettant d'initialiser une checksum faite sur le début de la cartouche. Si la seed est fausse, la checksum ne sera pas bonne, et le jeu ne bootera pas. Par la suite, les deux puces continuent de communiquer et si une erreur se produit, la console se bloque.
Que se passe-t-il si on utilise une rom d'une autre région sur la console ?
La checksum calculée va utliser une seed générée par le pif de la console d'une autre région et le cic de la cartouche, le résultat ne sera pas conforme au résultat attendu et la console va se bloquer.
Comment lancer un jeu d'une autre région
Plusieurs méthodes permettent de contourner les restrictions régionales :
- Ultra-PIF : Un mod qui remplace la puce PIF par une version émulée ignorante des vérifications de région.
- Everdrive : Un dispositif de stockage qui simule la présence d'une cartouche originale, permettant l'exécution de ROMs via une carte SD.
- SummerCart64 : Une alternative open-source à l'Everdrive offrant des fonctionnalités similaires et supportant le 64DD.
L'Ultra-PIF
Il s'agit d'un mod consistant à remplacer la puce PIF par une puce qui émule les fonctionnalités de la puce PIF d'origine mais qui ignorera la vérification anti-copie / import. Il sera donc possible de jouer avec des cartouches originales d'autres régions et le signal de sortie sera automatiquement celui que le jeu choisira.
Cette puce est en vente sur la boutique ModInFrance: https://shop.modinfrance.fr/fr/nintendo-64/25-464-ultra-pif-nintendo-64.html#/35-led_rgb_2-sans_led_rgb
Une vidéo de présentation existe sur la chaîne ModInFrance:
Ainsi qu'une vidéo présentant l'installation du mod:
Petit détail technique que nous n'avons pas évoqué jusqu'ici: la norme NTSC n'est pas exactement à 60 Hz mais de 59.94 Hz pour des raisons historiques liées à l'électronique des années 50. Ces fréquences sont obtenues par division d'une fréquence de base générée par un quartz. Or le quartz utilisé dans les consoles PAL quand il va être programmé par un jeu NTSC, va générer du 60 Hz au lieu du 59.94 Hz requis. Cette toute petite différence n'est pas visible pour la plupart des personnes quand elles joueront mais certains pourraient être pointilleux, notamment les speedrunners qui ont besoin de jouer dans des conditions d'origine pour voir leur performance validée. Pour en revenir à notre sujet, l'Ultra-PIF fournit les deux quartz et saura donc fournir un vrai signal PAL ou un vrai signal NTSC, et il s'agit du seul moyen de jouer à des jeux d'une autre zone à leur vitesse exacte.
Enfin, comme l'Ultra-PIF vise à permettre d'utiliser des cartouches originales d'une autre région, le port cartouche est protégé physiquement par des ergots empéchant d'insérer des cartouches d'une autre région. 3 solutions pour contourner ce probleme:
- couper les ergots
- remplacer le slot par un slot universel tel que celui vendu sur la boutique ModInFrance: https://shop.modinfrance.fr/fr/nintendo-64/29-slot-universel-pour-nintendo-64.html
- utiliser une cartouche adaptateur (cette solution n'a que peu d'intérêt car la console doit de toute façon être moddée pour installer l'Ultra-Pif).
L'Everdrive
L'Everdrive est un linker permettant de jouer à des jeux dont les ROMs sont stockées sur carte SD. L'Everdrive contient en lui-même une ROM contenant son menu et simule la puce CIC. Lorsqu'on arrive sur le menu de l'Everdrive, la protection anti-import est ainsi passée.
Un léger inconvénient de l'Everdrive est qu'il ne laisse pas la console dans l'état exact où elle est censée être lorsque le jeu boot à cause de l'exécution du menu. Encore une fois, nous mentionnons cet inconvénient pour être complet mais ça ne devrait pas impacter la personne normale souhaitant jouer. En revanche, un développeur souhaitant développer son propre jeu pourrait être impacté.
L'Everdrive simule toutes les puces de sauvegardes utilisées par les jeux Nintendo64.
L'Everdrive est disponible en deux variantes, le X5 et le X7 qui est plus cher. Quelles sont les différences entre les deux ? Le X7 apporte les fonctionnalités suivantes :
- La sauvegarde du jeu est effective sans avoir besoin de presser le bouton reset avant d'éteindre la console.
- Il supporte le RTC, une horloge permettant au jeu Animal Crossing de simuler ce qui se passe quand la console est éteinte.
- La possibilité d'uploader des ROMs via l'USB, ce qui est utile pour les développeurs car c'est plus pratique que de démonter la carte SD à chaque fois que l'on souhaite tester une version de son code.
https://krikzz.com/our-products/cartridges/ed64x7.html
A noter que des clones chinois du X5 sont vendu sur divers sites. Ils sont souvent nommés ED64 et la qualité est variable d'un fabricant à l'autre.
SummerCart64
Pour faire simple, le SummerCart64 est une solution open source visant à fournir le même type de fonctionnalités que l'Everdrive. Le projet est encore un peu jeune, et côté software n'est pas encore aussi pratique à utiliser qu'un Everdrive mais les choses devraient évoluer. Quelques différences notables avec l'Everdrive :
- moins cher
- support du 64DD
- fonctionnalités USB pour les développeurs plus avancées
- support d'un mode direct simulant une vraie cartouche donc sans les effets de bord de la ROM d'un menu
Méthodes de patch de roms
Attention: cette méthode n'est pas recommandée, nous en parlons pour que vous sachiez ce que c'est et pour éviter les confusions.
Il existe des outils permettant de patcher les roms pour qu'elles fonctionnent sur un autre région. Il s'agit en fait la plupart du temps de modifier le code de boot pour qu'il soit utilisable avec un autre CIC et donc utilisable sur d'anciens appareils pour lancer les roms qui utilisaient le CIC d'une cartouche existante. Par exemple, le très ancien v64jr fonctionnait sur ce principe. Le patch de ces roms a uniquement pour but de passer la protection et ne changera pas la vitesse de raffraichissement du jeu comme expliqué plus haut.