Jump to content
The simFlight Network Forums

multiple FSUIPC instances


Recommended Posts

Hi Pete,

I was playing around with wideview (not widefs) for the last 2 days. I have 2 pc's (amd64 3200+, 1gig ram, ati 9800 XT, raid0, etc) connected together. They all run at 60fps with everything maxed out, but still, the wideview client doesnt seem to go visually over 30fps (altough the frame counter is telling me 60fps)

I installed the performance manager tool from WinXP pro, and i sniffed the IPX packets.. no mather what i do, there are only coming 32 packets a second.

Next thing I was copying my scenery over from one pc to the other, transfering 1Gig took forever with IPX !! I changed it to tcp/ip for a minute, and *bang* after 15 seconds everything was copied (gigabit lan)

So, this got me thinking: is there some limitation in the IPX protocol ?

And now for the real question:

I want to write my own little 'wideview' as an experiment. (for my project, wideview has some additional limitations)

- If PC1 has FS2002 on it, together with fsuipc & widefs.

- If PC2 has FS2002 on it, together with only fsuipc.

Is it possible to use one 'interface program' on PC2 that reads source variables from PC1 trough widefs, and send them to FSUIPC on PC2 ?

My goal is to copy necessary variables from one PC to the other, using the already existing widefs network interface.

For that, one must get 2 seperate handles for the fsuipc instances i guess.

Kind Regards,

Wim

Link to comment
Share on other sites

I was playing around with wideview (not widefs) for the last 2 days. I have 2 pc's (amd64 3200+, 1gig ram, ati 9800 XT, raid0, etc) connected together. They all run at 60fps with everything maxed out, but still, the wideview client doesnt seem to go visually over 30fps (altough the frame counter is telling me 60fps)

30 fps, 60 fps? I have FS2004 running on a 3.2Gb P4 and my FS frame rate limiter is set to 20! Unless you are flying helos, I don't see the point of 60 fps -- the system is smoother with everything maxed out and a lower limit set.

I installed the performance manager tool from WinXP pro, and i sniffed the IPX packets.. no mather what i do, there are only coming 32 packets a second.

Maybe that's the timing loop in WidevieW?

Next thing I was copying my scenery over from one pc to the other, transfering 1Gig took forever with IPX !! I changed it to tcp/ip for a minute, and *bang* after 15 seconds everything was copied (gigabit lan)

So, this got me thinking: is there some limitation in the IPX protocol ?

Well, mainly Microsoft I suspect. I think it's the "not invented here" syndrome. Gradually less and less official stuff is supporting this old original highly efficient Novell protocol. I expect the treatment of the protocol in the Explorer is minimal and reluctant. No doubt if you tried one of the third party file transfer programs it would be faster than TCP/IP.

- If PC1 has FS2002 on it, together with fsuipc & widefs.

- If PC2 has FS2002 on it, together with only fsuipc.

Is it possible to use one 'interface program' on PC2 that reads source variables from PC1 trough widefs, and send them to FSUIPC on PC2 ?

For the program on PC2 to read "through WideFS", PC2 must be running WideClient. WideFS has at least two ends to it -- a server (WideServer) and at least one client -- WideClient. It makes no sense having WideServer running on one PC with no clients to talk to. FSUIPC contains no Network code at all, if that's what you were thinking.

My goal is to copy necessary variables from one PC to the other, using the already existing widefs network interface.

For that, one must get 2 seperate handles for the fsuipc instances i guess.

No. You have to get WideClient.exe running alongside FS in PC2. This is not normally possible because both want to be class "FS98MAIN" and this is the prime IPC interface class. But there is provision in WideClient for it to start up with another classname, then it is possible. You set

ClassInstance=n

where n is a number from 1 to 99. This goes into the [Config] section. Then WideClient starts with a class name of "FS98MAINnn" (where nn runs from 01 to 99 according to your parameter).

Your interface program would have to link (via modified library code, or your own code) to WideClient via FS98MAINnn and to FSUIPC inside FS using the standard method.

You can have multiple instances of WideClient this way, each linking to a different Server by different Server names and port numbers.

This isn't documented for good reason -- I don't want to support it used this way. So, have fun, but please don't ask me too much! :)

Regards,

Pete

Link to comment
Share on other sites

Thanks Pete !!

I indeed forgot to mention wideclient. And i'm flying the Helo here.

Anyway, the project that i'm doing requires at least 40fps at all times.

Stutters just don't look good when you show things at exhibitions :)

I found the lines that i need to modify in the IPCuser.h IPCuser.c

These should be compiled to the FSUIPC_user.lib as i understand it.

another thing i was wondering about, is the timeloop from wideview or let's say "FS Modules" limited ? I can suspect that fsmodules have some kind of limit.

Thanks for the Help,

Wim

Link to comment
Share on other sites

Anyway, the project that i'm doing requires at least 40fps at all times.

Stutters just don't look good when you show things at exhibitions :)

Stutters are NOT the same thing as low frame rates. A stutter is a short change in frame rates, or even a slight stoppage, a "jerk". Stutters are much more likely at high frame rates than low ones, because a momentary 30 fps or worse a short stoppage, when things are running at 60, is so much more noticeable. At lower frame rates FS is more likely to keep up, and when stutters do occur they are less noticeable because the contrast is less.

In fact the whole point of limiting the frame rate as I do is to achieve smooth, consistent, non-stuttery performance despite enormous variations in the amount of work FS has to do in different circumstances.

I found the lines that i need to modify in the IPCuser.h IPCuser.c

These should be compiled to the FSUIPC_user.lib as i understand it.

Renaming in the process I hope. Or, for a one-off exercise, just include the code in your project instead of linking in a library.

another thing i was wondering about, is the timeloop from wideview or let's say "FS Modules" limited ? I can suspect that fsmodules have some kind of limit.

Sorry, I don't think I understand the question. If you mean what I supposed WidevieW was doing -- i.e. read/writing data at intervals leading to the 32 IPX blocks per second -- then the interval it chooses is no doubt determined by it. Maybe there's a parameter for it?

I expect he could try to send stuff every single millisecond, but I doubt that you could achieve your 60 fps then as nothing else would get much done -- or his performance would be anything but smooth as it tried to achieve 1000 fps and failed.

Regards,

Pete

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.