Please note

These tutorials were written in 2008 by Tjerk and will slowly be updated to reflect new insights. Some information may be outdated, so it is a good idea to also become active on the forum if you want to start creating new tracks for ICR2. The community will be happy to help.

Workflows

Every track creator will find joy and productivity in their own personal workflow. Therefor most active editors have shared their own personal approach on the forums:

Creating your own track completely from scratch

Learn how to create your own track for Indycar Racing 2 based on an actual racetrack or from your own imagination!

A lot of information stored here can be used to edit existing tracks, but considering the fact that making tracks completely from scratch requires all editing skills, this page is designed to lead you through the proces of making an entire track from the ground up. This was made possible for both the NASCAR Racing 3, as well as the Indycar Racing 2 community, by a kind person called Tim McArthur. He has posted the tools that were used to build the tracks that were in Nascar Racing 3 on his website. Because we can convert N3 tracks to ICR2 pretty easily we can now build a track for N3 and convert it to our game, adding or editing all the necessary files to make it run.


The roadmap

In almost every tutorial you will need to have one or more utilities installed. So the first thing to do is to download the tools that we have listed in the needed tools section.

Getting started

There are a couple of things that you will need to know how to do. The first one is how to (1) - manage .dat files so you can access and store files in the format that the sim understands. You also need a basic understanding of the (2) - files that make up a track. We are going to make tracks in N3 format but because here at CRHQ they are meant to be raced in ICR2 it's pretty important that you know (3) - how to convert N3 tracks to ICR2 and (4) - how to make them look better. When you are converting a N3 track that has a groove you have to know how to (5) - remove the groove from the track. I personally always convert my track to ICR2 when I want to test it while building but it costs more time then testing it in N3 of course so see what you prefer. Maybe you have done some editing before and you know all these basic things already. In that case just skip straight to Creating Tracks.

Creating Tracks

We create tracks by what we have come to call the N3 Sandbox. This is a set of tools created by Papyrus to make the tracks for NASCAR Racing 3. First you will need to build your track. You have to create the basic geometry (6) - using SGE and when that is in place you have to add walls and surfaces (7) - using SFE. Then you will want to build the actual track files with the (8) - .trk/.3d and .3do build tools. Once you are satisfied with your basic track you can (9) - put additional textures on walls and armco. At any rate you will definitely want to (10) - add TSO's and TSD's in OPE. Then you need to (11) - decide on textures and make them look pretty in all versions of the game. Once you have done that you need to (12) - change the underlying polygon colors in 3doEd to match those textures.

The 3D23DO program in the NASCAR Racing 3 Sandbox can also be used to create your own track objects (TSO's) from scratch. Please refer to this great 3D file Tutorial by Pavel 69 for tips on how to do this.

Additional tools

There are some other tools that will be explained here as a handy addition to your track editing possibilities. For example the (13) - trksg tool to use an existing .trk as a base for your edit. If that is what you want to do then the (14) - ins2ope tool will be very handy as well. You can use both tools to (15) - quickly rebuild a track with an edited layout or added features. Maybe you want to know how to (16) - convert Grand Prix Legends tracks to N3 or ICR2. And finally, if GP3 tracks is what you want you might want to learn how to (17) - convert GP3 tracks to a N3 format .trk to then use to build a new track out of [tutorial not finished yet].

Polishing the track in ICR2

By this time my track is always already in ICR2 format and all editing is done for the ICR2 version of the track. Just so you know that the following information is all tailored for use in ICR2. This does not mean it would not be of any use to a N3 track builder, just make sure to use with care.

To get a working pitlane and fix some other stuff, you need to change some things in the (18) - track .txt file. Of course, your track is only really finished when you put in some working (19) - camera files and you will also need to make some (20) - track screens. If you want to use TSO's that use a .pmp image [for  trees, flag-officials, etc] then you must know how to (21) - make .pmp files. If you are having weird colors in the Windows version of ICR2 then you need to (22) - correct the Windy colors.

Now that you have the whole track built up to perfection and looking just the way you want it to, it's time to bring in the racecars. You will need to learn how to (23) - make new .lp files.


Needed tools

You will (or might) need the following tools and utilities while creating tracks from scratch:

Links outdated: these will be fixed soon!

Tool Function Author Download link
3doEd Editing .3do files Dave Noonan New link needed
N3 Sandbox Scratchbuilding tracks Papyrus New link needed
The MRON tool Removing the MRON section from NASCAR3 .3DO files Tjerk de Heer Tools section in our archive
DooDAT Unpacking/Packing .dat files Tim Medcalf New link needed
N99-ICR2 Converter Converting N99 tracks to ICR2 Dave Noonan Tools section in our archive
Winmip Converting graphic files Klaus Hörbrand Tools section in our archive
Ins2Ope Toolbox Converting Inserts.txt file to OPE format Ton Fastwalker Tools section in our archive
.3do Editing Tools Tools to compile and decompile .3do files Marcello Bassino New link needed
Last Chance Tools Converting graphic files Róbert Szikszó (Blue Thunder) New link needed

Paint Program

You will need a paint program to edit graphic files. We used to use Paint Shop Pro but nowadays GIMP is also a very nice alternatieve (it's free and open source).

Hex Editor

A hex editor is optional now that we have the MRON tool to remove MRON sections from NASCAR3 .3DO files. It might come in handy at some point though, in which case I can definitely recommend HxD.


1: Managing .DAT Files

Most of the files in Papyrus simulations are stored in .DAT files. Whether it be carsets, tracks or sounds, most of the time you can not edit them directly. Instead the files are safely hidden away in the .DAT files. Think of .DAT files as .ZIP or .RAR archives without any compression.

A number of tools have been written to open and extract existing .DAT files and to make brand new ones. The most convenient of all is by far a Windows tool called DooDat, created by Tim Medcalf. You can use it to extract, add and replace files in a .DAT without unpacking it. This makes for much faster editing than bwfore. Download DooDat on our tools page. If you get an option during installation to have DooDat functionality added to your right-click menu, click yes, because it can become very handy.

It is up to you how you want to use the tool. If you want to edit a single file, extract it as a single file. If you want to edit the whole track or carset, it's probably best to do this (using Elkhart Lake's elkhart.dat as an example) as follows:

  1. Copy the elkhart.dat file and rename the copy to elkhart.old (for backup purposes).
  2. Create a new folder called temp.
  3. Move the elkhart.dat file to the temp folder.
  4. Right-click on elkhart.dat and choose "extract DAT". All files should be extracted by DooDAT
  5. Delete elkhart.dat because you now have all the files in a folder from which the new .dat will be made. Plus, you still have the old .dat safely backed up in its original folder
  6. Now, edit everything you wanted to edit.
  7. When you are done editing, right-click on the temp folder and pick "add to temp.dat". This will put all the files in that folder into a file called temp.dat in the original elkhart folder.
  8. So the only thing left to do is rename temp.dat to elkhart.dat and you can test the changes in the game.

There is one imoprtant thing you need to know about .DAT files. Whenever there are more than 300 files inside an ICR2 .DAT file the game will not load. When your track uses more than 300 files you are better off getting rid of the <track>.dat altogther and just putting all the track files in the <track> folder. I have needed to do that in a couple of GPL converted tracks to keep the amount of detail in the track but still have it load in the game. The track folder will get messy with all the files in there but it works.


2: Which files make up an ICR2 track?

For your scratchbuilt track to work in the sim there are certain essential files that are needed. We will list those here. Let's call our track <track> from now on for clarity's sake.

There should be a folder in your tracks folder called <track>. Inside this folder you need to have at least the following files:

  • default.st1 is the initial car setup file for your car (it can be copied from a track similar to yours in length and shape).
  • records.txt holds lap time and speed records information (just use a placeholder from another track for now).
  • <track>.txt contains all the information about the track like name, length, pitlane, etc (we will deal with this file in detail later on)
  • <track>.dat holds all the physical and visual information about the file (see below for its contents).

Please note that I am not yet taking the .lp files into account because they are not expressly needed to run the track. As long as you are running without opponents (Preseason Testing) the track will work fine as long as the other files are in place and correctly made.

The <track>.dat file

Inside the <track>.dat file you can find the following files:

1. The palette .pcx file called sunny.pcx, this is your track's color palette. The pallette is not the image itself but the colors defined in its color palette. Very important file ! A tutorial later on, deals with finding textures and picking the right colors to go with them so the sunny.pcx will be dealt with in that tutorial.

2. Track screens. The DOS track screens are in the files with the .stp and .stg extensions and the Windows track screen is called mtshotc.pcx. Additionally, the track screens use a file called map.pcx for their colors. If you want to know exactly what they are and what they do skip ahead to the tutorial about making track screens but I suggest you leave that for later. For testing purposes copying all these files from another track will do fine.

3. Files that define the camera positions in the track. These are called <track>.scr and <track>.cam. Copy these from another track while your track is still in its testing phase because later on we will talk about making brand new camera positions in another tutorial.

4. The two main track files. The <track>.trk file and the <track>.3do file. These will be built by our N3 Sandbox once we have gone through the proces of making our track.

5. The files that define the sky. There are two .3do files (which hold 3D object information) needed called sky.3do and horizon.3do. Of course the sky needs textures as well and those are stored in .mip files. In most cases these will be page03.mip, page03b.mip and skyindex.mip. They might be named different in other tracks you look at, but in that case open both the sky.3do and horiz.3do in a text editor and look at the names in there. They should be at the very beginning of the file.

6. All the other TSO's [track side objects] which are all in .3do format. All the textures files [in .mip format]. And lastly the 2D images for trees and other things [in .pmp format]. All three file types are dealt with in various tutorials.

All the files mentioned in point 1 to 5 are absolutely needed in a track for it to even load correctly in the simulation, however the additional .3do/.mip and .pmp files are only needed when your track refers to them. So if you have built a track and have not added any objects yet in OPE then point 1 to 5 of the above list is all that is needed for the track to run.


3: Converting a NASCAR 3 track to ICR2

Please note: the method that we describe here can be used for NASCAR Legends tracks too, because they are identical to NASCAR 3 files.

File definitions for N99 and N3/NL are very similar, we only need to edit the .3do files in the N3/NL track to make it work in the N99 to ICR2 converter.

Tools used

  • DooDat (required)
  • MRON.exe (required)
  • The N99 to ICR2 track converter (required)
  • 3doEd (optional)
  • Image program (optional)
  • Winmip (optional)

Step 1: Removing the MRON sections

The only difference between NASCAR Racing 3 .3DO files and their NASCAR 99 counterpart is an additional section called MRON. By removing that section the N99 to ICR2 converter can convert the track normally as if it were a N99 track. So in this step we will remove that NORM section.

  1. Unpack the NASCAR 3 .DAT file to a new folder using DooDAT.
  2. Place the tool mron.exe inside that folder (so next to the .3DO files).
  3. Run the mron.exe program to delete the MRON sections from the .3DO files that contain them. You should be able to just double click it. Start the program from a command prompt to see a short log of what it has done. If there is no output it means that no .3DO files with MRON sections were found.
  4. The new .3DO files will replace the old ones. A backup folder will be created in the unpacked files folder called "3doBackup". Any changed file will have its original copied there, so if something seems to have gone wrong you can find the original file there.
  5. Repack the .DAT file using DooDat.

Step 2: Converting the track to ICR2

Start up the N99 to ICR2 convertor and convert the NASCAR 3 track to ICR2. If you did everything right there should be no problem. Go into the game to see if it worked well and how the track looks.

Hopefully your track will look fine already. In that case continue to the 'how to make a converted track look better' tutorial. There might be a particular problem though, at some tracks the graphics will look fine up close but will have a weird color on objects that are further away. This means your .MIP files are slightly messed up. It's easy to fix:

  1. Open WinMip and convert all the .MIP files to .BMP.
  2. Convert them back to .MIP immediately.
  3. Repack the .DAT and check to see the problem was indeed solved.

After this easy conversion your .DAT file will likely have increaded in size. This is because some missing image data for lower detail levels was added.


4: How to make a converted track look better

NASCAR 3 has a couple of improvements over Indycar Racing 2. One of those improvements is that the game supports transparent textures. Unfortunately, ICR2 does not, so those transparent colors will show up blue or black in ICR2.That can be distracting or just plain ugly. In this step I will give you some ideas on how to work around that.

Tools used

  • DooDat (required)
  • Image program (required)
  • Winmip (required)

When you are working on a scratchbuilt track, you should pick your objects wisely. Some editors prefer to only use stock or slightly edited ICR2 objects. That way you will only have objects without transparent textures.

A different approach is to fix up the existing textures, which you can do in a number of different ways. Before you do this, open DooDat and convert all your .MIP files to .BMP and open the ones that need work in your graphics program.

Sometimes it's nice to just use black as the backgound, for example on towers or grandstands. If you want to be more creative than that, on objects like towers, you can paint something on the background color, for example a billboard or a panel from another texture. To be safe, only use other textures form the same track to avoid palette problems.

There are a number of solutions for trees. You can make a single tree, or a small group of trees into a .pmp-3do, a proces explained in another tutorial. You can't do this with a big row of trees or on a high banked track though, it will look funny.

What I've done with my last couple of tracks is this : Set the blue background color of the tree texture as the transparency color of your program, copy and paste as transparent selection in your texture. Do this a number of times until there isn't a single pixel of the background color left.

trees2.gif

This looks better in the game than you would expect it to. You can also do this with those (even in N3) awful rows of people.

Or you can paste the trees on some billboards. I stole this idea from Brett Shannon BTW, thanks Brett :)

These are just some ideas, see what works best for your track. If you have an object that you don't know how to fix, you can always replace it with one that works better...of course, if the object is from another track you need to copy the .mip files it uses into your track as well. This is covered in yet another tutorial.


5: Removing the groove

Another new addition to NASCAR 3 is that the game now puts a groove on the tarmac. Because this also uses transparency it looks very ugly in ICR2. That's why we will remove it, or rather, move it out of sight.

Tools used

  • 3doEd (required)

First open the <track>.3do in 3doEd. Look at the track and find the groove (make sure the display is set to Polygons). Double click the groove and hit "Edit Polygon". Check what the number of the color is and close the box.

Now go to the top menu and click Display. Choose "Color Filter" and the number of the groove should already be filled in for you. Now check "Display Only This Color".

Change Display to "Wireframe".

Now if you're lucky you should see only the groove on the screen. There might be a couple of other things that have that same color though. If those things are the lines around the track, fences or indeed any type of untextured surface, select "Textures Only" from the "View" menu to remove them from the view. If there are objects around the track that have the groove color assigned you can turn objects off by going into the "Object Filter" and checking "All Off".

Now zoom out until the entire groove will fit inside your square cursor. Double click and choose "Edit Point". Type in -10000000 for the Z coordinates, select "Update All Found Points" and press OK.

Now click "File" -> "Update 3Do File" and your file will be fixed.

Our thanks go out to Dave Noonan for 3doEd and RearViewMirror for his advice on this subject.


6: How to use SGE

Creating the base of your track is done with the SGE program. You use it to first draw a center line using straight and curved sections, after which elevation changes and banking can be added.

SGE.exe (and SFE.exe) both use the same file that has an .SG extension. This file has all the basic geometry, wall and surface information.

Tools used

  • NASCAR 3 Sandbox -> SGE.exe (required)

Preparation

Obviously you need to have the NASCAR 3 Sandbox installed. You can use DOSbox to run it on a modern PC because the tools work fine that way.

You start the program by going to DOSbox, moving to your Sandbox folder and typing:

SGE.EXE <track>.sg

If <track>.sg does not exist yet it will be created, as well as <track>.mrk file that we will use later on to add details to walls if we so desire.

Getting To Know SGE

Now that you have started SGE.exe you will be greeted by a couple of different windows and a toolbox. (You will probably also notice that it has a small resolution. You can toggle fullscreen mode by pressing Alt+Enter when you are using DOSbox). Here is a short introduction to the windows and what you will use them for.

  1. This is a top-down view of the whole track. We will lay down and edit the center line here.
  2. This is the window where a sideview of the whole track will appear once we close the loop. It is used to adjust the height profile of the track as a whole
  3. This is the active track section from left to right. You always only see 1 section here. It is used to edit the banking of a particular segment.
  4. These are all the function keys, as explained below. Underneath that is the place where you will see stats about the track and the segment you are working on.

Before we can continue we have to figure out what all the options in the menu are. You can activate a function by left-clicking on it. It will be highlighted white and you can use it in the appropriate window.

The MOVE POINT and MOVE SECTS functions have expanded functions. Right click on them to cycle through those functions.

Button Affected window(s) Function
NEW STRAIGHT 1 Creates a new straight section.
NEW CURVE 1 Creates a new curved section.
MOVE POINT 1 Moves a point (begin/end of section) whenever that is possible.
ROT TANGNT 1 Expanded [right-click] function: Rotates a point [begin/end of section] whenever that is possible.
DELETE SECT 1 Deletes the section that you click on.
DIVIDE SECT 1 Divides the section you click on, where you click it.
MOVE SECTS 1 Moves all connected sections in X and Y directions.
ROT SECTS 1 Expanded (right-click) function: Rotates all connected sections, use left and right click to rotate in different directions.
SCAL SECTS 1 Expanded (right-click) function: Scales connected sections by right and left click making them smaller or larger.
ZMin 1, 2, 3 Zoom in.
ZMout 1, 2, 3 Zoom out.
Grid 1 Show/hide editing grid.
Pcx 1 Show/Hide 'blueprint' .pcx image (*see the sge.ini part).
Radii 1 Show/Hide corners radii.
Reset 1, 2, 3 Resets the view to default [for when you lose the track while zooming for example or when one of the views gets messed up].
NEXT SECT 1, 2, 3 Left-click - go to next connected section, Right-click - go to previous connected section.
MARK 1 Create a mark point (used for the .mrk file) ignore for now.
UNITS - Use this to cycle through the units you want SGE to display.
NUMERIC - Used to fill in with numbers data for the active section like length, radius, etc.
START/FINISH - Clicking this will create/move the S/F line to the active section.
SAVE - Saves the .sg file
EXIT - Exits SGE.exe, prompts for Save when you have unsaved changes.

There are some more things you need to know:

  • You can move all 3 track views around. PRess and hold the SHIFT key, click and hold the left mouse button in the view you want to move and drag the mouse. It's a bit awkward but you will soon get the hang of it.
  • Another way to Zoom in and out (other than the clickable buttons) is by pressing the , (comma) and . (period) keys on your keyboard.

Building the center line of the track

In this tutorial we will make a very basic roadcourse. All our editing in the first phase will take place in window 1. Let's start with making a straight by using the NEW STRAIGHT function. Just click in the window and put down a straight. Click again to end the straight.

Now the length (as well as some other useful information) is displayed in the stats window (below the button section of your view). It will be in the units you choose in the UNITS button. But, you don't really need to pay attention to the length at this point, just the layout. That is because of the SCAL SECTS function that we will use later on the make the track of the desired length.

Now make a curved section by using the NEW CURVE function. Start by clicking on the end of your straight section to make sure they are connected. Again, while putting in your curved section some info on what you are doing is displayed in the stats screen. Keep going and just make a nice track shape. I made something that looked like this:

sge2_sm.gif (2566 bytes)

You can see that I have done a couple of corners and a couple of straights and I am gradually working back to where I started, because you need a closed loop. Notice how the windows 2 and 3 show nothing at this point, not until we close that loop and add the S/F line. Next up I am going to try and close the track. this part can be tricky because the angle at which the last section approaches the first section needs to be within a certain margin. Try to get them lined up as best as you can and then try joining the track with your last section. If a curve does not work, try a straight and vice versa. This is all a bit of experience and trial and error. SGE will help you a bit luckily, because when it can help the joining of the sections by making a section slightly larger or smaller it will do so. I managed to close my track pretty easily, here is the result:

sge3_sm.gif (2754 bytes)

Now to complete the loop you only have to add the Start/Finish line. Click on the section where you want the S/F line to be and then click the START/FINISH function. You will see a big L being added. The short leg of the L will point into the driving direction of the track. This direction should be the same direction in which you built your last section. If you change your mind and want the S/F line to be on a different part of the track just activate another section [click on it in window 1] and hit the START/FINISH function key again. Here is my finished loop with the S/F line in it.

sge4_sm.gif (2997 bytes)

As soon as I clicked the S/F line button the two other windows [2 and 3] were filled with data. That is our next objective now that we have a finished loop. But first I am going to show you some other things you need to take care of first :

1. I split the long straight section in half to be able to put the S/F line in the middle of that straight. I did that with the DIVIDE SECT function.
2. I checked the curved sections for their radius. You see, a curved section has a maximum angle it can have. I always make sure they are 90 degrees or less. If they have bigger angles that they span the track build tools will crash. So go through your track and DIVIDE SECT any curved section with an angle of more than 90 degrees.
3. I checked my tracks length [will be shown when you zoom in or out] and it was quite long. So I used SCAL SECTS [right-click on MOV SECTS twice and it will appear] and made the track smaller. I made it about 3.7 miles.That will make this a pretty boring track :)

I used the DIVIDE SECT function a couple of times as you saw. I don't want you to think that more is better by definition in SGE because putting in too many small sections in one stretch of track will cause annoying pop-up effects in the game. That is because the game will only draw so many sections at a time so if those are very short ones you won't be able to look very far down the track.

Creating some elevation change

This editing will primarily take place in window 2. You see the track from the side here. This can not be shown as a loop but it still represents all the sections of your track. It starts where the first section begins and ends where the last section joins the first one again. In this window you can now left-click and drag a point up or down. This will move the whole section begin/end point up and down. First let's create some cool ups and downs, like so:

sge5_sm.gif (2902 bytes)

Nice hey ! But, take a look at this detailed shot of how these lines look now :

sge6a.gif (1251 bytes)

Do you see the weird wave-like curves. this will be the same in the game and it will make the drivers slightly sea-sick. So what can we do about it? Well, we can change the rotation of the points. At this moment the lines still go through the point at a straight angle. The way we can adjust this rotation is by left clicking the point and dragging the cursor to the left or right. At that point moving the cursor up and down will not change the height of the point but its rotation. That way you can adjust the curvature to make it more gradual. If anything it's a case of trying for yourself to see how it works.

sge6b.gif (1420 bytes)

Awesome ! We are about done with that window number 2 now, let's move on to window 3. there you can add heightlines and adjust their height for individual sections. That is used to make banking in an oval or camber on the corners of a roadcourse. You can also put in elevated kerbstones like this or just make the grass or dirt or whatever on the sides lower or higher. The possibilites to vary height on your track from section are endless as long as you have grasped the basics. So let's move on those basics.

First I want to make sure that you can see your measurements in feet, so click on the UNIT button as many times as you need to to have it display the units in feet. Now take a look at the detailed window number 3 the way it looks at the moment:

sge7a.gif (1756 bytes)

There is no elevation change in any section here yet. Well, there is of course, from first to last section because we defined that in window 2. But there is no change between left and right. The two points you see on both outer sides have a triangle beneath them. These are the two height lines that are needed for a track to work. Two is the minimum number of height lines, ten is the maximum number.

At this point I should tell you that of course when you want to make a real track [or even a fantasy track where you have a good idea about what you want] you will know just about where you want banking or kerbstones. You can then also make a guess at the number of height lines you will need and where they should be. If you want kerbstones in both the left and right part of the track in some sections you have to add four new height lines. Where should you add them ? Well consider the above image again and click on the first point first in SGE. You will see in the stats about the section a DLAT=50,000 which means that that line is 50 feet left from the centerline. Click on the second point and you will see DLAT=-50,000 which means that this line is 50 feet to the right of the centerline. This means that our track is 100 feet wide. This is the default track width. The track centerline is at 0 feet and both edges are at 50 and -50 feet. So now you should decide how wide you want the future racing surface to be and put two new heightlines at both sides of it. Like this:

sge7b.gif (1636 bytes)

In the above image I had decided that I wanted my track to be 30 feet wide. So I left-clicked underneath the line which added a new point and then I dragged the triangle until the DLAT said -15,000 [or the closest I could get]. Then I left-clicked underneath the white line again and dragged the triangle until I had another point, this time with DLAT=15,000. There you go ! Now we need to define where the kerbstones end on both sides and we do that the same way. Just think how wide you want them to be, 3 feet sounds alright to me [which means at about DLAT=18,000 and DLAT=-18,000] so that is how I made them:

sge7c.gif (1677 bytes)

It's important to know that adding the heightlines to one section will add them to all sections, removing them [might be necessary some times, right-clicking on a triangle will remove the line] from one section will remove them from all sections. The same thing goes for changing the DLAT by dragging them sideways, this gets edited in all sections when you edit it in one section.

Now that we have these 6 height lines we could add another 4 [because as we saw earlier 10 is the maximum] but I'm going to stick with these 6 and move on to changing their height to bring some more elevation into the track.

Most roadcourses have banking in the turns. So that is what er are going to add as well. In window 1 select the first corner in your track. You can raise and lower the height lines by holding doen the CTRL key on your keyboard, clicking one of the points on the line and dragging it up or down. That will raise or lower that point in the section that is activated in windows 1 and 2. Again, the stats screen is your best friend here, especially the "Bank:" stat. While dragging the point up or down you can see how many degrees of banking you are putting into the track. Although you can do a lot by just estimating and using 'your carpenters eye' looking at the banking is very useful. You can also see how many feet you are lowering or raising the track. This is what I came up with for the first corner :

sge7d.gif (1667 bytes)

Play a little with this or take a look at the included .sg file to see what I have done in some of the corners and the straights.

Here is a screenshot of one of the corner exits. It's a right hand corner so I have added some height to the [future] kerbstone on the left of the track:

sge7e.gif (1636 bytes)

This is a good time to have a good hard think about your track. What will you need ? You can start dividing your track into smaller sections by using the DIVIDE SECT function. Because when you have a very long straight section after a corner but you don't want the kerbstone to be just as long you can divide that section into smaller parts and have only the first section have elevation where the kerbstone is. When we move on to SFE we will see the need to sometimes come back to SGE and divide sections even more but that is for later. I'm just telling you that you can always go back a level and change something without having to start over completely. So, go around the track and go wild with making elevation changes. Bank the corners where you want them, put in some hills to the side... whatever you want ! You can take a look at my own .sg of this track but I have put more time into writing this tutorial than making the track so don't copy everything you see :)

The .ini File

Then there is the sge.ini file and this I think is the right time to mention it. You can [but don't have to, they will work normally without it] use this file to tell the program some things. Things like to load a .pcx image to use as a background to your edits [so you can use it as a blueprint to make your track] and other cool things. Download the ini.rar file here so you can have a look yourself. Inside the archive is an example sge.ini, a track.pcx [of Sebring] that will work right out of the box and a readme.txt explaining all the settings [except for some unknowns].

How to make smooth banked turns

Sometimes you can have a banked turn that is made of three or more parts and still feels like a rollercoaster between them. Even after tweaking the rotation (dragging the cursor left or right from the point to access that feature).

You can smooth them this way (e.g. for a six part turn, 3 ups and 3 downs):

Highlight the first part by left clicking it. Hold down the Ctrl key and then left click the second point of that part. A HUGE arrow will appear. Then left click on the second point of the third part ("top of bank"). The three parts will now be smoothed together, no more bumps.

Then down banking same thing with second point of part 4 and second point of part 6.

Conclusion

That is about it for SGE, there are some things we did not cover yet, some of the function keys but now that you have a basic track to experiment with why don't you go ahead and start messing with those functions yourself. As I said when we started this tutorial, there is a lot you need to find out yourself, at least do on your own to get what it does and how you can use it. But I think I have now given you a good enough start in SGE to get there yourself. Besides, I'm still learning as well :D Let's move on to the next tutorial on using SFE to learn how to add walls and surfaces to your track !


7: How to use SFE

After all the hard work in SGE you can now start placing walls and laying surfaces in SFE.exe.

All the files and programs that you will need have already been installed during the SGE.exe tutorial so let's just get going. Launch SFE by starting DOSbox, navigating to your Sandbox folder and typing:

SFE.EXE <track>.sg

Just like with SGE, you can also use the sge.ini file to load SFE with some extra options. The track.pcx background image will work with SFE as well for example which is incredibly useful to get the correct wall positions without much effort.

Getting To Know SFE

The SFE screen will look very similar to the layout of the SGE program:

sge1_sm.gif (1989 bytes) 1 = A top view of the whole track;
2 = The top view of the active section (wall/surface laying screen)
3 = Active track section from left to right. This shows the banking of the track as well.
4= All the function keys that you can use.

What are all those functions in that menu... what do they do ? You will recognize some from SGE and they will do the same thing. Let's go through the whole list again:

Button Affected window(s) Function
GRASS 2 Select this to place a grass surface.
DRYGRASS 2 Select this to place a drygrass surface.
DIRT 2 Select this to place a dirt surface.
SAND 2 Select this to place a sand surface.
CONCRETE 2 Select this to place a concrete surface.
ASPHALT 2 Select this to place an asphalt surface.
PAINT (CURBING) 2 Select this to place a paint/curbing surface.
SMOOTH/ROUGH 2 Choose between rough or smooth surface [Sander fill me in here my friend].
GROOVE/MARBLES 2 Choose between groove or marbles surface [Again Sander fill me in here].
WALL 2 Select this to place a wall.
ARMCO 2 Select this to place armco.
UNITS: 2 Use this to cycle through the units you want SGE to display.
FENCE/NO FENCE 2 Choose between fenced armco/wall or unfenced armco/wall
DLAT/XYZ 2 Choose between displaying measurements in XYZ or DLAT ? Not quite sure, never needed it :)
COPY FWD 1, 2, 3 Copy the surfaces and walls in the current section to the next section.
COPY BK 1, 2, 3 Copy the surfaces and walls in the current section to the previous section.
ZMIN 1, 2, 3 Zoom in.
ZMOUT 1, 2, 3 Zoom out.
RESET 1, 2, 3 Resets the view.
TOG 1 Toggles between displaying all data, just the centerline or just the surfaces.
NEXT SECT 1, 2, 3 Left-click will select the next section, right-click will select the previous section.
PCX - Show/Hide 'blueprint' .pcx image.
SAVE - Saves the .sg file.
EXIT - Exits SGE.exe, prompts for Save when you have made unsaved changes.

As was the case in SGE.exe you can still move any view by holding SHIFT, clicking in the view that you want to move (windows 1, 2 or 3) and just moving the mouse around. The method of zooming in and out by pressing the , (comma) and . (period) keys still applies as well.

Please take note of the fact that the bottom window (where you can lay your actual surfaces and place the walls) does not have the right height. It is only a graphical representation of the section's height. The width however is to scale.

Putting Walls In The Track

I will refer to both armco and walls as walls in this tutorial.

Now, let's call walls and surfaces something else for a moment, let's call them items. Not an official track editing term but I only need it to explain some limits to SFE. The minimum amount of items in a section of track is three. You need at least two walls in a section (outside retaining and inside retaining) and at least one surface. The maximum amount of items is ten, which means the maximum number of surfaces is eight, because as I said, you still need at least two walls. There can be more walls in a section than two, but for every extra wall you have to sacrifice one possible surface. You also have to keep in mind that adding more than three walls, though perfectly possible in SFE, will possibly cause problems in the game (warping and other nasty stuff). So unless you know what you are doing or are willing to take a chance, stick with a maximum of three walls (where the third wall is the pitwall for example).

For the moment, let's only put walls on both sides of the track, on the outermost height lines. I used fenced walls. First click FENCE then click WALL. But you can pick one you like yourself. When you have done that move your cursor to the bottom window (window 2) and click on one of the two grey lines at the top or the bottom of the window. These are the start and end lines of this section. Make sure you click in the position where you want the wall to be placed. In my case like I said I put them on the outermost height lines (that are conveniently shown in both window 2 and 3 with the triangle you will recognize from SGE). When you are not happy with the position of the wall, click on where its line touches the grey start or end line of the section and drag to one side. I have circled in red the bit where I am dragging the line in this shot:

sfe2.gif (2934 bytes)

When you have added both walls to one section you can then go around the track with the COPY FWD function and copy the walls to all sections. That is an easy way to add walls to all sections.

Putting Surfaces In The Track

This basically works the same way as adding walls. First you have to select a surface type from the list. I want the main look of my track to be grass-asphalt-grass with some kerbs in the corners here and there. At this point you need to know that your surfaces will be placed left to right. So that if you select asphalt and click in the middle of the section, only the left hand side of the line will have asphalt and the right part will have nothing defined yet. Because I am first going to put grass-asphalt-grass all along the track it does not matter which section I first edit because I am going to COPY FWD them around the track again.

So first I select a grass surface by pressing GRASS. Then I locate the two innermost height lines and click on the left one. Then I select asphalt and click on the right one of the innermost heightlines. Finally for this section I add the second grass surface, this time by putting it really close to the right wall. Then I click and drag it to the right so that it touches the wall. You can not drag it any further anyway.

At that point you will see the wall change color. All the surfaces have a unique color in window 2. When you get a different color, it's easy to spot that you have two surfaces or a surface and a wall there in the same place.

When you're not completely happy with the location of the lines, this is a good time to do some final adjustments. You can click and drag surface lines the same way that you did with the walls. When you mis-click, it will add a new wall or surfac. Just delete it again by right-clicking on the line.

Now that I am done with this one section I click COPY FWD until the whole track has these surfaces defined. Now you're thinking, why did I first COPY FWD those walls and now I am doing the same thing for the surfaces... and you are absolutely right. Both walls and surfaces can be put in at the same time and then copied along the track with COPY FWD. I just wanted both parts of SFE seperated so I could explain them better.

Okay, so with these basic surfaces in place, this is what a section looks like. I took this screenshot when I had put in all surfaces and had already dragged the top side of the final grass surface out to the wall. I am now in the process of doing the same thing with the bottom side. Note the cursor and the color change at the bit where the grass is already on top of the wall:

sfe3.gif (2935 bytes)

One thing that is good to know at this point is this: whenever two lines are close together it can be hard (or even impossible to grab the left one. Then just grab the right wall or surface and drag it a little out to the right. Then you can grab the left one.

So now we have a pretty interesting track already and at this point it is already driveable in the sim. But before we try that, let's do some other things first. First of all, let's add kerbstones in the places where we raised the track in SGE to accomodate for them. This is where window 3 comes in. Here you can see the banking of the track. Take a look at the below image:

sfe4_sm.gif (2997 bytes)

Where you see A is where you can see that we raise the track slightly for a kerbstone. So now we can add that kerbstone to the track where you see B. I want to use concrete to represent kerbs in this track so I click CONCRETE and click on the line where I want my kerb to end. With this result :

sfe5.gif (2870 bytes)

To add kerbs in the other sections that you want them you can do the same thing. But when you want to put them left of the track beware, you first have to drag the grass to the left (remember, the surfaces are put in left to right). Only then can you put the concrete in, by putting it on the line where the left grass end line is in the above image. So that it looks like this:

sfe6.gif (2958 bytes)

That's about it for adding kerbs. And now you know how to do that, you can add any surface you want in any place you want. You could make graveltraps on the outside of corners by using DIRT or you could add DRYGRASS on the outside of normal GRASS. One thing you might want to add is white lines along the outside of the track. You can do so by choosing PAINT (CURBING) as the surface and putting that in between the grass and the asphalt. Making it about 1 foot wide will do the trick. When you click on a surface line in the middle of that line you will see information about start width, end width and other useful things. You can use that to get an idea of the final dimensions of your track and your surfaces.

I will consider this enough surface laying for now and will move on to adding the pitlane.

Adding The Pit Lane

First of all, your pitlane can be anywhere you can make enough room for it. But usually it is on the same straight where you S/F line is located. What you have to do is make the track wider here and add the surfaces that are needed. First I will widen the track by just simply dragging the left wall out until I have about twice the width that I had before. One important thing you have to know at this point is that there should not be any gaps in the walls between the sections. So where a wall in the previous section ends is where the wall of the current section begins. So you need to decide where your pit access road is going to be and drag the top wall surface line out to the desired track width. Then you can COPY FWD this change all the way to where you want the pit exit road to be (in my track I want it to continue on until just after turn 1). Then you can let the left wall return to the normal track width so that there is no gap in the wall. Have a look at this screenshot of my widened track (click for large version):

sfe7_sm.gif (3477 bytes)

Here is a shot of the pit access road:

sfe8.gif (2828 bytes)

And here is a shot of the pit exit road:

sfe9.gif (2743 bytes)

Pretty crafty right? But, we now have only grass where the pitlane is so we need to put in something a bit more driveable. Let's click ASPHALT again and put that into the pitlane, leaving about 5 foot of grass between the old and the new asphalt surfaces:

sfe10a.gif (2854 bytes)

In the two sections where your pit access and exit roads are you have to put the asphalt in as well of course. You can do that like this:

Drag the grass section into one point at the bottom of the pit access road section:

sfe10b.gif (2908 bytes)

Drag the grass section into one point at the top for the pit exit road section:

sfe10c.gif (2983 bytes)

Now all that is left to do is put some asphalt where the pit access and exit road sections end. Because if you take a look at the two above images you have a pit access road starting with grass in front of it of the previous section and you have a pit exit road that ends in the grass of the next section. That is not the way to go so let's put some asphalt in the section before the pit access road. This is as easy as dragging the grass surface out to the wall at the top like so :

sfe11a.gif (2825 bytes)

Then let's put some asphalt in the section before the pit access road. This is as easy as dragging the grass surface out to the wall at the bottom like so :

sfe11b.gif (2781 bytes)

That's it. The pit lane is done ! You can add a pit wall if you want, you know how to do that by now. I will just keep the track like this.

Additional SFE Tips

1: When you have banking in your track make sure that there is a different surface on every different degree of banking. Even if this means that you will have two or three asphalt surfaces next to each other. Which at first glance does not make any sense but honestly it does. Because when you have two pieces of track, at say 5 and 15 degrees banking next to eachother, but the area is covered by only 1 surface then this surface will be put on both pieces of track at probably 10 degrees banking. The math might be off a bit but you get my point I hope.

2: This track edit has not been very ambitious so far but as soon as you start adding more features you will probably run out of surfaces very soon. What if, for example, you already have an asphalt and a concrete surface in your track and you want kerbstones somewhere. Well, the solution is to just use one of the surfaces you are not already using as kerbstones for now. For example the DRYGRASS surface. That will assign the DRYGRASS texture to the kerbstones. Of course, it will also assign the car handling characteristics of DRYGRASS (slippery, kicks up dirt) but, when your track is completely built that can be changed. What you then do is go back into SFE and replace the DRYGRASS surfaces with whatever surface you want the kerbstones to handle as. Maybe CONCRETE, or if you want them to be just as fast as the asphalt, use ASPHALT. Then save the .sg and build a new .trk. That .trk can directly be copied into your track to replace the one that still had the kerbstones handle as DRYGRASS and now your kerbstones should feel like the new surafec type. But wait: do NOT use that new .TRK file to build a new track out of because then the looks will change as well!

Conclusion:

By now you should have enough knowledge to make more interesting tracks than I have shown you in the last two tutorials. But the main thing is that I have hopefully been able to bring the most important functions of these programs across. This will put you in a position where you can confidently start exploring the rest.


8: Building .trk, .3d and .3do files

Now that you have a track in .sg format you need to know how to build files from that .sg that you can use in your sim.

Tools used

  • NASCAR 3 Sandbox -> SGE.exe (required)

Preparation

You will need want add two other files to your sandbox folder, the ones in this archive. they will be explained later on in this tutorial.

The Build Tools

As we saw before, the sim uses two files for the actual track, the <track>.trk with physical track data and the <track>.3do with visual data. We will build those files with three tools located in your sandbox folder.

  • SG2TRK.exe will convert the .sg file to a .trk file
  • TRK23D.exe will convert the .trk file to a .3d file
  • 3D23DO.exe will convert the .3d file to a .3do file

So, if the sim only uses the .trk and .3do files, why does it use the intermediate step of building a .3d file first ? Well, the .3d file can be described as a .3do file in script/text format. This file can come in very handy when you want to edit something by hand. I have done this with different goals in the past on numerous tracks but in this tutorial we will only use it to set some base colors in the .3do for easier editing later on.

If you just want to test your track you can build it very quickly without feeding any parameters to the tools at all. Here is where the .bat file you just downloaded will come in. As long as your .sg is called icr2.sg then running quick_build.bat will build your track like so:

  1. To build the .TRK file from the .SG file type: SG2TRK.exe icr2.sg
  2. To build the .3D file from the .TRK file type: TRK23D.exe icr2.trk
  3. To build the .3DO file from the .3D file type: 3D23DO.exe icr2.3d

When you get a message that the .mrk file is missing just copy one from another track and rename it to icr2.sg. The tools need one present to function even if there is no data in it at all.

Now you can go test your track in NASCAR 3 or convert it to ICR2.

The build tools explained in depth

Once your track starts to become more fleshed out you will want to use more of the optional command line options. There are different paramters you can use to force a specific behaviour. We will talk about the different options here.

SG2TRK.EXE - Additional parameters

This tool can be used without any parameters and that I think is the advised way to use it. You can however set a couple of parameters if you know what you are doing:

Parameter: Function: Possible input:
-radtoler (number) sets maximum radius tolerancy (between sections). Between 0 and 1000000000, default is 1500.
-arcangle (number) sets maximum allowed arc angle (in degrees) Between 0.000000 and 360. Remember me telling you in the SGE tutorial to make your corner sections cover less then 120 degrees ? That is because the default value for this one is 120 degrees. Now you could put in corners of 180 degrees and change the parameter here but my guess is it will not look good in the game so you better chop them up in smaller sections to be sure.

Here is an example command line using both parameters, just so you know how to type this in a DOS prompt:

sg2trk.exe -radtoler 1800 -arcangle 140 icr2.sg

TRK23D.EXE - Additional parameters

This tool can be used without any parameters but you can do some interesting things by setting some of the available ones. You can read a small help screen with these options by just running trk23d.exe without feeding it any data or parameters, in fact most of it was copied directly into the following table:

Parameter: Function: Possible input:
-am Textures ads in medium and high quality segments (*) Default is high segments only. Ads are made using the .mrk file. Only one of both can be used at a time !
-al Textures ads in low, medium and high quality segments (*) Default is high segments only. Ads are made using the .mrk file.
-c Will center the .trk file to x,y,z = 0,0,0 What's the use ? No idea... Might be helpful when you've lost an .sg file and can only built with .trk.
-nf For no horizontal polygons in the fences. Used to create N1/ICR1 type fences.
-w Make different .mip names for left, right and pit wall Works for armco too. Used to make different textures for inner, outer and pit walls.
-h [number] Specifiies the .mip height of the walls in N number of pixels Default is 16 ? Used to add more detail to a wall if you want that wall higher than normal.
-pit Tells the program to read a file called pitwall.txt Pitwall.txt has pitwall height, example: BOUNDARY 0: 0 1000000 HEIGHT 12000
Use ? No idea... fill me in folks, anyone ever used it ?
-slow Turn on output flushing for debugging Makes the program slower but if it crashes, the .3d file is more complete.
-nosf No s/f line will be drawn If you want a textured s/f line polygon which can be made later on in OPE.
-sandtex Applies a sand.mip texture to the SFE surface SAND When not used SAND surface is the same as PAINT (CURBING).
-nwenglnd Will make fencing on all of the right walls only When you don't have an .sg file to edit, only used for ovals typically.
-gin Groove inside width

Only used in conjunction with a .lp file to create a groove. Only used in N3 so I have no experience with this but I'm sure you have to supply data on all four of the groove related parameters or not supply any at all.

-gout Groove outside width
-gstr Groove width on straights
-amax Maximum alpha of the groove
-info Not used with any other parameter Prints .trk file/track information to the screen.

These are the file names that have to be or can be included on the command line:

<name>.trk Sets the name of the .trk file to read. Required You always need an input file.
<name>.mrk Sets the name of the .mrk file to read. Optional No need to include unless it is named something else then the <name>.trk.
<name>.lp Sets the name of the .lp file to read. Optional When you already have a race.lp, include this command to tell the program to create a groove from this file. Only interesting for N3 track builders because it is not used in ICR2.
<name>.3d Sets the name of the .mrk file to write to. Optional Default is the same name as the trk file, include if you want it to be something else.

Here is an example command line using some of the parameters I have succesfully incorporated in some of my tracks, just so you know how to type this in a DOS prompt:

trk23d.exe -am -w -nosf -sandtex icr2.trk

A lot of the .3d related parameters will come up in another tutorial about using the .3d file to add cool features to your track. There is one thing though that you should do with EVERY track you build when you build the final version and that is to replace the color definitions in the header of the .3d file with some custom made ones, before using the final tool 3d23do.exe.

If you open the .3d file (for example in a text/hex editor) you will see - starting on the fifth line - surfaces with all kinds of numbers behind them. The last bit of every line c= <248> or c=<240> defines which base color (by track palette index number of the .pcx palette file) every polygon of this surface type should become in the .3do file.

When your track is completely finished with the correct textures, objects and such things, you need to change those colors to match the textures again. This is easy to do in 3doEd because you can select surfaces by color to edit them. But, when all surfaces have THE SAME color this is not going to work. That is why the color definitions have to be changed in this phase. You don't have to give them the final colors that you want to use because chances are you don't know them yet. The most important thing is that different surface types (asphalt/grass/fences/walls) all have different colors so that you can edit them easily in 3doEd.

Now the good thing for you is I have already supplied a file that you can copy into your header and have different colors defined. In files2.rar supplied at the beginning of this tutorial there is a file called 3dHeaderColors.txt. This file can be pasted into your own .3d files. Just make sure it replaces the old lines exactly. The first line in my 3dHeaderColors.txt file is nil : NIL ; and the last one is %%Mark Colors so if you copy the whole 3dHeaderColors.txt file, then select the part from nil : NIL ; to %%Mark Colors in your own .3d file and press Paste. Now your colors should be fixed. Save and exit the file and build your .3d file into a .3do.

3D23DO.EXE - Additional parameters

This tool has some options as well but I don't think you will ever need them. It is my guess that Papy not only used this tool to create the <track>.3do files but also to make the other .3do objects in tracks and carsets. They probably had a plugin for a 3D program that could write .3d files and then they converted them to a format that the game could use (the .3DO files). But as I said this is only a guess.

These are the options you can use for 3d23do.exe:

/? Will show a small info screen. Also shown when just running the tool without any parameters.
/s= [number] Scale the 3D model with specified number. There is no need to use this when building tracks.
/o=[name.3do] Sets the name of the outputfile to create. Default name is the same as the .3d file.

Conclusion:

As you can see there is a lot of added functionality to these tools. Some can be very helpful, others you will probably never use. The goal of this tutorial was to show you how to build a track quickly for when you are still developing it and how to build it with more detail when you are doing the final builds.


9: Adding additional wall textures

It's possible to have some additional textures on the walls and armco of your track. You can use this to add any type of additional texture you like, but the original track creators mainly used for ads and the name and logo of a track on ovals.

Tools used

This very much depends on which method you decide to use. You can use:

  • NASCAR 3 Sandbox -> SGE.exe
  • A text editor

Both cases make use of the .MRK file, which SGE.exe creates for you when you start building a new track.

Adding additional wall textures using SGE.exe

If you want to take advantage of a graphical representation of the track to base the textures on, this is the way to do it for you:

Step 1: Start SGE and in the left top window go to the section where you want to add an additional texture.

Step 2: Click on the button MARK

Step 3: In the top left window, click the line at the point where you want the texture to start.

Step 4: Now you can type some information in this format:

ad1: BOUNDARY 0 "adwall" <60,0> - <0,16>

Step 5: Press the Enter button twice.

Step 6: You're back in the editor. Click MARK again

Step 7: Click the point on the line where you want the texture to end.

Step 8: Now type:

END ad1

The texture has been added and it is stored in the .MRK file.

Adding additional wall textures with a text editor

As we saw just now, the information about the new textures is stored in the .MRK file. This means you can also add the same information there by hand. In my opinion that is the fastest way to do it.

Open up the MRK file in a text editor. If nothing has been added yet, it will only show the file version MARK_V1.

If you followed my lead in the previous step, then the information will look something like this:

					MARK_V1
					5 0.337903
					ad1: BOUNDARY 0 "adwal1" <60,0> - <0,15>
					5 0.347903
					END ad1
					13 0.150041
					ad2: BOUNDARY 1 "adwal2" <0,0> - <60,15>
					13 0.336243
					END ad2
					

1. The first line MARK_V1 should simply always be there. It is only at the start of the file, there is no need to repeat it.

2. The second line 5 0.337903 denotes the starting section (5) of the texture and at which point (as a decimal 'floating point' number) along the section the texture will start. 0 is the start and 1 the end of the section, so as you can see this texture I put in starts at roughly a third of the way in.

3. On the next line you will see the actual information about this texture:

  • ad1 is the unique identifier of this entry in the file, followed by a colon. It can be anything as long as it does not have spaces or weird characters in it (and you need to end with the same identifier later on).
  • Next up is BOUNDARY 0 which means that we are referring to the right most wall. That means that normally 1 is for the left wall. Unless there is a pit wall, in which case 1 points to the pit wall and the left wall is 2.
  • adwal1 in double quotes means that texture file adwal1.mip should be used for this texture.
  • And finally, the numbers in the less than and greater than signs indicate texture coordinates.

4. The next line 5 0.347903 is the same as the second line, only this time it indicates the end position.

5. The entry is completed with the line END ad1

So as you can see, I actually put in two wall textures in the example above. Try to figure out where the second one is located!

Two more thoughts:

1. Once you get the hang of the file format, you will probably find it easier to just put additional textures in by hand using the .MRK file. Especially when there are many. Just make sure to give them unique identifiers (ad1, ad2, ad3, etc - but also other names should be fine) and to end each entry with the same identifier that you started it with.

2. The texture coordinates can be tricky when you do them by hand. Just remember that the program will go through the sections from start to finish and does not care for the orientation of a wall. In fact, a texture on a pit wall will be visible from both sides, but mirrored. Picture which part of the texture should come into view first and where it ends. On a left wall it will be the normal orientation of the texture. So on a 256 x 16 MIP the start point will be <0,0> and the end point <255,15> On a right hand wall though, the right part of the texture will come into view first, so then the coordinates in the .MRK file should be <255,0> - <0,15>. But don't worry if you make a mistake with this, it is easily corrected.

Please note: using SFE.EXE does not delete your data in the .MRK file but editing it again in SGE.EXE does. So be sure to backup your decide to go back into SGE.EXE!


10: Using OPE

And you thought that SFE was fun to use! OPE is used to add TSO's (Track Side Objects) to the track. Objects are already in .3DO format. The are for example grandstands, buildings, billboards, people, trees and other objects.

You can also add TSD's (Track Side Details). Those are the textured or untextured polygons on the track, for example on the surfaces or walls, that are used to add lines to the track, sponsor logo's in the grass of an oval, etc.

Tools used

  • NASCAR 3 Sandbox -> OPE.exe (required)

Preparation

OPE.exe was designed with the use of a joystick in mind. If you do not have one you can still launch the program, look at the track and do some very basic actions, but it's advisable to get a joystick and try to make it work in OPE.

If you don't have a joystick, you can use your steering device as well, which I'm sure most of you will have. Be sure to turn off the 'default spring' that most forcefeedback wheels have, it gives odd results in OPE. Also try and look in your driver software screen in the windows system -> gaming devices settings if you can have it behave like a regular joystick (turning off dual axis support). Changing both things on my wheel's settings made it work beautifully with OPE. Although it feels a bit odd at first it should work just as good as a regular joystick.

Now that you can use the tool the way it was meant, you can continue.

Step 1

Make a new folder in your Sandbox folder and name it ope. Copy the following files to the ope folder (where icr2 is the name of your track)

ope.exe Found in the N3 sandbox download.
icr2.3d You built this one yourself with trk23d.exe.
icr2.3do You built this one yourself with 3d23do.exe.
a sky.3do with its .mip texture files You can take one you like from an existing track, including .mip files.
a horiz.3do with its .mip texture files You can take one you like from an existing track, including .mip files.
sunny.pcx palette file Take this from the same track where you copied the horizon and sky files from
all the textures your track uses in .mip format To have good looking colors for these, take them from that same track where you took the above three files from. It does not matter a lot if they do not look anything like the textures you want in your final track, it's just so your eyes will not hurt in OPE. If you have used a surface in your track that is not in the track where you are taking the textures from, just copy one, paste it and rename it to the one you need. You will almost always need the asphalt.mip and grass.mip files and either one or both of the armco/wall sets of .mips. It just depends what you used in your track. If you missed one... no huge problem, OPE keeps a detailed error.out file that you can open in a text editor in case it crashes or fails to load. Then you can see in the error.out what was missing or went wrong.

Step 2

Find all the objects that you want to use in your track. You can just go around looking in tracks for things that you can use. When you have found a nice .3do that you want to use you need to copy it over to your OPE working folder along with the .mip files it uses for textures. Or, when you want to keep things simple for your first time OPE experience, just take all the objects and .mip files from an existing track and copy it to your OPE folder.

Step 3

Now you are ready to begin work in OPE. I have an ope.bat file to do this because you need to set some options. A .bat file is simply a .txt file with one or more DOS commands renamed to .bat. This is how I launch OPE:

OPE.exe icr2 /p=sunny.pcx /n /a=20 /l

icr2 The name of the track (without file extension).
/p=sunny.pcx Tells OPE to load sunny.pcx as the palette file
/n Sets files to be saved with a .3dn extension instead of .3d (that would overwrite the old file)
/a=20 Sets driving height for the trackdrive mode to the indycar height of 20 inches. NASCAR height is 36 inches (so use /a=36).
/l Starts OPE in low resolution mode. You can try starting it without it for a higher resolution but it will not work on every system.

There are some more options, if you want to see them just start OPE without any parameters. But if you paste the above line in an ope.bat file it should run correctly.

Getting To Know OPE

Start OPE by using the ope.bat file you have just created. I only run OPE in low resolution mode and find it more relaxing for my eyes to turn off all object textures. You can toggle these per group just like in the sim by pressing the number on the keyboard associated with that group.

First of all, typing H will bring up a help screen with possible keystrokes. You can write those down for quick reference like me. It will grow on you in time (no really).

When your track loads, be sure to have your joystick in the middle of all its axis. Otherwise you will spin or move like mad. You are now in FLY MODE and you can move around the track freely. The numbers at the top tell you where you are. When you get lost you can return to the S/F line by pressing 5 on your  numpad.

When you have a fast computer you will probably find the rate at which you move too fast as well. You can decrease it by pressing the < or - keys. If you want to go forward with bigger steps later on you can increase speed with the > and + keys.

Adding TSO's

Use the buttons to move to the desired position of your object or use the joystick. Press L and type the name of the object (with its .3do extension as well). Depending on where you are (left or right of the track) when you load it, the program will tell you something like 'object # 0 loaded at right / left of track". Your object should now be visible.

Now press M and a screen pops up. Here you can choose from different program modes. Choose one of the object property modifiers by pressing the number assigned to that function.

The following modes are available:

  1. When you choose MOVE OBJECT you can use your joystick to move the object around in x, y and z planes.
  2. When you choose ROTATE OBJECT you can use your joystick to rotate the object around its x, y and z axis.

You can switch between different object modes or back to the normal FLY mode by pressing M again and choosing a mode.

When you're happy with one object you can load more by repositioning yourself on the track and pressing the L key again.

The good thing about OPE is that it shows all the objects and the track exactly how they will look in the game. This means that if you see a drawing problem in OPE you can still take it out before you save the track and build a new .3do.

You can press M at any position on the track surface and choose TRACK DRIVE. This puts you in the seat of an invisible car and you can 'drive' around to see how the track will look in the sim. This can be very useful to spot objects that might be placed to high or too low or have drawing problem that you did not notice in the FREE FLY or object adding modes.

When you're done adding all the objects press F1 and choose option 1, this should fix all the drawing problems that might have been put into the track when you were randomly adding objects.

Adding TSD's

When you want to make a TSD press T (you are now in TSD Mode). Make a choice:

1: Textured TSD

This can be used to put a logo on the infield grass or track surface itself for example. Make sure to have a .mip file with your logo in the OPE folder. Here is a short description of the information you have to then supply:

  • The width of you TSD (in feet)
  • The name of the texture (without the .mip extension)
  • The coordinates to use of the .mip file. When you want to display a full 128 x 128 image you need to type 0 0 127 127.

Once you have supplied all the info you are back at the track. Go to the point where you want your TSD to start and press the spacebar. Now move to the point where you want the TSD to end and press the spacebar again. Now the TSD should be visible on the track.

2: Regular TSD

This is an untextured TSD. Like the skidmarks in the original ICR2 tracks. Once again, after pressing option 2, OPE asks some questions. Here is a short description of the information you have to supply:

  • The width of you TSD (in feet)
  • the color of the TSD, this is the index of the color in the palette.

Once you have supplied all the info you are back at the track. Go to the point where you want your TSD to start and press the spacebar. Now move to the point where you want the TSD to end and press the spacebar again. Now the TSD should be visible on the track.

3: Dashed TSD

A dashed TSD is used to create for example the lines around Texas World Speedway or the lines in the pits of most tracks. The proces of making these is the same as the Regular TSD's.

When you are done making TSD's, push T again and choose Option 4 - Exit TSD Mode.

There are a couple of noteworthy things about TSD's:

  • They all follow the curvature of the track so that's when they look best.
  • when you want to make lines on the track you should go into TRACK DRIVE mode when putting them down on the track. That way you will always be at the same DLAT at the end of the TSD as you were at the beginning.

Please note: You can save your TSD's locations and other info to a file so you can load it into a track. This is handy in case you want to rebuild your track. After the rebuild you can load the .tsd file so you don't have to lay out all the TSD's again.

To save the TSD's to a .tsd, press S and choose Option 3 - "Save TSD's loaded this session in .tsd file". When you want to load a .tsd file, press F1 and pick "Load TSD (skids or paint)". Type in the name of your .tsd file, press enter and if all goes well [OPE can find your textures for example] the TSD's will be on the track.

There are some more options but as with the other tools, I have shown you the basics of OPE in this one. Now go and explore the rest of the program!

Adding objects manually for proper drawing

OPE will add a new object to a specific number of track sections automatically. For large buildings, this may prevent it from showing up everywhere that it should. Then it is a good idea to add these objects to the drawing order in the .3D file directly. Specifically, you have to add the object to the ObjectList lines for more track sections in the track.3d file:

ObjectList_R2_1: LIST {__TSO41, __TSO40, __TSO25, __TSO26, __TSO2, __TSO38};

The order matters and reordering the ObjectList may be needed to prevent objects drawing through eachother. For more insight please refer to the discussion that starts at this forum post.

Saving:

When you are happy with your TSD's and TSO's, press S and another screen will pop up. Choose the number that will save your track to a .3dn file. Exit OPE and you're ready to build a .3do by renaming the .3dn file to .3d and running it through the 3d23do.exe program. You now have a .3do that calls to the objects and when put into a track with those objects they should now show up without problems !


11: Textures

Now that you have a fully working track with objects it's time to put in some nice textures.

Tools used

  • WinMip (required)
  • Image editor (required)

Preparation

Maybe you had already decided on the track surface and wall textures before you went into OPE to put in the TSO's and TSD's. That's good because then you can just stick to the sunny.pcx from that track and make the rest of the textures fit that palette. Maybe you took ALL objects from that same track as I suggested in the OPE tutorial and then it's even easier, the textures will look just as good as in that other track, as long as you are using that track's palette as well.

But, what if you took objects and surface textures from all kinds of different tracks ? The colors will look all wrong on the textures that you brought in from tracks other than the one you copied the sunny.pcx from. What can you do to bring back the right colors ?

Well, let's say you took an asphalt texture from Atlanta and a grass texture from Michigan. You used the sunny.pcx from Atlanta (a very wise choice because the asphalt texture is probably the most important texture in your track) so the asphalt texture looks perfect but now the colors of the grass.mip are all wrong because it still uses the old IMS palette. When you do not want to have too much trouble there is a relatively easy way to fix it:

  1. Go into your paint program and open your new track's sunny.pcx (the one from Atlanta). Choose the option to save the palette and save it to something like new_track.pal
  2. Convert the original IMS grass.mip and your new grass.mip to grass.bmp with WinMip.
  3. Open the original IMS grass.bmp in your image editor and choose Load Palette. Pick the new_track.pal file (make sure that nearest color matching is checked) and hit enter. Now your IMS grass.mip will be converted to the new palette.
  4. 4. Copy and paste this to your new grass.mip, save and convert it back to grass.mip.

Please note, these instructions were written 'back in the day' with Paint Shop Pro in mind. It will also not have perfect results. An alternative is to edit the palette to put the needed grass colors in the Sunny.pcx palette file and use those.

You can repeat the same proces for other textures that use a different palette then the sunny.pcx in your new track.

ICR2 Colors

For the DOS version of ICR2 there will not be any issues with colors now, because the DOS version uses the whole palette. But when you are using Windy there will be color problems if you are using textures that were 'converted' in the way described above. We will deal with correcting those in a later tutorial.

You can find some more information and tips about the track palette files at this forum post and the page about palettes on Checkpoint10's website.


12: Changing polygon colors

When you are up to your final build of your track it is time to change the base colors of the polygons. This is the color that the polygons have when you turn textures off and the colors that you see in the distance where no textures are drawn yet. If that color is dark green and your track is light grey it will look very ugly and that is why you need to change them.

Luckily there is a cool utility called 3doEd, made by Dave Noonan. You can edit all sorts of .3do properties with it.

Tools used

  • 3doEd (required)

This is how you can easily fix the colors:

1. Open up your <track>.3do  in 3doEd and for a better view of only this <track>.3do, turn all objects off (Display > Object Filter > All Off).

2. In the track view, zoom in until you see a section of track up close, select the surface type you want to edit by double-clicking on it with the square box cursor [for example asphalt] and click Edit Polygon.

3. There is a number in the color box, write it down.

3doEd (and the sims of course) define colors by referring to the color index number in the track palette. There are 256 colors in that palette so possible color numbers range from 0 to 255.

4. Choose Display > Color Filter and type in that number [should already be filled in] in that box and select Display Only This Color. Now only polygons of that surface type/color should be visible.

5. Go into your paint program, open the texture you are editing the polygons for and decide the best color in it to use for the polygons. Then write down its number in the palette index.

6. Zoom out so that they ALL fit in your square and double-click.

7A. If there are less than 1024 selected you can select Edit Polygon, fill in the new number for the texture or select it and select Update All Other then Update.

7B. If there are more than 1024 polygons in your square then nothing will happen, then you will have to zoom in a little and do the proces of 7A in smaller [less then 1024 poly's at a time] chunks.

8. Go about the track for all surfaces, walls lines or fences and when you are done, do not forget to click Update .3do.

It sounds time consuming but it really isn't once you get the hang of it.


13: Using TRKSG.EXE

This tool is part of the N3 Sandbox and can be used to convert an existing .trk file to .sg so you can edit it in SGE.exe and SFE.exe to then build a new track from. I have used it for my Long Beach 2005 and Watkins Glen 2005 tracks.

Tools used

  • NASCAR 3 Sandbox -> OPE.exe (required)

I have set up a seperate sgtrk conversion folder and I advise you to do the same. This is how to do that:

  1. Create a folder called icr2 (very important or it will not work).
  2. Copy any N3 .dat file to this folder and name it icr2.dat.
  3. Copy the DOS4GW.exe and TRKSG.exe files to this icr2 folder.
  4. Make a .bat file with the following line (or launch a DOS Prompt and type): trksg.exe icr2.trk
  5. If the program can convert the .trk to .sg it will now do so and a working icr2.sg will be produced. No error message means it has done so succesfully.
  6. Edit the icr2.sg with SGE and SFE and go along from there.

14: The Ins2Ope Toolkit

This tool is NOT part of the N3 Sandbox but was written by Ton Fastwalker specifically at a request of the track editors here at CRHQ. It can be used to convert an inserts.txt file generated by 3doEd to the format that OPE understands and used to load objects. It is a suplement to the trksg tool and makes rebuilding tracks with new options even easier.

Tools used

  • Ins2ope Toolbox (required)
  • 3doEd (required)

Preparations

Download the Ins2ope toolbox and extract to a folder on your hard drive called ins2ope.

Generating inserts.txt and converting to ope.txt

  1. Open the the <track>.3do in 3doEd in click File > List Inserts, this will list all the objects names, positions and rotations into a file called inserts.txt.
  2. Copy this inserts.txt file to your Ins2Ope folder.
  3. Run the ins2ope.bat file, this will create a file called ope.txt.
  4. Copy ope.txt to your OPE working folder.

Using Ope.txt In OPE

First make sure you have put all the TSO objects of the track where you made the inserts.txt from, into your OPE working folder, as well as all the .mip files of course. Then:

  1. Start up OPE and press F1.
  2. Choose option 3 and type the name ope.txt.
  3. When you press Enter all the objects should be loaded.

If there are too many to load, OPE will crash and you will need to go back and remove entries from ope.txt. When there are not too many files in ope.txt there might still be the odd error message but most likely OPE will display this message on screen and more detailed info will be in the error.out file that OPE writes every session. Then you can remove the faults in the file or if there's an object that OPE doesn't like maybe remove that one altogether. This is where the other two tools come in.

Using FixOpe.exe

So your ope.txt has too many entries in it and OPE will not load any of them because of it. Well, open up the ope.txt in a text editor and remove the odd line here and there. A tree here, a bush there, etc. The little things that will be missed the least. So no removing grandstands or pit buildings at this stage ! When you're down to about 500 files save the file... but now the file count is all wrong. Here fixope comes to the rescue. Run fixope on your ope.txt file and it will produce a file called newope.txt. This will have the numbering corrected. You can rename it to ope.txt and load it into OPE to test if it works. Not yet ? Remove another one or two file entries and run fixope again. One thing to be careful about is to have no empty lines in the ope.txt.

Another functionality in fixope is that you can add lines as well, in any place you like, as long as you name them __TSO00. When running fixope it will fix the numbering on these lines as well. Might come in handy when you want two trucks somewhere, instead of the one in the original track. Then you can reposition them [although staying close to the spot where you put them or they will be drawn wrong in the
game] either in OPE while building the track, or in 3doEd when the track has been built already.

Using RetsOpe.exe:

When the amount of files left to be removed in ope.txt is small then removing them by hand and running fixope afterwards is your best choice. But what if you need to remove 200 files,like I needed to do in Zandvoort. Here is where RetsOpe will come in handy.

You can use this tool te remove whole entries from the ope.txt file.You can do this by:

  1. Typing the exact names of the entries to be removed in the Remmatch.ini file.
  2. Typing a string into Remlike.ini, removing all files with that string in them.

So in option 1, typing "single1" will only remove all entries of object single1.3do but in option 2, typing single will remove all entries of objects that have single in them. So single1.3do, single2.3do, etc.

In those two .ini files there are some bogus names that will likely never be in any track but so you can still see the format in which to type in the names of the lines to be removed. Then run the tool and it will remove those lines and renumber all the lines. So you don't need to run fixope to do the renumbering ! Retsope will already have fixed this!

Back in OPE, if there are no longer any error messages and all the objects are in place after loading then press F1 again, this time choosing option 1 to recalculate the drawing order. If you're not completely happy with their positions or rotations do some editing. When you are finally happy with the end result save your file and exit. Build a .3do with the new .3d file and you're done.


15: How to quickly rebuild a track

This is a short tutorial because both tools used were dealt with in the previous two tutorials. I have used this method of editings in my Long Beach 2005, Miami 1997 and Watkins Glen 2005 edits up to now and it really is very fast and very rewarding. Here's how I made my Long Beach 2005 edit:

  1. I converted ICR2 Long Beach to Nascar 2 with Dave Noonan's ICR2N2 Convertor and unpacked the N2 longbch.dat file.
  2. Opened up the N2 longbch.3do file with 3doEd, clicked File > List Inserts and copied inserts.txt to my ins2ope working folder
  3. Converted inserts.txt to ope.txt with ins2ope and put ope.txt in my OPE working folder.
  4. Took the ICR2 longbch.trk file and converted it to .sg with trksg.
  5. Edited the Long Beach .sg file with SGE and SFE to my liking. Making sure that I kept the part that remained the same in the same place. Moving any old parts would cause objects not be placed back correctly later on. So to be sure, stay away from the MOVE SECTS button in SGE.
  6. F. When I was happy with my changes to the track in SGE and SFE I converted it to .trk, .3d and .3do and put those in my OPE working folder.
  7. I put all the stuff from the unpacked Nascar 2 track's longbch.dat file into my OPE working folder.
  8. Started OPE and loaded the ope.txt file [F1 -> Option 3].
  9. Loaded some additional objects manually with L and moved some stuff around, added TSD's in some places.
  10. Saved as .3dn and built a new .3do and took out the MRON section with a hex editor.
  11. Put the new .3do in the N2 .dat file and convert the N2 track to ICR2.

That's it ! My only additional advice would be to test the track without objects just after step 5. This way you will know if you have the layout right for the new part. If you insist on testing your new track with objects then make sure to:

  1. Load the tested track into 3doEd first to create a new inserts.txt with the correctly placed objects, or any that you loaded and placed manually.
  2. Use this to create a new ope.txt and load that one into OPE.
  3. Continue the first phase from step 10.

Repeat the proces until you are happy with the track.


16: Converting Grand Prix Legends tracks

Thanks to the GPL2TRK tool created by T. Fastwalker we can convert GPL tracks to N3 and ICR2 relatively fast. This is not as straightforward as it may sound, because it is not a full converter like the track converters by Dave Noonan. It's really more a suplement to both N3 Sandbox and those converters.

Let's start by describing what you need to do to convert a GPL track to N3, then we will move on to making them work for ICR2, which needs some more work.

Tools used

  • GPL2TRK (required)
  • The GPL to N3 converter (required)
  • N3 Sandbox (may be needed)
  • Winmip (may be needed)
  • GPLDef (may be needed)
  • Ins2Ope toolkit (may be needed)
  • Image editor (may be needed)

Converting GPL tracks to N3

Everything that we do in this part of the tutorial is needed for the ICR2 conversion proces as well, it is not for N3 only.

Preparation

Install the GPL2N3 converter if you don't have it installed already.

Now I need to explain some things to you. The GPL2N3 converter converts a lot of the GPL track files to N3 by taking the file, doing something to it to make it work in N3 and then copying it into the new N3 track. But there are some files that do not get treated that way. Instead, they have been made in advance, reside in the GPL2N3 folder and are copied into the track during the conversion proces. Examples of those files are the <track>.txt file, the .lp files and the <track>.trk file. This last one is very important, because as you know by now it holds all the physical data of the track. So that is the reason why you can only use the converter to convert a preset list of tracks and no other ones. This is what gets fixed with GPL2TRK.

How do we go about this?

Rename the GPL track that you want to convert to N3 to one that the converter can convert. Let's assume you pick Silverstone so you need to rename the track to Silver. Backup that track first of course ! Renaming the track is done by renaming the <track> folder, <track>.dat and the <track>.trk, <track>.3do and <track>.cam inside the <track>.dat. When you use DooDAT you do not have to unpack the .dat file, just open the <track>.dat with it, locate the .cam, .3do and .trk files and rename them.

Run the GPL2N3 converter, select the track that you renamed your new track to (Silver) and hit convert. Then select Convert to N3 and the track will be converted.

Now you have a track in your N3 folder called Silver that is your new track. Except for the .trk file which will be a Silverstone .trk file, as well as the rest of the files I told you were not converted but copied. The .lp files and the <track>.txt for example. But ALL the other tracks were converted and are good to go for N3 ! That means all graphical data is now in place. All you need is the .trk file at this point and that is where the GPL2TRK Tool comes in.

Download the GPL2TRK Tool from this site, it can be found in The Archive -> Tools. Now extract to a folder on your hard drive.

Go to your version of the track in GPL (the one you ran through the converter). Copy the <track>.trk file and paste it into your GPL2TRK folder. Now you can use the gpl2icr2.bat file to convert the GPL .trk file to the N3/ICR2 format. The .bat file will assume that your GPL .trk is called gpl.trk, the new .trk will be called icr2.trk. If you have problems converting a certain .trk you can open up the Setup.ini that is in the GPL2TRK folder, it contains some flags that you can set. Playing with them can sometimes help you get a better .trk to work with.

Right, so now you have your .trk file. When you are a N3 editor, just dump it into the N3 converted track and test it. Only in testing mode though, because those .lp files are still the ones for Silverstone and will not work in this track causing odd AI behaviour or even game crashes. You will also need to make a new <track>.txt file of course, but other then that the track should work now.

Editing the .trk

I tried the above proces once with Watkins Glen 1970 and it worked beautifully, the .trk needed no work whatsoever. So the above method can be very rewarding. But I also tried it with St Jovite and then there was an invisible wall right in the middle of the track. When that happens you can try going back to step 5 and change some parameters in the Setup.ini file to see if that gets rid of the problem. If it does not cure it sufficiently, you will need to edit the .trk file.

Copy the icr2.trk that you made to the folder where you have the trksg tool installed and run trksg.exe on the file to get an .sg that you can then edit in SGE/SFE. If you can not remember how to use trksg.exe, then refresh your memory with tutorial 12.

Unfortunately for us, GPL tracks often have more detail in them than the .sg file format can store. The tool will tell you "SG FILE SUPPORTS TOO FEW SURFACES". Then you will need to edit the GPL .trk file before converting it. In that case the GPL <track>.trk file will need to be edited before converting it to a N3/ICR2 .trk. We will do that with GPLdef in this way:

  1. Install GPLdef
  2. Start GPLdef and choose TRK > Decompile
  3. Browse to the GPL .trk file that you want to edit
  4. The folder selected in the Set Working Directory box is where your .def file will end up.
  5. Open the .def file with your .txt edit tool of choice.

All that data that you see is the .trk data in .txt format. Unfortunately here is where my knowledge about this proces ends. Wold_PD has done this in the past so you can try bugging him to write up something to go here....

Converting GPL tracks to ICR2

For some reason, the N3 versions of the GPL converted tracks do not convert properly to ICR2. There is probably some data missing that ICR2 needs to run it. This means that for the track to work in ICR2 we need to rebuild the track using N3 Sandbox. But because of Ins2ope this should not have to take long. I will assume you have a working .trk file already, either straight out of the GPL2trk converter or edited with SGE/SFE.

  1. 1. Build a .3d from the .trk and a .3do from the .3d file using the N3 Sandbox tools.
  2. 2. Open the N3 <track>.3do in 3doEd and use the List Inserts option, then convert the inserts.txt to ope.txt with the Ins2Ope toolbox. If you are not sure how to do all that, then refresh your memory with tutorial 13.
  3. 3. Copy all of the N3 track files [.3do/.mip/etc] to your OPE folder, along with the newly built .trk, .3d and .3do files. Then start OPE and load the TSO's by pressing F1 > 3 and typing the name of the ope.txt file.
  4. 4. Do any other work that you might want to do in OPE [for example putting in some TSD's, loading additional objects or moving them around]. Then save the track as a .3dn file.
  5. 5. Rename the .3dn to .3d and use 3d23do.exe to build a new .3do file.
  6. 6. Copy the <track>.3do and <track>.trk to the N3 track and convert it to ICR2. Do not forget to take out the MRON sections in the .3do's first. There will not be a lot, indications are that the GPL2N3 converter was actually designed to build N2 format .3do files, which means that most of the objects do not even have an MRON section in them.

After conversion you will have an ICR2 version of your GPL track ready to be raced. Again, as with N3, the .lp files are still missing and you will need to add things like camera files and some good looking track screens. So if at this point you have a working track move on to the tutorials that describe those files and how to make them.

Problem solving

Sometimes during the conversion proces the N99 to ICR2 Converter will crash. If it does that, do not click Close on the error screen just yet because it will delete all of the files that it did convert properly. Instead:

  1. A. Go to the track in your ICR2 tracks folder that the converter was building. You should see a lot of .3do and .mip files. Make a new folder here called Temp and copy all of the files to it. Then click Close on the N2ICR2 Converter error screen. Copy any .stg, .txt and .lp files to the normal track folder and leave all of the others in the Temp folder.
  2. I am going to assume you took out all of the .3do's MRON sections correctly, which means that the problem lies with the .mip files. Some of them are in a different form then the converter expects them to be. This is how I solve that
  3. Use Winmip to convert all of the N3 .mip files to .bmp. Make sure to have the N2 and Sunny options selected when you use Winmip 1 or that you have the right game selected when using Winmip2.
  4. C. Start your image editor [I use PSP so will tell you how to do this part with that program in mind] and browse to the Temp folder, then open the sunny.pcx file. Save the palette as a .pal file.
  5. D. Again, in your image editor, open all of the N2 .bmp files and for all of them load the .pal file with the ICR2 color palette. Close and save them all.
  6. E. Again, using Winmip, convert all the .bmp files to .mip. This time you should save them in the ICR2 format.
  7. F. Copy all of the newly created .mip files to your ICR2 track's Temp folder.
  8. G. Pack this folder into a .dat and you should have a working track.

18: Updating the <track>.txt

In this tutorial we are going to change some things in the <track>.txt file to set names, pit lane and some other things. The only thing that you are going to need is a simple .txt editor to open, edit and save the .txt file. I am only going to give a quick overview of the keywords in the file and what you have to change to what. If you need more elaborate information about the <track>.txt file entries then take a look at this file that the BB&B editing group wrote up and had posted at SimCyberWorld. I have included it here because it is no longer posted at SimCyberWorld.

'Initial Testing' Phase

What I always do when I have made a new track is just to copy a .txt file from an existing track [of about the same type, if you make a short oval copy the file from another short oval] into my new track folder. Of course, renaming it to the name of my own track. And when I am still in the initital testing phase it does not need to be changed a lot. In fact, I do not want to have to bother changing it a lot in case the track will not work good enough for me and I can the project. I always change the following lines:

TNAME Put the name of the track here that you want it to show in the race trackmenu of the game.
Shorter is better.
SNAME Put the name of the track here that you want to show up in the season trackmenu of the game, short is good.
Shorter is better.
PIT Defines the pit lane, put this in the PIT line for now:

0 0 0 0 0 0 0 28 0 0 0

This will put the player's car on the S/F line and in the middle of the track. If that means you 'spawn' [... ehmmm... FPS term there but you probably know what I mean :)] in a wall, you can edit the 6th 0 in the line with increments of 20000 [which equals 1 meter or about 3 foot].

That's all the editing I do really when I have not made any .lp files yet. If I have and I know the track will be nice and will be released then I start doing some more editing in the .txt file.

'Track Almost Finished' Phase:

Now I will run through the whole <track>.txt file and tell you what to do with all of those keywords:

TNAME We already filles this in when we were in testing phase.
SNAME We already filles this in when we were in testing phase.
PIT A completely new one will need to be created. See the section below called The Pit Line to learn exactly how to do that.
SPDWY The pit window of the opponents. Value 1 is not used in ICR2 so can be left what it is. Run a 40 gallon stint and see how many laps you can do. Decrease that number by one or two to get value 2, increase it by one or two to get value 3.
LENGT Length of your track in feet.
LAPS Number of laps you want a single race to be at this track.
FNAME Full name of the track, shows up in the track loading screens.
CITYN Name of the city where the track is located.
COUNT Name of the country where the track is located.
PACEA If you took the <track>.txt from a similar track porbably does not need chaning. If it does, refer to the track.txt info file for needed information.
QUAL If you copied this file from a similar type track like I said, no need to change. If not, refer to the track.txt info file for needed information.
BLIMP Blimp camera, no need to change
GFLAG Place on track where the green flag drops, see the section below called The Pace Alinement Lines.
TTYPE If you copied this file from a similar type track like I said, no need to change. If not, refer to the track.txt info file for needed information.
CARS Total number of cars that will race at the track [see number of cars in PIT line].
TEMP Determines the temperature at the track. The first value is an average temperature and the second ones determines the allowed variation. A value of 839 would mean 83.9 degrees Fahrenheit.
TEMP2 Same as TEMP values above.
WIND No need to change, but you might want to. The first two values are direction of wind and variation thereof. The second set are the speed in tenths of a mile per hour. The fifth parameter changes the heading of the wind. The value can go all the way to 2147483648.
WIND2 Same as WIND values above.
RAIN No need to change.
BLAP The pole time that opponents will attempt to achieve at 100 RELS [see below], calculated in milliseconds
RELS If your opponents are too slow add to this number with increments of 1, decrease by 1 at a time when they are too fast.
THEAT Tire heat, wear and/or grip modifier, if you need to change refer to the track.txt info file for needed information [when you have too little grip for example]
TCFF Tire heat, wear and/or grip modifier, if you need to change refer to the track.txt info file for needed information [when you have too little grip for example]
TCFR Tire heat, wear and/or grip modifier, if you need to change refer to the track.txt info file for needed information [when you have too little grip for example]
TIRES Tire heat, wear and/or grip modifier, if you need to change refer to the track.txt info file for needed information [when you have too little grip for example]
TIRES2 Tire heat, wear and/or grip modifier, if you need to change refer to the track.txt info file for needed information [when you have too little grip for example]
SCTNS No need to change.

Those are all the standard ICR2 <track>.txt entries.

The Pit Line:

This lines consists of 11 numbers and we use an Excell file to create the new line. Thanks to Sander for writing up that file some time ago. I have edited it a bit putting some colors in to make it more clear what to edit.

But first here is the meaning of all numbers and a nice little drawing I made some time ago where you can get an idea of what every number does. DLAT means Lateral Distance [or distance from the track center line] and DLONG means Longitude Distance [or distance from the S/F line] The DLONG and DLAT values are all given in Papy units [or '500ths' as they are referred to in SGE/SFE] where 20000 units corresponds to about 1 meter.

pit.gif (26275 bytes)
  1 = DLAT position of the pitwall
  2 = DLONG of the beginning of the pit access road
  3 = DLONG of the end of pit access road
  4 = DLONG of the back end of the first pit stall (player pit)
  5 = DLONG of the back end of the final pit stall (15-30 feet before end of pit lane)
  6 = DLAT  of the middle of car when parked in pit stall
  7 = DLONG where AI cars merge from PIT.LP to RACE.LP after pitting
  8 = Number of pit stalls. It's the number of cars this pits can hold
  9 = DLONG - Unknown - Usually same value as 10* or slightly lower
10 = DLONG of the beginning of pit wall
11 = DLONG of the end of pit wall

Now, how about that Excel file ? Well, download it first and take a look at it. Much of the same information that I put in the chart above is in the Excel file as well. As it says in the .xls file you only need to fill in the values in the green cells. So what should you fill in there ? Here we go:

1. DLAT position of the pitwall Go into SFE and make sure your units are displaying 500ths. Click on the pitwall and take over the DLAT value to get the needed value.
6. DLAT of the middle of cars when parked in pitstall Go into SFE and make sure your units are displaying 500ths. Click on the left pitwall and take over the DLAT value. Click on the right pitwall and take over the DLAT value. Fill in the number of lanes in the pit (usually 3) and depending on pit orientation take over the East or West value to get the needed value.
8. Number of pit stalls. Fill in the number of pit stalls of your pits. Adding more will make length per stall shorter.
10. DLONG of the beginning of the pit wall First, run trk23d.exe with the -info parameter on your <track>.trk like this:
trk23d -info <track>.trk
Then trk23d.exe will start putting out a lot of info on the screen about the .trk. When it is done, the last line will be the total length of the track (in 500ths).
Then go into SFE and take note how many sections before the S/F line have a pitwall. Then go into SGE and make sure your units are displaying 500ths. Select the sections before the S/F line with a pitwall and add up their lengths (in 500ths). Take the total length of the track (in 500ths) and subtract this value from it to get the needed value.
11. DLONG of the end of the pit wall Go into SFE and take note how many sections after the S/F line have a pitwall. Then go into SGE and make sure your units are displaying 500ths. Select the sections after the S/F line with a pitwall and add up their lengths (in 500ths) to get the needed value.

19: Making new camera files

This tutorial will try to assist you in quickly creating new camera files for your ICR2 tracks. It describes the method I developed while making camera files for my scratchbuilt tracks. But the info could of course also help you create camera's for existing tracks or edited tracks. This file has been updated since it was available at Lightning. I have changed it to use OPE instead of 3doEd to determine camera positions.

Information was taken from my own experience with camera's, Bob Seaman's tutorial and the file by Turtle of TWI at www.simcyberworld.com. Reading those files might lead you to believe that it's pretty complicated to make new camera's for a track when really it is not. Once you get the hang of it, it should only take you half an hour to create new files for a medium sized track. Of course, as with any edit, it always involves a little bit of trial and error.

All the tools you need are in this archive. They were written by BB&B Editing Group.

Tip: to save some time while editing you can drive a couple of laps and save a replay. Then when you are testing your camera's all you have to do is load the replay file.

The first thing you should do is open the camtools.rar file linked above and extract its contents to some temporary folder on your hard drive. I will first explain you which files are which in this folder.

  Cam_writ.exe   by BB&B, needed for writing a .cam;
  Scr_writ.exe   by BB&B, needed for writing a .scr;
  Filewrit.bat   Saves you the time of typing in a DOS window when you write the new files
  Track.ca_   The .cam file in .txt format, we will make our changes in this file..
  Track.sc_   The .scr file in .txt format, we will make our changes in this file...
  Track.cam   We will use this to write to so keep it in the folder ! Cam_writ can NOT write a whole new file. You will get a .cam file when you try compiling, but it will be corrupt.
  Track.scr   Keep this in the folder as well, although scr_writ IS able to make a functioning .scr from only the .sc_ it will avoid confusion.


You can open the ca_ and sc_ in Notepad, they are standard text files, you might even want to consider to select "Always open with this program" the first time you open them so you can just double click on them and instantly make those changes you had thought of. It's not very likely that you already have a program associated with the .ca_ en .sc_ file extensions anyway...

Preparations

Draw up a little map of your track. Just a single line that roughly has the shape should be enough. Draw in all the TV1 camera's where you want them, also mark where you want the camera's to start  and stop viewing the car. Where your previous camera stops, is where the next one will begin. In other words, no overlap ! If you don't know the layout of your track, open up its .3do in 3doEditor and view it from above.

Maybe using a different colored pen draw in the TV2 camera positions as well, also mark where you want THESE camera's to start and stop viewing the car. A word of advice here, for your first camera experience to be a succes you would be better off avoiding problems when you can. So you can use different camera positions but it's smart to keep the same amount of TV1 and TV2 camera's and also to use the same points where they switch on and off. As soon as you're comfortable with editing these files the sky is the limit.

Go into your track in OPE [with or without objects does not matter]. Manouver yourself to the middle of the racing surface and go into Track Drive Mode by pressing M and choosing the apropriate number. Now you can drive back and forth on your track with your joystick or pedals/wheel. In the top part of the screen some information will be displayed as to where you are on the track. The important thing to look for is the position from the S/F line. So look for the one that is close to 0 when you pass the S/F line. You will need to write down the value it displays [which is given in 500ths, the same measurement as the .scr and .cam files] by going around the track and filling in the numbers for the camera's start and end viewing points [in the map you made]. Do that for both the TV1 and TV2 views.

The .scr File:

Open up the track.sc_ file in Notepad, you will see this:

headerscr.gif (2784 bytes)

Then you will see the next bit of data:

tvdefs.gif (3800 bytes)

There is one for every camera. You only need to make adjustments to the New_value column. The other one is only there for reference.

In the file I provided with this tutorial, there are a total of 10 camera's. 5 TV1's and 5 TV2's.... The sc_ file lists the 5 TV1 camera's first, then the 5 TV2's. For every extra camera there is in your track, add one set of data as seen above. Don't forget to adjust the numbering of the camera's you're adding (this bit : "TV1 Camera # 1")

Here's a quick explanation of my comments in the image above:

  • (*1) = This value can either be a 6 or a 7. According to other documentation about this subject it would be used to identify either outfield camera's (Mark 7) or infield camera's (Mark 6). But since I just put the camera's where I want them (in- or outfield) by their coordinates, which seems to do the trick quite beautifully, I personally thought a 7 is used to specify that this camera is a stationary one. A so called 'speedcam' as mainly seen on ovals. I have just tested this theory and it seems this is correct. But a stationary camera is very hard to get right (a lot of trial and error involved) so to make life easier we will stay with panning camera's for now. When the whole file is finished you can try your luck on some Mark 7 stationary camera's. More info on this later in the file.
  • (*2) = The Cam # value should start counting at 0 for TV1 cam # 1, 1 for TV1 cam #2, etc...just keep counting up for every camera in the file. If your last TV1 camera has a Cam # of 8, start counting at 9 for the first TV2 camera.
  • (*3+*4) = Now we can look at our map we drew with the numbers in it. The first TV1 camera probably tunes in on the car before the S/F line, as you can see in the example file. Go around the track and fill in the 'coming at' values and 'going away' values for each camera. As I told you before, distances are all relative to S/F line, measured in Papy units (1 meter = 20000 units). Keep in mind that the 'going away' number of the first camera is the same as the 'coming at' number of the next one. This means that the 'going away' number of the last TV1 camera is the same as the 'coming at' number of the first TV1 camera. Then do the same for the TV2 camera's.

Now, lastly, we need to take care of the formatting of our sc_ file. The scr_write.exe is very picky, formatting needs to be perfect. Please make sure there aren't any extra lines or extra spaces at the end of lines. In your .sc_ file, select all text and make sure that this:

wrong.gif (2554 bytes)

Will look like this:

right.gif (2505 bytes)

Once you're done you can save the file and close it. If your camera's act weirdly when you test them, the .sc_ file is the first place to look for errors.

The .cam File:

1 - Open up the ca_ file in Notepad. The first line will look like this :

headercam.gif (1463 bytes)

2 - For every camera you added to the .sc_ file, add one to the line above. So let's say you now have a total of 8 TV1's and 8 TV2's in the sc_ file, then replace 10 with 16. It really is that simple!

3 - Next you will see this :

cameras.gif (5740 bytes)

One set of these for every camera.

Again, you only need to adjust the 'New_value' column, the other one is there only for reference. Once you're done adding sets of data, adjust numbering. I should tell you that this is only to help you identify camera's, the tool doesn't look at it. In fact, BB&B made a slight mistake here. They thought they were putting the first of the TV1 cam's in here, followed by the first of the TV2 cam's and then around the track. When in fact, the tool just extracts all TV1's first and then all TV2's. So when you indeed would have 8 TV's and 8 TV2's, edit the ca_ file as if the first 8 camera's are all TV1's and the last 8 are all TV2's.

Also, this tool was written when all meanings of the values weren't very clear yet, so please look at my comments on the right instead of the ones in the first column.

As you can see from my comments above, we are only going to change Value 2, 3 and 4. Which hold the coordinates of the position of this camera on the track. The other values (Value1 and Value 5 to Value 9) probably don't need changing. Unless your camera has a weird zoom that you don't like. In that case try playing around with the zoom Values. The best thing you can do is read the file by Turtle, he explains the zoom values in there. I have never changed anything other than the coordinates and while writing this bit I have made new camera files for five different tracks. On the other hand, I'm not very picky... I can give you some sort of quickfix though, look up a camera in your track that does have the kind of zoom you would like and copy over its Value 1, 5, 6, 7, 8 and 9.

4 - But first we're only going to change coordinates. Again, open up your track OPE, it helps in this stage if the objects are loaded as well to see if a camera has unrestricted view on the track. Look at your map and determine the position where you want your first TV1 camera. Now find that point on the track by flying around using your joystick or pedals/wheel. You can have a good look from that point to see if it's a nice spot to put a camera. When you are happy with the position and height of the camera you need to determine what the coordinates are of that point. Write down the X, Y and Z values displayed in the top of the window for that camera and move on to the next one.

5 - Go around the track and fill in every camera, looking at your map and the track in OPE.

6 - Lastly, just like in the sc_ file, adjust formatting. Again, select all the text and take out or add extra spaces.

7 - Save the track.ca_ file.

Wrapping it up

1 - Run the filewrit.bat file and your new camera files are ready. Copy (don't move!) them to the track, renaming them of course (unless your track is called Track) and test your new camera's!

2 - If you're lucky, the camera's are just where you wanted them and are looking fabulous...good job...but minor adjustments might be needed.

Now there is just one thing left to tell you. Remember those stationary camera's I was telling you about ? If you want to try your hand on making one, backup your .cam and .scr file and put them in a safe place. You wouldn't want to mess them up :)

Let's say you have 7 TV1 camera's...and you want the middle camera (number 4) to become a stationary one. Go into your .sc_ file and change the Mark value of TV1 camera number 4 to 7. Now change the Cam # line of this camera back to 0. Go to the next camera (camera number 5) and change it's Cam # back to 0 as well (the Cam # value just counts all sequential camera's of a certain mark, so the sim knows when to switch from panning to stationary mode and back - and thus how it should treat the .cam file info for the camera's). Now you have to adjust Cam # of all the other camera's after that as well. Let's see a simplified chart of how your .sc_ file should look before and after....

sevensbefore.gif (1709 bytes)

sevensafter.gif (1708 bytes)

That's the sc_ file. Now you need to edit the corresponding .cam values for the Mark 7 camera in your .ca_ file. So open that one up in Notepad and lookup the camera (should be camera number 4 in our example track here) and start editing it's values. I have not tried this myself yet so I can't tell you much about it here. As you can see from the next bit of info that I took from the N99 camera help file by Turtle is that a Mark 7 camera still has the same number of values, but some will have no effect and the others will have a different meaning :

Value 1: No known effect.
Value 2: Controls forward movement.
     a. In order to regain direction, zero out value 5.
     b. The lower the number, the more forward it moves.
Value 3: Rotates actual camera.
     a. The lower the number, the more right it turns.
     b. Try rotating the camera in the desired direction, then use Value2 to walk it forward.
Value 4: Elevates Camera.
Value 5: Rotates Camera Head.
     a. Rotation will start to show change at about 10 million.
     b. The higher the number, the more left it turns.
Value 6: Has camera look up- or downward from its tripod.
     a. 100million mark gets results best.
     b. The lower the number, the lower it looks.
Value 7: No known effect.
Value 8: Wide angle zoom and or wide zoom lens.
     a. Zooms view way back in negative numbers.
Value 9: No known effect.
Value 10: No known effect.
Value 11: No known effect.
Value 12: No known effect.

As I said, I haven't tested these values and what they do yet.

Update 2020: Pavel69 has found out all values in the Camera files in the mean time. He has posted this on the forum. Please refer to that post for now as well. The information will be added to this tutorial once I have time to experiment with this myself. There is also an older discussion about this same topic on our forums. - Tjerk

As a final note, there is one extra camera position that can be edited. You will need to go into your <track>.txt file and find the BLIMP line. Here you can define the blimp camera position. You can only change the X and Y coordinate here, the Z-coordinate is fixed. In OPE, find a good place in about the middle of the track and change the values in the BLIMP line.


20: Making new track screens

Please also refer to this forum topic for more information about the game files for the specific versions of ICR2 / CART Racing.

Tools used

  • Winmip (required)
  • Image editor (required)

All the files you need can be found in this screens.rar

1: Make a new folder on your harddrive. Let's say you call it screens

2: Unpack screens.rar to this folder.

3: If you are using PSP, you can skip this step because I have already put the needed palette files in PSP form in the screens.rar file. If you use another program I hope you can save palettes! You will need to save three palette files:

  • screens_color0.pal. To create this one load the file htshotc.bmp in your program and save the palette.
  • screens_194colors.pal. To create this one load the file hdiagram.bmp in your program and save the palette.
  • screens_bluetones.pal. To create this one load the file htshotg.bmp in your program and save the palette.

4: The next thing you have to do is find or draw a good image that you want to use as the main track shot. You can try cooking up a good shot in 3doEd, you can look something up on the internet or even use your own artistical skills. It's best to have an image of at least 640 by 480 pixels. Save this image in 16 million colors as a .bmp file. Name it something like main_shot.bmp.

5: Now you have to make another image file, the one we are going to use for the track map images. You don't have to make a track map per se, a nice logo would do as well. Make something pretty ! This time, make sure you have at least 183 by 104 pixels. Again, save it as a 16 million color .bmp and name it something like track_map.bmp. What is important to know is that everything that will have RGB color values 0,0,0 will be transparent in the game. So you can draw a track map like in the original DOS game with very light grey on a background of RGB 0,0,0 and only the track will appear on screen and not the background.

6: Now we are going to make the actual track screens for in the game. I will deal with these one by one and tell you exactly what to do. So here it goes:

Main Track Shots (DOS & Windows versions)

A: In your paint program, open the main_shot.bmp you made earlier. Copy and paste as a new image. Resize this new image to 640x480 pixels. Load the screens_color0.pal color palette. When asked, choose 'Optimized Median Cut' and either 'Nearest Color' or 'Error Diffusion' [depending on what looks best]. Save as htshotc.bmp and close.

B: Copy and paste main_shot.bmp as a new image again. This time, resize the new image to 320x200 pixels. Load the screens_color0.pal color palette. When asked, choose 'Optimized Median Cut' and either 'Nearest Color' or 'Error Diffusion' [depending on what looks best]. Save as ltshotc.bmp and close.

C: Copy and paste main_shot.bmp as a new image again. This time, resize the new image to 447x330 pixels. Decrease the amount of colors to 256. When asked, choose 'Optimized Median Cut' and either 'Nearest Color' or 'Error Diffusion' [depending on what looks best]. This time, save it as a .pcx file ! [this one will go straight into the game]. Name the file mtshotc.pcx and close.

Track Maps (DOS & Windows versions)

D: Open the track_map.bmp you made earlier. Copy and paste as a new image. Resize to 183x104 pixels. Load the screens_194colors.pal palette. Save as hdiagram.bmp and close.

E: Open the track_map.bmp you made earlier. Copy and paste as a new image. Resize to 89x44 pixels. Load the screens_194colors.pal palette. Save as ldiagram.bmp and close.

Track Screens Blue Background (DOS Only)

F: Open the htshotc.bmp you made earlier. Copy and paste as a new image. Increase color depth to 16 million colors. Now choose 'Colorize' and adjust 'Hue' to 140 and 'Saturize' to 80. Adjust 'Brightness' to +20 and 'Contrast' to -20. Now add a 35% transparent layer to the image filled with RGB 0,0,140. Merge the layers. Load the screens_bluetones.pal color palette. Save as htshotg.bmp. Don't close yet.

G: Increase color depth to 16 million colors on your freshly made htshotg.bmp and resize to 320x200. Load the screens_bluetones.pal color palette. Save as ltshotg.bmp and close.

H: Start up WinMip and choose converting .bmp files to .stp and convert all your freshly made .bmp files to .stp files.

I: Rename the file htshotg.stp to htshotg.str

J: Rename the file ltshotg.stp to ltshotg.str

K: Put both the .str files, all four .stp files, the mtshotc.pcx file and the map.pcx file to the .dat file of your track, repack it and test the new screens.


21: Making .pmp objects

In Indycar Racing 2, the normal .3do objects use .mip textures. These do not support a transparency color yet [later papy sims do] which means that something like a tree won't look very good in ICR2. At least, when you use a regular -three dimensional- .3do with .mip textures. But there is a second type of object in ICR2. This is not exactly an object but more of a placeholder for a 2-dimensional image, that always looks the same from all angles. The image is stored as a .pmp file. A .pmp file does support a transparency color. So when you convert a track and it has ugly borders around the trees, I will show you how to transfer a .pmp object from one track to this track to make it look better. This works better on a non- or lowbanked track then on a high banked track. This is, like I said, because the object looks the same from all angles. So when you're in the high banking, the tree doesn't stay upright but will tilt as well. Which looks odd.

Tools used

  • DooDat (required)
  • Last Chance Tools (required)
  • .3do Editing Tools (required)
  • Image Editor (required)

WinMip is a great program, but unfortunately the .pmp files that Winmip creates are not of the same high quality as the ones made with the Last Chance tools by Róbert Szikszó. That is why we are going to use his tools instead of WinMip.

First we need to find some .pmp objects to copy to our new track. You can download the Nascar 3 converted Watkins Glen track from the Track Archive on this site and use the .3do tree objects in it.

How you find out what a .pmp-.3do object is, is not too difficult. Just keep opening .3do's of 1 kb in 3doEd until you find one that doesn't seem to have any polygons. Open it in Notepad to see which file it calls to [this is in the first line somewhere] and find out in the directory where you unpacked the .dat if this is a .pmp file. It is ? Good, this is a .3do you can use.

1: Look at your new track in 3doEditor and find out what the name is of the object you want to replace. Now copy that .pmp-.3do from Watkins Glen over to the working directory of your new track and rename it to replace the object you found.

2: Copy the .pmp file you found, over as well.

3: Using theLast Chance Tools, convert the .pmp in your new track -the .pmp you just added- to a .pcx file. Do the same with the same .pmp file that is still in the Watkins Glen track folder.

4: Open both .pcx files in your imaging program, as well as the sunny.pcx file of the new track. Save the palette of the sunny.pcx [in Paint Shop Pro this is found in the Colors menu].

5: Increase the color depth of the old .pmp object [the one that has the right colors] to 16 million and load the palette you just saved. Colors should still be normal.

6: Copy the old .pmp image and paste it on the new .pmp. Save and exit.

7: Convert the new.pcx back to .pmp with the Last Chance Tools.

8: Repack the <track>.dat file and put it back in its folder.

That should have done the trick. When you decided to not just copy the file over, but to edit the position of the .3do or to edit the actual contents of the picture in the .pmp, there are some things you need to keep an eye on:

A: The .pmp is a picture within a white border (palette # 255 always !). Make sure there is at least 1 lineof this color around the image, otherwise pcx2pmp can't read the file.

B: Sometimes your paint program will set the white border to another color which has the same RGB values as the palette # 255, in my case usually color # 35, white. Edit the palette so that palette # 35 is a weird color (bright pink will do nicely) and color the border in color # 255. Save the file and convert the .pmp.

C: As soon as you have a .pmp in the track, it won't show up in 3doEd, but you might want to adjust placement of the object. Just take some object like a truck to temporarily replace the tree to make adjustments.

D: If the .pmp looks too small in the game you can adjust its size by decompiling the tree.3do with xinfo.exe In the flavor file there will be one line that looks something like this:

FID Offset Values
3 88 4 600000 0


The 600000 number you see here is the size of the object. You need to increase this value to get bigger objects, decrease the number to get smaller objects. Then repack the 3do using the pflavor utility.


22: Correcting Windows Colors

The DOS and Windows version of ICR2 both have a different number of colors that you can use in a track. The DOS version can use the whole palette [all 256 colors] but Windy can only use a section of those colors. Which means that if a track still uses a color that is 'forbidden' in Windy then the track will not draw properly. It will have bright purple dots on the walls for example. Here is how to fix that:

1: Convert all .mip files in the track that have weird colors [or to keep it simple all of them] to .bmp using Winmip.

2: Load the track's sunny.pcx into your paint program of choice [I use PSP so will explain this using that program].

3: Choose "Edit Palette" and make all the colors in the following index numbers 0 to 31 and 246 to 255 a very bright color that is likely not to be used in the track, like so:

palette.gif (18354 bytes)

I usually make them bright pink and although there are some pinks in the normal palette as well I have never had any problems where it didn't work doing it like this.

4: Choose "Save Palette" and save the edited palette as a .pal file, close the sunny.pcx but DO NOT SAVE!

5: Open all the .bmp files in your paint program.

6: Choose "Load Palette" for every .bmp file and click save [make sure "nearest color matching" is set] and save the .bmp files.

7: Convert the .bmp files back to .mip and put them back in the track.


23: Making new .lp files

Now this part can get tricky. Somewhere in the testing phase your computer might hang [although I have only had game crashes since I use Windy] so please, make sure you have no important tasks running on your computer when testing your .lp files.

Calculating the number of records:

There are a number of tools available when you want to work with existing tracks and existing .lp files and we will use those along the way. But when making them from scratch things get a little harder. When it comes to AI behaviour the game cuts up the track in small parts and assigns a portion of every .lp file to that part of the track to determine AI behavioour. These chunks in the .lp files are called records. A long track needs more records and a short one needs less. But how do you know how many you need for your particular track ? In the end this proved to be reasonably easy. Nowadays I take my track's length in Papy units [also called tinies or 500ths] and divide it by 65500. This way I get the right amount most of the time. Sometimes I have to make .lp's with one or two less or more records to make it work but for medium sized tracks it is usually spot on.

Now how do you get the track length in Papy units ? We have used the same method when making camera files but if you forgot here is how to get that number:

First, run trk23d.exe with the -info parameter on your <track>.trk like this:

trk23d -info <track>.trk

Then trk23d.exe will start putting out a lot of info on the screen about the .trk. When it is done, the last line will be the total length of the track [in 500ths].

Now take that number and divide by 65500. Round off to the nearest whole number and that is the amount of records needed for this track. Like I said before, sometimes I have to make .lp's with one or two less or more records to make it work but for medium sized tracks it is usually spot on. But you will only know that when you have made and tested the actual .lp files so let's go make those now.

Making the replay files:

Because I mostly make roadcourses and because Mistycreek has written a good tutorial on making these files for an oval track I am going to explain this proces on the assumption that we are making .lp files for a roadcourse here. In fact while writing this I have just made AI for Brainerd so I have that track in mind right now. Also, whenever I say DLAT I mean the lateral distance from the track center line.

Start up ICR2 and load your track in Preseason Testing. That is because other cars on the track will confuse the .rpy to .lp converter program, as well as just get in the way really.

We are going to drive laps and save their respective replays, later on we will use them for making the .lp files with. Let me tell you first which laps to make and how to make them.

1. Race.rpy. A replay file of the cleanest single fast lap you can drive. This is the most exciting .rpy file that you're gonna make probably, so you might also like to save it to last.

2. Pass1.rpy. A replay file of the cleanest fast lap while mostly driving on the lefthand side of the track (especially in corners). The more you stay on the lefthand side of the track, the better the AI cars will be able to pass each other, and you.

3. Pass2.rpy. A replay file of the cleanest fast lap while mostly driving on the righthand side of the track [especially in corners]. The more you stay on the righthand side of the track, the better the AI cars will be able to pass each other, and you.

4. Pace.rpy. Drive a lap mostly in the middle of the track at a reasonable speed. I take it up to about 100 mph on the longer straights and slow it down to 40 to 60 in the corners. This will be, as name suggests, the path the pacecar takes during yellows and before the start.

5. Pit.rpy. Drive a pretty fast lap (comparable to your race.rpy lap) but this time drive through the pits as if you were having a drive-through penalty. Stay close to the pitwall. This will be used for the laps when the AI get in and out of the pits. I have no idea when control gets handed back to the regular .lp files.

6. Maxrace.rpy. Drive one lap on the righthand side of the track, as close to the edge as you can get but stay on the track. This I think determines to which point the cars can race. Make the speed only slightly slower than the normal racing speed. Basically, the best you can do while driving on the edge of the track. Do not drive through the pits.

7. Minrace.rpy. Drive one lap on the righthand side of the track, as close to the edge as you can get but stay on the track. This I think determines to which point the cars can race. Make the speed only slightly slower than the normal racing speed. Basically, the best you can do while driving on the edge of the track. Do not drive through the pits.

8. Maxpanic.rpy. Drive one lap slowly [40 to 80 mph] on the left of your track. I always make a lap while actually driving on the grass but staying as close as I can to the track. If your pitlane is on the inside part of the track, go through it this time, keeping about the same line as you did in the Pit.lp.

9. Minpanic.rpy. Drive one lap slowly [40 to 80 mph] on the right of your track. I always make a lap while actually driving on the grass and staying as close as I can to the wall. If your pitlane is on the inside part of the track, go through it this time and stick close to the retaining wall.

Always make sure that:

  • You save the replays from just before the start of the lap and a little after it ends. So, leave a little room before and after the S/F line.
  • You don't save multiple laps to a replay, only save the best one, the one that you will want to use to make a .lp from.
  • Make sure the lap ends about where it began in terms of lateral distance from the track center line, because it is supposed to become a closed loop.
  • The maximum DLAT lines you drive the Pace / Race / Pit  and both Pass files with should at no point be more then the DLAT of the Maxrace and Minrace files.
  • The maximum DLAT in the Maxrace and Minrace files should at no point on the track be more than the DLAT of the Maxpanic and Minpanic files.

For an even better understanding of proper .LP files and AI lines, please refer to this forum post by Pavel69. Also, take a look at the below example of all .LP files of an oval loaded into the AI Edit program:

Track map with all .LP files.

Red=Race, Orange=Pass1/Pass2, Green=Pit, Blue=Maxpanic/Minpanic, Yellow=Maxrace/Minrace.

Building The .Lp Files:

We need to make some empty .lp files to work with first. Start up Lpedit and choose your track. It will tell you that it has not found any .lp files and if you want to make them now ? Press Y and enter the number of records for the .lp file [the number we calculated at the beginning of this tutorial]. You will be prompted for all 9 .lp files so you need to repeat this step another 8 times. Then when the program loads press Escape and choose the option that will create the .lp files for you.

Start up Trafo in your Lpedit folder. I have had a problem where Trafo doesn't see the .rpy files that are in the track folder. To work around this try to rename the track to have the name of one of the original tracks. The name can be any of the names that you can access with a hot key on the Trafo [and Lpedit for that matter] intro screen. For example, the hotkey H is Michigan. Then the program should have no trouble seeing your .rpy files.

Type the name [with .rpy extension] of the first file and press Enter. The program will dump a file called Trafo1.txt in the lpedit folder of your track. Rename Trafo1.txt to whatever the name of the replay was that you just converted. So Race.rpy becomes Race.txt. Work down the list until there is a .txt file in the lpedit folder of your track for every .rpy that was in your track folder.

When you're done start Lpedit again. Now you will be asked to load data from laps or txts. Choose the option to load from .txt's by pressing T. Press Escape and then press Enter. Your .lp files will be saved and the program will exit.

That's it. You now have new .lp files. So go ahead and test them ! But make sure to save any unsaved work first because if you have made mistake then the game will likely crash and if you use DOS your whole computer might start rebooting. I usually test the new files by starting a new race and jumping right in. So what if it does not work ? Well:

1. When your cars move violently across the track for a very small moment before the game crashes it is most likely a record related problem. Then you can add or take out a record to see if that will work. You can do that with LPedit but that is very time consuming. It is better at this point to install Fastwalkers Lp2Txt and Txt2Lp tools in a folder on your harddrive and put your new .lp files in that folder as well. Then just run the .bat file to convert .lp to .txt, make the edit and run the .bat file that converts the .txt's back to .lp. Make sure that you delete the old .lp files first because the tool is not able to overwrite existing .lp files.

2. If the cars do get underway and don't crash the game but don't behave the way you think you have told them to with the .lp files then perhaps some files were swapped. As you will have seen there are a couple of files that are left-right dependant, so you can begin to try and swap those.

Common issues

Sometimes AI cars will be too fast in slow corners. Dennis figured out how to solve this.

Contributors

Thanks go out to BB&B, Checkpoint10, Dennis, Mistycreek, Nigel Pattinson and Robert Szikszo for their research, .LP editing tools and tutorials.


Written by Tjerk de Heer and the Indycar Racing 2 community. Created: 2008. Latest update: 2025.

Back to top