Notes on Setting up Development Environment and Decompiling
Posted: Fri Jul 25, 2014 12:32 pm
Just for fun, I tried looking into the inner workings of Ultima 7 using Exult, and followed the well written document "Readme.win32" into how to set up a development environment on a 32 bit Windows machine using MinGW+MSys.
All steps are clear and proved to be correct, but I did find a missing package that needed to be installed :
http://sourceforge.net/projects/mingw/f ... a/download
If this package is not found, "make" will complain about missing libgmp-10.dll.
So I got that sorted out, everything compiled beautifully and off I went to run ucxt, no luck with ucxt unable to locate my static folder, but I finally figured it out:
1. Looking into exult.cfg, I changed my tags to , and tags to
the reason for that is the GameManager was insisting for the correct configurations when trying to find the STATIC folder. I point my finger at the Exult installer's configuration screen, it only configured installations for BlackGate and SerpentIsle.
2. My ucxt command line had to look something like this:
ucxt -fov -uc -fs -ousecode.uc 0x6a4
The point here is also not mixing up -bg and -fov flags, which I had the misfortune of doing that.
In conclusion, it was a rewarding experience, and now I can run Exult, launch Exult Studio using ctrl+alt+m, look at an egg's usecode fucntion reference, see the original usecode function, and play around with the code as I like, and even I can change some exult source code, compile, and run. Amazing stuff.
Anyways, thought I'd share this for anyone who might run into issues similar to what I did.
All steps are clear and proved to be correct, but I did find a missing package that needed to be installed :
http://sourceforge.net/projects/mingw/f ... a/download
If this package is not found, "make" will complain about missing libgmp-10.dll.
So I got that sorted out, everything compiled beautifully and off I went to run ucxt, no luck with ucxt unable to locate my static folder, but I finally figured it out:
1. Looking into exult.cfg, I changed my tags to , and tags to
the reason for that is the GameManager was insisting for the correct configurations when trying to find the STATIC folder. I point my finger at the Exult installer's configuration screen, it only configured installations for BlackGate and SerpentIsle.
2. My ucxt command line had to look something like this:
ucxt -fov -uc -fs -ousecode.uc 0x6a4
The point here is also not mixing up -bg and -fov flags, which I had the misfortune of doing that.
In conclusion, it was a rewarding experience, and now I can run Exult, launch Exult Studio using ctrl+alt+m, look at an egg's usecode fucntion reference, see the original usecode function, and play around with the code as I like, and even I can change some exult source code, compile, and run. Amazing stuff.
Anyways, thought I'd share this for anyone who might run into issues similar to what I did.