The online racing simulator
Searching in All forums
(975 results)
morpha
S3 licensed
Open configurations are completely open, the circuit configuration (the "track number" if you will) only dictates the grid and pits to use. There is no wrong way info because there is no wrong way.
morpha
S3 licensed
Rhama, the situation you describe still requires the user to install a local InSim application. Now why would anyone with malicious intent bother to transmit the info via LFS when he can spread an application capable of doing virtually anything he desires?

There is no security issue with allowing bi-directional hidden communication, the issue is always the client-side InSim application itself.
morpha
S3 licensed
Recorded data from a run on Li River in my Mk2 Escort, see attachments
track.png is the X and Y position samples plotted onto a grid, 1px = 1 metre, green = first recorded sample, red = last recorded sample.
driver_input.png, as the name suggests, are my inputs. green = throttle, red = brakes, yellow = clutch (technically not me), pink = gear.

If anyone cares, the time was 2:50.46, wasn't a particularly good run though.

I'm a little closer to identifying the remaining values, here's a single sample, vehicle standing still on relatively flat ground, facing south. The values in brackets are the range I observed.
11: 0.005378 [-1.00 1.00] Heading 1 (relative to road direction?)
12: 0.006104 [-1.00 1.00] Roll
13: -0.999967 [-1.00 1.00] Heading 2 (relative to world?)
14: -0.999944 [-1.00 1.00] Heading 3 (relative to world?)
15: 0.009186 [-1.00 1.00] Pitch
16: -0.005322 [-1.00 1.00] Heading 4 (relative to road direction?)

The remaining 8 floats are most certainly suspension related, the first set of 4 being the position (travel) and the second set appears to be force or acceleration, but I'm not sure what exactly and which unit it is in. I'll provide some samples once I've collected the range and average.
morpha
S3 licensed
Quote from DevilDare :How is he downshifting?

Quote :
ManOnTheMoonII 2 hours ago:
how is he shifting up or down, if hes holding the phone
aemst 2 hours ago:
@ManOnTheMoonII The paddles used to shift on F1 cars are connected behind the wheel, so pulling back on the right hand paddle pushes the left hand paddle forward. As such the driver can shift one handed rally car style by pulling on the right paddle to upshift and pushing forward on the right hand paddle to downshift.

.
morpha
S3 licensed
Quote from Scawen :Can you tell me what ideas you have for this? I understand it is quite powerful but I have a couple of concerns.

a) To do anything with this, people must install a client side InSim program. I wouldn't like it if people would need to do that before joining a host, so I'd like to provide enough things on the host side that this is not needed.

Valid concern, it could end up causing a lot of ... let's call it "perceived incompatibility". On the other hand, if anyone really wanted to exclude people who don't have a specific local InSim application running, they could already do so by (visibly, i.e. MTC) initiating a handshake, expecting a reply via /i.

Quote from Scawen :b) Security concerns, if LFS's packet system is used for communication between two remote programs, I don't know what implications that might have.

Ha! LFS suddenly becomes Live FileSharing Seriously though, I don't think there's much room for abuse if the packet for this carries a max payload of ~128 bytes and the client is asked whether or not to allow communication with the local InSim application(s).

Quote from Scawen :Back on topic, I intend to add InSim packets that can add and remove autocross objects. Each added object would use the 8 byte OBJECT BLOCK from the LYT file : http://www.lfs.net/?page=LYT and I expect these can be put into a variable sized packet.

This seems easy to do because LFS uses that for internal communication anyway. Also you could enable object reporting so that added and deleted objects (and which connection did that) are sent out to InSim. Loaded layout files also uses the multiplayer system so I guess they would appear naturally.

:lovies3d:
morpha
S3 licensed
Something like this or that?
€: Or this.
morpha
S3 licensed
You have to initialise the connection with ISF_CON for LFS to send CONs
morpha
S3 licensed
morpha
S3 licensed
First of all, scan for malicious software, obviously.

Then, next time it happens, note the time and check your event logs (Control Panel -> Administrative Tools -> Event Viewer, or type "event" in the search bar on Vista/7) for crashes at the same time. If a system service crashed, it likely popped up an error report dialog but restarted right away, cancelling the dialog. That's enough to take the focus off the game's window but won't visibly minimise it.
morpha
S3 licensed
The canyon thing was on Top Gear a couple of years ago, quote Hamster: "Has he stopped screaming yet?"
morpha
S3 licensed
Quote from bvillersjr :Awesome! That was an amazingly quick reverse engineering time!

Fortunately they didn't change the structure between titles significantly, that obviously made it a lot easier.
Still need to figure out what the remaining data is, or rather, how to interpret it. I'm fairly certain the first 6 (in the unknown slice) are roll, pitch and yaw, but I don't quite know how to interpret them. The last 8 (again, unknown slice) appear to be per-wheel / per-corner data, what exactly remains unknown.
I don't actually own a motion simulator and might lack the experience to recognise the type of information based on patterns or range.

Quote from bvillersjr :Now to sort out the best way to integrate this into InSim.

Since the ExtraData =1 outputs entirely different structs, I'm gusssing that DarkTimes has lost interest in this?

The principle, that is, the way the communication happens, is still the same, the datagram just looks a bit different. It might not be directly InSim / OutSim related, but Alex might still be interested.

Quote from bvillersjr :If so, I'll look at maintaining some kind of derived work that supports all of the above. 99.5% of the plumbing for this is already in the InSim project.

That shouldn't be difficult, seeing as all of Alex's InSim related projects are, to my knowledge, open source and released under licences that permit derivative work.

Quote from bvillersjr :Also, who do I have to talk to about commercial use of LFS? A friend of mine wants to make a Sim Center and is interested in LFS as a basis for this.

http://www.lfs.net/?page=commercial_use
Quote :2) Licensed Commercial Use

This is the situation where you use Live for Speed in a permanent or temporary simulator setup and you make profit by charging customers who use the system.

For this purpose, you must contact the LFS developers and arrange a commercial license. A commercial license requires a small recurring payment and gives you permission to charge customers and make profit from the use of Live for Speed. Payments may be monthly or annually. Although you have only a single license, we will provide sufficient unlocks to keep your machines up to date, and will always be available in less than 24 hours to help you with any support issues you may have.

Our charges for this are very reasonable and can be adjusted to your circumstances, such as how many machines you are running and how many days per week they will be in use. We can give good discounts for commercial license customers in countries where the exchange rate to UK currency is unfavourable. We will arrange with you a charge that we both agree is reasonable and suitable for the purpose.

Some example charges for a single machine setup at full price e.g. USA / Europe / Australia :

Full time use (5 or more days per week) : £24 per month
Part time use (for example weekends only) : £12 per month
Educational license (use in a school) : £24 per year

For more information about commercial licenses please contact the LFS developers.

Thank you.

morpha
S3 licensed
Triple post

F1 2010's extra data is the same size as DiRT2's, the differences are minor:
# offset type description
-----------------------------------
0 0 float time elapsed in seconds (since sending these packets started)
1 4 float laptime in seconds
2 8 float position on track in metres from the start/finish line
3 12 float race progress, this - laps = lap progress
4 16 float world-Y position in metres
5 20 float world-Z position in metres
6 24 float world-X position in metres
7 28 float actual velocity in m/s
8 32 float world-Y velocity in m/s
9 36 float world-Z velocity in m/s
10 40 float world-X velocity in m/s

11 44 float ?
12 48 float ? roll *
13 52 float ?

14 56 float ?
15 60 float ? pitch *
16 64 float ?

17 68 float ? suspension travel front left?? *
18 72 float ? suspension travel front right?? *
19 76 float ? suspension travel rear left?? *
20 80 float ? suspension travel rear right?? *

21 84 float ?
22 88 float ?
23 92 float ?
24 96 float ?

25 100 float velocity rear left wheel in m/s *
26 104 float velocity rear right wheel in m/s *
27 108 float velocity front left wheel in m/s *
28 112 float velocity front right wheel in m/s *
29 116 float throttle 0 to 1
30 120 float steering in quarter turns (90°), negative = left, positive = right
31 124 float brakes 0 to 1
32 128 float anti-stall / clutch
33 132 float gear 0 = Neutral, 10 = Reverse, forwards speeds counting from 1
34 136 float lateral acceleration in g
35 140 float longitudinal acceleration in g
36 144 float lap counting from 0 (first lap = 0) *
37 148 float Revolutions per 6 seconds, multiply by 10.0 to get RPM

float 33 (#32) is the only content change, representing the anti-stall or clutch in F1 instead of the handbrake (GRID/DiRT2) for obvious reasons. Other than that there is only a minor change to #33, where reverse is now 10 instead of 9. Finally, GRID and DiRT2 reset the first float (time elapsed) on restarts, F1 does not.

I haven't fully verified everything yet, but I'm reasonably sure that's all the differences.

I've updated the other two definitions with a more accurate interpretation of the steering value.
morpha
S3 licensed
Quote from xtraction :Is there anything i can do?

Request additional unlocks via LFS.net's contact form
morpha
S3 licensed
You and patrykbajger should request additional unlocks via LFS.net's contact form
morpha
S3 licensed
lfs://join=%5BLTC%5D%20Live%20To%20Cruise

works fine for me with FF4 and IE9
morpha
S3 licensed
New post because this concerns DiRT2 now.

The DiRT2 packet is 4 bytes larger than GRIDs, the additional float is - drumroll - the engine RPM

# offset type description
-----------------------------------
0 0 float time elapsed in seconds (since sending these packets started, not the race!)
1 4 float laptime in seconds
2 8 float position on track in metres from the start/finish line
3 12 float race progress, this - laps = lap progress
4 16 float world-Y position in metres
5 20 float world-Z position in metres
6 24 float world-X position in metres
7 28 float actual velocity in m/s
8 32 float world-Y velocity in m/s
9 36 float world-Z velocity in m/s
10 40 float world-X velocity in m/s

11 44 float ?
12 48 float ? roll *
13 52 float ?

14 56 float ?
15 60 float ? pitch *
16 64 float ?

17 68 float ? suspension travel front left?? *
18 72 float ? suspension travel front right?? *
19 76 float ? suspension travel rear left?? *
20 80 float ? suspension travel rear right?? *

21 84 float ?
22 88 float ?
23 92 float ?
24 96 float ?

25 100 float velocity rear left wheel in m/s
26 104 float velocity rear right wheel in m/s
27 108 float velocity front left wheel in m/s
28 112 float velocity front right wheel in m/s
29 116 float throttle 0 to 1
30 120 float steering in quarter turns (90°), -1.0 = 90° to the left, 1.0 = 90° to the right
31 124 float brakes 0 to 1
32 128 float clutch
33 132 float gear 0 Neutral, 9 Reverse, forwards speeds counting from 1
34 136 float lateral acceleration in g
35 140 float longitudinal acceleration in g
36 144 float lap counting from 0 (first lap = 0)
37 148 float Revolutions per 6 seconds, multiply by 10.0 to get RPM

* wild guess

Since I'll actually be playing the game (as opposed to running it solely for sniffing purposes, as I did with GRID), finding the remaining ones might take a little time
Last edited by morpha, .
morpha
S3 licensed
Weirdly, the engine RPM aren't included. Everything X-Sim has, based on the screenshot in the plugin thread for GRiD, is there. The yaw is within the 2 3-float groups, I just don't know how to interpret it correctly.

BTW DiRT2 and F1 2010 are on the way, thanks mate
Last edited by morpha, .
morpha
S3 licensed
I'm gonna stop with GRID for now, had it running for 21 hours non-stop and the PC just let me know that it's enough by crashing on me

The remaining unknown data are cryptic, I believe the first 6 floats (with presumably roll and pitch in them) also contain the heading, in some overly complicated way. The 2x4 floats are probably some per-wheel force information, but without a way to reliably apply force to one wheel only, it's very difficult to confirm.
morpha
S3 licensed
Quote from bvillersjr :What do you use to sniff these packets with?

What I use for everything hacky & simple, Python

Quote from bvillersjr :I'm happy to buy you guys copies of F1 2010, Grid and Dirt2 for your tsting efforts. If you don't already have em, let me know and I'll PM or email them to you.

Well that's very generous, might take you up on that offer
morpha
S3 licensed
LFS comes with extensive documentation, located at LFS directory/docs/ where you'll find, among others, InSim.txt, OutGauge is at the end of the file.

For comparison, and to familiarise yourself with the protocol based on how it's currently implemented in JInSim, use the outdated version I posted above for reference.
morpha
S3 licensed
I think you misunderstood the problem. You want to use JInSim, which implements pre-Z25 (technically pre-Z22, but those were test patches) OutGauge, with the current LFS version (i.e. post-Z25). The actual content hasn't really changed, but the format did. What you have to do now, by means of the relay, is convert the post-Z25 packets to pre-Z25 (22) packets on the fly. That means you put the relay in-between LFS and your application, i.e. instead of specifying your application's port in LFS's cfg.txt, you specify the relay's and configure the relay to convert and finally forward the packets to your application's port.

In your JInSim application, you then treat the input as pre-Z25, or to clarify, like so:
struct OutGaugePack
{
unsigned Time; // time in milliseconds (to check order)

char Car[4]; // Car name
word Flags; // OG_FLAGS (see below)
byte Gear; // Reverse:0, Neutral:1, First:2...
byte SpareB;
float Speed; // M/S
float RPM; // RPM
float Turbo; // BAR
float EngTemp; // C
float Fuel; // 0 to 1
float OilPress; // BAR
float OilTemp; // C
float Spare2;
float Spare3;
float Throttle; // 0 to 1
float Brake; // 0 to 1
float Clutch; // 0 to 1
char Display1[16]; // Usually Fuel
char Display2[16]; // Usually Settings

int ID; // optional - only if OutGauge ID is specified
};

#define OG_SHIFTLIGHT 1
#define OG_FULLBEAM 2
#define OG_HANDBRAKE 4
#define OG_PITSPEED 8
#define OG_TC 16
#define OG_HEADLIGHTS 32
#define OG_SIGNAL_L 64
#define OG_SIGNAL_R 128
#define OG_REDLINE 256
#define OG_OILWARN 512
#define OG_BATTERY 1024
#define OG_ABS 2048
#define OG_3 4096
#define OG_4 8192
#define OG_KM 16384
#define OG_BAR 32768

which would make your code (I hope):
if((flags & OutGaugeResponse.DL_FULLBEAM) != 0)
System.out.print("FULLBEAM ");
if((flags & OutGaugeResponse.OG_ABS) != 0)
System.out.print("ABS ");
if((flags & OutGaugeResponse.OG_BATTERY) != 0)
System.out.print("BATTERY ");
if((flags & OutGaugeResponse.OG_HANDBRAKE) != 0)
System.out.print("HANDBRAKE ");
if((flags & OutGaugeResponse.OG_OILWARN) != 0)
System.out.print("OIL ");
if((flags & OutGaugeResponse.OG_PITSPEED) != 0)
System.out.print("PIT ");
if((flags & OutGaugeResponse.OG_SHIFTLIGHT) != 0)
System.out.print("SHIFT ");
if((flags & OutGaugeResponse.OG_SIGNAL_L) != 0)
System.out.print("SIGNALL ");
if((flags & OutGaugeResponse.OG_SIGNAL_R) != 0)
System.out.print("SIGNALR ");
if((flags & OutGaugeResponse.OG_TC) != 0)
System.out.print("TC");
System.out.println("");

morpha
S3 licensed
Well I've made progress with the GRID extra data, the entire structure is made of floats, which made things easier once I realised it. So far I've got:
offset type description
-------------------------------
0 float time elapsed in seconds (since sending these packets started, not the race)
4 float laptime in seconds
8 float position on track in metres from the start/finish line
12 float race progress, this - laps = lap progress
16 float world-Y position in metres
20 float world-Z position in metres
24 float world-X position in metres
28 float indicated velocity in m/s (= actual speed, there is no differential or wheel speed based reading)
32 float world-Y velocity in m/s
36 float world-Z velocity in m/s
40 float world-X velocity in m/s

44 float ?
48 float roll ?
52 float ?

56 float ?
60 float pitch counter-clockwise from right ?
64 float ?

68 float ?
72 float ?
76 float ?
80 float ?

84 float ?
88 float ?
92 float ?
96 float ?

100 float velocity rear left wheel in m/s
104 float velocity rear right wheel in m/s
108 float velocity front left wheel in m/s
112 float velocity front right wheel in m/s
116 float throttle 0 to 1
120 float steering in quarter turns (90°), -1.0 = 90° to the left, 1.0 = 90° to the right (GRID's wheels only turn 60° in either direction though)
124 float brakes 0 to 1
128 float handbrake, always digital, thus quasi-boolean (1 on / 0 off)
132 float gear 0 Neutral, 9 Reverse, forwards speeds counting from 1
136 float lateral acceleration in g
140 float longitudinal acceleration in g
144 float lap counting from 0 (first lap = 0)

I'm reasonably sure about everything labeled, except for the X & Y velocity and position, which could be the other way round. Unfortunately the map cannot be fixed to align with north and lacks an "N" indicator, so it's difficult to know which world axis you're actually moving on. verified via ExtraData 0 comparison.
Last edited by morpha, .
morpha
S3 licensed
The only way to make it more challenging with the current AI is to slow your own car down, by means of added mass and/or intake restriction.
morpha
S3 licensed
The wording is funny, I think I've mentioned that before in some "Don't post VOB mods on LFSF"-related thread that then turned into an "LFS and LFSF rules" debate.

About the in-family use; technically that's legit because you only need the credentials to unlock LFS, not everytime you play, so you're not sharing the credentials if everyone uses the same computer, or one of the two you're allowed to unlock on. Because of LFS's utter disregard for multi-user environments, it even works across user accounts.
morpha
S3 licensed
Quote from Dygear :Plus one for the Lenovo. Love my 5 year old Z61m that still runs like a champ.

Plus a gazillion.

I've owned about 8 ThinkPads, the only one I wasn't entirely satisfied with was the R41 because of its plastic case, which made it the only one I ever managed to break (1 hinge completely ripped out, I did the same to an OmniBook 4150, which actually was a good machine). It still works though and, despite being stationary now, is used a lot, so it's not that big a deal. My current W500 is excellent, I'd only consider an even higher-end ThinkPad to replace it. In fairness though, one major reason for me to stick to ThinkPads is (and this might sound stupid) the TrackPoint. I just can't stand touchpads.
FGED GREDG RDFGDR GSFDG