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 ... 20
1
Congratulations Lance! You've put together an amazing app. For all of us old timers, it sure does bring us back to 'the glory days' of PC gaming. And for the younger generations, hopefully it introduces them to the history that needed to happen to get us where we are today.

Well done.

2
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: May 05, 2024, 03:54:29 AM »
Yeah, 30kb of extraneous data would probably be enough to overwhelm available memory in MSDOS AGI.

The memory model for AGI is very simplistic- a 64kByte block is allocated for the game (not counting the picture buffers- they are located in a separate segment), but the agidata.ovl file occupies the first ~8K, leaving only ~56K for actual game data. The room.0 portion will typically use another 7 - 10K depending on the size of your game. Each room also needs some memory to handle displaying objects on screen. So best case scenario is around 45K or so for resources in each room. The WinAGI help file includes a detailed discussion on memory management if you want to learn more.

There is no way to adjust available memory in AGI. You get what you get. (OK, there IS one way, by using the AGI Power Pack, but that's a hack, not a built-in capability of AGI. And it's an entirely separate topic.)

If you need to know how much space a resource takes up in your game, it's displayed on the property pane beneath the resource tree. Select the resource you are interested in and the 'Size' property will give you that info. Most of your pics have sizes that seemed too big to me given the displayed output - I checked, and every single one of them has the extra bloat. You may need to check your save function to see why your pics are getting extra data appended.

You have shown me a minor bugfix that I need to make sure gets added to the next version. WinAGI should detect cases where unused data exists in resources and provide a warning to the user. And also include a way to fix the problem. In the current version, you will need to export the picture resource to a file, use a hex editor to remove the extra data, then re-import them.


3
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: May 03, 2024, 07:08:23 PM »
Russ, I took a quick look at your repo. It's a bit confusing, as there are two different WinAGI project folders, one in bins, and one in ltec-gds. It looks like the one in bins was your first try, as it's older - the other I see you were working on it last night.

I'm not sure exactly what trouble you're having. I checked, and WinAGI shouldn't throw disk/file related errors when deleting existing resources. What I suspect is that when you deleted them, logics that reference them will throw a compile error if you try compiling the game. All of the resources in the template game are used somewhere in the game, so if you delete one or more of them, you will also need to edit the logics where they are referenced.

For what you want to do (create a new game based on your existing resources), the best path would be to create a new blank game. Then import all your resources (I'm sorry I don't have a bulk import function - maybe that's something I need to add in a later version).  If your logics are fully compatible with original Sierra, they should then compile with no errors. But I suspect there will be a bit of tweaking required to iron everything out. WinAGI will help you with that- if you try to compile a logic (or the whole game, which automatically recompiles all the logics), it will identify errors (displayed in red and indicate that the logic can't be compiled until you fix the condition) or warnings, which offer helpful advice on how to improve your code or avoid game runtime errors. You can ignore the warnings if you want - you don't have to deal with them to compile and run your game.

I did notice that in your first try (the files in the bins folder), you had your defines file listed as logic zero. That would indeed cause a problem. Logic zero MUST be the main logic - the one that runs every cycle and never gets unloaded. It looks like you got that straightened out when you tried using the template.

It also looks like you figured out how to use the global defines file. That makes it very easy to manage defines that are used across multiple logics. Here's a tip for you - you don't need to include defines for logic, view, picture, sound resources; their IDs are considered global defines by default. So if you've given your resources IDs that match what's in your globals.txt file, you can remove all those defines from the file.

There is a ton of helpful information in the Help file that should show you how to do all the things you need to finish adding all your resources and getting things running. And you can also always contact me, either here in the forum, or by PM, and I'd be happy to answer any questions you have - either about how to use WinAGI to do what you want, or generic AGI related questions.



4
I did a quick test of it this afternoon (Windows 11, Edge). It's really quite impressive!

So far, the only thing I found is the '5' key on number pad is supposed to stop ego motion. Looking at your source, that should be easy enough to add.

I also agree with Charles. I don't care for the blurry upscaling. If possible, a setting allowing user to choose the scaling mode would be nice.

I am very interested in how you got the sound to emulate the original. I'd like to do the same in WinAGI if possible. Do you think it would be possible to port that to C#?

5
The article text implies that Ken Williams was interviewed when he still thought that the PCjr was going to be a big success.

Given that the article is in a publication called "PCjr Magazine", I am more inclined to believe it was wishful thinking and spin from the editors than anything else. Notice the comment about soaring sales was not in quotes. Ken said it about took them under. I am not so sure he said (or even had the sentiment at the time) that sales were expected to soar. I'd guess it was the writer making that statement. Even if everyone else saw the writing on the wall, I imagine PCjr Magazine would continue to spin things in a positive light.

6
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: March 28, 2024, 03:27:55 PM »
The Power Pack Demo intentionally contains a lot of content that only works with the power pack. But I will take a look at it to see if I can strip out those parts. The exploration parts can probably be converted to true AGI without too much effort.


7
Everything-Else / Re: Laws should be written in computer language
« on: March 26, 2024, 04:02:17 PM »
Yeah, I agree. But with my conspiracy theory hat on, I'd say there are a lot more 'bugs' in legalese, and that many of them are there intentionally! :-D Lawyers probably consider them to be 'features' and not 'bugs'.

8
Everything-Else / Laws should be written in computer language
« on: March 26, 2024, 11:13:48 AM »
I was reading a recent US Supreme Court decision that involved how to interpret a statute that had a number of conditions that had to be met in order for a certain outcome to be triggered. The politics of the case and decision are not relevant to this post, plus it's always safer to avoid politics in forums such as these. But if you are interested in reading the source document, you can find it here:
https://www.supremecourt.gov/opinions/23pdf/22-340_3e04.pdf

The issue at hand in the case is how to read a section that lists three clauses as conditions to be met in order to get access to a particular outcome. The problem is the wording that was used in the statute. To paraphrase, it says:

Outcome X is granted if the applicant does not have-
  • condition A;
  • condition B; and;
  • condition C;
The plaintiff argued that ALL THREE must be met to prevent outcome X. The defense argued that any ONE of the three prevents outcome X.

Personally, I believe the defense is more correct when you look at the context, but regardless, it made me think how much hassle and confusion could be avoided if complex conditional clauses in legal writings were written in computer language. It would be simple to test in order to determine if it gave the intended results and would almost completely eliminate ambiguity.

It doesn't take much exposure to writing code to learn to appreciate how important it is to understand exactly what outcome you want, and then be able to construct conditional clauses that give the desired results. In this case, if they had used something like C# to write this clause, all confusion would easily have been eliminated. If the true intent was the defense's position, a clause like
Code: [Select]
if ( !A && !B && !C )
{
    outcome(X);
}
would work perfectly.

On the other hand, if the plaintiff's reading was what they really wanted, they could have written
Code: [Select]
if ( !(A && B && C) )
{
    outcome(X);
}

It's fascinating to me to read through all the linguistic arguments both sides go through to figure out how to parse the text. They actually touch on Boolean logic (although they don't explicitly label it as such) - trying to explain how 'not', 'and', and 'or' relate to each other when constructing complex conditionals. But in the end, you have two sides arguing over how to convert imprecise English text into the precise Boolean logic needed to consistently apply the statute.

But if the statute was just written in code in the first place, all ambiguity could be eliminated. And if there's still ever doubt about what the result should be with any given set of conditions, you can replace courts and lawyers with a simple compiler! A win for everyone, I say.

Maybe I should run for congress on that platform!

Or maybe we can just wait for AI to achieve sentience. I suspect our cyber overlords will handle all their legal affairs with much cleaner language than what we use today. It'll probably be in machine code, though, so they'll be the only ones who understand it.

9
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: February 28, 2024, 07:56:44 PM »
I was under the impression of is that you were going to use the FastColoredTextBox control for the logic editor and it looks like you are using just a RichTextBox, or is that just place holder?
Yes, that's just the preview window - no editing yet. I still got a ton of work to do on basic game and resource handling before I will start on the editors. (I'm in the middle of fixing the logic decode functions right now, so the Import function is pretty fouled up at the moment. But it will open and display games from a v2.3 wag file just fine.

10
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: February 27, 2024, 09:51:00 PM »
yeah, I was editing that one outside of VS, and forgot that some symbols can't be included as literals - '<' and '&' for example. I just fixed it about 10 minutes ago. Give it a try now.

11
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: February 27, 2024, 02:16:16 PM »
HI Russ! Welcome!  It's great to find more people who are interested in keeping the spirit of AGI alive.

I haven't played through the entire game yet, but I did check out the first room, and also scanned through the source code for both the game and your tools. I too noticed a few things regarding incompatibility along the lines of what Lance has mentioned. I see you based your work on the older version of the AGI specs. Unfortunately those haven't been updated in a LONG time. Since those were written, we've learned a lot more detail about AGI, including file format, interpreter operation, glitches and bugs in both the interpreter and the games that need to be considered, etc. I've fully disassembled all v2/v3 MSDOS AGI interpreters, and documented the results in the WinAGI help file. It's probably better to start there than with the older AGI Specs - at least unless/until someone does a full update of them.

I don't have time to do a detailed analysis of your code, but I'm happy to answer any specific questions you might have about any particular game or interpreter issue. I'm up to my eyeballs in C# code right now, as I'm trying to learn it on the fly while porting WinAGI from VB6 to C#. It's taking a lot of effort to teach this old dog new tricks! If you want to follow along, the repo for the port is available here: https://github.com/AGKorson/WinAGI-GDS. None of the editors are working yet, but most of the code for handling game files and resources is complete, and so far it seems to be able to open and preview all game resources error free. So you might find some useful code in there. Or maybe not- I'm still quite new to C#, so I'm probably not writing real efficient, clean code yet. but it is (will be) functional.

When I do get around to the editors, I will certainly look at including support for CrafterCMS/AGI.js versions of resources.



Oh, and here's a plug for WinAGI: you can download the latest version here: http://agiwiki.sierrahelp.com/images/c/c6/WinAGI_2_3_6.zip. If you want to create a full featured AGI game in the old Sierra style, there's no better game development system out there.

12
AGI Development Tools / Re: CrafterCMS (Online AGI tools)
« on: February 21, 2024, 04:21:08 PM »
Impressive!

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




14
What is the AGI "hello world"?

At its simplest: in logic 0:
Code: [Select]
print("Hello world");
quit(1);
return();

to feel more 'AGI-like', in logic 0:
Code: [Select]
if (v0 == 0) {
    new.room(1);
}
return();
in logic 1:
Code: [Select]
if (isset(f5)) {
    display(12, 33, "Hello world");
}

if (have.key()) {
    quit(1);
}
return();

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

Pages: [1] 2 3 ... 20

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

Page created in 0.04 seconds with 19 queries.