Sign in to follow this  
Thor110

Dialog Skipping [Possible Fix]

Recommended Posts

With the amount of time I have spent with my head buried in the games files I have discovered what I believe is the actual cause of the dialog skipping issue.

Instead of just explaining how to fix it I am going to go more in-depth and explain some of the reasons why and how I determined this was the issue.

in a .dlg file, each line has a NodeID number, the overall .dlg file itself also has a NextNodeID entry which I believe corresponds to the starting line.

The port that I have been working on is absolutely littered with dialogs that skip or are missing the text borders, simply because none of them have the NextNodeID or NodeID's set up properly, the NextNodeID's are set to 0 and every node in the dialog tree is also set to 0.

Just a moment ago I saw a dialog skip during a stream and decided to bite the bullet, sit down and properly analyse as well as fix that specific dialog file as well as make a post about it to get a discussion going.

The dialog file in question is 903sion.dlg from 906MAL.mod

in total it has 124 nodes or 0-123, after manually counting through every node in the dialog file, I noticed that it had three nodes with the NodeID 0, it was also missing NodeID #3 & #123

on top of that, the NextNodeID was set to 123 meaning that when the dialog file started, it had nowhere to go.

Hopefully in time the community can get every dialog file in the game checked over for this problem.

Thor110

P.S. : I am aware that for years people have suspected it to be a memory leak and that it could not be fixed, however the very behaviour of the dialog file pointing to a non-existent node would definitely cause some sort of problem, right?

I know that actually proving this one way or the other isn't going to be easy because it doesn't happen so often for some people, but when the black borders for the text are missing, correcting the NodeID's fixes it and I have fixed several of these live on stream myself.

If for any reason it turns out to not be the issue then I apologise for potentially getting everyone's hopes up but I am certain that we will never know if we don't try.

Edited by Thor110
Updated Title
  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, Thor110 said:

in a .dlg file, each line has a NodeID number, the overall .dlg file itself also has a NextNodeID entry which I believe corresponds to the starting line.

And they seem to be only happening in TSL, as they are not there in K1's -- far as I can recall.

6 hours ago, Thor110 said:

...dialogs that skip or are missing the text borders, simply because none of them have the NextNodeID or NodeID's set up properly...

Interesting -- have that noted to when similar problem arises on my end. Will see if it actually does something, cheers! 🍻

  • Like 1

Share this post


Link to post
Share on other sites
On 3/1/2021 at 8:36 AM, ebmar said:

And they seem to be only happening in TSL, as they are not there in K1's -- far as I can recall.

Interesting -- have that noted to when similar problem arises on my end. Will see if it actually does something, cheers! 🍻

Indeed, KotOR1 did not have a NextNodeID nor a NodeID for each line.

I have begun taking note of which dialogs skip and altering them as required, but it's rather a long and tedious process.

Given that it isn't repeatable unless you don't quit the game, perhaps it would actually be possible to test from within the override next time I come across it myself in-game.
I believe even then sometimes it doesn't repeat when loading a save.

Something I am also going to do is take a look at all of the dialog files in TJM as while watching a streamer play TJM nearly every dialog in the game skipped consistently and I suspect the NodeID's are all missing.

 

Update After looking through the dialog files in TJM modules, I can see that none of them contain the NextNodeID and all NodeID's are set to 0, which is generally the case when making a dialog file that no one is going to bother to go through and number all of the NodeID's, understandably of course as it takes quite a while, I presume that Obsidian's software for writing .dlg files handled this automatically when adding new nodes to the dialog tree.

 

Additional even 3cfd's dialog in the very first level has the NextNodeID set to 54 while only actually having 34 Nodes.

 

Conclusion : either the community needs a dialog editing tool that will properly number the NodeID's when creating them, or people need to manually go through and fix every line of dialog in the game, checking and counting their NodeID's to match ( this would be insanely tedious and could take a long time )

Something else worth noting, is that the currently available Dialog Editor, when creating a TSL Dialog File, doesn't even add the NextNodeID field to the GFF filetype, this combined with numbering each NodeID 0 is bound to cause some sort of problem.

Spoiler

Old Part of Post!

Another Update : Having looked through even more dialogs, I believe I mistook NextNodeID for meaning something other than what it says it means, I think that the NextNodeID just keeps track of how many nodes are in the dialog file and isn't actually used for anything other than adding new nodes to the dialog tree.

As some seem to be set to a Node that doesn't exist ie : the next node number

While some are set to node numbers that equal more than the amount of nodes in the file. ( presumably Obsidian ripped out lines and didn't update the node numbers )

However, properly sorting through the Node numbers does solve the missing text borders and hopefully the dialog skipping issue too.

For the moment I have been setting the NextNodeID to 0 simply because it solves the border issue and the available dialog editor doesn't make use of it ( if that is even it's purpose ) because throughout the games files, the way it is used is inconsistent, many being set to 0, some being set to what would be the next number in the list and some above the number of entry nodes even in the file.

So I suspect it is just the misnumbered Nodes in the dialog tree that is causing the skipping issue, while the NextNodeID may or may not be being used for another purpose by the engine in setting up the borders.

Ultimately the NodeID's themselves must have a purpose and if they are all out of line, it has to be having some negative effects on the system, I certainly hope that this resolves the issue once and for all. But only time will tell.

After reminding myself that correctly setting the NextNodeID fixes the vacant black borders, I have determined it absolutely must be playing a role in the dialog file actually starting.


UPDATE

Having finally manually ( crazy I know ) numbered every NodeID and NextNodeID in my port of KotOR1 I am hoping it will provide definitive proof that this is or isn't a fix for the dialog skipping issue, if it isn't nevermind at the least it's all ordered properly and the cinematic borders always come in properly.

Edited by Thor110
UPDATE
  • Like 1
  • Light Side Points 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.

Sign in to follow this