Notes on Setting up Development Environment and Decompiling

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
eriol

Notes on Setting up Development Environment and Decompiling

Post by eriol »

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.
Dominus
Site Admin
Posts: 5656
Joined: Thu May 14, 2020 1:34 pm

Re: Notes on Setting up Development Environment and Decompil

Post by Dominus »

Thanks for the report, Kirben fixed the Readme.win32 with the missing package. Good to know that the instructions still work :)

as for the ucxt thing, there might be a mixup with exult.cfg tags and the command line. By default we only use the and tag because most people don't have the original non-add-on games anymore. And then ucxt might get confused. Will perhaps have time to look into this later tonight.

Have fun with the tinkering. To see what is possible with all this, take a look at the sources for the keyring and sifixes mod (in /contents of our source).
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
eriol
Posts: 4
Joined: Thu May 14, 2020 1:34 pm

Re: Notes on Setting up Development Environment and Decompil

Post by eriol »

Thanks, I'm indeed having fun tinkering with the code, and truly the sources for keyring and sifixes are indispensable in order to understand what's what.

For example the enumerations found in /content/bgkeyring/src/headers/bg/ and similar in /content/sifixes/src/header/si are like the Rosetta Stone for usecode, plus the methods found in /docs/exult_intrinsics.txt.

Of course I'm taking things little by little. Maybe some day I can be of use :)
Locked