Author Topic: C# AGI Interpreter  (Read 3009 times)

0 Members and 1 Guest are viewing this topic.

Offline lance.ewing

Re: C# AGI Interpreter
« Reply #75 on: March 30, 2017, 04:10:44 PM »
I have the "save" functionality working now and it too appears to be compatible with the original interpreter. Haven't done much testing yet, but I was able to load a game saved in my interpreter in to the original interpreter. No doubt there will be some broken bits here and there that I'll discover when fuller testing is done.

I'm now looking at the simple save functionality. I think I already have that functionality in place, but when I tried it with Mixed Up Mother Goose with a clean slate, i.e. no pre-existing saved games, it asked me to pick my name from a list that was empty, and the pointer was able to move up and down over the whole screen rather than just within the empty list.

Turns out that the original game did this as well, which I found quite strange. I'm using 2.915 of the interpreter. Can others that have the AGI MUMG give that a go as well, i.e. try firing up the original AGI interpreter with MUMG and no saved games and confirm that there is a bug there with that initial name selection dialog?

Offline lance.ewing

Re: C# AGI Interpreter
« Reply #76 on: March 30, 2017, 04:25:20 PM »
That's a little sad actually (and exciting as well; a strange feeling really). Turns out this isn't the first AGI interpreter written in C#. I was trying to discover any mention of the MUMG bug mentioned above and happened to find this web site:

http://www.huguesvalois.com/Resume.aspx

where it says this:

Quote
Developed an interpreter for Sierra AGI games in C# by porting an existing C interpreter (NAGI). Added a significant number of features not found in the NAGI. Used SDL for graphics, input and sound.

and this:

Quote
Developed a suite of tools in C# for creating Sierra AGI games. This includes compilers, decompilers and editors for the various types of resources present in AGI games. Based on existing AGI specification documents describing the resource file formats.

Was anyone aware of Hugues Valois and his efforts?

Edit:

Check out this write up: http://www.huguesvalois.com/ProjectsAgiPlayer.aspx

Some very interesting features. Haven't actually found a link to it yet.
« Last Edit: March 30, 2017, 04:33:01 PM by lance.ewing »

Offline lskovlun

Re: C# AGI Interpreter
« Reply #77 on: March 30, 2017, 04:46:08 PM »
Was anyone aware of Hugues Valois and his efforts?
The name sounds familiar... but I can't remember whether it was in a FreeSCI context or on some forum.

Offline lance.ewing

Re: C# AGI Interpreter
« Reply #78 on: March 30, 2017, 04:51:34 PM »
A search for FreeSCI and his name does turn up a number of results, e.g. https://lists.gnu.org/archive/html/freesci-develop/2006-01/msg00005.html

and in this source file:  https://github.com/RangelReale/freesci-pnd/blob/master/src/tools/musicplayer.c

Edit:

He did the game selection menu in FreeSCI as well:  http://scummvm.sourceforge.net/credits/
« Last Edit: March 30, 2017, 05:00:35 PM by lance.ewing »

Offline Collector

Re: C# AGI Interpreter
« Reply #79 on: March 31, 2017, 11:00:58 AM »
Interesting. The copyright on that page is only a couple of years old, so perhaps he can be contacted.

Anyway, my MMG has the same behavior. It does,however have the same interpreter as yours.
KQII Remake Pic

Offline lance.ewing

Re: C# AGI Interpreter
« Reply #80 on: March 31, 2017, 01:06:28 PM »
I've sent him an email. Looks really good, doesn't it?

Regarding MUMG, I guess we could try swapping in different interpreter versions and see what we get. Would have to be in the 2.9XX range, and probably greater than 2.915. So that probably leaves 2.917 and 2.936 to try. Would be interesting to see if the same behaviour occurs in AGI v3 as well. For my interpreter, I'm not sure whether to leave the bug in there, or whether to skip that dialog, which is pretty much what you're forced to do in that state, i.e. hit ESC and move on to the next screen where you enter your name.

Offline Collector

Re: C# AGI Interpreter
« Reply #81 on: March 31, 2017, 06:31:45 PM »
His interpreter was using SDL like NAGI. Were you using SDL for your C# interpreter? If not it still might be worth it to continue your new interpreter. Even so, it would be nice to see his code.

A quick test with 2.917 and 2.936 dumps you back to the C: prompt and a "Bad Image File" message respectively.
KQII Remake Pic

Offline lance.ewing

Re: C# AGI Interpreter
« Reply #82 on: April 01, 2017, 05:05:30 AM »
What I did to try out 2.936 was to find one of the fan games that uses that version (of which there are quite a lot) and copy the interpreter files from there. I think they use cracked versions, but that doesn't really matter for the purposes of this MUMG test.

Having done this, I can confirm that 2.936 also has this bug with that simple name selection dialog.

Regarding the question about SDL, no, I'm not using SDL.

Offline Collector

Re: C# AGI Interpreter
« Reply #83 on: April 01, 2017, 11:16:17 AM »
I didn't think that you were using SDL.
KQII Remake Pic

Offline lance.ewing

Re: C# AGI Interpreter
« Reply #84 on: April 25, 2017, 01:49:42 PM »
A quick update to say that I've been doing a bit of refactoring on the graphics side of the interpreter. I'd initially assumed I could get away without needing to have what the interpreter calls background "save areas" for my animated objects. My reasoning was that I simply needed to redraw the animated objects on top of the background on each cycle. This works fine in most cases, but it rules out some of these non-standard features like leaving a ghost of a save area behind on the screen when using the position command. My interpreter wouldn't have been able to support that properly without background save areas. So now all the animated objects have background save areas. I'm still working through some of the finer detail with how the off screen and on screen pictures are handled. Soon I hope to have it pretty much exact.


SMF 2.0.11 | SMF © 2015, Simple Machines
Simple Audio Video Embedder

Page created in 0.107 seconds with 22 queries.