awkwardnate

Using TSL Patcher without KOTOR on Desktop

Recommended Posts

Well I have KOTOR on Android, and I have managed to install quite a number of mods on it. But unfortunately I can't install more mods that has extensive .2da editing since well manually doing it has it's limits. I try to look at the changes.ini files in TSLPatcher folders but some are just too much. Now is there a way to use TSLPatcher without actually having KOTOR on my Desktop?

 

dialog.tlk is the main problem

Share this post


Link to post
Share on other sites

Look over at Lucasforums. People were asking Stoffe for the source code so a version without the dialog.tlk version could be compiled. It has been almost a year since then though, so I assume nothing has come of it as yet.

 

http://www.lucasforums.com/showthread.php?t=149285&page=8

 

You could try sending Stoffe a PM. Her profile suggests she was still active just a couple of days ago. Just enquire if releasing the source code is a possibility, or transferring it to someone like Fair Strides.

Share this post


Link to post
Share on other sites

Fair Strides already made it, check my handmaiden 4 females modification. Don't think it's been released stand-alone yet, might be wrong.

Share this post


Link to post
Share on other sites

Fair Strides already made it, check my handmaiden 4 females modification. Don't think it's been released stand-alone yet, might be wrong.

 

Fair Strides has edited it even further than that, even adding the ability to blank out fields in GFF files. He says it was originally meant for a USM compatibility fix for TSLRCM. I will be implementing it in the newest release of PartySwap.

Share this post


Link to post
Share on other sites

Fair Strides already made it, check my handmaiden 4 females modification. Don't think it's been released stand-alone yet, might be wrong.

 

Not standalone yet, but I really will get it out soon...

 

Fair Strides has edited it even further than that, even adding the ability to blank out fields in GFF files. He says it was originally meant for a USM compatibility fix for TSLRCM. I will be implementing it in the newest release of PartySwap.

 

It actually wasn't hard; I for both the dialog.tlk and the blank GFF fields, I literally just removed the file-/error-checking respectively.

 

What would be hard are Mac and Linux ports... :)

Share this post


Link to post
Share on other sites

Thanks for all the responses guys, I'll go check out everything you guys said.

Edit: Oh I just read it has no standalones yet, so I'm looking forward to that. Now is there a way or a tutorial how to properly read changes.ini in tslpatchdata folders so I can just apply it manually using 2da editors?

I'm very much willing to do it just to make the Playable Echani Heads and Jolee as a Yoda Species work.

Share this post


Link to post
Share on other sites

You should start by reading the TSLPatcher manual.

 

Changes for 2DA files are fairly straightforward. It lists the 2DAs it edits under [2DAList], then for each 2DA it will list the rows it adds or edits. For a given row, it will have COLUMN_NAME=CELL_VALUE. Any columns without a specific entry have a null value (i.e. ****). Anywhere you see a token like 2DAMEMORY1, that is a value that is stored/used at runtime. For example when adding rows to a 2DA you will often see 2DAMEMORY1=RowIndex, which is telling TSLPatcher to store the row index number in memory. This will then be called later for use in another file, like a different 2DA or a UTI file. A common example is adding a new row to heads.2da, storing that row index as a token, then adding a new row to appearance.2da and entering that token into the head column. This is a core element of how TSLPatcher achieves mod compatibility.

Share this post


Link to post
Share on other sites

I kind of get the jist of that, these modulles are just confusing me:

 

[heads.2da]

CopyRow0=add_Echani_Male_1

 

[add_Echani_Male_1]

RowIndex=41

So is this a new row or edits a currently existing one?

 

Another thing

 

So if I get this cordectly this string:

2DAMEMORY4=RowIndex

Means I have to rewrite it? This string is located in appearance.2da, but the said 2DAMemory is from heads.2da

 

 

Sorry for all the questions.

Share this post


Link to post
Share on other sites

I kind of get the jist of that, these modulles are just confusing me:

 

 

So is this a new row or edits a currently existing one?

 

So I guess the 2DAMemory isn't something I should concern myself too much since I'm doing this manually.

 

Sorry for all the questions.

In this particular case, the TSLPatcher is copying an already existing row in the heads.2da file and adding it as a new one at the bottom. The RowIndex=41 part is telling the TSLPatcher that it needs to copy row 41. Any fields besides the RowIndex=41 part are changes that need to be made to the row after it's copied.

Share this post


Link to post
Share on other sites

In this particular case, the TSLPatcher is copying an already existing row in the heads.2da file and adding it as a new one at the bottom. The RowIndex=41 part is telling the TSLPatcher that it needs to copy row 41. Any fields besides the RowIndex=41 part are changes that need to be made to the row after it's copied.

Wow thanks for that, I'm starting to have a better understanding of this.

 

This is the last thing that leaves me perplexed though:

 

On appearance.2da, there is a string that says:

2DAMEMORY4=RowIndex*

 

*Upon reviewing it, it pertains to Row41 on heads.2da. What do I do on that string? Copo everything that is on Row41 of heads.2da to the row using this string in appearance.2da?

 

appearancenumber=2DAMEMORY8

appearance_s=2DAMEMORY7

And this one, do I just add the Row Numbers in the said 2DAMEMORY?

Share this post


Link to post
Share on other sites

Could you post the entire edits for that part, instead of just the 2DAMEMORY part? It's kind of hard to get a good view of the overall picture, otherwise... For example, is that a CopyRow or an AddRow?

Share this post


Link to post
Share on other sites

Oh sorry for that here it is:

 

[heads.2da]

CopyRow0=add_Echani_Male_1

CopyRow1=add_Echani_Male_2

CopyRow2=add_Echani_Male_3

CopyRow3=add_Echani_Female_1

CopyRow4=add_Echani_Female_2

CopyRow5=add_Echani_Female_3

 

[add_Echani_Male_1]

RowIndex=41

ExclusiveColumn=head

head=REchMH01

headtexvvve=REchanMH01d

headtexvve=REchanMH01d3

headtexve=REchanMH01d2

headtexe=REchanMH01d1

2DAMEMORY1=RowIndex

And on this one it now applies the 2DAMEMORYXX:

[portraits.2da]

CopyRow0=add_Echani_Male_01_portraits

CopyRow1=add_Echani_Male_02_portraits

CopyRow2=add_Echani_Male_03_portraits

CopyRow3=add_Echani_Female_01_portraits

CopyRow4=add_Echani_Female_02_portraits

CopyRow5=add_Echani_Female_03_portraits

 

[add_Echani_Male_01_portraits]

RowIndex=18

ExclusiveColumn=baseresref

baseresref=PO_RMHEch01

appearancenumber=2DAMEMORY5

appearance_s=2DAMEMORY4

appearance_l=2DAMEMORY6

There are discrepancies about what I copied, but basically it's what confusing me. What does 2DAMEMORYXX=RowIndex do? And what it means now on appearance_s=2DAMEMORY4?

Share this post


Link to post
Share on other sites

Okay, this will be much easier if you tell me the name of the mod and link it, so I can check out the changes.ini file myself. You were asking about a 2DAMEMORY token from the appearance.2da and then start posting the portraits and heads.2da files, so I have no clear picture of what is going on right now...

Share this post


Link to post
Share on other sites

Again I apologize for the confusion. I just noticed that I've been all around the place. Here are the mods I wanted to work with:

 

Echani Heads x6

http://deadlystream.com/forum/files/file/53-playable-echani-x6/

 

Jolee turns into a Yoda Species:

http://deadlystream.com/forum/files/file/695-jolee-turns-into-a-yoda-species/

 

Again sorry about the hassle.

Share this post


Link to post
Share on other sites

Basically, what you need to know is the following:

 

(I'm assuming you are already able to manually edit .2da files)

 

1. heads.2da's row number goes in the "normalhead" column of the appearance.2da.

2. The game uses one of three appearance rows for each Player Character, depending on your class (hence the Small, Medium, Large).

3. Following #2, portraits.2da's uses the Medium row for a default reference (the appearancenumber column), and the appearance_s and appearance_l columns reference the Small and Large, respectively. Also, you'll want to set "ispc" to 1 instead of 0; otherwise the head won't show up in the Character Creation.

4. For rows in the changes.ini that say "CopyRow", you'll need to either right-click the small brown-grey space to the left of the row number and select Copy Row (then enter some info in the bottom blank row, right-click the same brown-grey box and select "Paste Row"), OR if that doesn't work, you will need to manually enter all of the row's info into the blank row at the bottom.

5. ALWAYS add a row number, and make sure it's one higher than the previous one.

6. When saving a .2da file, you need to click on some other section of the file before saving.

Share this post


Link to post
Share on other sites

Wow thanks for shedding light on to this, I'm starting to get a clearer picture on how to go about doing this. Basically normalhead=2DAMemory* just tells it to add the row number found in heads.2da. Now I feel stupid because it was that easy.

 

Thank you very much for all the help! And thank you for all your mods! Gaming on Android has been a blast especially because of Brotherhood!

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.