As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Caster of Magic Release thread : latest version 6.06!

Ah I see what you were asking now, no there is no "p" on them. It's as if I've clicked "done".
Reply

Barbarian spearmen do not have +1 to hit.

Reply

(January 11th, 2019, 05:36)Nelphine Wrote: Are you on a tower? They can screw up purify.

No it wasn't on a tower, I tried to purify in several different places with the same result. It's a shame as my strategy was based around transmuting gold to adamantium early on, but thanks to Tauron and being unable to purify I never go to try it out.
Reply

(January 11th, 2019, 06:14)MrBiscuits Wrote: Ah I see what you were asking now, no there is no "p" on them. It's as if I've clicked "done".

In that case the check for 0 movement is likely broken. Yes, the problem was there, although not the check itself, but the line that sets the purify status was missing. I deleted too much when making the space it seems.

I'll upload the fixed version soon.
Reply

By the way it is 2019.01.11 not 2018.01.11
Reply

I was wondering why is this modding done hacking the binary file, why not instead decompile to get a source?
Reply

How? Can you point me to an actual tool that can do that? I tried finding one but don't think it exists?
Reply

I see a couple paid and free options here: https://stackoverflow.com/questions/1430...embly-code and here: https://reverseengineering.stackexchange.../3751#3751
but I haven't personally used any of them.

What is your development model? Do you add assembly where ever it will fit and jump to the new code? Or do you have a separate "new code" binary like the Elder Scrolls script extenders (OBSE/SKSE/FOSE etc. http://forums.bethsoft.com/topic/1530780...ender-skse) and redirect subroutine calls (though I'm not sure how this would work in a DOS MZ exectuable)

At what point does it become beneficial to follow the OpenXcom (https://openxcom.org/about/) route and reimplement the game logic with the original graphics assets? This would allow you to code in a high-level language, factor game behaviors out into easily-modifiable data files, and add opportunities to build a mod community, but would also be a lot of work (and take a lot of time)

edit: actually, if you were to reimplement the game logic, I bet you could borrow a lot of code from OpenXcom. They already have routines for blitting sprites, showing movies/animations, and drawing world maps scaled to modern screen sizes. SupSuper, the OpenXcom project lead, might have more ideas of what could be reused.
Reply

I am using IDA but it doesn't seem to be capable of making C code out of it, all I get are a bunch of errors. Even on the 1.31 file which is supposedly unchanged. I haven't tried the others.

Remaking the whole thing to have source code would take years of hard work. I'm not going to do that unless someone pays me for it. There are like 3500 procedures worth of code in this, in wizards.exe alone. Even assuming about 1/4 of that are sound and graphics drivers which we likely can use something newer of, it's still probably around writing 300k lines of game code or more. Once we reach the limit of what's possible as is, it might be an interesting idea to try to get funding for a project like that. Ultimately it would mean we have a quality game already made and tested that "only" needs to be recoded in a high level language and if graphics and music also gets swapped and some renaming of stuff is done, it can basically be rebranded as an entirely new game that's not Master of Magic anymore and is already proven to be superior. This is just a wild idea though, I have zero experience with doing anything like that.

I make changes by removing unneeded instructions from the existing code to make room right where needed. I only ever added something as a call to a far segment like 3 times to insert code at the end of the file because I have no idea what determines when a new far call is stable and not crashing. Sometimes it fails to return from such calls because it swaps the parent segment out of the memory by the time it needs it.
Reply

I think the free non-commercial IDA can only disassemble.

IDA's commercial decompiler, hex-rays, does support 32-bit x86 but I'm not sure if MOM qualifies (16-bit x86 maybe?). If it does it is sure worth a try for someone having a license.

Anyone running windows maybe try this MS-DOS .exe supporting decompiler on magic.exe: https://sourceforge.net/projects/decompiler/
Reply



Forum Jump: