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 - AGKorson

Pages: 1 [2] 3 4 ... 19
AGI Development Tools / Re: Introducing Sierra Quest: Power Pack Demo
« 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.

AGI Development Tools / Re: Introducing Sierra Quest: Power Pack Demo
« 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"

Forum Support and Suggestions / Re: AGI Wiki Is Broken
« on: December 14, 2023, 07:56:51 PM »
It's working. Thanks!

AGI Development Tools / Re: Introducing Sierra Quest: Power Pack Demo
« 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.

AGI Development Tools / Re: Introducing Sierra Quest: Power Pack Demo
« 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.

AGI Development Tools / AGI Power Pack Release 0.0
« on: December 14, 2023, 10:30:02 AM »
As mentioned in the post below, the AGI Power Pack is now available for use. The 'prize' for completing the demo game is a link to the location of the actual Power Pack source files. (It's not really hidden- you could probably find it online if you really want it, but I thought it would be fun to make it a bit of a puzzle hunt to start with.)

If you decide you want to write a game using the Power Pack, it is super easy to implement. Just drop the logic source file that matches your target AGI version  into your AGI game and call it from logic 0 as the very first thing when your game starts. Once that's done, all the features of the Power Pack instantly become available!

Writing code to use the Power Pack features is easy when using WinAGI. Code snippets make adding new commands just as easy as adding regular AGI commands. And the extra features of the resource editors and tools make writing AGI games much simpler, whether using the Power Pack or not!

The biggest enhancements in the Power Pack include:
  • adds mouse support! including ability to load custom cursors, automatic support for menus, inventory selection screen, and save/restore screens; also supports 'click-to-move' control of ego
  • adds sound board and MIDI support! automatically detects presence of Sound Blaster or compatible sound board and MIDI device to provide four-channel sound support
  • moves logic message text to a separate memory segment, freeing up heap memory for non-text resources
  • modifies 'graphics' and 'text.screen' commands to allow displaying eighty columns of text, in addition to the default forty column modes normally used by AGI
  • adds a new 'auto-cycle' feature that will stop/start cycling an object when it stops/starts moving, whether due to changing its direction value, or if it hits an obstacle
  • MAJOR enhancements to the trace function; the window can be repositioned anywhere on the screen; variables and flags can be viewed and modified while the tracer is active; the output is better formatted to make it easier to read

Additional features include:
  • modify the character printing functions to allow use of extended characters in graphics and text modes, regardless of color
  • adds a new function to allow setting message box colors (foreground, background and border) to any combination of colors
  • modifies the color attributes and text printing functions so text will print with any combination of foreground and background colors on the graphics screen
  • adds support for custom status lines; variables and flags can be designated to 'watch' to determine when to do an update
  • adds new command to allow changing the mode of the string compare function in the compare.strings test command between binary (all characters match exactly), text (case is ignored but all other characters match exactly) or AGI (the default where case is ignored, and white space and several separator characters are ignored)
  • adds many new string manipulation functions, including strLen, strCopy, strConcat, strLeft, strRight, strMid, strTrim, strInstr, strFormat, str2byte, hex2byte, byte2hex, strUpper, strLower
  • adds new bitwise math functions (or, and, xor, not, shr, shl)
  • adds new commands to change the color palette, and also fading the display in/out for really cool graphics effects
  • adds new commands that let you change message text, menu text and inventory item text dynamically
  • adds new function that allows sending picture draw commands to the screen after the picture is displayed
  • adds new commands to load and play sounds by variable, and also to discard sounds
  • adds ability create/read/write/delete data files using string values
  • adds support for words in WORDS.TOK to start with non-letters, and also for words to contain extended characters
  • modifies 'clear.text.rect' and 'clear.lines' commands so that the color that is passed is used, instead of just using black or white; by passing negative values, the region is scrolled up instead of being cleared
  • modifies 'set.text.attributes' command to allow passing colors by variable, and to allow "pushing" and "popping" the current attributes to make it easier to manage color changes
  • modifies the 'get.num' command so it ignores non-numeric key presses
  • adds new command to allow setting the input line text programmatically
  • adds new command to allow changing internal clock to trigger 60 times a second, instead of 20, allowing more precise control over movement and cycle timing
  • adds a command to create a countdown timer feature to help create accurate time triggered events and actions
  • adds new command to copy the current input line or the previous input line to a string
  • adds new functions to get the priority and visual colors for any coordinate location on the screen
  • adds functions to allow retrieval of current date/time
  • adds new function to poll the shift, ctrl and alt keys, allowing greater control over keyboard events
  • adds new test command to check if a coordinate is occupied by a pixel of a given screen object
  • adds new format option for message text that allows access to messages in any loaded logic resource
  • adds new command to temporarily hide all screen objects on the picture display
  • adds new command to allow pausing the internal game clock while the game is still running

The Power Pack source files contain a ton of comments that explain in great detail how to use each of the features. You can also examine the source code for the Demo game for additional insight as to how to use the Power Pack to give your games a powerful boost.

And you can always drop me a line here, either in the forums, or by PM if you have any questions or comments.

I want to believe that the AGI community isn't completely dead, and that this effort might inspire at least one more quality fan made game. Help me AGI Community, you're my only hope...

AGI Development Tools / 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.

AGI Development Tools / WinAGI Version 2.3.4
« on: December 14, 2023, 10:14:59 AM »
A new version of WinAGI, 2.3.4, is available for download here:
(2.3.3 had a major bug in the NewGame function)

No major enhancements, but it fixes a couple minor bugs. If you're going to use the AGI Power Pack (see the post above), you should update to the latest version of WinAGI.


Forum Support and Suggestions / AGI Wiki Is Broken
« on: December 14, 2023, 10:06:52 AM »
I was trying to upload a new version of WinAGI to the AGI wiki, and discovered it's broken. Something is wrong with the way it handles links to other pages.

Links that use a typical page/subpage hierarchy such as give a 'too many redirects' error, but if you format the link as then it loads fine. As far as I can tell, all internal links to other wiki pages are using the broken format. This makes it nearly impossible to navigate through the wiki.

As a workaround you can inspect the address of the page you want to go to then type the page in manually, adding the '?index=' syntax in place of the 'slash' syntax.

The SCI wiki has links that include the '?index=' format for the most part, so it navigates between pages without error. One exception I found is the 'Random page' link. It returns a page formatted in 'slash' syntax, but curiously, it doesn't give an error, it just dumps to the main page regardless of what the actual page address is.

AGI Syntax Help / Re: 1400 pictures?
« on: December 03, 2023, 09:56:20 PM »
If it's just pictures, I think I could create a Power Pack function to allow more than 256. The directory would be the trickiest part- you'd need another DIR file with a custom format. Repurposing VIEWDIR might be an option, if views aren't being used - you could easily double the number of views to 512.

Or (more preferable to me) embed the DIR information in a normal resource. That'd make it easier to allow greater than 512 pictures. Picture 0 is perfect for this, as it's rarely used in games.

For resources other than pictures (I'm looking at you, logics), I'm not sure there's an easy answer - AGI just isn't built to support more than 256 resources because they use byte values for resource numbers. (Pictures are the exception, because nothing else interacts with them, so custom functions would be relatively easy to write.)

You could allow for more than 255 rooms relatively easily using standard AGI code. Use a variable to track a 'page' value; each page can then hold 255 rooms. When a new room is loaded, use the page number and currentRoom number to run the correct code. Depending on complexity of code, you might still be limited, trying to fit enough code for multiple pages into each logic.

The priority screen option wouldn't really work, because when it's shown, the interpreter pauses the game. Without a hack of some kind, you couldn't interact with the priority screen.

Everything-Else / Re: A Curious Facebook Suggestion
« on: November 26, 2023, 11:07:54 AM »
Also the OBJECT file- how could I forget that? Beginning with version 2.411 (including all v3 interpreters), the OBJECT file is encrypted with 'Avis Durgan'.

Everything-Else / Re: A Curious Facebook Suggestion
« on: November 24, 2023, 09:50:25 PM »
Compression in AGI v3 came in two flavors, a version of LZW for logics, sounds and views, and a special compression (that converted 8 bit color values into 4 bit nibbles[ since only 4 bits are used to define colors]).  AGI v3 can read both compressed and uncompressed resources, as determined by the header (if uncompressed file size in header was equal to compressed size, AGI assumes no compression). When loading a logic, if the resource is compressed, AGI assumes the message section is NOT encrypted. If the logic is NOT compressed, then the same decryption as in v2 (using Avis Durgan) is applied.

AGI Syntax Help / Fixing a bug is SQ2 Room45
« on: November 22, 2023, 11:16:36 PM »
In another thread, there was a question about how to fix a bug in Space Quest 2. In room 45, Roger normally has to hide from the ape guard to be able to get into the elevator. But if Roger is standing too close to the elevator door when it opens the ape guard walks through Roger instead of shooting him.

The code in this room is very complex, but basically what it does each cycle is to first determine if Roger is in the guard's line of sight or not. If he is, then if the guard isn't knocked out (or otherwise unable to see Roger due to being in the elevator, or doing something else), the guard will shoot him.

The guard's movement and actions are handled primarily by tracking a 'sequence' value in variable v30. For example, when v30 equals 17, the guard goes to the elevator; v30 is then set to 18 indicating the guard is in the elevator going down, then when the door opens, v30 is set to 19 and the guard walks out of the elevator.

The bug happens because the code for the guard taking a shot at Roger skips the check if the guard is in the elevator OR exiting the elevator (i.e. when v30 ==18 or v30==19).  So if Roger is too close to the door, by the time the guard finishes walking out, Roger goes right through him into the elevator (the guard is set at beginning of logic to ignore objects).

By the time the guard begins checking to see if Roger is in line of sight, Roger is already behind him in the elevator.

The way the logic is coded is a bit more complicated than that basic description, but it is fixable. You need to do two things to fix the bug - make Roger 'visible' to the guard when the elevator door opens, and then have the guard check for a shot at Roger when the door opens.

Here are some code snippets that you can use to make the fix:

Find this code block in Logic45:
Code: [Select]
  if (v30 > 16 &&
      v30 < 19) {
change the if tests to read
Code: [Select]
  if (v30 > 16 &&
      v30 < 19 && !isset(f31)) {

then find this code block:
Code: [Select]
        if (v30 != 18 &&
            (v30 == 1 ||
            v30 > 14)) {
          v32 = 1;
and modify it by adding an 'else' block:
Code: [Select]
        if (v30 != 18 &&
            (v30 == 1 ||
            v30 > 14)) {
          v32 = 1;
        else {
          if (v30 == 18 && isset(f31)) {
            v32 = 1;

With this change, if Roger is standing in front of the elevator door when it opens, he will get shot immediately; he can no longer 'ghost' his way into the elevator.

AGI Syntax Help / Re: Object failing to cycle?
« on: November 22, 2023, 09:40:39 AM »
If you're bored and want to look into an AGI bug:

In logic45 of SQ2 you can either sling a rock at the ape or lure him down and sneak into the elevator. Normally you would hide behind the elevator until the ape exits and then sneak around to enter the lift, but you can just walk through the guard and trigger the exit script without getting caught. You do get caught if you're more obvious. Below a certain y or something as he exits.

Threepwang loves having these bugs fixed in his translations and you might enjoy solving something like this.

I'm on it! Like stink on poo!

The game is afoot!

Once more, unto the breach!

Hold the mayo!

wait - never mind, keep the mayo...

AGI Syntax Help / Re: Object failing to cycle?
« on: November 17, 2023, 02:24:12 PM »
I was bored this morning, and decided to poke around in some of the old posts for anything that might be interesting. I saw this old post, and thought I'd add some insight as to what was the original problem.

Looking at cluadehuggins' code, the most likely cause of his problem is failing to reset flag f52. Without seeing the entire source code file, I can't say for sure, but if f52 does not get reset, then in every cycle, the gelnath object will be reset to cel 0 - it'll never get a chance to cycle.

When using flags to initiate blocks of code like this, you have to make sure to reet the flag so the block only runs one time.

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

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

Page created in 0.048 seconds with 20 queries.