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!
- 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.
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
"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 |