Auteur: @upsilandre

Ce contenu est la reproduction de ce thread Twitter.

Il y a un type de hack ROM qui a le vent en poupe sur SNES ce sont les hacks de boost CPU pour améliorer le framerate des jeux. Notamment ceux de @HackerVilela. Mais pourquoi l'émergence de ce type de hack sur SNES?

#Retrogaming #SNES

La raison ne s'explique pas seulement parce que la SNES a un CPU un peu sous-dimensionné pour une console des années 90, ça c'est juste l'une des motivations, mais il y a surtout 2 raisons hardwares qui expliquent la multiplication de ce type de hack sur SNES plus qu'ailleurs.

Il y a d'abord la raison "SA-1". La SNES est une console qui avait cette particularité assez singulière d'être souvent accompagnée de coprocesseurs supplémentaires dans ses cartouches de jeux (et non, pas comme la NES hein 🤓).

Ces coprocesseurs comme le Super-FX sont souvent des CPU boostés avec des instructions custom. Le SA-1, qu'on retrouve dans Super Mario RPG et plein d'autres, fait partie de cette catégorie sauf que le SA-1 est basé sur le core CPU 65C816, c'est-à-dire le CPU de la SNES.

Donc le SA-1 se programme comme un CPU SNES mais avec une fréquence 3 ou 4 fois supérieure. C'est donc là tout son intérêt pour ce type de hack. Pouvoir transférer tout ou partie des routines sensibles du jeu vers le SA-1 sans devoir les recoder intégralement.

Ce qui reste énormément de boulot d'adaptation du code, j'imagine, pour pouvoir le déplacer vers le SA-1. Super R-Type ou Gradius III ont eu le droit à ce type de hack. Le plus spectaculaire étant probablement celui de Race Drivin très dépendant du CPU.

Le SA-1 est donc une alternative intéressante pour ce type de hack mais il en existe une autre liée à une autre caractéristique mal connue de la SNES et de ses jeux. À savoir que le CPU SNES a plusieurs fréquences de fonctionnement selon le type de mémoire adressée.

Et pour cette raison il y a 2 types de qualité de ROM dans les cartouches de jeux SNES. Il y a les jeux avec de la Fast-ROM qui vont permettre de favoriser la fréquence 3.6 mhz du CPU SNES et ceux avec de la Slow-ROM qui vont plutôt bridé à 2.7 mhz.

Là encore c'est une situation assez singulière à la SNES. Et du coup ça offre un second levier pour ce type de hack car il y a beaucoup de jeux de l'époque qui sont en Slow-ROM. Ça a donc permis de proposer en hack des versions Fast-ROM de Axelay, Castlevania 4 ou F-Zero.

Le gain est plus modeste qu'avec le SA-1. On doit pouvoir espérer un gain entre 15% et 20% je pense mais ça peut suffire pour éviter une grande partie des drops d'un jeu si le jeu flirtait tout juste avec la limite CPU de la console.

Mais si c'est sans doute plus simple qu'avec le SA-1 c'est pas forcément trivial non plus. Pour activer le mode Fast-ROM il ne suffit pas d'utiliser une ROM plus rapide. Il faut activer un flag et surtout il faut changer le mapping mémoire du code.

Ça revient donc en quelque sorte à déplacer le code ce qui peut sans doute poser plus ou moins de problèmes selon le jeu. Pour plus de détails sur ces histoires de Slow-ROM et Fast-ROM je vous renvoie à mon billet :

https://upsilandre.over-blog.com/2019/08/la-de-cadence-de-la-snes.html

Pour voir l'intégralité des threads d'Upsilandre archivés sur ce site, c'est par ici.