Nice, just wanted to make sure I had yall's blessing before taking over someone else's work is all ^^
Since it seemed like a relatively easy first step, I went ahead and looked at how the journal is structured. Calling its format HTML though is a bit, uh, generous. I did make a very rudimentary parser that skips over tags and lets me read each entry's date and text, and I also made a function that splits the date into numbers (namely the day of the month, current month, and days since the save was started) but it currently only handles english saves since (I assume) saves in different languages have slightly different formats for the entry date, not to mention different month names. I'll take a look at all the save files that have been posted here to see if any are in different languages, otherwise I'll just create a bunch of early game saves in different languages to determine what their format is.
For reference, here's an example journal entry in an english save file:
Code: Select all
<FONT COLOR="9F0000">16 Last Seed (Day 1)</FONT><BR>
I've decided not to help Hrisskar.<P>
Every entry seems to be formatted this way. A date colored in red, a line break tag, a newline, the text of the journal entry, a paragraph tag (with no balancing closing tag), and finally another newline. The only identifying information for what quest an entry belongs to is its text, meaning that reading the .esm files at some point to determine the quest id is inevitable, assuming journal entry text is always unique. In theory it would be possible to extract the quest data and bake it into the converter, but I'd then worry about bethesda deeming that some sort of redistribution of their game assets, so best not go that route imo.
---
If I may go on a tangent for a second, while I appreciate the desire to not require the base .esm files to convert saves into the new format out of principle, I really don't think that's realistic if the converter is to behave as expected and convert saves losslessly in the future. Certain things will almost certainly need to be checked for consistency, and the journal is already an obvious case of the game files needing to be available to convert data at all.
While I agree that asking users to locate the .esm files and pass them into a command line tool themselves involves too much friction for the average player, that friction can be alleviated greatly by the tool being integrated into the launcher via some sort of save file conversion UI, which needs to be aware of the .esm files to start morrowind anyway. Not to mention ess-importer also currently loads the openmw configuration files regardless, which means it's aware of the install location of both the base game and openmw (assuming it's been configured), which gives us an obvious opportunity to provide reasonable defaults.
As an aside, mass conversion of all save files in the base game's save folder to the new format should probably be a feature. Checking character names and classes should be enough to split saves into character folders, and only loading the .esm files once to convert several saves at once seems like a fairly obvious optimization opportunity.
Anyway, that's all I have to report for now. Cheers!