Hidden Treasures in the King's Quest VII Resource Files (Demos)

2-8-24: With the increasing number of material from the KQ7 demos that's getting uncovered, I decided to put all the demo material on its own page rather than cluttering up the first one.


King's Quest VII Non-Playable Demo:

This isn't an oddity from the KQ7 resource files, but from the KQ7 non-interactive demo. This demo came with the 15th Anniversary KQ Collection and includes various scenes from the game and clips of Valanice interacting with various creatures in the desert.

***

One of the first scenes shows Valanice freeing her dress from the cactus* and watching the kangaroo rat and the jackalope bound by. The kangaroo rat's animation looks completely different than it does in the final game; his glasses are missing and he is much larger and paler. Here's a large GIF showing him hopping by, which also shows the demo's incredibly unattractive menu bar. Oddly, the animation of him hopping by that appears in the final game also appears in the KQ7 demo's resource files.

*Oddly, her hair is several shades lighter while she's doing this.

***

Even though this demo only shows a few scenes from the game (most of them of Valanice in the desert), it contains a number of scripts from the final game, many of them with programmers' notes which aren't present in the final game.


Pic 1450: This background was modified a fair bit for the release version. The front entrance was shortened, while the scorpion chamber was enlarged, necessitating the removal of some of the side wall and one of the stone sculptures on the floor. Probably necessary to accommodate the size of the scorpion sprite. The color balance is also different, with the desert glow being more yellow than orange. (Torin's Passage contains a much larger version of the demo background, which I've already posted elsewhere.) (contributed by Semi-Happy Partygoer, added 2-6-24)


Animation comparing this version to the final one:

***

Script 0: This script includes a gruesomely detailed description of one of the final game's deaths. (added 2-2-23)

code_0d45: dup
lavaDeathTimer::cue:
push1
lofsa string_05ba ; "You took too long and the lava fills the tunnels... you flesh melts off of your skeleton."
push
calle export64921_0, $2
push1
pushi $f7 ; 247, owner
calle export011_1, $2
push2
push0
lsg global[$2]
calle export011_5, $4
ret

***

Script 11: "You have died, do you want to live?" (added 2-2-23)

code_0d45: dup
code_037a: dup
ldi $3 ; z
eq?
bnt code_03c0
pushi $1a0 ; 416, addText
push1
lofsa string_006c ; "You have died, do you want to live?"
push
pushi $1ab ; 427, addButton
pushi $4 ; scaleX
push1
lofsa string_0090 ; "YES"
push
pushi $5 ; scaleY
pushi $f ; 15, loop
pushi $1ab ; 427, addButton
pushi $4 ; scaleX
push0
lofsa string_0094 ; "NO"
push
pushi $1e ; 30, brRight
pushi $f ; 15, loop
pushi $93 ; 147, init
push0
class Print
send $22
bnt code_03ba
pushi $b7 ; 183, cue
push0
self $4
jmp code_03ff

***

Script 13: This script deals with interactions with inventory items. Presumably, this is the code associated with Valanice drinking the fresh water, and I was pleasantly surprised to discover this reference to King's Quest V. (added 2-2-23)

code_0d45: dup
code_0369: dup
ldi $1c ; 28, brLeft
eq?
bnt code_03ce
pushi $201 ; 513, put
push1
pushi $10 ; 16, cel
pushi $200 ; 512, get
push1
push2
lag global[$0]
send $c
lsg global[$b]
ldi $5dc ; 1500, BAD SELECTOR
eq?
bnt code_0422
push1
pushi $2f ; 47, '/', mark
calle export011_1, $2
pushi $36 ; 54, '6', client
push1
push0
pushi $5c ; 92, '\', delete
push0
pushi $94 ; 148, dispose
push0
push2
push0
pushi $7 ; priority
callk ScriptID, $4
send $e
push1
lofsa string_01e8 ; "Ah water... nectar of the gods. Oh... wrong game."
push
calle export64921_0, $2
pushi $ed ; 237, setReal
push2
push2
push0
pushi $7 ; priority
callk ScriptID, $4
push
pushi $78 ; 120, 'x', struct
push2
push0
pushi $7 ; priority
callk ScriptID, $4
send $8
jmp code_0422

***

Script 1100: The normally courteous kangaroo rat apparently has a saltier side. (added 2-2-23)

code_0d45: dup
code_0df0: dup
ldi $f ; 15, loop
eq?
bnt code_0e4a
push1
pushi $e ; 14, view
calle export011_0, $2
bnt code_0e17
push1
lofsa string_0858 ; "RAT: I dont need no stinking seed no more."
push
calle export64921_0, $2
pushi $94 ; 148, dispose
push0
self $4
jmp code_0f25

***

Script 1250: Excerpts from the desert screen where the game begins. Were the salt crystals originally more difficult to acquire? (added 2-2-23)

code_0d45: dup
lookAtCrystal::changeState:
lap param[$1]
aTop state
push
dup
ldi $0
eq?
bnt code_1252
push1
pushi $23 ; 35, '#', text
calle export011_0, $2
bnt code_1236
push1
lofsa string_0a42 ; "You try to pry the crystals but no dice."
push
calle export64921_0, $2
ldi $1
aTop cycles
jmp code_125f

[...]

getTheCrystal::changeState:
lap param[$1]
aTop state
push
dup
ldi $0
eq?
bnt code_127f
push1
lofsa string_0a79 ; "You kneel down a pry loose a salt crystal."
push
calle export64921_0, $2
ldi $1
aTop cycles
jmp code_12a2

***

Script 1450: Script from inside the temple, probably connected to the scorpion (even though this is a non-playable demo, so there's no way this code could be triggered). (added 2-2-23)

code_0d45: dup
code_0a09: push1
lofsa string_0484 ; "Bad move, you would die in the shipping version."
push
calle export64921_0, $2
ldi $1
ret


King's Quest VII Playable Demo:

Alistair (creator of Sierra Music Central) informed me that there is a playable demo of King's Quest VII that starts at the beginning of Chapter 2 and ends when Rosella is locked in her room by Malicia. Even though this is just a demo, it contains virtually all of the full game's resources, including a few extra animations and placeholder art that don't appear in the files of the full game. (added 12-23-19)

Pic 1101: The footprints in this background have been redrawn as the lizard tracks, but the extra spikes and leaves have yet to be added to the cactus that Valanice gets the prickly pear from. (contributed by Semi-Happy Partygoer, added 2-6-24)


***

Pic 4100: The complete side-scrolling version of the cemetery leading to Dr. Cadaver's house. Note the snout on the headstone facing the path that was later painted out. The tomb door is also part of the background in this version; it was added in via animation in the actual game. Present in the playable demo and early version resources, but this file was removed from Version 2. (contributed by Semi-Happy Partygoer, added 2-6-24)


***

Pic 5301: There's a Falderal background in the final version's resource files where the doors are smaller and a spire on the wall is red instead of white. In this background in the demo's files, the doors have been enlarged, but the spire outside is still red. (contributed by Semi-Happy Partygoer, added 2-6-24)


***

240, loop 0: The sacred nectar is noticeably more green here. (contributed by Semi-Happy Partygoer, added 2-6-24)


Final version, for comparison:

***

View 249: This is the same view used for the inventory closeup of the gravedigger's horn in the final game. This version of the horn is much more generic (however, View 277 contains the final version of the horn in the demo as well as the final game). There are icons and cursors using this version of the horn as well. Interestingly, this horn is called "Gravedigger's Horn" in the demo's scripts, while the other item is named "Screaming Horn." (added 2-1-23)


***

View 253, loops 0-1: Rough render of the magic wand. The T and F effects haven't been added to most frames yet. The text is also black instead of yellow. (contributed by Semi-Happy Partygoer, added 2-6-24)


Final versions:

***

836, loop 0: Yet ANOTHER variation of Rosella's walk cycle from the playable demo. This loop is close to her in-game appearance, but is slightly shorter, she bobs up and down more, and it runs for 13 frames instead of the usual 9, giving the appearance she's walking more slowly. (contributed by Semi-Happy Partygoer, added 2-6-24)

Demo version:
Final version:

***

View 836, loop 4: This is Rosella's original front-diagonal cycle, as seen in 0.v56, but this version is more complete, with her proper white collar and shadow color added. (contributed by Semi-Happy Partygoer, added 2-6-24)

***

View 900: Four walk cycles of Roger from Space Quest 6 with a wild color palette (and yes, this is the embedded palette -- none of the other palettes look much better). Even if the colors were correct, there are several differences between these animations and the walk cycles from SQ6 (as well as the SQ6 demo) -- Roger swings his arms more confidently, shuffles his feet less, and his shirt is tucked in. Apparently these animations also exist in the full version of KQ7, but only the Windows version. (found by Geoff, added 2-1-23)


***

View 982: The playable demo's game over screen is a bit more blunt about your fate. (contributed by SemiHappyPartgoer, added 2-6-24)


***

Pic 2602: The demo version of this screen features an additional purple crystal that was painted out of the final game (one that Rosella otherwise would've backed into when the dragon shooed her away). Also, the compression is different. The final version has more error diffusion compared to the demo one, which has more banding. Note that the left half of this screen, 2601, was NOT modified between releases. (contributed by Semi-Happy Partygoer, added 2-6-24)


Animation comparing this version to the final one:

***

View 916: This appears to be an early, lo-res version of the game's settings menu. The "Hot Spots" button may have been for determining whether the cursor highlighted when over active hotspots or not. Sorry about the garish coloring, but believe it or not, this palette was the least hard on the eyes out of all the ones available for this image.


***

View 2054, Loop 0: In the final game, this loop is empty, but in the demo, it includes this animation of Rosella slamming the spoon mold down on a hard surface. (added 2-1-23)

This excerpt from Script 2050 (the room where the mold is) comfirms that she is banging it on the anvil, but I wasn't able to get this animation to play in the demo:
code_0d45: dup
anvil::doVerb:
lsp param[$1]
ldi $8 ; fixPriority
eq?
bnt code_298a
pushi $34 ; 52, '4', number
push1
pushi $809 ; 2057, BAD SELECTOR
pushi $f ; 15, loop
push1
push1
pushi $33 ; 51, '3', play
push0
lag global[$67]
send $10
push1
lofsa string_0e97 ; "Rose bangs the mold on the anvil a few times. Nothing happens."
push
calle export64921_0, $2
code_298a: ret

***

View 2200: This view contains placeholders for characters that appear in the finale in the Volcano Control Room. There are two graphics for Edgar, as well as sprites for what I can only assume are normal Cuddles and baby Cuddles.


***

View 2600: A cute placeholder sprite for the crystal dragon. (added 2-1-23)


***

View 3200: Placeholder text and art for the tree Ceres is transformed into and the spike driven into her. (added 2-1-23)


***

View 4402: This is the animation that plays when Rosella walks over the grave whose epitaph warns the reader not to walk over. However, unlike in the final game, after she is initially pulled under, she pops back up and claws at the ground. (added 2-1-23)


***

View 41100: The top of Count Tsepish's coffin. The stone dog in the final version has a much blunter snout and shorter ears (and is clearly meant to be a depiction of the Count's dog, Black Valiant). (added 2-1-23)


***

View 5339: This animation shows Valanice opening a small door (which appears only as an outline) and crawling through a narrow passage. This has to be the original doorway leading out of Falderal (in Pic 5300), which was resized for the full game so that Valanice and Rosella only have to crouch slightly to get through it.


***

View 6000: These are placeholders for the characters that appear at the top of the Mountain of the Winds. The stick figure on the horse could be either Valanice riding Sirocco or Edgar riding Necromancer.

***

View 6800: These are placeholder images for Edgar and Rosella in their final scene together. Edgar's name is misspelled not only here, but in other parts of the script as well. What can I say; nobody's perfect.


***

View 6900: This view is associated with the scene from the unused ending where Graham appears and tells Rosella and Valanice that they're late for lunch. It contains placeholder graphics for Valanice, Rosella (who appears twice in two different colors for some reason) and Graham (who it seems is never without his hat, even in stick figure form).


***

Script 1250: Some script associated with the large statue in the desert: (added 2-2-23)

code_0d45: dup
code_3e94: push1
lofsa string_1529 ; "Don' have no H2O two oh the h, man."
push
calle export64921_0, $2
jmp code_3ec8

***

Script 2200: This script contains most of the code for the finale in the Volcano Control Room, as well as a few occasionally derisive notes made by the programmers that aren't present in the scripts in the full game:

When the volcano's eruption has been stopped:

code_0d45: dup
ldi $3 ; z
eq?
bnt code_0d6d
push1
lofsa string_0c14 ; "The volcano gagues start to subside so you and the troll king laugh wildly."
push
calle export64921_0, $2
push1
lofsa string_0c60 ; "Its begining to look like you wont fry after all."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_1606
After reviving Edgar:
giveEdLife::changeState:
lap param[$1]
aTop state
push
dup
ldi $0
eq?
bnt code_1665
pushi $21a ; 538, handsOff
push0
lag global[$1]
send $4
pushi $36 ; 54, '6', client
push1
push0 pushi $5c ; 92, '\', delete
push0
pushi $94 ; 148, dispose
push0
lofsa edgerLifeTimer
send $e
push1
pushi $fc ; 252, mute
calle export011_1, $2
push1
lofsa string_0c9e ; "Ya hoo."
push
calle export64921_0, $2
push1
lofsa string_0ca6 ; "Yee ha."
push
calle export64921_0, $2
push1
lofsa string_0cae ; "Edger is alive."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_16e8

code_1665: dup
ldi $1
eq?
bnt code_1696
pushi $93 ; 147, init
push0
lofsa oberon
send $4
pushi $93 ; 147, init
push0
lofsa titania
send $4
push1
lofsa string_0cbe ; "Oberon and Titania show up."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_16e8

code_1696: dup
ldi $2
eq?
bnt code_16b2
push1
lofsa string_0cda ; "Everybody is all giddy and Titania picks up the baby Malicia."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_16e8

code_16b2: dup
ldi $3 ; z
eq?
bnt code_16cd
push1
lofsa string_0d18 ; "Rosella says oh edger show me around pretty please."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_16e8
If Edgar dies:
edDies::changeState:
lap param[$1]
aTop state
push
dup
ldi $0
eq?
bnt code_1720
pushi $21a ; 538, handsOff
push0
lag global[$1]
send $4
push1
lofsa string_0d57 ; "You see edgers soul lift from is body and take off... you blew it."
push
calle export64921_0, $2
pushi $2cd ; 717, setHotspot
push1
push0
lofsa edger
send $6
pushi $b7 ; 183, cue
push0
self $4
jmp code_1787

code_1720: dup
ldi $1
eq?
bnt code_1751
pushi $93 ; 147, init
push0
lofsa oberon
send $4
pushi $93 ; 147, init
push0
lofsa titania
send $4
push1
lofsa string_0d9a ; "These two show up and start wailing over their dead son."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_1787

code_1751: dup
ldi $2
eq?
bnt code_176c
push1
lofsa string_0dd3 ; "Titania picks up the baby Malicia and take Rosella and Valenice home."
push
calle export64921_0, $2
pushi $b7 ; 183, cue
push0
self $4
jmp code_1787

***

Script 4650: This section dramatically describes what happens if Rosella leaves Malicia's house without putting the pile of clothes away first. (added 2-2-23)

code_0d45: dup
sLeaveHouseDeadUntidy::changeState:
lap param[$1]
aTop state
push
dup
ldi $0
eq?
bnt code_0ead
pushi $21a ; 538, handsOff
push0
lag global[$1]
send $4
push1
lofsa string_064e ; "You leave the house and find yourself DEAD!!!!"
push
calle export64921_0, $2
push1
lofsa string_067d ; "Next time, clean up your mess!"
push
calle export64921_0, $2
pushi $21b ; 539, handsOn
push0
lag global[$1]
send $4
push2
push0
pushSelf
calle export011_5, $4
jmp code_0ebf


<--Back to the Pics Page

Back to Sierra's Resource Files