Race Game Display - Help Needed

Frankmd

New member
A while ago I saw some pictures of people having an LCD screen connected to their PC showing all kinds of handy stuff. I was pretty impressed, even more when I read it was possible to display UT/Q3 information on it. The only problem was that I'm not really into FPS-games, more into race games. I though "wouldn't it be cool to have an LCD screen displaying information like speed/gears/RPM ect?". So here's what I got so far:

I've written a little program that get's the speed/gears/RPM data from the Colin McRae 3.0 demo and writes it to a .txt file. After that it's a piece of cake to get any LCD program to read it up and put it on the LCD screen. At the moment I'm using Smartie (this might be unknown for you, but the point is that you let your program read up the file). If you use a program that doesn't support reading up a file, get smartie here:

http://backupteam.gamepoint.net/smartie/

Ok, so here comes the problem: I don't own an LCD myself :eek:. So I'm looking for some people wanting to help me out on this.

First, download the program: http://racedriverhq.m4driving.sm/upload/reader.zip
IT'S A USE AT OWN RISK PROGRAM, so if you don't trust it, don't use it!

Second, download the CMR 3.0 demo:
http://www.gamershell.com/download_2356.shtml
DON'T PATCH THE DEMO, IT WILL ONLY WORK WITH THE ORIGINAL DEMO

Then run the program reader.exe. You can leave everything on the default.

Let smartie/your program read up the first line from the .txt file. The filename is C:\file.txt.

Then run the CMR 3.0 demo and check your lcd, if everything works you should be able to read your speed on your LCD. For the gears let Smartie/your program print line 2, for the RPM let it print line 3.

I only need someone to tell me if it works and if yes, how fast it works. I don't really mind some lag on the RPM value, but speed and gears should work without 2 seconds lag :) If it works I will order my own LCD so I can test everything out myself.

btw> I'm not really a fan of CMR3.0, but I just choose it because it's so easy to read up the values from the memory.
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
 
Last edited:

CF Mark

Administrator
Hi...

If you can give me the information needed to get the data from CMR3 Demo (eg, what your app does), ill write support directly into CrystalControl C1 and later V2.

The same applies to other games.... if anyone has god programming info on how to get data from games, send me the info and ill try to write in support.

BTW... im am chasing up other sim game companies to get similar support (NetKar being one of them).
 

Racer_S

New member
The Basics...

I wrote that tool.... i just told frank to say it was his because he was the one who wanted to know if it worked. its one of many that i've written, this one is just an example of how to get the data onto an LCD and is not really important that i get credit for it because i had the information handy from a previous similar tool for the same game but performed a different function: emulate force feedback.

This one basically just dumps some data to a text file which can then be read onto an LCD through some 3rd party software (such as smartie) from the text file at an interval.

It was written in VB and uses a couple API functions and several conversions.

The main API function that is required is ReadProcessMemory() in the kernel32.dll in windows. The next important function is OpenProcess()

You pass the PID (process id) through OpenProcess function and you will then get another type of PID... in my case it was called hProcess... you need this in order to use the ReadProcessMemory.

Well basically you use ReadProcessMemory and retreive a string from memory, then you use some conversions to turn that string into a number.

Before you know what offset to retreive you first need to search for it with some kind of memory search tool. I use TSearch v1.6.

For this game it was simple, because the offsets are static and dont move around in the memory like most games tend to do, and they were simple 1byte/2byte values (some games use lots of floats, ugh). The RPMs was the only 2byte value in this game.

If the value you want moves to a different offset everytime you restart the same game, then there must be a pointer to the beginning of the block in the location where that offset is found (usually less than 1024 bytes before the offset you are targeting).

Some other games require tons of mathematical functions, ie; Vice City. This game didn't come with any guages on the HUD for travel speed, etc. So you'd have to calculate direction speed and the XYZ's which are Floats and Rotation which is a Double. (so i've been told)

Usually its harder to pinpoint these values when the game is designed for multiplayer...

I could give some information on every version of colin mcrae 3, where each offset is, length, etc...

the tool posted here is a dead givaway where they are in the demo.


If you need more help i'd be glad to contribute
 
Last edited:

CF Mark

Administrator
Thanks for the description...

I was hoping it might be somthing a little more concrete than that :(
I have thought of also getting information from games in the same way, but didnt follow it up due to the changes between versions, etc.

I have been emailing companies about the possiblity of using shared-memory to gain access to the information.
One company is working with us at the moment to include this support into thier next game... i wont say which game at the moment, but it is a VERY popular sim.

Check your PrivateMail in these forums, ill leave you a message.
 

Frankmd

New member
Ok, but some more information about how you let it work then... ;)

BTW> do you know how much it will cost me to get an lcd shipped to holland? Without the costs of the lcd itself.
 
Top