Comment mettre une valeur intermédiaire en hexa ? - Divers - Programmation
Marsh Posté le 12-05-2015 à 14:03:35
D'un 81.5 en hexa ça donne 129,3125 en décimal (81.5(16) c'est 8 * 16 + 1 + 5 * 1/16)
De deux, tu peux pas si ta valeur est stockée en entier.
Si c'est en flottant simple précision (float):
http://www.binaryconvert.com/resul [...] 0057046053
La valeur décimale 129.5 ça donne le mot 32bits hexadécimal 0x43018000
Marsh Posté le 12-05-2015 à 14:10:38
Merci pour ta réponse
Et du penses que je peux trouver les lignes en binaires et en faire l'équivalent d'un chiffre à virgule ?
Marsh Posté le 12-05-2015 à 14:17:52
Trop vague comme question.
Tu as quoi ? Un fichier de config en texte ? en binaire ?
Rien (tu ne sais pas où est l'information) => search & replace avec winhex, debugger => tu es parti pour 3 ans d'apprentissage.
Marsh Posté le 12-05-2015 à 14:33:55
Désolé pour le manque de précision. C'est que vu mes connaissances limitées je ne sais pas forcément de quelles informations vous avez besoin
En fait c'est un exécutable. Pour être plus clair c'est celui de Tomb Raider 2
Il s'appelle : "Tomb2.exe"
En fait j'avais patché l'EXE pour changer la caméra et le FOV. Sauf que là je voulais finir d'ajuster la caméra et je vois que mon idéal tomberait entre 2 valeurs.
En hexa c'est à 82 aux offsets suivants :
0000F9E0 -> colonne 07
00010C40 -> colonne 08
00011310 -> colonne 01
Sauf que comme dit, je veux voir pour pouvoir trouver l'équivalence à un chiffre entre 81 et 82 en hexa ou dans n'importe quel autre mode, binaire ou autres
Marsh Posté le 12-05-2015 à 14:59:24
Si le stockage est sous forme entière, tu ne peux rien faire à ton niveau (il faudrait patcher la chaine de code).
Marsh Posté le 12-05-2015 à 15:17:28
Ouch ! Dommage
Bon, ce n'est pas trop grave. Merci encore à toi bjone Et si tu me permets ce petit jeu de mot : bjone journée
Marsh Posté le 12-05-2015 à 15:24:38
Par contre, regarde bien si la valeur n'est pas en flottant, car 130° c'est pas vraiment un champ de vision typique.
Où as-tu eu l'info pour ces offsets dans l’exécutable ?
Marsh Posté le 12-05-2015 à 19:02:41
Pour les offsets, j'ai comparer avec l'EXE original, donc non patché.
A mon avis ça n'a rien à voir avec le FOV si c'est ce que tu penses J'avais testé en flottant, mais ça me donne des longs chiffres avec lesquels je ne peux pas vraiment faire de lien
Marsh Posté le 13-05-2015 à 10:53:22
Tu peux tenter de voir, si en prenant les 4 octets entourant tes offsets (en utilisant un alignement sur 4 octets), ils donnent une valeur cohérente de champ de vision en degrés ou plutôt en radians.
Marsh Posté le 13-05-2015 à 13:10:55
OK, je vais regarder
Sinon j'ai de nouveau comparer les EXE. L'un où j'ai mis une valeur de caméra à 1040, l'autre à 500.
Et aux offsets que j'avais cité + la colonne suivante, j'obtiens ça en héxa :
- Pour 1040 : "04 06"
- Pour 500 : "E8 03"
Si t'arrives à comprendre le lien
Merci encore
Marsh Posté le 13-05-2015 à 14:49:52
J'ai pas compris, tu utilises un tweaker pour patcher le binaire ?
Marsh Posté le 13-05-2015 à 15:35:08
Moi non plus je j'ai pas compris ce que tu viens de dire
En fait j'utilise simplement un patch pour corriger la caméra et le FOV et avoir le bon ratio d'image dans le jeu.
Donc j'ai juste comparé ensuite l'EXE patché avec celui non patché
Marsh Posté le 13-05-2015 à 21:59:18
C'est ce patch, la version advanced :
http://tombraiders.net/stella/down [...] creen.html
Marsh Posté le 14-05-2015 à 21:53:22
SuperLumberjack a écrit : OK, je vais regarder |
04 06, en little endian c'est 604(16) soit 1540(10)
E8 03 => 3E8(16), 1000(10)
Y'a un offset de 500, pourquoi pas.
----------
Par contre vu la tête du tweaker, pour le fov, ils font ça à l'ancienne, façon x,y*focale/z, vu que ça devait être un moteur T&L software, peut-être en virgule fixe.
Essaye d'email le gars qui a fait le tweaker, mais je pense que c'est mort
Marsh Posté le 14-05-2015 à 22:44:06
Ça doit être ça, vu qu'il y a une différence de 540
Par contre je ne comprends pas tous les termes que tu emploies, car mes connaissances sont beaucoup plus limités
Je me souviens juste que T&L veut dire Transform & Lighting je crois, car on entendait souvent ce terme il y a de cela plus de 10 ans avec tous ce qui tourne autour des cartes graphiques, les 3dfx, etc., mais en fait je ne sais plus du tout ce que ça signifie en réalité. Il n'y a plus que des fragments éparpillés par ci par là Ça veut dire quoi en virgule fixe au fait ?
Pour le FOV, tu veux dire que ça agit comme un zoom c'est ça ? Si c'est le cas, oui c'est de cette manière que ça agit.
Mais en fait, finalement c'est bon, j'ai trop cherché dans le détail, mais je crois que j'ai craqué En faisait je ne savais pas trop ce que je recherchais et j'ai expérimenté une tonne de réglages. J'avais vraiment du mal à me faire au 16/9 pour ces vieux jeux.
Et finalement j'en suis resté à un réglage équivalent à de l'HOR+.
En tout cas je te remercie encore pour ton aide et l'intérêt que tu portes à la chose. C'est sympa
Marsh Posté le 12-05-2015 à 13:54:22
Bonjour
J'ai un léger souci. Je ne suis pas un gros connaisseur en hexadécimal, mais il faudrait que je modifie une valeur dans un programme. Cette valeur sert à effectuer la mise au point de la caméra dans un jeu. Le problème c'est qu'il faudrait que je sois entre une valeur de 81 et 82 en hexa pour que ce soit parfait, ou entre 129 et 130 en décimal.
Donc si maintenant je voulais rentrer une valeur équivalente à 81,5 en hexa ou 129,5 en décimal (je sais que je ne peux pas en le faire, d'où le fait que je parle d'équivalence) dans quel mode est-ce que je devrais me mettre pour gagner plus de précision ? Et surtout, comment convertir les valeurs en hexa à la fin
Je vous remercie d'avance pour votre aide
---------------
PC portable (Windows 7 Pro x64) : TOSHIBA Satellite L50-A-1DG