Jump to content


[Solved] Chanters in Candlekeep


  • Please log in to reply
104 replies to this topic

#21 Salk

Salk
  • Modder
  • 1419 posts

Donator

Posted 03 November 2014 - 01:41 PM

You've had a good eye for that.

 

Yes, I noticed the Town Crier in Beregost too. I hadn't noticed the peasants in Nashkel asking you to get out of their way when approaching them though. I tried to do what the OP did (extract the .wav files from the BG1 NPCSound.bif via NI to then copy to the BG2 override folder) but that didn't help.


Edited by Salk, 03 November 2014 - 01:42 PM.


#22 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 03 November 2014 - 03:09 PM

Pretty sure the sounds are there; it's an issue of the BG2 engine behaving differently than BG1. Did you try clicking on the chanters (etc.) especially with subtitles on, as in my last post above? If it is an engine issue, I'm sure it's theoretically possible to address this via scripting, but as A64 said, it may be that "The cost of pedantry is a little too dear, IMO."


Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#23 Salk

Salk
  • Modder
  • 1419 posts

Donator

Posted 04 November 2014 - 12:10 AM

Hi Miloch.

 

Yes, right clicking on the chanters, with subtitles on, has the desired effect. But who right clicks on NPCs, really? Yes, it's a minor thing but the chanters are iconic and unique characters in the game so it's a real shame their chanting is lost. I am going to ask jastey's help for restoring the missing .dlg resources to partly address the issue. It won't be perfect but it'll be better than what it is now. It might be BG1 UB material for BGT.


Edited by Salk, 04 November 2014 - 12:11 AM.


#24 Tash

Tash
  • Validating
  • 125 posts

Posted 04 November 2014 - 01:16 PM

That's a great idea, Salk. BG2 apparently doesn't use "greetings," either. That is, in BG1 Kolssed hails you before the actual dialog starts; in BGT he says the line when the dialog box pops up. Of course, I wouldn't know, but for the engine walk-around there must be some kind of a proximity trigger a modder could apply to the area and a simple function, if player in proximity goto play sound effect and display subtitle line and create effect -> target: chanter -> white dialogue circle.

 

Heh, btw, I've actually learned to right-click every single NPC. Otherwise, I'd never hear Mulahey fart! Hilarious :lol2:.



#25 Miloch

Miloch

    Barbarian

  • Modder
  • 6579 posts

Posted 16 November 2014 - 02:54 PM

You could prepend a simple script block to every actor so that they fire their "initial meeting" line when the PC is within a certain distance. It wouldn't take a whole lot of work, but you could potentially break some things, so it'd require a fair amount of testing.


Infinity Engine Contributions
Aurora * BG1 NPC * BG1 Fixpack * Haiass * Infinity Animations * Level 1 NPCs * P5Tweaks
PnP Free Action * Thrown Hammers * Unique Containers * BG:EE * BGII:EE * IWD:EE
================================================================
Player & Modder Resources
BAM Batcher * Creature Lister * Creature Checker * Creature Fixer * Tutu/BGT Area Map & List * Tutu Mod List
================================================================
"Infinity turns out to be the opposite of what people say it is. It is not 'that which has nothing beyond itself' that is infinite, but 'that which always has something beyond itself'." -Aristotle


#26 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 30 May 2015 - 12:14 AM

/


Edited by Fiann of the Silver Hand, 31 May 2015 - 08:38 PM.


#27 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 31 May 2015 - 08:37 PM

Nevermind.  No scripting needed.  The EXISTANCE[1-5] sounds are the ones that are randomly played without prompting.  There's a problem with all BG1 CREs in BGT that the sounds are incorrectly copied, and places EXISTANCE1 in the immediately preceeding PICKED_POCKET slot, which means it will never get played.  CREs with multiple of these only have the first misplaced.

 

tl;dr It's a conversion error.


Edited by Fiann of the Silver Hand, 31 May 2015 - 08:38 PM.


#28 K4thos

K4thos
  • Modder
  • 315 posts

Posted 01 June 2015 - 04:00 AM

nice find. Now let's think how to fix it...

http://gemrb.org/ies...g1/soundoff.htm

http://gemrb.org/ies...bg2/sndslot.htm

as you can see bg2 uses offsets 69-73 for:

69 PICKED_POCKET
70 HIDDEN_IN_SHADOWS
71 SPELL_DISRUPTED
72 SET_A_TRAP
73 EXISTANCE4 (probably unuseed)

and BG1:

69 IDLE_1
70 IDLE_2
71 IDLE_3
72 IDLE_4
73 IDLE_5

Fiann of the Silver Hand, you mentioned that with multiple of these only first one is misplaced, but as shown above this shouldn't be the case either as other slots (with the EXISTANCE4 exception) are already reserved too. Not sure how to deal with it. Theoretically CRE files have 25 unused sound offsets, so maybe they could be assigned to ids as IDLE_1-5. Not sure how exactly it works and if this is hardcoded.



#29 Creepin

Creepin
  • Administrator
  • 1676 posts

Posted 01 June 2015 - 04:00 AM

tl;dr It's a conversion error.
This one, if true, is a fantastic catch, and I really hope with Ascension64 gone there is anybody left capable to update BGT with it.

The Old Gold - v0.2 WIP (mod for BGT/BWP/BWS)


#30 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 01 June 2015 - 12:48 PM

This is great find Fiann of the Silver Hand!

 

I went through everything and BGT doesn't touch sound slots in conversion, so 69 IDLE_1 goes to 69 PICKED_POCKET.

So I tested all in BGT, and if you copy StringRef from 69 PICKED_POCKET to 70 HIDDEN_IN_SHADOWS and 71 SPELL_DISRUPTED, chanters start singing!

Try with attached CHANTE.CRE.

They are not singing at rate from BG1, but they are singing.

Tried all slots from 70-73, but if it is in just single slot, nothing happen.
Maybe some other combination works better.

 

And it could be easy fix in BGT.tp2, just before BGT copies every CRE from bg1cre to override, if creature has IDLE_1 slot filled, copy it to correct slots.

 

Attached File  CHANTE.CRE   1.07K   400 downloads

 

P.S.

Naming of sound slots in NI needs to be updated (at least in BG1), if we know correct naming.


Edited by Mad Mate, 01 June 2015 - 02:31 PM.


#31 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 01 June 2015 - 01:36 PM

They are not singing at rate from BG1, but they are singing.

I think this may be the hardcoded part.  For sure, the sounds are triggered much less often in BG2 than BG.  I've even tried putting the same sound in all 5 EXISTANCE slots, to no effect.



#32 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 01 June 2015 - 02:29 PM

They are not singing at rate from BG1, but they are singing.

I think this may be the hardcoded part.  For sure, the sounds are triggered much less often in BG2 than BG.  I've even tried putting the same sound in all 5 EXISTANCE slots, to no effect.

You're right. I tested all slots now, and combinations. It seams that important slot is 70 EXISTANCE (or 70 HIDDEN_IN_SHADOWS as it is in IESDP).

Rate of singing is much slower than BG1, but, as you said, that could be hardcoded.

 

Now we just need weidu code that will check all CREs in bg1cre dir (BGT-created dir for BG1-extracted CREs) for filled 69 sound slot (slot /= -1), copy StringRef to slot 70, and put "-1" to 69 slot.

Can anybody help?


Edited by Mad Mate, 01 June 2015 - 02:32 PM.


#33 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 01 June 2015 - 03:22 PM

Because some CREs do have multiple sounds for those slots, we need to swap whatever's in 70 to 71, 72 to 73*, etc, so we're not overwriting or replacing a sound that should be there.

 

* or just move 69 to the first open slot in 70-74


Edited by Fiann of the Silver Hand, 01 June 2015 - 03:24 PM.


#34 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5155 posts

Posted 01 June 2015 - 03:23 PM

Can anybody help?
Well, basically it would go like this:

The code was off in this bit...

The question is, is that really what we ought to do, as for example in the BG1, the chanters have the dialog line assigned to both their INITIAL_MEETING and SELECT_COMMON1 and a different random place out in the wilderness.
The reason why the two games play the files differently is because they use a different files, one being a .wavc while the other is a .wav .

Edited by The Imp, 02 June 2015 - 05:07 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#35 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 01 June 2015 - 07:09 PM

Nah, they're all wav in NPCSound.bif.  I have no idea why you have wavc.

 

The chanters have two distinct tlk entries that use the same SOUND so they can do their random chanting without intrusive floating text if you have subtitles on.


Edited by Fiann of the Silver Hand, 01 June 2015 - 07:12 PM.


#36 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5155 posts

Posted 01 June 2015 - 09:22 PM

Nah, they're all wav in NPCSound.bif.  I have no idea why you have wavc.
Well, did you actually read the linked file description ?
WAVC can be played from either the override folder or BIF files. WAVC files are 22050 Hz, 16 bits, and must be renamed to *.WAV before being used in the game. The IE plays WAVC files at twice the speed of the original WAV file.
The reason being that the PC handles files with 4 markers in the files extension very poorly. The files data itself will tell if it's a .wav file or a .wavc(as that's the compressed .wav file)..

Edited by The Imp, 02 June 2015 - 12:43 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#37 Fiann of the Silver Hand

Fiann of the Silver Hand
  • Member
  • 286 posts

Posted 02 June 2015 - 01:08 AM

BG2 engine plays the BG files with or without conversion/renaming to plain wav, no?

 

In any case, it has nothing to do with why the Chanters weren't chanting.

 

We need to modify your code so that it moves, in order, 73>74, 72>73, 71>72, 70>71, and then 69>70.  Otherwise, what I already said about it ignoring the first if there are multiple EXISTANCEs.


Edited by Fiann of the Silver Hand, 02 June 2015 - 01:14 AM.


#38 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5155 posts

Posted 02 June 2015 - 02:09 AM

..- code was edited out -..
 


Edited by The Imp, 02 June 2015 - 05:30 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#39 Creepin

Creepin
  • Administrator
  • 1676 posts

Posted 02 June 2015 - 04:27 AM

Shouldn't it be
WRITE_ASCII ~0x00a4 + 70*8~ ~soundreplace~
WRITE_ASCII ~0x00a4 + 71*8~ ~soundreplace2~
WRITE_ASCII ~0x00a4 + 72*8~ ~soundreplace3~
WRITE_ASCII ~0x00a4 + 73*8~ ~soundreplace4~
WRITE_ASCII ~0x00a4 + 74*8~ ~soundreplace5~
 instead of
WRITE_ASCII ~0x00a4 + 70*8~ ~soundreplace~
WRITE_ASCII ~0x00a4 + 71*8~ ~-1~
WRITE_ASCII ~0x00a4 + 72*8~ ~-1~
WRITE_ASCII ~0x00a4 + 73*8~ ~-1~
WRITE_ASCII ~0x00a4 + 74*8~ ~-1~
?

Edited by Creepin, 02 June 2015 - 06:10 AM.

The Old Gold - v0.2 WIP (mod for BGT/BWP/BWS)


#40 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5155 posts

Posted 02 June 2015 - 05:29 AM

Again, this is the finished .tp2 code you can just paste to a .txt file and rename that to a setup-*modname*.tp2, with the *modname* being of your own choice, and you then just copy setup-bgt.exe and rename that as the setup-*modname*.exe, and then run it:
BACKUP ~bgt/soundfix/backup~
AUTHOR ~The Imp~
BEGIN ~Chanter sound fix for BGT-weidu~

DEFINE_PATCH_MACRO ~reindexing_sound_files_for_bgt~ BEGIN
PATCH_IF (SOURCE_SIZE > 0x02cc) THEN BEGIN
READ_LONG 0x1b8 ~soundreplace~
READ_LONG 0x1bc ~soundreplace2~ //aka slot 70
READ_LONG 0x1c0 ~soundreplace3~
READ_LONG 0x1c4 ~soundreplace4~
READ_LONG 0x1c8 ~soundreplace5~
PATCH_IF ("%soundreplace%" > "0") THEN BEGIN
WRITE_LONG 0x1b8 ~-1~
WRITE_LONG 0x1bc ~%soundreplace%~
WRITE_LONG 0x1c0 ~-1~
WRITE_LONG 0x1c4 ~-1~
WRITE_LONG 0x1c8 ~-1~
WRITE_LONG 0x1cc ~-1~
END
END
END

COPY_EXISTING ~voieas.cre~ ~override~
LAUNCH_PATCH_MACRO ~reindexing_sound_files_for_bgt~
COPY_EXISTING ~voinor.cre~ ~override~
LAUNCH_PATCH_MACRO ~reindexing_sound_files_for_bgt~
COPY_EXISTING ~voisou.cre~ ~override~
LAUNCH_PATCH_MACRO ~reindexing_sound_files_for_bgt~
COPY_EXISTING ~voiwes.cre~ ~override~
LAUNCH_PATCH_MACRO ~reindexing_sound_files_for_bgt~

The reason to use the -1's in all the rest of the indexes is that the original file in BG1 doesn't have anything assigned to them, and we might wish to keep them that way.

Edited by The Imp, 02 June 2015 - 05:34 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.