Réflexions et questions autour des codes de triche

Pages: [1]

Madikan

  • Trasheur
  • 2744 posts
20 Juillet 2014, 21:14
Hop, je crée le même topic que dans la section JV car je trouve que ça manque à cette section et ça évitera de nombreux topics inutiles je présume.
Si le topic reste actif ben génial, si il plonge dans les profondeurs du forum, my bad, mais je crée ce topic avec une simple question en tête :

Quelle est l'explication logicielle des bugs graphiques en entrant des codes dans des jeux (souvent des vieux jeux, la plupart sur SNES je crois)
Prenons par exemple Chrono Trigger : Quand j'étais petit et que j'étais incapable de terminer un boss (ni de réaliser sur quel chef-d’œuvre je trichais :v ) je rentrais des cheats.
Seulement ça causait d'importants bugs graphiques partout sur la map monde ainsi que dans les donjons, villages, etc. Des pixels noirs à la place du décors, des sprites à la mauvaise place et des PNG déformés. Récemment je me suis reposé la question et j'ai fais le test avec certains autres RPG connus de la SNES : FF, Secret of Mana, etc. Same shit, ça cause un bordel pas possible graphiquement. Ca reste jouable mais à la longue ça fait pas plaisir.

Y a-t-il une explication logique à cela ?

Megadrifter

  • Elite
  • 6425 posts
20 Juillet 2014, 22:07
En général, l'explication vient de la jointure entre : un processeur qui gère plus ou moins bien la RAM / une RAM réduite sur les anciennes consoles, la programmation du jeu qui en subit les conséquences, et les zones mémoires attaquées par les codes.

Le but des codes est de maintenir constante une valeur à une certaine adresse mémoire. Si le jeu doit utiliser cette adresse pour le chargement de la map par exemple puis le chargement du nombre de vies, alors le code bloquera cette valeur mais le jeu continuera de charger la map. Rares ( aucun ? ) étaient les jeux qui vérifiaient si le chargement s'était bien déroulé à l'époque.
(attention, on entre dans le technique) Si l'adresse de la RAM sert à charger une tuile (tile en anglais) d'herbe d'une valeur de 0x01 (valeur hexadécimal) selon le tileset, et que le code garde cette valeur à 0x10 ( = 16 ), alors la tuile 16 (qui peut correspondre à de la lave par exemple) du tileset remplacera chaque carré d'herbe par de la lave. Pourtant, ton code te servait et te servira toujours à garder tes 16 vies.

Ça, c'est la raison la plus logique selon moi.

Sinon, ça peut venir du type de codes utilisés. Si ce sont des codes Pro Action Replay ou du GameGenie, le résultat n'est pas toujours le même parce qu'il ne fonctionne pas forcément de la même manière. Mais c'est rare.

Il y a peut-être des raisons plus obscures, mais je n'ai pas eu le temps de m'informer plus.
« Modifié: 21 Juillet 2014, 17:25 par Megadrifter »

Madikan

  • Trasheur
  • 2744 posts
20 Juillet 2014, 23:06
J'ai totalement compris ton explication, mais ça voudrait dire que toutes les tuiles 0x01 (de l'herbe) seraient remplacées par la valeur 0x10 (de la lave).

Sauf que les bugs graphiques apparaissent toujours au mêmes endroits mais ce n'est pas TOUTE l'herbe du jeu qui se retrouve transformée en lave. Ce sont seulement certaines parties a certains endroits. Ce qui pourrait aussi dire que dans le jeu qu'on joue, chaque tuile ait une valeur différente même si elle a exactement la même composition (deux tuiles qui montrent de l'herbe, mais dont les valeurs seraient de 0x04 et 0x05 alors qu'elles montrent exactement la même chose).

Donc merci pour tes explications :)

Nevrah

  • Espoir
  • 147 posts
21 Juillet 2014, 09:35
Souvent, les tiles sont dupliqués, ou bien y'en a 2 qui se ressemblent beaucoup.
Exemple : Dans pokémon, tu as le gazon plus gazon avec objet plus gazon un peu différent pour casser la monotonie --> 3 tiles --> si un seul est modifié, tu as qu'une partie du gazon changé en lave.

Pages: [1]    En haut ↑