This car crashes because of wrong values. Sometimes it works, sometimes doesn't, because it tries to access a value using a too huge index and sometimes it gets a trash value, or just crashes because of memory access violation. I've investigated how this index is calculated for the El Nino car:
Code: Select all
x = floor(round(98.79744 * 83.057831) / 256) = 32
This value has to be: 0 <= x <= 40. If this value is bigger than 40, the game uses some garbage instead of a real value and may crash.
As I can see in the NFS Wizard for the El Nino car, 98.79744 is the “Top speed” or “Maximum velocity”. 83.057831 is the last value in the “Velocity to RPM” table. So, if your changed values for your car don't fit this formula, the game still uses some garbage value and may crash.
The game doesn't validate any input values in car files, so you have to be very careful when you're trying to use any unusual value. Just because in this case the game may work differently every time because of using random garbage values from the memory.
It seems, that the game always uses this table of values (with indices 0..40) during gameplay, so I think it uses all values from the “Velocity to RPM”, and you have to ensure that every of these values fit the formula. Otherwise the car will be buggy.
P.S. Once I was lucky and patched version of the game started with your invalid car file. As I had said, it depends only on your luck. It will run when there will be some random data with an invalid address, and it will crash if this address points to nowhere.