Need For Speed: Shift 2 Unleashed v1.0.2; Exlpaining my cheat table of Cheat Engine

in #gaming5 years ago

¡Hello, steemians!
The post of tody is about an explanation of featured cheats we can use for Need For Speed: Shift 2 Unleashed v1.0.2, using the program Cheat Engine.

The cheat table looks like this:

The green ones are the less featured ones. those which are above are just information about selected car, EXP points (useful for drift races) and the selected track which you can change, although sometimes the result can become buggy.

The ones marked with violet are the main options for select before playing. You can choose any quantity of opponents. Also choose the circuit you want, but in race mode if you choose a circuit from drift mode, the game may crash.
Here's a fun cheat to chose the time of day. If you choose "Night" in the game, but you put "1" as value (Day), you will play at night but with a blackout in the scenario.

The last one is to set if the weather can be cloudy. Put "1" if yes, and otherwise, "0".

One of the main scripts I use in racing are the three ones which are in red:

The first one is a switch for activate/deactivate the A.I. mode. This script has an essencial part I found accidentally, which you will see when I show you all the skeleton of this script:
An assembly script has tho parts. The ENABLE part & the DISABLE part.

Each one with a quantity of original instructions modified with a memory allocation method:

First we create a memory region allocable with a size of 2048 bytes. In assembly, that's translated as alloc(newmem,2048). That means that we will call that region allocated, "newmem".
Then we need parts, in where we need to define the code to modify, the exit and the return to original region to follow executing instructions.
originalcode is the part in where we put the instructions to be modified.
exit is where we will return to original region executing instructions (in assembly that means jmp returnhere)
And below, we define from where this such newmem and this assembly script begin, so the script can work at the correct way.

Well, now we understand some basics of Cheat Engine autoassembler, let me show you the original codes I can modify for the A.I. switch:
This is the DISABLE part:

Let me explain this with these words only for let you understand how it works.

The 1st. instruction set is a comparison. If the value of [esi+2F1] is 00 (byte), then the execution jumps into the skip of A.I. activation. When you begin some race like Dakota Tri-Oval, the value of that address is 1 for the first seconds (before the countdown). & after that, it returns 0. So the A.I. is skipped & you must drive manually.

The 2nd. instruction set is almost the same. It's another 'switch' like the 1st. one. It compares the value of register eax with the value of address [edx+000005CC]. If it's less, then jumps in another switch which directly disables A.I. for player one.

The 3rd. & 4th. instruction sets are the most simple ones (& also the ones which I found their working by accident =D ). They keeps the A.I. off with the instrucion push 00.

Now let's see the ENABLE part. In there I will explain what I modified to let this script to work:

What I modified on the 1st. instruction set is the value of address which will be compared. & it's 02. So, the A.I. is not deactivated if the value of address of [esi+2F1] is 00.

In 2nd. instruction set I only modified the parameter shift2u.MWL::Core::CarPhysicsDetails::LoadHRDF+E87A of instruction jl (jump if less) into shift2u.MWL::Core::CarPhysicsDetails::LoadHRDF+E8F4, so the A.I. can't be deactivated in that way for player 1.

And as for 3rd. & 4th. instruction sets, it was all about changing the value from 00 to 02, so the repeated instructions push 02 keep the A.I. on.

Now let me explain the DISABLE and ENABLE part of the assembly script "Superspeed (hold "LShift" for super-turbo; "Num." to brake opponents)". It has more hotkeys than the explained ones in cheat description:

The 1st. instruction set has implicital instructions related with pressed keys & player identifiers, in where the register eax will be used in the ENABLE part.

The 2nd. instruction set is a multiplier of speed/gear/acceleration set of all cars. It multiplies by numbers less than 1.

The 3rd. instruction set defines the acceleration of car, independently of max. speed & other stuff.

Now let's see the ENABLE part, & prepare to see many comlpex modifications =O

On 1st. instruction set. I used the register eax to build a player differencer with the unused static address [shift2u.exe+B00000] as the address which will a unique identifier for player 1. Also I could prepare all the hotkeys for the next instructions ;). The hotkeys will be defined in the static addresses [shift2u.exe+B00004], [shift2u.exe+B00008] & [shift2u.exe+B0000C] & [shift2u.exe+B00010]. I mean, there will be 4 hotkeys for this script.

From 2nd. instruction set, there's an auxiliar instruction which fixes the posibility to let the game's crash. & that's the comparison cmp ebx,[shift2u.exe+B00000]. If they get the overflow flag, it returns to the originalcode part, in where the normal instructions execute, otherwise if they're equal, we would talking about player 1. In that case, if the "Up" key is pressed, the multiplier of acceleration/speed by less than 1, becomes a sum. That means, the speed/acceleration set will be exponentially powerful with at least 2 or, if possible, 3 gears =O. Now, if [shift2u.exe+B00000] is prepared but its value is not equal to ebx, then the executions will compare the value of address [shift2u.exe+B0000C] with 00. that means, now that assembly is interacting with opponent cars data, it's checking if the numeric dot key "num." is pressed. If yes, then all opponents will brake sudenly thru the instrucion fsub dword ptr [esi+0C], which means that their speed/acceleration will REVERSE instead of multiply normally =o.

Now, what's next for 3rd. instruction set is the hotkeys for shuttle our car suddenly (warning, because if you use it near curves or something like that, you can lose handling instantly). For that, there're two hotkeys for that.
One is "LeftShift" key, in which you will multiply your acceleration exponentially hard. It's useful in Nordschleife track:

The other one is pressing "Z" key, where you multilpy the acceleration softly. Most useful if you're driving with A.I. and you're losing 1st. place slowly.

The last script only activates/deactivates the scores when you're on A.I. mode.

And the last cheat I want to show, is an almost-completed cheatgroup called "Weather config.:" in where you can modify all the colors and visibility of fog, ambient light, sky texture, outside & inside the car, brightnesses, shadows, etc. both for day/dusk & night.

Download link of cheat table (open with Cheat Engine):
http://www.mediafire.com/file/180ahj5o5x3c5uw/Need_for_Speed_Shift_2_Unleashed_%2528v_1.0.2%2529.CT

Sort:  

This post was resteemed by @steemvote and received a 99.14% Upvote. Send 0.5 SBD or STEEM to @steemvote

Coin Marketplace

STEEM 0.17
TRX 0.16
JST 0.029
BTC 74021.49
ETH 2621.74
USDT 1.00
SBD 2.42