Daggerfall Mod talk:TEXT.RSC format

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search

TEXT.RSC conforms to text record specification... or not?[edit]

The pages says, that format for entries are correct with Text Record Format specification from http://uesp.net/wiki/Daggerfall:Text_Record_Format - now I looked into TEXT.RSC from 2.13, or files edited by other authors, and it looks like not 100%. Let's extract first record, at 0x00002108 (strength attribute text):

|00002100 .. .. .. .. .. .. .. ..-53 54 52 45 4e 47 54 48         |STRENGTH|
│00002110 fd 20 53 74 72 65 6e 67-74 68 20 67 6f 76 65 72 |? Strength gover|
│00002120 6e 73 20 65 6e 63 75 6d-62 72 61 6e 63 65 2c 20 |ns encumbrance, |
│00002130 77 65 61 70 6f 6e 20 64-61 6d 61 67 65 fc 20 61 |weapon damage? a|
│00002140 6e 64 20 74 68 65 20 65-61 73 65 20 6f 66 20 69 |nd the ease of i|
│00002150 6e 63 72 65 61 73 69 6e-67 20 73 74 72 65 6e 67 |ncreasing streng|
│00002160 74 68 2d 72 65 6c 61 74-65 64 20 73 6b 69 6c 6c |th-related skill|
│00002170 73 2e fc 20 57 69 74 68-20 79 6f 75 72 20 73 74 |s.? With your st|
│00002180 72 65 6e 67 74 68 20 6f-66 20 25 73 74 72 2c 20 |rength of %str, |
│00002190 79 6f 75 20 61 72 65 20-63 6f 6e 73 69 64 65 72 |you are consider|
│000021a0 65 64 20 25 61 72 6b fc-20 fb 14 25 64 61 6d 20 |ed %ark? ??%dam |
│000021b0 fb 28 6d 6f 64 69 66 69-65 72 20 69 73 20 66 61 |?(modifier is fa|
│000021c0 63 74 6f 72 65 64 20 69-6e 74 6f 20 79 6f 75 72 |ctored into your|
│000021d0 fc 20 fb 28 68 61 6e 64-2d 74 6f 2d 68 61 6e 64 |? ?(hand-to-hand|
│000021e0 20 2f 20 77 65 61 70 6f-6e 20 64 61 6d 61 67 65 | / weapon damage|
│000021f0 2e fc 20 fb 14 25 65 6e-63 20 fb 28 6b 69 6c 6f |.? ??%enc ?(kilo|
│00002200 67 72 61 6d 73 20 69 73-20 79 6f 75 72 20 6d 61 |grams is your ma|
│00002210 78 69 6d 75 6d 20 65 6e-63 75 6d 62 72 61 6e 63 |ximum encumbranc|
│00002220 65 2e fc fe .. .. .. ..-.. .. .. .. .. .. .. .. |e.??|            

Now, according to documentation, the subrecord is lines of text ending with either EndOfLine or EndOfPage. There is no EndOfPage in TEXT.RSC as there are no pages (it's for books only), so we should have text with EndOfLine. EndOfLine according to docs is always 2 bytes, first is CenterPreceeding (0xfd) or JustifyPreceedingLeft (0xfc), second is NewLine (0x00). For example fd 00 should be end of centred line. Now, take a look that there is no such thing in above example, instead there is fd 20, so CenterPreceeding plus single space.

Also, in same description it seems that PositionCode have to be 4 bytes, while in here we have only fb 14 (just before "%dam"), so it cannot be extended by another 2 bytes, as we would cut away important parts.

There is definitely something fishy about this text format description, either the generic Text Record Format description is wrong, or TEXT.RSC doesn't use same format...

edit: well, I just looked at old wiki - http://www.uesp.net/text.shtml?dagger/dftext.txt - it seems that the format used isn't same as one described on this page!

Broken index in TEXT.RSC? By any chance, index 0x1C88 should be 0x1C56?[edit]

Today I wrote simple python script to convert TEXT.RSC into xml file for easier editing. I noticed one strange thing - all indices are stored in increasing order, except for one - they go like 7253, 7304 (0x1c88), 7255 - this one index, 7304 is only one out of order, and inside of group for "don't know and dislikes" answers (range 7250-7264). There are few "don't know" blocks - see http://uesp.net/wiki/Daggerfall:TEXT.RSC_indices - and all are 15 messages long. I believe that each of those 5 is reserved for some combination of who you ask (like nobility, scholars, etc) and/or how you speak to them (polite/normal/blunt).

I believe that this will lead to crash when game will want to get line 7254 (0x1c56), which might occur when asking for directions with certain conditions - just like when you add magic item to MAGIC.DEF and forget to add the description of it to TEXT.RSC. To change this, it is enough to change byte 0x1be6 from 0x88 to 0x56 - it will work with all known versions of TEXT.RSC - the official one, the "Added text" version and two version from Brendan - Brendan1 and Brendan2.

Might be mistaken though - did not tested it enough and I don't know exactly what dialogue combination should I use to trigger this 7304 message between 7253 and 7255. The 7304 in official text is:

 <entry index="7304">
   <subentry>
     <line>Never heard of %key, kid. Leave before I put a knife in yer back.</line>
   </subentry>
   <subentry>
     <line>I killed a %ra once for asking stupid questions about %key.</line>
   </subentry>
   <subentry>
     <line>I don't know. But I do know that if you stink up the air around me any more I'll stick a sword in yer gut.</line>
   </subentry>
   <subentry>
     <line>Yer %pcn. I oughta slice you a second smile. But because I'm a nice guy, I'll just tell ya I don't know.</line>
   </subentry>
   <subentry>
     <line>You gotta bad rep %pcn. I don't know anythin' about %key, but if ya come any closer, I'm gonna pop ya one.</line>
   </subentry>
 </entry>

It looks like text triggered by thieves or dark brotherhood? What do you think? For confirmation that the text goes in 5 and the shifts are important, there are other lines for same "kind":

 <entry index="7259">
   <subentry>
     <line>Last bloke that asked how to get to %key wound up dead.</line>
   </subentry>
   <subentry>
     <line>Howd' ya like a knife in yer gut? Thought so.</line>
   </subentry>
   <subentry>
     <line>You lookin' to find %key? I oughta kick yer arse fer wastin' my time.</line>
   </subentry>
   <subentry>
     <line>You're that lousy %pcn. Stay away from %key. Or else I'll haveta slit yer throat.</line>
   </subentry>
   <subentry>
     <line>I hate %ra scum. Git. Or I'll fill my cup with yer blood.</line>
   </subentry>
 </entry>
 <entry index="7264">
   <subentry>
     <line>%key? I'll show ya the edge of my knife instead! Scram.</line>
   </subentry>
   <subentry>
     <line>Come any closer and I'll slit yer gizzard %pcf.</line>
   </subentry>
   <subentry>
     <line>Ya have a hankerin' ta die? Then keep askin' around about %key.</line>
   </subentry>
   <subentry>
     <line> A %ra. Wonder what color blood ya have. Come 'ere and let me see.</line>
   </subentry>
   <subentry>
     <line>I know all about %key. But if I told ya, I'd have ta kill ya.</line>
   </subentry>
   <subentry>
     <line>Maybe I know something, maybe I don't. But I'm through with talking, %pcf.</line>
   </subentry>
   <subentry>
     <line>I don't care to discuss that or anything else with you. Goodbye.</line>
   </subentry>
 </entry>
 <entry index="7269">
   <subentry>
     <line>%key? Never heard of it. Doesn't ring any bells. If is about somethin' hot, go through the guild.</line>
   </subentry>
   <subentry>
     <line>Is %key a problem? I knows people that can take care of problems.</line>
   </subentry>
   <subentry>
     <line>Does %key have anythin' ta do with %fn? No? Then I can't help ya %pcf.</line>
   </subentry>
   <subentry>
     <line>You've gotta good rep on the streets %pcn. Sorry I don't know nothin' about %key.</line>
   </subentry>
 </entry>
 ...

entries goes on, and every 5'th is in same "kind"/"style" - do you recognize who speaks above lines? - it might help track the possible issue (after we know who is "5'th shift", it remains to identify the conditions for "set 7250-7254", then getting info from those in given conditions few times, should return correct message, return some garbage or crash)

I'm sorry to say that you're pretty much on your own with this. The user who wrote most of these pages is User:Uniblab, who hasn't been around much of late. It might be worth posting on his talk page to see if he's still interested. rpeh •TCE 14:10, 24 July 2011 (UTC)
Thanks for info, I might do so 188.122.8.69 16:44, 24 July 2011 (UTC)

edit: I believe I found a case that when this dialogue line will be used, it's when you ask someone from underworld about people, while they don't like you at all. I was able to reproduce the messages with Merchants (1'st message of block) and Peasants (2'nd) as those are easy to test - 3 other messages are for Scholars (3'rd message), Nobles (4'th message) and Underworld (5'th message). I.e. the messages are in blocks by 5, because there are five main social groups in game - same you set initial reputation for when creating class.

I'm not skilled player, so I don't know how to easily (like up to 5 minutes of game) access Underworld and yet have large negative reputation with them, which are requirements to trigger the message. Maybe someone could test this (ask someone from underworld about people - after ensuring large negative reputation with them)? If your character isn't liked by Underworld and yet you have access to them, please tell me what they say to your character when they refuse to tell you about some person you ask them about. If you don't have any person to ask about, just click "people" and leave secondary menu empty - if they were to refuse, they will anyway, at least that's what merchants and peasants do. It might require some unskilled polite babbling to get on their nerves. 188.122.8.69 17:33, 24 July 2011 (UTC)