Fragjacker / DoW-Mod-Manager

The original repository for the DoW Mod Manager application, which was made for the Dawn of War:tm: series.
MIT License
32 stars 7 forks source link

Some small improvements and fonts that are automatically adjusted for many resolutions! #24

Closed IgorTheLight closed 3 years ago

IgorTheLight commented 3 years ago

(!) Archive "Engine" folder so we could distribute it for other players. I'm not sure how to make it more convenient:

Fragjacker commented 3 years ago

Nice updates! Gotta check them out today since Github is derping again and marks a lot as conflicts eventhough they are basically identical to the files on my master branch.

IgorTheLight commented 3 years ago

GitHub strikes again :-) I also fixed a TLS/SSL problem that occurs on Windows 7 when DoW Mod Manager downloads something Aaaaaand customizable font sizes are ALREADY available as a mod!

On Mon, Mar 8, 2021 at 3:07 PM Dennis S. notifications@github.com wrote:

Nice updates! Gotta check them out today since Github is derping again and marks a lot as conflicts eventhough they are basically identical to the files on my master branch.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/Fragjacker/DoW-Mod-Manager/pull/24#issuecomment-792743622, or unsubscribe https://github.com/notifications/unsubscribe-auth/APM5F32FAY24UUA7PUGEQWDTCTDXXANCNFSM4YWTUFAQ .

Fragjacker commented 3 years ago

Alright I handmerged it and also removed some unnecessary variables in the nofog file that were never used. So you may want to pull the latest changes as well.

IgorTheLight commented 3 years ago

Thanks! Sorry for the inconvenience :-)

When I checked DoW Mod Manager last time (didn't touched it since 2.1.3) I was actually surprised to see a whole new feature (Fog Remover). It's even a decompiled code! That means that those guys are probably good at writing DirectX 9.0c code and decompiling themselves! But to be honest - we need someone to decompile Soulstorm.exe so we could modernize it. On the one hand that would be illegal. On the other hand - Soulstorm is 13 years old. Does SEGA really care that much about such old game? It doesn't make them millions now. And of course I still remember that this is a Relic Entertainment game to begin with. Do I sound like a crazy man? :-)

On Mon, Mar 8, 2021 at 4:20 PM Dennis S. notifications@github.com wrote:

Alright I handmerged it and also removed some unnecessary variables in the nofog file that were never used. So you may want to pull the latest changes as well.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/Fragjacker/DoW-Mod-Manager/pull/24#issuecomment-792786652, or unsubscribe https://github.com/notifications/unsubscribe-auth/APM5F34J2QPY7JA4U6EBTLTTCTMLZANCNFSM4YWTUFAQ .

Fragjacker commented 3 years ago

No worries :). Also the original code was fortunately for me a dotNET C# application! So they must've written the Fog Remover code in Visual Studio too since I think that's the only place that has full dotNET compatibility from all IDE's. This got me lucky since dotNET code can be easily decompiled with Jetbrains dotPeek https://www.jetbrains.com/decompiler/. I used that to grab the code from the executable and embed it into my Mod Manager.

Still I wonder how they found the necessary addresses where they need to make their changes. Did they use some debugging tool such as OllyDebug to inspect the Soulstorm.exe? How did they know what to look for?

But to be honest - we need someone to decompile Soulstorm.exe so we could modernize it. On the one hand that would be illegal. On the other hand - Soulstorm is 13 years old. Does SEGA really care that much about such old game? It doesn't make them millions now. And of course I still remember that this is a Relic Entertainment game to begin with. Do I sound like a crazy man? :-)

You are not alone, however decompiling code is cancer big time. One very good software for this is Ida Pro, or for starters Ida freeware https://www.hex-rays.com/products/ida/support/download_freeware/. So in case you want to dive down this rabbithole I won't stop you :). However at this point I would say that it would be way easier to write some kind of wrapper to load the old Dawn of War assets into a new engine such as Unity or Unreal. This way you would still require Soulstorm to work and thus avoid copyright claims by Gamesworkshop/Relic meanwhile enjoying all the cool stuff, that modern day engines do provide.

IgorTheLight commented 3 years ago

I tried decompiling code some time ago so I know that .NET code is MUCH easier to decompile (if it's not heavily obfuscated). Same with JVM-based code. But native applications are much harder to decompile. Even the simplest "Hello world" application looks very unreadable and can't be easily compiled back (maybe I did something wrong back then). I found some interesting programs that may help in some way:

And no - I'm not one of the crack teams - just a curious mind :-) The more you know - the closest you are to heresy.

About using a modern engine - that is a good idea, actually! We could use Corsix's Mod Studio to look at stats (actually - I'm trying to make it to be able to be builded on modern systems) and just use assets from the game (as you said). New engine will provide better multithreading and lighting.

On Tue, Mar 9, 2021 at 1:54 PM Dennis S. notifications@github.com wrote:

No worries :). Also the original code was fortunately for me a dotNET C# application! So they must've written the Fog Remover code in Visual Studio too since I think that's the only place that has full dotNET compatibility from all IDE's. This got me lucky since dotNET code can be easily decompiled with Jetbrains dotPeek https://www.jetbrains.com/decompiler/. I used that to grab the code from the executable and embed it into my Mod Manager.

Still I wonder how they found the necessary addresses where they need to make their changes. Did they use some debugging tool such as OllyDebug to inspect the Soulstorm.exe? How did they know what to look for?

But to be honest - we need someone to decompile Soulstorm.exe so we could modernize it. On the one hand that would be illegal. On the other hand - Soulstorm is 13 years old. Does SEGA really care that much about such old game? It doesn't make them millions now. And of course I still remember that this is a Relic Entertainment game to begin with. Do I sound like a crazy man? :-)

You are not alone, however decompiling code is cancer big time. One very good software for this is Ida Pro, or for starters Ida freeware https://www.hex-rays.com/products/ida/support/download_freeware/. So in case you want to dive down this rabbithole I won't stop you :). However at this point I would say that it would be way easier to write some kind of wrapper to load the old Dawn of War assets into a new engine such as Unity or Unreal. This way you would still require Soulstorm to work and thus avoid copyright claims by Gamesworkshop/Relic meanwhile enjoying all the cool stuff, that modern day engines do provide.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/Fragjacker/DoW-Mod-Manager/pull/24#issuecomment-793777264, or unsubscribe https://github.com/notifications/unsubscribe-auth/APM5F3426P6YPKS2YMPNP6LTCYD6HANCNFSM4YWTUFAQ .

Fragjacker commented 3 years ago

And no - I'm not one of the crack teams - just a curious mind :-) The more you know - the closest you are to heresy.

Same here. I just want to know things :).

About using a modern engine - that is a good idea, actually! We could use Corsix's Mod Studio to look at stats (actually - I'm trying to make it to be able to be builded on modern systems) and just use assets from the game (as you said). New engine will provide better multithreading and lighting.

Actually where you able to create a Corsix project solution yet? There is the full source code of Corsix Mod Studio available(https://modstudio.corsix.org/downloads-5.html). But since this app has been made before stuff like Github or proper IDE's got popular the whole project is a mess. Yet, there is some demand to add some new features even. This would also grant the ability to flatout grab the important .cpp files and build a streamlined parser that can handle .rgd files during load time.

For the mesh files such as .whm and .whe I have a pretty much complete understanding over their file structure and how to process them into meaningful mesh data. So writing an embedded file adapter that can natively read .whm, .whe mesh and FX information is possible. It's more or less only a question of translating this information into something that the target engine can work with.

IgorTheLight commented 3 years ago

Yes I used source code for the latest version (0.5.5). It's for Visual Studio 6.0 You may find more information about that here: https://github.com/IgorTheLight/CorsixsModStudio I even contacted the original author and he said that he is not interested anymore. So we are alone with this mess :-(

Your internal knowledge is very appreciated :-) I'm thinking about using Godot engine - it's 100% free and open sourced. In it's current state it may struggle with many units but their next big update (4.0) will help with that A LOT. They are improving their scripting language, updating to a C++ '17 (internally) and adding a Vulkan renderer! Why not Unity? It has a trap when we could distribute our modified engine for free but maybe we would like to receive donates. That may force us to buy Unity license because we are "making money". Hard to tell. And we couldn't modify the engine itself. Maybe we would need that - who knows... UE4 is a better choice: same potential problem with money but we could see and modify (but not redistribute or something like that) their engine. But it's very heavy to work with. Actually - paying royalties is not that big of a problem that I just said - you would have to make some amount of money before you would have to pay them back. I don't know... Maybe I just like Godot (it's very pleasant to work with).

On Tue, Mar 9, 2021 at 3:17 PM Dennis S. notifications@github.com wrote:

And no - I'm not one of the crack teams - just a curious mind :-) The more you know - the closest you are to heresy.

Same here. I just want to know things :).

About using a modern engine - that is a good idea, actually! We could use Corsix's Mod Studio to look at stats (actually - I'm trying to make it to be able to be builded on modern systems) and just use assets from the game (as you said). New engine will provide better multithreading and lighting.

Actually where you able to create a Corsix project solution yet? There is the full source code of Corsix Mod Studio available( https://modstudio.corsix.org/downloads-5.html). But since this app has been made before stuff like Github or proper IDE's got popular the whole project is a mess. Yet, there is some demand to add some new features even. This would also grant the ability to flatout grab the important .cpp files and build a streamlined parser that can handle .rgd files during load time.

For the mesh files such as .whm and .whe I have a pretty much complete understanding over their file structure and how to process them into meaningful mesh data. So writing an embedded file adapter that can natively read .whm, .whe mesh and FX information is possible. It's more or less only a question of translating this information into something that the target engine can work with.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/Fragjacker/DoW-Mod-Manager/pull/24#issuecomment-793886030, or unsubscribe https://github.com/notifications/unsubscribe-auth/APM5F34S7XI7Q4RMX7LYMLLTCYNXXANCNFSM4YWTUFAQ .