|
Post by CaptainStryker on Feb 10, 2023 12:14:32 GMT
This is important old-tech material, I am replying to this so valuable knowledge won't be lost forever. I'll try to explore a bit of lib.so with this method. I would like to find more informations of the 'BILE' .bin animations. I translated some of the animations and it always necessary to understand which animation scenes a .bin file contains. To understand: .bin-animations file formatAs the STRing-block B RTS is the last block, my easy way of extracting the names of all scenes, directly correctly encoded: - Open the .bin file with a Text-editor! (IE: MT or NMM - In android UTF8 encoding is the standard. - Search for BRTS - Delete: all from the beginning of the file -untill including- the BTRS and the next 8 Bytes - replace the NUL with newlines (optional) This is the complete list of all images (without .png) and animation scenes (mostly in CN for unit-animations) What is not in the spritelib as image is a scene. You can call all scenes (and images) inside def_motion, def_effect, def_ellementsanim and probable even in the layouts for WC. A hint for You CaptainStryker as BILE4 (WC4) modder: I am pretty sure that you can also import all BILE3 animations (WC3, 3K, EW4) by simply changing the version number from 3 to 4 at 0x0004:. PS. I love Your Great work CaptainStryker !
The lib.so is the executable (ELF) of the game. Here you can set up things you don't find in any configuration file. You must use a hex-editor. There also a few values inside the code but very hard to figure out, more interresting is the ressource-block: If you search for easy (string) in the HEX-editor, you will quicky find the beginning of the ressource block. We've been able to modify lib.so for the new 1.6 World Conqueror 4 apk, the WC4 GPWM creator managed to find the values to increase the general slot limit and declare war option with the hex editor. Another chinese modder EV69 from the WC4 Fake War Mod called his Baidu mod team to provide the 1.6 apk and fix the unlock conquests problem. I've been trying to figure out how to increase the 128 country limit per conquests with lib.so, because you cannot put more than 128 countries, otherwise it will crash. I haven't been able to find the correct value to change.
|
|
|
Post by ππ³π°π΅π΄π¬πΊ on Feb 10, 2023 12:46:35 GMT
We've been able to modify lib.so for the new 1.6 World Conqueror 4 apk, the WC4 GPWM creator managed to find the values to increase the general slot limit and declare war option with the hex editor. Another chinese modder EV69 from the WC4 Fake War Mod called his Baidu mod team to provide the 1.6 apk and fix the unlock conquests problem. I've been trying to figure out how to increase the 128 country limit per conquests with lib.so, because you cannot put more than 128 countries, otherwise it will crash. I haven't been able to find the correct value to change. Cracking the 128 limit seems not easy (impossible ?): Why ? In the battle-files (.btl) the owner (country) of a hex-field is stored in a Signed Byte. You can have no_owner: -1 (0xFF) and owner 0-127 (0x00-0x7F). This works, but the next hexadecimal number: 0x80 = -128 !! This causes the problem: if somewhere else these numbers are referenced in larger or decimal variables, the 129th country will have a negative! country-code (and you must be aware if this numbering is zero or 1 based so -126, -127, -128 or -129 can be possible) It would be great if You can share the information CaptainStryker, which Adresses have to be changed to increase the general limit (IMO there was a post from Darth Vader) and unlock the conquests. PS: Putting an unit on a hex-field with no_owner (FF), crashes the game - (probable for all negative numbers - the 128 limit) Empty water tiles get automaticly no_owner after loading the btl. So I recommend to give all water tiles an owner (00) in the btl-border section and avoid the FF. This makes editing btl-files (adding/moving units) more robust.
|
|
|
Post by CaptainStryker on Feb 10, 2023 21:32:12 GMT
We've been able to modify lib.so for the new 1.6 World Conqueror 4 apk, the WC4 GPWM creator managed to find the values to increase the general slot limit and declare war option with the hex editor. Another chinese modder EV69 from the WC4 Fake War Mod called his Baidu mod team to provide the 1.6 apk and fix the unlock conquests problem. I've been trying to figure out how to increase the 128 country limit per conquests with lib.so, because you cannot put more than 128 countries, otherwise it will crash. I haven't been able to find the correct value to change. Cracking the 128 limit seems not easy (impossible ?): Why ? In the battle-files (.btl) the owner (country) of a hex-field is stored in a Signed Byte. You can have no_owner: -1 (0xFF) and owner 0-127 (0x00-0x7F). This works, but the next hexadecimal number: 0x80 = -128 !! This causes the problem: if somewhere else these numbers are referenced in larger or decimal variables, the 129th country will have a negative! country-code (and you must be aware if this numbering is zero or 1 based so -126, -127, -128 or -129 can be possible) It would be great if You can share the information CaptainStryker , which Adresses have to be changed to increase the general limit (IMO there was a post from Darth Vader ) and unlock the conquests. PS: Putting an unit on a hex-field with no_owner (FF), crashes the game - (probable for all negative numbers - the 128 limit) Empty water tiles get automaticly no_owner after loading the btl. So I recommend to give all water tiles an owner (00) in the btl-border section and avoid the FF. This makes editing btl-files (adding/moving units) more robust. You are incredibly knowledgeable about the file than I do. You've proved that it crashes the game when attributing the 129th country's ownership on an unit, it did when I tested it in my conquest. The country disappears even if you try to add it, but it doesn't crash if there are no units. I have some questions regarding lib.so. What does this mean: " owner 0-127 (0x00-0x7F)"? Are these separate hex blocs for 128 countries, or is there a value that can be changed? About the next hexadecimal number: 0x80 = -128
Can the value "-128" be increased? Each World Conqueror 4 new versions always have a different lib.so. Currently, this community only has the old WC4 that CCW615 provided. I have the new one that has the Frontier Mode and the Racing Mode 1.6 version. WC4 1.7 Warzone update cannot be modified because it's still too recent, however we saw that the 1.6 and 1.7 have a few code lines added compared to the old apk.
|
|
|
Post by Arthur Currie on Feb 10, 2023 22:45:09 GMT
Damn, that's a nice novel-thread
|
|
|
Post by ππ³π°π΅π΄π¬πΊ on Feb 10, 2023 23:59:07 GMT
Cracking the 128 limit seems not easy (impossible ?): Why ? In the battle-files (.btl) the owner (country) of a hex-field is stored in a Signed Byte. You can have no_owner: -1 (0xFF) and owner 0-127 (0x00-0x7F).Β This works, but the next hexadecimal number: 0x80 = -128Β !! This causes the problem: if somewhere else these numbers are referenced in larger or decimal variables, the 129th country will have a negative! country-code (and you must be aware if this numbering is zero or 1 based so -126, -127, -128 or -129 can be possible) It would be great if You can share the information CaptainStryker , which Adresses have to be changed to increase the general limit (IMO there was a post from Darth Vader ) and unlock the conquests. PS: Putting an unit on a hex-field with no_owner (FF), crashes the game - (probable for all negative numbers - the 128 limit) Empty water tiles get automaticly no_owner after loading the btl. So I recommend to give all water tiles an owner (00) in the btl-border section and avoid the FF. This makes editing btl-files (adding/moving units) more robust. You are incredibly knowledgeable about the file than I do. You've proved that it crashes the game when attributing the 129th country's ownership on an unit, it did when I tested it in my conquest. The country disappears even if you try to add it, but it doesn't crash if there are no units. I have some questions regarding lib.so. What does this mean: " owner 0-127 (0x00-0x7F)"? Are these separate hex blocs for 128 countries, or is there a value that can be changed? About theΒ next hexadecimal number: 0x80 = -128
Can the value "-128" be increased?Β Each World Conqueror 4 new versions always have a different lib.so. Currently, this community only has the old WC4 that CCW615 provided. I have the new one that has the Frontier Mode and the Racing Mode 1.6 version. WC4 1.7 Warzone update cannot be modified because it's still too recent, however we saw that the 1.6 and 1.7 have a few code lines added compared to the old apk.Β Warning: I am just modding EW4 - but ET's games are somehow similar, and I know binary numbers: 0x7F =127, 0x80 =-128, 0x81 =-127, 0x82 =-126 ... 0xFF =-1 =false I don't believe that you can patch the lib to get more than 128 countries, but I may have an idea, as I looked at some WC4 conquest .btl. The format is different, but the structure is similar to EW4. A link to the WC4 btl-file-structure will be very helpful for meFirst thing I saw, there two Bytes for every hex-field in the 'border-section', not only one, like I thought (EW4). But only the first Byte seems to point to the country. ... what is the second byte ?And in the country section before, it looks that in the beginning of a country, there is this country ID that is used in the 'borders'. If I assume right, the 129th country (0x80 for the border-sec.) has as country ID the value -128, but in the county section, the ID is in 32-Bit. For me 0x80 in the border-section is 80 FF FF FF as 32-Bit(Endian), it should be 80 FF FF FF in the country block. This is exactly the problem of the larger variable I was talking about. And all this works only, if negative ID can be valid at all. It depends on the programm(ers) style. Probable this can help your testing: IIrc is the game crashing for units at fields without owner, but not for cities without owner (without flag). PS: We just have the Build 3 for EW4 unlocked, for Android 4.0 - Build 21 is actual and a semi-unlock CN Build-6 (repaired slots) if you see any newer EW4 unlocked, please give me a hint.
|
|
|
Post by ππ³π°π΅π΄π¬πΊ on Feb 28, 2023 11:09:25 GMT
Cracking the 128 limit seems not easy (impossible ?): Why ? In the battle-files (.btl) the owner (country) of a hex-field is stored in a Signed Byte. You can have no_owner: -1 (0xFF) and owner 0-127 (0x00-0x7F).Β This works, but the next hexadecimal number: 0x80 = -128Β !! This causes the problem: if somewhere else these numbers are referenced in larger or decimal variables, the 129th country will have a negative! country-code (and you must be aware if this numbering is zero or 1 based so -126, -127, -128 or -129 can be possible) It would be great if You can share the information CaptainStryker , which Adresses have to be changed to increase the general limit (IMO there was a post from Darth Vader ) and unlock the conquests. PS: Putting an unit on a hex-field with no_owner (FF), crashes the game - (probable for all negative numbers - the 128 limit) Empty water tiles get automaticly no_owner after loading the btl. So I recommend to give all water tiles an owner (00) in the btl-border section and avoid the FF. This makes editing btl-files (adding/moving units) more robust. You are incredibly knowledgeable about the file than I do. You've proved that it crashes the game when attributing the 129th country's ownership on an unit, it did when I tested it in my conquest. The country disappears even if you try to add it, but it doesn't crash if there are no units. I have some questions regarding lib.so. What does this mean: " owner 0-127 (0x00-0x7F)"? Are these separate hex blocs for 128 countries, or is there a value that can be changed? About theΒ next hexadecimal number: 0x80 = -128
Can the value "-128" be increased?Β Each World Conqueror 4 new versions always have a different lib.so. Currently, this community only has the old WC4 that CCW615 provided. I have the new one that has the Frontier Mode and the Racing Mode 1.6 version. WC4 1.7 Warzone update cannot be modified because it's still too recent, however we saw that the 1.6 and 1.7 have a few code lines added compared to the old apk.Β I'm checked it: EW4 has the same behaviour - I can add more than 130 countries (with only 40 flags) to the btl, and they work, but everything with bit7 in the border-section results in no_owner. This is a typical use for signed bytes as array index - You have Value 0 to 127 and the negative flag (the high bit) for unset/false. Your mod is so nice and it works without the gxx-troians.
|
|
|
Post by Arthur Currie on Feb 28, 2023 18:46:56 GMT
|
|
|
Post by ππ³π°π΅π΄π¬πΊ on Feb 28, 2023 22:14:17 GMT
Thank You Arthur Currie for this information. Does this even happen with WC3 and 3K units? (Are these units also not visible in WC4?) My first translated unit was EW6-ships to EW4 this worked out quite easy - a lucky hit - for now, just this army worked. Anim-files seem to be more easy. Imo are the WC4 anim-start or anim-light the old BILE3 files patched to BILE4.
|
|
|
Post by Arthur Currie on Feb 28, 2023 22:32:48 GMT
|
|
|
Post by ππ³π°π΅π΄π¬πΊ on Feb 28, 2023 23:09:42 GMT
Yes BILE3 (WC3, 3K, EW4) and BILE4 (EW6, WC4, gog ..? ) are interchangable within their version. I patched many BILE4 to BILE3 and the results are, more or less, incomplete especially for units - (but work)- I wish we had some documentation for the .bin format to edit or make some anim by ourself. It is amazing that the higher version 4 has also problems to display the old WC3 format complete - this are probable only different layers that are used.
|
|