Appliquer un patch à ISO et BIN de jeu PS1 avec applyppf sous GNU/Linux et *BSD, voire GNU/Hurd

C'est beau l'émulation, pouvoir utiliser des programmes pour une machine particulière et/ou un système logiciel que l'on n'a pas ou sans en passer par elle/lui (par praticité, pour en améliorer le résultat, etc.). Évidemment il faut avoir légalement le ou les dits programmes, sinon c'est illégal et on ne peut point recommander ça. De même, si un BIOS est nécessaire, il ne faut pas l'obtenir illégalement et qu'il soit toujours légal de l'utiliser quand on l'utilise. Une fois qu'on a tous rassemblé (émulateur, BIOS éventuel, et programme) et ce dans le respect des règles (à moins d'être indiscutablement une personne bien peu recommandable), on voudrait n'avoir plus qu'à lancer le programme et enfin en profiter.

Mais parfois c'est pas de chance, puisqu'une mesure peut avoir été prise pour compliquer ça. Cela peut par exemple se traduire par un écran noir sur l'émulateur. C'est ce qui peut arriver avec des jeux de PlayStation 1 (PS1). Heureusement on peut patcher les jeux pour que l'émulateur permette enfin de se divertir.

Faisons une petite interlude pour promouvoir des émulateurs PS1 qui sont des logiciels libres au sens de Richard Stallman. Un des plus connus est PCSX-Reloaded (dit PCSXR). Celui-ci a l'avantage de pouvoir simuler le BIOS, toutefois c'est mieux de lui en fournir un. Debian propose un paquet pour lui. Ensuite on peut également citer Mednafen (et Debian est encore sympa). Il a besoin d'un fichier ".cue" si l'extension du fichier de jeu est en ".iso" ou ".bin". De plus, signalons qu'il ne se lance qu'à travers la ligne de commande textuelle. Toutefois une interface graphique peut faire ce boulot pour nous, comme Mednaffe (pour lequel il existe un paquet Debian). Enfin, on peut également citer un émulateur de PlayStation 2 (abrégé PS2) qui émule aussi la PlayStation 1 : PCSX2 (qui a son paquet Debian).

Une fois qu'on a un émulateur et le précieux jeu, il faut certes l'outil pour le patcher, mais le patch lui-même ne doit pas être oublié. On peut en trouver un paquet (pour un simple correctif) sur ConsoleCopyWorld. Une fois qu'on a le jeu et le patch, il reste à appliquer le second au premier.

Microsoft Windows et Apple macOS sont bien trop souvent utilisés, en fait il faudrait que ces systèmes privateurs et ces firmes bourgeoises disparaissent ou mutent correctement. On propose donc de faire le patchage sous GNU/Linux ou *BSD, voire GNU/Hurd. Tant qu'on y est, on exige aussi que le programme qui applique le patch soit aussi libre et sans dépendance privatrice pour ne rien gâcher.

Il existe au moins un candidat : applyppf. NetBSD en propose un paquet. C'est repris et adapté pour ArchLinux. Si on a rien de pré-fait pour notre distribution, ce n'est pas bien grave, puisque le code source est disponible et qu'il est facile d'avoir une version compilée (c'est-à-dire exécutable par la machine). Dans ce cas, il va falloir ouvrir un terminal pour faire faire quelques petites commandes.

En premieu lieu, il faut récupérer le code source : wget http://ftp.netbsd.org/pub/pkgsrc/distfiles/applyppf3_src.zip ou curl http://ftp.netbsd.org/pub/pkgsrc/distfiles/applyppf3_src.zip --output applyppf3_src.zip. Une autre solution est de faire le téléchargement via un navigateur web. Ensuite il faut dézipper le fichier obtenu. Dans un terminal textuel, on peut faire ça avec unzip applyppf3_src.zip (unzip a un paquet du même nom qui le fournit sous Debian).

Pour compiler, il faut un compilateur, en l'occurrence un compilateur C. Avec le gestionnaire de paquets APT (notamment utilisé par Debian et Trisquel GNU/Linux), on peut faire tel que suit en ligne de commande : sudo aptitude install gcc, sudo apt install gcc ou sudo apt-get install gcc. Jusqu'à maintenant, vous avez peut-être triché en utilisant des interfaces graphiques. Si vous êtes dans ce cas, vous n'en aurez probablement pas une pour l'avant-dernière étape et encore moins la dernière. Il faut maintenant compiler le petit programme : gcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -o applyppf applyppf3_linux.c.

Maintenant que le programme est compilé, on peut enfin l'exécuter. Comment fonctionne t'il ? ./applyppf --help Pour appliquer un patch, ça se fait donc ainsi : ./applyppf a dir-game/game.bin dir-patch/patch.ppf (en changeant adéquatement le chemin du fichier et celui du patch). Une fois que c'est fait, on peut enfin jouer sur émulateur !