NPCs cut from Ultima Underworld

From Ultima Codex
Jump to navigation Jump to search


Technical Details Warning

While the encyclopedic nature of the codex means that many articles will have information that could spoil some minor aspects of the game for newer players, this article is known to contain technical information about the game, game engine, data files, logic, etc. This information is not generally useful to the typical game players.

Continue reading at your own discretion.

There are several NPCs cut from Ultima Underworld: The Stygian Abyss that were partially coded before being abandoned but not removed from the program code.

Description[edit]

The game's data files contains code for several NPCs at various levels of functionality that were never formally placed into the game. Some of these can be viewed in game through an oversight glitch in the Monster Summoning spell. Others can only be see through game hacks or deciphering and viewing the game's data files.

Viewable via Monster Summoning[edit]

There are four different incomplete NPCs that were left in the game code that were supposed to be inaccessable in normal gameplay. However, these can be summoned via the Monster Summoning spell, if the casting and mana abilities are at maximum (though it still takes some luck). This clearly an oversight by the programmers. These four NPCs have their own dialogue, some even with selectable options, and are listed below:

Mountainman[edit]

Ironwit.png

A generic mountainman using Ironwit's portrait, who does have a dialogue tree. This is the exact same dialogue as all the generic mountainmen found in level 2, all of which use the white-haired portraits.

His dialogue comes from string block 3862, which is distinct from but an exact copy of string block 3860, the conversation used by the red-haired (white in portrait) mountainmen.

Mage[edit]

Shenilor.png

A generic yellow-robed, light-skinned mage with Bronus’ portrait. Talking to him the first time, he has four different lines that are randomized. No reply is possible, and after speaking to him his status goes from "mellow" to "friendly". Talking to him again, the dialogue window stays blank and then his status changes to "upset". Summoning other mages is possible, but this one is the only one that talks.

His dialogue comes from string block 3879

Ghoul[edit]

Kneenibble.png

A generic ghoul with Kneenibble's portrait. He says the same thing every time when entering the dialogue window; and there are three dialogue options, each with a different response. He then turns hostile, although one can keep talking to him; the dialogue stays the same.

His dialogue comes from string block 3875

Dark Ghoul[edit]

Dark ghoul.png

A generic dark ghoul with a unique portrait that that is nowhere else seen in the game, as there are no dark ghouls in the game that can talk. It has nearly identical dialogue and the exact same behavior as the generic ghoul.

His dialogue comes from string block 3881

In Ultima Underworld PSX[edit]

In PSX-port of Ultima Underworld these summoned monsters were not obsevered to appear. In multiple casting from a level 20 fighter with 17 intelligence and 30 to each of magic, lore, and casting, the following generic monsters with standard conversations were observed:

  • outcast
  • gray lizardman
  • troll

It is possible that a character with higher intelligence may get different results.

Looking at the graphics, the portrait for the yellow mage was removed, so it's possible his conversation was as well. The dwarf and two ghouls still exist however. A peek at the conversation table or the strings table would give more information. Or befriending a dark ghoul.

TODO befriend the dark ghoul on level 6 and see if he has a conversation

Explaination[edit]

Who are these characters and why do they exist? First, an explaination of how characters are defined in Ultima Underworld:

A critter has an animation definition (made up of animation slots and frames, AKA sprites), a palette (the colors to draw the frames in), and a set of general attributes (vitality, armor, movement speed, etc). There are 64 critters defined in the game (critters #0..63) and the reside in the game object slots #64..127.

When a critter is instanciated in a map, it gains a few more attributes specific to it's instance. One of those is called npc_whoami, or we'll just call it the npc number. This number is in the range 0..255 and tells which name, portrait, and conversation code to use for talking with this critter.

Npc #0 is a generic critter.

  • Its name will come from it's object number in UU1 string 4-string block 4
  • Its portrait will come from FILEgenhead.gr the same as it's critter number
  • Its conversation will come from FILEcnv.ark, number 256 plus it's critter number.

Npcs #1..255 are unique characters

  • They get their name from UU1 string 7-string block 7 number 16 plus critter number
  • They get their portraits from FILEcharhead.gr, number npc number minus 1, so for example npc #11 gets charhead #10, however there are only 60 entries in that file, so npcs #1..60 get unique heads and all the rest (#60..255) default to their critter's generic head. This is why so many unique characters share portraits - they don't actually have a portrait and they are using their critter's default portrait. Note, this was changed in the PSX port, the charheads count was extended to cover all named npcs, so each one has a unique portrait.
  • Their conversation will come from FILEcnv.ark, number same as their npc number.

So what does this have to do with the summonable characters above? Quite simple, they are the generic unnamed versions of their critters. There are only two light-skinned yellow-robed mages in the game, Shenilor and Bronus, and they are both named characters, so you never seen an unnamed yellow mage. The only ghouls in the game are Eyesnack, Kneenibble, Marrowsuck, and Shanklick, there are no generic unnamed ghouls, and same goes for the dark ghouls.

Mountainmen are a little more complicated. There are two mountainman critters, one with red facial hair and one with white facial hair. For some reason the generic portraits for these critters are switched, so the red-haired critters have white-haired portraits and vise-versa. All the placed generic mountainmen are the red haired ones, and the only white haired ones are Goldthirst, Ironwit, Kallistan, and Smonden; Goldthirst having his own unique portrait and the latter three sharing the generic white-haired critter portrait, which is actually red-haired in the portrait. So the summoned mountainman is just the unseen generic version of that.

The yellow mage seems to be a cut generic character. There are empty rooms in the mage's domain on level 6, so maybe some were ment to be filled with generic mages. The mage actually has more to say than his conversation code was programmed for, it seems like it was unfinished. View his string block, he drops hints for a number of quests.

As to why the ghouls are hositle, it actually makes sense if you think about it. Obvioulsy a cut sub-plot type of thing.

TODO create an article about the cut hositle ghouls sub-plot, link it here

Viewable via Critter Files[edit]

Each Monster, NPC, and even the player is represented in the game with sprite animation set that are called "critters" by the game engine. The critter sets are defined in files in the DATA\CRIT folder. The game allows for 64 definition slots, but the files define 76 critters. Thus 12 critters are unslotted and never appear in the game. Also, of the 64 slots, one is for the player character, which is never seen in game anyway. So there are 13 critters that are never seen in game.

More details in the article: Critters Not Seen in Ultima Underworld

Adventurer[edit]

UW1.critter.63.gif

Critter slot #63 is the adventurer class character. The player, regardless of chosen profession or gender, is assigned this class. There are no other adventurer class characters in the game, but there are several remains of them. This critter is never seen in game because there are no mirrors or third person cutscenes, and even casting the Roaming Sight spell doesn't show the player's character. It is however identical to the critter used for the outcast class characters, so it is not unfamiliar.

Brown Bat[edit]

UW1.critter.64.gif

Another variant on the bat.

Void Shadows[edit]

UW1.critter.65.gif

Void creatures are a little different, as several different animations are stored in a single critter slot. This was probably done to conserve critter slots. And this critter is the all blacked-out versions of the void creatures.

Mountainman[edit]

UW1.critter.66.gif

A mountainman with a red helmet and brown beard.

Blonde Fighter/Bandit[edit]

UW1.critter.67.gif

A light skinned blonde with green sleeves, brown pants, and red boots. This could have been another fighter, bandit, or even a female outcast.

Female Mage in Yellow Robe[edit]

UW1.critter.68.gif

It's a shame that not more of these were used. The game has six male mage critters but only one female.

Female Mage in Red Robe[edit]

UW1.critter.69.gif

She has gray hair, it could have been Judy

Female Mage in Green Robe[edit]

UW1.critter.70.gif

And why not the green one? All other mages are red, yellow, and blue. Would have been nice to see one more color.

Water Elemental[edit]

UW1.critter.71.gif

This could have been a fun one for variety, but I suppose it takes away from the volcano motif.

Uw1.waterelementals.png

(image above) What the water elements could have looked like in-game. Kinda hard to see on the water, being the same colors. Easier to see against a wall or other background.

Light Beast[edit]

UW1.critter.72.gif

This one is really unnecessary. There are so few shadow beasts in the game, there was no reason to need variants.

Uw1.lightbeasts.png

(image above) What the light beasts would have looked like in game.

Male Mage in Blue Robes[edit]

UW1.critter.73.gif

Good cut, there are enough male mages (and honestly just males in general) in the game.

Male Mage in Yellow Robes[edit]

UW1.critter.74.gif

There is already a yellow robed male mage, this one is just dark skinned.

Male Mage with Staff in Red Robes[edit]

UW1.critter.75.gif

It's possible that this was going to be Tyball's critter until he got his own unique one.

Viewable via String Blocks[edit]

Each talkable NPC in the game has a conversation code, and each of those codes draw text from a string block. Most string blocks are attached to in game NPCs but some are unused. Not counting the string blocks used by the summonable monsters listed above, here are some of the unused string blocks:

Thorlson[edit]

Alttext:Uw1.Thorlson.png

His dialogue comes from string block 3595

Apparently some aging warrior, he requests the Avatar slay him in battle so that he can die honorably.

Not to be confused with Thulsoom th Mad, whose grave is found on the seventh level.

His portrait looks very similar to the generic portrait for critter #40 (used by Cardon, Bolinard, and Carasso) but it is distinct and not seen on any other character.

Celaven[edit]

Alttext:Uw1.Celaven.png

His dialogue comes from string block 3610

He is looking for a particular wand.

Janus[edit]

This character exists in name only. The name is in block 7 string 107. The associated conversation would be #91 but that block is empty.

Crazy Bob[edit]

His dialogue comes from string block 3699

Seems to be a character created to test and debug the bartering system

Folina[edit]

Her dialogue comes from string block 3770

She may be the one who lost the ring of levitation that is found on level 7. She will take the dragonskin boots if given, and is in no hurry to give them back.

Note this character is presumed to be female based on the feminine sounding name however there is not solid evidence of either gender.