$LBClueless = TRUE;

- anonymously added bit in Usecode sources
(according to Ultima VII quotes)

USECODE is a file in Ultima VII. It contains the complete script of the game, every event and the daily routines of the character. This way, the engine could be better reused; sadly, U7 engine wasn't much used elsewhere.

It wasn't the U7 engine that needed to be reused; People still love U7, but the original DOS binary won't work on newer OSes, or does so only after severe tuning - making the original Voodoo configuration hell of the DOS days seem quite insignificant!

Thus, there was a distinct need to reimplement the Ultima VII binaries - and one of the projects that integrated most of this effort was Exult, these days the best way to experience the game.

The developers tried to reverse engineer the file formats. Of course, Ultima map and graphics formats were quickly figured out, but what about the game script?

The file format was a complete mystery for a long time: The format was seemingly very complicated and obscure (many opcodes were total mysteries), no one seemed to have any documentation for it, the original authors didn't really speak up, and according to Origin the source code of the game itself had been lost (well, in retrospect, that was just a good thing - the future generations need not to experience the Pain That Is Voodoo =)

Usecode was luckily later reverse engineered completely. There's now a library that handles Usecode interpretation, and Exult incorporates it. Like us, the future generations can experience the thrill of being on a guard's way - when he does his scripted patrol - and hear him whine to get the Avatar out of his way =)... and the thrill of baking bread! The newest Exult developments even include an experimental map editor and even a compiler that can be used to produce customized Usecode scripts.

The binary form used in the code is apparently stack-oriented (that is, like Forth and PostScript, functions take values from stack and return them to the top of the stack.)

Log in or registerto write something here or to contact authors.