Forums

Full Version: Magic addresses
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
(04-28-2022, 01:10 AM)checkpoint10 Wrote: [ -> ]I just picked up Cheat Engine again and did a quick scan to see if it is possible to get the car position. So far I barely know what I am doing, but I have found a couple of memory addresses that change when the car moves:

023EF7F8, 023EF80C = DLONG

Edit: I couldn't find those values again using the same addresses in a different session of Windy. I will need to learn more about this but at least I know it should be possible to get DLONG from memory somehow.

I'm scratching my head, thinking about what clever idea you have up your sleeve here....
(04-28-2022, 04:19 AM)samsepi0l Wrote: [ -> ]
(04-28-2022, 01:10 AM)checkpoint10 Wrote: [ -> ]I just picked up Cheat Engine again and did a quick scan to see if it is possible to get the car position. So far I barely know what I am doing, but I have found a couple of memory addresses that change when the car moves:

023EF7F8, 023EF80C = DLONG

Edit: I couldn't find those values again using the same addresses in a different session of Windy. I will need to learn more about this but at least I know it should be possible to get DLONG from memory somehow.

I'm scratching my head, thinking about what clever idea you have up your sleeve here....

Just following up on my comment in the other thread about possibly using Cheat Engine to get car position and then maybe put that through a separate graphics engine: https://www.icr2.net/forum/showthread.ph...5#pid12405
I was looking into how the track 3do data is recorded in memory and did a quick search/replace of my concrete wall heights from 21000 to 100000. The result is funny but it also means it is possible to change the 3d model after it is loaded and possibly in real time as well.

[attachment=2099]
(05-01-2022, 10:55 AM)checkpoint10 Wrote: [ -> ]I was looking into how the track 3do data is recorded in memory and did a quick search/replace of my concrete wall heights from 21000 to 100000. The result is funny but it also means it is possible to change the 3d model after it is loaded and possibly in real time as well.

Wait what....?  Grin3
(05-01-2022, 10:55 AM)checkpoint10 Wrote: [ -> ]....The result is funny but it also means it is possible to change the 3d model after it is loaded and possibly in real time as well.

(05-02-2022, 01:51 AM)Wolf_pd Wrote: [ -> ]Wait what....?  Grin3

https://www.essentiallysports.com/greate...all-moved/
I found a video tutorial of how to read and write memory in Python - using Cheat Engine to help find the address initially - but ultimately there are Python modules that can read/write memory directly without Cheat Engine: https://youtu.be/x4WE3mSJoRA

I still have a lot to learn even about the basic principles of Cheat Engine and concepts like pointers. But maybe someday I have time to learn about this and write some Python scripts that might do the following:

- read and record the player's position in real time (this would open up all kinds of possibilities including having a totally separate 3D rendered scene using the position data)
- continually change the location or rotation of an object to animate it
- change the car's performance with certain key strokes (how about a push to pass button?)
I did a little work looking into the 004F3AE2 address which controls engine power, and by using Cheat Engine to trace what writes to this address, I found two bytes in the windy.exe file which represents the minimum power output when the boost knob is at 1. The range between the minimum and maximum power seems to be hard coded as well (I have not found this yet), so that if you reduce the minimum power then the maximum power is also reduced correspondingly. However, this value is not used until you actually change the knob - the car starts with the default max power.

The reason I'm looking for hard coded values in windy.exe is that an exe "patch" would be a much more user-friendly way to mod the game. Also, I am hoping it would not be too challenging to find similar code in the DOS exe file once we figure out Windy.
(07-21-2022, 10:04 AM)checkpoint10 Wrote: [ -> ]- read and record the player's position in real time (this would open up all kinds of possibilities including having a totally separate 3D rendered scene using the position data)

hmmm..... maybe a better more accurate way than TRAFO?
Excited to report that I found the values in windy.exe that affect engine power.

DD2DC = Default boost knob position (should be 9)
DD2E0 = Default power
DD2E2 = Default power (same as above)
6A937 = Minimum power

If you want to make the car slower, you make the minimum power what you want (between 0 and 49151) and then add 16384 to get the default power. The default power is basically your max power, if you keep the default knob at 9.

It does have a problem where you will not achieve full boost (so I think maybe these values have more to do with the amount of boost - maybe it's more of a boost factor). But ignoring that, you can now emulate slower Indy cars or Indy Lights or whatever, all without having to use Cheat Engine. Unfortunately you won't be able to make the car faster with this method - the default car has maximum power of 65535.

I am thinking maybe I can make a game launcher that can make that patch and then run the game.
Interesting...
Does this only work for player's car or has impact on AI too? Or Ai power is what we see in Driver.txt?
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26