Page 1 sur 1

Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 25 oct. 2018, 15:12
par hrvg
Bonjour,
Voilà mon problème avec le jeu "Police Quest 1 VGA" sur PC.
Quand on conduit une voiture, c'est en milles (MPH). Quand on clique sur l'accélérateur, c'est par tranche de "5" : 0, 5, 10, 15,... 60 et 65. J'aimerais écrire par tranche de "10" : 0, 10, 20, 30,... 120 et 130. Ca correspond à la vitesse en km/h (environ). Mais, je ne sais pas comment on fait et si c'est possible.

J'ai trouvé le fichier où se trouve "%d<bh:00>MPH". Je pense que "%d" sert à indiquer les chiffres, mais je n'ai pas trouvé les chiffres. Comment je peux trouver ces chiffres, s'il vous plaît ?

PS :
Quand j'ai ceci : %s
C'est une lettre ou un (des) mot. Mais, c'est plus simple à trouver. C'est un peu plus difficile pour une lettre.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 25 oct. 2018, 21:08
par rid
En C, quand on veut écrire une chaîne de caractères avec des arguments, on utilise le symbole % suivi d'une lettre. Comme tu l'as deviné, la lettre indique le type de l'argument à insérer dans la chaîne.

Ainsi:
%d --> insertion d'un nombre entier
%s --> insertion d'une chaîne de caractères (une lettre ou un mot)

Du coup, je pense qu'au moment d'afficher la vitesse, le programme (le jeu) va appeler le formatteur "%d<bh:00>MPH" avec l'argument à la bonne valeur (0, 5, 10, 15, etc).
À vue de pif, cet argument est une valeur en RAM qui est initialisée à 0 et à laquelle le programme va ajouter successivement 5 (d'où les 0, 5, 10, 15, ...).
Par conséquent, il faudrait que tu repère où dans le code, cette addition est réalisée, et remplacer le 5 qui est ajouté par 10.

Je ne sais pas si je suis très clair...

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 25 oct. 2018, 22:06
par RyleFury
Oui, c'est très classique, souvent la fonction "sprintf" qui est la plus courante est utilisée pour insérer un texte avec des arguments comme le mentionne rid, on le voit très souvent dans les jeux aussi. le %s est tout simplement remplacé par une chaîne de caractères et le %d par un nombre dans le texte. Le remplacement du %d par les nombres est défini directement dans le code, donc il faut savoir se débrouiller avec l'ASM (ici x86) et un débuggeur comme IDA Pro pour trouver, sinon c'est même pas la peine d'espérer trouver.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 25 oct. 2018, 22:07
par hrvg
Bonsoir Rid,
Je te remercie pour ta réponse.
Oui, je pense que j'ai compris ce que tu m'expliques.
Mais, il y a toujours un mais (je plaisante).
En gros, il y a trois fichiers : MSG pour les textes, HEP a peu de texte et SCR a les pointeurs du fichier HEP. J'ai cherché dans les deux fichiers (HEP et SCR) que je suppose où se trouve mon problème. C'est généralement le cas (voire à 100 %). Il y avait un seul chiffre 5 dans le fichier HEP que j'ai modifié. Ca n'a rien donné. Pour le fichier SCR, il y a trop de 5 pour les tester tous. Je pensais trouver +5 écrit dans les fichiers HEP ou SCR. Je sais, c'est une réflexion simpliste, mais je ne connais rien en informatique. Comment je peux trouver dans le code le +5, merci ? Quand je dis + 5, c'est un code qui veut dire + 5 au programme et non voir dans le fichier + 5.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 25 oct. 2018, 22:44
par hrvg
Bonsoir RyleFury,
Je te remercie pour ta réponse.
J'ai essayé avec le débugueur de Dosbox, mais je ne sais pas comment ça fonctionne.
Alors, c'est impossible. Je vais laisser MPH. Mais, je vais télécharger IDA Pro pour voir.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 10:00
par rid
Je ne pense pas que tu trouves la valeur 5 dans les fichiers relatifs au texte de ton jeu.
Il s'agit véritablement de trouver dans le moteur du jeu, l'endroit où ils vont calculer la vitesse de ton bolide. Il s'agit donc de trouver une routine qui est appelée dans le passage en question, et ensuite de situer le moment où l'augmentation de la valeur de la vitesse est réalisée.
Peut-être qu'en recherchant les instructions ASM x86 d'addition directement avec un éditeur hexadecimal, tu aurais peut-être du bol.
J'ai vite fait rechercher, apparemment ça ressemblerait aux instructions: add <registre>,05h (où 05h signifie 5 en hexadécimal).

Du coup, faudrait que tu recherches dans l'hexadécimal toutes les occurences de

Code : Tout sélectionner

add ax,05h // (addition sur 16 bits)
ou

Code : Tout sélectionner

add eax,05h //(addition sur 32 bits).
.

Soit (j'ai utilisé ce site:

Code : Tout sélectionner

  66 83 c0 05
ou

Code : Tout sélectionner

  83 c0 05
Et tu remplaces le 05 par 0A.

Que quelqu'un me corrige si je me plante.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 14:18
par hrvg
add ax,05h // Rien trouvé

add eax,05h // Rien trouvé

66 83 c0 05 // Rien trouvé

83 c0 05 // j'ai trouvé 4 emplacements dans le fichier "resource.000". J'ai modifié chaque emplacement et c'est toujours par 5.

Je n'ai rien trouvé dans les autres fichiers. Je pense que ce fichier "resource.000" contient tous les fichiers qu'on peut extraire pour la traduction.
J'ai télécharger "dnSpy", mais je n'arrive pas à lancer le jeu. Et asmeditor, mais il n'y a pas la fonfion "chercher".

PS :
J'ai aussi télécharger "IDA Pro", la version gratuite, mais il ne fonctionne pas. Il me dit "l'essai a expiré".

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 14:27
par rid
Arf, ben s'arrêtent là mes conseils alors :/

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 14:31
par hrvg
Je te remercie Rid pour ton aide.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 15:02
par RyleFury
Ça aurait pu marcher mais bon on sait jamais vraiment comment les développeurs codent et comment les compilateurs réagissent :p
Si j'ai un moment de libre je t'aiderai avec le débuggeur.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 15:20
par hrvg
Merci, RyleFury.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 18:55
par hrvg
J'ai une question. Le 83 c0 05 que j'ai trouvé dans le jeu que je traduis. Je ne le trouve pas dans le fichier original (resource.000). C'est peut-être à cause des fichiers traduits que j'ai insérés dans le jeu. Dans ce jeu et pour les pointeurs, j'inverse les valeurs. Par exemple, si j'ai un début de texte à 3a25, le pointeur sera 253a. Est-ce pareil ici pour 83 c0 05 ? J'ai cherché 05 c0 83, mais rien.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 26 oct. 2018, 20:53
par rid
Non car ce que je t'ai demandé de chercher, c'est une instruction, par une adresse :)

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 29 oct. 2018, 18:49
par hrvg
Je vais encore poser une question idiote, désolé. J'ai vérifié l'instruction "83c005" dans tous les fichiers, même ceux que j'ai extraits (environ 350) au cas où, mais je n'ai rien trouvé. Il peut y avoir une autre instruction ? Par exemple, le contraire : Le chiffre du départ est 65 et on déduit par 5. Quand on monte dans la voiture, on démarre toujours à 5 milles, jamais à 0 sauf si on s'arrête.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 29 oct. 2018, 19:51
par RyleFury
Il peut y avoir plein d'instructions pour ça, c'est le problème, ça dépend de la logique employée par les développeurs. Aussi, ça m'étonnerait qu'il faille modifier qu'une seule instruction. Etant un très vieux jeu, ça m'a l'air d'être un bordel monstre à débugger sous Windows par contre :/ J'essaierai des trucs mais je promets rien...

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 29 oct. 2018, 21:15
par hrvg
Je te remercie RyleFury pour ton aide. Et je confirme (pour moi), ce jeu est ... Je ne dirai pas, car je n'aime critiquer les créateurs de jeux, surtout à mon niveau. Mais, c'est le premier jeu Sierra qui me pose autant de problèmes. J'aimerais que le jeu soit bien fait. Sinon, si tu ne trouves pas, car moi je ne suis pas capable de le faire. Je changerai tous les messages sur les compteurs et j'écrirai, selon le contexte ce genre de phrase : "Cette fenêtre t'indique la vitesse, mais tu n'as pas su régler le compteur. Tu as mis la vitesse en mille avec le km.". Il y en a trois et cette fenêtre. Je sais que ce n'est pas terrible. Je te remercie pour ta patience.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 01 nov. 2018, 14:34
par hrvg
Bonjour,
Mon problème a été résolu. Je vous remercie pour votre aide.

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 01 nov. 2018, 16:36
par RyleFury
Ah désolé, j'ai pas eu le temps de m'y mettre. Au final t'as réussi à convertir les MPH en KMH?

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 01 nov. 2018, 17:30
par hrvg
Ce n'est pas grave et je te remercie pour ton aide.
Ce n'est pas moi, mais Kawa du forum de SCIScompanion. :) Je ne sais pas comment il a fait. Il m'a envoyé les deux fichiers modifiés : "500.scr et HEP.500.
Je suis nul en informatique. :lol:

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 02 nov. 2018, 05:10
par smkkool
pas compliqué de savoir : tu prends un comparateur de fichier hexa , tu prends celui sans la modif et celui avec la modif , il te colorie les octet différents dans les 2 fichiers

Re: Comment modifier les chiffres MPH en KM d'un véhicule dans "Police Quest 1 VGA".

Publié : 02 nov. 2018, 09:56
par hrvg
@ smkkool,
Je viens de regarder avec UltraEdit. Il y en a plein !