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

Pages: [1] 2 3 ... 13
1
SCI Syntax Help / Re: evKEYBOARD question
« on: Yesterday at 11:33:18 PM »
A question about the number 16384, because I'm still trying to wrap my head around this. Would 43168 return true as well or does it only match in that order?

16384 translates to the hex value $4000. In keys.sh, this is the key code for F6, used to load the gun. F8 is used to draw or holster the gun, and F10 is used to fire the gun. This is all set up in the menu bar, but the decompiler wouldn't automatically know that. So yes, I need to go through that and make the code easier to understand.

2
It would be a good idea to add the ability to set the initial voices. I have managed to export the title and death music for SQ:TLC into MIDI for the purpose of bringing them into the SCI01 remake. I can then import the MIDI files into the game, but the music won't play.

Naturally, Soundbox only supports SCI0, and the sounds need to be in SCI1 format.

3
In SCI01 I suppose you can use the multilingual Print and such, and give it "text like this%Dtekst zoals dit", but of course %D isn't a recognized language separator so you might as well just pretend it's English or German and use %G.

Somewhat relevant blog post: https://helmet.kafuka.org/logopending/2019/03/08/sci01-1-multilanguage-games-and-telephone-country-codes/ (yes the blog post uses # for its split point and the above example uses %, this is because one is SQ4 in French and the other is SQ3 in German.)

Unfortunately, The Seasoned Professional's interpreter (which is being used here) does not support this feature. A translation will probably require a separate version.

I'll try to make things easier by moving strings into Text resources later on.

I've actually managed to get the animated talkers working properly, thanks to a little thing called sub-scripts.

My main obstacle will be the graphics. The AGI rooms are too claustrophobic for Ego.

4
For SQ:TLC and R44Q, I'll be doing animated talkers.

The dialog will be modeless, meaning the characters will move their mouths while the text is on-screen, so as not to interrupt the flow of events. QFG1EGA and Conquests of Camelot did just that. QFG2 fleshed it out further.

R44Q will just have a standard "talk to" command. This will not require separate script states for each line of text.

A better example for SQ:TLC is with Wilco Interactive, the hidden in-game hint service. You'll be able to ask him about anything, and the game will check an array for a matching said spec. If there's a match, he says the appropriate response. That's exactly how LB1 and QFG2 did things.

5
SCI Development Tools / Re: How to extract SCR and HEP files?
« on: October 10, 2021, 01:14:01 PM »
Untested, but it's just checking for the presence of 18.scr. Try putting any random file renamed that in the game folder.

That wouldn't be a good idea, since SCI's first priority for resources is external files, then the resource package. This would just confuse the interpreter.

6
Will there be speech pack for VGA Version ? And please fix the Stupid Squid puzzle.

No speech pack, since the VGA version will still have the parser. That requires the Seasoned Professional VGA interpreter.

That squid puzzle will definitely be fixed in pretty much the same way the root monster puzzle was in SQ2VGA.

7
I've been doing a little work on remaking Space Quest: The Lost Chapter in SCI01. With that engine, it could work as a hybrid of SQ3 and SQ4. It will have the parser, but may eventually also have VGA graphics (though the focus is on EGA for now).

I've got what I've done in a private Github repository.

8
SCI Development Tools / Re: Decompilation Archive
« on: October 05, 2021, 07:36:03 PM »
In that case, you may want to find a copy of the 2 disc King's Quest 15th Anniversary Collector's Edition (1994) since it includes the dual-language KQ5 French floppy disk release that came out after the CD audio version. It retains the original Roland MT-32 midi tracks instead of recordings like the CD version and added digital audio effects present in the CD version that were never included in the original floppy disk release. The code would be more similar to the CD version at least.

I think I've got a better idea: the Amiga version of KQ5! It's also close to the CD version, and I already did a decompilation of the Amiga version of LSL2.

Also, with a bit of trial and error, I've successfully managed to properly decompile a few things that were previously undecompilable. As a result, KQ4 is now entirely in script code! KQ4:handleEvent and Room78:handleEvent were all that was left. This actually freed up quite a bit of heap space.

I've been similarly successful for LSL3, with rm370:handleEvent and rm340's comedian script. Only room 140's RoomScript is left to be decompiled.

There may be bugs in the newly-decompiled code, but at least it's much more serviceable now.

9
SCI Syntax Help / Re: Script patch files
« on: October 03, 2021, 07:39:43 PM »
Also, I just got rid of the Timer class. It's not needed, since you can just set the seconds directly in each script state. This will free up more heap.

In addition to the frog issues I pm'd, firing the bow at nothing will lock up the game.

Oops, looks like the Timer class was needed after all. I brought it back, and tested firing arrows and wearing the crown. They work properly again. I also fixed a bug where Rosella would fall into the pool again after she's already fallen in.

I believe ADL.DRV (which ships with steam and GoG versions) is mono, so I'm assuming sndblast.drv or mt32.drv would be the two best choices for KQ4?

That's right. SNDBLAST.DRV not only has stereo sound, but digital audio as well, which I've added from the Amiga version. MTBLAST.DRV allows for both MT-32 music and digital audio.
LSL2 also has Amiga-specific sound effects.

10
SCI Syntax Help / Re: Script patch files
« on: October 02, 2021, 07:21:44 PM »
That's great. Did you mention you needed testing? I can get through the game pretty quick now.

Sure! I'll send you the link.

Also, I just got rid of the Timer class. It's not needed, since you can just set the seconds directly in each script state. This will free up more heap.

So far so good...

11
SCI Syntax Help / Re: Script patch files
« on: October 01, 2021, 08:05:34 PM »
Your blog has some great stuff. Is the LSL2 source code in EO's archive?

No, just the decompilation, which I think is close enough anyway. The only undecompilable code in that game was dyingScript, and I figured that out. I didn't feel it was necessary to change the said specs unless they didn't decompile properly, and I figured out the correct specs using SCI Viewer.

On another note, I found that KQ4 doesn't properly support the newer Avoider. This causes serious problems in the witches' cave. So it's back to the older Avoider, which not only works properly, it uses less heap space.

12
SCI Syntax Help / Re: Script patch files
« on: September 29, 2021, 07:31:28 PM »
Does the Graph procedure exist in SCI0? I can get sq1Window to compile without it.

Yes, it does. And it's a kernel function, so it's all in the interpreter.
However, the vocab.999 (kernel function list) tends to be out of date for each game. This leads to things like kernel_112 for games that use the Graph function, but don't have it listed in vocab.999, since the decompiler relies on that list if it's there.

13
SCI Syntax Help / Re: Script patch files
« on: September 29, 2021, 10:35:29 AM »
How will you handle the interpreter in regards to the archive? Just add the 0.000.685 requirement to the readme or would you include the interpreter in the KQIV folder?

The required drivers and interpreter are already in the folder. I see no issue with that, since they're from a game demo.

"Marble" works in version 2.0. In version 2.2, the command was changed to "wave anchor".
Are you sure? I just tried this with the 5.25" and 3.5" versions of 2.2 as well as my copy of 2.3. The input at that point does not accept a space. It fails with waveanchor.

You have to press ALT-D first to clear the copy protection prompt and use the regular parser. THEN you input "pirate" to bring up the pirate easter egg, or "wave anchor" to go to the title.

It's kinda wild that this is a thing we can do.

It's a lot like BG1Tutu, which ported the content of the first Baldur's Gate game into its sequel's engine, complete with all of its new features.

14
SCI Syntax Help / Re: Script patch files
« on: September 28, 2021, 11:09:21 PM »
Great! I've been hoping to put everything back into that throne room!

Do the changes require an updated interpreter or is the 0.000.502 version still compatible?

The game was completely rebuilt. The changes will require updating the interpreter to 0.000.685 (the newest SCI0 interpreter), since that is the interpreter version I've been focusing on. I've already got that covered, using the interpreter and drivers from the Iceman demo.

And I've just fixed a last-minute bug relating to the new room 192. It seemed like the castle region was not being disposed when leaving. That's fixed.

15
SCI Syntax Help / Re: Script patch files
« on: September 28, 2021, 08:46:22 PM »
Great, that points me in the right direction.

I looked at the readme and I understand the egg better now. The instruction Alt+D to open the debugger is to bypass the copy protection! If you type "marble" it launches the game, "pirate" shows the egg. The online easter egg descriptions didn't make it clear you were supposed to be using the debugger to bypass CP.

I like your suggestion about bobalu. Does allowing bobalu and marble to bypass CP, but pirate to produce the egg seem like a good compromise?

"Marble" works in version 2.0. In version 2.2, the command was changed to "wave anchor".

On another note, I have actually completed my KQ4 system upgrade. It involved major code rewrites that take advantage of the procedures introduced since the game's initial release.
One thing I did was make the various objects into instances rather than new: objects. This gives the advantage of specifying their individual properties, freeing up a lot of heap space.
Another thing I did was replace much of the Load commands with the LoadMany procedure, freeing up some more heap.
Also, I restored the inventory item descriptions, lifted directly from the AGI version.
Finally, Lolotte's dialog sequences were moved into their own room, numbered 192, since room 92 used WAY too much heap space.

Feel free to PM me if you'd like to test it. The LSL2 upgrade is up next on my agenda, and it should be much easier, since Sierra already did the major code rewrites for the Amiga version.

Pages: [1] 2 3 ... 13

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.178 seconds with 21 queries.