Jump to content


Photo

Stutter 2: The Stutter Returns


  • Please log in to reply
93 replies to this topic

#41 erebusant

erebusant

    It takes a village...

  • Modder
  • 2109 posts

Posted 01 August 2006 - 11:43 AM

how can i resist a compare n contrast?

i compared the two weidu logs attached to this post, working on the assumption that the 070306 install was lagging.

only the lagging install used:
~SETUP-BD-TOB.TP2~ #0 #0 // Baldurdash Fix Pack for ToB, v1.5 WeiDU
~SETUP-BD-TOB.TP2~ #0 #1 // Textupdatepack -> Baldurdash English Text Update Pack for ToB, v1.4 WeiDU
~SETUP-TDD.TP2~ #0 #1 // TDD Character Kits
~SETUP-CTB-CHORES.TP2~ #0 #0 // Candlekeep Chores, v2.0
~SETUP-UB.TP2~ #0 #18 // Restored Minor Dialogs
~SETUP-D0TWEAK.TP2~ #0 #1 // Corrected Summoned Demon Behaviour
~SETUP-D0TWEAK.TP2~ #0 #2 // Corrected Demon Animations
~SETUP-D0TWEAK.TP2~ #0 #20 // Slower Walking Speeds
~SETUP-BG2_TWEAKS.TP2~ #0 #2010 // PnP Spell Progression Tables
~SETUP-BG2_TWEAKS.TP2~ #0 #2070 // Druids Use Cleric Level and Spell Progression

working on the premise that my install is not lagging and i have installed these components, the following are unlikely to be the cause of lag:
~SETUP-BD-TOB.TP2~ #0 #0 // Baldurdash Fix Pack for ToB, v1.5 WeiDU
~SETUP-BD-TOB.TP2~ #0 #1 // Textupdatepack -> Baldurdash English Text Update Pack for ToB, v1.4 WeiDU
~SETUP-TDD.TP2~ #0 #1 // TDD Character Kits
~SETUP-UB.TP2~ #0 #18 // Restored Minor Dialogs

also unlikely to cause lag, as they're just 2da alterations:
~SETUP-BG2_TWEAKS.TP2~ #0 #2010 // PnP Spell Progression Tables
~SETUP-BG2_TWEAKS.TP2~ #0 #2070 // Druids Use Cleric Level and Spell Progression

equally unlikely to cause lag due to rarity of in-game use:
~SETUP-D0TWEAK.TP2~ #0 #1 // Corrected Summoned Demon Behaviour
~SETUP-D0TWEAK.TP2~ #0 #2 // Corrected Demon Animations

this leaves, as possible suspects (in conjunction with other, otherwise 'clean' components, at a guess):
~SETUP-CTB-CHORES.TP2~ #0 #0 // Candlekeep Chores, v2.0
~SETUP-D0TWEAK.TP2~ #0 #20 // Slower Walking Speeds

so: those of you with lag, can you try removing these components if you've got them installed; clearing yr cache and tmp folders, and trying a saved game?

altho it might be time to break out some quantitative data analysis software and search for common features...


Crap!! Here is the WeiDU log that lagged for your compare and contrast. http://www.shsforums...pe=post&id=3440 It was after my stutter started right in the middle of DSotSC that I abandoned those suspect COM and other Battle type mods that I had in for their challenges and went for just letting BP do what it is designed to do to enhance the AI. If I can get through this game as installed with no major problems, perhaps I'll experiment more with smaller mod intercompatibility, and see which mod installation makes my install start to stutter around. The main difference between the WeiDU logs in the Mega-Install thread are the 1st was with BD v1.5, and the 2nd with BG2 Fixpack beta because it was released just after I re-installed to remove the suspicious mods. Like I said, Without COM, Dark Ritual, Battles, Ajocmod, and Azenmod, i've not had the stutter issue. Perhaps a few other smaller mods I decided to dispense with as well, as I didn't really need them,,, :whistling:

Edited by erebusant, 01 August 2006 - 11:51 AM.

It takes a village...


#42 Miraz

Miraz
  • Member
  • 138 posts

Posted 01 August 2006 - 12:08 PM

Just did a complete reinstall. No change.

The ONLY thing which got rid of this stutter is when I put in that empty baldur.bcs file that Himself posted.

Something sinister is going on here ... what could cause the exact same problem in a game of BG2 with BP installed AND a mega-mod game of BG1?

#43 erebusant

erebusant

    It takes a village...

  • Modder
  • 2109 posts

Posted 01 August 2006 - 12:41 PM

Just did a complete reinstall. No change.

The ONLY thing which got rid of this stutter is when I put in that empty baldur.bcs file that Himself posted.

Something sinister is going on here ... what could cause the exact same problem in a game of BG2 with BP installed AND a mega-mod game of BG1?


If you are using a saved game with your new install, whatever is causing the stutter is saved as well, so it will probably be apparent in your new install as well. Best to start fresh.

It takes a village...


#44 Meira

Meira

    I'm the snow on your lips

  • Member
  • 411 posts

Posted 01 August 2006 - 02:30 PM

I don't think (err...I hope) that it's not Amber causing lag Miraz's game. I also think that BGHead's (berelinde's) lag was also a symptom of some other problem than Miraz's because in BGHead's case emptying the chase solved the issue.

But since BGhead's lag seemed to be connected to Amber judging by the fact that IRC lagging stopped when she was kicked out of the party and I never figured out what could have caused the lag, I'm extremely interested to find clues to solve the issue.

Since replacing Miraz's baldur.bcs removed the lag I'll stat by posting the code which Amber adds to baldur.bcs. As far as I can see there's nothing that would cause the script to loop.

// Setting the Amber match variable

IF
	Global("M#AmberMatch","GLOBAL",0)
	Gender(Player1,MALE)
	CheckStatGT(Player1,11,CHR)
	CheckStatGT(Player1,11,INT)
	
THEN
	RESPONSE #100
	SetGlobal("M#AmberMatch","GLOBAL",1)
END

IF
	Global("M#AmberMatch","GLOBAL",0)
	OR(3)
	  !Gender(Player1,MALE)
	  !CheckStatGT(Player1,11,CHR)
	  !CheckStatGT(Player1,11,INT)
	
THEN
	RESPONSE #100
	SetGlobal("M#AmberMatch","GLOBAL",2)
END

IF

	Global("M#AmberMatch","GLOBAL",2)
	Gender(Player2,MALE)	
	CheckStatGT(Player2,11,CHR)
	CheckStatGT(Player2,11,INT)
	CheckStat(Player2,0,MORALEBREAK)	// Bio-NPC, Hubelpot, Kelsey, Solaufein, Kivan of Shilmista, Kova, Willie Bruce, Goo
	!HasItemEquiped("belt05",Player2)	// Girdle of sex change
		!Name("SUBRU",Player2)			// Bons' Bruce PPG
		!Name("JCBruce",Player2)		// Compton's Bruce PPG
		!Name("G#CASS",Player2)		 // Cassius CoM
		!Name("FWGHARETH",Player2)		// Ghareth PPG
		!Name("CLFHSFNX",Player2)		// Fonick Modlist
		!Name("lrirenic",Player2)		// Irenicus (Longer Road) FW
		!Name("DKido",Player2)			// Kido Modlist
		!Name("Kindrek",Player2)		// Kindrek CoM
		!Name("NATH",Player2)			// Nathaniel CoM
		!Name("SK#NEHT",Player2)		// Neh'Taniel Blacksheep
		!Name("Therrin",Player2)		// Therrin Modlist
		!Name("TSUJATH",Player2)		// Tsujatha CoM
		!Name("VANIM",Player2)			// Vanim Modlist
		!Name("Wikaede",Player2)		 // Wikaede CoM
		!Name("TLXAN",Player2)			 // Xan Modlist
		!Name("O#Xan",Player2)			// Xan (Kulyok's) PPG
		!Name("SDNPC",Player2)			// Yikari FW
		!Name("Robilard",Player2)		// Robillard (TDD) Modlist		
		!Name("Avaunis",Player2)		// Auvanis (TDD) Modlist		
		!Name("Adario",Player2)			// Adario Kalvaras (TDD) Modlist			
		!Name("KAGAINdd",Player2)		// Kagain (TDD) Modlist				
		!Name("KIVANDD",Player2)		// Kivan (TDD) Modlist				
		!Name("montaron",Player2)		// Montaron (TDD) Modlist			  
		!Name("xzardd",Player2)			// Xzar (TDD) Modlist				
		!Name("yeslicdd",Player2)		 // Yeslick (TDD) Modlist
		!Name("BOLIVAR",Player2)		 // Bolivar (SoS) FW		
		!Name("TOMASTM",Player2)		 // Tomas (SoS) FW
THEN
	RESPONSE #100
	SetGlobal("M#AmberMatch","GLOBAL",3)
END

IF
	Global("M#AmberMatch","GLOBAL",2)
	OR(32)
	  !Gender(Player2,MALE)	
	  !CheckStatGT(Player2,11,CHR)
	  !CheckStatGT(Player2,11,INT)
	  !CheckStat(Player2,0,MORALEBREAK)	// Bio-NPC, Hubelpot, Kelsey, Solaufein, Kivan of Shilmista, Kova, Willie Bruce, Goo
	  HasItemEquiped("belt05",Player2)	// Girdle of sex change
	  Name("SUBRU",Player2)			// Bons' Bruce PPG
		  Name("JCBruce",Player2)		// Compton's Bruce PPG
		  Name("G#CASS",Player2)		 // Cassius CoM
		  Name("FWGHARETH",Player2)		// Ghareth PPG
		  Name("CLFHSFNX",Player2)		// Fonick Modlist
		  Name("lrirenic",Player2)		// Irenicus (Longer Road) FW
		  Name("DKido",Player2)			// Kido Modlist
		  Name("Kindrek",Player2)		// Kindrek CoM
		  Name("NATH",Player2)			// Nathaniel CoM
		  Name("SK#NEHT",Player2)		// Neh'Taniel Blacksheep
		  Name("Therrin",Player2)		// Therrin Modlist
		  Name("TSUJATH",Player2)		// Tsujatha CoM
		  Name("VANIM",Player2)			// Vanim Modlist
		  Name("Wikaede",Player2)		 // Wikaede CoM
		  Name("TLXAN",Player2)		 // Xan Modlist
		  Name("O#Xan",Player2)			// Xan (Kulyok's) PPG
		  Name("SDNPC",Player2)			// Yikari FW
		  Name("Robilard",Player2)		// Robillard (TDD) Modlist		
		  Name("Avaunis",Player2)		// Auvanis (TDD) Modlist		
		  Name("Adario",Player2)		// Adario Kalvaras (TDD) Modlist			
		  Name("KAGAINdd",Player2)		// Kagain (TDD) Modlist				
		  Name("KIVANDD",Player2)		// Kivan (TDD) Modlist				
		  Name("montaron",Player2)		// Montaron (TDD) Modlist			  
		  Name("xzardd",Player2)		// Xzar (TDD) Modlist				
		  Name("yeslicdd",Player2)		 // Yeslick (TDD) Modlist
		  Name("BOLIVAR",Player2)		 // Bolivar (SoS) FW		
		  Name("TOMASTM",Player2)		 // Tomas (SoS) FW
THEN
	RESPONSE #100
	SetGlobal("M#AmberMatch","GLOBAL",4)
END

// Setting Amber Romance timeout variables in case Amber is kicked out of party

IF
	OR(2)
	  Global("M#AmberRomanceActive","GLOBAL",1)
	  Global("M#AmberRomanceActive","GLOBAL",2)
	Global("M#AmberRomanceOut","GLOBAL",0)
	!InPartyAllowDead("M#Amber")
	!Dead("M#Amber")
THEN
	RESPONSE #100
		SetGlobal("M#AmberRomanceOut","GLOBAL",1)
		SetGlobalTimer("M#AmberOutOfParty","GLOBAL",25920)
END

IF
	OR(2)
	  Global("M#AmberRomanceActive","GLOBAL",1)
	  Global("M#AmberRomanceActive","GLOBAL",2)
	Global("M#AmberRomanceOut","GLOBAL",1)
	Global("M#AmberRomanceWaiting","GLOBAL",0)
	GlobalTimerExpired("M#AmberOutOfParty","GLOBAL")
	!InPartyAllowDead("M#Amber")
	!Dead("M#Amber")
THEN
	RESPONSE #100
		SetGlobal("M#AmberRomanceActive","GLOBAL",3)
END

IF
	OR(2)
	  Global("M#AmberRomanceActive","GLOBAL",1)
	  Global("M#AmberRomanceActive","GLOBAL",2)
	Global("M#AmberRomanceOut","GLOBAL",1)
	InPartyAllowDead("M#Amber")
THEN
	RESPONSE #100
		SetGlobal("M#AmberRomanceOut","GLOBAL",0)
		SetGlobal("M#AmberRomanceWaiting","GLOBAL",0)
		RealSetGlobalTimer("M#AmberRomance","GLOBAL",3600)
END

// A´mber returns after getting her bracelet back

IF
	Global("M#JillBracelet","GLOBAL",2)
	GlobalTimerExpired("M#AmberQuestTime","GLOBAL")
	!InParty("M#Amber")
	
THEN
	RESPONSE #100
	SetGlobal("M#JillBracelet","GLOBAL",4)	
	MoveGlobalObjectOffScreen("M#Amber",Player1)
	AddXPObject("M#Amber",1500)
	ActionOverride("M#Amber",ApplySpellRES("M#JBRACE",Myself))
	ActionOverride("M#Amber",MoveToObject(Player1))
	ActionOverride("M#Amber",Dialog(Player1))
END

// Amber gets her bracelet back, helped by the protagonist

IF
	Global("M#JillBracelet","GLOBAL",8)
THEN
	RESPONSE #100
	ActionOverride("M#Amber",ApplySpellRES("M#JBRACE",Myself))
	SetGlobal("M#JillBracelet","GLOBAL",9)
	RealSetGlobalTimer("M#AmberRomance","GLOBAL",1200)
END

// The slavers appear to kidnap Amber

IF
	Global("M#AmberKidnap","GLOBAL",1)
	RealGlobalTimerExpired("M#AmberQuestTime","GLOBAL")
	InParty("M#Amber")
	OR(10)
	  AreaCheck("ar0020") // City Gates
	  AreaCheck("ar0300") // Docks
	  AreaCheck("ar0400") // Slums
	  AreaCheck("ar0500") // Bridge
	  AreaCheck("ar0700") // Waukeen's Promenade
	  AreaCheck("ar0800") // Graveyard
	  AreaCheck("ar1100") // Umar Hills
	  AreaCheck("ar2000") // Trademeet
	  AreaCheck("ar1700") // Small Teeth Pass
	  AreaCheck("ar1800") // North Forest

THEN
	RESPONSE #100
	Wait(10)
	CreateCreatureObjectOffScreen("remage02","M#Amber",0,0,0)
	ChangeEnemyAlly("remage02",NEUTRAL)
	ActionOverride("remage02",SetDialogue("m#kcut"))
	ActionOverride("remage02",ChangeAIScript("m#remage",OVERRIDE))
	ActionOverride("remage02",ChangeAIScript("MAGE8A",CLASS))
	CreateCreatureObject("refigh01","remage02",0,0,0)
	ChangeEnemyAlly("refigh01",NEUTRAL)
	ActionOverride("refigh01",ChangeAIScript("m#reatta",OVERRIDE))
	CreateCreatureObject("recler01","remage02",0,0,0)
	ChangeEnemyAlly("recler01",NEUTRAL)
	ActionOverride("recler01",ChangeAIScript("m#reatta",OVERRIDE))
	ActionOverride("recler01",ChangeAIScript("PRIES8A",CLASS))
	CreateCreatureObject("rethie01","remage02",0,0,0)
	ChangeEnemyAlly("rethie01",NEUTRAL)
	ActionOverride("rethie01",ChangeAIScript("m#reatta",OVERRIDE))
	ActionOverride("rethie01",CreateItem("sw1h07",1,0,0))
	ActionOverride("rethie01",FillSlot(SLOT_WEAPON1))
	CreateCreatureObject("rethie03","remage02",0,0,0)
	ChangeEnemyAlly("rethie03",NEUTRAL)
	ActionOverride("rethie03",ChangeAIScript("m#reatta",OVERRIDE))
	SetGlobal("M#AmberKidnap","GLOBAL",2)
	StartCutSceneMode()
		StartCutScene("m#kcut01")
END

// Amber is petrified

IF
	StateCheck("M#Amber",STATE_STONE_DEATH)
	Global("M#AmberStoned","GLOBAL",0)
THEN
	RESPONSE #100
	SetGlobal("M#AmberStoned","GLOBAL",1)
END

Edited by Meira, 01 August 2006 - 02:31 PM.

Ihmeellinen meri

Kummalliset kalat liukuvat syvyydessä,
tuntemattomat kukat loistavat rannalla;
olen nähnyt punaista ja keltaista ja kaikki toiset värit -
mutta ihana meri on vaarallista nähdä,
se herättää tulevien seikkailujen janon:
mitä on tapahtunut sadussa, on tapahtuva minullekin.

- Edith Södergran


Amber - The BG2 NPC Mod Project Now released!
Amber's discussion forum at Gibberlings 3

#45 Miraz

Miraz
  • Member
  • 138 posts

Posted 01 August 2006 - 04:22 PM

I think I can say with some confidence now that it's not Amber.

I thought, ok ... some script is causing this. So I backed up my baldur.bcs, went into NI and started deleting scripts. I thought "I'll delete half, then if the stutter goes, I'll know the script responsible was in that half". So I delete half, and the stutter improves drastically. Then I thought, just to be sure, I'd do the same with the other half of scripts.

Same result. Improved stutter.

Delete all the scripts, stutter vanishes. I'm back to the blissful smoothness of when I first started the game. After more tinkering about, I've come to the conclusion that it doesn't matter what scripts I take out. The more scripts you take out, the better the stutter becomes ... take them all out, it disappears.

I don't understand this at all. It's beyond frustrating.

#46 Himself

Himself

    CEO of the ENDLESS WAVES OF BAD DOGGIE

  • Member
  • 230 posts

Posted 01 August 2006 - 06:29 PM

If you know how, open baldur.bcs on NI and start deleting some parts of code, then press compile, and after that save. Then check inside the game.

You could start by deleting the part Meira kindly has put up (though I also don't see any mistakes there), then you could attest to her innocence B)

And just keep deleting, and making a backup of every new baldur.bcs you generate.

suposedly, if you do it right, you could find what sequence of code is causing stutter, just compare the one that is not causing stutter, to the last one you had backed up.

Edited by Himself, 01 August 2006 - 06:40 PM.

...to be isn't important, we're no longer than we're :)

#47 Miraz

Miraz
  • Member
  • 138 posts

Posted 01 August 2006 - 10:40 PM

That's exactly what I tried, Himself. It looks like no single block of code is to blame for the stutter.

#48 seanas

seanas
  • Modder
  • 1906 posts

Posted 02 August 2006 - 02:17 AM

That's exactly what I tried, Himself. It looks like no single block of code is to blame for the stutter.

so it is baldur.bcs that's causing yr stutter? that's good: we've got a suspect and we can edit it down. start by removing the anti-cheating blocks at the top of the script - the blocks beginning
IF
  HasItemEquiped("r#wedrin",Player1)
and
IF
  Delay(6)
  OR(6)
	HasItemEquiped("E3AMUL01",Player1)
...
(lines 129- 209) and see if there is any improvement. thos blocks are always running - so it's possible you might see improvement if they're not there.

then, start removing all of CBisson's fun. i might add that i've never installed CtB, and looking at the baldur.bcs, i'm not about to start: how much more cruft do you want to add to a script? the lines i'd be starting with are lines 532-1184, beginning with
IF
  OR(5)
	Global("CbPlayer_2_HasSpellsung","GLOBAL",1)
i'd also be deleting lines 1548-1978, beginning
IF
  Delay(500)
  CombatCounter(0)
  OR(4)
	HasItemEquipedReal("CBMOONP1",Player1)
and the block
IF
  OR(6)
	HasItemEquiped("CBMALR6A",Player1)
	HasItemEquiped("CBMALR6A",Player2)
	HasItemEquiped("CBMALR6A",Player3)
	HasItemEquiped("CBMALR6A",Player4)
	HasItemEquiped("CBMALR6A",Player5)
	HasItemEquiped("CBMALR6A",Player6)
THEN
  RESPONSE #100
	TakeItemReplace("CBMALR6C","CBMALR6A",LastTrigger)
looks a canddiate for cutting, too - but it might be a quest-breaker if you do.

you've got two lots of drow disintegration checks, so you can happily delete lines 2905-3107. and if no-one is weilding Lilacor, you can happily remove lines 3982-4114, beginning
IF
  Delay(600)
  CombatCounter(0)
  OR(6)
	HasItemEquipedReal("sw2h14",Player1)
and then we have CBisson's hell sword blocks (from SoS): these blocks don't run aunless specific conditions are met, but they do double the size of yr baldur.bcs. if you never pick up a hell sword (and who would?), or you want to cut some blocks, you can happily remove lines 4346-8124, beginning
IF
  Global("CbPlayer1Has_Life_Eater","GLOBAL",5)
  !HasItem("CBHBLFET",Player1)  // CBHBLFET
  PartyHasItem("CBHBLFET")  // CBHBLFET
you can actually delete down to line 8252 if you never use the Tuki Kiba, either.

there are also some anti-cheat blocks for Vesine which you can delete, lines8345-8409, beginning
IF
  HasItemEquiped("DDves01",Player1)
  !Name("vesine",Player1)
but i suspect that if removing ~4000 lines of hell sword scripting doesnt improve yr performance, not much will.

"A simple test of the relative merits of science and religion is to compare lighting your house at night by prayer or electricity" - A. C. Grayling
"EFF files have saves, too." - CamDawg
|| this is radio seanas || BP Series v3 || seanas at work ||


#49 berelinde

berelinde

    Troublemaker

  • Modder
  • 4916 posts

Posted 02 August 2006 - 04:09 AM

Elsewhere on this site, someone else was having a problem with stutter and it was script related. I did a bit of poking around in the scripts file, and Amber was by far the biggest script at 132K, followed by Mage5 IIRC at 18K. I'm thinking that might have some bearing on things. I will play around with it later. Gotta go to work.

"Imagination is given to man to console him for what he is not; a sense of humor, for what he is." - Oscar Wilde

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum


#50 Himself

Himself

    CEO of the ENDLESS WAVES OF BAD DOGGIE

  • Member
  • 230 posts

Posted 02 August 2006 - 02:33 PM

Theres a topic about this on the help forums, but I'll ask here since I dont know the answer.


Can't most of these item related stuff be added to a script, and have these items themselves a set script effect assigned to the race slot, if they're ever equiped? It seems that would make everyones baldur.bcs run a lot more happy :)


I'll try removing every lilarcor reference from the baldur.bcs and setting it on a local lilarcor script when I've the time, just to see how it goes:


IF
Global("lilarcorcheck","locals",0)
HasItemEquipedReal("sw2h14",myself)
THEN
RESPONSE #100
SetGlobal("lilarcorcheck","locals",1)
END


Then make every lilarcor related thing be dependant of Global("lilarcorcheck","locals",1) at the top of their IF, and set a timer to check if lilarcor is still equiped every now and then, if not equiped reset the lilarcorcheck back to zero and remove this script from the character.


I'm sorry for being a little newbie about scripting, but is that doable? Would it work?
...to be isn't important, we're no longer than we're :)

#51 Himself

Himself

    CEO of the ENDLESS WAVES OF BAD DOGGIE

  • Member
  • 230 posts

Posted 02 August 2006 - 08:08 PM

I just tried doing the above, and it works, with 3 differences:

1 - When the sword talks, the character goes from regular to holding sword with both hands.

2 - If you have options set to "display in text messages on the dialog window", it will not display Lilarcor - blablabla, but instead will display the name of whomever is holding the sword - blablabla.

3 - The two above probably happen cause I had to use ActionOverride(Myself,DisplayStringHead(Myself,20779)) instead of the regular DisplayStringHeadOwner.

Someone with better knowledge at scripting than me could try to actually make it better (I hope).

I'll attack the two files here, if someone wanna see how this lilarcor works, erase every lilarcor block from your baldur.bcs (but backup it before doing that, of course), and then rename sw2h14 to .itm and MILILARC to .bcs, put both on you override folder (backup sw2h14.itm if it exists too).

Then just equip lilarcor to one of your characters inside the game, save and reload, when you reload the sword should talk already (most of the times anyway).

I would try to do the same with the Moon Blade/ElfSapate/SongSapate but that item seems really complicated to someone as low leveled as I :whistling:

Edit: Obviously doing that to Lilarcor has practically no effect on stutter, as Lilarcor doesnt takes a really lot of space or checks into baldur.bcs, I only tried to do it to Lilarcor cause it is a simple item :D (IE: suitable to my low level), and to see if it could be done.. doing this to items that take lots of checks into the baldur.bcs could maybe be a way to clear stutter, like that Moon Blade mentioned above, it should take like 10 to 15% of a baldur.bcs, no kidding! If you actually look for eveything that seanas mentioned, its almost an item Bible inside the bcs.

Attached Files


Edited by Himself, 02 August 2006 - 09:25 PM.

...to be isn't important, we're no longer than we're :)

#52 Miraz

Miraz
  • Member
  • 138 posts

Posted 03 August 2006 - 03:45 AM

Removed the Hellblade's scripts and the extra CBisson stuff. Result: Baldur.bcs now half it's original size. Result on gameplay?

... noticably improved. If there's any stutter in there, it's extremely slight. The game's playable now, at any rate. I'll just have to be careful not to pick up any of those Hellblades when I eventually go into the SOS areas.

Thank you very much for your help, going over this problem for three pages must have been as tiresome for you as for me. You guys rock. :cheers:

#53 Miraz

Miraz
  • Member
  • 138 posts

Posted 03 August 2006 - 05:03 AM

Success, it seems, comes with a price. Both the Fade and Amber NPCs are fubared to differing degrees ... Amber's voice files no longer work, and Fade cannot say anything ... all her text is replaced by a line of dialogue about "watching his blades" or something. I believe it to be a result of all the reinstalls and changes I made while trying to get things working ... replacing the original "stuttery" baldur.bcs doesn't fix it, so it's not to do with the scripting.

Seems like I may have to start a new game after all.

Edited by Miraz, 03 August 2006 - 05:04 AM.


#54 zachD

zachD
  • Member
  • 125 posts

Posted 03 August 2006 - 12:40 PM

I never picked up a hell blade.

Also contemplating another re-install to start a new game again today.

Once I get into chap3 the stutter is just too severe to play with regardless of container usage.

#55 Himself

Himself

    CEO of the ENDLESS WAVES OF BAD DOGGIE

  • Member
  • 230 posts

Posted 03 August 2006 - 03:15 PM

zachD I'll tell you what I "think" causes the stutter :) I can't prove it, but hopefully (I wish) nobody will be able to prove that I'm wrong as well :D


Dunno at which frequency, but the game runs script rounds, I would wager while in combat some types of scripts are disabled, but I don't really know how this whole thing of script rounds work.


However, the more you progress into the game, you have more items, your game has more globals and conditions and more (or longer) scripts running, and these aspects cause the script rounds to take a wee little bit longer to finish, but I dont think it could cause a stutter.


Anyway, mostly of what seanas has described is an endless list of item checks that baldur.bcs runs, everytime EACH ONE of those checks run, the game must search through your items too see if the check can return valid or invalid. Some checks are more fast like HasItemEquipedReal (only checks what items are actually equiped)... but other checks like PartyHasItem must search the whole inventory and containers of all chars in your group, every time that check in particular runs.

I never picked up a hell blade.



Doesn't matters, the game will have to check through all your items to "discover" if you have it or not, every time that a script round of baldur.bcs runs. And remember that even items which can be stacked (arrows, bolts, scrolls, whatever) counts individually for this check, so the game doesnt know that you have 1000 arrows, it only knows that you have 1000 items in that stack and the game will check each one of these 1000 items individually. So amount of items that you carry greatly relates to amount of stutter.

Add to this that some checks were not coded having the words "fast and safe" in mind (they happen too often or in every script round, not resorting to globals to diminish the rate of checks)


As you progress into the game, more and more of these checks start to become active in your game, and so I imagine that regular (non-combat) script rounds start taking more time than the engine allows or was designed to handle, so the engine starts slowing itself down, or something of the kind :)


The sure way to clear that is to open your baldur.bcs and erase a lot of these checks just like seanas pointed and Miraz did, but you need to have some basic knowledge about the insides of a .bcs file. You could try downloading an editor and looking at your baldur.bcs , its not all that complicated. (the help forums have links to editors and to tutorials)


Another way to solve that would be to install less mods, or skip mods that are known to add large amounts of item checks to the baldur.bcs.


I hope that makes sense, it seems logical enough. Er.. okay, guess I'll play a little now, been some time I haven't played. B)
...to be isn't important, we're no longer than we're :)

#56 zachD

zachD
  • Member
  • 125 posts

Posted 03 August 2006 - 03:45 PM

I see.

And yes what you are saying makes alot of sense, even to me.

I have absolutely no experience concerning scripting so I have been trying to avoid fiddling with bcs.

I did a complete wipe and fresh installed BP177 with TDD and TS. Will see soon if not having SoS installed makes much of a difference.

#57 GeN1e

GeN1e

    A very GAR character

  • Modder
  • 1604 posts

Posted 03 August 2006 - 04:45 PM

I have absolutely no experience concerning scripting so I have been trying to avoid fiddling with bcs.


I disagree with your logic. If you don't have experience then it's a good reason to gain some. And it's not too complicated indeed.

Retired from modding.


#58 zachD

zachD
  • Member
  • 125 posts

Posted 03 August 2006 - 09:41 PM

Indeed.

Didnt know bcs editing and CLUA were required to play these mods.

I just wanted to experience some new content, as a gamer.

After trying to play through SoS without using the CLUA I can surely say that the average joe who just comes in here wanting to play some of the mods (specifically talking about SoS content at this point - granted its old and unsupported), without actually getting into the *guts* of the mod itself, is basically SOL, if not fubared before you even begin. Oh sure your game will start out ok....and hell depending on yer PC the mods may even work fine. But theres no way in hell I would have gotten through SoS without using the CLUA, or into TDD content as the second map/area is unreachable on the map.

As a gamer, I find this highly dissappointing.

Yes I know they are free and people spent alot of time and effort making them, and I applaud those who have actually made mods, and those who help support them and run these sites - but when it comes to the point where I have to start learning scripting, because I wanna enjoy some BG, im just inclined to give up; call me lazy.

I wasnt trying to avoid altering the bcs via scripting because its overly complicated or easy. But it takes time to become familiar with such things, much more time to actually learn what everything is and how it all works together. And as a simple gamer I had no intention of messing with scripts because 1)there is no way in hell I am going to understand what I am doing and 2)even if I did fix some problem it would doubtless create others that I have neither the knowledge to understand or the ability to deal with. Sure I could sit around for hours testing the effects of removing a piece here or there but I simply had no intention of doing such a thing when I started playing the mods. I guess that may have to change if I want to play them.

Anyway enough of my longwinded reply that says little.

Edited by zachD, 03 August 2006 - 10:20 PM.


#59 Meira

Meira

    I'm the snow on your lips

  • Member
  • 411 posts

Posted 04 August 2006 - 12:37 AM

Success, it seems, comes with a price. Both the Fade and Amber NPCs are fubared to differing degrees ... Amber's voice files no longer work, and Fade cannot say anything ... all her text is replaced by a line of dialogue about "watching his blades" or something. I believe it to be a result of all the reinstalls and changes I made while trying to get things working ... replacing the original "stuttery" baldur.bcs doesn't fix it, so it's not to do with the scripting.

Seems like I may have to start a new game after all.


If it's just Amber's soundset that's messed up (and not dialogues), you should be able to fix it in-game by selecting her and then pressing SIFT-k. I believe Fade has a string fixed too, but I think it's invoked by some other key combination.
Ihmeellinen meri

Kummalliset kalat liukuvat syvyydessä,
tuntemattomat kukat loistavat rannalla;
olen nähnyt punaista ja keltaista ja kaikki toiset värit -
mutta ihana meri on vaarallista nähdä,
se herättää tulevien seikkailujen janon:
mitä on tapahtunut sadussa, on tapahtuva minullekin.

- Edith Södergran


Amber - The BG2 NPC Mod Project Now released!
Amber's discussion forum at Gibberlings 3

#60 Himself

Himself

    CEO of the ENDLESS WAVES OF BAD DOGGIE

  • Member
  • 230 posts

Posted 04 August 2006 - 05:48 PM

Main problem in having lots of different mods installed is that every modder has his own view about things, and you can notice how some mods have a very different "feeling" to them as well, most mods werent designed to be installed and played all together with other mods at the same time, BP and Horred were kind of the starting point to this.

The worse thing that happens when you start getting into editing files, is that you realize how easy it actually is, so easy in fact, that you start to change most things that you normally dislike in the game, so that the contents become more pleasant to your view of things. If you saw my version of a modded bg2, man would you be surprised B)
...to be isn't important, we're no longer than we're :)