offsets:
EN 474.01 = 0x24FEB
EN 474.03 = 0x2469D
EN 474.04 = 0x246A3
EN 474.05 = 0x24EB7
EN 475.01 = 0x24FEB
FR 474.05 = 0x25C8F
original bytes:
FE FF [color=red]05 00[/color] FE FF [color=red]05 00[/color] 00 00 00 00 FE FF [color=red]05 00[/color]
02 00 [color=red]0F 00[/color] 01 00 01 00 FE FF [color=red]05 00[/color] 02 00 [color=red]0A 00[/color]
00 00 01 00 06 00 [color=red]05 00[/color] FF FF [color=red]05 00[/color] 00 00 00 00
FE FF [color=red]0A 00[/color] FC FF [color=red]0A 00[/color] 01 00 01 00 FF FF [color=red]00 00[/color]
FE FF [color=red]0A 00[/color] 00 00 00 00 FF FF [color=red]00 00[/color] FF FF [color=red]00 00[/color]
00 00 00 00 FF FF [color=red]00 00[/color] FF FF [color=red]00 00[/color] 00 00 00 00
0A 00 [color=red]0F 00[/color] 02 00 [color=red]0F 00[/color] 00 00 00 00 0A 00 [color=red]0F 00[/color]
02 00 [color=red]0F 00[/color] 00 00 00 00 FF FF [color=red]00 00[/color] FF FF [color=red]00 00[/color]
00 00 00 00 FE FF [color=red]05 00[/color] FF FF [color=red]00 00[/color] 00 00 01 00
patched bytes:
FE FF [color=blue][b]01 00[/b][/color] FE FF [color=blue][b]01 00[/b][/color] 00 00 00 00 FE FF [color=blue][b]01 00[/b][/color]
02 00 [color=blue][b]01 00[/b][/color] 01 00 01 00 FE FF [color=blue][b]01 00[/b][/color] 02 00 [color=blue][b]01 00[/b][/color]
00 00 01 00 06 00 [color=blue][b]01 00[/b][/color] FF FF [color=blue][b]01 00[/b][/color] 00 00 00 00
FE FF [color=blue][b]01 00[/b][/color] FC FF [color=blue][b]01 00[/b][/color] 01 00 01 00 FF FF [color=blue][b]01 00[/b][/color]
FE FF [color=blue][b]01 00[/b][/color] 00 00 00 00 FF FF [color=blue][b]01 00[/b][/color] FF FF [color=blue][b]01 00[/b][/color]
00 00 00 00 FF FF [color=blue][b]01 00[/b][/color] FF FF [color=blue][b]01 00[/b][/color] 00 00 00 00
0A 00 [color=blue][b]01 00[/b][/color] 02 00 [color=blue][b]01 00[/b][/color] 00 00 00 00 0A 00 [color=blue][b]01 00[/b][/color]
02 00 [color=blue][b]01 00[/b][/color] 00 00 00 00 FF FF [color=blue][b]01 00[/b][/color] FF FF [color=blue][b]01 00[/b][/color]
00 00 00 00 FE FF [color=blue][b]01 00[/b][/color] FF FF [color=blue][b]01 00[/b][/color] 00 00 01 00
I always give offsets and values for original, packed CIV.EXE, never for the unpacked versions.
So basically, although those values "can" be updated in the unpacked version, I did not provide the corresponding offset.
Do you need it for the unpacked CIV.EXE ? You'll need to tell me which version of CIV you play...
No, I can't find it in the unpacked .exe
475.01
0002cd40h: 03 47 65 6D 73 00 00 00 00 00 00 00 00 02 03 01 ; .Gems...........
0002cd50h: 00 04 00 0B 46 69 73 68 00 00 00 00 00 00 00 00 ; ....Fish........
0002cd60h: 01 02 03 00 02 00 01 52 69 76 65 72 00 00 00 00 ; .......River....
0002cd70h: 00 00 00 01 03 02 01 01 02 09 [color=blue][B]FE[/B] FF 05 00 FE FF[/color] ; ..........[color=blue]þÿ..þÿ
0002cd80h: 05 00 00 00 00 00 FE FF 05 00 02 00 0F 00 01 00 ; ......þÿ........
0002cd90h: 01 00 FE FF 05 00 02 00 0A 00 00 00 01 00 06 00 ; ..þÿ............
0002cda0h: 05 00 FF FF 05 00 00 00 00 00 FE FF 0A 00 FC FF ; ..ÿÿ......þÿ..üÿ
0002cdb0h: 0A 00 01 00 01 00 FF FF 00 00 FE FF 0A 00 00 00 ; ......ÿÿ..þÿ....
0002cdc0h: 00 00 FF FF 00 00 FF FF 00 00 00 00 00 00 FF FF ; ..ÿÿ..ÿÿ......ÿÿ
0002cdd0h: 00 00 FF FF 00 00 00 00 00 00 0A 00 0F 00 02 00 ; ..ÿÿ............
0002cde0h: 0F 00 00 00 00 00 0A 00 0F 00 02 00 0F 00 00 00 ; ................
0002cdf0h: 00 00 FF FF 00 00 FF FF 00 00 00 00 00 00 FE FF ; ..ÿÿ..ÿÿ......þÿ
0002ce00h: 05 00 FF FF 00 00 00 00 01 00[/color] 41 6C 70 68 61 62 ; [color=blue]..ÿÿ......[/color]Alphab
0002ce10h: 65 74 00 00 00 00 00 00 00 00 00 00 00 00 FF FF ; et............ÿÿ
0002ce20h: 43 6F 64 65 20 6F 66 20 4C 61 77 73 00 00 00 00 ; Code of Laws....
Link doesn't work....
I didn't find the 'offset' but just searched for the string of code and adjusted it.
Tell me, I understand that 05 means 5 turns, but sometimes I changed 00, 0F and 0A to 01... what did I do there?
Thanks a lot. I'm right in my understanding that this will help the AI also, right?
alright, I'll keep that in mind when I think of something else to adjust.You know, by 'offset' I simply mean the position or address of the bytes within the file, i.e. the first byte of the file is at position 0 (0x0), the second byte is at position 1 (0x1), etc...
I don't insist. The link you sent in your first reply goes to a write up of someone who mentions unpacking the exe file before editing. This wasn't necessary... so no big deal.Also, I am not sure why you insist on using an unpacked version of CIV, because you don't have to, but anyway...
Ooooooooooooooooooooooohhhh. I get it. So were there things that take 0 turns that now take 1 turn?? How can an action take 0 turns?Well, 0F means 15 turns, 0A means 10 turns, and 00 means... 0 turns. To be honest, you don't need to modify the 00's, I just made a massive replacement of all turn-costs to 1, including 0 values.
I guess it does - there's only one way to find outI suppose it does, because you're changing the game configuration totally, but I'm not very familiar yet with all the details of how the AI improves terrain, so the best way you'll know is by experimenting.
What (and where) would you change to make roads and railroads take only one turn?
offsets:
EN 474.[B]01[/B] = 0x550B
EN 474.[B]03[/B] = 0x5359
EN 474.[B]04[/B] = 0x5359
EN 474.[B]05[/B] = 0x553D
EN [B]475.01[/B] = 0x550B
[B]FR 474.05 [/B]= 0x5621
original bytes: [COLOR="Red"]8B C8[/COLOR] [I][COLOR="DimGray"]-> mov cx, ax; sets 'cx' value to the actual road/rail turn cost [/COLOR][/I]
patched bytes: [COLOR="Blue"][B]B1 01[/B][/COLOR] [I][COLOR="DimGray"]-> mov cl, 1; sets 'cx' value to 1 (ch is already '0' from previous assignment)[/COLOR][/I]
offsets:
EN 474.01 = 0x5387
EN 474.03 = 0x521B
EN 474.04 = 0x521B
EN 474.05 = 0x53B9
EN 475.01 = 0x5387
FR 474.05 = 0x549D
original bytes: [COLOR="Red"]05 04 00[/COLOR] xx xx xx xx [COLOR="Red"]8B C8[/COLOR] [I][COLOR="DimGray"]-> add ax, 4; xxx; mov cx, ax; sets 'cx' value to the actual fortress turn cost [/COLOR][/I]
patched bytes: [COLOR="Blue"][B]2A ED 90[/B][/COLOR] xx xx xx xx [COLOR="Blue"][B]B1 01[/B][/COLOR] [I][COLOR="DimGray"]-> sub ch, ch; nop; xxx; mov cl, 1; sets 'cx' value to 1[/COLOR][/I]
[I]Note: [B]the 4 'xx' bytes above must be kept untouched[/B]; they
represent a +1 increment in the Settler's "special moves", and
are different for each version of CIV.EXE, because the memory
address of the Settler's data differs from version to version.[/I]
offsets:
EN 474.01 = 0x5215
EN 474.03 = 0x50CF
EN 474.04 = 0x50CF
EN 474.05 = 0x5247
EN 475.01 = 0x5215
FR 474.05 = 0x532B
original bytes: [COLOR="Red"]04 [/COLOR][I][COLOR="DimGray"]-> cmp [Settler's special moves], 4; [/COLOR][/I]
patched bytes: [COLOR="Blue"][B]01 [/B][/COLOR][I][COLOR="DimGray"]-> cmp [Settler's special moves], 1;[/COLOR][/I]
Darkpanda,
I'm afraid the terrain multipliers are still in effect as it took a few turns to road a mountain.
Do you know where to edit that part?
offsets:
EN 474 01: 0x590D
EN 474 03: 0x56B5
EN 474 04: 0x56B5
EN 474 05: 0x5944
EN 475 01: 0x590D
FR 474 05: 0x5A28
original bytes: [COLOR="Red"]05 [/COLOR][I][COLOR="DimGray"]-> cmp [Settler's special moves], 5;[/COLOR] [/I]
patched bytes: [B][COLOR="Blue"]01 [/COLOR][/B][I][COLOR="DimGray"]-> cmp [Settler's special moves], 1; [/COLOR][/I]