Author Topic: Possible new version of SCI Companion  (Read 98077 times)

0 Members and 1 Guest are viewing this topic.

Offline troflip

Possible new version of SCI Companion
« on: March 07, 2015, 10:22:58 PM »
Hi All! Long time no see...

Good news! I've quietly picked up work again on SCI Companion recently. I plan to release another version in the next month. I hope to include the following changes:

- support for opening and viewing SCI1 and SCI1.1 resources (possible editing/saving support, we'll see)
- decompiler (for SCI0 for sure, possibly for later versions)
- sound playback and midi import for SCI0 (possibly for later versions, we'll see). This was already in the code OmerMor put on github, but never in an officially released version.
- various bug fixes from reports I've seen in the forums
- a host of other smaller features and fixes
- sorry, it will still be C++, not C# :-(. Too big of a change to port it to C#, but I've been organizing the code better and "modernizing" it.

I plan to put it on github as a Visual Studio 2013 project so people can fork and modify as needed, etc... I hope to include a suite of unit tests to help with stability. In order to support unit testing I've had to split the code into a library and an exe wrapper, so this should make it easier to write some command line utilities and such that leverage the code in SCI Companion, if people want.




Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline Cloudee1

Re: Possible new version of SCI Companion
« Reply #1 on: March 08, 2015, 01:43:01 PM »
It has been a while Phil, glad to see you swung by. That is some pretty exciting news indeed.
Halloween Competition Brass Lantern Prop Competition Groundhog Day Competition

Offline MusicallyInspired

Re: Possible new version of SCI Companion
« Reply #2 on: March 09, 2015, 12:23:37 PM »
:O:O:O:O
:D :D :D :D

I'm looking forward to seeing the source and learning from it.

Will it also have the as yet unfinished C++ notation option?
« Last Edit: March 09, 2015, 12:31:53 PM by MusicallyInspired »
Brass Lantern Prop Competition

Offline troflip

Re: Possible new version of SCI Companion
« Reply #3 on: March 09, 2015, 07:45:25 PM »
I don't plan to include the c++ style coding option right away, unless people clamor for it.

I'm focused more on support for loading SCI1 and SCI1.1 resources, and hopefully editing them and saving them back.

Here I have a VGA pic resource where I pasted in a screenshot from the game Braid. It automatically chooses an appropriate color palette. Then I drew a bit on the priority screen and plopped Roger Wilco into the scene:


Here's another new feature, a "room browser" that shows how rooms are connected. This is from KQ5.
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline gumby

Re: Possible new version of SCI Companion
« Reply #4 on: March 09, 2015, 10:18:06 PM »
This is great news indeed.  Looking forward to seeing the fruits of your labors Troflip.
In the Great Underground Empire (Zork port in development)
Winter Break 2012 Rope Prop Competition

Offline Cloudee1

Re: Possible new version of SCI Companion
« Reply #5 on: March 10, 2015, 07:07:58 AM »
Ooh, does the room map go by the north south etc properties, actually look at the code, or is it defined separately? By the way, the new icons are looking pretty good too. 
Halloween Competition Brass Lantern Prop Competition Groundhog Day Competition

Offline MusicallyInspired

Re: Possible new version of SCI Companion
« Reply #6 on: March 10, 2015, 09:34:25 AM »
Ooohhhh I am so psyched for this! I can finally properly continue working on SQ1Retro. I was stuck working with two 256 View editors, one would not preserve or set the origin point and the other would screw up the palette by making all black colours white. I assume your editors don't have these problems? :D

Is it also possible to match an imported background's palette to a pre-existing SCI palette instead of creating a new one? How does it currently work? Do the imported backgrounds automatically set aside the first 64 colours in the palette for sprites and simply use the remaining 192 only? That's how Sierra's backgrounds worked. Otherwise sprites will look wrong in-game.

Sorry, a lot of questions. I'm just curious. Don't feel too pressured by all our excitement.

Yeah, I'm in no hurry for C++ notation, I was just wondering if it was still in your plans.

Does/will this also have the ability to compile SCI1/1.1 scripts or no? I'm thinking no...
« Last Edit: March 10, 2015, 09:45:15 AM by MusicallyInspired »
Brass Lantern Prop Competition

Offline troflip

Re: Possible new version of SCI Companion
« Reply #7 on: March 10, 2015, 11:50:01 AM »
Ooh, does the room map go by the north south etc properties, actually look at the code, or is it defined separately? By the way, the new icons are looking pretty good too.

Right now it only works for games that define north/south/east/west rooms. KQ6 does for the most part, for example, but SQ5 does not. It wouldn't be too hard to scan the code for calls to the newRoom selector, but only if they directly pass a number e.g. newRoom(76), rather than a variable that came from somewhere else.
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline troflip

Re: Possible new version of SCI Companion
« Reply #8 on: March 10, 2015, 12:20:13 PM »
I was stuck working with two 256 View editors, one would not preserve or set the origin point and the other would screw up the palette by making all black colours white. I assume your editors don't have these problems? :D

I hope not! haha...

Is it also possible to match an imported background's palette to a pre-existing SCI palette instead of creating a new one? How does it currently work? Do the imported backgrounds automatically set aside the first 64 colours in the palette for sprites and simply use the remaining 192 only? That's how Sierra's backgrounds worked. Otherwise sprites will look wrong in-game.

Yes, matching the current palette is actually much easier (that functionality is built into windows). That's what I started with, and the results were generally terrible, so I thought it was necessary to create a palette from the image colors. I found some color quantization code on the web and integrated it into the program.

Right now it looks at which colors are "empty" in the global palette and uses those slots only (hence the view of Roger Wilco still looking ok in the image above). And yeah, like you said, the first 64 colors (and last color always white) are generally set in the global palette, leaving 191 free to use in the pics.

I'll likely offer a choice of options when pasting in an image:
- use only slots that are "unused" in the global palette (or any other palette of your choice)
- conform to an existing palette
- ??? not sure what else would be useful

Does/will this also have the ability to compile SCI1/1.1 scripts or no? I'm thinking no...

Not currently. SCI1 scripts are quite similar to SCI0 though (in fact, nearly identical), so it shouldn't be too much additional work (though surprisingly, at least one of the opcodes changed behavior). I still need to implement writing to the resource map for SCI1 though - the format changed slightly (though not as much as SCI1.1). Also, unless I created an entire template game for SCI1, I'd to support generating .sco files from compiled scripts - haven't looked into this yet. I'll think about this...

Note that the terms SCI1.0/SCI1.1 aren't very exact. The code, the resources, the resource map.... they can all be from one version or the other. For instance SQ1-VGA and SQ4 are both listed as SCI1 games. But SQ4 uses the SCI0 resource map format, and SQ1-VGA uses a slightly newer version.

Are there any "SCI1.1" improvements over "SCI1.0" that you consider important? It seems like most of the changes had to do with conserving heap memory (e.g. splitting script files into separate script and heap resources). Using the SQ4 or KQ5 interpreter would probably be the least effort... they use the same resource.map format as SCI0.
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline MusicallyInspired

Re: Possible new version of SCI Companion
« Reply #9 on: March 10, 2015, 01:31:33 PM »
SCI1.1 supported sprite scaling, but I don't know if that matters for what you're looking for. Coloured cursors, generally, too. Though, KQ5 had them and it's only SCI1. Could be that blending of resource versions you mentioned at play there, I don't know.

Also, I don't know if it's SCI1.1-specific, but I believe those games also supported playing multiple sound files at once. I recall coming across many SQ5 sound resources that only sounded like pieces of a theme or portions of sound effects. I don't know if SCI1 was also capable of this or not. SCI0 definitely was not.

Regarding background palettes, is it possible to have a system of colour matching to an existing palette much like your SCI0 picture importer? To choose between dithering styles, nearest colour, etc? How about just copying the palette of the imported picture? (If it's a 256 colour palette)
« Last Edit: March 10, 2015, 01:37:03 PM by MusicallyInspired »
Brass Lantern Prop Competition

Offline Cloudee1

Re: Possible new version of SCI Companion
« Reply #10 on: March 10, 2015, 02:01:41 PM »
Ooh, does the room map go by the north south etc properties, actually look at the code, or is it defined separately? By the way, the new icons are looking pretty good too.

Right now it only works for games that define north/south/east/west rooms. KQ6 does for the most part, for example, but SQ5 does not. It wouldn't be too hard to scan the code for calls to the newRoom selector, but only if they directly pass a number e.g. newRoom(76), rather than a variable that came from somewhere else.

Lol, noted. So what you're saying is, I'm SOL on this feature. No biggie, kind of figured I would be because of the way I call a new room and I haven't used the directional properties in forever.
Halloween Competition Brass Lantern Prop Competition Groundhog Day Competition

Offline troflip

Re: Possible new version of SCI Companion
« Reply #11 on: March 10, 2015, 03:03:12 PM »
Regarding background palettes, is it possible to have a system of colour matching to an existing palette much like your SCI0 picture importer? To choose between dithering styles, nearest colour, etc? How about just copying the palette of the imported picture? (If it's a 256 colour palette)

Yeah, that's possible.

Which image formats support palettes? (all of them?) I guess I'll have to see what I get out of the image loading library I'm using to see if the palette information is still intact. How would you propose handling images that use all 256 colors?  Are there image editing programs that let you select which palette entries are used out of the 256? It's an area I'm not really familiar with...

Lol, noted. So what you're saying is, I'm SOL on this feature. No biggie, kind of figured I would be because of the way I call a new room and I haven't used the directional properties in forever.

I loaded up Black Cauldron, and sure enough, it doesn't work for that. It looks like you plop a number into a script variable, and then use that script variable in the call to newRoom?


Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline Collector

Re: Possible new version of SCI Companion
« Reply #12 on: March 10, 2015, 03:20:41 PM »
Are there any "SCI1.1" improvements over "SCI1.0" that you consider important? It seems like most of the changes had to do with conserving heap memory (e.g. splitting script files into separate script and heap resources). Using the SQ4 or KQ5 interpreter would probably be the least effort... they use the same resource.map format as SCI0.

I think that this is the point of the addition on separate AUD resources and the audioDrv switch was added to the RESOURCE.CFG. Previously digital audio samples were just embedded in SOUND resources. Gumby and I were going through Brian's SCI VGA template game. Brian's work on reconstructing the scripts for a template game I believe were based on LSL5, an SCI1 game. It looks like these were mostly complete, but a VGA template game would still need to have the resources stripped down to the minimum required and all remaining game specific resources replaced. This should not be that great of a task given proper editors.



I guess that it does not hurt to now reveal that Gumby and I were working on a new SCI IDE in C#. It had been a while since much has been done with it and with a new version of Companion he will probably give up on it at this point. Gumby was doing the backend and I was doing the GUI.

It was also intended to duplicate the functions of the old Sierra Viewer but with drag&drop capabilities and mass resource extraction/export. It can already drag and drop some resources from the game archive and Windows Explorer. It has the ability to automatically generate an NSIS script for game publication. The NSIS scripts can be directly compiled into installers or the script can be loaded into the Script Editor for customization. The NSIS compiler can be invoked from the editor to compile the script. It can import a project from SCI Studio or SCI Companion.

From the GUI side I was being held up with the graphical editors, but I have managed to acquire the source from a number of other projects directly from those authors that will help. the FONT editor is now functional. I have a working AGI picture editor that allows you to easily move existing nodes after the fact. There is also now a functional View editor, but the backend for these two will need to be adapted from AGI to SCI.

From the backend Gumby had the resource management headed in a good direction. I am not sure if he got very far with the compiler yet.

The intent was to have a full featured IDE for a range of versions of SCI that could meet all needs of game development that could be maintained in C#. The inclusion of AGI development looks to be very doable. Enrico Rolfi gave me the source to his SCI tools, including FotoSCIhop for View and Picture editing from SCI1.1 and 2 resources.

Screenshots here.
KQII Remake Pic

Offline Cloudee1

Re: Possible new version of SCI Companion
« Reply #13 on: March 10, 2015, 04:19:18 PM »
Lol, noted. So what you're saying is, I'm SOL on this feature. No biggie, kind of figured I would be because of the way I call a new room and I haven't used the directional properties in forever.

I loaded up Black Cauldron, and sure enough, it doesn't work for that. It looks like you plop a number into a script variable, and then use that script variable in the call to newRoom?

Yep, that's how I do it. That way I can use the unload resource block in an attempt to get every last bit of heap and hunk back at room change. It has come to be my standard practice.  :P
Halloween Competition Brass Lantern Prop Competition Groundhog Day Competition

Offline troflip

Re: Possible new version of SCI Companion
« Reply #14 on: March 10, 2015, 04:52:18 PM »
I guess that it does not hurt to now reveal that Gumby and I were working on a new SCI IDE in C#. It had been a while since much has been done with it and with a new version of Companion he will probably give up on it at this point. Gumby was doing the backend and I was doing the GUI.

Looks like you guys got pretty far, looking at the screenshots. Honestly, I would have ported SCI Companion to C#, were it not for the fact that I'm:
    - trying to brush up on my C++ skills, and
    - the UI would need to be completely redone, and UI is a ton of work. I don't want to abandon all the work I put into this in SCI companion. Of course, had I known you were making a c# app...



It was also intended to duplicate the functions of the old Sierra Viewer but with drag&drop capabilities and mass resource extraction/export. It can already drag and drop some resources from the game archive and Windows Explorer. It has the ability to automatically generate an NSIS script for game publication. The NSIS scripts can be directly compiled into installers or the script can be loaded into the Script Editor for customization. The NSIS compiler can be invoked from the editor to compile the script. It can import a project from SCI Studio or SCI Companion.

From the GUI side I was being held up with the graphical editors, but I have managed to acquire the source from a number of other projects directly from those authors that will help. the FONT editor is now functional. I have a working AGI picture editor that allows you to easily move existing nodes after the fact. There is also now a functional View editor, but the backend for these two will need to be adapted from AGI to SCI.

From the backend Gumby had the resource management headed in a good direction. I am not sure if he got very far with the compiler yet.

The intent was to have a full featured IDE for a range of versions of SCI that could meet all needs of game development that could be maintained in C#. The inclusion of AGI development looks to be very doable. Enrico Rolfi gave me the source to his SCI tools, including FotoSCIhop for View and Picture editing from SCI1.1 and 2 resources.

Screenshots here.

So what are the key additional features/design decisions you put into this? From what I gather:
- Mass resource extraction. I guess this just pops out all the resources from a sierra game into individual files? What's the main usage scenario here, to use them in fanmade games?
- NCIS scripts. I've never heard of this before, but I assume this is to make it easy to publish fanmade games? Like it packages everything up into an easy install, with DOSBox configured, etc..? Is this what was used for the betrayed alliance installer?
- It looks like there are some other project management features... including design docs and such.

Any other noticeable UI/feature improvements? From the screenshots, I see there is a ability to move existing vector lines... that seems like a nice feature.
Check out my website: http://icefallgames.com
Groundhog Day Competition


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

Page created in 0.076 seconds with 23 queries.