awkwardnate 2 Posted February 2, 2016 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 Quote Share this post Link to post Share on other sites
DarthParametric 3,784 Posted February 2, 2016 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. Quote Share this post Link to post Share on other sites
Hassat Hunter 571 Posted February 2, 2016 Fair Strides already made it, check my handmaiden 4 females modification. Don't think it's been released stand-alone yet, might be wrong. Quote Share this post Link to post Share on other sites
DarthTyren 103 Posted February 2, 2016 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. Quote Share this post Link to post Share on other sites
Fair Strides 509 Posted February 2, 2016 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... Quote Share this post Link to post Share on other sites
awkwardnate 2 Posted February 5, 2016 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. Quote Share this post Link to post Share on other sites
DarthParametric 3,784 Posted February 5, 2016 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. Quote Share this post Link to post Share on other sites
awkwardnate 2 Posted February 5, 2016 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=RowIndexMeans 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. Quote Share this post Link to post Share on other sites
Fair Strides 509 Posted February 5, 2016 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. Quote Share this post Link to post Share on other sites
awkwardnate 2 Posted February 5, 2016 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? Quote Share this post Link to post Share on other sites
Fair Strides 509 Posted February 5, 2016 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? Quote Share this post Link to post Share on other sites
awkwardnate 2 Posted February 5, 2016 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? Quote Share this post Link to post Share on other sites
Fair Strides 509 Posted February 5, 2016 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... Quote Share this post Link to post Share on other sites
awkwardnate 2 Posted February 5, 2016 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. Quote Share this post Link to post Share on other sites
Fair Strides 509 Posted February 5, 2016 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. Quote Share this post Link to post Share on other sites
awkwardnate 2 Posted February 5, 2016 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! Quote Share this post Link to post Share on other sites