I couldn't find any Carbon cars perfomance editing guide so...
It took me ten minutes to find cars' perfomance memory block, 30 minutes to find parameters of a certain car there, and 1 hour to tune car's general perfomance values.
I may write a tutorial which will allow you modify perfomance of any car, but I don't know if anyone is still interessed, this game is getting old already.
This method also works for Undercover
Sorry for bad English if any
Here is a pic of 829 km/h with overcharged Dodge Viper
Perfomance hex-editing experience
Re: Perfomance hex-editing experience
I am Interested!!!
Re: Perfomance hex-editing experience
Might be interesting to play a bit with this. Speak up!
Re: Perfomance hex-editing experience
Okay, I'll post this quick manual. If you'll have questions post them here.
All attached files should work for version 1.2. These are ArtMoney tables but I hope you are alright with it.
We are working with GlobalMemoryFile.bin
All values you need are stored as float (4 bytes)
Part I - Perfomance
Before you start, verify if attached files will work for you. To do this, open GlobalMemoryFile.bin in ArtMoney, then open table with KCCX perfomance. If values you see do match descriptions, you can use provided tables (use table with 'ALL RPM values in range' and skip to step 3).
As you may know, you cannot find car's stats by name in NFSC, so you need to get them yourself.
1.1 Getting values range.
All cars' perfomance stats are stored in a single memory block. What you need to find first is beginning of this memory block and it's ending. You can do this by searching for values that represent RPM. They come in sequence, like this:
They are not always differ by 1000.000, it can be also 400.000 or 600.000.
Car's stats structure looks like this:
Hint for you: To find beginning of the block search for 7900.000, 7500.000 (look for zerofilled space above these numbers), to find the ending look for 7200.000, 6200.000 (notice that struct ends with 800.000 and followed by zeros and meaningless high numbers below). You can also use range from attaced file ().
1.2 Getting values to work with.
So far we have no way to find our car inside this range but to test it ingame. But before this, we need to reduce values count we will work with. To be exact, we should sort out RPM's.
Now that we have values range we can just search through them for hight numbers to get RPM values. Use 'range of values' search in range you got in previous step, search from 3500.000 to 15000.000 and you will get RPM for all cars for sure. For me it was like 262 values (that basically means 131 car huh). Now we are to sort out unneded values. Here is the rules:
1) values always stick together (have offset 4)
2) higher value is followed by lower one
3) all values should be dividable by 100.000 or 50.000
4) values should have no 'floating' part (they are always exact)
After that you shoud have 260 values or less. Save this table. You can also use provided one.
If you got so far without shiznit bricks, you are ready for next step.
1.3 Getting our car
At this step you need to backup your GlobalMemoryFile.bin
We are to change values we got in previous step and see effect ingame. Notice: you must be well-acquaintanced with stats of car you want to modify.
1) Select half of values in table
2) Change them to 15000.000
3) Go into game and look if your car's max rpm has changed
4) If no, go to table and erase values you changed, then go to (1). Otherwise erase values that you didn't change and then go to (1), but this time reduce values to like 3000.000
Repeat until you finally get 2 values.
Now you need to save these addresses so you will not loose them. Restore your GlobalMemoryFile.bin (but do not delete the backup, you may need it sometime).
Now you need to add your car's stats structure to your table. Open memory editor at addresses you saved and add every value from structure they are in (look at car's stats structure example above, also watch for duplicates), I recommend to sort values by address. Now it's time to determine meaning of these values.
This is torque curve (I expect you to know what is this), so this is for car's acceleration.
These values determine the rate at which your car loose speed at dirt, sand and normal track. Setting this to zero will cause car to loose no speed (almost). This also affects acceleraion a bit.
RPM gain/loss rate, just change to see how it works.
RPM absolute max, RPM max. Absolute max is RPM which you can get on last shift. I recommend to leave abs max at (max RPM + 500). Changing max RPM is the only way to increase car's max speed.
Minimum RPM. your RPM will never drop below this number. This affects initial acceleration but can decrease max speed. I recommend to set this to zero or so.
If anyone will succeed with this guide, part 2 will come (handling) which will allow to controll vehicle even on 500+ km/h.
Sorry for bad English if any.
I am from Russia.
All attached files should work for version 1.2. These are ArtMoney tables but I hope you are alright with it.
We are working with GlobalMemoryFile.bin
All values you need are stored as float (4 bytes)
Part I - Perfomance
Before you start, verify if attached files will work for you. To do this, open GlobalMemoryFile.bin in ArtMoney, then open table with KCCX perfomance. If values you see do match descriptions, you can use provided tables (use table with 'ALL RPM values in range' and skip to step 3).
As you may know, you cannot find car's stats by name in NFSC, so you need to get them yourself.
1.1 Getting values range.
All cars' perfomance stats are stored in a single memory block. What you need to find first is beginning of this memory block and it's ending. You can do this by searching for values that represent RPM. They come in sequence, like this:
Code: Select all
0001FE54 7200.000
0001FE58 6200.000
Car's stats structure looks like this:
Code: Select all
Address Value
0001F9E0 0.000
0001F9E4 0.000
0001F9E8 945.000
0001F9EC 1393.000
0001F9F0 1796.000
0001F9F4 1999.000
0001F9F8 2315.000
0001F9FC 2413.000
0001FA00 2314.000
0001FA04 2166.000
0001FA08 2082.000
0001FA0C 1942.000
0001FA10 1723.000
0001FA14 1514.000
0001FA18 0.000
0001FA1C 0.000
0001FA20 0.000
0001FA24 0.400
0001FA28 0.500
0001FA2C 0.600
0001FA30 5.000
0001FA34 17500.000
0001FA38 17000.000
0001FA3C 800.000
1.2 Getting values to work with.
So far we have no way to find our car inside this range but to test it ingame. But before this, we need to reduce values count we will work with. To be exact, we should sort out RPM's.
Now that we have values range we can just search through them for hight numbers to get RPM values. Use 'range of values' search in range you got in previous step, search from 3500.000 to 15000.000 and you will get RPM for all cars for sure. For me it was like 262 values (that basically means 131 car huh). Now we are to sort out unneded values. Here is the rules:
1) values always stick together (have offset 4)
2) higher value is followed by lower one
3) all values should be dividable by 100.000 or 50.000
4) values should have no 'floating' part (they are always exact)
After that you shoud have 260 values or less. Save this table. You can also use provided one.
If you got so far without shiznit bricks, you are ready for next step.
1.3 Getting our car
At this step you need to backup your GlobalMemoryFile.bin
We are to change values we got in previous step and see effect ingame. Notice: you must be well-acquaintanced with stats of car you want to modify.
1) Select half of values in table
2) Change them to 15000.000
3) Go into game and look if your car's max rpm has changed
4) If no, go to table and erase values you changed, then go to (1). Otherwise erase values that you didn't change and then go to (1), but this time reduce values to like 3000.000
Repeat until you finally get 2 values.
Now you need to save these addresses so you will not loose them. Restore your GlobalMemoryFile.bin (but do not delete the backup, you may need it sometime).
Now you need to add your car's stats structure to your table. Open memory editor at addresses you saved and add every value from structure they are in (look at car's stats structure example above, also watch for duplicates), I recommend to sort values by address. Now it's time to determine meaning of these values.
Code: Select all
Address Value
0001F9E8 945.000
0001F9EC 1393.000
0001F9F0 1796.000
0001F9F4 1999.000
0001F9F8 2315.000
0001F9FC 2413.000
0001FA00 2314.000
0001FA04 2166.000
0001FA08 2082.000
0001FA0C 1942.000
0001FA10 1723.000
0001FA14 1514.000
Code: Select all
Address Value
0001FA24 0.400
0001FA28 0.500
0001FA2C 0.600
Code: Select all
Address Value
0001FA30 5.000
Code: Select all
Address Value
0001FA34 17500.000
0001FA38 17000.000
Code: Select all
Address Value
0001FA3C 800.000
If anyone will succeed with this guide, part 2 will come (handling) which will allow to controll vehicle even on 500+ km/h.
Sorry for bad English if any.
I am from Russia.
- Attachments
-
- NFSC perfomance tables.rar
- Perfomance tables
- (2.33 KiB) Downloaded 307 times
Re: Perfomance hex-editing experience
First, your English is fine.
Second, thanks for a very detailed guide and provided resources.
Sadly, looking at this, my impression is that one has to be an advanced coder to pull this off. But I hope that won't stop me from trying. We'll see.
Thanks again!
Second, thanks for a very detailed guide and provided resources.
Sadly, looking at this, my impression is that one has to be an advanced coder to pull this off. But I hope that won't stop me from trying. We'll see.
Thanks again!
-
- Stock
- Posts: 2
- Joined: 17 Nov 2012, 01:08
Re: Perfomance hex-editing experience
I am most interested in this post!
I really want to change the status of performance of some cars! (Viper, SLR, CarreraGT, LP640, Ford GT, M3GTR, LeMans, CCX)
Top Speed, Acceleration, and Handling!
But it is better if you can make a video tutorial on this subject because I do not know how.
Thank you.
I really want to change the status of performance of some cars! (Viper, SLR, CarreraGT, LP640, Ford GT, M3GTR, LeMans, CCX)
Top Speed, Acceleration, and Handling!
But it is better if you can make a video tutorial on this subject because I do not know how.
Thank you.
Re: Perfomance hex-editing experience
what is kccx performance??? and no table opens when i open globalmemoryfile with artmoney...
plz reply
plz reply