Progress of the SciStudio

CiacioZ Hi Brian how about the progress of the scistudio? What is the status of the new version?

Greetings and good work ;)
Pikachu14 My question exactly.

We're still waiting patiently, Brian...
AGI1122 I think you guys really need to get a life instead of hounding him about it.

He will report when there is something to report. :P
Omer Mor On his last remark about his progress he stated that he is focusing on adding full sound support to his studio, which is a very welcome feature.
I can only guess that the built-in sci-decompiler is already finished if he moved on to sound support.
full graphic support is already there (supporting every format of graphics ever used in sci games, including hi-res, amiga, and the rare sci1-ega).
I don't know if he finished the necessary classes framework, but I guess it is done, if he has a working decompiler (with a decompiler i believe it is should be easier to rip the framework that sierra used).
Brian_Provinciano Omer's a genius! You've read my mind!

Yep, the VGA template class system was finished almost a year and a half ago, heh (though made from manual disassembly conversion as I didn't have the decompiler then), full graphic support is there, the decompiler is 90%, and I've been playing with audio.

I'm still working on SCI Studio, no doubt. I've been finishing up the decompiler the past few days, but the older I get, the more I have to focus on real work and whatnot, SCI Studio is a free service/hobby, so I can't spend 24 hours a day on it like I did when I was younger. I appreciate the donations and such (and I'm not asking for more money, I appreciate what I've been given already), but I'll never be able to pay the bills with it. The donations have basically just paid for my web hosting for bripro.com. I need to pay my living expenses, which for that I need to do real work.
Gromitigo Since you release the souce, ever consider hosting on SourceForge? You could put the web site on SourceForge.net, then you wouldn't have to pay ISP bills. Plus, it'd get more publicity, and support.

Just a thought.

=grom
Brian_Provinciano I can't host bripro.com at SF, and there's more to it than just SCI Studio. Plus, I don't plan on doing the sourceforge CVS stuff for a while.
Gromitigo Just a thought.

Ever been slashdotted?
Brian_Provinciano One reason that I haven't updated the site is a while is because I've been too busy making progress with SCI Studio. I'm focusing more on making it into the universal SCI tool rather than doing publicity for SCI Studio EGA. When it fully supports SCI32, I'll be very interested in being slashdotted, but until then, I'm mainly just working in peace.

By not updating the website some people get the idea that it's not being developed anymore, less people bother me, and I get more work done :). I love getting emails from you guys, but many I might not respond to if the same question is asked over and over and normally will just post it's response here for everyone all at once. If you want to know what's going on day by day, drop by the freeSCI IRC channel. When I'm there I'm usually talking about every tiny detail on what's going on.

For example, I now have my script decompiler (yes decompiler, not disassembler, this thing has a hell of a lot of code/AI) working on every single SCI version. The early SCI0, common SCI0, SCI01, SCI1, SCI11 and SCI32. That means Leisure Suit Larry 1VGA, 2, 3, 5, 6, and 7! And all your QFGs, KQs, SQs, etc.! It works very well, and the only real flaws in it are that it doesn't fully support complex "if" expressions, and simply dumps many as "if(...) goto xyz". It works fine though.

I'm able to browse through the code of LSL6 and LSL7 and find out all the hidden stuff, as well as how it all works. It's great! For example, I've found all the juice on LSL7's secret "classes" debug. Oh yeah! There's a lot more to it than just the "classes" file. I'll write a doc on it later.

For everyone who wants to make SCI VGA games but not SCI EGA games, you need to realize that though they have different capabilities, file formats, graphics, audio, etc., from the scripter's (you) standpoint, they are almost identical. Instead of doing "if(Said" expressions, you simply perform tasks on icon clicks. Other than that, it's basically the same! Even LSL7 is VERY VERY similar to LSL2! Yes, that's right! Their scripts run very similar. The only real differences are that LSL7 uses a point and click interface, and has different graphical/audio/memory capabilites. They both have a similar Obj system, with nearly identical Obj classes, Script classes, Event classes, etc.! You better believe it!

Anyway, if you're interested in coding the VGA games, get cracking on EGA SCI coding. It's virtually the same!

My decompiler can dump SCI Studio-syntax code, as well as C-like code. I like the C code much better, and may write a C-syntax compiler for SCI as well in the future, so you can compile C++ into SCI. Time will tell.

SCI Studio 4 is in bits and pieces, with almost everything there, just not all connected and polished. Virtually everything's done for SCI1 VGA game creation, maily just missing the massive docs/tutorials I'll need to write. However, I've been working a lot with the later SCI versions such as SCI11 and SCI32 as well, and their great progress stalls the completion of the SCI1. With my decompiler, who knows, SCI Studio 4 may include SCI32 templates and others too. SS4's release date is unknown because I keep making it bigger and bigger. It will be worth the wait for those who actually do so :)
Omer Mor Stop it! I'm drooling all over my keyboard here! :D

Seriously though, I think the C-syntax idea is great - I like it better too. But don't throw out the sci-syntax because it has nostalgic value, and maybe someday in the future sierra will release the sci source code (yeah like that's gonna happen) and it would be compilable on your studio...
Det Great... have you found out about other debuggers in other games, too? For some games, there were other ways of activating them than the classes file, I believe. For example, I remember in some games the file "version" had to be removed, and for instance in PQ4's case you had to run the main executable from a different directory than the installed one to activate the debugger/teleporter...
Gromitigo Thanks for the update Brian! :)

Won't bug you again.
Thanks again for all the hard work!

I'm going to DL scistudio now and get to the tutorials.
I was going to ask if it was similar or not...but now that I know it is, I'll get workin on it.

-g
Brian_Provinciano Gromitigo: Great to hear you're getting started! feel free to keep asking questions though, I love to hear from everyone. Expecially if they post the question here, so everyone can see the answer!

Det: I don't have LSL7 fully installed right now, just the resource files on my PC to work with. However, I will install it soon and test these things. There are at least two files, which if they exist, can enter LSL7 in two different debug modes. As well, you can also enter a code in the config (ini) file to enter debug mode without the classes file. However, all the SCI debugs other than SCI0 and some SCI01 are in the scripts (if they weren't removed), as the interpreter's debugger was removed before releasing the games. The SCI0 games had the interpreter debug mode, as well as a very good script one, and it can be seen in use in a promo video Sierra made in '88. However, the scripts were removed, so no one has their hands on them (in the public at least). When making the template from LSL3, there was an if expression testing a global variable, and if it were true, it would enable the debug script (script.97x I believe). hacking the script to enable it would just crash the game with an oops message though, as it didn't exist. I did the VGA template a year and a half ago, but I don't remember an debugging situation like that, unless they removed _EVERY_ fragment of the debug script.

Omer Mor: I won't get rid of the SCI language and switch it to C. For one, I have the whole templates in SCI, plus I want it to use the language from SCI0 to SCI32. However, I may make a C compiler in addition. The SCI Studio language is similar to Sierra's SCI, but not exact, so real scripts couldn't be compiled with it. I didn't do it exactly because there were some syntaxes of it that just seemed like poor decisions, and I felt I had to change them.
Omer Mor realy? can you give some examples of such differences between the sci-studio syntax and the original sci syntax?
dreamweaver Hah I very like the idea use C syntax in SCI Studio . SCI language like the language which students must do when they learn "compiler".

To Omer Mor :
C syntax
a = b ( a is equal b )
Original SCI syntax :
= a b ( a and b has an equal between them )
( like Japanese , if you know that language :D )
Brian_Provinciano
Omer Mor wrote:

realy? can you give some examples of such differences between the sci-studio syntax and the original sci syntax?


Funny you should ask. I just started writing this a couple days ago while working on the decompiler:


Sierra's SCI Language vs. SCI Studio Language

Temporary and Param Variables
=============================

In SCI Studio's Language, the parameter variables are specified at the top of the function declaration, and the function's temporary variables are declared within the function block. In Sierra's SCI Language, both variables were declared in the function declaration, with the temporary variable separated and declared with a "&tmp" keyword.

SCI Studio:
   (method (changeState newState)
      (var whichSkill, oldGold)
      ...
   )

Sierra's SCI:
   (method (changeState newState &tmp whichSkill oldGold)
      ...
   )

Procedures
==========

Sends
=====

SCI Studio:
   (StatusLine:
      code(endStatus)
      enable()
   )
   (send cSound:stop())

Sierra's SCI:
   (StatusLine
      code: endStatus,
      enable:
   )
   (cSound stop:)


Object Names
============

Simple immediate name declaration even if the name is non alphanumeric.

SCI Studio:
   (instance {glory1.sav} of File
      (properties)
   )

Sierra's SCI:
   (instance heroinfo of File
      (properties
         name   {glory1.sav})
   )


Switch Statements
=================

SCI Studio's switch statements use clearer case definitions and allow an unlimited amount of calculations in a case comparison.

      (switch (= state newState)
         (case (1)
            ...
         )
         (case (2)
            ...
         )
      )

      (switch (= state newState)
         (1
            ...
         )
         (2
            ...
         )
      )


The &rest Opcode
================

The rest opcode is a very versatile feature that was underutilized in Sierra's SCI language. In SCI Studio, you can "rest" from any parameter you like at any time.

SCI Studio:
   (method (init params)
      (super:init(rest params)
      ...
   )

Sierra's SCI:
   (method (init)
      (super init: &rest)
      ...
   )

Strings
=======

SCI Studio encloses all strings in quotes (ie. "string"). External strings in text resources are manually specified by text resource number and index. In Sierra's SCI Language, if a string was specified in quotes, it was automatically placed in the text file, otherwise, embedded strings used curly braces (ie. {string}), and spaces needed to be specified as "_".

SCI Studio:
   Print(
      "Do you want to try importing your character again?" // (or '805 123' for text.805)
      #button "Yes" 1
      #button " No " 0
   )

Sierra's SCI:
   (Print
      "Do you want to try importing your character again?"
      #button: {Yes} 1
      #button: {_No_} 0
   )




Notes
=====

Sierra generally places any game strings/text such as dialog text in the text resource files, and any UI text, such as button names, window titles and menu item text embedded in the script resources.
Robin_Gravel Brian. Please.

Don't change Sci Studio more like c++. I like the way it works now.

Robin Gravel
AGI1122 Robin, read Brian's post above:

I won't get rid of the SCI language and switch it to C. For one, I have the whole templates in SCI, plus I want it to use the language from SCI0 to SCI32. However, I may make a C compiler in addition. The SCI Studio language is similar to Sierra's SCI, but not exact, so real scripts couldn't be compiled with it. I didn't do it exactly because there were some syntaxes of it that just seemed like poor decisions, and I felt I had to change them.
Robin_Gravel Oops. Missed that.


Robin Gravel
Sideshow So will the release of SCI Studio VGA allow us to, say, go through and perform bug fixes on the old games (i.e. the ridiculous timer errors in SQ4 and virtually every game from that era)? Will the release of the new SCI Studio finally end the plight of Error 52?

If this is so, I'd propose volunteers (and I'm sure there'd be many) to create patches for these games up for free download from here or various other sites so people who aren't as code savvy as others can enjoy playing their old games without the woes of Error 52 or having .000001 seconds to get from one side of the screen to the other. Will all this be possible with the new SCI Studio????

-Sideshow
AGI1122
Sideshow wrote:

So will the release of SCI Studio VGA allow us to, say, go through and perform bug fixes on the old games (i.e. the ridiculous timer errors in SQ4 and virtually every game from that era)? Will the release of the new SCI Studio finally end the plight of Error 52?

If this is so, I'd propose volunteers (and I'm sure there'd be many) to create patches for these games up for free download from here or various other sites so people who aren't as code savvy as others can enjoy playing their old games without the woes of Error 52 or having .000001 seconds to get from one side of the screen to the other. Will all this be possible with the new SCI Studio????

-Sideshow
Please read this topic:
http://www.mega-tokyo.com/forum/index.php?board=5;action=display;threadid=4831