Jump to content

Pit Fiend causing Assertion Failed in CGameEffect.cpp at line number 1536


Guest Newb

Recommended Posts

Guest Newb

In the battle with Shangalar's Party in the Bridge District, right after Laylene summoned her Pit Fiend, which appeared, the game CTD with the "Assertion Failed in CGameEffect.cpp at line number 1536."  I am using BWS BGT.   I tested the battle before SCS 35.9 installation, there was no CTD, and SCS is the last mod installed without the mage and priest AI components.  

Link to comment
3 hours ago, Guest Newb said:

Assertion Failed in CGameEffect.cpp at line number 1536.

That's usually caused by leftover EE opcodes in this day and age (rarely anything has actually broken effects anymore). I've made a small mod/tool that removes all EE modifiers that are left over from mods in oBG2 installs.

https://github.com/CrevsDaak/c7-fxfix

Installing this will get rid of this particular type of crash. Have in mind another crash-inducing bug exists in current versions of SCS for oBG2

Specific fix for that one on that thread as well. You'll need to copy and paste an installer for other mods, those setup-*.exe files, and rename them into setup-c7-fxfix.exe etc.

Link to comment

Yes, I realize this is off-topic, sorry for that DavidW:

3 hours ago, CrevsDaak said:

That's usually caused by leftover EE opcodes in this day and age (rarely anything has actually broken effects anymore). I've made a small mod/tool that removes all EE modifiers that are left over from mods in oBG2 installs.

https://github.com/CrevsDaak/c7-fxfix

From my stand point this would seem extreamly usefull... until I saw what the code does.
And that's because you try to fix a problem that might not be relavent(this it self is good)... and it gives no information of what was wrong and so on. Now, it's a good effort... but I believe we could do better.

You code checks for .itm's, .cre's and .spl's. This is good. But it gives no log information of anykind... from what I could understand. It fixes it by removing it.
I would say that cathegorizing error prone opcodes could be very useful in installs.

So first a tool I would like you or anyone willing, would be to make is a one that checks what type of the game is currently under and print that out. (BG1, BG2, BG1EE, BG2EE, EET the works, like EEex intergration etc. there's a lot of things that can be intergrated, eventually).
Then it would check each file cathegory what opcodes each of those won't accept or that can cause problems with ... the iesdp has a very extensive list of those per game type.
And if those are detected, print out a debug file that states possible cause of crash and each opcode and in what file it's used in.
Now yes, that tool would do less than yours, and it would likely be far more install time consuming.. but it would be useful in debugging a lot of installs at install time, and ive the player the ability to know for sure that the install is stable or NOT.
EDIT, erhm we also need projectiles .pro -files, tile .pvrz -files, and so on.

Edited by Jarno Mikkola
Link to comment

Which ... demon fear already exists in unmodded BGEE and BG2EE, and it has four effects. None of which are EE opcodes - just panic and the cosmetics. OK. So what does SCS do to that spell?

First, if the spell isn't already present, install it. Copying from the resource folder for the fiend component.

Next, it sets a "don't be cumulative" effect. Opcode 206 immunity to this spell, for 5 seconds (Original fear duration = 12 seconds). This is irrelevant, since there aren't any effects on the spell that could stack anyway.

And that's it. Well, looks like it's the fault of that one resource file SPIN890.SPL. Which is new in v35; it didn't exist at all in v34. That SPL has the four effects of the original. Slightly modified, to make it hit as level 9 instead of level 0. Then it has an instance of opcode 324 at the beginning, to grant brief immunity to this spell if the creature has spellstate 129. And then it has 58 identical instances of opcode 328, setting spellstate 181 for 144 seconds. Just ... what? This nonsense has to be the work of runaway code.

All of these added effects are EE-only opcodes. For something that will never come up in an actual EE game, because EE games already have the spell. So ... uh, here's a simple fix for the demon fear crashing bug: just use the version of the spell that's in the base EE. Attached here; overwrite the instance in stratagems/fiend/resource before installing. Or overwrite the file in your override folder after installing

Incidentally, demon fear is relatively mild as these effects go. Two round duration, no extra effects beyond the fear (so stacking isn't a problem), and no save modifier. Lich fear and demon fear are worse, with ten-round durations, THAC0 penalties, and -4 save modifiers so they're more likely to hit.

SPIN890.SPL

Link to comment
13 hours ago, Jarno Mikkola said:

From my stand point this would seem extreamly usefull... until I saw what the code does.
And that's because you try to fix a problem that might not be relavent(this it self is good)... and it gives no information of what was wrong and so on. Now, it's a good effort... but I believe we could do better.

You code checks for .itm's, .cre's and .spl's. This is good. But it gives no log information of anykind... from what I could understand. It fixes it by removing it.
I would say that cathegorizing error prone opcodes could be very useful in installs.

If you care you can just add a PATCH_PRINT in there (particularly if you're going to tell me what to do..... This means you know about it yourself right?). It doesn't matter what files have erroneous opcodes, you just want them out so you can play the game. And "not be relevant" is BS, any opcode > 318 WILL CRASH YOUR GAME and it *always* prints out that same CGameEffect.cpp error message. The fact that you ask somebody to post their graphics config is pointless and misleading, as it has absolutely nothing to do with this, and shows that you know nothing about this.

13 hours ago, Jarno Mikkola said:

So first a tool I would like you or anyone willing, would be to make is a one that checks what type of the game is currently under and print that out. (BG1, BG2, BG1EE, BG2EE, EET the works, like EEex intergration etc. there's a lot of things that can be intergrated, eventually).
Then it would check each file cathegory what opcodes each of those won't accept or that can cause problems with ... the iesdp has a very extensive list of those per game type.
And if those are detected, print out a debug file that states possible cause of crash and each opcode and in what file it's used in.
Now yes, that tool would do less than yours, and it would likely be far more install time consuming.. but it would be useful in debugging a lot of installs at install time, and ive the player the ability to know for sure that the install is stable or NOT.
EDIT, erhm we also need projectiles .pro -files, tile .pvrz -files, and so on.

I don't think that you understand what something called fxfix is supposed to do and does. It fixes effects. That's it. You can check out Magus' happy-ie for any other debugging needs you may have. It also only installs on the ToB engine, so it's pointless to check what game it's being ran on, all it does is fix effects, not debug other people's mods (since if they don't care to fix it, I'm just wasting my time, and if you care, you can edit the file, add PATCH_PRINT and find out!). The point of this tool is to provide users a non-time consuming, non-single-file-tinkering way of solving effect-related crashes, as it's very easy to do so, and lets you actually play the game.

I would suggest that you stick to topics you are more knowledgeable on! 😉

12 hours ago, jmerry said:

So ... uh, here's a simple fix for the demon fear crashing bug: just use the version of the spell that's in the base EE. Attached here; overwrite the instance in stratagems/fiend/resource before installing. Or overwrite the file in your override folder after installing

You have to consider that because the Lich fear aura is built off copying Demon Fear, to fix this issue one would always require re-installing, and if any other mod added extra, valid effects to it you'd be deleting them, so overwriting the file is not generally a good idea.

Link to comment
1 hour ago, CrevsDaak said:

You have to consider that because the Lich fear aura is built off copying Demon Fear...

A very odd decision, given the existence of LICH_FEAR and its significantly different effects than DEMON_FEAR in the unmodded EE. SCS ignores LICH_FEAR in favor of its own clone of DEMON_FEAR (identical except for name) entirely.

Also, if you install the mage component (which builds dw#licfi) before/without the fiend component (which builds DEMON_FEAR) on a game that this bug applies to, there's nothing to copy. That can't be good; the best possible result is a spell that does nothing. So that's an internal dependency that needs to be cleared up...

... but yes, the "dump in override after installation" option doesn't really work. The file I uploaded needs to overwrite the one in the stratagems folder before installation in order to handle this bug.

Edited by jmerry
Link to comment
Guest Newb

The c7-fxfix.tp2 code didn't install because of error, but the c7obg2spellfixer.tp2 code from your post in

  installed OK.  It fixed the Pit Fiend CTD problem, I will check to see if it fixed the mage AI problem after re-installing the mage AI component from SCS.  Thanks CrevsDaak.

Link to comment

OK, so...

17 hours ago, jmerry said:

And that's it. Well, looks like it's the fault of that one resource file SPIN890.SPL. Which is new in v35; it didn't exist at all in v34. That SPL has the four effects of the original. Slightly modified, to make it hit as level 9 instead of level 0. Then it has an instance of opcode 324 at the beginning, to grant brief immunity to this spell if the creature has spellstate 129. And then it has 58 identical instances of opcode 328, setting spellstate 181 for 144 seconds. Just ... what? This nonsense has to be the work of runaway code.

I haven't the faintest idea what is going on there. I hardly ever distribute modified versions of non-human-readable files: SCS does nearly everything in WEIDU. I am basically certain this is supposed to be an unmodified copy of SPIN890, and I have no clue how this weird corrupted version got in there instead.

That said: at least on my install, SPIN890.SPL is present (both as a spell and in spell.ids) on pristine copies of ToB, BGT, and EasyTutu - in other words, on all the oBG2-engine games SCS supports. The intended use case for that SPIN890.SPL replacement, IIRC, is on IWDEE, which is why it's new in v35: that's the first version that has supported installation on IWDEE. If the OP is installing on a version of the original game that lacks SPIN890.SPL, then unless I'm missing something (corrections welcomed) it's a version I don't officially support. ("BWS BGT", maybe? - I'm not even sure what that is.) I will fix the problem with SPIN890, because it's dumping pointless cruft into IWDEE, but it's not actually supposed to be installed on an oBG2 engine and so the fact that it has EE opcodes is not per se an issue.

3 hours ago, jmerry said:
4 hours ago, CrevsDaak said:

You have to consider that because the Lich fear aura is built off copying Demon Fear...

A very odd decision, given the existence of LICH_FEAR and its significantly different effects than DEMON_FEAR in the unmodded EE. SCS ignores LICH_FEAR in favor of its own clone of DEMON_FEAR (identical except for name) entirely.

This is slightly less inexplicable. LICH_FEAR is not a generic lich fear effect: it's a very powerful effect (saves at -4, 4-point THAC0 penalty even if you are immune to fear) used only by Azamantes (GORLIC01), the final defender of the Watcher's Keep seals. I don't specifically recall deciding what to do here but I think it was intentional to give generic liches a somewhat less vicious fear effect. (In earlier versions of SCS I think I used DRAGON_FEAR.)

Link to comment
Guest Newb

Reinstalling the Mage AI lead to CTD during the battle with Shangalar's party during the Time Stop by the mage as she was casting another spell.  This time, the readout from TobEX says "ASSERTION FAILED!  Return Address: 0x7FA8C8  File: ObjAnimation.cpp  Line: 400  Expression: FALSE  Message: (null)".  I guess c7obg2spellfixer.tp2 did fix the CTD problem from Assertion Fail at line 1536, and this is a new problem.

Link to comment
On 2/4/2024 at 6:16 PM, Guest Newb said:

I am using BWS BGT.   I tested the battle before SCS 35.9 installation, there was no CTD, and SCS is the last mod installed without the mage and priest AI components.  

Ok, I'm going to chime in here. You are using the Big World Setup tool correct? The long since deprecated BWS tool?

This is going to get you into big trouble with a mega mod install.

Unless you absolutely know what you're doing I suggest using something modern like AL|EN's Project Infinity. If your intimidated by install order you can always reference morpheus562's Install-Order-List-Repository, or I can provide you with my own log since I also play the originals with BGT.

Our diligent G3 residents here were able to correctly guess your first issue, even without being supplied your WeiDU log, but you likely have a host of problems coming your way if you used BWS. 

 

Link to comment
Guest Newb

I used a stripped down of the "happy" install version of BWS, almost minimal, just included BGT installation with a few tweak mods including bg2fixpack, TobEX, and atweak. Then manually installed Ascension, Rogue Rebalancing, Spells Revision, IWDification to include spells that SCS does not provide for for nonEE installs.  Then tweaks anthology (SCS recommends installing this after SCS, which is why it's near last), and lastly SCS because this is the only mod that I am having problems with. 

Without SCS, I experienced no complication, so I don't see how BWS is the issue.   CrevsDaak  just pointed out a lot of the issues with SCS for nonEE installations have to do with coding specific to EE, and supplied an easy solution.   The only issues left is the Mage AI, and perhaps the Priest AI.

Why am I using BWS?  Simply, I used it long ago and recently revived it from backup.  I was considering buying EE, but I have most of the setup working well on Windows 10.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...