Author Topic: Leaked Original SCI Source  (Read 48668 times)

0 Members and 1 Guest are viewing this topic.

Offline lance.ewing

Re: Leaked Original SCI Source
« Reply #30 on: November 27, 2015, 05:07:36 PM »
There are also references to other SCI manuals.

Ah, yes. Just spotted the reference to "Object Oriented Programming in Script". Is that the only one?

Offline lance.ewing

Re: Leaked Original SCI Source
« Reply #31 on: November 27, 2015, 05:12:32 PM »
Did you notice that break, breakif, continue and continueif take an optional parameter to indicate the number of loop levels to break/continue from?

That might actually explain some of the weird compiled code we see from time to time. We were thinking there might be a continue, but there seems to be a number of variations. Good luck to the decompiler.

Offline Kawa

Re: Leaked Original SCI Source
« Reply #32 on: November 27, 2015, 05:20:32 PM »
Except for the part where Phil doesn't want to touch the decompiler :)

Offline OmerMor

Re: Leaked Original SCI Source
« Reply #33 on: November 27, 2015, 05:31:35 PM »
lance: You can go ahead and use this material.

I'll probably share some more docs.

Offline troflip

Re: Leaked Original SCI Source
« Reply #34 on: November 27, 2015, 05:32:51 PM »
Hmmm. You know Omer does imply he has a lot of this code but can't share most of it. But maybe an extraction of all of the original class names and procedure names, particularly the ones from the common framework, would be very useful for the decompiler.

The problem with this is that it would be game-specific. I mean, the "long class names" seem fairly consistent over different games (but the short names are already pretty easy to understand anyway, so not much added value). Having public procedure names would be great, but that will only work if the procedure is at the same export index in the same script number in every game. There would undoubtedly be a lot of mismatches if this were done automatically by the decompiler (nothing stopping you from renaming them as you decompile though, based on some suggested list).
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline OmerMor

Re: Leaked Original SCI Source
« Reply #35 on: November 27, 2015, 05:34:22 PM »
Here's the Kernel document.

BTW - the SCI sources I have are from version 1.001.099.

Offline troflip

Re: Leaked Original SCI Source
« Reply #36 on: November 27, 2015, 05:36:57 PM »
That might actually explain some of the weird compiled code we see from time to time. We were thinking there might be a continue, but there seems to be a number of variations. Good luck to the decompiler.

That's undoubtedly true. Multi-level break/continue, and just regular continue especially, are not patterns the decompiler expects to see, nor is it feasible to reconstruct them in SCI Studio syntax.
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline lance.ewing

Re: Leaked Original SCI Source
« Reply #37 on: November 27, 2015, 05:41:19 PM »
BTW - the SCI sources I have are from version 1.001.099.

So version 1.001.099 I can't seem to find any references to at all on the Internet. Ignoring the PQ4 and GK demos, the closest for a full game is Freddy Pharkas. I'm guessing this is where it is from then.

Offline OmerMor

Re: Leaked Original SCI Source
« Reply #38 on: November 27, 2015, 05:48:15 PM »
From going over the sources/docs it seems that the SCI infrastructure consisted of:
  • Interpreter
  • System Classes
  • Tools (compiler, etc.)

This set evolved with time, and games just took the version that was available at that time and worked with it. Perhaps they might sync to a newer version later. But the team that wrote the infrastructure advanced it regardless of specific games. It was an ongoing project, developed in parallel to the games.

Offline OmerMor

Re: Leaked Original SCI Source
« Reply #39 on: November 27, 2015, 05:49:28 PM »
Ah, yes. Just spotted the reference to "Object Oriented Programming in Script". Is that the only one?

This is the one.

Offline lance.ewing

Re: Leaked Original SCI Source
« Reply #40 on: November 27, 2015, 06:02:25 PM »
The SCRIPT, KERNEL, and OBJECT documents all refer, in multiple places, to yet another document called "Script Classes for Adventure Games".    :D

Offline lance.ewing

Re: Leaked Original SCI Source
« Reply #41 on: November 27, 2015, 06:25:59 PM »
Spotted another one. "Vocabulary documentation" is referred to twice in the SCRIPT document.

Offline Collector

Re: Leaked Original SCI Source
« Reply #42 on: November 27, 2015, 08:55:29 PM »
Omer, would you mind putting some of this on the Wiki, at least what you are comfortable doing?
KQII Remake Pic

Offline troflip

Re: Leaked Original SCI Source
« Reply #43 on: November 28, 2015, 04:36:33 AM »
Any guesses as to why a comma was used to separate selector send params? Seems redundant, since the boundary could easily be detected by encountering the next selector name with : at the end of it.
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline lance.ewing

Re: Leaked Original SCI Source
« Reply #44 on: November 28, 2015, 11:10:30 AM »
Yeah, that's a good question. It isn't consistent. The OBJECT pdf has an example without using the commas, from page 11, which suggests it wasn't required, at least not at first:

Code: [Select]
Any number of messages can be sent in one fell swoop:

(ego
    x:50
    y:50
    setMotion: MoveTo 100 100
    setCycle: Reverse self
)

Using a comma feels impure to me. It distracts from the smalltalk/Objective-C keyword message syntax. Maybe the comma was optional. Maybe some developers preferred using it. It doesn't seem to make sense as a requirement, unless there were a possibility of encountering a colon in a place where it doesn't follow a selector name.


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

Page created in 0.064 seconds with 22 queries.