Replay text

rhaul

Warlord
Joined
Mar 25, 2010
Messages
243
Location
Madrid
Hi guys
When we finish the game or reach the year 2100, a replay can be viewed that summarizes the game of all civilizations. The player's civilization (human) always appears in capital letters to stand out from the rest of the civilizations controlled by the AI.

I would like to know if there is any way to put that text of the human player's civilization in lowercase, as the texts of the AI have.

@tupi I mention you in case you could help me again.

THANKS

 
The UPPER CASE text for player Civ in Replay is done inside CIV.EXE code, roughly something like "if Civ is player, then write in upper case". This should be fairly simple to bypass, just need to lookup in disassembly and find the right bytes to patch, could be done with the hex editor as well after finding the correct bytes.

The plural form thing you want seems much harder.
In both EN and FR versions, I think plural form is obtained by adding an 'S': Mongol -> Mongols, Roman -> Romans, Babylonian -> Babylonians...

There should be an exception in FR for "Français", "Anglais" and "Chinois", which already have an 'S' at the end for singular form... I need to check if there's special code for this...

Anyhow, adding "ES" instead of just "S" could be quite hard, simply because *adding* code or data is always trickier than *modifying* or *bypassing* code...

Will keep you posted in coming weeks.
 
Thank you for your help.

Uppercase text:
I wish I also knew how to program to find and replace the correct bytes myself, but all I can do today is the hexadecimal editing of the byte string you can provide.

Plural civilizations:
Another problem you might have with changing the "s" to "es", aside from the ones you've discussed, is that it will most likely change in all civilizations that use that automatic "s". Unfortunately, the rest of civilizations do not interest me when they automatically use the "es" in their plural, as an example in Chinese. Therefore, the only one that interests me with the "es" is Mongolian.

The ideal would be to do as it was done in the French version that instead of enabling the plural automatically the "s", they have activated it without that automation, leaving the possibility of direct editing of the plural in hexadecimal, as has other civilizations like English.

I put some comparative images for you to better understand my explanation.


Version English


Version French


If it could be done as in the French version it would be perfect, because with that I could easily edit both the singular and the plural of the Mongolian civilization (in fact I think that all civilizations are with the plural for editing and none have the automatic "s").

@darkpanda
 
Last edited:
I remember that for some reason in my disassembly in this overlay (and this overlay only) function addresses are all wrong, and I don't know what exactly to do with offset to fix this. I don't understand what any of functions means in this overlay because of that. So rhaul, please ask darkpanda for help.
 
Last edited:
Recuerdo que, por alguna razón, en mi desmontaje en esta superposición (y solo en esta superposición), las direcciones de función están todas incorrectas, y no sé qué hacer exactamente con compensar para arreglar esto. No entiendo qué significa ninguna de las funciones en esta superposición debido a eso. Así que Rhaul , por favor pídele ayuda a Darkpanda .

Thank you Tupi

Do you mean the replay text or the Mongol "tribe"? For both I need help.
 
I mean overlay containing replay logic. I already told you all I know about civ names and how to change them. Our only problem is that unpacked exe will not run because of new addresses of overlays. I don't know how to fix it, only workaround.

Also maybe you can try www.deepl.com, it's better than google translate in most cases.
 
Thanks also for the help. Maybe darkpanda can find the solution, I'll wait for news.
 
Hi there,

Here is how to patch for lower case only: in Civ 474.01 (english), you can patch CIV.EXE at offset 0x38ABA, replace value "75" with "EB".

Same for Civ 474.05.

For Civ 474.03 and 474.04, the offset is 0x382BA, still replacing value "75" with "EB".

I only tested for 474.01, though...

Let me know whether this works or not.
 
Hi and thanks

my version is 475.04
How do I find with the hex editor the offset 0x38ABA?

If you tell me what the hexadecimal string is, I can search and replace it.
 
Hi and thanks

my version is 475.04
How do I find with the hex editor the offset 0x38ABA?

If you tell me what the hexadecimal string is, I can search and replace it.

Oh ok, I do not have this version (475.04), and the hex string is not the same for all versions...

You can try to look for either "67 75 0C B8" or "68 75 0C B8", then replace the '75' with EB, i.e.:
  • 67 75 0C B8 -> 67 EB 0C B8
    • or
  • 68 75 0C B8 -> 68 EB 0C B8
"Offset" means position or addres of the hex string in the file.

If you cannot find this string, or if it doesn't work, I would be glad to borrow your CIV.EXE for more analysis
 
Thank you very much.
I have been able to modify it successfully and now it appears in lower case.

Do you know anything about the Mongolian "tribe"?
 
Last edited:
If you cannot find this string, or if it doesn't work, I would be glad to borrow your CIV.EXE for more analysis

In the excitement of Mongol translation I completely forgot to reply to the last post.
Here you have the first version of the Spanish translation (v475.4).

https://forums.civfanatics.com/resources/civ-spanish-translation-civ-traducción-al-espa.17391/

As is evident, it is a much more "primitive" translation than the second version of the translation that I will release shortly.
 
Top Bottom