MaddoScientisto
Member
Link to the web app: https://maddoscientisto.github.io/Crusader-Map-Viewer/
Inspired by the great work Stauff did a few years ago and fueled by an unending obsession for anything Crusader I decided to start a new reverse engineering effort.
I got about 49% through it and in doing so I discovered and documented plenty, then I realized that I could further improve the work by using the already done work in ScummVM and Pentagram, that helped a bit, but the real treasure was finding the repository for Stauff's old work. Once I started from there and applied my notes, I started discovering a lot of interesting stuff.
I've been very interested in the cheat codes because for years there was a lot of misinformation on the net, especially on gamefaqs, and I couldn't get the Immortality cheat to work at all, a bit due to DOSBox catching the key combination and a bit because the information available was plainly wrong. For years I believed that the immortality cheat was a myth and didn't actually exist, but I found evidence of it in the code so I perservered.
Here's what I found:
Bonus: I'm working on decompiling usecode to human readable (and editable!) code, here's an example of what it looks like right now

This one is pretty funny, after some analysis it turns out that some npcs are equipped a sort of "alarm hat" that sits on their head and detects the player at eye level to trigger the alarm, I love it
CAMERACO:

The idea is to eventually end up with a script that can decompile and recompile usecode, that would basically allow for creating custom ones... aka modding!
I'd also eventually like to create a map exporter and importer but there's still so much I want to get through first
I'm going to report new findings from time to time, I feel like there's still tons of undiscovered stuff. Stauff's work was centered on getting the game to play in ScummVM but my focus is exploration and eventually modding
Inspired by the great work Stauff did a few years ago and fueled by an unending obsession for anything Crusader I decided to start a new reverse engineering effort.
I got about 49% through it and in doing so I discovered and documented plenty, then I realized that I could further improve the work by using the already done work in ScummVM and Pentagram, that helped a bit, but the real treasure was finding the repository for Stauff's old work. Once I started from there and applied my notes, I started discovering a lot of interesting stuff.
I've been very interested in the cheat codes because for years there was a lot of misinformation on the net, especially on gamefaqs, and I couldn't get the Immortality cheat to work at all, a bit due to DOSBox catching the key combination and a bit because the information available was plainly wrong. For years I believed that the immortality cheat was a myth and didn't actually exist, but I found evidence of it in the code so I perservered.
Here's what I found:
- Immortality is real and the combination is CTRL+F10, not ALT+F10, as far as I can see there's no ALT check anywhere.
- It's still possible to trigger it in DOSBox without having to change the keybinds for the built-in command (which I still wasn't able to do anyway): just hold F10 and press CTRL next, it's that easy!
- The moment I saw the "Immortality Enabled" popup followed by "Immortality Disabled" and again "Immortality Enabled" a bunch of times it unlocked a childhood memory: I used to use the cheat back in 1996 and I distinctly remember having to toggle it a bunch of times due to this flickering effect. Amusingly the disassembly gave an explanation: the ctrl+f10 combo does not have the anti-repeat protection that other commands do so it keeps being triggered for all the frames the buttons are held down.
- -laurie says that cheats are enabled at the start of the game but doesn't actually enable cheats, however it does activate some debug features like the "F" bounding box display and a few other visualizers. Typing Jassica16 when laurie is on prints "Cheats are disabled" because the check treats the laurie status as a sort of half enabled cheats state, but the cheaty commands like F10 and immortality are still gated behind the Jassica16 cheat.
- tcrf wiki has a bunch of key combinations I'm going to thoroughly investigate, things like "~" toggle cheats, CTRL+C to show current location, Ctrl+F7 overlay. These seemingly don't do anything but they're on my target list for thorough investigation.
- Same wiki lists the "-debug" as disabled in the final game. This is false, it enables a debug visualizer for video streaming data and I'm in the middle of investigating further but from what I'm seeing there are traces of some debug output, I'll report back once I'm done investigating that.
- There's a whole debugger for usecode hidden and disabled, it contains menu with these labels: File, Run, Breakpoints, Search, and Data. Recovered entries include `Open Unit`, `View File`, `Run to cursor`, `Trace into`, `Step over`, `Run until return`, `Toggle F2`, `Break to TDP`, `Find`, `Search again`, `Go to line`, `Watch`, `Inspect`, `Change Global`, and `Quit`.
I haven't been able to access it yet, I've been trying to craft a patch script to reroute the CTRL+Q CD debug command into triggering that menu instead but I've been met with a lot of failures, but I think it's only a matter of time until I manage to access it and show everyone what it looks like. - I want to find out what the CTRL+Q CD debug actually does but haven't done a deep dive into it yet
- The game has a sort of equipment system, at first I thought it was like an RPG with slots but it actually is a way to assign things to entities they can use, like weapons, turret states, alarm hats, traps and such
Bonus: I'm working on decompiling usecode to human readable (and editable!) code, here's an example of what it looks like right now

This one is pretty funny, after some analysis it turns out that some npcs are equipped a sort of "alarm hat" that sits on their head and detects the player at eye level to trigger the alarm, I love it
CAMERACO:

The idea is to eventually end up with a script that can decompile and recompile usecode, that would basically allow for creating custom ones... aka modding!
I'd also eventually like to create a map exporter and importer but there's still so much I want to get through first
I'm going to report new findings from time to time, I feel like there's still tons of undiscovered stuff. Stauff's work was centered on getting the game to play in ScummVM but my focus is exploration and eventually modding
Last edited:
















