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

Pages: [1] 2 3 ... 39
1
AGI Development Tools / Re: Sierra's Debug/Testing Version of AGI
« on: February 04, 2023, 05:15:37 AM »
Yeah, SCI has something similar. The release SCI0 interpreter is called SCIV.EXE (V for volumes). There are executables called SCI.EXE in that archive; they differ from the release interpreters in the same way. It seems the build processes usually generated one volume interpreter and one non-volume interpreter in one go, so in your example .097 and .098. Again SCI examples are similar.

2
SCI Development Tools / Re: Brackets Bracket and more Brackets errors
« on: January 14, 2023, 01:56:21 AM »
Shouldn't you be using Companion instead? The Studio compiler and language were horribly broken... and there's an alternative now.

3
SCI Development Tools / Re: Can method parameters alias temporaries?
« on: November 22, 2022, 03:35:42 PM »
Sounds great, that must mean you plan on keeping SCI around for some time!  :D

This whole discussion gave me a chuckle. These are issues that ScummVM and FreeSCI before it have struggled with. ScummVM performs strict bounds checking on stack reads and writes and requires workarounds for anything sketchy. The bounds checking stems from a rewrite of the PMachine in FreeSCI which we used to call Glutton (the original being rather more true to the Sierra implementation) which Christoph Reichenbach, original author of FreeSCI, implemented for student credit. He's now a university professor at a location relatively close to me; maybe I should catch up sometime.

From a software engineering perspective, these are bugs in SCI games even though they sometimes show no symptoms in original SCI due to its design. In the FreeSCI days we would have considered this out of scope and let the games crash, but ScummVM contains a workaround system (several, in fact) with much time spent on patching each individual bug. We have also had one here at sciprogramming, that seemed to stem from some manually entered code with a typo in it (remember that, Kawa?  8) ).

SCI32 handles are far more robust, but even SCI32 can have subtle memory-related bugs (in QfG4, a plane id is sometimes NULL and it works - I worked on that bug over Christmas in 2018).

4
But isn't it the reason that Sierra bought Bright Star?
I'm not sure about the timing. KQ6 was the only SCI game that used Rave, but a number of Bright Star games (which one must assume used Rave in one capacity or another) now came under the Sierra imprint.

There's also more about Rave here. The first part deals with integration with HyperCard, the second part explains the part ("the RAVE driver") that KQ6 actually uses:
https://www.callapple.org/documentation/bright-stars-talking-heads-behind-the-scenes-with-hyperanimator/
(dated 1989)

5
As far as I'm aware, KQ6 is the only Sierra game to have that kind of portrait.
Yeah, RAVE was a licensed product:
https://patents.justia.com/assignee/bright-star-technology-inc

7
Granted, I don't actually know assembly, but most of it is straightforward enough that I understand it. The part I'm unclear about is that final "send 58". Perhaps that is the cause or "67 ;width" decompiled wrong? If anyone has any insight please let me know.
My KQ6 GOG version weirds out on me for a different reason (selector mismatch) when using the Room Info feature, so I can't help you. But the send 58 is normal, that's just because it's a big Print statement.
What could possibly be the point of excluding all debug commands from rooms  440, 450, 480, 270, 280, 470, 490, 670, 750, 740? Doesn't make sense to me at least.
My guess would be heap usage. Either that or an animated sequence might bug out with some of the debug functionality. Or both.

8
SCI Development Tools / Re: Dynamix resources?
« on: September 16, 2022, 05:00:25 PM »
I did some work on DGDS at a time when i had just discovered PyConstruct. The DGDS fondness for counted lists make it a good match for GDS/SDS/TDS files

9
SCI Development Tools / Re: SCI32 Templates
« on: April 13, 2022, 12:43:52 AM »
Kawa has played around with the source of the interpreter, but I don't think he has made that major of any modifications. Of course he can speak for himself. Also, I do not believe we have any source for any of the SCI32 interpreters, either.
https://github.com/OmerMor/SCI32/

10
SCI Development Tools / Re: Is it possible to know selector's type?
« on: January 25, 2022, 03:28:04 AM »
For reference, the bug was mentioned in thread
https://sciprogramming.com/community/index.php?topic=1601.15
and fixed in commit
https://github.com/Kawa-oneechan/SCICompanion/commit/094b0fb73f4f5809d57da274c8ac06a2570bb327

And the reason why that bug happened is because SCI Companion didn't use relocations for this. The fix doesn't either.

11
SCI Development Tools / Re: Is it possible to know selector's type?
« on: January 25, 2022, 02:33:34 AM »
Hi.
For example, in SQ1VGA, room 103, SCICompanion has decompiled all `lookStr` as strings. How does it know that it's a string?
Relocations. If that particular word of the script file is relocated, then it's a pointer. In fact, there was a bug about it.

12
AGI Development Tools / Re: Sierra's AGI Compiler (CG.EXE) Disassembled
« on: January 12, 2022, 07:07:47 AM »
Nice write-up!

13
Is there any way to detect what the color of a pixel is (or the index # of the palette) when clicking on a view?  I have several views that are very large and irregularly shaped and I'd like it so that the view only responds to a click when that click isn't on a transparent portion of it.
IsItSkip kernel function detects whether a pixel in a cel is transparent. Usage something like:
Code: [Select]
(if (IsItSkip (view loop cel (- (event x?) (candidate nsLeft?)) (- (event y?) (candidate nsTop?))) ...then...)(more code/checks are needed to avoid garbage results)
This code gets the x and y of the event being processed from an event variable, and the top/left corner of the view you're testing against. IsItSkip returns a simple TRUE if the pixel is transparent, FALSE otherwise.
This unfortunately will only work on the skip (transparent) color and not other colors.

Requires the LSL6 interpreter.

14
SCI Development Tools / Re: How to extract SCR and HEP files?
« on: October 10, 2021, 07:02:56 AM »
Technically you only need to extract the script, not the heap.
in this case. Not a good habit to get into.

15
SCI Syntax Help / Re: ShakeScreen problems
« on: September 21, 2021, 01:54:52 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 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.

Pages: [1] 2 3 ... 39

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

Page created in 0.038 seconds with 20 queries.