====== World Rally (Gaelco) ====== World Rally est un jeu de course automobile sorti en 1993. Développé par [[:zigurat_software|Zigurat Software]] et publié par [[:gaelco|Gaelco]], [[:sigma|Sigma]] et [[:atari|Atari]] selon le territoire. ===== Architecture ===== La carte s'architecture autour d'un Motorola 68000 à 12MHz, secondé par un OKIM6295 pour le son et deux TPC1020AFN pour la partie graphique. {{ :materiel:world-rally-pcb.jpg?direct&800x671 |world-rally-pcb.jpg}} ===== Protection ===== La carte embarque un coprocesseur Dallas DS5002FP. Celui-ci patch à la volée les instructions du jeu et évite qu'il ne crash. Le code nécessaire bon fonctionnement est stocké dans une RAM alimentée par un batterie lithium (pile suicide). {{:materiel:world-rally-prot.jpg?direct&400x235|world-rally-prot.jpg}} En cas de défaillance un message "Co-Processor not ready" est visible au démarrage; le jeu peux toutefois démarrer mais plante dès la première sortie de route. {{:materiel:world-rally-error.jpg?nolink&400x78|world-rally-error.jpg}} Si cela se produit, la cause la plus probable est une pile à plat. Dès lors il suffit de changer la pile et de recharger le programme.\\ Autre possibilité: le DF5002FP est défectueux. Des modèles neufs se trouvent encore aujourd'hui. {{:materiel:world-rally-ds5002fp-dead..jpg?direct&400x300|world-rally-ds5002fp-dead..jpg}} ==== Reprogrammation DS5002FP ==== Gaelco a récemment diffusé le code permettant de réssuciter une carte. En parallèle Peter Wilhelmsen et Morten Shearman Kirkegaard ont diffusé une {{:materiel:ds5002fp-1.pdf|méthode pour dumper le contenu de ce processeur}}, permettant ainsi de désuicider les autres jeux utilisant le même composant. === Pre-requis === Le matériel nécessaire à la reprogrammation se résume à un port série (ou un adaptateur RS232-USB) et quelques fils.\\ Il faudra avoir remplacé la batterie au préalable, sinon le programme s'évaporera plus vite qu'il n'est venu. Coté logiciel [[https://ttssh2.osdn.jp/index.html.en|TeraTerm]] ou Minicom feront l'affaire; et vous devrez également disposer du {{:materiel:wrdallas.zip|code à envoyer}}. === Matériel === Tout d'abord il faut connecter votre PCB à un ordinateur disposant d'un port RS232 **TTL**. Le RS232 classique implique du 15v là où le TTL se limite à 5v. Attention donc si vous utilisez un ordinosaure disposant d'un vrai port série. Le plus simple est d'utiliser un adaptateur USB-RS232 que l'on trouve pour quelques euros. Le connecteur situé sous le capot utilise ce brochage, le pin 1 étant le plus proche du port JAMMA: - VCC - RX - TX - PROG - GND {{https://wiki.hfsplay.fr//lib/plugins/ckgedit/fckeditor/userfiles/image/materiel/world-rally-connect.jpg?direct&400x300|wiki.hfsplay.fr_lib_plugins_ckgedit_fckeditor_userfiles_image_materiel_world-rally-connect.jpg}} **ATTENTION:** il s'agit du pinout coté PCB, il faut relier le TX de l'ordinateur au RX de la PCB, et réciproquement. **ATTENTION2:** il est déconseill" de relier le VCC car votre ordinateur peut avoir un potentiel légèrement différent de celui de la PCB. Avec un adaptateur USB-RS232 courant cela donne: - VCC - non connecté - RX - connecté au TX ⇒ fil vert - TX - connecté au RX ⇒ fil blanc - PROG - connecté à la masse ⇒ fil noir - GND - connecté à la masse ⇒ fil noir === Logiciel === Le protocole utilisé par le DS5002FP est 2400bps / 8n1. Selon les sources il est indiqué d'utiliser un flow-control xon/xoff mais cela n'est pas nécessaire et peut même bloquer la communication. {{:materiel:2022-01-04_213642.png?nolink&447x272}} Lancez la connection, vous êtes prêt. === Chargement === Vous pouvez allumer la PCB et la laisser bloqué sur le "COPROCESSOR NOT READY". Via le terminal envoyé un retour chariot (touche entrée). Vous devriez avoir l'invite de commande du DS5002FP: {{https://wiki.hfsplay.fr//lib/plugins/ckgedit/fckeditor/userfiles/image/materiel/2022-01-04_213447.png?nolink&351x227}} Les commandes à taper: - **L** - Ca ne sert à rien à part vérifier le status du DS50002FP et vérifier la bonne communication - Il devrait répondre LOCKED - **U** - Déverouille le processeur - Celui-doit répondre UNLOCKED - **W MCON 79** - Initialise le registre MCON à la bonne valeur - **R** - Vérifie la valeur des registres. - La réponse devrait indiquer que le MCON vaut 78. - **L** - Permet de charger le contenu du code. - Se met immédiatement en attente du code. - Copié-collé le **contenu du fichier WDALLAS.HEX**. - Cela peut prendre plusieurs minutes (10 minutes). - Une fois terminé un invite de commande vide se présente. - **Z** - Vérouille le processeur. Une fois ces opérations réalisées, vous devriez pouvoir relancer la PCB et ne plus avoir d'erreur. ===== Téléchargements ===== * {{:materiel:ds5002-ds5002fp.pdf|Datasheet DS5002FP}} * {{:materiel:ds5002fp-1.pdf|Backing Up Firmware from Dallas Semiconductor DS5002FP}} par Peter Wilhelmsen et Morten Shearman Kirkegaard * {{:materiel:wrdallas.zip|Fichier Hex pour reprogrammation du DS5002FP}}