TSH File Tuning Guide


Intro:

The reason you're reading this is probably to understand how to make multi-colors and other texture related things happen for an add-on vehicle for Midtown Madness: Chicago Edition. I know it's hard to tune this stuff so this tutorial should help you understand some of the parameters. Most of the info in this tutorial were taken from None-1a's tuning tutorial (He took it off the web and he dissappered somewhere. Luckly, I printed the stuff out) and some info are from asking the experts. And this is for the TSH file, so it won't tell you how to do a lot of other stuff.


Contents:
Overview
Exporting
Order
Color Setup
Software Render
Night Textures
Finishing

Overview:

Double click on your vp***.tsh file that's located in the SHOP\MTL folder of your VCK. If it asks you for what program to use, I recommend setting it to Notepad since I find it easily accessible and fast loading. It should look similar to what I have below except there will usually be a dark rectangle at teh end of each line. I will be using my Sable's TSH file for this tutorial.

name,neighborhood,h,m,l,flags,alternate,sibling,xres,yres,hexdaycolor,hexnightcolor
FXLTGLOW,ms,0,0,1,gt,,,0,0,00000000,00000000
FXLTGLOWRED,ms,0,0,1,gt,,,0,0,00000000,00000000
QWERTY_WHLB,ms,1,1,2,,,,0,0,00000000,00000000
QWERTY_WHLT,ms,1,1,2,,,,0,0,00000000,00000000
VP95SABLE_WHL,ms,0,1,1,,,,0,0,00000000,00000000
VPFSHDW,ms,0,0,0,t,,,0,0,00000000,00000000
VP95SABLELIGHTS,ms,0,1,1,tnd,VP95SABLELIGHTS_N,,0,0,00000000,00000000
VP95SABLELIGHTS_N,ms,1,1,2,tnd,,,0,0,00000000,00000000
VP95SABLELIGHTS_N_DMG,ms,1,1,2,tnd,,,0,0,00000000,00000000
VP95SABLE_BOTTOM,ms,1,1,2,d,,,0,0,00000000,00000000
VP95SABLEW_BK,msw,0,1,1,u,,,0,0,00000000,00000000
VP95SABLEW_BK_DMG,msw,0,1,2,du,,,0,0,00000000,00000000
VP95SABLEW_FT,msw,0,1,1,,,,0,0,00000000,00000000
VP95SABLEW_FT_DMG,msw,1,2,3,d,,,0,0,00000000,00000000
VP95SABLEW_SD,msw,0,1,1,,,,0,0,00000000,00000000
VP95SABLEW_SD_DMG,msw,1,2,3,d,,,0,0,00000000,00000000
VP95SABLEW_TP,msw,1,1,2,,,,0,0,00000000,00000000
VP95SABLEW_TP_DMG,msw,1,1,2,d,,,0,0,00000000,00000000
VP95SABLE_BK,msg,0,1,1,u,,VP95SABLER_BK,0,0,00000000,00000000
VP95SABLE_BK_DMG,msg,0,1,2,du,,VP95SABLER_BK_DMG,0,0,00000000,00000000
VP95SABLE_FT,msg,0,1,1,,,VP95SABLER_FT,0,0,00000000,00000000
VP95SABLE_FT_DMG,msg,1,2,3,d,,VP95SABLER_FT_DMG,0,0,00000000,00000000
VP95SABLE_SD,msg,0,1,1,,,VP95SABLER_SD,0,0,00000000,00000000
VP95SABLE_SD_DMG,msg,0,1,2,d,,VP95SABLER_SD_DMG,0,0,00000000,00000000
VP95SABLE_TP,msg,1,1,2,,,VP95SABLER_TP,0,0,00000000,00000000
VP95SABLE_TP_DMG,msg,1,1,2,d,,VP95SABLER_TP_DMG,0,0,00000000,00000000
VP95SABLER_BK,msr,0,1,1,u,,VP95SABLEW_BK,0,0,00000000,00000000
VP95SABLER_BK_DMG,msr,0,1,2,du,,VP95SABLEW_BK_DMG,0,0,00000000,00000000
VP95SABLER_FT,msr,0,1,1,,,VP95SABLEW_FT,0,0,00000000,00000000
VP95SABLER_FT_DMG,msr,1,2,3,d,,VP95SABLEW_FT_DMG,0,0,00000000,00000000
VP95SABLER_SD,msr,0,1,1,,,VP95SABLEW_SD,0,0,00000000,00000000
VP95SABLER_SD_DMG,msr,1,2,3,d,,VP95SABLEW_SD_DMG,0,0,00000000,00000000
VP95SABLER_TP,msr,1,1,2,,,VP95SABLEW_TP,0,0,00000000,00000000
VP95SABLER_TP_DMG,msr,1,1,2,d,,VP95SABLEW_TP_DMG,0,0,00000000,00000000
VP95SABLE_DASHL,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHM,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHR,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHWHL,ms,0,0,0,t,,,0,0,00000000,00000000
VP95SABLE_SNEEDLE,ms,0,0,0,t,,,0,0,00000000,00000000

I recommend you make different files for different colors. Like, I have the green textures applied to car originally. I save that file as "Sable_Green." Then, I swap the green textures for the red set and save the file as "Sable_Red." Last, I swap the red set for the white set and save it as "Sable_White." When you're ready to export a color, save one of the files as vp*** and use it as a dummy file. The VCK will only let you export one name for all the colors so you save the color you want to export as vp*** and export that. For example, I save "Sable_White" as "vp95sable" and export that. Then after checking the boxes, I want to export the red color set. So, I open "Sable_Red" and save it as "vp95sable" like before and export. And same with the last color. This saves a lot of time when you're exporting. That way, you don't have to swap the colors in the Material Editor everytime you want to export. You just open the file with the color you want and export that file.

Top

Exporting:

Ok, now it's time to export. When you export, you have to export them in the reverse order that they show up in the selection screen. Confused? Well, here's an example.

The colors for the Sable show up in game in this order: Green, Red, and White.
The colors for the Sable were exported in this order: White, Red, and Green.
"It has nothing to do with the order you put the colors in the info file or the order
they show up in the TSH." - TEK_Xatco

You should have gotten some windows with checkboxes. These will determine the quality of your texture. It's self explanatory so it's your own judgement call. After you've exported everything, the VCK should have made the TSH file for you in the SHOP\MTL folder. It should be named vp***.tsh. In my case with the Sable, I'll have a file named "vp95sable.tsh" (usually the same name as the file used for exporting).

Top

Order:

Ok, now you open up your TSH file in the SHOP\MTL folder. In my case, it'd be "vp95sable.tsh" (Global.tsh is a dummy file and is just there so the VCK can work with the software render textures). First thing you will notice is that it's in alphabetical order. We want to group the stuff together. So, it's a lot of cutting and pasting.

*** DO NOT BREAK UP THE LINES ***

That little rectangle at the end of the line has to stay there. It means a line break (imagine if you hit the "ENTER" button and it displayed a character; that rectangle would be that character). Ok, now leave the first line alone (name, neighborhood, etc.). That's just there. Start with the second line. You want to group things together. The first group consists of "shared" textures. These are the textures that don't change with colors (for example: wheels and lights). In the case of my Sable, I've grouped the lights, shadows, wheels, and bottom textures together.

FXLTGLOW,ms,0,0,1,gt,,,0,0,00000000,00000000
FXLTGLOWRED,ms,0,0,1,gt,,,0,0,00000000,00000000
QWERTY_WHLB,ms,1,1,2,,,,0,0,00000000,00000000
QWERTY_WHLT,ms,1,1,2,,,,0,0,00000000,00000000
VP95SABLE_WHL,ms,0,1,1,,,,0,0,00000000,00000000
VPFSHDW,ms,0,0,0,t,,,0,0,00000000,00000000
VP95SABLELIGHTS,ms,0,1,1,tnd,VP95SABLELIGHTS_N,,0,0,00000000,00000000
VP95SABLELIGHTS_N,ms,1,1,2,tnd,,,0,0,00000000,00000000
VP95SABLELIGHTS_N_DMG,ms,1,1,2,tnd,,,0,0,00000000,00000000
VP95SABLE_BOTTOM,ms,1,1,2,d,,,0,0,00000000,00000000

Ok, now the next set of textures should be the last color that shows up in the game. The Sable shows up in the game in this order: Green, Red, and White. So, the last color set would be white. So, that's the first color set after the shared textures in the TSH file. It would then be followed by the first color in the game (in this case, it'd be green) and then followed by the same order as in-game except for the last color (white). Here's an example:


VP95SABLEW_BK,msw,0,1,1,u,,,0,0,00000000,00000000
VP95SABLEW_BK_DMG,msw,0,1,2,du,,,0,0,00000000,00000000
VP95SABLEW_FT,msw,0,1,1,,,,0,0,00000000,00000000
VP95SABLEW_FT_DMG,msw,1,2,3,d,,,0,0,00000000,00000000
VP95SABLEW_SD,msw,0,1,1,,,,0,0,00000000,00000000
VP95SABLEW_SD_DMG,msw,1,2,3,d,,,0,0,00000000,00000000
VP95SABLEW_TP,msw,1,1,2,,,,0,0,00000000,00000000
VP95SABLEW_TP_DMG,msw,1,1,2,d,,,0,0,00000000,00000000
VP95SABLE_BK,msg,0,1,1,u,,VP95SABLER_BK,0,0,00000000,00000000
VP95SABLE_BK_DMG,msg,0,1,2,du,,VP95SABLER_BK_DMG,0,0,00000000,00000000
VP95SABLE_FT,msg,0,1,1,,,VP95SABLER_FT,0,0,00000000,00000000
VP95SABLE_FT_DMG,msg,1,2,3,d,,VP95SABLER_FT_DMG,0,0,00000000,00000000
VP95SABLE_SD,msg,0,1,1,,,VP95SABLER_SD,0,0,00000000,00000000
VP95SABLE_SD_DMG,msg,0,1,2,d,,VP95SABLER_SD_DMG,0,0,00000000,00000000
VP95SABLE_TP,msg,1,1,2,,,VP95SABLER_TP,0,0,00000000,00000000
VP95SABLE_TP_DMG,msg,1,1,2,d,,VP95SABLER_TP_DMG,0,0,00000000,00000000
VP95SABLER_BK,msr,0,1,1,u,,VP95SABLEW_BK,0,0,00000000,00000000
VP95SABLER_BK_DMG,msr,0,1,2,du,,VP95SABLEW_BK_DMG,0,0,00000000,00000000
VP95SABLER_FT,msr,0,1,1,,,VP95SABLEW_FT,0,0,00000000,00000000
VP95SABLER_FT_DMG,msr,1,2,3,d,,VP95SABLEW_FT_DMG,0,0,00000000,00000000
VP95SABLER_SD,msr,0,1,1,,,VP95SABLEW_SD,0,0,00000000,00000000
VP95SABLER_SD_DMG,msr,1,2,3,d,,VP95SABLEW_SD_DMG,0,0,00000000,00000000
VP95SABLER_TP,msr,1,1,2,,,VP95SABLEW_TP,0,0,00000000,00000000
VP95SABLER_TP_DMG,msr,1,1,2,d,,VP95SABLEW_TP_DMG,0,0,00000000,00000000

After the colors, it's the dash textures (if you have any). You don't need the G_N texture for this. You will need the dash, wheel and needle textures. Here's an example:

VP95SABLE_DASHL,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHM,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHR,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHWHL,ms,0,0,0,t,,,0,0,00000000,00000000
VP95SABLE_SNEEDLE,ms,0,0,0,t,,,0,0,00000000,00000000

Top

Color Setup:

Now it's time to go in-depth with the colors. I will now refer to the colors to the way they show up in the game. The last color (white) has nothing for it's sibling value. The first color (green) has the second color (red) for it's sibling value. The commas divide the values. The sibling value is after the 7th comma. It's better with a visual, so here's a visual:


VP95SABLEW_BK,msw,0,1,1,u,,,0,0,00000000,00000000
VP95SABLEW_BK_DMG,msw,0,1,2,du,,,0,0,00000000,00000000
VP95SABLEW_FT,msw,0,1,1,,,,0,0,00000000,00000000
VP95SABLEW_FT_DMG,msw,1,2,3,d,,,0,0,00000000,00000000
VP95SABLEW_SD,msw,0,1,1,,,,0,0,00000000,00000000
VP95SABLEW_SD_DMG,msw,1,2,3,d,,,0,0,00000000,00000000
VP95SABLEW_TP,msw,1,1,2,,,,0,0,00000000,00000000
VP95SABLEW_TP_DMG,msw,1,1,2,d,,,0,0,00000000,00000000
VP95SABLE_BK,msg,0,1,1,u,,VP95SABLER_BK,0,0,00000000,00000000
VP95SABLE_BK_DMG,msg,0,1,2,du,,VP95SABLER_BK_DMG,0,0,00000000,00000000
VP95SABLE_FT,msg,0,1,1,,,VP95SABLER_FT,0,0,00000000,00000000
VP95SABLE_FT_DMG,msg,1,2,3,d,,VP95SABLER_FT_DMG,0,0,00000000,00000000
VP95SABLE_SD,msg,0,1,1,,,VP95SABLER_SD,0,0,00000000,00000000
VP95SABLE_SD_DMG,msg,0,1,2,d,,VP95SABLER_SD_DMG,0,0,00000000,00000000
VP95SABLE_TP,msg,1,1,2,,,VP95SABLER_TP,0,0,00000000,00000000
VP95SABLE_TP_DMG,msg,1,1,2,d,,VP95SABLER_TP_DMG,0,0,00000000,00000000
VP95SABLER_BK,msr,0,1,1,u,,VP95SABLEW_BK,0,0,00000000,00000000
VP95SABLER_BK_DMG,msr,0,1,2,du,,VP95SABLEW_BK_DMG,0,0,00000000,00000000
VP95SABLER_FT,msr,0,1,1,,,VP95SABLEW_FT,0,0,00000000,00000000
VP95SABLER_FT_DMG,msr,1,2,3,d,,VP95SABLEW_FT_DMG,0,0,00000000,00000000
VP95SABLER_SD,msr,0,1,1,,,VP95SABLEW_SD,0,0,00000000,00000000
VP95SABLER_SD_DMG,msr,1,2,3,d,,VP95SABLEW_SD_DMG,0,0,00000000,00000000
VP95SABLER_TP,msr,1,1,2,,,VP95SABLEW_TP,0,0,00000000,00000000
VP95SABLER_TP_DMG,msr,1,1,2,d,,VP95SABLEW_TP_DMG,0,0,00000000,00000000

Top

Software Render Textures:

Most people don't run the game in software render anymore because of the higher end systems on the market today. But there are a few people who can't afford or don't want to upgrade their system. So, that's why I usually include Software Render textures. What we need to do here is to give the textures a two- or three-letter neighborhood value. This is after the first comma in a line. I usually use the initials of the car's name for the first two letters. So, becasue this is a Mercury Sable, I used the initials "MS" for the neighborhood value. This goes on the neighborhood vlaues for all the textures in the file. But, the individual colors need to have a special three-letter value. So, I use the first letter of the name of the color. For example, the green textures get "MSG" and the red textures get "MSR" and the white textures get "MSW" (not too confusing, I hope). Here's a condensed version of the Sable's TSH file for an example:

FXLTGLOWRED,ms,0,0,1,gt,,,0,0,00000000,00000000
QWERTY_WHLB,ms,1,1,2,,,,0,0,00000000,00000000
QWERTY_WHLT,ms,1,1,2,,,,0,0,00000000,00000000
VPFSHDW,ms,0,0,0,t,,,0,0,00000000,00000000
VP95SABLEW_TP,msw,1,1,2,,,,0,0,00000000,00000000
VP95SABLEW_TP_DMG,msw,1,1,2,d,,,0,0,00000000,00000000
VP95SABLE_BK,msg,0,1,1,u,,VP95SABLER_BK,0,0,00000000,00000000
VP95SABLE_BK_DMG,msg,0,1,2,du,,VP95SABLER_BK_DMG,0,0,00000000,00000000
VP95SABLER_TP,msr,1,1,2,,,VP95SABLEW_TP,0,0,00000000,00000000
VP95SABLER_TP_DMG,msr,1,1,2,d,,VP95SABLEW_TP_DMG,0,0,00000000,00000000
VP95SABLE_DASHL,ms,0,0,0,,,,0,0,00000000,00000000
VP95SABLE_DASHM,ms,0,0,0,,,,0,0,00000000,00000000

***Remember to save the TSH file and make a back-up copy before you run MAKEPAL.bat in the ANGEL folder to make the Software Render textures.***

Top

Night Textures:

The following piece of text was copied from someone at the BOX Desgins Forums. I can't remember who wrote it, but they were explaining how to make night textures. Please disregard step 8. That step won't work. You need to go into the TSH file and edit it manually. I'll show you how after the steps.

Well night textures are easy here is what you do.

1) Make your textures, I would take the in game glow and apply that to a flat square shape as it is on the red rocket.

2) Line it up how you want it to look on the car.

3) Name the texture that has your desired night textures vpblahlights-n

4) Make another sheet the same size and call it vpblahlights this will be the day time texture it should be 100% transparent so its not seen.

5) Now when you got the light lined up like you want it and the two textures loaded into the material editor swap them. Where you now have the night texture put the day texture which will be the invisible one, you have to do this because night textures show during the day but day textures dont show during the night

6) Next make a 2 poly flat square or what not and to one triangle apply the day texture and to one the night, put that somewhere inside the car so that its not seen, you can have it facing towards the ground even and make it small, but thats optional.

7) Now you got your car with the lights which should be attached to the vehicle and the little "texture holder" box as I call it on the inside also attached to the car, or grouped whatever you like.

Export the car, when the box pops up for the texture properties make both of the new light textures dull/damaged and unlit, dont make them alpha glow.

8) Now go to the VCK folder after you got it all exported and run texgen in the angel folder it will make sure the tsh correctly puts together the night textures.
See Steps Below Table.

9) Ship the car and enjoy your night textures

Good Luck.

In the case of the Sable, I have a damage texture, but it's not needed for night texture to work well. If you want night damage textures, make a transparent sheet the same size as the night texture and name it vp***_n_dmg and add it to the "texture holder." All you have to do for step 8 is put the night texture's entry into the Alternate Value. This is after the 6th comma. See the example below:

VP95SABLELIGHTS,ms,0,1,1,tnd,VP95SABLELIGHTS_N,,0,0,00000000,00000000
VP95SABLELIGHTS_N,ms,1,1,2,tnd,,,0,0,00000000,00000000
VP95SABLELIGHTS_N_DMG,ms,1,1,2,tnd,,,0,0,00000000,00000000

Top

Finishing:

Ok, now save the file and make a back-up somewhere. If you have Software Render textures, go to the ANGEL folder and run MAKEPAL.bat. You'll need to edit the INFO tuning file. All you're worried about are the colors right now. So, just put in the name of the colors separted (without spaces) with the vertical line character (Shift + \). Here's the INFO file from the Sable for an example:

BaseName=vp95sable
Description='95 Mercury Sable
Colors=Green|Red|White
Flags=0
Order=-1
ScoringBias=5.0
UnlockScore=0
UnlockFlags=0
Horsepower=140
Top Speed=132
Durability=950000	
Mass=3700

If you don't want to make Software Render textures, just ship it like you regularly would and go edit the shiplist and all that fun stuff. Your car should show up in the selection screen with the correct textures. Go through the menu and see if the colors are right. Hit "D" on the keyboard to see the damage textures and check if those are right. Here's a small FAQ that I got off None-1a's multi-color tutorial. He's been gone for a while and I don't remember if his site's still up, but luckily, I printed out a lot of info.

Q: Why are the Colors backwards in the selection screen and how can I fix them?
A: Answer the VCK is picky about the order of the textures in the tsh file. The easiest way to correct the problem is to simply reorder the selection colors in the info file. For example if the game was displaying the Yellow color when Rocket Red was selecting simply put Flame Yellow in that spot in the info file.

Q: Why does makepal keep crashing on me?
A: Your tsh file may have blank lines in it some where, delete these until you can only move to the end of the last entry.

Q: After running makepal.bat it says about not being able to find global.tsh, why?
A: The global.tsh file is a dummy file that has no real use, if you run ship,bat this file will be deleted. However makepal does use this file (also for no apparent reason). I've found that you can delete the lines in makepal.bat that calls todss on the global.tsh file for no ill effects. Note some times it will run just fine even with out this file.

Q: Why does the game crash every time I select one color?
A: The textures are not in order in the tsh file. Again the VCK is pick about the order of this file. The first thing in the list should be all of the shadow and light textures, followed by one complete texture set, next should be the wheel textures, followed by the next complete color set. If this is out of order the game will crash. If the tsh files order is correct try reexporting the files from max in a different order and things should work correctly (run clean.bat first to get rid of the shop files contents).

Q: Why does the car show up as odd colors in Software render?
A: You've left out the neighborhoods from the tsh file, or your neighborhoods are conflicting with another car. Change or put these into the tsh file and try it again.

Q: How many colors can each car have?
A: Cars can have around 6 colors with no problems, however the more colors you have the larger the ar file will be. You should limit yourself to just the more popular colors for your car to help keep the download and install size lower (5 or six cars with 6 colors of high res textures will take up quite a bit of hard drive space).

I hope this tutorial was helpful. Thanks for reading. Any questions? Please make a topic at the BOX Desgins Forums.

Top

Copyright © 2003 by Qwerty_86