(updated 12/24/14) Age of Empires Heaven :: Binary Patcher
Back to Age of Empires Heaven Welcome to The Granary (Download Central)
Welcome
Downloads Home
Review Guidelines
Main site
Forums
Code of Conduct
Search

Advanced Search
Utility Programs
Home
New Releases
New Reviews
New Comments
Top-Rated

Submit File
Browse Categories
New Files

Downloads Home » Utility Programs » Binary Patcher

Download File Post Review Post Comment

Binary Patcher

Author File Description
chab [2014-12-20 : fix max selected units, fix file locking issue, add some other options, ROR_API support...]

Please use CustomizeAOE instead of BinaryPatcher unless you are a developer.
CustomizeAOE is easier to use and contains more features.


Program forum topic.

See also AOEDaemon.

Required files for Windowed mode

This is a new tool to replace "CustomizeAOE" I released previously.
The program is a tool that allows you to modify any type of file, provided you're working with fixed offset and file size.

Beginners ? Try the Wizard option (F2), make shortcuts...

You can load/save/edit binary technical information about what is to be changed in the target file, and also defined consistency checks on target file (to check that the file actually is the one that was expected).
These information can be stored in /ini Files.

Then, you can use these definitions to customize at will the target file's supplied options.

This program is supplied with ini files (for AoE 1.0b and 1.0c) including...
- ConfigAOE10x_options.ini : some options for AOE, similar to "CustomizeAOE"
- AOE10x_resolution.ini : allows you to set any resolution in RoR. You'll have to type the appropriate values for horizontal/vertical options. You'll also have to deal with interfac.drs by yourself if you want beautiful menus.
/!\ 1.0b is not always maintained now...

1) Run the EXE...
2) Load one of the INI files supplied
3) Select the target file empiresX.exe or a copy of this file
4) Edit target file and choose what you prefer among the options !
(4) : use variables to change game resolution in 3 second: var1=horizontal resolution, var2=vertical resolution.

Windowed mode : you need to get config.dll and wndmode.dll from VEG's mod (+config.xml). Only the windowed mode is implemented in the provided INI file, other VEG's features may crash.

You could use this tool to do any other stuff, just use the UI to configure the binary information, save it to a .ini file and go !

Always BACKUP your target files !
If you used older versions of .ini file, you may have to reset their options to default before using new ones.

Comments are welcome.
Tell me if you find bugs:
BinaryPatcher thread


You are FREE to use my work for any of your program/mod/anything if you respect those conditions:
- Provide clearly a link to this page (and credit).
- Your program/mod/anything must be open source so that it makes the modding community stronger.


=== See also ===
1920*1080 DRS files.

1920*1200 DRS files.
Pages: [1] 2 3 4 5 » Last »
AuthorComments & Reviews   ( All | Comments Only | Reviews Only )
snakeypoo27 Hi Chab. You have been doing some great work with AoE/RoR.

I am a moderator at voobly.com. Voobly has supported matchmaking for the AoE series for several years now. Although our AoE1 community is small at the moment, we are serious about growing the game and recently have come up with big plans to unite the asian and english AoE/RoR community. We have already made several changes/improvements to AoE and plan on doing the same with RoR. You can see some of these changes for AoE here: http://www.voobly.com/pages/view/aoehd

You seem to have some valuable insight and would love to chat more and perhaps join forces with you. You could respond here or contact me on voobly... my profile is: http://www.voobly.com/profile/view/65

Thanks.. Look forward to chatting with you.
chab
File Author
That would be great to contribute in ways voobly is following, I'm thinking about custom DLL production.
I'm really interested in creating such files to see what can be done this way. It seems that unbelievable possibilities are now open thanks to this use of DLLs.
Maybe you already shared somewhere this knowledge to the modders community ?
aoe_scout If we can add menu with resolutions or at least random teams and Random in Map type, it would be great.

I tested v1.0.0.2 yesterday (I now see there's a new _0001 version, but can't find any changes).
Everything works great wtih few minor exceptions (see below). Only resizing the graphics remains (which I'll most likely do in my UPatch-mod)

Here is what I found:
- HPos-Map = HRes - 229 (not 329), the map position is incorrect with - 329 (I guess it's just a typo)
- Current Age and population (F11) are not centered (not a big problem)
- Scenario Instructions screen: here is the tough part - buttons below and the map (added in scenario) are not changed. And even if the graphics are resized, the maps won't fit (including those from the original campaigns). May be changing only the buttons. Centering the map could solve it, but I imagine it would be hard without the source code. This is the only area that would suffer from resolution change.

[Edited on 03/29/13 @ 11:49 AM]

chab
File Author
Thank you for this information, feedback is precious.
Indeed I may have ignored some screen (multiplayer, campaigns...)
As you said to correct that, we should update interfac.drs
F11 : I didn't try to change that (don't know how !), I think it's not a big problem to get used to this new position ;)
I'll have a look for Hpos-map.

You can save (export) all your current configuration to a .ini file, so if you add or correct things don't hesistate to create your own files.

(the 0001 file only fixes an minor technical issue, I uploaded the file too early and had to re-upload the day after ;)
aoe_scout What about current Age (Stone, Bronze, ect.), is there any hope for centered position?

I'll update both Interfac.drs files with perfectly resized graphics for different resolutions (I already created templates and run a few tests), but it will take time. It will all be included in the next version of UPatch-mod.

BTW, could you make it possible to change game version from 1.0 or 1.0a to for example 1.1 (like in UserPatch)?? I tried changing the numbers with ResourceHacker + changed 1.0a to 1.1a with a Hex editor inside the exe. But I can still start a game with someone with 1.0a, it's not recognized as different version. I really need this and will appreciate any help. :)
LucTieuPhung Well first of all I want to thank you for this great tool. I found that HPos-ButtonsZone is actually the Chat button and should be HorizontalSize - 252.

I tried to take a shot at debugging myself and I found the offsets for centering the current age, pop limit and some Scenario Instructions customization. I also encountered another element which is the game zone excluding the bottom panel and 50 pixels of the top area. Don't know what its function is but its value is different depending on resolution so I'm gonna include it here.

For every item in Scenario Instructions you need to set x, y, width and height. This does not include the top label where I only included a value that determines its horizontal position, where the recommended value centers the label.
I haven't included any recommended value for the others, but if in doubt you can always use

VerticalSize * defaultValue / 768 // For vertical values.
HorizontalSize * defaultValue / 1024 // For horizontal values.

Of course you can customize it however you like. There is still a problem with the map not being positioned or scaled correctly.

Copy/paste the text below at the end of "AOE10c_resolution.ini".

[BinChange51]
Name=HSize-GameZoneMinus30
Description=Horizontal size of game zone positioned 30 pixels below top panel.\nDefault value 0x0250 = 592.\nShould be VerticalSize - 176.\n
Offset=520480
Size=5
Buffer_OFF=68 50 02 00 00
Buffer_ON=68 50 02 00 00
DefaultIsOff=1
IntParamOffset=520481
IntParamSize=2
[BinChange52]
Name=HSize-AgePanel
Description=Horizontal size of current age panel determines the position of the text label.\nDefault value 0x01ec = 492.\nShould be HorizontalSize - 532.\n
Offset=520562
Size=5
Buffer_OFF=68 EC 01 00 00
Buffer_ON=68 EC 01 00 00
DefaultIsOff=1
IntParamOffset=520563
IntParamSize=2
[BinChange53]
Name=HPos-PopLimit
Description=Horizontal position of pop limit string.\nDefault value 0x01b0 = 432.\nShould be (HorizontalSize * 0.5) - 80.\n
Offset=520435
Size=5
Buffer_OFF=68 B0 01 00 00
Buffer_ON=68 B0 01 00 00
DefaultIsOff=1
IntParamOffset=520436
IntParamSize=2
[BinChange54]
Name=IS-HPos-TopLabel
Description=Horizontal position of the top label.\nDefault value 0x03fa = 1018.\nShould be HorizontalSize - 6.
Offset=651389
Size=5
Buffer_OFF=68 FA 03 00 00
Buffer_ON=68 FA 03 00 00
DefaultIsOff=1
IntParamOffset=651390
IntParamSize=2
[BinChange55]
Name=IS-VSize-TextArea
Description=Vertical size of Text area.\nDefault value 0x011d = 285.\n
Offset=651405
Size=5
Buffer_OFF=68 1D 01 00 00
Buffer_ON=68 1D 01 00 00
DefaultIsOff=1
IntParamOffset=651406
IntParamSize=2
[BinChange56]
Name=IS-HSize-TextArea
Description=Horizontal size of Text area.\nDefault value 0x03b0 = 944.\n
Offset=651410
Size=5
Buffer_OFF=68 B0 03 00 00
Buffer_ON=68 B0 03 00 00
DefaultIsOff=1
IntParamOffset=651411
IntParamSize=2
[BinChange57]
Name=IS-VPos-TextArea
Description=Vertical position of Text area.\nDefault value 0x41 = 65.\n
Offset=651415
Size=2
Buffer_OFF=6A 41
Buffer_ON=6A 41
DefaultIsOff=1
IntParamOffset=651416
IntParamSize=1
[BinChange58]
Name=IS-HPos-TextArea
Description=Horizontal position of Text area.\nDefault value 0x28 = 40.\n
Offset=651419
Size=2
Buffer_OFF=6A 28
Buffer_ON=6A 28
DefaultIsOff=1
IntParamOffset=651420
IntParamSize=1
[BinChange59]
Name=IS-VSize-HistoryButton
Description=Vertical size of History button.\nDefault value 0x32 = 50.\n
Offset=651426
Size=2
Buffer_OFF=6A 32
Buffer_ON=6A 32
DefaultIsOff=1
IntParamOffset=651427
IntParamSize=1
[BinChange60]
Name=IS-VSize-InstrButton
Description=Vertical size of Instructions button.\nDefault value 0x32 = 50.\n
Offset=651451
Size=2
Buffer_OFF=6A 32
Buffer_ON=6A 32
DefaultIsOff=1
IntParamOffset=651452
IntParamSize=1
[BinChange61]
Name=IS-VSize-HintsButton
Description=Vertical size of Hints button.\nDefault value 0x32 = 50.\n
Offset=651479
Size=2
Buffer_OFF=6A 32
Buffer_ON=6A 32
DefaultIsOff=1
IntParamOffset=651480
IntParamSize=1
[BinChange62]
Name=IS-VSize-OkButton
Description=Vertical size of OK button.\nDefault value 0x32 = 50.\n
Offset=651507
Size=2
Buffer_OFF=6A 32
Buffer_ON=6A 32
DefaultIsOff=1
IntParamOffset=651508
IntParamSize=1
[BinChange63]
Name=IS-HSize-HistoryButton
Description=Horizontal size of History button.\nDefault value 0x00F0 = 240.\n
Offset=651428
Size=5
Buffer_OFF=68 F0 00 00 00
Buffer_ON=68 F0 00 00 00
DefaultIsOff=1
IntParamOffset=651429
IntParamSize=2
[BinChange64]
Name=IS-HSize-InstrButton
Description=Horizontal size of Instructions button.\nDefault value 0x00F0 = 240.\n
Offset=651453
Size=5
Buffer_OFF=68 F0 00 00 00
Buffer_ON=68 F0 00 00 00
DefaultIsOff=1
IntParamOffset=651454
IntParamSize=2
[BinChange65]
Name=IS-HSize-HintsButton
Description=Horizontal size of Hints button.\nDefault value 0x00F0 = 240.\n
Offset=651481
Size=5
Buffer_OFF=68 F0 00 00 00
Buffer_ON=68 F0 00 00 00
DefaultIsOff=1
IntParamOffset=651482
IntParamSize=2
[BinChange66]
Name=IS-HSize-OkButton
Description=Horizontal size of OK button.\nDefault value 0x00F0 = 240.\n
Offset=651509
Size=5
Buffer_OFF=68 F0 00 00 00
Buffer_ON=68 F0 00 00 00
DefaultIsOff=1
IntParamOffset=651510
IntParamSize=2
[BinChange67]
Name=IS-VPos-HistoryButton
Description=Vertical position of History button.\nDefault value 0x02b2 = 690.\n
Offset=651433
Size=5
Buffer_OFF=68 B2 02 00 00
Buffer_ON=68 B2 02 00 00
DefaultIsOff=1
IntParamOffset=651434
IntParamSize=2
[BinChange68]
Name=IS-VPos-InstrButton
Description=Vertical position of Instructions button.\nDefault value 0x02b2 = 690.\n
Offset=651458
Size=5
Buffer_OFF=68 B2 02 00 00
Buffer_ON=68 B2 02 00 00
DefaultIsOff=1
IntParamOffset=651459
IntParamSize=2
[BinChange69]
Name=IS-VPos-HintsButton
Description=Vertical position of Hints button.\nDefault value 0x02b2 = 690.\n
Offset=651486
Size=5
Buffer_OFF=68 B2 02 00 00
Buffer_ON=68 B2 02 00 00
DefaultIsOff=1
IntParamOffset=651487
IntParamSize=2
[BinChange70]
Name=IS-VPos-OkButton
Description=Vertical position of Ok button.\nDefault value 0x02b2 = 690.\n
Size=5
Buffer_OFF=68 B2 02 00 00
Buffer_ON=68 B2 02 00 00
DefaultIsOff=1
IntParamOffset=651515
IntParamSize=2
[BinChange71]
Name=IS-HPos-HistoryButton
Description=Horizontal position of History button.\nDefault value 0x0a = 10.\n
Offset=651440
Size=2
Buffer_OFF=6A 0A
Buffer_ON=6A 0A
DefaultIsOff=1
IntParamOffset=651441
IntParamSize=1
[BinChange72]
Name=IS-HPos-InstrButton
Description=Horizontal position of Instructions button.\nDefault value 0x010a = 266.\n
Offset=651465
Size=5
Buffer_OFF=68 0A 01 00 00
Buffer_ON=68 0A 01 00 00
DefaultIsOff=1
IntParamOffset=651466
IntParamSize=2
[BinChange73]
Name=IS-HPos-HintsButton
Description=Horizontal position of Hints button.\nDefault value 0x020a = 522.\n
Offset=651493
Size=5
Buffer_OFF=68 0A 02 00 00
Buffer_ON=68 0A 02 00 00
DefaultIsOff=1
IntParamOffset=651494
IntParamSize=2
[BinChange74]
Name=IS-HPos-OkButton
Description=Horizontal position of Ok button.\nDefault value 0x0306 = 774.\n
Offset=651521
Size=5
Buffer_OFF=68 06 03 00 00
Buffer_ON=68 06 03 00 00
DefaultIsOff=1
IntParamOffset=651522
IntParamSize=2
chab
File Author
Good work, I'll have a look at this as soon as possible.
Aoe_scout will be happy to read that :-)

It's great this tool allows people to share information (and run tests) very easily, I hope this will continue this way.
aoe_scout Yes, very happy indeed! :D

Great work, LucTieuPhung!
LucTieuPhung Hi again. I just wanted to correct some minor things. The following
Name=HSize-GameZoneMinus30
Description=Horizontal size
should be changed to
Name=VSize-GameZoneMinus30
Description=Vertical size
and the IS-prefix should probably be changed to SI for Scenario Instructions.
aoe_scout There is a missing offset for "IS-VPos-OkButton", I corrected it (figured out it must be =IntParamOffset-1) and improved few of the descriptions and names (including Chat Button). Here's my ini file, tested and working: [http://www.mediafire.com/view/?g14qeoaen9xi6el]. You can include it in the next version if you want. :)

Scenario Instruction screen buttons horizontal size and position must be calculated for each resolution (considering resolution proportions) so that they fit, it's not a simple formula . Everything else works perfectly. Unfortunately, I still can't resize or center the graphics for SI screen, because values (offset or size) for custom map backgrounds are missing.

I also found 2 minor bugs in other descriptions:
v1.0b resolutions: "HPos-Map" is HorizontalResolution - 229 (not 329). This is fixed in 1.0c ini, but not here.
1.0b & 1.0c options ini:
"188-SNAttackWinningPlayer-init1" - correct description is "Computer player will prefer attacking the winning player". If the winning player is a computer player, he could be attacked too (especially if "201-SNTrackPlayerHistory-init2" is OFF).

[Edited on 04/19/13 @ 06:34 AM]

Pages: [1] 2 3 4 5 » Last »

Post Review Post Comment

HGDL v0.7.1

Login
Forum Username:


Password:




Create a new account
Forgot password?
Rating
5.0
Statistics
Downloads:1,737
Favorites: [Who?]5
Size:283.05 KB
Added:03/10/13
Updated:12/24/14