Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - lance.ewing

Pages: 1 [2] 3 4 ... 52
Do we know if anyone has previously looked into the AGIV0/GAL picture format? I was looking at this a week or so back, seeing if I can load the pictures into the Java version of PICEDIT. The picture action codes are a bit different. The 0xF4 to 0xF7 codes appear to be the same but the fill codes are different, and I use codes plural since there are multiple, and they support setting the visual and priority colour with the fill action itself. The setting of the visual and priority colours is in general handled differently. There is another code, for example, that sets both the priority and visual in one go, and it seems that certain priority values are interpreted as the priority being off rather than drawing in the priority colour.

I have got my code so that the picture converts to AGIV1/2/3 format on load, so that PICEDIT can display it, and in general they display fine. There is still a bit of work to do with the finer details of the visual/priority colours. Interestingly, the background for the priority screen appears to be black, rather than red, and the priority band colours are shifted when compared with later AGI versions, so the ego walking test tool in PICEDIT doesn't currently work as a result of this.

Commands 0xF4 to 0xF7 are repeated from 0xF8 to 9xFB but are interpreted differently with regards to what they're drawing on.

Jeff & Chris may claim that they didn't create AGI, but it is clear that there was a big refactor of the code in between KQ and KQ2. The tidy up of the picture codes is one example of this. They must have seen that they didn't need 3 different fill actions, or a second version of each drawing command.

And in case anyone cares, what I was looking at is a mysteriously nopped opcode, number 41. It is called in 9 places, all having to do with the various drowning sequences in the game. It doesn't do a thing in the KQ1 interpreters I have looked at! and I'm thinking 'why?' Was there supposed to be some effect (visual? sound?) that was ultimately scrapped, was it for debugging or something else? The integer argument to that opcode looks interesting as well:

Code: [Select] drown.stuff.nop(9); drown.stuff.nop(14); drown.stuff.nop(2); drown.stuff.nop(9); drown.stuff.nop(1); drown.stuff.nop(14); drown.stuff.nop(9); drown.stuff.nop(14); drown.stuff.nop(10);
The numbers look like they could be resource numbers...

An interesting mystery. Looking at the room 41 script, it doesn't look like there is anything comparable in the AGI V2 version of the game. I also had a look at the byte code for room 41 in the Apple II version, which is very similar, but it appears to lack these calls as well. Whatever it is, it seems not to have been required, which is obvious I guess, given it doesn't do anything.

Have you been looking at any of the other currently unnamed opcodes?

The funny thing is that the PCjr image is very different from the others. The PC and Tandy versions have an EXE file (as you say) which is odd because EXE is a DOS file format and these versions don't run under DOS. The EXE is located at the beginning of the image (after boot sector and loader). In the PCjr image, the main program file is not an EXE file, and it is located at the end of the image. It took a few tries to get it to load in IDA (enough to investigate the thing I wanted to).

Yeah, it is strange that the PCJR image is so different. I am starting to think that there is more of a time gap in the build dates between the PCJR version and the first IBM PC version. I'm not sure where the official PCJR version's release date came from, but I suspect it was the copyright registration, which mentions the 10th May 1984. This sounds about right with regards to when it became publicly available, since I know that it wasn't available yet on the 20th April 1984, as I found a newspaper advert that mentions a demo of King's Quest to be given by Greg Rowland at an event in Fresno on that date, and the advert specifically says that it is a "sneak preview of Sierra's yet to be released 3D adventure game".

As a side note, the same newspaper advert describes Greg Rowland as a "star programmer". The exact text reads:

"Come see a sneak preview of Sierra's yet to be released 3-D adventure game "THE KING'S QUEST" and meet this star programmer Greg Rowland, Friday April 20 at 12:00pm & 5:00pm".

If only we had a time machine, then we'd know where to be.

Anyway, the point I was making is that the PCJR build may have been around for a while, but not yet released. There wasn't just this 20th April 1984 demo but others that were quite a bit earlier. There was one quite prominent demo at the 1984 International Winter Consumer Electronics Show that was held in Las Vegas, at the Hilton, Riviera and Sahara Hotels, from Saturday the 7th to Tuesday the 10th January. In the month's that followed, various magazines published screenshots of the game and mentioned the demo at the Winter CES. It is clear from the screenshots that they are all from the same set of screenshots, so I think that Sierra must have given various publishers a standard set of screenshots to use in their publications.

Also of note is that the trademark for the name "King's Quest" was filed by Sierra on the 23rd January 1984, in which it claims that the first use of the name was on the 13th January 1984. I'm not entirely sure what happened on the 13th, and I would have thought that the demo at the Winter CES show between the 7th-10th would have been the actual date of first use. Regardless, the first mention by name that I can find within a publication is a magazine article dated the 24th January 1984. That might be why they filed the trademark for the name the day before.

So what we have is that the PCJR version was being demoed for several month's before the 10th May 1984 release. I'm not sure how we can determine the actual build date though. We're fortunate that the subsequent booter versions have the DOS directory entries that contain timestamps, so we (in theory) know that the first IBM PC release was no earlier than the 31st May 1984. It is highly unlikely that it would ship on the same date as the build though. That's asking for trouble. So there would have been another round of QA after that I would guess, to make sure things were still working. I'm guessing a June 1984 release date for that first IBM PC version.

The one thing that disagrees with this (surely the build date can't lie though?) is that the May 1984 edition of the "ENTER" magazine has a small writeup and states that the game "is available from Sierra On-Line for the IBM PC and other computers with 128K". It specifically mentions the IBM PC. This might be a case of Sierra wanting to get the IBM PC orders starting to flow in without yet having the final release build ready, although, who knows, maybe some early purchasers got a buggy early build. I wouldn't be surprised if the sales and marketing side of Sierra bent the truth a bit, as sales people do, when using the word available. It was probably more "it will be available by the time you've sent your order and we've processed the order". - Incidentally, the "other computers" probably refers only to the PCJR at this stage, since the same "ENTER" magazine has another write up in their October 1984 edition that specifically mentions the IBM PC and PCJR as the machines that it is available for.

I think that the 30th May 1984 date is wrong for the original IBM PC release of King's Quest. That date is from the timestamp of the MAIN.EXE directory entry on the disk, but the LOAD directory entry has a timestamp of the 31st May 1984, which would mean that the release can't have been the day before that.

These are the timestamps I calculated for the recognisable and properly structured DOS directory entries in the first IBM PC release (which we're assuming was at the end of May 1984):

Code: [Select]
MAIN.EXE           30448 30-May-1984 18:48:36 [cluster=6]
LOAD                3158 31-May-1984 02:39:58 [cluster=2]

290K              296960 19-May-1984 14:02:56 [cluster=66]
IBC                   20 06-Dec-1983 10:20:48 [cluster=350]
PROTECT               22 02-Feb-1984 14:10:08 [cluster=351]
PROTECT.NO            22 02-Feb-1984 14:10:08 [cluster=352]
PROTECT.YES           22 02-Feb-1984 14:09:54 [cluster=353]
MAIN.EXE               0 28-May-1984 03:47:18 [cluster=0]

I think that the first two (MAIN.EXE and LOAD) are the main files, and even seem to be at those cluster locations.

Do you mean the reverse process? I haven't seen one yet.

I did wonder something similar, e.g. perhaps "greg" and "rowland" were added as synonyms for other words, or perhaps a word was completely replaced by "greg". I ruled out the synonym idea, as there is only one word with a word number of 0xC2 (i.e. greg) and one with a word number of 0xC3 (i.e. rowland).

Regarding the replacement idea, there is no "duck" or similar word in the original King's Quest WORDS list, so perhaps one of Greg's names did replace that word. The AGIv2 versions of the game do support "duck", but these early booter versions don't appear to have "duck" or "squat". There is, of course, the "-" key that makes Graham duck/squat, and that works similar to what typing "greg" does for the CGA and TANDY versions, except that for the CGA versions, "greg" squats then immediately stands, whereas for the "-" key, he stays down. For the other action words, i.e. "swim" and "jump", which have associated keys ("=" and "0"), the early booter versions of KQ do support those words, and they do the same as what the action key does... (well, it seems that the PCJR version doesn't jump when you type "jump", but the CGA versions do),  whereas "duck" is mysteriously absent from the words, which is quite strange when the other two words are supported. So you could very well be on to something there. Maybe he did unintentionally overwrite a word that was doing something else.

But given that the "duck" word wasn't in the PCJR version, or the IBM PC CGA version released a few weeks after that, and yet the bit of code that supports the "greg" word making Graham crouch was added in between those two versions, I'd like to think that someone would have noticed when adding that new bit of code that it doesn't work for the originally intended word, assuming that it was added for ducking rather than as an easter egg. Maybe these releases of the game weren't properly synced up with regards to the WORDS list and the compiled scripts. If this is the case though, then all of these booter versions had the same problem. Surely they would have rebuilt the whole game each time it was released, unless the process of compiling the scripts was quite different in these early versions.

Yes, a few years back, in fact it was over 7 years ago now, there was a thread on here in which we discussed what Greg had put in his online resume in regards to King's Quest:

KINGS QUEST I Development team member. Helped design and produce graphics and animation utilities, game logic compiler, later to become known as Adventure game development system AGDS. Substantially contributed to game design and story line. Built game screen graphics and animated characters. Developed game AI logics and user response messages.

So he was definitely doing more than just graphics. Not sure why the official credits list him only under graphics.

I have four booter images. The one that starts composite color mode does. The PCjr copy does not. The Tandy/PCjr and the Tandy do.

I have managed to find what I think is the 30th May 1984 IBM PC release of King's Quest. NewRisingSun mentioned in another thread that that particular version has the text "BOOT v1.1" in it, rather than "BOOT v1.2". I found the version with "BOOT v1.1" on So I now have all five of those early booter versions. The "LOADER" version also differs. The one with "BOOT v1.1" has "LOADER v1.15", whereas the one with "BOOT v1.2" has "LOADER v1.2".

I can confirm that this 30th May 1984 version does have both the "greg" crouching animation script and the "rowland" scripts from the well. So this would mean that these changes were made in the few weeks between the PCJR release and the first IBM PC release.

Curious thing about the Tandy versions is that Graham stays crouching, while in the composite color one he bobs right back up.

Yeah, you're right. I just tried that, and he does indeed stay crouching. Another mystery.

EDIT: And even more curiously, in the PCJR version (where the 'greg' animation doesn't work), we instead have:
Code: [Select]
if (said(climb,well)) {
        print("You cannot climb the sides of the well.\n They are too steep and slippery.");
if (said(greg,well)) {
        print("You cannot climb the sides of the well.\n They are too steep and slippery.");

Yeah, it does seem strange to presumably deliberately change "greg" to "rowland" for these statements. Sierra released the "greg" variants in the PCJR version, then changed them to "rowland" in the later IBM PC and TANDY versions. That does feel like a deliberate change, and it suggests that the original "greg" statements in the PCJR release were not mistakenly left in there, since someone changed the word to "rowland" and once again left them in there for the next release. They didn't spot it and think "Oh, I left that in there, better take it out" but rather "Let's change that to 'rowland' and use 'greg' for crouching instead".

To be fair, I had already seen the scripts that Lars found. These are the rope ones that he refers to:

Code: [Select]
if (said(greg,rope) && v137==1 && v145==0) {
if (said(greg,rope) && v137==0 && v145==0) {
        print("The rope is out of reach.");
if (said(greg,rope) && v145==1) {

What I'm wondering now is why did (presumably) Greg add these ones? As Lars mentions, they're just a copy of the same statements that use "climb" instead. Why specifically did he copy those particular statements and create "greg" versions of them? Is it that he wanted to hide something in there that used his name? Or was he trying to debug an issue? Lars mentioned that he couldn't get the interpreter to execute the "greg" variants. I wonder if the "climb" variants work? If not, then maybe he was trying to debug that, using another "said" case.

If he wasn't debugging an issue, but instead hiding another easter egg in there, then why pick these "climb well" and "climb rope" statements to copy?

Yes, and if you try it in the PCJR version, you'll notice that it doesn't do anything.

I think that the 1984 IBM PC version I have is the later 16th August release. I don't have the 30th May 1984 release. Which one did you try? If you have the 30th May 1984 release, then can you test if it works on that one?

Greg must have added this after the 10th May 1984 PCJR release, but the question is whether it was only just after, and therefore is in the 30th May release, or whether it was added later on and included in the 16th August release.

I found the following in the 1984 IBM PC booter version of KQ, and also in the TANDY version, but it doesn't appear in the original PCJR version, suggesting that Greg added it after the initial PCJR release:

Code: [Select]
if (curRoom!=10 && curRoom!=11) {
        if (said(greg,!) && v26==0 && v30==0) {
        if (said(jump,!) && v26==0) {

And sure enough, if you run those versions in Dosbox, and you type "greg" in any room that isn't 10 or 11 (those are the goat enclosure rooms), then Graham does the ducking motion.

Charles Tingley's LinkedIn mentions that his contract with Sierra ended in May 1984, but I suspect that it was actually Greg that was preparing the final releases in May 1984. There are a couple of places online where Greg has commented that he was "the last man standing" on the King's Quest project, so both the hidden credits list, and the easter egg mentioned immediately above, might be a bit of evidence to support that.

Hmmm... just a thought. I wonder if this little easter egg is an attempt to show that Greg was the "last man standing", visually. The player types in "greg" and then Graham crouches down and then stands up. I wouldn't be surprised if it was. Perhaps we can call this "the last man standing" easter egg.  :D

Would that "Chris" be Chris Iden?

I had the same thought about this one as well. I've spoken to Chris Iden a few times and he assures me that he wasn't part of the original IBM PCJR King's Quest project team. He was, however, the programming department manager for a few months, roughly from the start of September 1983 for about three months. He was based in the programmer's office behind Ponderosa Printing, which was not where the King's Quest project team were based (they were in a secure office about 300 yards along the road). So Chris was the line manager of the programmers on the KQ team for those few months at the end of 1983, but not directly involved in the project itself. Perhaps one of the KQ programmers added his name to the word list for some reason.

Chris Iden was definitely involved with the releases of King's Quest after that original May 1984 releases though. His name appears in the credits of the August 1984 IBM PC release, and also the Tandy release:

but not in the two May 1984 releases.

I have compared the WORDS data from the original PCJR version, IBM PC version from Aug 1984, and the Tandy version, and the WORDS data is identical across all three. If I can trust the PCJR disk image that I have, then that would seem to indicate that the "chris" word was already in the WORDS data in the May 1984 release.

Very interesting.
Can you write a quick script the dumps all the words that are not referenced by any script? Maybe there are other interesting unused words in AGI games.

I had the same thought, and I might do this later on as a general tool for AGI V2/3, perhaps as a pop-up within AGILE that shows all unused words in the running game. But as its the original 1984 PCJR "GAL" version of King's Quest that I'm currently looking at, AGILE doesn't yet support that. I have run my eye over the word list a number of times and can't see anything else that stands out. It would be interesting though to see a list of unused words for each AGI game and then make some guesses as to why the words were added but ultimately not used.

Her name appears on the official credits list in the game's title screen, but not in this hidden list at the end of the WORDS data. I guess that whoever added these names was thinking more of those who built it rather than designed it.

I did also spot "chris" and "teresa" in the list of words, but they're not in this same section at the bottom, so not sure why those two are in there. They don't appear to be used in the game scripts.

Immediately above the "build team" list of words (above with regards to word number) is just normal game words, e.g. 0xC1 = "holes", 0xC0 = "floor", 0xBF = "nap", 0xBE = "say", 0xBD = "pluck".

Pages: 1 [2] 3 4 ... 52

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.033 seconds with 20 queries.