Jump to content


Photo

Restore Oringinal Voice Sets of BG1 NPCs in BGEE


  • Please log in to reply
33 replies to this topic

#1 Marcius Vetrack

Marcius Vetrack
  • Member
  • 8 posts

Posted 20 January 2022 - 05:47 PM

Hello!

 

I find horrible on how the beamdog removed several lines of the Classic BG1 NPCs voices sets, when you click/walk on them, in BGEE. Sometimes they repeat the same line 5 times in a row, is disturbing!

 

is there a mod that restore the original BG1 Classic NPCs soundsets, to the beatifull diverse one from the classic? i found a mod that gives the BG1 npcs voice sets to the player character but nothing else...

 

Thanks in advance.



#2 Graion Dilach

Graion Dilach
  • Modder
  • 106 posts

Posted 21 January 2022 - 03:42 AM

Can you bring exact examples for this, because the companion voicesets were untouched between BG1 and BGEE.



#3 Marcius Vetrack

Marcius Vetrack
  • Member
  • 8 posts

Posted 21 January 2022 - 01:36 PM

There are several lines of Minsc and Viconia for example: "i'm born of a noble race" "i pity ou for your short life span" or "you foolme once, shame on you, you foolme twice, watch it! i'm huge!" "there's strenght in numbers aind i'm two or three at least". i played a lot with imoen and never one time she said "huh, your're a queer fellow" or "i care not". xzar is problably the most affected by this because he never states that he want the infravision of elves by removing their eyes.  these among others, wich i dont recall in that exact moment. these lines are never said for the cited npcs in BGEE

 

i bealive that beamdog retired them because they consideres some of these offensive for mature children or with innapropriate language/or tendencies, intolerable in modern days, but acceptable in a world 20 years ago.


Edited by Marcius Vetrack, 21 January 2022 - 01:58 PM.


#4 Graion Dilach

Graion Dilach
  • Modder
  • 106 posts

Posted 21 January 2022 - 03:41 PM

Just tested BGEE 2.6 and both of Imoen's missing lines are included as selection responses. Comparing the files against their GoG oBG1 counterparts reveal that while Imoen was changed by Beamdog at one point, the change on her was only limited to duplicate a few of her lines to better comment on reputation, and there were no deletions. The Minsc, Xzar and Viconia lines you cite are spam-selection responses which properly trigger on the 9th selection-in-a-row in BGEE (as it was in BG1).

 

Are you actually aware of the spam-selection logic? BG2 didn't have this as an engine feature, so Tutu and BGT had to reshuffle these lines into different roles. The Tutu/BGT soundset setup is not accurate to BG1 and BGEE is the right one here.

 

EDIT: Okay, installed both Tutu and BGT to check this. Tutu reshuffles. BGT (tested with 1.21) doesn't and turns all the selection-spam sounds into standard moving responses. That's... not good.


Edited by Graion Dilach, 21 January 2022 - 04:12 PM.


#5 Sam.

Sam.
  • Administrator
  • 1337 posts

Posted 22 January 2022 - 08:49 AM

Pretty sure Safana's voiceset got changed significantly between oBG1 and SoD (including the BG1 portion).  Not sure about BGEE by itself.


"Ok, I've just about had my FILL of riddle asking, quest assigning, insult throwing, pun hurling, hostage taking, iron mongering, smart-arsed fools, freaks, and felons that continually test my will, mettle, strength, intelligence, and most of all, patience! If you've got a straight answer ANYWHERE in that bent little head of yours, I want to hear it pretty damn quick or I'm going to take a large blunt object roughly the size of Elminster AND his hat, and stuff it lengthwise into a crevice of your being so seldom seen that even the denizens of the nine hells themselves wouldn't touch it with a twenty-foot rusty halberd! Have I MADE myself perfectly CLEAR?!"

--<CHARNAME> to Portalbendarwinden

--------------------

post-10485-0-15080600-1348188745.jpg
___________Old pen and paper modules of the 70s and 80s.___________

CA Forums CA Homepage


#6 Graion Dilach

Graion Dilach
  • Modder
  • 106 posts

Posted 22 January 2022 - 05:22 PM

Safana's BG1 voiceset has dummy entries for AREA_FOREST/DUNGEON/DAY/NIGHT in oBG1, these are deleted in BGEE. There are no other changes.

 

All returning companions excluding Jaheira got a new voiceset in SoD but those newer sets are only used during the SoD campaign.



#7 The Imp

The Imp

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

  • Member
  • 5155 posts

Posted 22 January 2022 - 07:05 PM

BGT (tested with 1.21) doesn't and turns all the selection-spam sounds into standard moving responses. That's... not good.


From my memory, with BGT-weidu... (might as well be in v1.05b), they didn't do a horrible job with the sound sets, I only used a few party members, Imoen, Jaheira&, Ajantis, Minsc, Dynaheira, Branwen, Khalid ; but those were good as far as I remember, no out of standard moving responses or the like. Could be later version corruptions... but that's a little doubtful.


Edited by The Imp, 22 January 2022 - 07:06 PM.

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.


#8 skellytz

skellytz
  • Staff
  • 576 posts

Posted 22 January 2022 - 07:58 PM

BGT had to reshuffle these lines into different roles. The Tutu/BGT soundset setup is not accurate to BG1 and BGEE is the right one here. BGT (tested with 1.21) doesn't and turns all the selection-spam sounds into standard moving responses. That's... not good.

I proposed a solution but there wasn't enough feedback to include it in BGT core. These tweaks will be available in Infinity Sounds.



#9 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 23 January 2022 - 04:57 AM

Hi


BGT had to reshuffle these lines into different roles. The Tutu/BGT soundset setup is not accurate to BG1 and BGEE is the right one here. BGT (tested with 1.21) doesn't and turns all the selection-spam sounds into standard moving responses. That's... not good.

I proposed a solution but there wasn't enough feedback to include it in BGT core. These tweaks will be available in Infinity Sounds.

I plan to make fix for fork of ToBex to restore BG1 rare sound behaviour for BG1 part of BGT, e.g. reduce SELECT_ACTION1,7 to SELECT_ACTION1,3  and use SELECT_ACTION_4,7 as rare sounds instead of BG2' SELECT_RARE1,2.
Issues:
1) Modified BG1 .CRE where sounds was reshufled
2) BG1 3rd-party MODs written specialy for BG2(BGT) engine, include ported from bg2


Edited by Insomniator, 23 January 2022 - 05:01 AM.


#10 Graion Dilach

Graion Dilach
  • Modder
  • 106 posts

Posted 23 January 2022 - 08:43 AM

A better option would be to use the first 4 slots in the CRE after the EXISTENCE5 slot for this (0x596CH-0x5974H) to follow the EE 2.6 patch assigning those slots out for this role.

 

Since these slots are unused in the prior games, they wouldn't affect legacy.



#11 skellytz

skellytz
  • Staff
  • 576 posts

Posted 23 January 2022 - 01:54 PM

fix for fork of ToBex to restore BG1 rare sound behaviour for BG1 part of BGT, e.g. reduce SELECT_ACTION1,7 to SELECT_ACTION1,3  and use SELECT_ACTION_4,7 as rare sounds

You mean it would have to be uninstalled prior to starting BG2 portion of the game? Otherwise there would be lots of issues with BG2 joinables and other NPCs.

 

A better option would be to use the first 4 slots in the CRE after the EXISTENCE5

Yes, but then there would have to be a patch moving the sound refs to the new offsets. Not much of a problem if we want to fix only the joinable NPCs.

 

When it comes to non-joinable NPCs, there are tons of BG2 cres with garbage refs (either invalid or incorrectly copied over from mismatched template) that we don't want to enable by accident with an all-resources patch. Not to mention mod cres. Filtering out files or refs would be a real pain, which is why I went for a custom list of BG1 cres allowed to have restored rare sounds in Infinity Sounds. That means mod-added BG1 non-joinable NPCs still won't play the rare sounds if present.



#12 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 24 January 2022 - 09:14 AM

Hi skellytz

fix for fork of ToBex to restore BG1 rare sound behaviour for BG1 part of BGT, e.g. reduce SELECT_ACTION1,7 to SELECT_ACTION1,3  and use SELECT_ACTION_4,7 as rare sounds

You mean it would have to be uninstalled prior to starting BG2 portion of the game? Otherwise there would be lots of issues with BG2 joinables and other NPCs.

If we play at BG1 part, engine handle all .CRE as legacy with four rare sounds. If we play BG2, engine handle all .CRE as BG2's creatures. I know this is not best solution because "cross" .CRE can leak to other part of game.

But this will works with BG1 part of BGT (sorry, i don't know how BGT works, if it doesn't create exact copy of BG1 CRE for every BG1 .are/script, then my idea is meaningless) and any BG1 mods.

 

A better option would be to use the first 4 slots in the CRE after the EXISTENCE5

Yes, but then there would have to be a patch moving the sound refs to the new offsets. Not much of a problem if we want to fix only the joinable NPCs.

BG1 mods are still issue, need to move sounds too (of couse we don't know .cre names), and do it again after installing new mod



#13 Graion Dilach

Graion Dilach
  • Modder
  • 106 posts

Posted 24 January 2022 - 10:37 AM

I might be wrong here but most of the BG1 companion mods are actually Tutu/BGT-only, not supporting oBG1 and they have BG2 soundset setup. So I suspect this reshuffling of BG1-rare-responses-to-unused slots wouldn't affect as many mods as one would assume (from my own experiences, I filed more PRs which moves the supposed-to-be common 4-7 responses to the prior-unused slots for BGEE than moving supposed-to-be rare-select lines to unused slots for EET).

 

In fact, only Finch comes into my mind as a mod NPC using a BG1 voiceset.



#14 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 24 January 2022 - 11:29 AM

I might be wrong here but most of the BG1 companion mods are actually Tutu/BGT-only, not supporting oBG1 and they have BG2 soundset setup.


if it is true, problem has no solution, only to mark every .CRE file from BGT fileset (and all oBG1/tutu/bgt mods) to be BG1 or BG2 like.



#15 skellytz

skellytz
  • Staff
  • 576 posts

Posted 24 January 2022 - 12:59 PM

If we play at BG1 part, engine handle all .CRE as legacy with four rare sounds. If we play BG2, engine handle all .CRE as BG2's creatures. I know this is not best solution because "cross" .CRE can leak to other part of game.

But this will works with BG1 part of BGT (sorry, i don't know how BGT works, if it doesn't create exact copy of BG1 CRE for every BG1 .are/script, then my idea is meaningless) and any BG1 mods.

Ok, could you explain what you mean by marking creatures as BG1 or BG2? Should there be something like a table of creature file names loaded into the injector that the virtual engine reads and switches soundset processes only for them to treat action 4-7 as rare 1-4? Or process all creatures based on variables the engine interprets as "the player is in BG1", "the player has transitioned to BG2"? The latter, as you said, will obviously break action 4-7 of NPCs with BG2-style soundsets added to BG1.



#16 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 25 January 2022 - 06:34 AM

Hi

If we play at BG1 part, engine handle all .CRE as legacy with four rare sounds. If we play BG2, engine handle all .CRE as BG2's creatures. I know this is not best solution because "cross" .CRE can leak to other part of game.
But this will works with BG1 part of BGT (sorry, i don't know how BGT works, if it doesn't create exact copy of BG1 CRE for every BG1 .are/script, then my idea is meaningless) and any BG1 mods.

Ok, could you explain what you mean by marking creatures as BG1 or BG2? Should there be something like a table of creature file names loaded into the injector that the virtual engine reads and switches soundset processes only for them to treat action 4-7 as rare 1-4? Or process all creatures based on variables the engine interprets as "the player is in BG1", "the player has transitioned to BG2"? The latter, as you said, will obviously break action 4-7 of NPCs with BG2-style soundsets added to BG1.

this way - process all creatures based on variables the engine interprets as "the player is in BG1", "the player has transitioned to BG2". For "transitioned to BG2" party will be exclusion- if creature was created in BG1 part, it will have BG1 soundset forever (simple mark - any unused bit in .CRE file)
As i wrote before - if BGT mix BG1 and BG2 creatures on BG1 maps - this will be mess and no way to different creatures

 

Another ideafix - find difference in .CRE format, if we can detect origin of .CRE this way - we get fortune


Edited by Insomniator, 25 January 2022 - 06:40 AM.


#17 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 25 January 2022 - 08:41 AM

A little of fun:
BG1(v5521, 3CD) and BG2(TOB, v26498) has 182 collision .CRE filenames
After comparing only 0x124-0x140 range inside .CRE (SELECT_ACTION+SELECT_RARE string references) i got only 8 collision:
GORION.CRE, bg1 - garbage, bg2 - garbage
IMOEN.CRE, much different
OGREGRSU.CRE, bg1 - one rare, bg2 - zero rare
TAZOK.CRE, bg1 - three rare, bg2 - zero rare
TOWNCR.CRE, bg1 - one rare, bg2 - zero rare
WILLIA.CRE, bg1 - two rare sounds, bg2 - zero rare
WILLIAM.CRE, bg1 - zero rare, bg2 - one rares (garbage ?)
XZAR.CRE, bg1 - full selection&rare, bg2 - zero rare

So 99.99% BG1 creatures can be presented on BGT's BG1 maps with BG1 or BG2 variant with orig soundset


helper utils:
1) process.cmd:
for %%a in (*.cre) do cut.cmd %%a
2) cut.cmd (dd is unix util, available for windows too):
dd.exe bs=1 skip=292 if=%1 of=tmp
dd.exe bs=1 count=28 if=tmp of=cut\%1



#18 skellytz

skellytz
  • Staff
  • 576 posts

Posted 25 January 2022 - 02:06 PM

When there are real conflicts between BG1 and BG2 variants of the NPC cre file, BGT uses the BG1 (renamed with bg prefix, eg "bgtazok").

 

If we assume that any mod-added joinables that appear during BG1 portion of BGT use BG2 soundsets (with extra action sounds instead of rare) and only vanilla ones have rare selection sounds, then how about excluding joinables from the whole "player is in BG1" / "player is now in BG2" process? You could use this method for only non-joinable cres to restore their nine-click rare selection sounds.

 

For joinables, it could be better to keep the action slots and instead use the four 0x1d0 - 0x1dc slots for rare sounds (like BGEE, as Graion mentioned). BGT would then patch the vanilla joinables to move their sounds to the new slots if your TobEx fork is installed. That way we don't break any mod-added joinables.



#19 Insomniator

Insomniator
  • Modder
  • 358 posts

Posted 26 January 2022 - 05:38 AM

If we assume that any mod-added joinables that appear during BG1 portion of BGT use BG2 soundsets (with extra action sounds instead of rare)

We cannot assume this, instead we can split all MODs for BG1 part to be "soundset for BG1 engine" and "soundset for BG2(BGT/Tutu) engine".
I don't have experience with bg1 mods, and if most of them are "for bg2 engine", yes, i can mark vanilla .CRE by know filelist. All creatures out of list assume as be BG2-like, no matter joinable or not.
Or safe simple options to installer:
- assume all creatures in BG1 part to have BG1 soundset
- assume all creatures from installed mods in BG1 part to have BG1 soundset
- assume all creatures from installed mods in BG1 part to have BG2 soundset
So MODs problem becomes a player's problem :)
 

For joinables, it could be better to keep the action slots and instead use the four 0x1d0 - 0x1dc slots for rare sounds (like BGEE, as Graion mentioned). BGT would then patch the vanilla joinables to move their sounds to the new slots if your TobEx fork is installed. That way we don't break any mod-added joinables.

can you explain detailed ? - which .CRE take as base (BG1 or BG2), where do action1-7 slots come from, where do rare1-4 slots come from


Edited by Insomniator, 26 January 2022 - 05:40 AM.


#20 Graion Dilach

Graion Dilach
  • Modder
  • 106 posts

Posted 26 January 2022 - 12:29 PM

IDS V1.0
0 INITIAL_MEETING
1 MORALE
2 HAPPY
3 UNHAPPY_ANNOYED
4 UNHAPPY_SERIOUS
5 UNHAPPY_BREAKING_POINT
6 LEADER
7 TIRED
8 BORED
9 BATTLE_CRY1
10 BATTLE_CRY2
11 BATTLE_CRY3
12 BATTLE_CRY4
13 BATTLE_CRY5
14 ATTACK1
15 ATTACK2
16 ATTACK3
17 ATTACK4
18 DAMAGE
19 DYING
20 HURT
21 AREA_FOREST
22 AREA_CITY
23 AREA_DUNGEON
24 AREA_DAY
25 AREA_NIGHT
26 SELECT_COMMON1
27 SELECT_COMMON2
28 SELECT_COMMON3
29 SELECT_COMMON4
30 SELECT_COMMON5
31 SELECT_COMMON6
32 SELECT_ACTION1
33 SELECT_ACTION2
34 SELECT_ACTION3
35 SELECT_ACTION4
36 SELECT_ACTION5
37 SELECT_ACTION6
38 SELECT_ACTION7
39 INTERACTION1
40 INTERACTION2
41 INTERACTION3
42 INTERACTION4
43 INTERACTION5
44 INSULT1
45 INSULT2
46 INSULT3
47 COMPLIMENT1
48 COMPLIMENT2
49 COMPLIMENT3
50 SPECIAL1
51 SPECIAL2
52 SPECIAL3
53 REACT_TO_DIE_GENERAL
54 REACT_TO_DIE_SPECIFIC
55 RESPONSE_TO_COMPLIMENT1
56 RESPONSE_TO_COMPLIMENT2
57 RESPONSE_TO_COMPLIMENT3
58 RESPONSE_TO_INSULT1
59 RESPONSE_TO_INSULT2
60 RESPONSE_TO_INSULT3
61 DIALOG_HOSTILE
62 DIALOG_DEFAULT
63 ACTION_RARE1
64 ACTION_RARE2
65 CRITICAL_HIT
66 CRITICAL_MISS
67 TARGET_IMMUNE
68 INVENTORY_FULL
69 PICKED_POCKET
70 HIDDEN_IN_SHADOWS
71 SPELL_DISRUPTED
72 SET_A_TRAP
73 EXISTANCE4
74 BIO
75 NINECLICK_SELECT_RARE1
76 NINECLICK_SELECT_RARE2
77 NINECLICK_SELECT_RARE3
78 NINECLICK_SELECT_RARE4
79 SELECT_ACTION8
80 SELECT_ACTION9
81 SELECT_ACTION10
82 SELECT_ACTION11
83 IWDEE_MORALE2
84 IWDEE_LEADER2
85 IWDEE_TIRED2
86 IWDEE_BORED2
87 IWDEE_HURT2
88 IWDEE_SELECT_COMMON7
89 IWDEE_DAMAGE2
90 IWDEE_DAMAGE3
91 IWDEE_DYING2
92 IWDEE_REACT_TO_DIE_GENERAL2

This is the BG2EE SNDSLOT.IDS with some normalization. It follows BG2 up until 74 and only extends it beyond (I renamed 63 and 64 from SELECT_RARE to ACTION_RARE since that is what the X and Y suffixes are moreso). 75-79 is our proposal for this one issue,. but the rest might also be worthy of consideration (79-82 was added because BGEE).

 

And yes, this would be global from TobEx side and mods are setting this up for their own use or don't.

 

Also, skellytz, BGEE is reverse-compatible with the oBG1 soundset setup, CRE soundset slot distribution is among the few things controlled by the engine_mode value in engine.lua.


Edited by Graion Dilach, 26 January 2022 - 12:34 PM.