Metagames

Metagames (https://www.metagames-eu.com/forums/)
-   Playstation (https://www.metagames-eu.com/forums/playstation/)
-   -   Y-Pos - Bien centrer l'image d'un jeu. (https://www.metagames-eu.com/forums/playstation/y-pos-bien-centrer-limage-dun-jeu-135342.html)

Nocturne 09/01/2016 18h41

Y-Pos - Bien centrer l'image d'un jeu.
 
Je vais vous expliquer comment convertir et centrer vos jeux PAL pour une console NTSC du mieux que je peux. Cette méthode est la meilleure que je connaisse et je la partage donc avec vous.

Tout d'abord de quoi ont as besoin:

HxD : Excellent éditeur hexadécimal gratuit.
PAL4U : Logiciel de conversion. (Inutile?)
Zapper2k : Second logiciel de conversion. (Le plus important!)

NOTE: Bon, je ne sais pas si P4U est vraiment utile, mais cette étape ne prend que quelques minutes, il sert surtout à trouver le PARCODE et cela offre un scan supplémentaire, moi je l'utilise toujours, à vous de voir si vous voulez sauter cette étape.


ÉTAPE 1

Scanner votre image disque (iso, bin, img, ect...) avec PAL4U.

- Choisissez PAL to NTSC (2 petites flèches vertes).
- Sélectionnez votre image avec "Choose a file".
- Cliquez sur "Find SEQs" et patientez.

http://i.imgur.com/H5huJkS.jpg

Ensuite vous ajoutez les infos à votre patch et la sauvegarder.

- Remplissez les infos.
- Cliquez sur "Create P4U file".

http://i.imgur.com/FTfUacK.jpg

Maintenant il faut patcher l'image.

- Ouvrez P4U Patch.
- Cliquez sur "Choose a P4U file".
- Sélectionnez votre patch précédemment créé.
- Cliquez sur "Choose BIN/EXE".
- Sélectionnez votre image disque.
- Cliquez sur "GO FOR PATCH"

http://i.imgur.com/aOW3bp3.jpg


ÉTAPE 2

Maintenant il faut scanner avec Zapper2k.

- Choisissez PAL to NTSC
- Cliquez sur "Search".
- Sélectionnez votre image.
- Patientez et cliquez sur "Yes" et sauvegardez votre patch.
- Cliquez ensuite sur "Apply ZAP".
- Sélectionnez votre patch, ensuite votre image. (Faite un backup si vous voulez...)

http://i.imgur.com/FaQNE8C.jpg

Votre jeu a des chances d'être centré mais dans certains cas il faudra aller un peu plus loin, voir étape 3.

Voilà pour la méthode "standard" mais on va aller plus loin et vous devez avoir une petite notion en hexadécimale pour me suivre, et je n'ai pas de screenshots pour ces étapes... désolé.


ÉTAPE 3

Avant de fermer Zapper2k, noter bien les adresses décimales donner pour la Y-Pos.

http://i.imgur.com/zb27DZ2.jpg

Maintenant ouvrez votre éditeur hexadécimal et chercher les "valeurs hexadécimales" suivante:

Code:

13 00 02 2A BD 0C 62 28 02 00 40 10 BC 0C 05 24 21 28 60 00 13 00 02 2A 06 00 40 14 21 18 A0 00

Remplacez-les par:

00 00 02 2A BD 0C 62 28 02 00 40 10 BC 0C 05 24 21 28 60 00 00 00 02 2A 06 00 40 14 21 18 A0 00

Ensuite cherchez celles-ci:

10 00 02 2A DB 0C 62 28 02 00 40 10 DA 0C 05 24 21 28 60 00 10 00 02 2A 06 00 40 14 21 18 A0 00

Remplacez-les par:

00 00 02 2A DB 0C 62 28 02 00 40 10 DA 0C 05 24 21 28 60 00 00 00 02 2A 06 00 40 14 21 18 A0 00

Maintenant vous vous rendez à l'adresse décimale donner par Zapper2k....

INFO: Il y a 3 formats de Y-Pos, le Zapper les à modifier et remplacer certaines valeurs par des 0, donc vous chercher les valeurs "00 00" comme indiquer ci-dessous à la position donnée:

Code:

Y-Pos A: 0A 00 24 86 02 00 40 14 00 00 90 24 00 00 90 24 0E 00
Y-Pos B: 08 00 00 91 24 00 00 91 24 0C 00
Y-Pos C: 0A 00 04 86 02 00 40 14 00 00 91 24 00 00 91 24 0C 00

Vous pouvez remplacer ces valeur allant de F0 FF à FF FF.
De F0 à F9 et FA à FF pour la première valeur, ont ne touche pas à la seconde qui reste FF.
Plus la première valeur est élevé, plus l'image à l'écran va monté.

MAJ: Pour certains jeux, les valeurs F0 FF (ou autres) donnent de mauvais résultats, dans ce cas vous pouvez remplacer la première valeur de la Y-Pos 0A en 08, par la suite plutôt que faire remonter l'image a fait le contraire, ont la décend, toujours en modifiant la première valeur des 00 00 ex:

Code:

Y-Pos A: 0A 00 24 86 02 00 40 14 00 00 90 24 00 00 90 24 0E 00
--------------------------------------------------------------
Y-Pos A: 08 00 24 86 02 00 40 14 10 00 90 24 10 00 90 24 0E 00

Vous ne changez que les valeurs en vert, on ne touche pas aux rouges...

NOTE: Les valeurs 10 en vert sont à titre indicatif, cela peut varier d'un jeu à l'autre...

Voilà!

Nocturne 09/01/2016 19h05

Voici un résultat obtenue avec cette méthode pour le jeu Silent Hill:

AVANT MODIFICATION À L'HEXA

http://i.imgur.com/KCKrvPm.jpg

APRÈS MODIFICATION À L'HEXA

http://i.imgur.com/SeHzFDs.jpg

sprite 12/01/2016 16h35

tres bon tuto Millow

krHACKen 12/01/2016 19h29

Bon tuto effectivement:pouce:.

Juste une observation. Si l'on hexédite des images de disques plutôt que des EXEs, il faut garder à l'esprit qu'il y a des ECCs et adapter la longueur de la chaine hexadécimale à rechercher en conséquence. Plus elle est courte, mieux c'est. Mais bien entendu il faut aussi s'assurer que la chaine courte soit unique pour ne pas patcher une fonction non désirée.

Un exemple ici :
Code:

13 00 02 2A  BD 0C 62 28  02 00 40 10  BC 0C 05 24  21 28 60 00  13 00 02 2A  06 00 40 14  21 18 A0 00
http://aybabtu.chez.com/RANDOMPIX/00/0/SLES_012.26.JPG
En cherchant cette chaine complète dans une image disque de Actua Ice Hockey 2 (SLES-01226), on ne la trouvera pas. À cause des ECCs qui se foutent en travers du code (la portion surlignée sur la capture d'écran).


C'est un cas d'école. CUE2POPS échouait à patcher le VMODE en NTSC sur certains dumps, à cause de la longueur de la chaine :
Code original :
Code:

?? ?? 02 3C  ?? ?? 42 8C  ?? ?? 01 3C  08 00 E0 03  ?? ?? 24 AC  ?? ?? 02 3C  ?? ?? 42 8C  08 00 E0 03
Code modifié :
Code:

00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 02 24  08 00 E0 03
Il m'avait fallu élaborer un système de saut d'ECC et le scan prenait beaucoup plus de temps:fonsde:.

Edit : Au fait, le bug de Zapper pour les valeurs inférieures à zéro, c'est qu'il interprète les valeurs en 16 bits comme il faut, mais ne patche que 8 bits. Exemples :
Si on lui donne la valeur 256, il patche 0x00 (0) au lieu de 0x0100 (256).
Si on lui donne la valeur -2, il patche 0xFE (254) au lieu de 0xFFFE (-2).
Peut être que quelqu'un pourra corriger ce bug en lui faisant écrire un half-word plutôt qu'un byte.

Nocturne 12/01/2016 20h21

Citation:

Envoyé par krHACKen (Message 1771838)
Juste une observation. Si l'on hexédite des images de disques plutôt que des EXEs, il faut garder à l'esprit qu'il y a des ECCs et adapter la longueur de la chaine hexadécimale à rechercher en conséquence. Plus elle est courte, mieux c'est. Mais bien entendu il faut aussi s'assurer que la chaine courte soit unique pour ne pas patcher une fonction non désirée.

Un exemple ici :
Code:

13 00 02 2A  BD 0C 62 28  02 00 40 10  BC 0C 05 24  21 28 60 00  13 00 02 2A  06 00 40 14  21 18 A0 00
http://aybabtu.chez.com/RANDOMPIX/00/0/SLES_012.26.JPG
En cherchant cette chaine complète dans une image disque de Actua Ice Hockey 2 (SLES-01226), on ne la trouvera pas. À cause des ECCs qui se foutent en travers du code (la portion surlignée sur la capture d'écran).

Est-ce que le code est toujours "sectionner" au même endroit? Alors ont pourrais faire de plus petite recherche pour trouver ce code...

J'ai aussi fait une découverte, certain jeu ne prenne pas la valeur F0FF correctement, et l'image est couper en grande partie, donc il faut changer la valeur 0A en 08 et redécendre l'image plutôt que la remonter, ce fut le cas de FF8.

Code:

Y-Pos A: 0A 00 24 86 02 00 40 14 F0 FF 90 24 F0 FF 90 24 0E 00
Y-Pos B: 08 00 00 91 24 00 00 91 24 0C 00
Y-Pos C: 0A 00 04 86 02 00 40 14 F0 FF 91 24 F0 FF 91 24 0C 00

Dans le cas de FF8 la Y-Pos ressemblais donc à:

Code:

08 00 24 86 02 00 40 14 18 00 90 24 18 00 90 24 0E 00
Je vais mêtre à jour le tutoriel dans les prochain jours avec de meilleur informations / images

Citation:

Envoyé par krHACKen (Message 1771838)
Edit : Au fait, le bug de Zapper pour les valeurs inférieures à zéro, c'est qu'il interprète les valeurs en 16 bits comme il faut, mais ne patche que 8 bits. Exemples :
Si on lui donne la valeur 256, il patche 0x00 (0) au lieu de 0x0100 (256).
Si on lui donne la valeur -2, il patche 0xFE (254) au lieu de 0xFFFE (-2).
Peut être que quelqu'un pourra corriger ce bug en lui faisant écrire un half-word plutôt qu'un byte.

Si tu arrive à taper un nombre négatif inférieur à zéro (0) dans les 2 case en bas du zapper, je ne sais pas comment tu t'y prend, car ici c'est impossible... :fou:

Merci pour les infos par contre.

As tu des infos à propos des PARCODE (code couleur) que P4U et Z2K utilise? Il détecte une séquence et donne ensuite le "PARCODE", comment cela fonctionne?

Si je pouvais savoir comment cela fonctionne je pourrais aussi tenté de faire ça manuellement mais je n'est rien trouver à ce sujet.

Nocturne 13/01/2016 06h32

Topic mis à jour...

krHACKen 13/01/2016 19h30

Désolé de "polluer" le topic avec un autre programme, mais est-ce que ce truc fonctionnerait ou aiderait d'une quelconque manière ?
NTSCPATCH1.EXE
Buggé, ne l'utilisez pas.

http://aybabtu.chez.com/kHn/SOFTWARES/NTSCPATCH1.JPG
C'est basé sur le code de CUE2POPS (sa fonction -vmode) que j'ai modifié pour patcher les fichiers qu'on lui donne:D.
Attention, il ne fait pas de copie de sauvegarde du fichier que vous lui donnez, il le patche directement.
La valeur Y-Pos qu'il écrit est toujours 0xFFF8 (-8), vous pouvez aller aux offsets qu'il vous indique avec votre éditeur hexadécimal pour les remplacer par celles que vous voulez.

Ça marche par glisser/déposer du fichier .bin (pas le .cue) sur NTSCPATCH1.EXE, ou en ligne de commande.
Si besoin, je peux aussi le recompiler sans pause, si vous voulez patcher vos copies à la chaine avec un batch.

Nocturne 13/01/2016 20h19

Pour moi ce ne serras pas utile puisque j'utilise les adresse décimales de Z2K, j'ai encore de la difficulté avec les adresse offets... :shy2: Souvent elle sont en Little Endian et cela me mélange vraiment. :fou: Mais qui sais, le programme a sa place dans ce topic, tu ne pollue pas.

EDIT:

Est-ce qu'il change le VMODE, car Crash fonctionne convertie avec ça! :)

http://i.imgur.com/fYdGOhF.jpg

Apparemment il ne l'as pas patcher, tu peut m'aider a trouvé une solution pour le convertir ou ses simplement impossible, ont ne peut pas trouver le VMODE du NTSC et l'appliquer au PAL?

Sinon c'est fonctionnel et efficace, mais il trouve moins de Y-Pos que Zapper2k.

EDIT:

Si tu pouvais lui faire nous demander de -1 a -13, sois de FFF0 à FFFF, cela permettrais d'utiliser le programme sans passer par l'hex, et la cela deviendrais énormément simple. Faudrais juste aussi lui ajouter les 2 lignes de code dans mon tuto pour que les condition de Y-Pos sous 0 soie prise en compte pour certain jeu.

Je dit ça comme sa, sinon cela marche déjà bien.

krHACKen 13/01/2016 21h10

Wow. Merci d'avoir posté ton rapport.
J'ai fait le même test avec une copie de Crash Bandicoot. Il a bousillé le .bin !
N'utilisez pas ce NTSCPATCH1.EXE, il a un bug méchant. Désolé, quand je l'ai testé tout à l'heure avec plusieurs .bin, je n'ai pas eu ce problème :/ .

Nocturne 13/01/2016 21h21

Il existe des logiciel pour trouver le VMODE d'un jeu PSX? Ou des info à ce sujet, comment trouvé la clée et par quoi la remplacer? De façons à ce que je puisse rechercher une clée en hexa et que je puisse l'éditer manuellement (PAL2NTSC). Zapper2k me les donnerais peut-être les infos si je n'utilisais pas PAL4U d'abord mais j'ai besoin de connaitre toutes les SEQs.

Citation:

Envoyé par krHACKen (Message 1771862)
N'utilisez pas ce NTSCPATCH1.EXE, il a un bug méchant. Désolé, quand je l'ai testé tout à l'heure avec plusieurs .bin, je n'ai pas eu ce problème :/ .

Désolé que ce petit app bug, cela semblais prometteur...

EDIT:

Pour la SEQ-B Z2K m'envoie ici:

http://i.imgur.com/i5gUs1U.jpg

Le problème est que je n'est aucune info, donc je ne sais pas ou le code fini et quoi modifier, comme j'ai envie de créer un petit logiciel pour remplacer les 2 que j'utilise j'aurais besoin de ses infos...


Fuseau horaire GMT +1. Il est actuellement 20h28.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.

Integrated by BBpixel ©2004-2024, jvbPlugin

Version française #23 par l'association vBulletin francophone
© 2003-2018 MetaGames. Tous droits réservés.