Author Topic: Voice acting in Space Quest V  (Read 22027 times)

0 Members and 1 Guest are viewing this topic.

Offline aardvark4lunch

Voice acting in Space Quest V
« on: February 11, 2016, 08:42:30 AM »
Hey all. Game Designer and Voice actor here. I downloaded the new SCICompanion earlier today and started digging around some SCI1.1 games. Specifically I am interested in creating a Talkie patch for SQV. I poked around in SQIV and found it quite easy to record over existing voices, but I have no idea how to add voices to a previously voice-less game.

My problem is three fold from what I can tell.

1. the "speech and lip-syncing" option isn't available when I open a message file for SQV
2. I can force the aforementioned options to appear by going into version detector and ticking on "Supports Message Audio" (probably not a good work around  :P), but when I record the message and then save, the program crashes.
3. Even if it saved correctly and put the speech in the game, would it play back properly? For example, SQV doesn't have a speech/text/both option in the menu. Would it know to play the audio?

I haven't worked on SCI games in a long time, so virtually any assistance/suggestions are appreciated.



Offline Kawa

Re: Voice acting in Space Quest V
« Reply #1 on: February 11, 2016, 09:03:53 AM »
I've actually tried this myself, by following the instructions Phil posted here. Unfortunately, something about it reduced the on-screen text to just "M". Same in my own game. I might be doing something wrong myself, but you're just missing a bunch of steps.

The default framework, the template as it were, that Sierra used is all set up to play audio (where available) for any message spoken by the Narrator or any Talker, depending on the value of gMessageType/global90. So yes, it would know.

Oh, also? There are parts that would not. The intro, for example, when Roger dictates a log and it appears word-for-word? That uses messages as a source, but neither Narrator nor anything derived from it, so that wouldn't be automatically voiced.
« Last Edit: February 11, 2016, 09:08:45 AM by Kawa »

Offline aardvark4lunch

Re: Voice acting in Space Quest V
« Reply #2 on: February 11, 2016, 10:08:55 AM »
I've actually tried this myself, by following the instructions Phil posted here. Unfortunately, something about it reduced the on-screen text to just "M". Same in my own game. I might be doing something wrong myself, but you're just missing a bunch of steps.

The default framework, the template as it were, that Sierra used is all set up to play audio (where available) for any message spoken by the Narrator or any Talker, depending on the value of gMessageType/global90. So yes, it would know.

Oh, also? There are parts that would not. The intro, for example, when Roger dictates a log and it appears word-for-word? That uses messages as a source, but neither Narrator nor anything derived from it, so that wouldn't be automatically voiced.


Thanks, but I can't open the main script.

(forgive my noob-ness)


 "---------------------------
SCICompanion
---------------------------
c:\users\stirling\desktop\sci\space quest 5\src\n000.sc could not be opened.
Would you like to see the disassembly instead?
---------------------------
Yes   No   
---------------------------
"

Offline Kawa

Re: Voice acting in Space Quest V
« Reply #3 on: February 11, 2016, 10:17:14 AM »
You gotta decompile it first. The whole thing, preferably.

Offline aardvark4lunch

Re: Voice acting in Space Quest V
« Reply #4 on: February 11, 2016, 10:29:09 AM »
Herp, my brain wasn't working there for a sec, thanks. Tried decompiling but it but it keeps crashing :(
« Last Edit: February 11, 2016, 10:49:17 AM by aardvark4lunch »

Offline troflip

Re: Voice acting in Space Quest V
« Reply #5 on: February 11, 2016, 10:34:14 AM »
You're attempting to do a pretty advanced thing that requires a good understanding of how the games are put together, and some programming knowledge... to my knowledge, no one has done this before, really.

Roughly speaking, here's what you need to do first:

- start with a fresh copy of your game files (if you've been mucking around with trying to add message audio in the wrong way, SCI Companion may have created a "bad" audio map file for the speech, or something like that). At any rate, start with a fresh copy of the original game

- rename resource.aud to resource.sfx. Speech and digital audio go in separate resource package files, and you'll end up deleting all digital audio in the game if you don't do this (since speech always goes in .aud, and digital audio sfx goes in .aud... or in games with speech it goes in .sfx).

- open the game in SCI Companion. Make the changes necessary as outlined in the thread that kawa linked (check "supports message audio", Set the Audio36 format to "sync map late", and set the Audio volume name to "aud/sfx", reload the game, and add an audio recording to a message resource, etc..).

- make sure the game still runs. Also, you should have both a resource.aud and a resource.sfx in your game folder now

At this point, you should have a game where you can add message audio, and the game should run. Might want to make a backup at this point.

Because now you have to start mucking with scripts. The first thing is to decompile all scripts:

http://scicompanion.com/Documentation/decompiler.html

At the very least, you're going to need to make changes to the Main.sc script. After decompiling things, you should be able to open the Main.sc (and not get the warning message asking if you want to disassemble it).

One other thing is that you'll want to open Tools->PReferences and uncheck " save scripts before run" and " Compile modified scripts before run", or else Companion will recompile scripts that depend on Main after you change Main. Not a huge deal, but to minimize risk (e.g. to change as few script resources as possible to avoid any decompiler bugs) it's a good idea.

Next, in the Main.sc script, you'll want to change the two places that global90 is set to 1, to instead have it set to 2. This switches from text mode to speech mode. Compile, and run the game.

And now... you'll hear nothing when the speech is supposed to play. Haha... I just tried this, and that's what happened anyway. It paused for roughly the right amount of time while the speech played, but I heard nothing.


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

Offline troflip

Re: Voice acting in Space Quest V
« Reply #6 on: February 11, 2016, 10:36:04 AM »
Keeps crashing while decompiling :(

What version of SCI Companion are you using?
Can you send me a zipped up copy of your game folder?
(you don't have a debugger or anything attached to SCI Companion, do you?)
Is this just a standard "this program caused an error and needs to close" Windows error message?
When exactly during decompilation does it crash?
« Last Edit: February 11, 2016, 10:45:43 AM by troflip »
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline aardvark4lunch

Re: Voice acting in Space Quest V
« Reply #7 on: February 11, 2016, 10:48:07 AM »
https://drive.google.com/file/d/0B2QwV5L8BhSKemFFWHp4cDFwOW8/view?usp=sharing



Thanks for helping by the way. I can debug with visual studio, yes. I'm using SCICompanion version 3.0.1.7

Offline troflip

Re: Voice acting in Space Quest V
« Reply #8 on: February 11, 2016, 10:59:01 AM »
Thanks for this. I can actually repro the crash! So your SQ5 must be different than my copy for script 924... let me see what's going on.

Of note, it looks like you have a 924.scr patch applied to this game... suspicious. Mine doesn't have that. Is it an official Sierra patch, or some fan-made patch?

(Also of note, if you do end up compiling any scripts, you'll need to delete any .scr and .hep patch files for that script, or else the game won't pick it up - since SCI Companion builds the scripts into the resource package, and patch files always take precedence)
« Last Edit: February 11, 2016, 11:00:48 AM by troflip »
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline aardvark4lunch

Re: Voice acting in Space Quest V
« Reply #9 on: February 11, 2016, 11:04:02 AM »
Thanks for this. I can actually repro the crash! So your SQ5 must be different than my copy for script 924... let me see what's going on.

Of note, it looks like you have a 924.scr patch applied to this game... suspicious. Mine doesn't have that. Is it an official Sierra patch, or some fan-made patch?

(Also of note, if you do end up compiling any scripts, you'll need to delete any .scr and .hep patch files for that script, or else the game won't pick it up - since SCI Companion builds the scripts into the resource package, and patch files always take precedence)

924.scr patch was my attempt at replacing Messager.sc with the one from the template game. I must reiterate, I really don't know what I'm doing as far as SCICompanion goes.


And now I'm getting an error compiling.   [Error]: new is not a property or method on type 'SpeakWindow'.  Line: 577, col: 38
03:14:50AM
« Last Edit: February 11, 2016, 11:15:46 AM by aardvark4lunch »

Offline troflip

Re: Voice acting in Space Quest V
« Reply #10 on: February 11, 2016, 11:19:10 AM »
924.scr patch was my attempt at replacing Messager.sc with the one from the template game. I must reiterate, I really don't know what I'm doing as far as SCICompanion goes.

Oh yeah, you can't just plop in a script from another game and expect it to work. The SCI1.1 template game *was* based on SQ5, but it's had modifications so it can run on the LSL6 interpreter. And for scripts, the script resource (.scr) is paired with the heap resource (.hep). So at the very least you need both those (you only copied the .scr).

But at any rate, you should start with a clean version of your copy of SQ5, and follow the instructions I listed above. Decompilation should work fine and not crash.

The needed changes to the Messager script should be accomplished by decompiling that script, changing the source code and recompiling it.

*******
As for the feasibility of accomplishing your goal, there are two things to note:

- The SQ5 Messager class doesn't handle printing text and having speech at the same time (which is true for the majority of Sierra games, I think). The SCI 1.1 template game was modified in a few spots to allow for both. So if you want speech and text at the same time, there will need to be some changes. If you just want all speech (global90 set to 2) or all text (global90 set to 1), then this shouldn't be an issue.

- I haven't even been able to get the speech to work by making the changes I listed above (as I mentioned). I don't know if this is a problem with the SQ5 interpreter not allowing it, some remaining changes that need to be made in the script resources, or some issue with the audio drivers included with SQ5.


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

Offline aardvark4lunch

Re: Voice acting in Space Quest V
« Reply #11 on: February 11, 2016, 11:25:36 AM »
I started from a clean version, and decompilation went smoothly. However, I changed the global90 variable and now I'm getting an error when I try and compile   [Error]: new is not a property or method on type 'SpeakWindow'.  Line: 577, col: 38
03:14:50AM


I may just have to give up. I don't know enough about SCI to mess about and experiment and if you can't figure it out, there's no way I will be able to :P

Offline troflip

Re: Voice acting in Space Quest V
« Reply #12 on: February 11, 2016, 11:32:45 AM »
I started from a clean version, and decompilation went smoothly. However, I changed the global90 variable and now I'm getting an error when I try and compile   [Error]: new is not a property or method on type 'SpeakWindow'.  Line: 577, col: 38

Works fine for me using your zipped SQ5 (after I deleted the 3 .scr files you added, deleted the src folder and re-decompiled everything).  What does your SpeakWindow.sc look like?
Check out my website: http://icefallgames.com
Groundhog Day Competition

Offline MusicallyInspired

Re: Voice acting in Space Quest V
« Reply #13 on: February 11, 2016, 11:37:56 AM »
Don't give up, this just gives us a project to work out together. This place needs activity.
Brass Lantern Prop Competition

Offline aardvark4lunch

Re: Voice acting in Space Quest V
« Reply #14 on: February 11, 2016, 11:42:52 AM »
What does your SpeakWindow.sc look like?

A little like this:

Code: [Select]
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 877)
(include sci.sh)
(use n958)
(use n981)


(class SpeakWindow of SysWindow
(properties
top 0
left 0
bottom 0
right 0
color 0
back 15
priority -1
window 0
type $0000
title 0
brTop 0
brLeft 0
brBottom 190
brRight 320
lsTop 0
lsLeft 0
lsBottom 0
lsRight 0
eraseOnly 0
hMargin 0
vMargin 0
tailTop 0
tailLeft 0
tailBottom 0
tailRight 0
tailBits 0
tailX 0
tailY 0
isBottom 1
xOffset 0
underBits1 0
underBits2 0
)

(method (init)
(super init: &rest)
(proc958_0 128 993)
)

(method (dispose &tmp temp0)
(super dispose: &rest)
(= temp0 (GetPort))
(SetPort 0)
(Graph grRESTORE_BOX underBits1)
(Graph
grUPDATE_BOX
tailTop
tailLeft
tailBottom
tailRight
1
)
(SetPort temp0)
)

(method (open &tmp [temp0 2] temp2 temp3 theLeft [temp5 2] temp7 temp8 temp9)
(SetPort 0)
(= priority 15)
(= color 0)
(= back 6)
(= temp8 1)
(if (!= priority -1) (= temp8 (| temp8 $0002)))
(= temp2 (- right left))
(= temp9 (- bottom top))
(cond
((not xOffset) (= temp3 2))
((< 0 xOffset) (= temp3 0))
(else (= temp3 1))
)
(if (not isBottom)
(= temp3 (+ temp3 3))
(= lsTop (+ tailY (CelHigh 993 0 temp3)))
(= top (+ lsTop 3))
(= bottom (+ top temp9))
(= lsBottom (+ bottom 3))
else
(= lsBottom tailY)
(= bottom (- lsBottom 3))
(= top (- bottom temp9))
(= lsTop (- top 3))
)
(= lsLeft
(- (= theLeft (+ (- tailX (/ temp2 2)) xOffset)) 3)
)
(= left theLeft)
(= right (+ left temp2))
(= lsRight (+ 4 right))
(= type 128)
(= tailTop tailY)
(= tailLeft tailX)
(= tailBottom
(+ tailY (if isBottom -2 else 1) (CelHigh 993 0 temp3))
)
(= tailRight (+ tailX (CelWide 993 0 temp3)))
(= underBits1
(Graph
grSAVE_BOX
tailTop
tailLeft
tailBottom
tailRight
temp8
)
)
(super open: &rest)
(= temp7 (GetPort))
(SetPort 0)
(Graph
grFILL_BOX
(- top 3)
(+ left 3)
(+ bottom 2)
(- right 3)
temp8
back
priority
)
(Graph
grFILL_BOX
(+ top 3)
(- left 3)
(- bottom 3)
(+ right 3)
temp8
back
priority
)
(DrawCel 993 1 0 (- left 3) (- top 3) priority)
(DrawCel
993
1
1
(+ (- right (CelWide 993 1 0)) 3)
(- top 3)
priority
)
(DrawCel
993
1
3
(+ (- right (CelWide 993 1 0)) 3)
(+ (- bottom (CelHigh 993 1 0)) 3)
priority
)
(DrawCel
993
1
2
(- left 3)
(+ (- bottom (CelHigh 993 1 0)) 3)
priority
)
(= temp2 6)
(= temp9 3)
(Graph
grDRAW_LINE
lsTop
(+ left temp2)
(- top temp9)
(- right temp2)
7
-1
-1
)
(Graph
grDRAW_LINE
(+ top (* temp9 2))
lsLeft
(- bottom (* temp9 2))
lsLeft
7
-1
-1
)
(Graph
grDRAW_LINE
(+ top (* temp9 2))
(- lsRight 2)
(- bottom (* temp9 2))
(- lsRight 2)
5
-1
-1
)
(Graph
grDRAW_LINE
(- lsBottom 2)
(+ left temp2)
(- lsBottom 2)
(- right temp2)
4
-1
-1
)
(Graph
grDRAW_LINE
(- lsBottom 1)
(+ left temp2)
(- lsBottom 1)
(- right temp2)
0
-1
-1
)
(DrawCel
993
0
temp3
tailX
(+ tailY (if isBottom -2 else 1))
priority
)
(Graph grUPDATE_BOX lsTop lsLeft lsBottom lsRight 1)
(Graph
grREDRAW_BOX
tailY
tailX
(+ tailY (if isBottom -2 else 1) (CelHigh 993 0 temp3))
(+ tailX (CelWide 993 0 temp3))
)
(SetPort temp7)
)

(method (move param1 param2)
(= top (+ top param2))
(= left (+ left param1))
(= bottom (+ bottom param2))
(= right (+ right param1))
)

(method (moveTo param1 param2)
(self move: (- param1 left) (- param2 top))
)

(method (repos param1 param2)
(= top (+ top param2))
(= left (+ left param1))
(= bottom (- bottom param2))
(= right (- right param1))
)
)


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

Page created in 0.031 seconds with 24 queries.