Gates of Delirium In-Game Cheat Module
v2.2 by John Riddle

Gates of Delirium is a real-time RPG for the Coco 2 and 3, somewhat similar to Ultima III.  It was developed by Diecom Products.

The game is very difficult to progress through, and saving, rebooting and reloading is frequently required.  Unfortunately, the game forces a reboot whenever all members of your party die, so this ends up wasting a lot of time.

This module allows modification of all of the parameters of the characters in your party, and also quantities of inventory items.  

It also provides a better, easier to interpret, and faster display of character parameters.  

Usage:  
The module has been applied to a copy of Gates of Delirium with the protection removed.  

This version of the game will only work on the Coco 3.  In order to have room for the integrated cheat system, I had to use one of the upper memory banks of the Coco 3.  There wasn’t enough room in the standard 64k area.  

To load the game, run"gates"

Once playing, press the ! key to bring up the cheat menu.  The screen will switch from the 256X192 graphics screen to a text screen, with a menu.  

You can select from the following:

Modify character (1-8)
Add (G)em, (H)orn, (T)orch, (K)ey
        (F)ood, G(O)ld, G(A)te Key

Press ! to return to the game.

Selecting an inventory item will prompt for an amount.  A dialog will appear asking for a number.  All entries must be made in hexadecimal.  If the value range is 0-255, you can only enter 00-FF.  If the value range is 0-65535, you can enter up to four hex digits.  In this case, you must enter preceding zeros if the value you want to enter is shorter than four hex digits.  

Select 1-8, and a second screen will display all character parameters (strength, magic points, weapon readied, etc) for the character number selected.  You can't select a character if they're not in your party.  Use the arrow keys to move from parameter to parameter.  The current selection will be displayed in lowercase.  Press enter to modify a parameter.  Input values as described above.  After you have input the value, the screen will be updated with the new information.  See below for information on values for particular parameters.
Press ! to return to the main menu.

Note that the game itself displays information in decimal.  The hexadecimal inputs in the cheat system will not appear the same in the actual game.  In some instances, the game will not be able to correctly display the number.  The internal value will be correct, but the displayed value will be strange looking.

Technical Notes:
The game has been modified to intercept the key entry routine, and check for a ! keypress.  Once this is detected, interrupts are disabled, a UMB is mapped, the contents between 400 and 5FF are copied to an unused memory location, and the system is set to display the text screen.

When making modifications to character traits or inventory, all the cheat system does is update the memory location used by the game for that particular function.

When exiting the engine, the system is set to display the 256X192 graphics screen, 400-5FF are restored, memory map is restored, and interrupts are re-enabled.

Character Parameters:

SEX: 00-Male, 01-Female
RACE: 00-Dwarf, 01-Elf, 02-Human, 03-Gnome, 04-Orc
TYPE: 00-Cleric, 01-Druid, 02-Fighter, 03-Paladin, 04-Ranger, 05-Magicuser, 06-Illusionist, 07-Thief
STATUS: 00-Good, 01-Poisioned, 02-V (???), 03-Dead

Strength, Dexterity, Intelligence, Wisdom: all allow 00-FF.
Hit Points, Max Hit Points, Experience: all allow 00-FFFF.

Weapon: 00=Hands,01=Dagger,02=Hammer,03=Sling,04=Axe,05=Bow, 06=Sword,07=2h Sword,08=+2 Axe, 09=+2 Bow, 0A=+4 Bow, 0B=+4 Sword

Armour: 00=Skin,01=Cloth,02=Leather,03=Ring,04=Scale,05=Chain,06=Banded,07=Plate,08=+2 Plate

Play Order: 
00-07 (Max number of party members is 8).

Gem, Torch, Key, Horn, Gate Key: all allow 00-FF.
Food, Gold: both allow 00-FFFF.

Entering values outside of the specified ranges above usually seems to result in the game interpreting it as 00, but results could be unpredictable.

Obviously, the cheat system allows override of the limitations the game imposes on the types of weapons and armour that different types of characters can use.  For example, the game won’t allow you to arm an illusionist with a bow, but you can easily do this with the cheat system.

Note that the game display will usually not update the character stat section in the upper right corner of the screen until you (Z)ats or enter combat.