Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

Logs de combat !

Répondre
JohnBob
d'Oghmatique
Ogre mage
Messages : 1353
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne

Logs de combat !

.

Message par JohnBob »

Bonsoir,
► Afficher le texte

&quot a écrit : - And about some lines in baldur.exe, BaldursGateII, SiegeOfDragonspear.exe, SiegeOfDragonspear...

Roll:%d +Luck:%d +SpecialAC:%d +HitMod:%d +Attack of Opportunity:4 +Attack of Opportunity:0 +Berserk:2 +Berserk:0 +Left:%d +Right:%d +Invisible:%d +Invisible Target:%d +Range:%d +Hated Race:%d +Special Target:%d +Protections:%d Roll:%d +DamageMod:%d +Hand bonus:%d *Backstab:%d +Berserk:%d +Strength:%d +Special Bonus:%d +Min Damage:%d

Here a screenshot in-game...
► Afficher le texte
Do you think it's possible to translate them, and / or, make the text more reader-friendly, without causing problems with the executables ? And do you have any hints on the method to follow ?
It's possible to replace the strings with new ones, though the order in which the data is presented is fixed.

There's two ways to change the string:

1) Replace the strings in-place. As long as the new format string is shorter than or equal to the length of the old one you can simply overwrite the contents, making sure to place a null byte ('\0') at the end.

2) Allocate a new string at runtime and patch the code to refer to it. For example, to replace " +Luck:%d":
  • Find every location that references the string, you'll have to use Ghidra / IDA Freeware / x64dbg for this. Then come up with a pattern for each address; I get:

    Code : Tout sélectionner

    [B3LuckStringRef]
    Pattern=660F4CC8
    Operations=ADD -10
    Put that in InfinityLoader.db. Now we have to patch the location, (put this in a M_*.lua file):

    Code : Tout sélectionner

    (function()
    
        local B3ReplaceString = function(pattern, existingInstructionSize, destRegister, newString)
            if existingInstructionSize < 5 then EEex_Error("Existing instruction too small to replace") end
            EEex_HookNOPs(EEex_Label(pattern), existingInstructionSize - 5, {[[
                lea #$(1), qword ptr ds:[#$(2)] ]], {destRegister, EEex_WriteStringAuto(newString)}, [[ #ENDL
                jmp #L(return)
            ]]})
        end
    
        EEex_DisableCodeProtection()
    
        B3ReplaceString("B3LuckStringRef", 7, "rdx", " +Lucky Mod:%d")
    
        EEex_EnableCodeProtection()
    
    end)()
    where B3ReplaceString(<pattern name>, <size of existing instruction>, <destination register>, <new string>)

    For example, using x64dbg:
    Image

    The characters on the left are the instruction bytes. So <size of existing instruction> = 7, (two characters make one byte), <destination register> = "rdx".

    And for our troubles:
    ► Afficher le texte

Modifié en dernier par JohnBob le mar. 20 déc. 2022, 22:33, modifié 1 fois.
Avatar du membre
jazira
Blême
Messages : 946
Enregistré le : mar. 28 févr. 2012, 06:18
Localisation : Gironde (33)
Statut : Hors ligne
.

Message par jazira »

JohnBob a écrit :Bonsoir,

Une question peut-être mal placée, mais vous êtes probablement les plus à même d'y répondre !

Sur les screenshots présent dans ce post, on peut voir les logs de combats avec jets de toucher et jets de dégâts...

Est-il possible de les traduire malgré que les textes se trouvent dans les fichier "baldur.exe" et "BaldursGateII", ou est-ce impossible ?
Salut,

Si tu parles bien du bloc de textes avec tous les différents bonus et malus affectant le TAC0, qui vient a priori de l'exécutable (donc hard codé), alors j'ai bien peur que non, du moins pas dans la forme actuelle du mod CorrectfrBG2EE. Qui est techniquement très simple dans sa conception et configuration. À part les textes, l'audio, la vidéo et quelques chaînes d'objets corrigées (uniquement les textes), le mod est très sobre et touche à un minimum de chose technique de manière à maximiser la compatibilité avec d'autres mods.

Si je ne dis pas de bêtise, il faudrait alors modifier directement l'exécutable du jeu, à la manière de Tobex. Je ne dis pas que c'est impossible, mais c'est très compliqué. En tout cas, moi j'en serai incapable. Et le rapport effort/gain serait très déséquilibré.

Cependant je ne suis pas un spécialiste, d'autres moddeurs auront sûrement plus d'expertise que moi à ce sujet.
JohnBob
d'Oghmatique
Ogre mage
Messages : 1353
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne
.

Message par JohnBob »

Ok, merci de ta reponse !

Je vais suivre ton conseil et attendre d'autre avis, en fonction je poserais la question à Bubb le créateur de EEex...
Et le rapport effort/gain serait très déséquilibré.
Effectivement si c'est trop compliquer, cela n'en vaudra pas la peine !
JohnBob
d'Oghmatique
Ogre mage
Messages : 1353
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne
.

Message par JohnBob »

Bonjour / Bonsoir,

J'ai mis à jour le premier post avec la réponse de Bubb, si vous voulez jeter un œil...

Voici le lien vers ma réponse... (...pas très productive)

Alors si l'un d'entre vous a des pistes pour que je trouve les valeurs demander, ou bien des petites précisions sur les termes employés, comme :

Code : Tout sélectionner

[B3LuckStringRef]

[B]Pattern[/B]=[b][U]660F4CC8[/U][/b]
[B]Operations[/B]=[b][U]ADD -10[/U][/b]
Et je vous tiendrais au courant si quand ça avance !



PS : Principalement à l'attention de Lefreut, je pense,
► Afficher le texte


Pas sûr que ça vous intéresse, ou que ça se rapporte à ce que vous faites avec les cinématiques, mais je suis tombé sur ce sujet du forum Beamdog....

Il y a plusieurs vidéos au début du thread et une à la fin...

Au passage félicitation pour la nouvelle sortie...


Modifié en dernier par JohnBob le mar. 20 déc. 2022, 22:33, modifié 1 fois.
Avatar du membre
jazira
Blême
Messages : 946
Enregistré le : mar. 28 févr. 2012, 06:18
Localisation : Gironde (33)
Statut : Hors ligne
.

Message par jazira »

JohnBob a écrit :Bubb stuff...
jazira a écrit :En tout cas, moi j'en serai incapable.
Eh ben, j'confirme...

J'ai pas pigé un broc de c'qu'i' dit, l'bon Bubb. :(
JohnBob a écrit :Au passage félicitation pour la nouvelle sortie...
Merci. :)
JohnBob
d'Oghmatique
Ogre mage
Messages : 1353
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne
.

Message par JohnBob »

Eh ben, j'confirme...

J'ai pas pigé un broc de c'qu'i' dit, l'bon Bubb.
Ne m'en parle pas c'est une énigme à résoudre tout ça !

Cependant j'avance un peu, j'ai trouver quelques pistes et comprend un tout petit, mais alors un tout petit peu le logiciel "x64dbg"...

Par contre, Je n'arrive toujours pas à retrouver une pattern en fonction du texte....

Bon j'ai pas trop le temps de me pencher sérieusement dessus, mais ça va aller... j'espère !
rivvers
Ours brun
Messages : 300
Enregistré le : sam. 21 janv. 2012, 14:36
Statut : Hors ligne
.

Message par rivvers »

Pour ce que j'ai compris, la chaîne ' LUCK:%d ' à modifier se trouve à l'adresse 00 00 00 01 40 5A D3 10, à chaque fois que l’exécutable a besoin de cette valeur, il va la chercher à cette adresse.
L'idée est de rediriger les appels à cette adresse vers celle qui nous arrange, qu'il a appelé ' LUCK MOD:%d '.
Le problème est d'identifier les appels à cette adresse qui nous arrange pas.
C'est le rôle du Pattern, il s'agit de l'adresse en question mais avec les bytes inversés : 10 D3 5A 40 01 00 00 00 (sinon c'est moins drôle !).
Si je ne dis pas de bêtises tu devrais trouver quelques occurrences à ce pattern dans l'exécutable.

Sinon ba... :gign:
Répondre

Retourner vers « Correction de la traduction de Baldur's Gate II : Enhanced Edition »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité