after exploring "MPR format site" (http://www.liveforspeed.net/?page=MPR) I started to hack (yet another) MPR parser. All went well until I came to the mysterious "The rest of the file is the actual MPR data" section.
I googled a lot but couldn't find any format definitions for this "MPR data".
Can anybody give me a hint? Where do I find these specifications?
It's the data that makes the replay? You won't find any info on google, because it's LFS's own format, and I don't think they'll want to tell us (yet).
Ah thought it was raf files but that only works for single player replay.
His program is an insim app, it gets the data from lfs(lap times for example)
And store's then saves the data.
You dont need to crack the mpr format unless you want to
go into the doc's folder and open the insim text file. Now write your app!
struct IS_LAP // LAP time
{
char LAP [4];
char UName [24]; // username
char PName [24]; // nickname
char CName [32]; // car name
MSHT Time; // lap time
byte PlyNum; // player's number
byte UniqueId; // player's assigned unique id
word VerifyId;
};
Oh, you are right. It seems that I mispelled the word relay with replay in my mind Damn.
Thank you for the information.
So, what about extracting information from a MPR?
Is it possible?
Is the MPR format shareable for a poor programer?
Do I really have to re-engineer that format?
Or is it a simple RTFM-thing?
Quite simply its mostly a closed format. You could reverse engineer it, but this is why you can create RAF files from LFS, and use InSim.
If the format was known, it could likely lead to SPR format knowledge, and before you know it - fake hotlaps. Although I really couldnt give 2 shits about hotlaps.
That's the same reasoning that the RIAA uses to ban all kinds of P2P programs and try to get money from those who made it.
Well, you COULD use it to do inappropriate stuff, so you can't make it.
The whole replay format is quite useless because it doesn't tell you anything about the cars position and state. That's why there's an RAF export function. The replay file itself only contains controller information. How much throttle and steering input there is, what the car setup used is. It's the actual physics engine that then calculates where the car should be.
This is why you can't skip time in a replay file. There simply is no information in the replay file that tells LFS where the car is at any given moment, except the very beginning of the replay (start of the race).
At least that is how I understand it.
My guess is that the actual replay information is pretty easy to figure out. But how are you ever going to use it if you don't have the physics code? And what will you test it to without that code?
My personal opinion on the replay files is that it should be a frame-based format instead of an input-based format. What I mean by that is that at any given point in the replay, each car's position should be known. There are several reasons for me to believe so.
1. It would make analyzing/statistical programs a million times faster if they didn't need to do it in 'real-time', but could maximize reading speeds.
2. It would allow for rewinding/skipping frames which would make it easier to watch replays and check out certain events.
3. It would allow for doing a frame by frame render of video material at maximum detail settings even on very slow machines, which would make for some extremely good movies (Papyrus GPL and NASCAR 2 AVI style).
4. It would anihilate the need for including setups in the replays, so nobody would have to worry about them being hacked.
5. It would make MPR replays a lot smoother because the interpolation of car positions could be done based on 2 positions instead of the last controller input, and the latest positional info gotten from a client.
There's also a couple of downsides to this format as well.
1. There would be no need for setups, so testdriving a setup would not be a possibility anymore.
2. The replay files would become a *lot* bigger. This would require either more RAM in your computer to record long replays, or it would mean more HDD writing, which could potentially interfere with your framerate while playing.
In the end, the choice is not mine to make. The replay format has been discussed before, but I don't know how Scawen responded to a frame-based format. For now, we simply know we won't get anything usefull out of the replay unless we create a RAF file.
but getting a setup out of an spr would be coOL in my opinion...
ok, it's a kind of cheating maybe, but it would be good for closer competitions in hotlaping...
/btw: nice perfomance in the last race, splattael !!
i know
but my thoughts might have someting to do with cheating...
for me, who haven't enough time and knowledge, it's unpossible to create competitiv setups, but using those WR sets can help may performing in the same way like the WR holder...
so, for the competition it would be coOL.
but i have ta say that sometimes even WR sets did not help me to be competitive!
but i also think, that the person who can create setups and therefore drive WRs should be rewarded for this in owning a WR
but nevertheless, it would be coOL if there where more WR holders than for example Flotch or McEAST who share their sets...
I must have said this a million times, but getting a setup out of an SPR is a piece of piss and the information is public knowledge and in black and white on the LFS main site.
Go to programmer files - RAF format, and then try telling me that setups are secret.
Well, y'know, its not like I'm ever going to make or release a tool that automates the process, but I just like to point it out every now and again when people get het up about keeping setups secret.