It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
avatar
aloeser: Nice post, lots of valuable information!
Some time ago I started with a friend trying to rewrite Etherlords 2 from scratch in C# and Unity. We got some basic combat logic working, and managed to (partially) extract the game's 3d models, but it's faaaar from done, and kinda frozen since I started working full time recently.
Your approach sounds much more promising tho :D I'll look into the ini2reg converter, as long as there is a spec of the reg format it should not be too hard to write a parser/converter. I'll add you as friend, maybe we can switch to some other communication platform such as discord or maybe steam :)
Thanks :)

Rewriting the game from scratch sounds terrific, but also far too time-consuming :D Especially because my main goal is to mod the first part, so i can co-op with others against some ai ;)

Luckily the process works for both games, and i got some help from the guys at the russian forum - the extraction and conversion works, and i have described it a bit further in this git-repo: https://github.com/SomeSkull/EtherlordsModding. Unlike my original post i would recommend using the EIPacker instead of the MagicPacker, because the guys modding Evil Islands are still maintaining it, and it worked for both file formats for me.

Unfortunately, one thing doesn't work as i expected it: adding new spells. It works for the menus, overworld and even adding them to the deck. But unfortunately in combat the game seems to check the spell id and crashes if it can't find it. So to add new spells we would have to create a code cave, but the last time i programmed something in C/C++ was quite a few years ago, so i don't know if i can actually create this in my free time.
avatar
aloeser: Nice post, lots of valuable information!
Some time ago I started with a friend trying to rewrite Etherlords 2 from scratch in C# and Unity. We got some basic combat logic working, and managed to (partially) extract the game's 3d models, but it's faaaar from done, and kinda frozen since I started working full time recently.
Your approach sounds much more promising tho :D I'll look into the ini2reg converter, as long as there is a spec of the reg format it should not be too hard to write a parser/converter. I'll add you as friend, maybe we can switch to some other communication platform such as discord or maybe steam :)
avatar
SoSayethSimon: Thanks :)

Rewriting the game from scratch sounds terrific, but also far too time-consuming :D Especially because my main goal is to mod the first part, so i can co-op with others against some ai ;)

Luckily the process works for both games, and i got some help from the guys at the russian forum - the extraction and conversion works, and i have described it a bit further in this git-repo: https://github.com/SomeSkull/EtherlordsModding. Unlike my original post i would recommend using the EIPacker instead of the MagicPacker, because the guys modding Evil Islands are still maintaining it, and it worked for both file formats for me.

Unfortunately, one thing doesn't work as i expected it: adding new spells. It works for the menus, overworld and even adding them to the deck. But unfortunately in combat the game seems to check the spell id and crashes if it can't find it. So to add new spells we would have to create a code cave, but the last time i programmed something in C/C++ was quite a few years ago, so i don't know if i can actually create this in my free time.
Sounds nice, keep us updated on the progress!
I'm more or less fluent with modern C++, but given that Etherlords was released almost 20 years ago the code is probably everything but modern itself.. still, do you know if Nival has open sourced Etherlords? It would be pretty big if we could access the actual game code, but I'm not sure if it is legal to decompile the .exe
avatar
aloeser: still, do you know if Nival has open sourced Etherlords?
No, unfortunately not. But if we actually build a modding community Nival might consider this. After all communities like this are the reason old gems like Age of Empires 2 get revived by the producer. And Etherlords is certainly unique enough to cater to a specific playerbase.

avatar
aloeser: It would be pretty big if we could access the actual game code, but I'm not sure if it is legal to decompile the .exe
That in itself is an interesting question. We can access the binaries and decompile them to assembly instructions without problem, but not to the actual c++ code. But assembly is more than enough if we search for something specific, in this case the part were the game checks for a spell id because hardcoded Strings are present in the binaries and therefore easy to search for.

Concerning the legality, if somebody is asking themselves the same question, i recommend this wikipedia section: https://en.wikipedia.org/wiki/Decompiler#Legality

The TLDR is: we need the license for the original product (which we have if we bought the game), the decompilation nees to be necessary for interoperability (which it is, because the code wasn't open sourced) and the decompilation should be limited to the necessary parts (which is... difficult to achieve technically, but is automatically necessary if you don't want to read millions of assembly instructions)

So yes, as long as it's necessary and isn't used for theft of intellectual property, it's allowed :)