tolsen64 on 17/8/2013 at 19:36
Recently, a kind soul made the mission file "Dark Lord" playable in NewDark so my autistic son could continue to play it since I updated his Thief install. So I put it in my mission archive folder and had TFMM read it. Although it is a Thief1 mission, TFMM identified it as a T2 mission. So it must have the string "SkyObjVar" in it which was used previously to determine if the file was T2.
So now the question, has anyone done the work of figuring out how to tell (by scanning the .mis file) the type of .mis file it is? Because now we have 6 types to look for, not just 3:
1. Thief 1 Orig
2. Thief 1 NewDark
3. Thief 2 Orig
4. Thief 2 NewDark
5. SS2 Orig
6. SS2 NewDark
I'm about to start studying .mis files in a hex editor to figure out what is unique about each type of file. Maybe someone else has already figured it out and can throw me a bone?
It's interesting to note that the file will play in T2, but the room is blue on all 6 sides, you can't open the doors or frob objects. So you're stuck in the room you start in.
Another interesting tidbit, looking at the mission files reveals that the 4 bytes beginning at offset 10C are: DE AD BE EF
tolsen64 on 21/8/2013 at 14:59
I've come up with a way that should show me unique strings in each type of mission file...
Do this for each type of mission file: T1, T1ND, T2, T2ND, SS2, SS2ND
1. Scan a mission file for strings and add each string to an array. Now the array contains all strings found in that first file.
2. Scan all mission files for the strings in the array, removing those not found from the array. This should guarantee that the strings still remaining in the array will appear in all mission files of the type. However, it does not guarantee that these strings do not appear in other types of mission files.
Now that I have the strings that should always appear in each type of mission file, scan mission files of all other types, removing strings from the array if they are found. This should give me strings that are unique for each mission file type.
Once I have this information, I should have a reliable method to determine a mission's game association within TFMM. I have over 1000 missions to scan so I believe I have a sufficient amount for sampling.
tolsen64 on 4/5/2016 at 18:14
Project is (
https://github.com/tolsen64/TFMM-fmsel) here.
The first update I was working on was a new WPF version that was going to use all the fancy-dancy new controls like a ribbon interface, drag & drop a fan mission zip file into the grid to have it added to the database, click on a mission and the text files open up inside the grid (RowDetails). But for some reason, when I'd launch a game from it, the game would run fine and play, but the launcher would crash when the game exited due to some WPF components that were unloaded when the game went into full screen mode and the launcher would try to display itself again. So that got scrapped.
And then there was the nightmare scenario of my kid being diagnosed with Autism / Childhood Disintigrative Disorder and having no time to work on anything for years. I tried a bit during those years to start something but never was able to devote any real time to it. I was able to get Shadowspawn / Telliamed to modify the IBT DLL used for shrinking/expanding CBT files used by T3 to allow me to pass a full path into it for source and target folders so that it would be compatible with NewDark installs. The original DLL assumed that the source and target folder would be the game folder and with NewDark, this isn't the case.
Things have finally stabilized to the point where I can work on a project. It's slow-going for sure because kids are always wanting attention, wife needs help, and work. But I do plan to devote a couple of hours per week on it at least, and even live stream the development on livecoding.tv (I've done it a couple of times, but my brain doesn't function as well when I know people are watching :o).
I know some in the past have told me a few features they'd like to have in a loader. So if you have ideas of things you'd like it to do, let me know. If it's not too difficult to implement, it just might make it in.
And if you think i'm wasting my time, let me know that also.
Yandros on 4/5/2016 at 18:20
Well, we do have FMSel, a mission loader which is included with NewDark, so I'm not sure there is that much demand for yet another updated mission loader, although that might depend on the new features you would be adding to TFFM.
tolsen64 on 4/5/2016 at 18:42
yeah, I know. I use that as well. But a few people have told me that while it's useful, it lacks things that the classic loaders have had, such as document viewing, and in the case of TFMM, the ability to launch a fan mission with certain settings like MaxCash, Zombie Mode for T1, and Ultimate Difficulty Mode. Also browsing and downloading missions right from the loader. I just checked the hit counter on my TFMM page and it has gotten 307 hits in the last 10 months. So that's an approximate 1 per day. So I figure there's a few people out there using it. But if enough people tell me that FMSel is good enough, I won't be heart-broken, i'll move on to my next idea...
Yandros on 4/5/2016 at 20:02
I wasn't trying to sway you, just to make sure you were aware and to encourage folks here to bring up ideas for TFMM.
R Soul on 4/5/2016 at 22:59
I was going to keep this under wraps but this thread has encouraged me to say something.
I'm currently working on something called NewDarkLoader, which looks very similar to DarkLoader but which uses the FMs folder system, and I plan to make it easy to manage DML fixes for FMs. I don't plan to manage downloading or have a web based scoring system. Nor do I have any interest in supporting T3 FMs (no offence meant to T3 players, I just don't know how that side of things works). I have, however, added support for .7z files.
I'm not sure what the best course of action is, tolsen. I don't want to discourage you, because although you may only have a short time each week, it could be a welcome diversion. But your next idea might be equally compelling. I don't think it's wise for there to be lots of FM loaders out there. Darkloader and FMSel are different enough to justify each others' existence. TFMM and NDL will be more or less the same (show readme, install in FMs dir etc). The thought occurs to me that you could focus on T3, whose technology hasn't changed, but I don't know if you'd need to do anything in that case.
Is FMSel good enough? Yes and no. It works perfectly well, but the reason I started on NDL was that having to right-click on and FM to get the readme, which then appears in Word or Notepad++, seems to take the fun out of it. For me, Word is the thing where I tweak my CV (resumé) or covering letter, and Notepad++ is where I make texts for my own FMs or configure programs. Neither is really suitable for reading an intro while imagining Garrett's voice and getting ready for some taffing.
fxdwg on 4/5/2016 at 23:21
Tolsen, I missed those days of your work on TFMM. I really liked the concept of where you were going with it. I've gotten comfortable with FMSel, but there are a few minor annoyances with it.
Not to bash it, but I don't like the way I lose my additions to the mission meta data when i replace the zip file with an updated version. I don't keep older versions around.
About the time you introduced us all to TFMM, I was getting familiar with a similar application called "Mod Organizer" for playing Elder Scrolls III, IV, and V. Where you added mods on a profile basis while never messing with the games install folder AT ALL! It was seamless switching between profiles and play-throughs. Although different in approach, the concept of leaving your installed game folder pristine in both cases was very appealing.
FMSel has the added benefit of being "built in" and controlled by a separate config file, however, TFMM or something along the same lines, in my opinion, would still be of interest and value.
Continued support to a stable end product, though, is also highly desirable.
Btw, I stll have your old TFMM code floating around my computer. While I never did anything with it, it very much inspired me for other projects of mine.
fxdwg on 4/5/2016 at 23:23
Quote Posted by R Soul
... having to right-click on and FM to get the readme, which then appears in Word or Notepad++, seems to take the fun out of it. For me, Word is the thing where I tweak my CV (resumé) or covering letter, and Notepad++ is where I make texts for my own FMs or configure programs. Neither is really suitable for reading an intro while imagining Garrett's voice and getting ready for some taffing.
I agree with you 100%
tolsen64 on 5/5/2016 at 04:44
Quote Posted by R Soul
I'm currently working on something called NewDarkLoader...
When do you expect to have something ready to reveal? I'm quite open to not stepping on your toes. However, with NewDark and the Sneaky Upgrade on Thief 3, they are almost identical in how to launch (passing the path to the folder to the game exe). The only difference is after unzipping, using the IBT dll to rebuild any IBT files to CBT files. Not hard to do. I think you should be able to support everything from SS2 to T3 easily.
I added support for 7z files in one iteration of my loader (never released), but since they are solid files, you can't scan the file easily to get info out of it. So you would have to effectively extract each file (even if just into memory), to get to the ones you need to read info from. That can take quite a long time if the mission is a big one. My plan was to use a background thread and run through all the zip files first to get them parsed and then move on to the 7z and RAR files (there are a few).
My big question is, what language are you coding in?