NewDarkLoader 1.7.0

Created by R Soul (Robin Collier)
Beta Testers: Brethren, Dahenjo, fxdwg, ItalianThief, JoergA, The Phantom, SlyFoxx

Special thanks to tolsen64 who helped to get an invisible but essential feature working (deals with how the laoder interacts with the game).


Contents


Section 1: Things you need to know

The NewDark patch gives the game a new way of handling FM files, which is more stable that the old way. The new system also makes it easier to manage multiple FMs (useful for beta testers and Dromeders who may switch FMs quite often).

NewDark comes with its own FM manager, called FMSel, to use the new system, but it's interface is minimilast. I wrote NewDarkLoader to work in the same way but to show the FMs' readme files like Darkloader used to.

In other words, this is a Thief 1/2/3 & System Shock 2 Fan Mission installer that combines the best features of Darkloader and of FMSel into one program, and has a few of its own tricks up its sleeve.

There's a more recent program called AngelLoader whose usage is even closer to Darkloader, but still uses the new, more stable, way of handling FM files.


Requirements


Installation

  1. Extract NewDarkLoader.dll, SevenZipSharp.dll and NAudio.dll to your Thief2 folder (or Thief, or Shock2, or Thief3\System). English.ini is optional - see the end of section 2 for details.
    The file 7z.dll should already be in the destination folder, but is included just in case you don't already have it
  2. Open up cam_mod.ini with any text editor.
    (For Thief 3, it's SneakyOptions.ini)
  3. Remove the ; from the line that reads ;fm
    If you have already been using FMSel, this will not be necessary
  4. On any other line, type in this, or copy and paste from here:
    fm_selector NewDarkLoader.dll
    (For Thief 3, change ExternalSelector=... from FMSel.dll to NewDarkLoader.dll)

Steps 5 and 6 are for Darkloader users only.

  1. Use Darkloader to uninstall whatever FM is currently installed.
  2. From now on, instead of running your Darkloader shortcut, use your Thief 2 (or other game) shortcut instead, and NewDarkLoader will start automatically (if you did steps 1 - 4).
  3. For multiple games (e.g. Thief 2 and Thief 1), you should perform the above steps for each game's folder.
  4. You should use one folder for Thief 2 FMs, another one for Thief 1 FMs, etc, instead of putting them all in one folder.
    You can keep the FMs all mixed together if you want, but it's up to you to make sure you don't try to play a T1 FM after running your T2 shortcut.

First Startup/Setup Window

If you've been using FMSel you can easily transfer its data (FM names, disabled mods etc) to NewDarkLoader. Open your \FMs folder (or for T3, ...\Installed FMs), make a copy of FMSel.ini and rename the copy to NewDarkLoader.ini.

Standard Options

The first time you run your game, NewDarkLoader's Setup window will appear. You need to set the FM Archive folder. If you copied FMSel.ini, this will already have been set, but Setup will still show in order to set some other options. All the other options can be left at their default values, and they can be changed at any time.

As of version 1.6.0, multiple paths can be selected.

Relative Paths is an option that may help people who run the game/FMs from different drives, but testing has been limited.

The Language option is used to allow NewDarkLoader to look for a 'language name'.ini file which changes the interface text (button text, messages etc). See the included English.ini file to see an example. There is further info about this in section 2.

Extra Options

The Web Search Site is to make use of the Web Search button in the main window. This searches Google and limits the results to the specified website (example "fm title" site:ttlg.com). Leave blank for an ordinary Google search.

The Article list field is used if the website is thiefmissions.com. For this site, if an FM's name begins with any of the words in this box (e.g. 'the', 'an', 'a'), that word is moved to the end of the title, e.g. Last Lighthouse Keeper, The.

The checkbox below allows you to have those words ignored when sorting the FM list by title, e.g. The Box is listed in the B section, not T.

The 7zG.exe options are recommended for a slight increase in performance (or a big increase with large FMs that are in saved in the "7z" format).


Import from Darkloader (optional)

Once you've left Setup, you can use the Old Darkloader Tools button to import some data (FM names, last played, comments etc), which will hopefully save you a bit of effort.

Another useful feature is to import savegame backups. NewDarkLoader uses a slightly different system, the same as FMSel. Import Darkloader Saves makes copies of the old-style backups and stores them in the new format, so you can keep playing FMs where you left off.


Playing FMs

This is the easy bit. Click on an FM in the table, and click on the Play <fm name> button at the bottom. You can also double-click or press Enter. The latter two will show a yes/no box in case it was an accident, but you can permanently hide it. Enter won't always work, e.g. if you've clicked on one of the buttons, Enter will then activate that instead.

If the FM has multiple possible readme files, a list will be presented, from which a selection must be made.

If you download an FM, and put it in your FMs folder, while NewDarkLoader is running, you can refresh the table with the green 'refresh' button or by pressing F5.


Uninstall

You don't have to uninstall FMs thanks to NewDark (each one is put in its own folder), but if you do, and you've saved games and/or taken screenshots, NewDarkLoader will ask if you want to back them up.

Usually you'll want to select Yes, but if you select No, any previous savegame backup will remain intact, so you won't lose everything.

In Setup you can tell NewDarkLoader to always backup the savegames.


Resizing

The division between the FM table and the readme can be dragged by the grey bar. The location will be remembered for the next time NewDarkLoader is run. The Full Screen Readme button toggles the readme between its current size and the full window.

If you drag the bar all the way to the top, that button will essentially do nothing.

When the program is closed, if the readme is full sized, or large enough to hide all the FMs in the table, its size will be reset to the default value when the program is next started.


Filling the FM Table

If you didn't perform the optional steps of using FMSel.ini, or importing from Darkloader, the FM table will be mostly blank. Selecting an FM will cause NewDarkLoader to scan the files and try to get the title, release date, last played date, and tags. This process can take a few seconds, or maybe more for a large FM. To save time in the future, the values will be stored in and read from NewDarkLoader.ini.

If you don't mind waiting, you can tell NewDarkLoader to scan all FMs at once, which fills the table. It could take a few minutes, which is why it doesn't happen automatically. Right-click on any FM, you will see a context menu. Select Scan All FMs. It will overwrite any changes you've made.

The Last Played date is obtained by looking for savegames, and choosing the most recently modified file. If you play the FM, this date will be changed to the current date.

NewDarkLoader does a thorough job of getting the correct information, but you can make your own changes. Some campaigns don't have their names defined clearly, so NewDarkLoader sticks with the downloaded filename.

From the right-click menu. Select Edit FM Data and you'll see a new window where you can change any value.

If you add new FMs to your folder, or delete them, you can press the refresh button (or F5) to and redraw the table. It does not update FM data (real name, release date etc).


Edit FM Data

The first value, Readme, allows you to choose which text file to display in the main window.

The 'Extreme' difficulty checkbox is for SS2 (I don't have that game but I copied it from Darklaoder).

You can change the Last Played date, but NewDarkLoader will automatically set this to today's date each time you tell it to play the FM. Selecting Not played will clear the value, but it won't erase the Difficulty checkboxes.

If the FM has savegames, you can tell NewDarkLoader to get the date from the most recent one. If the FM is currently installed, it'll look for those savegames as well as any backed up savegames. This is also what happens when you scan all/rescan from the right-click menu.

Disabled mods is a NewDark feature. There are lots of fancy mods for this game, but sometimes they don't work with certain FMs, or you prefer an old school look. The correct things to type depend on the mod, but it's usually the name or a "crf" file, or a folder, e.g. "ep2" or "hdmod" (without quotes). Multiple mods should be separated by "+", or use "*" (no quotes) to disable all mods. If in doubt it's best to ask on the forums.


Section 2: Things that are optional but worth looking at

FM Fixes

NewDark is wonderful but there are some FMs that don't work quite right. Some of these FMs have fixes available, which don't alter the original files, and NewDarkLoader can be made to apply those fixes each time you load the mission.

After downloading the file, select the FM in the table and press Ctrl F. Select the file you downloaded (multiple file selection is supported), and NewDarkLoader will copy it to the correct location. The fix will be applied the next time you install the FM.

You can also set the location manually: In your FM archive folder (where you keep the Zip/7z/Rar files, which you specified in Setup) create a folder called ".fix." (no quotes). Note the full-stops at either end. Windows will remove the last one, leaving you with ".fix"

Inside this folder, create another one named after the FM's zip file (without the extension), e.g. The Skygem connection file is sgc_wv_102.zip, so create a folder called sgc_wv_102

In this folder you can put the file. This thread has a link to a set of fix files. With the above example you'd need to get skygem.7z.

In the unlikely event of an FM's fix file being updated (i.e. the fix gets fixed), you can repeat the procedure (either Ctrl F... or manually), and you will have to re-install the FM for the new files to apply. You can also extract them manually if you don't want to re-install, but remember to put the fix archive in the correct location for subsequent installations.

For those wishing to make their own fix file: It must have the same folder structure as a normal FM archive.


Tags

Tags allow you to store extra information about FMs, and FMs can be filtered by their tags. Some FMs come with tags already defined, but you can modify the tags of any FM. Tags can be single words, or you can use a colon to create a category and a sub-tag, e.g. author:some_taffer, genre:horror and so on. There is a menu which can show you existing tags for a given category, or you can just type them manually.

The Add New Tag button adds whatever is typed in the box next to it. You can use the <Tag Presets> menu to select common types of tag. If you select author: that text will go into the box on the right, and the menu below will show a list of existing author tags. You can finish off the text yourself, or make a selection from the menu and select Add New Tag.

Add Existing Tag shows you a list of all tags from all the FMs you have, any of which can then be added to the selected FM.

The tree view shows the tags for the current FM. You can select a tag and delete it. If you select the 'category', e.g. author, all tags in that categroy will be deleted.

There's a tall button between the tags and the FM table, which toggles the Tags' visibility; useful if you like to run a compact interface and don't use tags.


Filter

You can hide FMs using the filter bar at the top. The name filter is very exact, but is not case-sensitive, so it's best used to help you find an FM with a known word in the title, like "ghost".

Unfinished only is simple enough, though I should point out it uses the 'difficulty' checkboxes from the Edit window, or the ticks in the table, to determine whether or not an FM has been finished.

The two dates will filter missions by their release dates (month and year). By default they are blank, which turns off date filtering. Selecting a month with no year will have no effect. Selecting a year without a month will include all missions in that year. It works like this:

The Tag Filter is not as complicated as it might appear. Click the button to bring up the Tag Filter window. On the left is a list of all tags from all missions. Click on one (child nodes only, not parents) and click on Include or Exclude. When you've finished, NewDarkLoader will show all FMs that have any of the include tags, and that have none of the exclude tags. Remember, you can add your own tags to FMs.

Remembering filters

The filters are stored and remembered for the next time you run the game.

Reset

The Reset button on the left clears everything, including tags. You can reset tags only by going back into the Tag Filter window and going to Remove All.


fm.ini

An optional file for fan missions is "fm.ini" (that exact name), which can define the mission's title, its release date and its tags. This allows NewDarkLoader (and FMSel) to display the correct information without the player having to do any editing.

Without this file, NewDarkLoader will use other methods to get the title and release date. These are quite reliable but take longer because multiple files within the archive have to be scanned.

If you start NewDarkLoader with Dromed, the right-click menu will have an extra item: "Generate fm.ini". This will take the existing fm info, which you set via Edit FM Data and by adding Tags, and use it to generate an fm.ini file. You can choose the folder, but the initial location will be the FM's installation folder.


[language].ini

This file allows you to modify all of the text you see in NewDarkLoader, allowing multi-language support. Place it in your [game installation]\FMs folder (Installed FMs folder for T3).

The included English.ini shows the default English text to make it easier to see which keys are related to which piece of interface text. In some cases you'll need to be careful with the length of your translated text, e.g. if it goes inside a button.

NOTE: To allow NewDarkLoader to correctly display certain characters, e.g. é, you should set the file's encoding to ANSII.


Logging

In case of errors or odd behaviour, users can open NewDarkLoader.ini and in the [Config] section, add the line Log=1

This will create a file called Log.txt in the same location as the .ini file, which should help this developer if there are any bugs.


And Finally, a Tribute

Darkloader is a great program. It has served us well for over a decade. Many thanks to Björn Henke for creating it, and Telliamed for further development. NewDarkLoader draws heavily on the design of Darkloader.

FMSel is a nice tool in its own way. I only started developing NewDarkLoader because I kept forgetting to check the readme of a fan mission I was beta testing, and decided to write something more user friendly.


Changes

Version 1.7.0

Version 1.6.1

Version 1.6.0

Version 1.5.9

Version 1.5.8

Version 1.5.7

Version 1.5.6

Version 1.5.5

Version 1.5.4

Version 1.5.3

Version 1.5.2

Version 1.5.1

Version 1.5

Version 1.4.11

Version 1.4.10

Version 1.4.9

Version 1.4.8

Known Issues

Version 1.4.7

Version 1.4.6

Version 1.4.5

Version 1.4.4

Version 1.4.3

Version 1.4.2

Version 1.4.1

Version 1.4

Version 1.3.5

Version 1.3.4

Version 1.3.3

Version 1.3.2

Version 1.3.1

Version 1.3

Version 1.2.1

Version 1.2

Known Issues

Version 1.1.1

Version 1.1