Make your own free website on Tripod.com

Tripod ad ^


Converting Evo2 tracks into Evo1 tracks


Preface: These notes were assembled in February during a brief period of experimentation, I'm posting them now without much revision so take them for whatever they're worth, they may not be very clear or complete and they tend to rely on one having some editing experience. At the time mentioned I had tried to get in contact with M.O.B Warrior, since he had already done some converting, but I had no luck. For myself, I had thought to try converting some OOPS and Emceemart tracks, simply because I wanted to see them (I don't own Evo2 and the demo only runs at one frame per second on my computer, not to mention being all dark and messed up anyway). However, the effort of converting or re-creating model positioning was too much work for my liking (it's none too difficult but it's tedious), and so I abandoned the idea.


Comparing evo1 and evo2 track pods I found the only thing truly different aside from the new SMF format (which can be easily converted with Phineusus Smurf) is the "boxes" portion of the .SIT file (every other section of the sit file is Evo1 compatible, in format). This makes a "95%" conversion to evo1 very easy, as all the other track data files seem to be the same format (tex, clr, raw, etc.). Other differences are in the "more" category - AI courses can have more points, more models can be used, more terrain textures can be used, etc. (I don't really know the limits of everything).

Basic Conversion: Create a new folder, extract an evo2 track to it, edit the sit file and change the version number at the very top from 7 to 6 then remove all data from the "boxes" section and replace it with "0" ("zero" indicating no models at all in the track), then save. That's it. Start PODtool and select all the extracted folders, make a pod, mount it in evo1 and it should play, so long as other things are within "limits" (the AI folder may be included if the .TXT files have less than ~1200 points each).

Note on pod creation: pod names must match the .sit file name, if they don't match the track will not be listed in-game. Funny, that.

The "Track Race Type" may need adjusting too. In Evo1 "2" is normal/circuit and "5" is bomb tag. I don't have a chart of existing types yet and evo2 may have introduced some new ones along the way.

Next comes the hard part, the boxes (objects/models) portion of the .SIT file can be reconstructed by copying and pasting values directly from the evo2 .sit into an evo1 .sit, though tedious it will be!


Evo2 to Evo1 box data equivilents:

- name and collisionType are used only in evo2 and so can be ignored.

- The size numbers are relevant only when supplying data for an evo1 collision box. When a collison box is used in Evo1 you see "length,width,height" followed by three numbers in place of "model". It is these numbers that are to be transferred from one sit file to the other. I am unsure of how many decimal places Evo1 takes.

Evo1 collision box example:

length,width,height
35,142,3.5
instead of, as in the above image....
model
MODEL.SMF

- Evo1 has a limit of 600 boxes, Evo2 can use more than 1000, this makes conversion a tricky business. Obviously models must be purged in some cases, if you own Evo2 it would seem a good idea to open a track in TrackEd4 and trim it there before moving down to TrackEd3. Beyond 600, the first models to blindly purge might be the "collision boxes".

- "Environmental Lights" call upon RAW files, if they are used those raw/act pairs may need to be gathered and manually included in the new pod.

- "Course" seems to be the same, though the count may well be greater in evo2. Extended Course Definitions seem to be left blank in Evo2.

- Evo2 sit files have no "track bmp" listed.

- Note on sound effects: you will note there is space for two entries in Evo1 SIT files, the first/top entry is for a collision sound (soundEffectWavName in evo2) and the second/bottom entry is for a continuous sound (continuousWavName in evo2). Use the whole .WAV name without quotes in the evo1 .SIT where appropriate.

- Note the object/model type as identified by the header in the evo2 sit, find the numeric type equivilent on the chart below and insert the appropriate number in the evo1 sit.

- The "box number" (i.e. "box 1 of 355") is important only if there are paths or parent/child relationships established, in such a case maintaining the identifying number is critical, if maintaining that exact number is inconvenient then the numbers need to be edited and updated in all sections of the sit file. This could proove cumbersome for box numbers over 600.

- The train object type has one more line than the evo2 example depicted, that line is shown in pale yellow at the bottom of the above graphic. The train type number is 10.

- The new style smf models need to be converted before use of course.

- Practically speaking, one could open two text editor windows, transferring one sit's data to another, I estimate that at best one could do two models a minute for the simple entries. That works out to more than three hours of work for a track with 400 model entries, since that estimate is very generous the truth is probably closer to double that, and perhaps even longer with complex model relationships or when selective pruning must come into play. In short, this direct conversion process is only for lunatics. ;-) (as is reading and understanding this whole series of notes by me!)

- Wacky idea conceived: a "distributed" track conversion experiment -- task master splits the ready to edit "boxes" data into chunks, say 25 or 50 models per text file chunk, then packages them with a ready to edit "blank" evo1 .sit portion, then posts them at a forum or in e-mail, for individual volunteers to handle "by the chunk". Afterward, task master collects the tediously converted bits and assembles the complete sit file for the final track.



Appendix/Appendices/Apileof

Object/Model types chart for Evo and MTM2

.SIT entry example:
!type,flags
1,0

type / name equivilents

0 = collide / default
1 = sign
2 = barricade
3 = Tree (not used -- MTM2 only)
4 = cone
5 = Vehicle (not used -- MTM2 only?)
6 = checkpoint (non-collide)
7 = non collide
8 = non collide facing
9 = collide facing (not used -- MTM2 only)
10 = train / moving
11 = Checkpoint post (not used) ("invisible post" in MTM2)
12 = tree3 (ramp** in MTM2)
13 = flying object/model (top-crush** in MTM2)
14 = treasure (doesn't exist in MTM2)

Tree2 (not used)

** ramps and top-crush are not listed as "boxes" in the .SIT so the type number should be irrelevant.


Evo2 box type listing:

     // boxTypeList
     15
     CVehicle
     CBox
     CLinkableBox
     CCollide
7    CNonCollide       
8    CNonCollideFacing 
0    CCollisionBox     
6    CCheckpoint       
13   CFlyingObject     
0    CTreasure         
     CGroundBox
7    CTree             
10   CTrain            
     CTriggerBox
     CTreeCollisionBox

Use appropriate number. Use zero for the rest if necessary.


"box" entries in .sit files:

Evo1:

Box 1 of 20 ----------
wPos
6127.24,101,3527.13
wOrient
0,0,0
model
MODEL.SMF
mass
0
bvel
0,0,0
p,q,r
0,0,0
!type,flags
4,0
priority
0
@sound effect entries
IMPACT.WAV

#parent
0
$timePerFrame
0.0333333
%castShadowOnMe
0
Evo2:

{ 1 CCollide
	""    // name
	"MODEL.SMF"    // staticName
	69.4848,63.6207,317.645    // size
	3775.25,248.5,3202.71    // wPos
	0,0,0    // wOrient
	0    // mass
	0    // priority
	"IMPACT.WAV"    // soundEffectWavName
	""    // continuousWavName
	0    // parent
	0.0333333    // timePerFrame
	1    // castShadowOnMe
	1    // collisionType
} CCollide
MTM2:

ipos
4575.468750,129.029297,5109.246094
theta,phi,psi
0.000000,0.000000,0.002493
model
AK8PINED.BIN
mass
0.000000
bvel
0.000000,0.000000,0.000000
p,q,r
0.000000,0.000000,0.000000
!type,flags
8,0
priority
2
@sound effect entries
NULL.WAV
NULL.WAV
0,0

MTM1:

ipos
2145.441406,261.996094,3373.988281
theta,phi,psi
0.000000,0.000000,-3.360856
model
14MLOG.BIN
mass
15.540499
bvel
0.000000,0.000000,0.000000
p,q,r
0.000000,0.000000,0.000000
!type,flags
4,1
priority
1
@sound effect entries
NULL.WAV
NULL.WAV
0,0