Of course seeing that all of the text was in ".txt" like files I thought this would be easy, but I'm obviously doing something wrong. The files are .MTP, with some sort of header, and then all of the text with control codes fairly easy to read. What I'm trying to do is change dialogue and well as spell/enemy/item names, town names, etc. (I'm a DW purist...)
When I make any changes at all to the files however, all I get are error messages. Say for example I change the file with items, any time I get an item, the item will be . It's also every item, not just the ones I've changed. I'm thinking there my be some sort of pointer table that would need to be changed as well? (I'm assuming now that this is the "header" that I'm seeing, which isn't plain text...)
If anyone can help point me in the right direction with this project, it would be greatly appreciated.
Edit:
Reading a bit more, about little/big endian, hex and how I would need to "byte swap" function the pointer table for it to make any sense to me, gave that a try with anything above the first text, and got something similar to this (excerpt):
UPDATED, now start of file:
(504D is just the file extension in ascii but messed up because of the swap)
504D 30 54 03 D4
0000 46 29 00 0F
46A5 00 0F 00 33
0000 00 20 00 00
0134 00 00 02 80
(new info on the line above, 0154 is where the data starts, says 0134 here. Another file is similar, where the data starts 20 more than what it says on this line... and oddly enough there is always a "20" in the line above. 280 appears to be the exact amount of characters in the data portion for this file.)
(these next lines are the pointer matched up with the data at the end.)
0000 00 00 00 04 @0M@
0000 00 01 00 04 @0F@
0001 00 02 00 0C @0M@1Ragnar@
0002 00 03 00 0B @0F@1Alena@.
0005 00 04 00 0B @0M@1Kiryl@.
0008 00 05 00 0B @0M@1Borya@.
000B 00 06 00 0D @0M@1Torneko@...
000E 00 07 00 0B @0F@1Meena@.
0012 00 08 00 0A @0F@1Maya@..
0015 00 0A 00 0D @0F@1Aigneas@...
0018 00 0B 00 0C @0N@1Healie@
001C 00 0C 00 01 @...
001F 00 0D 00 01 @...
0020 00 0E 00 0A @0M@1Fido@..
0021 00 0F 00 0C @0M@1Hardie@
...
(spaces and line breaks inserted for added effect and I also matched up the #s with the order of the text. I also apologize if posting a sample here against the rules as well, as it could potentially be "copyrighted"... If so, please delete the infringing portion of my post.)
Looks like the first value is an offset of some sort, which I can't figure out. The 3rd value is sequential numbering, sometimes goes up by more than 1 but never out of order. The 5th value turns out to be the size of the text, in hex.
You can also notice in the full string here, the first value 0M/F is for Male or Female, the 2nd 1name is the characters name. All of the files seem to have the data in this sort of structure so it might be easy to create an editor once this is all figured out...
Oh, and I also tried changing one character. In the file with the town names and chapter titles, it seemed to break it and give
When I make any changes at all to the files however, all I get are error messages. Say for example I change the file with items, any time I get an item, the item will be . It's also every item, not just the ones I've changed. I'm thinking there my be some sort of pointer table that would need to be changed as well? (I'm assuming now that this is the "header" that I'm seeing, which isn't plain text...)
If anyone can help point me in the right direction with this project, it would be greatly appreciated.
Edit:
Reading a bit more, about little/big endian, hex and how I would need to "byte swap" function the pointer table for it to make any sense to me, gave that a try with anything above the first text, and got something similar to this (excerpt):
UPDATED, now start of file:
(504D is just the file extension in ascii but messed up because of the swap)
504D 30 54 03 D4
0000 46 29 00 0F
46A5 00 0F 00 33
0000 00 20 00 00
0134 00 00 02 80
(new info on the line above, 0154 is where the data starts, says 0134 here. Another file is similar, where the data starts 20 more than what it says on this line... and oddly enough there is always a "20" in the line above. 280 appears to be the exact amount of characters in the data portion for this file.)
(these next lines are the pointer matched up with the data at the end.)
0000 00 00 00 04 @0M@
0000 00 01 00 04 @0F@
0001 00 02 00 0C @0M@1Ragnar@
0002 00 03 00 0B @0F@1Alena@.
0005 00 04 00 0B @0M@1Kiryl@.
0008 00 05 00 0B @0M@1Borya@.
000B 00 06 00 0D @0M@1Torneko@...
000E 00 07 00 0B @0F@1Meena@.
0012 00 08 00 0A @0F@1Maya@..
0015 00 0A 00 0D @0F@1Aigneas@...
0018 00 0B 00 0C @0N@1Healie@
001C 00 0C 00 01 @...
001F 00 0D 00 01 @...
0020 00 0E 00 0A @0M@1Fido@..
0021 00 0F 00 0C @0M@1Hardie@
...
(spaces and line breaks inserted for added effect and I also matched up the #s with the order of the text. I also apologize if posting a sample here against the rules as well, as it could potentially be "copyrighted"... If so, please delete the infringing portion of my post.)
Looks like the first value is an offset of some sort, which I can't figure out. The 3rd value is sequential numbering, sometimes goes up by more than 1 but never out of order. The 5th value turns out to be the size of the text, in hex.
You can also notice in the full string here, the first value 0M/F is for Male or Female, the 2nd 1name is the characters name. All of the files seem to have the data in this sort of structure so it might be easy to create an editor once this is all figured out...
Oh, and I also tried changing one character. In the file with the town names and chapter titles, it seemed to break it and give








