Community
SCI Programming => SCI Syntax Help => Topic started by: doomlazer on September 20, 2021, 06:36:59 PM
-
I'm hoping someone can clarify an issue I've been struggling with for awhile now. I'm having trouble with calls to ShakeScreen. I can't get them to work on any game I've tested through SCICompanion or DosBox.
I thought it might be an interpreter version, as none of the Steam collections seem to have screen shake. I tested KQ4 (cliff north of start) and SQ4 (Ortega) and neither work for me.
I also own GoG KQ4+5+6 version and all ShakeScreen calls seem to work as expected.
The confusing part is that it seems to be a problem with DosBox which doesn't make sense to me. KQIV from GoG uses SCUMMVM, but when I run the GoG version in DosBox.74-3 or SCICompanion the ShakeScreen suddenly stops working.
I've got no problem with SCUMMVM, but I personally prefer DB, so it would be nice if I could get screen shake to work there. Does anyone have any insight on this? Could it really be a DOS emulation problem?
Also, what is the correct way to verify a game's interpreter version? I can't find where SCICompanion would show that info. It's not under 'version detection'.
-
Left Shift+right Shift+num pad "-" and the debug will say.
-
Thank you, I just barely noticed that the version info was shown there before reading your reply.
I'm still stumped as to why ShakeScreen would work in SCUMMVM, but not DosBox if it's the same interpreter and game version. Has anyone ever seen ShakeScreen work in DosBox?
-
I thought I heard that DOSBox doesn't support the shake-screen graphic procedure or whatever? Like whatever it is in DOS or the graphics driver to tell the computer to shake the screen, DOSBox doesn't support it. So, not just Sierra games but any game whatsoever. Unless there is another game that does. But that would be why if so.
EDIT: Shakescreen works in KQ2SCI in DOSBox, so I'm out of ideas.
-
Thank you, I'll investigate the differences between KQ2SCI in DosBox and KQ4!
-
I'm hoping someone can clarify an issue I've been struggling with for awhile now. I'm having trouble with calls to ShakeScreen. I can't get them to work on any game I've tested through SCICompanion or DosBox.
I just noticed that you're not a regular. Welcome!
How many parameters do you give to ShakeScreen? All versions of ShakeScreen will accept two, SSCI requires at least one, ScummVM seems to be fine with none, but the latter may cause erratic behavior in SSCI. For best results, specify both.
-
Thank you, I just started with SCI in August, so I will try to avoid flooding the place with dumb questions.
I've tried calling it with 0, 1 and 2 params. I have tried using both the name shakeSDown and 1 (or 2,3) for the direction. It just never seems to work in DosBox-74-3. MusicallyInspired, Is there still a download for KQ2SCI? I can't seem to find a working link to compare against. Is KQ2SCI using a more recent version?
I'm testing with interpreter version 0.000.502.
Edit: I started a new SCI0 game from the template and ShakeScreen works as expected in interpreter 0.000.685., so I'm out of date. Is there any documentation about upgrading a game to more recent interpreter version? I guess what I'm asking is why can't I find the ShakeScreen interpreter code through SCICompanion?
-
If it's a difference like from 0.0.502 to 0.0.685 I image you could get lucky and just replace the EXE file, or you need to also replace the kernel vocab. That's where you use SCI Companion to extract vocab.999 from the 0.0.685 game and import it into the 0.0.502 game you're updating to 0.0.685. You might also want to replace the upgraded game's system scripts.
Now, going from a 0.000 interpreter (SCI0) to S.old (SCI01), that's where the real differences start appearing. And let's forget about just drop-in upgrading to 1.000 (SCI10).
-
Thank you, Kawa. Dropping in a .685 version of SCIV.exe does launch and report interpreter version 0.0.685. I'm sure it would need to be tested for issues though. Your suggestion is helpful for me in understanding the relationship between SCIV.exe and the system scripts/vocab files.
Thankfully, I just barely figured out that it's not an interpreter version problem, it's the video driver.
By default, the Steam Collections and GoG include a RESOURCES.CFG file set to use the MCGA320.DRV. I guess ShakeScreen must not be supported on that driver, because editing the config to use EGA320.DRV, which they include, fixes the issue.
-
Oh that's on me, I completely forgot that ShakeScreen is implemented by the driver.
Still, if Eric's recent comments are any indication updating the interpreter might be a good idea regardless for other reasons.
-
No problemo! I saw that EO might work on the KQ4 interpreter version, so I'll probably focus on other issues and check back on his progress down the road.
I mostly just wanted ShakeScreen working because it's so unsatisfying to fall from the top of a stairwell without it.
-
Yes, I've been working on upgrades for KQ4 and LSL2. The updated system scripts split various classes into their own scripts. For instance, Reverse, Wander, Follow, and Chase were moved from Motion into their own scripts. This allows for them to be disposed on room change and free up precious heap.
From the official SCI updates:
6/1/89 Pablo
MORE HEAP!!! The following classes have been taken out of motion.sc and
system.sc and placed in their own files: reverse, chase, follow, wander,
timer and timeout. This saves 1700 bytes (!!!) in rooms that don't use
these classes.
MODULARITY is the word of the day, if you find other system code that
should be in a file of its own please bring it up, everyone may benefit.
Indeed, what's unique about the Amiga version of LSL2 (1.003; newest DOS version is 1.002) is that it uses drastically updated scripts. This is where I got the idea for the upgrades, and my decompilation of LSL2 Amiga will be the basis for the LSl2 upgrade.
Going from 0.000.409 (LSL2) or 0.000.502 (KQ4) to 0.000.685 (from the Iceman demo) required the updated vocabs. Thankfully, the existing vocab.000 still works.
Speaking of which, I think I'll go play LSL3 (0.000.572) with interpreter version 0.000.685, just for fun. I think it'll work fine; I didn't have any issues with QFG1EGA (0.000.629)
-
What is the word on LSL7? I read somewhere that was the last SCI game and the interpreter was heavily modified at that point. Has anyone tried decompiling the scripts?
LSL7 is probably my all time favorite Sierra game.
-
What is the word on LSL7? I read somewhere that was the last SCI game and the interpreter was heavily modified at that point. Has anyone tried decompiling the scripts?
LSL7 is probably my all time favorite Sierra game.
That could be a while. SCI32 support isn't fully there in Companion.
-
No, but you can still decompile scripts from SCI32 games. I've never tried doing it with LSL7 before though.
-
In that case I'll dig up my Ultimate Pleasure Pack CDs. Larry's Casino was included in that collection and I see that's already in the decompile archive!
-
In that case I'll dig up my Ultimate Pleasure Pack CDs. Larry's Casino was included in that collection and I see that's already in the decompile archive!
If you're talking about the Nick's Pick's game, then yes, it is. The 1998 game of the same name, on the other hand, doesn't use SCI at all.
-
I was conflating the SCI and non-SCI versions. I'd been hoping to rip a SCI0 slot machine and maybe the text out of the joke-a-matic, but neither to be found. The SierraHelp DOSBox installer for UPP doesn't seem to support the non-SCI Larry's Casino, just the SCI.
-
The SierraHelp DOSBox installer for UPP doesn't seem to support the non-SCI Larry's Casino, just the SCI.
I didn't include Larry's Casino in the installer because even if you were to fix the game to run on modern Windows it would be very limited without the server for online play. I think about the only thing is Liars Poker, which you can get from the demo. Crazy Nick's Software Picks: Leisure Suit Larry's Casino, on the other hand, is as mentioned an SCI1.1 DOS game that does not rely on external resources like a server.
-
Well, thank you for that installer. Very helpful getting the rest of the games running!