Author Topic: Introducing Sierra Quest: Power Pack Demo  (Read 3261 times)

0 Members and 1 Guest are viewing this topic.

Offline AGKorson

Introducing Sierra Quest: Power Pack Demo
« on: December 14, 2023, 10:16:58 AM »
At long last, here it is folks!
Sierra Quest: Power Pack Demo

The AGI Power Pack is an AGI logic script that takes advantage of a buffer overflow in the set.string command that allows direct manipulation of the program code within memory, unlocking new capabilities and enhancements in the AGI engine.

The Power Pack Demo game demonstrates all of these features so you can see what's possible. In the game, you are Drew, who has traveled to Oakhurst California to visit the former Sierra headquarters building. Drew is hoping to find some souvenirs from Sierra's golden age, including the fabled Power Pack project, long rumored to be an abandoned enhancement to AGI that was ultimately beaten out by SCI.

You will need to provide your own interpreter files, and the game will only run in DOSBox (or any other fully compatible MSDOS emulator, or on an original PC with MSDOS if you have it!)

The full source code for the AGI Power Pack and the Demo game will be publicly released shortly. Until then, if you successfully complete the Demo game, you'll be provided with information as to the location of the source files. If you do find it, please leave a message here. I'd love to hear about your success and any thoughts you have about the game or the Power Pack.

« Last Edit: January 29, 2024, 11:57:32 PM by AGKorson »



Offline AGKorson

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #1 on: December 14, 2023, 10:38:17 AM »
oh my gosh, how could I forget! I need to give a HUGE shout out to those who helped me finish this game. Several members of this community have lent their talents to help make this a reality. I could not have done this without them.

First of all, most of the background art and view sprites were drawn by Klownstein. He did an amazing job! When I first sketched out the game, I had some ideas on how it might look, but his artwork was lightyears beyond what I had envisioned.

doomlazer gave me a hand writing several of the sound effects in the game. I suck at creating music and sound, so you can thank him that you don't have to turn the sound off to enjoy the game!

doomlazer was also the principal playtester when I was working on polishing the beta version. He found a lot of bugs that I hadn't noticed, and made a ton of really good suggestions to improve the game play. I also got good playtest feedback from Threepwang and  lance.ewing. And vafada also helped with confirming which versions of the interpreter would work best with the demo game.

THANK YOU to all for your contributions.

Offline Kawa

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #2 on: December 14, 2023, 11:17:19 AM »
I haven't gotten far, partly due to being too impressed at this piece of work but...


Seriously though, this is like growing up with ZZT and being introduced to MegaZeux.
« Last Edit: December 14, 2023, 11:21:07 AM by Kawa »

Offline doomlazer

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #3 on: December 14, 2023, 03:18:45 PM »
Having play tested this game (apparently not very well) I can say this demo is worth checking out even if you have no intention of using the power pack in your own project. Amazing art by Klownstein and AGK, incredible attention to detail. it's a fun, nostalgic romp though AGI meta-history.
« Last Edit: December 14, 2023, 03:57:52 PM by doomlazer »

Offline AGKorson

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #4 on: December 14, 2023, 07:00:19 PM »
I haven't gotten far, partly due to being too impressed at this piece of work but...


Seriously though, this is like growing up with ZZT and being introduced to MegaZeux.

oops. Well, what's an AGI game without a few graphical blunders? I forgot to mention Drew's super power: phase-shifting...

 I'll take a look at that and get it fixed soon.

Offline AGKorson

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #5 on: December 14, 2023, 09:30:02 PM »
I haven't gotten far, partly due to being too impressed at this piece of work but...


Seriously though, this is like growing up with ZZT and being introduced to MegaZeux.

oops. Well, what's an AGI game without a few graphical blunders? I forgot to mention Drew's super power: phase-shifting...

 I'll take a look at that and get it fixed soon.

Hmm, 8 is not 9... It's fixed now. I'll wait a bit to see if there are other bugs to fix before releasing version 1.0d. In the meantime, use this workaround:

"don't do that"

Offline MusicallyInspired

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #6 on: January 11, 2024, 02:49:14 PM »
I wish I'd seen this earlier. What an awesome endeavour! Can't wait to try it.

EDIT: I beat it. Quite nice! Amazing features. I kind of hoped you had added VGA palette capability that AGI256 had, seeing as you pretty much added all the other AGI patch features that Brian Provinciano and others have made for AGI in years past (AGISB, AGIMIDI, AGIMouse, etc). But palette control itself, even though it's only 16 colours, is fantastic. I was blown away by that intro!

I did run into a couple bugs. If you pick up the 80s mix tape and the floppy disk and put them in the Walkman and floppy drive respectively and go back to where you originally found them you will find brand new items in their place that you can pick up a second time. Getting the floppy disk again didn't cause any issues, but getting the mix tape while it was already in the Walkman crashed the game when I tried to fast forward after trying to use it again.
« Last Edit: January 11, 2024, 07:42:18 PM by MusicallyInspired »
Brass Lantern Prop Competition

Offline AGKorson

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #7 on: January 15, 2024, 11:18:20 PM »
Thanks for the compliments! I'm glad you enjoyed it!

I kind of hoped you had added VGA palette capability that AGI256 had, seeing as you pretty much added all the other AGI patch features that Brian Provinciano and others have made for AGI in years past (AGISB, AGIMIDI, AGIMouse, etc).
Yeah, that one seemed like too much... it requires different formatted resources, new editors, etc. It felt like it was going beyond 'enhancing' AGI to creating something new. SCI already did that.

I did run into a couple bugs. If you pick up the 80s mix tape and the floppy disk and put them in the Walkman and floppy drive respectively and go back to where you originally found them you will find brand new items in their place that you can pick up a second time. Getting the floppy disk again didn't cause any issues, but getting the mix tape while it was already in the Walkman crashed the game when I tried to fast forward after trying to use it again.
Good catch. I'll get that patched shortly.


Offline AGKorson

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #8 on: January 30, 2024, 12:03:25 AM »
Here is a link to version 1.0d, which fixes a few more minor bugs.
https://1drv.ms/u/s!AioUx5fucQP0nYgXP2UNKUK1yByFLQ?e=3eMumW

And if anyone wants to look at the source code, it's on github, and can be found here:
https://github.com/AGKorson/AGI-Power-Pack

Offline lance.ewing

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #9 on: January 30, 2024, 08:23:29 AM »
Thanks Andrew. I will certainly be taking a look at the code soon. Actually, I have been intending to start a thread to further discuss the Power Pack. I think this thread should be fine though. The Power Pack understandably states that it will only work with the original AGI interpreter, and will not work with NAGI, Sarien, AGILE, AGIPlayer, etc. That is all well and good, but what I've been wondering is how we might go about adding support for Power Pack games within the fan made AGI interpreters, e.g. AGILE. Obviously we can't rely on the same mechanism to set it up, because that's a completely foreign concept to the fan made interpreters, especially in the case of AGILE. But I assume that I could code support for the additional features directly into AGILE itself, and ignore the attempts to inject code beyond the normal string boundaries (other than that that indicates it is a Power Pack game, and so could be used to switch that mode on). It wouldn't be the same thing as the Power Pack, and wouldn't pick up on any changes/fixes that you make to the Power Pack in the future (unless I code the same changes into AGILE), but it would mean that any Power Pack games, such as your one, could be run in AGILE.

Support for other fan made extensions to the AGI interpreter, such as AGI Mouse, AGI256, and AGIPAL, are reasonably straight forward by comparison. I'd like to support all of those as well, so that the fan made games that rely on them could be played.

I discovered a fan made game called "Flag Quest" over recent days that, as you obviously know, relies on reading beyond the limit for strings in order to determine what AGI version the game is running in. This is fairly trivial to add support for in a fan made AGI interpreter such as AGILE. Hmmm, I guess that in order to 100% support the Power Pack features, I would probably need to have a byte array that represents the area of memory that you are injecting code into, so that I would actually be writing the bytes into it, so that the same bytes could in theory be tested with compare.strings, otherwise you'd know that it isn't the real AGI interpreter, should you implement code to test this. The ideal solution would be indistinguishable from the real interpreter.

Offline AGKorson

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #10 on: January 30, 2024, 10:18:48 AM »
On the ScummVM forrum, one of the admins asked me about the Power Pack code, and what it might take to add support for it to ScummVM. He never replied to my follow up messages though.

I think it would be simple to add Power Pack support. You could either add a property to a game so that the interpreter knows the Power Pack is active when the game loads, or you could add a check to see if the code injection is attempted, and then set the property that way. Once the interpreter knows the Power Pack is active, it's just a matter of using a switch block in each of the modified commands to respond to the Power Pack commands correctly. It might take a bit of work, but I don't think it would be that complicated.

I know about Flag Quest because I wrote it!  ;D

I don't think you need to go as far as adding a byte array to check for injected code - once the Power Pack hacks the interpreter, the entire MSDOS memory space is available for read/write, so you'd have to model the entire MSDOS environment, including BIOS. I'm guessing that's not very practical. If one of the version check strings is checked, you could modify your compare.strings function to send back whatever is needed to tell the game what version the interpreter is currently emulating. Everything else in the Power Pack could be supported as described above.

Where this approach would break down is if someone decides to write their own code to inject. There's really no way to model that without modeling the original MSDOS environment, which is what DOSBox with the original interpreter does. In that case, the person writing the custom code would need to provide relevant information to the other interpreter dev teams so they could code appropriately to add support.

I don't think you need to worry about that though. I put the odds that someone else will write their own Power Pack code at around 1,000,000 to 1.




Offline Collector

Re: Introducing Sierra Quest: Power Pack Demo
« Reply #11 on: January 30, 2024, 01:34:17 PM »
I have added a stub page for it on the Wiki.

http://agiwiki.sierrahelp.com//index.php/AGI-Power-Pack

Add to it or edit it as you see fit.
KQII Remake Pic


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

Page created in 0.039 seconds with 22 queries.