|
|
To do:
|
Crusader: No Remorse is an isometric action shooter with tank controls taking place in a future dystopia. The protagonist "The Silencer" is a defector from the World Economic Consortium (WEC) who decided to join the rebellion after his squad got annihilated by a mech for refusing to fire on civilians.
The game is built on the same engine from Ultima VIII: Pagan with many upgrades, it features full motion video cutscenes and music playback was done through MOD trackers instead of classical MIDI.
Cheat Mode#
Either start the game with parameter -laurie to enter the soft cheat mode or during gameplay enter JASSICA16 to enable the full cheat mode. The following cheats will be at your disposal:
Key(s) |
Action |
Availability |
|---|---|---|
~ |
Toggle cheats between the Soft and Full state. Only if jassica16 was entered previously or the game was started with -laurie |
Soft |
Ctrl + F10 |
Toggle immortality for the currently controlled player or NPC. In DOSBox press F10 first and then Ctrl to avoid triggering the built-in mouse capture command. |
Full |
F10 |
Get all weapons and items, plus recharge the energy. Resurrects the silencer from most death states except for drowning in acid and falling off pits. |
Full |
Ctrl + L |
Show current coordinates. |
Always |
Ctrl + Q |
CD transfer display toggle. |
Soft |
Ctrl + V |
Display internal stats (version number, memory stats, etc.) |
Always |
F7 |
Draws coarse "3 x 3" camera-aligned world-cell grid. |
Soft |
Alt + F7 |
Draws a snap/trigger coverage overlay grid. |
Soft |
Ctrl + F7 |
Draws egg-hatcher trigger diamonds. Visualizes live Egg hatcher processes. DOSBox AVI capture keybinding might prevent the command from activating. |
Soft |
F |
See object framework. |
Soft |
H |
Toggle the Hack Mover; Move objects around by |
Soft |
Various notes#
Immortality is toggled for the currently controlled NPC, this means you could potentially make a mech immortal and it will remain in that state even after relinquishing control.
Immortality divides damage by 262,144. It doesn't entirely negate damage but it would take a very long time to deplete health like this.
Entering teleporters and elevators disables immortality and it needs to be reapplied. This is because the state is not automatically restored in the entity initializer.
The immortality message does not have the input buffering guards that other commands have, this means that it will keep toggling itself on and off multiple times in a row depending on how long the buttons have been pressed.
Egg Hatch/Unhatch Grid#
"Egg" is what the game engine calls triggers and hatching is the action of entering a trigger and unhatching is action of exiting a trigger.
The Ctrl + F7 grid if enabled will show these triggers as white outlines.
Snap/trigger coverage Grid#
The camera snaps automatically to predefined points defined by invisible markers placed in the map. This grid, when enabled with Alt + F7, shows the areas covered by these objects. When the Silencer walks into a new area the camera will snap to its center.
Command Line Arguments#
When booting up the game at the command prompt, you can use these command line arguments to enable a variety of effects.
Argument |
Description |
|---|---|
-? |
Prints "You DO need help!" to the console and doesn't do anything else |
-debug |
Enables AVI debug overlay and prints debug strings to STDOUT |
-setver |
Overrides the version strings |
-asylum |
Prints "Enabling ENHANCED mode. (NOT!)" and doesn't do anything else |
-warp |
Warps to the specified mission number. It accepts optional x y z parameters to place the silenter at the specified location. The coordinates are ignored if -egg is specified. Valid mission numbers go from 1 to 15, 0 is accepted for the map offset function |
-mapoff |
Adds the specified map offset to the warp command. For instance -warp 0 -map0ff 40 would load map 40. This allows loading into any map in the game. Has no effect if -warp is not used |
-egg |
Sets the destination egg override used by the warp command. "egg" is what the engine calls marker objects that serve various functions, in this case only "Teleport Destination" eggs are taken into consideration. When the value is nonnegative, it takes precedence over the direct-coordinate teleport command. Usually 250 leads to the weapons room, a normally unused room present in every level containing weapons and a teleporter that leads to the beginning of the level |
-laurie |
Enables Soft cheat mode. Debug visualizers like F7, Ctrl + F7, Alt + F7, F and Ctrl + Q become available. It becomes possible to press ~ to enable Full cheat mode. |
-u |
Usecode override. It expects a DOS path to a folder (8 character limit for names) containing the replacement usecode named EUSECODE.FLX like the original. The game will load the new usecode in place of the original. |
-demo |
Enables Demo Mode, changes the way the intro movie is played |
Debug Command#
When starting the game with the "-debug" command parameter the text "Debugging mode ON." will be printed before the game starts.
This primarily enables a debug overlay that shows AVI/video timing state. It is visualized as a series of dots and lines at the bottom of played video content.
The secondary effect is the output of some debug strings to the stdout stream, the main reason it is easy to miss is that Crusader spends most of its runtime in graphics mode, hiding the debug text except for the startup and shutdown sequences.
Examples of lines that may be output:
- COULD NOT CREATE GLOB ITEM!
- dl init
Unused Items#
These items appear in unused maps, like map 246. Appear as flashing red squares, can be picked up and show their name. These appear in the inventory but using them doesn't do anything
Name |
Shape ID |
Comment |
Sprite |
|---|---|---|---|
Concussion Grenade |
0x034E |
Shape 0 is a red flashing square and is found in unused map 246, shape 1 contains the actual sprite |
|
Nerve Gas Grenade |
0x034F |
Shape 0 is a red flashing square and is found in unused map 246, shape 1 contains the actual sprite |
|
EMP Grenade |
0x350 |
Shape 0 is a red flashing square and is found in unused map 246, shape 1 contains the actual sprite |
|
Alarm Card candidate 1 |
0X548 |
Can be picked up only with G, the name reads as "Invalid" and uses the medkit sprite |
|
Alarm Card candidate 2 |
0X548 |
Cannot be picked up |
Notes on the alarm card
The Prima Guide reads:
Alarm Card First Mission Available -na-
Description. A simple derivative of the magnetic stripe card, alarm cards are used to deactivate tripped alarm systems. The user simply inserts the card into an alarm slot to deactivate the security computer in that area. Most WEC guards carry them to deactivate security once an area is cleared of trespassers, so it might be wise to search any dead guards you find. Note that your friend Weasel doesn't deal in security articles.
Unused Maps#
Map IDs go from 1 to 255 but not all slots are filled with maps.
This table is used internally by the game when the -warp command is used to determine which map to send the player to. It is useful to understand which maps are unused in the final game.
Mission |
Map |
|---|---|
1 |
1 |
2 |
3 |
3 |
5 |
4 |
7 |
5 |
9 |
6 |
11 |
7 |
13 |
8 |
15 |
9 |
17 |
10 |
19 |
11 |
21 |
12 |
23 |
13 |
25 |
14 |
27 |
15 |
29 |
16 |
40 |
Here's a work in progress list of unused maps:
Map ID |
Description |
Warp Command |
Image |
|---|---|---|---|
4 |
Unused unfinished early copy of Mission 2 (map 3), the melty teleporter area is completely missing, some rooms have geometry but are missing props. The teleporter to the prison area is missing and the prison area (egg 32) is very unfinished. |
-warp 0 -mapoff 4 -egg 13 |
|
6 |
An early unused copy of map 5 from mission 3, mostly playable and with npcs but some areas are unfinished. At coordinates "-warp 0 20335 11039 0 -mapoff 6" a secret room contains leftover unused grenades pickups. Use the hack mover to move the ceilings out of the way. In the final version of the map the loose items on the ground have been replaced by chests. |
-warp 0 -mapoff 6 -egg 30 |
![]() |
8 |
Unused office map with only the layout and some pieces of furniture |
-warp 0 15103 17407 0 -mapoff 8 |
|
22 |
Unused map that contains many shapes of the Silencer in various poses |
-warp 0 8447 2303 0 -mapoff 22 |
|
24 |
Unused map containing three separate unfinished parts of office levels, the central one seems to be a test of various features like buttons, turrets, prisms. The west section contans a pretty well developed copy of one of the office levels but still with unfinished areas. The eastern section contains a small section copy of a Lab level. |
-warp 0 18175 7423 0 -mapoff 24 |
![]() |
33 |
This map is a MASSIVE series of square rooms using the tileset from the last level. The geometry doesn't make any sense and the game tends to freeze when moving around the map. Spaceships are randomly parked through the map. Teleport eggs from 0 to 13 can be used with the -egg argument to explore some parts of it |
-warp 0 6527 17407 96 -mapoff 33 |
|
34 |
Very small map with only three Thermatron spawners |
-warp 0 16127 25599 0 -mapoff 34 |
|
41 |
While this map is used in the game as the rebel base after the slaughter, there is an unused empty "weapons room" at the far north. Since it's not normally possible to use the regular -warp command to reach this map and it has no teleport destination eggs, the weapon room goes unused. |
-warp 0 1166 1166 0 -mapoff 41 |
|
47 |
Unused and unfinished map using the lab tileset. Has many empty corridors and rooms, some don't even have walls. Barely any NPCs, a Colonel Ely stands in a corner halfway up the wall at -warp 0 11007 7935 0 -mapoff 47 and cannot be interacted with. Buttons do not work, there are elevators scattered around with properly set up Eggs but they cannot be opened or used. A disconnected square room to the west holds a few NPC spawn eggs and numbers placed in the editor. |
-warp 0 16127 8447 0 -mapoff 47 |
|
55 |
Unused version of Map 9 (Mission 5) in advanced state of development. During gameplay exhibits several graphical glitches and feels generally unrefined compared to the final version. |
-warp 0 -mapoff 55 -egg 30 |
|
56 |
Another unused early copy of map 9 and 5 at a different stage of development |
-warp 0 -mapoff 56 -egg 30 |
|
60 |
This unused map is a copy of map 1 very close to the final version, however there is no teleport destination egg for the start of the map, instead the computer room where you can take control of a mech hosts a setup for promotional screenshots. Shapes have been manually placed in the room to show the Thermathron shooting guards. The explosions are static and one of the corpses is placed at height 29 instead of on the floor. These enemies that are being shown are not supposed to appear until later in the game. The room with the developers photo is present. The weapons room (accessible with -warp 0 1535 1279 0 -mapoff 60) looks completely different, it hosts two teleporters, one of which leads to the rebel base while the other plays the teleport animation but returns the Silencer immediately back to the teleporter platform and shows the message "No destination for this egg!" with a flashing font on the top left of the screen. The room contains switches that sound the alarm and other switches that test various traps. There are also two NPCs with their AI disabled but who still play their hurt sound and die when shot enough times |
-warp 0 28415 24831 0 -mapoff 60 |
![]() |
189 |
Unused and mostly empty map. Only contains a wall turret at the north edge and a collection of about 19 invisible glob eggs. The floor is covered by black surfaces. |
-warp 0 29695 29695 0 -mapoff 189 |
|
216 |
Unused map containing only a large checkered surface and nothing else |
-warp 0 15103 13823 0 -mapoff 216 |
|
224 |
Unused and unfinished map containing various unconnected areas |
-warp 0 -mapoff 224 -egg 2 |
|
224 |
A copy of E---'s secret room |
-warp 0 -mapoff 224 -egg 3 |
|
224 |
A mid-sized room with three floor bot NPCs roaming around and a terminal that toggles an elevator |
-warp 0 25087 28671 0 -mapoff 224 |
|
237 |
Unused map with an office tileset and empty rooms with sparse furniture |
-warp 0 18431 10495 0 -mapoff 237 |
|
239 |
Old unfinished copy of a map. Has the general layout but no NPCS or items |
-warp 0 18175 28415 0 -mapoff 239 |
|
243 |
Unused map to test conveyors belts and automations. Contains several conveyor belts activated by switches, walls that open when the player is near and elevators. Has a series of unconnected rooms that test other things. |
-warp 0 17919 15615 0 -mapoff 243 |
|
244 |
Very empty unused maps. There are no floors so the rendering will repeat the last buffered sprites. South west corner has a few tubes, north side has a few silencer shapes and an egg of current unknown purpose. The east side has a lone spaceship wall shape |
-warp 0 0 0 33 -mapoff 244 |
|
246 |
Unused map with various items and NPCs. Notably, it contains some unused items like EMP grenades and Nerve Gas grenades. They show up as flashing red squares and can be picked up, showing an icon and a description. Using the items doesn't produce any effect and consumes the object. |
-warp 0 14079 14335 0 -mapoff 246 |
|
248 |
Early version of Mission 1 but newer than 249. Contains the unused Observer NPC. Over the first acid bridge enemies are extremely aggressive and spam grenades, every tile of the bridge can fall off leading to death. The map contains some unfinished unconnected areas, one of these has an elevator that leads to another unused map |
-warp 0 -mapoff 248 -egg 30 |
![]() |
249 |
Very early version of Mission 1, most doors and switches are nonfunctional. The first bridge over acid doesn't have a floor and requires hack mover to get past it, elevators do not work. |
-warp 0 -mapoff 249 -egg 1 |
![]() |
251 |
Unused room containing various stacked boxes and arrangement of barrels, contains some roaming NPCs |
-warp 0 14335 15615 0 -mapoff 251 |
|
252 |
Unused map. The southwest corner has a few structures with various tilesets and multiple copies of the nerve gas tank. The west side has a checkered floor with a single office worker NPC spawner. East side has another nerve gas tank with a floating wall turret in front. The north edge has office walls with overhangs and a few office doors. The rest of the map is completely empty. There are no teleport destination eggs. |
-warp 0 15855 15359 0 -mapoff 252 |
|
253 |
Unused, almost completely empty map without a single floor. Has one wall shape to the north and two egg spawners at the south that spawn regular guards. There are no teleport destination eggs. |
-warp 0 15967 22111 0 -mapoff 253 |
|
255 |
Unused map with various items and shapes. Contains six posters of the developer Jely, many stacked explosive barrels and a set of stairs that can disappear when a switch is toggled |
-warp 0 30975 29951 0 -mapoff 255 |
|
254 |
Unused map containing various structures with no clear purpose, various frames from door animations, tests for the spaceship tileset. |
-warp 0 16127 15103 0 -mapoff 254 |
Unused Enemies#
Observer
Appears in the enemies table with ID 6, uses shape 033C. Some of its sprites are blank and as a result if spawned it appears as a flashing red square until it turns into a direction it has a sprite for. It tries to move towards the player but sometimes it stays stuck and won't move, when killed it plays the death sound of a human enemy.
There are spawners for it in all maps but they are set to not spawn automatically and are never spawned. Unused map 248 has spawning Observers because it was forked before it was disabled in all the playable maps
FMV Test UI#
The usecode for the game contains a leftover feature used for testing FMV, internally labeled as "FLICTEST". It can be enabled by editing the file USECODE/EUSECODE.FLX with a hex editor at offset 0x1FF55 and changing the byte from 17 to 20.
After using the Datalink, the player will be presented with a number keypad UI where numbers can be inserted to play the corresponding movie.
Orphaned Usecode Debugger#
The game contains a debugger menu that was disabled in the retail build but still contains code within the executable.
Address |
Symbol |
Role |
|---|---|---|
`13a0:0086` |
`usecode_debugger_open_for_current_unit` |
Builds the seg109 debugger gump in current-unit mode, derives a usecode path from the live runtime context (`0x659c/0x659e`), loads that file, centers the current line, and then runs a modal UI loop. |
`13a0:020d` |
`usecode_debugger_open_modal` |
Smaller generic modal wrapper for the same debugger gump; it skips current-unit preload and simply opens the modal UI. |
`13a0:19b1` |
`usecode_debugger_gump_create` |
Allocates the root debugger gump, builds the menu bar and panes, initializes watch state, resolves the base `usecode` path, and registers the shared debugger/control event bundle including `0x23f`, `0x410`, `0x411`, and `0x441`. |
`13a0:1df3` |
`usecode_debugger_handle_event` |
Main debugger event dispatcher. Recovered cases are debugger-style commands: open unit/file, go to line, watch, inspect, clear watches, change global, find/search again, and break to TDP. Incoming event `0x410` is remapped to local state `0x0e`. |
`13a0:2882` |
`usecode_debugger_build_menubar` |
Builds the hidden debugger menu bar with File, Run, Breakpoints, Search, and Data menus plus entries such as `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`. |
Programmer Credits#
In crusader.exe, there are a couple of internal credits from system programmer Tony Zurovec.
E4C34:
< Kernel Ver. 2.00 - July 8, 1995 - Tony Zurovec >
E52A7:
CRUSADER MMU V1.1 - Sep. 4, 1995 - Tony Zurovec
Regional Differences#
The German version was quite censored. Among other changes:
- Blood was removed.
- Some of the more graphic death animations were softened.
- Players cannot set corpses on fire.
(Source: Schnittberitche)
The Spanish version is uncut like the English version, but for some reason, none of the JASSICA16 cheats seem to work in this version.
The code responsible for checking for the cheat code sequence has been completely removed. While the -laurie parameter still works there's no way to enter the full cheat mode as the handler for the ~ button has been removed too. Only minor debug functions like the bounding boxes visualizer with F and the F7 grids remain accessible. Hack Mover code is still present but is effectively orphaned as there's no way to access it.




