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.

Topics - lance.ewing

Pages: [1] 2 3
I thought I would create a new topic, at the start of this new year, to cover anything related to the 25th Anniversary of the fan communities.

It occurred to me a view months back, probably around August/September, that the 25th anniversary of various things in the AGI fan community had already happened in 2022, or are about to happen in 2023. For example, the 25th anniversary of the original release of AGI Studio was a few months back, and PICEDIT would have been a bit before that. Likewise, the 25th anniversary of the release of the first version of the fan made AGI specs was some time last year, and the 25th anniversary of the first release of The Ruby Cast was around about now, followed by various other fan made games in 1998. It was back in 1997 that the AGI fan community pioneers first came together on the Internet and started sharing their various projects and discoveries.

I thought we shouldn't let this past and can perhaps treat 2023 as a special "25th anniversary" for the AGI fan community. SCI probably has a similar anniversary coming up very soon.

One of the main reasons I'm thinking about this, and announcing it, is to continue to motivate myself to work on AGI projects this year, such as AGILE, Visual AGI, perhaps even work a bit more on The Ruby Cast after such a long hiatus!  ;D

That last one really would be something different to mark the occasion. I've tried working on it a few times over the past 20 years, but I haven't got much further than one or two more rooms and then subsequently lost that work. But what I did find recently in a box of books was all of my original notes, drawings and maps relating to the full plan for The Ruby Cast, dating back to 1998, which was something I'd misplaced for many years (over 12 years at least) and so this has encouraged me to perhaps have another go at commencing work on it, and this time I'll use github for the source!  :D

I thought I might even write a book about AGI covering everything we've done and learnt over the years. I'm quite excited about this idea. I think it would be really cool, something to really commemorate the occasion 8) 

I'm not sure how common knowledge this is, but I couldn't find another reference to it online. Maybe it is an exclusive!  :)

This is apparently the building where the "top secret" King's Quest project was developed:,+Oakhurst,+CA+93644,+USA/@37.3342837,-119.6469438,3a,47.5y,172.74h,93.07t/data=!3m7!1e1!3m5!1sqBKQiibJtbWSqp44k1ypow!2e0!!7i16384!8i8192!4m5!3m4!1s0x809427832af27dc9:0x21f0f236455eeb85!8m2!3d37.3339922!4d-119.6468829

It is only 300 yards down the road from the main Sierra Online building at that time, which was the one above the print shop.

I learnt the above from a recent chat I had with Bob Heitman. He wasn't involved in the project, but he remembers where the people who were working on it were based, and he did go in there at least once before its release. He said that the KQ project had a suite of rooms on the top level of that building. This would have been all the IBM work, e.g. the HomeWord team (which included Jeff Stephenson), and the KQ team, and it would have been for pretty much all of 1983 and probably the first few months of 1984. The building was built around 1981.

AGI Development Tools / AGI Player by Hugues Valois
« on: January 12, 2019, 05:31:21 PM »
Back in 2017, you might remember that I discovered that I wasn't the first person to write an AGI Interpreter in C#. Hugues Valois had already beaten me to it. I found his website with various pictures of his Interpreter and editors, but I couldn't find any links to the application.

Well this evening I thought I'd have a look again and it appears that he has put all of his code up on github 22 days ago, along with a first release build:

I haven't tried it yet, but I probably will at some point tomorrow. Looks amazing.

Everything-Else / Thimbleweed Park released this week
« on: March 26, 2017, 11:24:46 AM »
Eagerly awaiting the release of Thimbleweed Park in about four days. Looks like it will be a lot of fun.

With it being the 30th anniversary of Maniac Mansion later this year, I'm hoping that the team working on Meteor Mess 3D might also target this year for release. That game looks pretty cool as well. The web site claims it is coming out this year.

I was thinking the ultimate would be if they could use those 3D models to create a VR version of the Maniac Mansion game. Imagine that, a full VR adventure game. There are a few people working on the concept, but nothing completed yet that I've seen. I was playing Whispering Eons and Alien Apartment recently on my Android phone with a VR headset and was thinking that this is truly the pinnacle of adventure games. Felt a bit dizzy playing them, but it has a lot of promise.

AGI Development Tools / agi.js
« on: March 07, 2017, 01:49:26 PM »
I noticed this last night. Looks quite interesting:

I haven't given it a go yet. A quick skim of the code reveals a lot of commands not implemented. I think this might be the first actual JavaScript AGI interpreter. There's but AFAIK that's a conversion to JavaScript rather than an interpreter.

AGI Syntax Help / Non-standard or obscure/undocumented AGI features
« on: February 27, 2017, 02:06:38 PM »
I'm not sure if this is the appropriate forum, but it seems to be the closest match. I'm wondering if anyone can recall seeing an AGI fan made game that made use of some sort of non-standard behaviour of the original AGI interpreter that none of the original AGI games made use of? I could go through all of the fan made games myself and see if I can spot anything (and I probably will start doing that now) but I was hoping someone might recall seeing something at some point.

A couple of "features" that I can imagine would be possible to implement would be:
  • Full screen graphics. I was prototyping this last night. There is a bit of a knack/hack to it, but it seems to be possible to draw outside of where the picture/animation area is by invoking multiple configure.screen and show.pic calls. I was wondering if anyone had made use of that in a game.
  • A pop-up user input window the same as in SCI. I pretty much implemented that last night in AGI Studio as well, so I know its possible. Has any fan made game made use of that?
  • Anything else that anyone can think of that never appeared in any of the original AGI games?
Attached below is a picture from the original AGI interpreter running something I hacked together last night in AGI Studio. It was a bit of an exploration of how various commands behave, mainly to come up with more things that my interpreter needs to support to be truly compatible.

Before you get too excited about the full screen graphics, there are a number of caveats about its use. It relies on leaving a ghost behind on the screen from where the picture was previously drawn. It is possible to leave part of a picture and also ghosts from views that happened to be drawn up there as well. Since these are no longer part of the picture, they'll disappear as soon as you open the menu, display a window over the area, or switch to text mode (e.g. inventory screen). Lot's of gotchas there then, but if you're happy to either redraw it when appropriate (which is quite noticeable so probably not the best), or to completely avoid all those features just mentioned (i.e. no menu, no inventory screen, and place windows so they avoid that top area), then you could utilise that area for something static.

That is old enough for the old MegaTokyo forums. If only they were still accessible.

Stuart George has a backup from 2004 that he says he'll check the contents of before handing over. Apparently it is a dump of the whole DB.

Stuart George has sent through a backup of the old Meka Tokyo forums data, i.e. the backup referred to in the quote above. I haven't yet had a chance to look at the data, but I thought I'd get the discussion started about what we think would be the best way to make this available again on the Internet in read only form. It would be ideal if it could be included as part of this sciprogramming site, but I'm not familiar with hosting forums and forum software, so not sure what would be involved and whether that would technically work out or not. Does use the same forum software?

I'll take a look at the file now and see what the names of the DB tables are.

AGI Development Tools / C# AGI Interpreter
« on: December 04, 2016, 03:56:08 PM »
Well I've finished the C# tutorial app that I've been working through on my phone over the past few weeks. It hasn't just been the tutorial though. As I've mentioned, I converted the VVVV game to C#, but I've also started to put together the beginnings of a C# AGI interpreter, something that I began about a week ago while I was still working through the tutorial.

What I've done is to fork the AGI/SCI Developer code base. I've forked it for a few reasons: One is because it might be dangerous for me to start contributing to the real thing at the moment. I figure that I can prototype something on the forked repository and then if I actually get something working, Collector can pull that back in to the main project. The other reason is so that I can make use of the AGI Library that comes with the AGI/SCI Developer. It already has code for loading the game data. It's structured for the purposes of the Editor, but it isn't far off what I'd need for the Interpreter. And it makes sense that if the Interpreter is to be integrated in to the editor that it uses the same classes for holding the game data so that the editor simply says "Here's the game data...  Interpret it!!"

Initially my plan was to port MEKA to C#, but that has evolved to some degree. What I'm now doing is looking over four sources of information as I build each component, those sources being the original AGI source code fragments, the original AGI documentation, the MEKA source code, and the AGDS documentation (i.e. the Russian project, which has quite a detailed explanation about the workings of the interpreter cycle).

I'm starting to the look at the AGI source code fragments very closely now and it looks like it has pretty much the complete animation code. There isn't anything missing in that area. I should be able to replicate the animation side of things quite well. It also includes the main top level interpreter cycle loop, but lacks the code for the execute logic routine. We can pretty  much guess what that does though, and there's quite a high percentage of the individual test and action commands represented in those original AGI source fragments as well. It's more complete than I originally thought. The C# project will be an object oriented representation of this logic.

I have yet to implement a single test or action command. I'm trying to lay the foundation first, which at the moment is working on the top level interpreter cycle and the animation code. Soon I'll be ready to dive in to the execution logic routine, but to be honest, its going to be weeks before I actually try to run it.

Everything-Else / Adventures in C#
« on: November 25, 2016, 05:19:03 PM »
As mentioned in another thread, I'm going to attempt to teach myself C# over the coming months, with a goal to eventually fully port my old MEKA AGI interpreter to C#, thereby hopefully making it useful to the Visual AGI project. I'm also hoping to pick up some experience that will then make me useful in contributing to other parts of the Visual AGI project.

I've got some experience with writing a few simple games in Java, JavaScript, and way back in the late 90s, in C. I've also written a few VIC 20 emulators, the first in Pascal, then in C, and then in Java (the first two also having some assembly code included).

One of the first things I start thinking about when picking up a new language is how I'd implement the game loop. The emulation loop used in the emulators is similar in many ways.

What I started looking at in the case of C# was how to get direct access to the pixels of a Bitmap as an array of ARGB values. Turns out it wasn't as difficult as I was expecting. When I ported my Java VIC 20 emulator to use the libGDX library so it could run on Android, I had to work with an abstraction of OpenGL, which when you want to update every pixel on the screen on every frame is actually not as straight forward as you might think. The GPU doesn't really want to help you when you intend sending it a whole screen full of pixels on every frame.

I don't know what's happening under the hood with this approach, but the following is what I've found through Googling on C# and direct access to Bitmap pixels:

The first answer works fine for me. The Bits array gives me exactly what I want. I've currently got a little window running in Visual Studio with coloured pixels being placed in random positions.

AGI Development Tools / Java AGI Interpreter by Dr Zoltan
« on: October 24, 2016, 05:51:16 AM »
Does anyone happen to know who Dr Zoltan, the author of the following AGI Interpreter, was?

It seems like Dr Zoltan did a lot of work on this project back in 2001, but then nothing since. I first noticed it many years ago, but hadn't really taken much of a look until yesterday evening, when I fixed it to compile with Java 8. I then loaded up KQ1 and KQ2 to try them out. There were clearly a lot of bugs still outstanding, but it seems like it wasn't too far off being usable.

I'd hate to see something like this left to gather dust. So given that Java is my language of choice these days,  I'm going to see if I can add my Apple II AGIv1 disk decoder utils/tools as a package to this project. I'm not too keen to add to sourceforge though. Would rather use github. Thus the reason I was wondering who Dr Zoltan was. I'm keen to make contact with him and see if he doesn't mind me adding the project to github. I might even see if I can fix some of the bugs. We have a lot more information these days on how AGI worked, thanks to the original documentation and interpreter source code fragments, and thanks too to scummvm's code base.

Does anyone happen to know what the exact release date of the original IBM PCjr version of King's Quest 1 was? Clearly it wasn't July 1983 as Wikipedia might have us believe . The best evidence for this is this magazine article:

So in January 1984, Roberta is saying in that article that she has only just finished the game for the PCjr. The IBM PCjr itself had only just started shipping when the above magazine article was published (apparently PCjr shipping was very slow at first and didn't ramp up until about March 1984). It is clear from the wording of the above article that the game wasn't yet available in January 1984. All the stories around the release of King's Quest suggest that it came out first on the PCjr, and then when this was a failure, Sierra refocussed on the other platforms, like the Apple II, standard IBM PC, and the Tandy 1000 (that apparently came out at the end of 1984). Perhaps the 1983 date has relevance to some kind of internal release to IBM, but clearly there was no public availability of the game until 1984.

In Chuck Tingley's LinkedIn profile, he says he was contracted by Sierra to work on King's Quest from January 1983 to May 1984.The February 1985 article about King's Quest says that Sierra were told about the IBM PCjr about a year before the announcement of the IBM PCjr. This announcement happened in November 1983, so a year before that would have been either the end of 1982, or the start of 1983. Chuck's arrival at Sierra would align with these dates then. So Sierra spent the whole of 1983 working on King's Quest.

The July 1983 date seems to come from Sierra themselves:

...but the year must be a typo. Surely the month must be wrong as well. I would have expected it to come out earlier in the year in 1984.

Has anyone been able to research this further and work out a month and year that King's Quest was originally released?

AGI Development Tools / Pre-AGI2 versions
« on: October 19, 2016, 05:49:09 PM »
How many AGI versions are we aware of prior to the introduction of AGI 2?

Recently I've seen:

v1.10: User by the Apple II version of King's Quest 2
v1.12: Used by the original booter PC versions of Black Cauldron
v1.20: Used by the Apple II version of Black Cauldron

I'm pretty sure there must be others.

What version of AGI did the original booter PC versions of King's Quest 2 use?

The SCI specs say the following:

Example: "sagi 2" would Store the Accumulator in the Global variable indexed with 2 plus the current accumulator value (this rarely makes sense, obviously).

Rather than rarely making sense, I would suggest that this would never make sense, which would make the instruction useless. I don't have an issue with an instruction not being used if its useless. - There do, however, appear to be quite a few examples of these opcodes (store with index) being used in games (kq4, sq3, pq2, lsl3, and probably a lot of others). The sagi opcode is used 5 times in script 10 of PQ2, in fact we've got 2 in a row at one point:

Code: [Select]
pushi $7
ldi $1
sagi global[$d7]
pushi $7
ldi $2
sagi global[$d7]

Looks to me like it could be using the stack for the value.

The "sali" opcode seems to be far more common. There's around 44 examples in pq2 script 10 alone. I'm seeing something similar for "sali":

Code: [Select]
pushi $fe
ldi $2
sali local[$19]
ldi $3
sali local[$19]
ldi $4
sali local[$19]

I'm guessing that this is already known, possibly even been discussed before, but can someone confirm that this interpretation is correct? And if this is correct, then what does the "a" in "sagi" mean? And then how does "sagi" differ from "ssgi"? I haven't been able to find an example of "ssgi" yet, but given what the specs say, I would have expected the examples from PQ2 above to have been using ssgi instead of sagi. It seems like a more consistent interpretation of what the "a" and "s" mean. The "sag" opcode certainly appears to store the accumulator, but perhaps not "sagi"?

SCI Syntax Help / PQ SWAT source code mystery
« on: May 27, 2015, 07:18:25 AM »
I thought I'd create a separate thread specifically for discussions and theories in relation to the mystery of where the PQ SWAT source code snippet came from.

The first question I have in relation to this is that I noticed that PQ SWAT appears to have the script in a patch folder. I decompiled by hand the disassembly that SCI Viewer was showing me. Would it be showing me the patch version or the one from the main RESOURCE files?

What I might do is decompile the other one and see if that is a closer match for the original source snippet.

SCI Development Tools / LEA instruction
« on: April 21, 2015, 02:30:43 PM »
The following page is missing the number of bytes for the two LEA opcodes:

It appears to suggest that both operands support a B and W:

op 0x5a: lea W type, W index ( bytes)
op 0x5b: lea B type, B index ( bytes)

...but that doesn't make much sense to me. The first operand would never need to be 16 bits.

I'm guessing Lars or Phil would know the answer to this?

Pages: [1] 2 3

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

Page created in 0.046 seconds with 18 queries.