Demons3 Server Launch

What Is DeMONS

DeMONS is a set of components primarily intended to enhance the server admin’s life through eaiser configuration and management of racing servers implemented through the use of Nascar Racing 2003 Season (by Papyrus). Specifically, DeMONS allows the server admin to specify a schedule of one or more races over a given period of time. Further, the server admin can run multiple servers simultaneously. For instance, a practice server can run all week, and a race server can be scheduled to start at a specific time/day for the actual race.

Eventually, remote admin capabilities will be added, but like everything else in life, there are no guarantees, so I’d appreciate it if nobody asked when a given feature will be available.

With the release of the patch for the sim, it became possible to select between multiple racing series. This feature prompted me to develope a client app (see “D3PlayerPicker” in the table of contents) that allows the driver to select various parameters for racing in a given league with a given series.

DeMONS is absolutely free to use, but to control quality (or what little quality there is), you may not make the program downloadable from your site. Simply provide a link to the DeMONS/3 web site and let the users do their own thing.

Before We Begin

  • Even if you’re here for the client module(s), it would still be in your best interest to read through the first two major sections of this Reference Guide. Most (if not all) of your questions are answered right here, so please RTFM before asking any questions.
  • This software is not endorsed or supported by Papyrus. Please do not bother their programmers or tech support guys about issues you have with this software.
  • None of the individual DeMONS components will run unless at least one of the supported versions of Nascar Racing has been installed (at least once) from the associated retail CD. I don’t pirate software, and I won’t support others that do. This issue is not negotiable.
  • This software is ALWAYS in a state of flux, and you can therefore consider yourselves to be beta testers. Thanks for testing this software. I, and all future users, appreciate your help in this area.
  • I accept no responsibility if your system gets trashed. DeMONS is beta software and while it seems to work fine for me, I won’t guarantee that you won’t do something stupid. So, caveat emptor, you’re on your own, and remember, nobody likes a whiney bitch.
  • If you feel like something went completely wrong between releases of DeMONS, please use the “Start Fresh” button on the main D3Config dialog box to zap all your current DeMONS data.
  • Items that are shown in red elsewhere in this document are not implemented beyond showing up on the dialog boxes and being saved in the appropriate data files.
  • DeMONS/3 (from hereon, referred to as D3) does NOT patch any executable files, or any of the .DAT files that are supplied with Nascar Racing. It also does not write to any Windows folders or files (including the registry).
  • Please report all problems to the D3 mailing list. When posting a message describing a problem, I want as much detail about what you were doing and what happened as possible. If I can’t duplicate your problem, I can’t fix it.
  • Please do not offer to pay me in any way for this software. I appreciate the sentiment, but that’s not why I’m doing this. Quite frankly, I’m a lazy bastard and only work on the code when there’s something drastically wrong with it, or if there’s something that needs to be added. If I let someone pay me for this garbage, then they might feel like I owe them something, and that irritates the hell outa me.
  • If you think something is missing, or if there’s something that doesn’t apply to Nascar Racing, let me know through the mailing list.
  • If Papyrus changes something that affects dedicated servers (where applicable to D3) in a future patch, you should expect a new version of D3 will soon follow.
  • For D3, I decided that it would be less confusing to NOT have help text actually displayed on the dialog boxes. So, if you’re looking for help on a specific field, look in this document. I tried to provide more help than than just saying something like “This field allows you to enter this bizarre value”. If something is not sufficiently explained, do not hesitate to bring it to my attention.
  • D3 comes with a number of helper files, such as the points schedule file and the sample template files for use by D3League. I’ve taken limited steps to account for “stupid user tricks”, but I won’t kid you – it’s still entirely possible for you to screw something up manually in a way that I was too lazy to anticipate. So take some advice from one who knows – DO NOT screw with these files unless absolutely necessary, and please don’t delete them.

What This Software Does

D3 is intended for use by people that have the equipment, bandwidth, and mental fortitude to administer one or more Nascar Racing hosts for the enjoyment of the wholly unappreciative throngs of would-be virtual stockcar drivers. D3 simply makes this task easier.

IF YOU ARE NOT A SERVER ADMIN, DO NOT BOTHER WITH THE SERVER MODULES.

Features include the following items, each of which may or may not be working during the development/testing phase of the application. Unimplemented features are marked with an asterisk.

  • D3 supports Nascar Legends, Nascar Racing 3, Nascar Racing 4, Nascar, Racing 2002 Season, and Nascar Racing 2003 Season (as long as they are installed from their respective CD).

  • An unlimited number of independent hosts (for any of the sims listed above that you may have installed) can be configured for each machine.

  • An unlimited number of races can be scheduled for each host.

  • Results generated by Nascar Racing can be imported, massaged, and saved in a number of formats.

  • A player picker module is available for people who have a lot of user ID’s and/or who participate in more than one league/racing envirnment.

For Windows Users

If you’re running a Nascar Racing server on a computer that is running Windows 95, 98, or ME (and maybe even Windows NT 4.0), you will have to run the D3Scrub program. The reason is that Papyrus created the track-related files in a format with which the operating systems listed above are incompatible when using the standard Windows API. I tried several methods for fixing this problem without having to rewrite the files, but since speed of execution is somewhat critical, I chose the most intrusive method. Believe me when I say that in the long run, this is the best method of the half dozen or so that I tried.

If you’re not sure that you need to run the D3Scrub program, a good way to check is to run the D3Config component and try to create a schedule. If after adding a track to the schedule, you see no tracks in the track list, you can safely assume that you need to run D3Scrub.

After scrubbing your files, Nascar Racing will continue to work as intended, so there is no incompatibility introduced through the scrubbing process. For the paranoid, I’ve provided a way for you to create backups of your original files, but it’s really not necessary.

NOTE: D3Scrub only needs to be run for Nascar Racing 4, Nascar Racing 2002 Season, and Nascar Racing 2003 Season, and ONLY if your server machine is running Windows 9x/ME.

NOTE #2: D3Scrub needs to be run EVERY time you add a new track (yes, it’s safe to run D3Scrub over and over again).

Installation

Simply copy the files to the folder of your choice, and create some shortcuts on your desktop. That’s all there is to it, although I strongly recommend that you create a folder just for D3.

Starting for the First Time

When you run D3 for the first time, the program will attempt to find Nascar Racing through registry settings. All components will check to make sure that Nascar Racing has been legally installed from the retail CD. If it does not find a legal installation, NONE of the D3 components will run. There is NO reason why you shouldn’t be able to install Nascar Racing as intended.

Assumptions

  • You have already installed either Nascar Racing from the retail CD onto your system, and you have run the sim at least once in order to create some files and/or users. This is CRITICAL for NR3 and NL since these sims create files that DeMONS needs to patch in order to change certain game settings. Further, if the necessary files cannot be found in the sim folder, you will NOT be able to create or configure NR3 or NL hosts despite having otherwise installed them correctly.

  • You have created at least one player on SIERRA. You will need both the user ID and password if you want your server to show up on SIERRA.

  • You have un-ZIPed the D3 files in a folder of your choice. I recommend putting the program into it’s own folder.

  • You know what your server port assignments are (one server for each host you intend to set up). See the field description for more details on this requirement.

  • You are sufficiently familiar with hosting games over the internet in general, and are familiar with running a Nascar Racing server in particular. This includes being familiar with the installed game’s directory structure, file placement, and hardware requirements.

  • You can read and comprehend the English language.

Quick Start

  • If you server is running on a Windows 9x/ME machine, run D3Scrub. This component prepares some of the Nascar Racing INI files for use by D3 (doesn’t change content, and no small animals are harmed).

  • Run D3Config to configure the D3 software. This component allows you to set up the D3 server as well as your Nascar Racing hosts (including schedules).

  • Run D3Launcher. This program is responsible for executing the schedule(s) you’ve set up.

Issues with other Software/Hardware

If you have bizarre and seemingly unexplainable problems running your hosts, the very first thing you should do is review the health of your hardware, and then look at other programs that are running. Because of the more stringent sanity checks D3 makes when running the sim, there are times when you might experience the dreaded “Stop/Error” schedule status (indicated by a red flag in D3Launcher).

Certain programs have a long and glorious history where ill-behaved software is concered, especially when combined with games. Here’s a brief list of programs and “why they’re bad”.

  • Anti-virus programs – these programs typically simply take over your system. Nothing happens without being monitored by these programs. If an anti-virus is active on your system, it’s stealing CPU cycles, and making file access take a lot longer than it normally would.

  • Firewall software – these programs are another type of monitoring software, and should be replaced by hardware solutions. I personally use a Linksys BEFS-41 four-port switch/router, which can be had for next to nothing nowadays.

  • Windows Messenger service – this service comes with Windows and is installed and enable by default. If you leave it on, you stand a good chance of having dialog boxes pop-up while your server is running a race. This will disrupt the race. There are instructions all over the web for turning this off. I recommend that you do so.

  • Windows Auto-Update – this is another “convenience” program that periodically calls Microsoft to see if there are any updates to your OS. This is a BAD thing – turn it off.

  • Instant Message software – why anyone uses this crapware is beyond me, and you’ve setup a truly dedicated server machine, you shouldn’t be needing this kind of software (on your server box anyway).

  • Windows Task Manager – this program repeatedly sends messages to all running processes on your system to make sure they’re not hung/frozen.There is NO need to be running this (or any of the system monitoring software, for that matter) while a sim host is running. I have personallyseen severely degraded frame rates and keyboard response when I forgot to turn it off before running either NR2K2 and NR2K3.

My advice is that if you want the best possible performance out of DeMONSand your sim servers, move as much of this kind of crap OFF of your host machine as you possibly can. There is NO NEED for anti-virus software on a dedicated sim server machine, because you’re not going to be (or at leastshouldn’t be) collecting email or browsing the web from it. Further, with the dramatically low prices for hardware firewalls and routers, you have no reason not to run out and buy one.

Common Problems

Every time I run a D3 module, I get a dialog box that pops up saying that it’s looking for installed sims and verifying track folders. Why is that, and can I turn it off?

First, no, you can’t turn it off. Second, each module has to know certain information about the sim and their track files. This also enables D3 to find add-on tracks without you having to do anything more than add the track folder to the sim. Lastly, I’ve found that most end-users have a brain comparable in size and mental scope to a ball bearing. They do all kinds of stupid shit, including randomly deleting track folders or uninstalling sims without a thought to other programs that rely on those things to be still installed. So, to keep you from shooting yourself in the foot, D3 has become a little less forgiving. You’ll get used to it (and it’s only a true annoyance if you have ALL FIVE of the sims installed).

I installed NR3 (and/or NL), but D3 doesn’t allow me to select that sim for a host. Why not? D3 requires that certain files exist in your sim folder (for NR3 and NL) that only the sim can create. The problem you’re seeing is caused by the fact that you have installed the sim, but you haven’t actually run the sim yet. Run the sim once, and then try running D3Config again.

When I attempt to add a race to the schedule, there are no tracks to select. Why? You have to run D3Scrub.EXE to massage the track INI files. Refer to the section titled “For Windows 9x/ME Users”.

In the Launcher, when I hit the START or START ALL button, the schedule goes immediately from a blue flag to a checkered flag. Why? There are any number of reasons this could occur. Check the following items:

  • If you’re using the specific date/time timing loop, the race’s start date/time may have already passed. D3 skips late races.

  • Make sure you ran D3Scrub before runing D3Config

  • If you’re registering your server on WON/Sierra, make sure you have specified a userID and password for WON/Sierra for the player.

The sim stops running at the main menu, but it’s not frozen. Why? It could be a player.ini problem. Review the section below titled “Sim Version Issues”.

Sim Version Issues
This section describes issues, gotchas, and other stuff you have to be aware of when dealing with NR2K3.

*It seems Papyrus made some really poor decisions where series mods are concerned. These decisions may impact D3 code at some point in the future when many series mods start to be released. I’ll try to keep up, and subsequently keep everyone informed.

* In order to run this sim in minimized mode, the resolution selected in the sim must be SMALLER than the resolution set for your Windows desktop.

*If you are creating multiple players by simply copy/pasting player folders and renaming them, make sure that you edit the [Personal Information] section each of the player.ini files so that the firstName and lastName fields reflect the correct player name. For example, if you set up a player name called “John Doe”, the folder in the players directory would be “John__Doe”, and the fields indicated above would look like this in the ini file:

[Personal Information]
firstName=John
lastName=Doe

This is only a concern if you do NOT use the game itself to create the player. I can guarantee that the sim will NOT host a race if the name in the file doesn’t match the name indicated by the name of the folder (it will stop at the main menu screen and you will have to manually terminate the sim).

* If you switch between running the sim in full-screen and minimized modes, the first time you run the sim in the newly selected mode, it will automatically run the video configuration utility. While this doesn’t hurt anything, it will cause the sim to take longer than usual to actually get to the point of hosting a race. At this point, my advice is to stick with one mode or the other, and no, this cannot be fixed by patching DeMONS – it’s a sim thing.

Re-gaining Disk Space
I have been testingD3 with the sim, the CTS and GNS series mods, and a good number of extra tracks, and came to the starting realization that the sim takes up over 730mb of disk space! I started wondering how much fat I could cut out to recover some of that wasted space, and after some work, I got it down to just 413mb! The basic premise I used was that the dedicated server does not need the 3-D renderers, and doesn’t use sound. Additionally, I’m just running this machine as a server, so there are certain files that can be deleted simply because they’re not used by the server itself. Finally, no cars are displayed, so it only made sense that I didn’t need more than one car file per series. Here’s what I did:

* Delete the lessons folder in its entirety. It’s a server – who’s going to watch the lessons?

* Delete the paintkit folder in its entirety. It’s a server, not a paint booth.

* Delete the telemetry folder in its entirety. It’s a server, not a development machine

* Delete the sound.dat file. (I didn’t try deleting the whole sound folder.)

* Delete all but one of the car files in each of the series folders (the server needs a car file I think).

* Delete rend_dxg.dll, rend_ogl.dll, rend_dxg.ini, rend_ogl.ini, and NR2003.exe from the sim folder.

* Finally, I made sure that the sim was set to use the rendserv.dll graphics renderer.

One thing I did notice is that it seems takes a bit longer to shut down between races. I have no clue as to what file I deleted that would cure this small issue, but it’s most certainly not worth the effort to worry about.

Alternative Sim Install Path
I’ve decided to tell you how to get around the retail install requirement that is mentioned so many times on the web site (and specifically in the Reference Guide). What this means is that you will no longer have to install from a retail CD in order to use DeMONS. Keep in mind that this was never meant for public consumption, so you may experience a rough patch here and there concerning this “feature”. If you do, let me know, and I might fix it.

First, create a file called D3OVERRIDES.INI. Copy the following lines into the file:

[SimPaths]
NR2K3=c:\Papyrus\Nascar Racing 2003 Season\

Replace the path in the second line with the path appropriate for your installation.

D3Config

This component allows you to configure your Nascar Racing server machine, and it’s hosts. This component must be used at least once.

Contents
D3Config Main Dialog
Show Sims Dialog
Settings Dialog
Host Recap Dialog
Add/Edit Host Dialog
Schedule Races Dialog
Race Configuration Dialog

D3Config Main Dialog
This is the main configuration dialog for D3, and is the first one you see.

*Hosts List — This list control shows the hosts that are currently configured, along with some of the more important data associated with each host. I am of the opinion that the columns are labelled clearly enough that they don’t need further explanation here.

*Add Host — Allows you to add a new host. There is no limit to the number of hosts that D3 can support, except for those limits imposed by Windows. An INI file can only be 64K in size. I really don’t think that anyone would realistically be expected to create enough hosts to exceed this limit, and therefore no effort has been made to guard against the possibility.

*Clone Host — Allows you to clone the currently selected host. This will help admins setup many similar hosts without having to manually change every setting. At this time, you will only be prompted for a new name, but this may change in the future as needs are identified.

*Edit Host button — Allows you to edit the currently selected host.

*Delete Host button — Allows you to delete the currently selected host.

*Start Fresh button — Allows you to delete all of the existing hosts and their schedules in one fell swoop. The user is prompted to verify that he is sure before proceeding with the action.

*Settings button — Allows you to edit the settings for the D3 program itself.

*Host Recap button — Allows you to view a graphic representation of all the hosts schedules.

*Done button — Duh…

Settings Dialog
This dialog box is displayed when you click the Settings button. There are two tabs on this dialog box.

General tab

This tab allows you to specify general program settings that applies to the D3 suite of server-specific programs.

*Use Track Database — By default, D3 scans the /sim/tracks folder every time a module starts up. This can be moderately time consuming if you have a lot of extra tracks installed. In order to shorten this scanning time to something more palettable, D3 gives you the option of creating and utilizing a track database the sim.

If you elect to use a track database, you will be forfeiting a certain level of automatic operation performed by D3. Since the default mode is to scan the tracks folder EVERY TIME a D3 module runs, all you would normally have to do is correctly add the track to the sim, and D3 will find it the next time D3 is run. If you use the track database, you must delete the track database file (D3Tracks.ini) in order for D3 to re-scan the tracks folder and find the newly added track.

*Processor — In multiple-CPU machines, you can select the CPU on which to run the D3 components. If you change this value, you will have to shutdown and restart D3 for it to take effect. To see if it works, use Task Manager to see what CPU the D3Config.exe process is running on. This field will be disabled if there’s only one CPU in your machine, or if you’re running Windows 9x/ME.

*Skip Launch Sim — If you want to test the program to see what it’s going to do, or if I ask you to give me a specific piece of info regarding D3Launcher, I may ask you to check this box. This will make the launcher act normal in every way, except that it won’t actually run the sim (or perform post race functions such as massaging results files, and stuff like that). It’s just a convenient way to help you to help me. Unless I tell you otherwise, leave this box un-checked.

*Check for sim shutdown — In order for you to be able to shutdown a host that’s in the middle of running a race, D3Launcher needs to peiodically poll the running sim through it’s process ID. To make the responsible thread as efficient as possible, this field allows you to specify how often D3Launcher checks to see if either the sim either stopped on it’s own, or was shutdown in some other fashion (manually or due to a favored host action).

The default value is five seconds, but you can set it anywhere from 1 to 120 seconds. Keep in mind that waiting longer makes the thread more efficient, but can cause a longer delay in processing a request to shutdown a host’s sim. If you’re running only one or two hosts, experiment with lower values because you have fewer threads running than someone that runs four or more hosts.

*Ignore sim error — In order to implement certain D3 features in the launcher, D3 needs to find the sim’s window handle. Before D3Launcher can even look for the sim’s window handle, the sim must be in what is called an “input idle loop” (at a point where it’s waiting for the user to do something). D3Launcher allows 30 seconds for the sim to enter this loop, and if the sim never gets to that point, D3Launcher generates a “Stop/error” for the host, and pretty much shuts the host down, but the sim remains running.

The cause of this problem is most likely that you’re running other software that is interfering with this process, or that your hardware may not be up to the task of supporting your sim host. The problem itself is more likely to happen on a machine running more than one host at a time.

The “ignore sim error” checkbox, effectively tells D3Launcher to ignore this error and proceed with whatever it was doing. Keep in mind that if you check this box, you should NOT run practice-only races, since D3Launcher needs the window handle of the sim in order to shut it down.

*Series/Physics Alignment — This is simply an informational control that lets you know what physics model each series uses. The data is gathered automatically from the series mods that are installed on the server.

Invite/Muzzle Lists tab

This tab is divided into two side-by-side panels with identical components. The left side is for the invite list, and the left is for the muzzle list. Further, the lists created here are available to be copied into the host-specific lists at your discretion (sure saves a lot of typing). In order for this to be effective, you must specify a race password, otherwise, specifying/using the invite and muzzle lists is meaningless.

NOTE: D3 will create D3MasterIUnvite.lst and D3MasterMuzzle.lst in the DeMONS folder, and these files will be used when you “Copy From Main List in the host-specific lists page.

*Invite List — The invite list allows you to specify specific users ID’s that may join your race server without having to enter a password. The muzzle list prevents listed users from joining your races, even if they DO know the password.

*New ID — This edit field allows you to specify a new ID to be added to the associated list.

*Add button — This button adds the “New ID” to the associated list.

*Delete button — This button deletes the currently selected ID from the associated list.

Host Recap Dialog

This dialog shows a graphic representation of all the configured hosts and the weekly time slots filled by each one. It is an informational dialog intended to help you find scheduling conflicts in a multi-host environment.

Describe the image above here…

Add/Edit Host Dialog
When you click the Add Host button the Add/Edit Host dialog is displayed. The Add/Edit Host dialog box is comprised of several tabs, and three buttons.

Server Admin tab

This tab contains administrative settings for the host. The available fields are as follows:

*Host Name — This is the host name that appears in the D2 Configuration dialog box, as well as on remote drivers’ machines in their race list. This is a required field. It defaults to “New Host” if this is a new host being added to the client machine. This field can be up to 15 characters long.

*Server Location — This field contains the server location info (example: “San Antonio, TX”). There is no default value.

*Connection Type — This field is used to describe the type of connection this host is using on the internet (example: “Cable modem/256k up”). This is not a required field, and there is not default value.

*Boss Password — This field allows you to specify a password that can be used to send commands during a race. Beginning with NR2K2, boss passwords allow less comprehensive control over the server. This was implemented by Papyrus in an attempt to curb the tendancy for some butt-holes to perform a hostile takeover of a server. See the NR2K2 README.TXT file and/or SERVER.TXT file for more information on the new capabilities of bosses and admins.

*Sierra User ID — This field allows the server to log into WON. This ID only needs to be entered if you want the host to show up on Sierra.

*Sierra Password — This field is part of the Sierra logon. This password will only need to be entered if you want the host to show up on Sierra.

*Admin Password — This field allows the server admin to specify an admin password. Beginning with NR2K2, boss passwords allow less comprehensive control over the server. This was implemented by Papyrus in an attempt to curb the tendancy for some butt-holes to perform a hostile takeover of a server. See the NR2K2 README.TXT file and/or SERVER.TXT file for more information on the new capabilities of bosses and admins.

*Hide admins — This field allows you to hide admins that are connected to your server.

*Hide bosses — This field allows you to hide bosses that are connected to your server.

*Player Folder — This is the player folder that is associated with this host. This is a required field, and the desired player folder must already exist.

*Server Car File — This setting involves a combination of three controls. The list control on the left side of the dialog box shows the installed series, and the associated car file (if already selected). Once you click on a series, the listbox on the right side of the dialog box is populated with car files associated with the selected series. Find the car file you want to use for the server, and click it. Finally, to select the car file for the series, click the “Select” button located between the two list controls.

*Processor — This field allows you select a processor on which to run this host’s instance of Nascar Racing. This field is only available if you’re running on a multi-processor machine under Windows NT, Windows 2000, or Windows XP.

*Runs in normal priority mode — This option causes Nascar Racing to run with the “-kh0” parameter, and forces the sim to run with normal system priority. You should use this option with caution as it could degrade your ability to support a higeher number of drivers. If more than one host is displayed in the D3Launcher window, this setting will be automatically overriden to be ON for each host. This will allow each host an equal share of CPU cycles, and is necessary when running multiple hosts.

*Run minimized — This checkbox will allow you to start NR4/NR2K2 in a minimized state.

*Favored host — A “favored host” is a host that will cause all other currently running hosts to stop running so that the Nascar Racing session associated with the favored host can use all available bandwidth (and cpu cycles). If any other Nascar Racing sessions are running (no matter which version of the sim the host might be using), they will be terminated by the launcher. If any host schedules are runnning and waiting for their next race to start, those schedules will be paused. All of this happens one minute prior to the favored host running, and happens with NO WARNING to the people that might be driving in the races that are terminated. Once the favored host’s race is over, all hosts that were paused are restarted.

Any hosts that were not running at the time the favored host kicked in will not automatically be started. Checking this checlbox makes a host “favored” by the launcher.

It should be noted that having more than one favored host is NOT a good idea unless those favored hosts are configured to run only on certain days and that those days do NOT overlap. When the favored host starts up, it will kill ALL other hosts that are running, even if they, too, are favored.

*Log host actions — This checkbox allows you to turn on/off the logging of host actions. When it’s turned ON, host actions are logged as they happen, and are saved to a file with the same host ID, and the “.LOG” extension. Each host gets it’s own log file, and every race that runs on that host during the current D3Launcher session should show up there. If you terminate D3Launcher, and then restart it, the host log file is cleared of all existing information, and the log starts fresh.

NOTE: DO NOT modify or delete the log file while D3Launcher is running. D3Launcher will probably crash as a result. You have been warned.

*Additional Commandline Parameters — This field allows you to add commandline parameters that might come up in future revisions of the sim. This gives you the opportunity to work around new features in the sim that D3 does not yet support (until I can update D3).

Connections tab

*Run post-race batch file — This checkbox will cause D3 to run the D3POSTRACE.BAT file after the race is completed.

NOTE: If the the D3POSTRACE.BAT file does not exist in the D3 folder, turning this feature on will have no effect.

*Create Alternative Results File — This checkbox will cause D3 to import the NR4 and NR2K2-generated results file and convert it to a format of your choice based on a template file that you provide. Please refer to the description of D3League.EXE for more information.

NOTE: If the race is not configured to export it’s results file, this setting is ignored.

*HTML template file — This combobox field allows you to specify an HTML template file to use when massaging the sim-generated results files to your own liking. A default template file (D3SAMPLE.DRT) is provided with DeMONS, and should NOT be deleted.

If you don’t like the format provided in the sample file, use the sample file as an example of how to create your own custom file. The HTML template files must all have the extension “DRT”, or it won’t show up as being selectable.

Each host can have it’s own template file, and a Browse button is provided so that you can easily locate the desired file. The browse button for this field will start out in the DeMONS folder and will find all .DRT files in the current folder. It is recommended that you keep all template files in the DeMONS folder.

This field is not available if you have not checked the Create Alternative Results File checkbox.

*Create Delimited Text File — This checkbox will cause D3 to import the NR4 and NR2K2-generated results file and convert it to a delimited text file format of your choice based on a template file that you provide. Please refer to the description of D3League.EXE for more information.

NOTE: If the race is not configured to export it’s results file, this setting is ignored.

*Raw template file — This combobox field allows you to specify an raw text template file to use when massaging the sim-generated results files to your own liking. A default template file (D3SAMPLE.DDT) is provided with DeMONS, and should NOT be deleted. This file is specifically for collecting driver info from the original sim-generated results file into a flat delimited file.

If you don’t like the format provided in the sample file, use the sample file as an example of how to create your own custom file. The raw text template files must all have the extension “DDT”, or it won’t show up as being selectable.

Each host can have it’s own template file, and a Browse button is provided so that you can easily locate the desired file. The browse button for this field will start out in the DeMONS folder and will find all .DDT files in the current folder. It is recommended that you keep all template files in the DeMONS folder.

This field is not available if you have not checked the Create Delimited Text File checkbox.

*Raw file delimiter character — This field allows you to specify the delimiter character used to sepearate data fields in the raw text file. The default character is the “^” character.

This field is not available if you have not checked the Create Delimited Text File checkbox.

*Raw file extension — This field allows you to specify the file extension to give raw text files created by D3League. The default extension is “.TXT”.

This field is not available if you have not checked the Create Delimited Text File checkbox.

*Points schedule — This combo box allows you to select one of the available points schedules for scoring races. You can either use one of the points schedules provided with DeMONS, or you can create your own custom points schedule(s).

This field is not available if you have not checked the Create Delimited Text File checkbox, or if the points schedule file is missing (or contains no defined points schedules).

Connections tab

*Server Port — This is the port that this host uses allowing remote connections by drivers. Make sure you read the info on the dialog box concerning this setting. All hosts are keyed off the assigned player folder. If you create multiple hosts that use the same user ID, each of these hosts can use the same net server port value as long as each host uses the player folder at different times. D3 makes no attempt to ensure that you haven’t screwed up your scheduling somehow, so tread carefully.

*Admin connects — This field allows you to reserve up to nine connections for admins to join your server.

*Max latency — If checked, the latency is restricted for drivers connecting through Sierra.

*Show display (NR3 and NL only) — If checked, the sim will show the standard display that you would see if you were to run a non-dedicated server. This is much more prefrrable to the BSOM (Black Screen Of Mystery) that you would normally see with an NR3 or NL dedicated server.

*Latency ms — Max acceptable latency millisecs.

*Allow IPX — Allows IPX connections. If you also allow connection to Sierra, this setting will be ignored.

*IPX Cars — Number of connections allowed through IPX. This field is only enabled if you allow IPX connections.

*Allow TCP/IP — Allows direct TCP/IP connections. If you also allow connection to Sierra, this setting will be ignored.

*TCP/IP cars — Number of connections allowed through TCP/IP.

*Use WON Servers — Allows the race server to be displayed in Sierra’s “multiplayer” server list. This effectively disallows any local or straight TCP/IP connections because everyone that joins the server MUST be connected to Sierra as well. However, you must allow TCP/IP connections in order to allow conncetions through Sierra, so don’t forget to do that.

*Allow AI Cars — Checking this box allows you to specify opponent strength and (for BR4/NR2K2 only) how many AI cars to allow in all races on this host. If you specify AI cars, the maximum number of connections may need to be adjusted so that the number of connections realized does not exceed your bandwidth limits. Nascar Racing doesn’t automatically reduce the number of AI cars as more people join the race (I consider this to be a deficiency within Nascar Racing).

Timing tab

This tab allows you to set schedule timing information for the current host. By it’s very nature, timing options in D3 are quite complex. There are literally THOUSANDS of combinations of timing settings, and to ease the pain of wrapping your brain around the whole shebang, I urge you to refer to the section of the User’s Guide which gives examples of how to setup some of the more common timing configurations that are (expected to be) used.

Since D3 is targetted at league admins, the timing options are specific to the needs of a league admin. In the five years of DeMONS existance, nobody has come up with anything more viable than the three basic timing styles that have been in place since the program’s original version.

*Continuous Loop — Runs the next schedule event after the previous event ends. There is a delay between when the current race ends,and the next race starts, and this delay is specified in the Continuous loop starts next race field (described below).

This behavior is different from previous versions of DeMONS because it was always a guessing game as to exactly when a race would be started. Just because the race list said 12:35 didn’t necessarily mean that the race would start at or even NEAR the point the system clock reflected the specified time. With this change, if the race list says the race will start at 12:35, then you can bet that it will start at 12:35.

*Daily Time — Runs one race every day at the time specified in the Time to start event field.

*Specific Date/Time — Runs races at specific dates/times. The date and time must be specified for EVERY race. This can be quite the pain in the butt, especially if you’re running a bunch of races at different dates and times.

It is completely up to you to ensure that each race is scheduled to run AFTER the race before it. Since DeMONS does not exceute races that should have started in the past, blowing a date or time by inputting the wrong values will cause one or more races to be skipped by DeMONS, so be extra careful if using this timing style.

The next section of the dialog box is called Style Modifiers, and depending on which timing style is selected, the fields in this section are enabled or disabled.

*Limit schedule to specified time frame — This checkbox allows you to specify the time frame in which to run races, and is only available when “Continuous Loop” is selected as your timing style. The time fields shown immediately below the checkbox will be enabled when you check the checkbox, and disabled when you uncheck the checkbox.

For instance, if you want to only run races between 5pm and 6am, you would check the checkbox, and then specify 1700 for start time, and 0600 for the stop time. This allows you to run race servers on machines that are only available between certain times, such as at work, where bandwidth is not usually an issue. NOTE: I am not suggesting that you make use of corporate facilities or resources for hosting races. I just used the “at work” example as a means to illustrate why the feature was added.

*Repeat same schedule event — This checkbox allows you to specify that each race runs for an entire week, and will only advance to the next event AFTER the specified time of the specified day. This section is only available when “Continuous Loop” is selected as your timing style.

If you check this checkbox, you must select a day on which to change to the next race in the schedule, and at what time. The fields for doing so are located immediately below this checkbox.

*Continuous loop starts next race — This field allows you to specify when the next race is run after the current race ends, and is only available if the “Continuous Loop” timing style is selected.

You can select one of the following:
o Immediately – This actually meanns at the top of the next minute.
o On the next quarter hour – the next race will start at 15 minutes past the hour, 30 minutes past the hour, 45 minutes past the hour, or at the top of the hour, whichever is applicable.
o On the next half hour – the next race will start at the top or the bottom of the hour, whichever is applicable.
o At the top of the hour – the next race will start at the top of the hour.

If the projected launch time of the next race is within 15 seconds of the next scheduled start time, the next specified mark will be used. In other words, let’s say you’ve selected “on the next quarter-hour”. If DeMONS calculates the next start time to be 12:15, and it’s currently 12:14:47, DeMONS will change the projected start time to 12:30.

*Time to start event — This field allows you to specify what time the next race is run on a daily basis, and is only available if you the “Daily Time” timing style is currently selected.

The next section is called “Days Of Week”, and allows further daily restrictions on when a host can run a race.

*Day Of Week checkboxes — These checkboxes allow you to select which day(s) of the week the host will be allowed to run it’s races, and is the primary reason you can use the same player folder for multiple D3 hosts.

At least one of these checkboxes must be checked, and by default they are all selected. Further, if you have selected the “Continuous Loop” timing style, and have elected to repeat races in the schedule until a specific day, the day you selected will be selected here and you will be prevented from un-selecting it.

*All Days On button — Allows you to toggle all of the days on.

*All Days Off button — Allows you to toggle all of the days off. If you have selected the “Continuous Loop” timing style, and have elected to repeat races in the schedule until a specific day, the day you selected will be disabled and will remain selected.

*A “day” starts at — Allows you to specify when your day starts, and is used in conjunction with the next field.

*No-run window — This field allows you to specify the point in time during a “day” when new races will not be started. This allows you to compensate for races that are already running, thus allowing them to finish unmolested before the next “day” starts.

The last section is called “Start/Stop”, and allows you to specify that automatic start/stop criteria for the host’s schedule.

*Stop At End — Terminates the schedule after the last event has been run. When used in conjunction with the repeat same schedule even feature, the schedule is not considered to be finished until the point in time at which the schedule progresses to the first event in the schedule.

*Start Schedule At Startup — Automatically starts all host schedules when the launcher is started up.

Notes About Timing

If you select the specific date/time timing style, D3 will NOT sort races in a schedule according to the dates/times you’ve specified. D3 assumes you had the mental capability to put the races in the correct order, and will try to run each race in the order you specified them. If the specified start date/time for a given race occurs in the past, D3 will not run that race at all.

It is ESSENTIAL that you schedule your hosts carefully. For NR4/NR2k2, this is important because the same player folder can be used by multiple hosts. I don’t know what will happen if two hosts try to use the same player folder at the same time, but don’t come bitching to me if your system goes tits up due to a user-induced scheduling screw up. For NR3 and NL, scheduling is even more important, because only one copy of the sim is used by D3, and once again, I don’t know what will happen if you try to run multiple simultaneous NR3 hosts. The same warning about bitching and moaning applies.

Invite/Muzzle Lists tab

This tab allows you to build this host’s invite and muzzle lists. There are two parts to this tab, the invite side (on the left), and the muzzle side (on the right). Both sides work identically to each other.

*Invite List (or Muzzle List) — Shows a list of people that are currently in your invite (or muzzle) list for this host.

*ADD button — Adds the name that is currently typed in the edit field above the button.

*DELETE Button — Deletes the name that is currently selected in the list box.

*Copy All From Main List button — This button allows you to copy all names from the appropriate master list (D3MasterInvite.lst or D3MasterMuzzle.lst) into the list for the current host. Once this action has been completed, the tab will be updated to show how many names were found in the master list, and how many were copied (only names that don’t already exist in the host list are copied). An OK button is also provided so that you can clear the display.

*Use Invite List checkbox — Allows you to elect to use, or not use, the invite list for this host.

*Use Muzzle List checkbox — Allows you to elect to use, or not use, the muzzle list for this host.

Default Race Weather/Skill

*Skill Ranking — This setting allows you to restrict entry according to a driver’s current rank. This setting is applied to ALL track types, regardless of what track type is selected. To disable rankings, make both values 0.

In addition to the ranking requirements, NR2K3 allows the server admin to restrict access to the server according to the driver’s LPI (laps per incident). I haven’t seen anything regarding the valid upper range for this field, so I set an arbitrary limit of 100 as the maximum possible value. If anyone knows the true maximum, I’ll be happy to make the necessary adjustments to the code.

*Weather — If you check the “Realistic Weather” box, the four fields in this group will be disabled (and the settings in those will be ignored by Nascar Racing). If the “Realistic Weather” box is not checked, you will be able to specify each setting.

Default Race Session/Realism

This tab allows you to set default race settings for this host. Default settings used to populate this tab are the way *I* would configure a league race (more realism than you see in pickup races on Sierra).

I’m not going to go into specifics on this tab, because I’m assuming most of you know what these settings do. Some issues are as follows:

* According to Papyrus, the Mechanical Failures settings had not been implemented in NR4/NK2K2, and was broken in NR3/NL, so even though I allow you to toggle this on/off (and the setting is transferred to the player.ini file), it may not have any effect in the game. I kept it in case it works in NR2K3, or in case Papy implements/fixes it at a later date.

* The skill ratings and LPI limits are only in effect when connecting through Sierra to a server registered on Sierra.

*Fixed Setups — If you specify that an event uses a fixed setup, you MUST select a setup file when you add a new event to your schedule.

Dialog Buttons

*
OK button — When you click this button, allhost and scheduyle info will be saved to the host files.

*Cancel button — When you click this button, all host changes (including schedule changes) will be deleted.

*Schedule Races button — When you click this button, the Schedule dialog box will be displayed.

Other Host Info

A unique identifier is created for each host based on the date/time the host is created. This date/time is formatted and is used for host INI file section names and host schedule file names. The host file names will look something like this: 20021201_100536.ini. The schedule file name for that host would be 20021201_100536.schedule. These files are tracked in the D3Launcher.ini file (each host ID will show up at least twice in this file.

Unless you know PRECISELY what you are doing, DO NOT edit or rename these files manually.

Schedule Races Dialog

This dialog allows you to setup a schedule for a given host. It’s divided into two primary sections – the list of races already scheduled with buttons to control what’s in the list, and a static display of most realism settings for the race.

*Add button — This button allows you to add a race to the schedule. All newly added races start out with the track as Atlanta, and with whatever default settngs you specified for the current host. When you click the Add button, you will automatically be taken to the Race Configuration dialog box.

*Add Special button — This button allows you to add tracks in specific groups (according to track type). A new dialog is displayed allowing you to select either All tracks, specific types of tracks (speedways, road courses, etc). If you selected a type of track to add, when you click the OK button in that dialog, D3Config will automagically add all of the selected tracks to the current schedule without you having to lift a finger. Of course, all tracks added this way assume the default race settings, so you’ll have to edit each race that doesn’t meet your requirements.

*Edit button — This button allows you to edit the settings for the currently selected race.

*Move Up button — This button allows you to move the selected race up in the list.

*Move Down button — This button allows you to move the selected race down in the list.

*Delete button — Allows you to delete the currently selected race from the schedule.

*Delete All button — Allows you to delete the all of the existing races from the schedule.

Race Configuration Dialog

This dialog box allows you to specify all aspects of setting up a race.

General tab

This tab allows you to configure settings that are not directly related to “racing”. At the top of this dialog box, you’ll notice several static fields which show information about the selected track. Beyond that, the following fields are provided:

*Track List — This is a list of tracks that are currently recognized by Nascar Racing. If you add a track to Nascar Racing, it will automatically show up in this list. If this list is empty, read the section entitled Windows 9x/ME Users.

*Skill Ranking — This setting allows you to restrict entry according to a driver’s current rank. This setting is applied to ALL track types, regardless of what track type is selected. To disable rankings, make both values 0.

In addition to the ranking requirements, NR2K3 allows the server admin to restrict access to the server according to the driver’s LPI (laps per incident). I haven’t seen anything regarding the valid upper range for this field, so I set an arbitrary limit of 100 as the maximum possible value. If anyone knows the true maximum, I’ll be happy to make the necessary adjustments to the code.

*Timing — If you elected “specific timing” during host configuration, these fields will be enabled, and you are required to specify a date and time to run the race. Caution should be used because D3 does not verify that events won’t overlap. However, D3 will ignore late events and wait for the next one. Further, D3 expects races to occur (in time) consecutively, but doesn’t ensure that you specified correct dates and times in relation to existing events. In other words, it’s up to you to keep the dates and times straight in your head.

*Weather — If you check the “Realistic Weather” box, the four fields in this group will be disabled (and the settings in those will be ignored by Nascar Racing). If the “Realistic Weather” box is not checked, you will be able to specify each setting.

Realism tab

*Race Settings / Series — Select the series mod this race will be using. All installed series mods are shown in this combobox. Keep in mind that when you select a new series, the contents of the fixed setup file combobox will change as well.

*Race Settings / Race length — Enter the desired race length (percentage).

*Race Settings / Race password — This is the password everyone will need to know in order to enter the race (unless they’re listed in the Invite list, and NOT listed in the Muzzle list).

*Race Settings / Run practice session only — This checkbox allows you to specify that this event does not progress beyond the practice session. The way this is determined is by the duration entered in Session Duration / Practice Time field. The sim should shut down prior to entering the qualifying session (approximately one minute prior to the end of the practice session) with no warning given to any connected drivers.

*Race Settings / Pitstop frequency — This field allows you to increase the tire wear and fuel consumption, forcing more pitstops than usual.

*Session Durations / Practice time — This is the number of minutes to allow for practice.

*Session Durations / Warmup time — This is the number of minutes to allow for the warmup session.

*Session Durations / Post-race time — This is the number of minutes to wait before shutting down the sim after a race is over.

*Damage — Select one of the three settings for the damage model.

*Realism — This section contains numerous settings that affect the realism of the race. I think they’re all self-explanatory, so I won’t go into detail on each setting.

oAdministrative / Save race results — Tells Nascar Racing to save race results. As of the latest patch, Nascar Racing has problems with saved results (times not saved correctly and double saving of information).
oAdministrative / Save replay — Tells Nascar Racing to save the replay. Make sure you have adjusted your replay settings in the CORE.INI file to allow for longer replays.
oAdministrative / Save chat log — Tells Nascar Racing to save the chat log from the race.
oAdministrative / Use invite list — Tells Nascar Racing to use your invite list.
oAdministrative / Use muzzle list — Tells Nascar Racing to use your muzzle list.
oFixed Setups — If you specify that an event uses a fixed setup, you will be allowed (and in fact are REQUIRED) to select a setup file. The combo box will contain all setups (in alphabetical order) that exist in the Nascar Racing\tracks\track_name folder, as well as all the setup files found in the players\player_name\setups\track_name folder. The tracks found in the Nascar Racing tracks directory are displayed between the “<>” brackets like so:

<fast.cup.sim>

Setups found in the player setup track folder will appear without the brackets as shown in the sample below:

My Special Setup.cup.sim

If this is the first time you’ve specified a fixed setup file name for this race, D3 will try to default to one of the four default race setups in the following order:

<fast.cup.sim>
<intermediate.cup.sim>
<easy.cup.sim>
<qualifying.cup.sim>

If none of those files are found in the combo box, it selects the first file listed. If no setup files are found, D3 will not allow you to used fixed setups for that track on that host (the checkbox and combo box will be disabled).

D3Launcher.exe

This component actually runs the schedule for each host. The dialog box contains a list of configured hosts, and a series of buttons with which to control those hosts:

The list control contains host status for every configured host. The following columns are displayed (and additional data may be added in the future as it is deemed prudent):

*Host — This column displays the host name and the status flag (explained below).

*Favored — This column will display “Yes” for favord hosts, and “No” for non-favored hosts.

*Track — This column displays the track name, and in parenthesis, displays “(x of y)” where “x” is the number of the race that’s next/running, and where “y” is how many races are in the schedule. The number of races in the schedule does not account for consecutive runs of the same scheduled race.

*Series — This column will display the series selected for the next event (or “N/A” if the host hasn’t been started).

*Hardcore — This column will display the hardcore mode selected for the next event (or “N/A” if the host hasn’t been started).

*Will Run At — Displays amplifying status of the schedule/sim. If it displays “Running”, it will also display “(x of y)”, where “x” is how many times this event has been run, and where “y” indicates how many times the event should run.

Beneath the list control is a series of buttons:

*Start/Stop Host button — Allows you to start or stop the currently selected host. This button is disabled if any of the following conditions are met:
o A host is not selected

The button text changes to indicate what the button will do when it’s clicked. If the host’s schedule is running, the button will display “Stop”. Otherwise, it will display “Start”.

*Start All Hosts button — Starts all of the listed hosts if they have a schedule configured.

*Stop All Hosts button — Stops all of the listed hosts. You will be asked if you also want to stop all currently running sim sessions associated with the hosts.

*Start Next Event button — (New in D3) Immediately starts the currently queued scheduled event for the currently selected host. This button is disabled if any of the following conditions are met:
o A host is not selected
o A host is selected, but the schedule for the selected host is not currently running
o A host is selected, the schedule is running, and a race is currently running

*Skip Event button — (New in D3) Skips the currently scheduled event, and queues up the next event in the schedule. This button is disabled if any of the following conditions are met:
o A host is not selected
o A host is selected, but the schedule for the selected host is not currently running
o A host is selected, the schedule is running, and a race is currently running

*First Event button — Re-starts the schedule at the first event. This button is disabled if any of the following conditions are met:
o A host is not selected
o A host is selected, but the schedule for the selected host is not currently running
o A host is selected, the schedule is running, and a race is currently running

*Edit Host button — Allows you to re-configure a host while the launcher is running. You can only edit one host at a time, and while that host is being edited, it’s schedule is shut-down (if it was previously running). It’s schedule will be re-started automatically after you have finished edit it (if it’s schedule was running previously). This button is disabled if any of the following conditions are met:
o A host is not selected
o A host is selected, the schedule is running, and a race is currently running

*Show Error button — In the even that you get a red flag, you can use this button to find out what happened. This will be invaluable to me to see what happened and determine if it’s your fault or mine.

*Close button — Closes the launcher. You will be asked if you also want to stop all currently running the sim sessions associated with the hosts.

After a race is finished, the Launcher will optionally run a batch file that can be used to update databases, or any other such thing as you might want to have happen.

The Flags in the Host Schedule List

The launcher dialog shows all hosts in a list. Each host has a flag icon next to the host name to signify its current state. Here’s what they mean:

*Blue Flag — Indicates that the host’s schedule is not currently running. The “Will Run At” column will display on of the following text strings:
o Not Started – the schedule has not yet been started.
o Stop/User – the user (that’s you) clicked either the Stop button or Stop All button.

*Blue Flag with Yellow Stripe — Indicates that the host/schedule was shutdown in order to allow a favored host to run a race. The “Will Run At” column will read “Stop/Favored”.

*Blue Flag with White Stripe — (New in D3) Indicates that the host’s schedule was stopped because the user (that’s you) clicked the Edit Host button while the schedule was running. The host will automatically be re-started after editing is complete.

*Yellow Flag — Indicates that the host’s schedule is running, and that it’s waiting for the time at which it should start the next race in the schedule.

*Half-Green, Half-Yellow Flag — (New in D3) This flag is displayed if the host is favored and is in the process of shutting down other hosts. The “Will Run At” column will display “Stopping other hosts…”.

*Green Flag — A race is currently running for the host. The “Will Run At” column will display “Running”.

*White Flag — (New in D3) A race has just finished running, and the launcher is running the post-race batch file (if required to do so), as well as running the D3League utility to massage the results exported by the sim (again, if required to do so). The “Will Run At” column will display “Post-race”.

*Checkered Flag — The schedule has completed and there are no more races to run. This flag also appears when the end of the schedule is reached, and the host is configured to stop at the end of the schedule. The Will Run At column will display “Stop/Finished”.

*Black Flag — The host doesn’t have a schedule to run. In this case, the “Track” column will display “No schedule”, and the “Will Run At” column will display “N/A”.

*Red Flag — There was an error in the launcher associated with the host. The “Will Run At” column will display “Stop/Error”.

D3Scrub.exe

This component is only needed people that are *not* running Windows 2000, or Windows XP. It massages the track-related INI files shipped with Nascar Racing 2003 Season so that Windows9x/ME can read the files. This program only has to be run once (before running D3 for the first time), or immediately after re-installing Nascar Racing (or a Nascar Racing patch, 3rd party or coverted track, or a series mod).

But Why Do We Need It?

A little background is probably in order. In order to allow us programmers to read INI files, Microsoft was kind enough to provide API functions that can get and set data within these files. When you use these API functions as intended, section names look like this:

[SectionName]

and key values look like this:

MyNumberValue=123

For some reason (and I think it’s because the track-related INI files were probably created with an external utility), these INI files include spaces where they aren’t normally expected. The same section and key names look like this in the track-related files:

[ SectionName ]
MyNumberValue = 123

Notice that there are spaces in this version.

I originally had no reason to suspect that the INI file API functions that read the data would not be able to read the track files that came with N4. Since I develop and test on a Windows 2000 machine, I was really surprised when problems were reported in this area of the program.

Since NR2K3 can read these files in their “natural state”, and since both NR2K3 and DeMONS are both Windows programs, why doesn’t DeMONS read it, too?

My only guess (and this is purely speculation) is that the program they used to create the track INI files also has a facility (in the form of a linkable static library or DLL) for reading the files it creates. This means that they are probably not using the Windows API functions to read these files inside NR2K3, because they would have had the very same problems I had.

Your next question is why are Windows 2000/XP different?

Beginning with Windows 2000, I think Microsoft changed the GetPrivateProfileString API function so that it (properly?) handles section names and key values that contain spaces. This version of krnl32.dll is only compatible with Win2K, and won’t work on win98 or WinNT (I don’t think).

How Does D3Scrub work?

It reads the files in as plain ASCII text, parses the data (removing the undesirable space characters), and re-writes the files using the Windows INI API functions. This makes the INI files compatible with Windows 95/98/ME (and all other versions of Windows as well).

It’s not at all necessary to run D3Scrub on Windows 2000 or Windows XP, but it won’t hurt anything to do so. You can even run it repeatedly and it won’t hurt anything. Here’s a screen shot of the dialog box:

If you’re especially wary of any programs putzing around with ini files for the sim, you have the option of creating backup files before any processing is done on the original file. Every time you run D3Scrub, a new numerically sequential backup file will be created (if you check the appropriate box). You can also delete all of the existing backup files at one time by clicking the Delete Backup Files button.

Why didn’t I just make it parse the files on the fly and hide this crap from the user?

Well, I was testing this possibility on my 1.2ghz Athlon 512mb ATA100 machine, and it took a little over 90 seconds to parse all of the files. And I would had to have done that EVERY TIME the files had to be accessed (quite often actually). The way I have it figured is that it’s much more reasonable to have the user run this utility one time rather than force them to endure a larger memory footprint and longer load times when they’re doing something much more important (like running a schedule).

Final Comments

I don’t know if Papyrus chose to read/write these files like this, or if it was just an unexpected side-effect of their track development tools, but it sure does annoy the hell outa me.

Remote Admin

General

This feature is comprised of two separate modules – D3Remote and D3Server. The idea behind the implementation is that you use D3Remote to configure your remote servers on your local machine, and then transfer the resulting D3 data files to the respective remote server machine. On the remote server machine, D3Server receives the D3 data files, and reconfigures and re-initializes all affected hosts in the launcher.

If your intended remote server machine is behind cable or DSL modm, chances are very good that the modem’s WAN IP address is dynamically assigned (especially likely for cable modem users). If this is the case for you, I would recommend that you not use this D3 feature unless your’e willingto put up with the headaches of finding your current IP and changing it before each data transfer from D3 to the remote server. If you have problems, you’ll be pretty much on your own.

Remote server requirements:

* The D3Server must be running in order to receive remote admin changes.

* The sim(s) MUST be installed from the retail CD (if they’re not, D3Launcher will NOT run).

* The necessary player folder(s) must already exist on the remote server machine (for NR4, NR2K2, and NR2K3).

Local client requirements:

* The D3Remote module must be configured for each remote machine.

* The sim(s) MUST be installed from the retail CD (if they’re not, D3Config will NOT run).

* The same player folder used on the remote server MUST also exist on the local client.

Important Issues

I’ve tried to implement a fair amount of security into this feature, but you should still take your own more stringent precautions. I will not be held responsible if someone trashes your machine or network by exploiting this software (if it indeed can be done).

D3SERVER.EXE

This module lives on your remote server machine, and must be running in order to allow you to configure your host(s) remotely. Let’s start with a screen shot of the main dialog:

Kinda plain, eh? Well, there’s really not much going on here. This is simply to provide anyone that might be looking at the screen with a running list of transactions. The list will never contain more than 1000 lines of text, and the program itself uses almost no processor time while it’s listening for a connection. The amount of data that’s likely to be transmitted will probably never exceed more than a few K bytes, so impact on running hosts should be negligible. So how does your remote client communicate with this server module once it’s up and running? I thought you’d never ask…

Setup Dialog

This dialog box is used to tell D3Server who to accept connections from.

*Port — This is the port on which D3Server listens for connections, and can be any value from 1025 to 65535. If you’re behind a router, you’ll have to forward this port (it uses TCP/IP) to your server machine.

*Password — This is the password the remote client needs in order to transfer data. Usability hint: the client should be configured so that it communicates with the server with the same password.

*Additional Security — This is included for the extra-paranoid user. Checking this box allows you to specify up to two IP addresses from which to accept connections. If you’re communicating with the server from a machine that has a dynamic IP, I would recommend that you not use this particular feature unless you’re pretty much guaranteed that your IP won’t change.

D3REMOTE.EXE

This module should be placed on your local machine, and it must be used to configure and transmit the resulting machine-specific D3 configurations. Here’s a screen shot of the main dialog:

An unlimited number of remote server machines can be controlled through this program (as long as D3Server is installed on each one, of course).

*Machine List — This is the list control at the top of the dialog box, and it shows each machine that has been configured from remote administration.

*Status List — This list is positioned below the machine list, and simply shows communications status when data is being transferred. This list will contain no more than 1000 lines of text.

*Add Machine button — This button allows you to add a new machine to the list. The Add/Edit Machine dialog is displayed, and you will be given the opportunity to specify the required parameters.

*Edit Machine button — This button allows you to edit the parameters associated with the selected machine. The Add/Edit Machine dialog is displayed, and you will be given the opportunity to change the available parameters. This button is disabled until a machine is added and/or selected.

*Delete Machine button — This button allows you to delete the selected machine from the list. This button is disabled until a machine is added and/or selected.

*Configure D3 Data button — This button allows you to configure D3 for the selected machine. D3Config is executed and works as if you were configuring DeMONS for the local machine. The only difference is that instead of saving the various D3 data files to the current directory, they are saved to the folder specified in the Add/Edit Machine dialog box. This button is disabled until a machine is added and/or selected.

*Transfer D3 Data button — This causes D3Remote to connect to the selected machine and transfer the data files. This button is disabled until a machine is added and/or selected.

*Show Launcher button — This button allows you to take a snapshot of the launcher status on the dselected machine. This button is disabled until a machine is added and/or selected.

*Reset Status button — This button clears the status list of all existing data.

Add/Edit Machine Dialog

This dialog box is used to tell D3Remote where your remote server machines are, and how to connect to them. It is displayed when you click the Add Machine button or the Edit Machine button.

*Name — This is the name of the machine being specified, and is how you identify it in the machine list on the main dialog. For instance, you could call it “Mean Machine”, or some other meanigful name.

*Folder — This is the folder in which the D3 data files for this machine will be stored (on the local machine). No precautions have been made to ensure unique names are entered for each machine, because this could create as many problems as it solves. However, this may change in the future.

*IP Address — This is the IP address of the remote server machine. If the server machine is behind a router, you should set this field to the WAN IP address of your network access point (a router, cable modem, DSL modem, etc). If your cable modem is assign a dynamic IP address, you should consider not using D3’s remote admin feature of D3 unless you can verify the IP address of your WAN IP remotely.

*Port — This is the port on which D3Remote will attempt to connect to the machine. The server machine in question must be listening on the same port.

*Password —

This is the password needed to authenticate itself in the server machine in question in order to transfer data.

Comments
  1. top mistakes says:

    Your blog is really cool to me and your topics are very relevant. I was browsing around and came across something you might find interesting. I was guilty of 3 of them with my sites. “99% of blog managers are doing these 5 errors”. http://is.gd/HWKqeJ You will be suprised how fast they are to fix.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s