Dans cet article on s'intéresse aux étapes nécessaires pour faire un “hardmod”(?) sur notre chère console PSX pour permettre la lecture d'utilitaires et de jeux homebrew, voire des copies de sauvegardes de vos jeux.
Hardmod, ça veut dire qu'on va aller faire des modifs directement sur la console. À contrario, il existe ce qu'on appelle “softmod” et qui consiste à retrouver les mêmes fonctions, sans modifier la console, en passant par une cartouche de type “Action Replay” ou “Game Hunter”, qui se branche sur le port parallèle présent sur la console jusqu'au modèle SCPH-7503.
Pour flasher l'ATtiny :
Pour tester l'ATtiny :
Pour installer le modchip dans la console:
Pour cela, lancer l'IDE, puis dans le menu “Fichiers”
> "Préférences". \\
C
oller l'url suivante dans le champ “URL de gestionnaire de carte supplémentaires” :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Ensuite, dans “Outils”
> "Type de carte" > "Gestionnaire de carte", installer "attiny".
T
ype de carte: “Arduino Uno” Port : /dev/ttyACM*
$ ls -la /dev/ttyACM0
crw-rw---- 1 root uucp 166, 0 16 mai 17:36 /dev/ttyACM0
Ici on peut voir que l'utilisateur root
et le groupe uucp
ont accès à la carte en lecture et écriture. Il faut donc que votre utilisateur fasse partie du groupe uucp
.
La commande groups
sous Linux permet de lister les groupes dont l'utilisateur actuel fait partie.
$ groups
sys lp wheel uucp network video audio optical power usb
Ici c'est bon, uucp
est dans la liste.
Si ce n'est pas le cas :
$ sudo usermod -a -G uucp nom_d_utilisateur
Après cela, il faut vous déconnecter de votre session et vous reconnecter pour que le changement soit pris en compte.
Ouvrez de nouveau l'IDE Arduino, puis “Fichiers”
> "Exemples" > "11.ArduinoISP" > "ArduinoISP"
U
n nouveau sketch s'ouvre, cliquez sur le bouton “Téléverser”.
Votre arduino est configurée pour flasher des ATtiny25/45/85. Il faut maintenant faire un petit montage sur une breadboard pour pouvoir téléverser du code sur votre micro controlleur.
Il y a un détrompeur sur l'ATtiny, sous la forme d'un petit poinçon. Il faut le mettre vers le haut dans le schéma suivant :
Voici les connexions à effectuer :
Uno <–> ATtiny85
5V <–> Vcc
Gnd <–> Gnd
Pin 13 <–> Pin 2
Pin 12 <–> Pin 1
Pin 11 <–> Pin 0
Pin 10 <–> Reset
Le condensateur est à placer entre “Reset” et “GND”, le - vers “GND”.
Une fois le montage effectué, il faut charger le bootloader : menu “Outils”
> "Graver la séquence d'initialisation".
Pour tester que le téléversement se fait bien, ouvrir le sketch “Blink” : “Fichiers”
> "Exemples" > "1.Basics" > "Blink".
À la ligne 28, changer la broche qu'on va utiliser ; “LED_BUILTIN” devient “0” :
void setup() {
// initialize digital pin LED_BUILTIN as an output.
//pinMode(LED_BUILTIN, OUTPUT);
pinMode(0, OUTPUT);
}
Une fois téléversé, le montage suivant permet de vérifier que la LED clignote :
Cette première partie est une traduction adaptée de cette page : https://create.arduino.cc/projecthub/arjun/programming-attiny85-with-arduino-uno-afb829
PsNee demande une confirmation spécifique des FUSE sur l'ATtiny, que ce soit 45 ou 85 : LFUSE 0xE2 HFUSE 0xDF
Avec la commande avrdude
, on va changer le mode des FUSE comme suit, dans un terminal :
$ avrdude -pattiny85 -cstk500v1 -P /dev/ttyACM0 -b19200 -e -Uefuse:w:0xFF:m -Uhfuse:w:0xDF:m -Ulfuse:w:0xE2:m
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9206 (probably t45)
avrdude: erasing chip
avrdude: reading input file "0xFF"
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFF:
avrdude: load data efuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDF:
avrdude: load data hfuse data from input file 0xDF:
avrdude: input file 0xDF contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xE2"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE2:
avrdude: load data lfuse data from input file 0xE2:
avrdude: input file 0xE2 contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.01s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: safemode: Fuses OK (E:FF, H:DF, L:E2)
avrdude done. Thank you.
Source : https://forum.arduino.cc/index.php?topic=341285.0
pattiny85
en fonction de votre modèle./dev/ttyACM0
Une fois les modifications effectuées, vérifier et téléverser le code.
C'est fait ! Plus qu'à installer le modchip dans votre PSX.
En fonction de votre modèle de PSX, la révision de la carte mère ne sera pas la même. Sous la console se trouve une étiquette avec un numéro de modèle commençant par “SCPH-…”.
Trouvez le dans le tableau suivant et vous pourrez dans la 5ème colonne trouver la carte mère qui équippe votre console, dont le numéro est du type “PU-…”.
Une fois que vous connaissez la révision de votre carte mère, vous pourrez trouver sur cette autre page un lien vers des instructions spécifiques : https://quade.co/ps1-modchip-guide/psnee/
Une fois vos soudures effectuées et vos traces vérifiées, il vous reste à graver un jeux Homebrew comme Marilyn: In the Magic World ou un utilitaire du type ImportPlayer Light pour vérifier que le CD boot correctement.
https://github.com/kalymos/PsNee
https://github.com/Kippykip/PSX-Modchip
https://www.instructables.com/id/Program-an-ATtiny-with-Arduino/
https://forum.arduino.cc/index.php?topic=341285.0
https://quade.co/ps1-modchip-guide/psnee/
https://fr.wikipedia.org/wiki/Liste_des_mod%C3%A8les_de_la_PlayStation#Comparaison_des_mod%C3%A8les
http://www.psxdev.net/homebrew.html