SymProjects Forum
General Category => General Discussions => Topic started by: Simracer92 on October 31, 2011, 08:51:00 pm
-
Hello.
Can you please make your components (Rev-Burner especially) compatible with the new game C.A.R.S.?
Would be very nice :)
Thank you.
-
hi.
do you have a link to the game please.
I googled but I am not sure I got the right one.
thanks
-
hi.
do you have a link to the game please.
I googled but I am not sure I got the right one.
thanks
Hi.
No problem, here it is:
http://www.wmdportal.com/projects/cars/
-
hi.
do you have a link to the game please.
I googled but I am not sure I got the right one.
thanks
Hi.
No problem, here it is:
http://www.wmdportal.com/projects/cars/
thanks
I will investigate.
Cheers
-
oh sweet i wa wondering about this, if itd even be possible as the game is stil in development, but the game seems ace so far :D
-
well the game is made by the same people who make shift 2 so should work
-
Hello,
I confirm, the support of C.A.R.S. would be well appreciated.
still thank you for your very good work, I like this small screen !!!
;D
-
Another project C.A.R.S racer is lining up for a cars support. :)
-
C.A.R.S is a lot of fun even at the Alpha stage, support for this game would be awesome.
-
Support of C.A.R.S would be great!! :)
-
Add me to the list ;D
-
+1
-
I am following the C.A.R.S. situation.
At the moment the game is in a early stage of development and the API to allow external applications to extract data doesn't exist.
The game's developers say the API is not the main priority now but definitely the game will have one. So the game will definitely be supported. we just don't know when.
Regards
-
Cristiano, did SMS dev give you any idea as to when an API will be available. Would be a great combination to have your devices working alongside Project C.A.R.S.
-
Cristiano, did SMS dev give you any idea as to when an API will be available. Would be a great combination to have your devices working alongside Project C.A.R.S.
No they don't say when it will be available. it doesn't seem to be top priority for them
-
pC.A.R.S will be released in november 2013, if everything goes to plan.
-
Just to advise that work has started on this now ;D
Some of you will be pleased to know that soon I'll be implementing the new data structure holding lots of various in-game info, available at real-time.
...
It will based on the old work from GTR2, and will function the same, so should be familiar. I'll post back here when it's in.
-
Just to advise that work has started on this now ;D
Some of you will be pleased to know that soon I'll be implementing the new data structure holding lots of various in-game info, available at real-time.
...
It will based on the old work from GTR2, and will function the same, so should be familiar. I'll post back here when it's in.
Good news, thank you.
The fact that the new API will be based on GTR2's is even better. we already have the code ready
-
The first cut of the shared memory functionality should be in this Fridays build.
EDIT: They released the build early, so it's available now. Build 432.
[Aries] Created shared memory manager & data structure
Here are the details....
As previously mentioned, it's implemented in the same way we did shared memory 10+ years ago- using a Memory-Mapped file (easier understood as an in-memory file). In memory file name is "$pcars$".
It's turned off by default, and switched on via the Main Menu options screen, under 'Help&Options'->'Gameplay'->'Use Shared Memory'.
The data structure is defined in "SharedMemory.h" (below). You should be able to simply drop it into a C/C++ project with little difficulty. Or instead you could refer to it as a guideline/map/template if you're using other languages.
As previously mentioned, not all variables from Bernies spreadsheet made it in, only the ones I found easily accessible in-game. (ie. I didn't write any special fetching or conversion code). That said, there's still quite a few; ~80 unique, or ~130 if you include array indices.
I've also added a version number to it, which we'll increment with future versions when appropriate.
Good luck!
Data Structure
/*************************************************************************************************
Description:
Storage structure for storing and updating shared memory
Copyright (c) MWL. All rights reserved.
*************************************************************************************************/
#ifndef _SHARED_MEMORY_HPP_
#define _SHARED_MEMORY_HPP_
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NOTES:
//
// -The shared memory variables will be updated once per graphics frame.
//
// -Each variable comes with a UNIT, RANGE, and UNSET description where applicable.
// UNITS - Is the numeric form which a variable is stored in (e.g. KPH, Celsius)
// RANGE - Is the min-max ranges for a variable
// UNSET - Is the initialised/default/invalid value, depending on the variables usage
//
// -Constant/unchanging values are included in the data, such as 'maxRPM', 'fuelCapacity' - this is done to allow percentage calculations.
//
// -Also included are 7 unique enumerated types, to be used against the mentioned flag/state variables
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// *** Types ***
// Header version number to test against
enum
{
SHARED_MEMORY_VERSION = 1
};
// Maximum allowed length of string
enum
{
STRING_LENGTH_MAX = 256
};
// Tyres
enum
{
TYRE_FRONT_LEFT = 0,
TYRE_FRONT_RIGHT,
TYRE_REAR_LEFT,
TYRE_REAR_RIGHT,
//--------------
TYRE_MAX
};
// Vector
enum
{
VEC_X = 0,
VEC_Y,
VEC_Z,
//-------------
VEC_MAX
};
// (Type#1) GameState (to be used with 'mGameState')
enum
{
GAME_FRONT_END,
GAME_INGAME_PLAYING,
GAME_INGAME_PAUSED,
//-------------
GAME_MAX
};
// (Type#2) Session state (to be used with 'mSessionState')
enum
{
SESSION_INVALID = 0,
SESSION_PRACTICE,
SESSION_TEST,
SESSION_QUALIFY,
SESSION_RACE,
SESSION_TIME_ATTACK,
//-------------
SESSION_MAX
};
// (Type#3) Terrain Materials (to be used with 'mTerrain')
enum
{
TERRAIN_ROAD = 0,
TERRAIN_LOW_GRIP_ROAD,
TERRAIN_BUMPY_ROAD1,
TERRAIN_BUMPY_ROAD2,
TERRAIN_BUMPY_ROAD3,
TERRAIN_MARBLES,
TERRAIN_GRASSY_BERMS,
TERRAIN_GRASS,
TERRAIN_GRAVEL,
TERRAIN_BUMPY_GRAVEL,
TERRAIN_RUMBLE_STRIPS,
TERRAIN_DRAINS,
TERRAIN_TYREWALLS,
TERRAIN_CEMENTWALLS,
TERRAIN_GUARDRAILS,
TERRAIN_SAND,
TERRAIN_BUMPY_SAND,
TERRAIN_DIRT,
TERRAIN_BUMPY_DIRT,
TERRAIN_DIRT_ROAD,
TERRAIN_BUMPY_DIRT_ROAD,
TERRAIN_PAVEMENT,
TERRAIN_DIRT_BANK,
TERRAIN_WOOD,
TERRAIN_DRY_VERGE,
TERRAIN_EXIT_RUMBLE_STRIPS,
TERRAIN_GRASSCRETE,
TERRAIN_LONG_GRASS,
TERRAIN_SLOPE_GRASS,
TERRAIN_COBBLES,
TERRAIN_SAND_ROAD,
TERRAIN_BAKED_CLAY,
TERRAIN_ASTROTURF,
TERRAIN_SNOWHALF,
TERRAIN_SNOWFULL,
//-------------
TERRAIN_MAX
};
// (Type#4) Crash Damage State (to be used with 'mCrashState')
enum
{
CRASH_DAMAGE_NONE = 0,
CRASH_DAMAGE_OFFTRACK,
CRASH_DAMAGE_LARGE_PROP,
CRASH_DAMAGE_SPINNING,
CRASH_DAMAGE_ROLLING,
//-------------
CRASH_MAX
};
// (Type#5) Current Sector (to be used with 'mCurrentSector')
enum
{
SECTOR_INVALID = 0,
SECTOR_START,
SECTOR_SECTOR1,
SECTOR_SECTOR2,
SECTOR_FINISH,
SECTOR_STOP,
//-------------
SECTOR_MAX
};
// (Type#6) Car Flags (to be used with 'mCarFlags')
enum
{
CAR_HEADLIGHT = (1<<0),
CAR_ENGINE_ACTIVE = (1<<1),
CAR_ENGINE_WARNING = (1<<2),
CAR_SPEED_LIMITER = (1<<3),
CAR_ABS = (1<<4),
CAR_HANDBRAKE = (1<<5),
};
// (Type#7) Tyre Flags (to be used with 'mTyreFlags')
enum
{
TYRE_ATTACHED = (1<<0),
TYRE_INFLATED = (1<<1),
TYRE_IS_ON_GROUND = (1<<2),
};
// *** Shared Memory ***
typedef struct
{
// Version Number
unsigned int mVersion; // [ RANGE = 0->... ]
// Session type
unsigned int mGameState; // [ enum (Type#1) Game state ]
unsigned int mSessionState; // [ enum (Type#2) Session state ]
// Unfiltered Input
float mUnfilteredThrottle; // [ RANGE = 0.0f->1.0f ]
float mUnfilteredBrake; // [ RANGE = 0.0f->1.0f ]
float mUnfilteredSteering; // [ RANGE = -1.0f->1.0f ]
float mUnfilteredClutch; // [ RANGE = 0.0f->1.0f ]
// One Time Session
char mPlayerName[STRING_LENGTH_MAX]; // [ string ]
char mCarName[STRING_LENGTH_MAX]; // [ string ]
char mCarClassName[STRING_LENGTH_MAX]; // [ string ]
char mTrackName[STRING_LENGTH_MAX]; // [ string ]
// Timing & Scoring
float mBestLapTime; // [ UNITS = milli-seconds ] [ RANGE = 0.0f->... ] [ UNSET = -1.0f ]
float mLastLapTime; // [ UNITS = milli-seconds ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mCurrentTime; // [ UNITS = seconds ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mBestSector1Time; // [ UNITS = seconds ] [ RANGE = 0.0f->... ] [ UNSET = -1.0f ]
float mCurrentSector1Time; // [ UNITS = seconds ] [ RANGE = 0.0f->... ] [ UNSET = -1.0f ]
float mBestSector2Time; // [ UNITS = seconds ] [ RANGE = 0.0f->... ] [ UNSET = -1.0f ]
float mCurrentSector2Time; // [ UNITS = seconds ] [ RANGE = 0.0f->... ] [ UNSET = -1.0f ]
float mSplitTime; // [ UNITS = seconds ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mEventTimeRemaining; // [ UNITS = milli-seconds ] [ RANGE = 0.0f->... ] [ UNSET = -1.0f ]
// Race Info
unsigned int mLapsInEvent; // [ RANGE = 0->... ] [ UNSET = 0 ]
unsigned int mLapsCompleted; // [ RANGE = 0->... ] [ UNSET = 0 ]
unsigned int mCurrentLap; // [ RANGE = 0->... ] [ UNSET = 0 ]
unsigned int mCurrentPosition; // [ RANGE = 1->... ] [ UNSET = 0 ]
unsigned int mNumberOfCars; // [ RANGE = 1->... ] [ UNSET = 0 ]
unsigned int mCurrentSector; // [ enum (Type#5) Current Sector ]
// Car State
unsigned int mCarFlags; // [ enum (Type#6) Car Flags ]
float mOilTempCelsius; // [ UNITS = Celsius ] [ UNSET = 0.0f ]
float mOilPressureKPa; // [ UNITS = Kilopascal ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mWaterTempCelsius; // [ UNITS = Celsius ] [ UNSET = 0.0f ]
float mWaterPressureKPa; // [ UNITS = Kilopascal ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mFuelPressureKPa; // [ UNITS = Kilopascal ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mFuelLevel; // [ RANGE = 0.0f->1.0f ]
float mFuelCapacity; // [ UNITS = Liters ] [ RANGE = 0.0f->1.0f ] [ UNSET = 0.0f ]
float mSpeed; // [ UNITS = Metres per-second ] [ RANGE = 0.0f->... ]
float mRpm; // [ UNITS = Revolutions per minute ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mMaxRPM; // [ UNITS = Revolutions per minute ] [ RANGE = 0.0f->... ] [ UNSET = 0.0f ]
float mBrake; // [ RANGE = 0.0f->1.0f ]
float mThrottle; // [ RANGE = 0.0f->1.0f ]
float mClutch; // [ RANGE = 0.0f->1.0f ]
float mSteering; // [ RANGE = -1.0f->1.0f ]
int mGear; // [ RANGE = -1 (Reverse) 0 (Neutral) 1 (Gear 1) 2 (Gear 2) etc... ] [ UNSET = 0 (Neutral) ]
// Motion & Device Related
float mWorldPosition[VEC_MAX]; // [ UNITS = World Space X Y Z ]
float mOrientation[VEC_MAX]; // [ UNITS = Euler Angles ]
float mVelocity[VEC_MAX]; // [ UNITS = Metres per-second ]
float mAngularVelocity[VEC_MAX]; // [ UNITS = Radians per-second ]
float mAcceleration[VEC_MAX]; // [ UNITS = Metres per-second ]
float mExtentsCentre[VEC_MAX]; // [ UNITS = Local Space X Y Z ]
// Wheels / Tyres
unsigned int mTyreFlags[TYRE_MAX]; // [ enum (Type#7) Tyre Flags ]
unsigned int mTerrain[TYRE_MAX]; // [ enum (Type#3) Terrain Materials ]
float mTyreY[TYRE_MAX]; // [ UNITS = Local Space Y ]
float mTyreRPS[TYRE_MAX]; // [ UNITS = Revolutions per second ]
float mTyreSlipSpeed[TYRE_MAX]; // [ UNITS = Metres per-second ]
float mTyreSpeed[TYRE_MAX]; // [ UNITS = Metres per-second ]
float mTyreTemp[TYRE_MAX]; // [ UNITS = Celsius ] [ UNSET = 0.0f ]
float mTyreGrip[TYRE_MAX]; // [ RANGE = 0.0f->1.0f ]
float mTyreHeightAboveGround[TYRE_MAX]; // [ UNITS = Local Space Y ]
float mTyreLateralStiffness[TYRE_MAX]; // [ UNITS = Lateral stiffness coefficient used in tyre deformation ]
float mTyreWear[TYRE_MAX]; // [ RANGE = 0.0f->1.0f ]
float mBrakeDamage[TYRE_MAX]; // [ RANGE = 0.0f->1.0f ]
float mSuspensionDamage[TYRE_MAX]; // [ RANGE = 0.0f->1.0f ]
// Car Damage
unsigned int mCrashState; // [ enum (Type#4) Crash Damage State ]
float mAeroDamage; // [ RANGE = 0.0f->1.0f ]
float mEngineDamage; // [ RANGE = 0.0f->1.0f ]
// Weather
float mAmbientTemperature; // [ UNITS = Celsius ] [ UNSET = 25.0f ]
float mTrackTemperature; // [ UNITS = Celsius ] [ UNSET = 30.0f ]
float mRainDensity; // [ UNITS = How much rain will fall ] [ RANGE = 0.0f->1.0f ]
float mWindSpeed; // [ RANGE = 0.0f->100.0f ] [ UNSET = 2.0f ]
float mWindDirectionX; // [ UNITS = Normalised Vector X ]
float mWindDirectionY; // [ UNITS = Normalised Vector Y ]
float mCloudBrightness; // [ RANGE = 0.0f->... ]
} SharedMemory;
#endif // _SHARED_MEMORY_HPP_
-
new pcars Build 432 is out - with all the data you probably need for compatibility with symprojects?
-
Thanks.
I will have a look at it.
It looks like there is everything I need
-
got curious and ordered a simscreen (with stand)...
hopefully you can figure everything out you need to implement
pCars successfully. looking forward to your progress,
cheers, Chris.
-
Thanks.
I will have a look at it.
It looks like there is everything I need
That's excellent news Cristiano. ;D Really looking forward to running the DLC-247 with pCARS
Worked in B432 and B433, broken in B434 (outputs zero's), will work again in new build on Monday B435 :)
-
Any news on this?
-
Any news on this?
+1 :o
-
any news??
-
well i guess he is too busy working on it ! :)
-
any news??
I have posted this in another thread:
http://www.symprojects.com/forum/index.php?topic=720.msg3172#msg3172
Regards
-
http://simsli.com/
This might help some of you. I didn't check if it supports my DLC-247 module but other modules are listed and it can definitely support my SimRace PRO in pCARS. :)
-
http://simsli.com/
This might help some of you. I didn't check if it supports my DLC-247 module but other modules are listed and it can definitely support my SimRace PRO in pCARS. :)
Does not work as yet with DLC-247 but the author hopes to get it sorted out in the near future.
-
well lets hope Cristiano will be done whit it soon .
-
This still isn't working yet? I got the Pro-Race and can't even use it.
-
so is there any news on this ? maybe a progres report or something would be nice .
-
sorry for the delay with this game.
As explained in another thread, I have been busy finish off the new controller that is now ready.
I still need to finish with the updates of the website.
After that, I will be working on the games that are available today but not yet supported
Regards
-
thanks for the heads up .
-
I'm a very satisfied DLC-247 and SimScreen owner, but I really miss PCARS support. In my opinion PCARS is aiming to push the racesim world a few steps forward and having SymProjects hardware fully supporting it will surely be great for all of us. I'm looking forward for the updated Simdash version and I know you're working hard on this Cristiano, so keep up the good work!
-
A reason to get his done sooner than later maybe that since the API has been released there are a lot of free or very cheap apps coming out for the Android devices. Obviously Tablets are dirt cheap now so the longer the delay the more likely users will ago down the Android route.
I have tried most of the Android apps on my tablet and I will admit to them being pretty good but I still can't wait to get the hardware up and running (I have an DIY 44 LED Tachometer built plus the usual Gear indicator and speed etc.)
Not making a complaint just an observation for the benefit of SymProjects products.
-
Nice to see some old WMD forum users here :) I just bought a CSW dashboard with the Pro racer board from SRH ;) So you can add me to the list on getting this done. Works great in Nascar 2003, so where is pCARS ???
Cheers for all your works, love it to bits ;)
Swifty
-
@Ziggy UK . good point , there going crazy in the pcars forum guetting every device to work , and those devices are alote cheaper then lets say the Monsta whitch i have , still love it but...
-
Any news?
-
I will work on this soon. sorry for the delay I was very busy with the PRo-Gauge controller.
Now that it is finished I am going to work on all those new simulators available.
Regards
-
Hi Cristiano :)
That's great news.. :) and when your done you can go have a long rest ;D
-
bump . just wanted to kept this thread alive . :)
-
Any news?
-
i read in another thread that he will be doing raceroom racing experience first :o meanwhile almost all other ' codes ' for motion rigs and sutch has been done .
-
bump
-
I think I have completed the plugin for this game.
I will test it over the week end and if it works fine I will release an update for SimDash.
regards
Cristiano
-
Nice ;D
-
:D good to know, I'm available to do some testing of it during the weekend too! ;)
-
fantastic !! :)
-
Oh yeah !!! I'm also available for any kind of test Christiano :D Waiting this for so many time ^^ I hope this will get released during the week end :p Excellent job !
-
One update that is eagerly been waiting for. Hope all goes well with the testing Cristiano
-
Great news!!!
my simscreen is getting a little dusty,
since i bought it exclusively for pCars...
so curious to have a go....
-
this is the link for the download:
https://dl.dropboxusercontent.com/u/3544050/SimDash-ProjectCars.zip
Enable the shared memory option under "Options > Gameplay > Use Shared Memory" in the game menu.
Supported data is:
Rpm
Max rpm
Speed
Gear
Brake position
Throttle position
Clutch position
Fuel
Fuel Perc.
Water Temp.
Oil pressure
Fuel pressure
Oil Temp.
Car position
Number of cars
Current lap number
Total laps
Speed limiter warning
Engine failure warning
Head lights warning
Abs warning
Hand brake warning
Best lap time
Last lap time
Current lap time
Split time
Wheels temp.
Wheels wear
Regards
Cristiano
-
no RPM% data ???
Well, even RPM data doesn't seem to work for me. Memory Shared is ON.
-
is there anything working?
no RPM% data ???
Well, even RPM data doesn't seem to work for me. Memory Shared is ON.
-
Well just tried to see if the data window would show me anything and no. It doesn't. So doesn't seem to work for me. Tried both apps ( SimDash and pCARS ) as admin.
-
Same here - doesn't work for me.
-
Sorry I have made a mistake in the plugin.
I will post a new version tomorrow morning. Don't download the file until I post a new message because it is not working.
Thank you
Cristiano
-
Mistakes happen ;)
-
Okay Christiano ! Still, will we have RPM % as an available data ? Making a setting for each car in this game would be quite a work to do ! :p
-
Ok, I have updated the file.
it should be ok now.
Regards
-
it says " this file could not be downloaded" ??? why is this not available in the symprojects downlaod page ? ??? its still simdash v.1.5.0 .
-
Now work for me ;D
BIG THX
-
Hey Christiano, you didn't answer me about RPM%. Do you intend to integrate it ? Please ! This would make things way easier :)
-
Hi
Where you guy's downloading the new software that working in pCARS?? I can only find SimDash v1.5.0 on the download page?
-
READ !! ;)
http://www.symprojects.com/forum/index.php?topic=370.msg3414#msg3414
-
Thank you! My bad, I skipped a page :)
-
it still dosent want to download for me ! do i turn of norton , defender , ... ?? cmon i weant my MONSTA to work !!
-
it still dosent want to download for me ! do i turn of norton , defender , ... ?? cmon i weant my MONSTA to work !!
Which browser you using?...Try to empty your browser cache and start again...That might work ;)
-
THANK YOU THank YOU! so so very happy! All my friends can now see the best Sim, with the best hardware! AND they WORK!
-
it should be available
Okay Christiano ! Still, will we have RPM % as an available data ? Making a setting for each car in this game would be quite a work to do ! :p
-
because it's a test version
it says " this file could not be downloaded" ??? why is this not available in the symprojects downlaod page ? ??? its still simdash v.1.5.0 .
-
This is great!
I have Gear and speed working with my DLC-247, but using the same settings as before I don't get any RPM% data either.
When viewing the data, it stays at 0.00%.
Do you rely on the game to output a %age or do you calculate inside simdash?
Thanks for the test version ;D
-
At last, great work Cristiano!
I've been testing with Simscreen and DLC-247 and RPM% really is important, so as to keep SimDash setup compatible with as many cars possible. As PCars sends maxrpm it is possible to calculate RPM% internally, please try to implement.
Also the requested feature for data display changing by controller button (from wheel, button box or keyboard) would be a very appreciated enhancement to an already fine product! I know this is in your plans, it's just that simracers are impatient by nature, mea culpa ;D
One more thing: I'd like to disable hardware support, in SimDash frontend, so as to drive only SimScreen for instance. I think that this was possible on early version(s).
Thanks
-
I am going to add RPM% later today.
This is great!
I have Gear and speed working with my DLC-247, but using the same settings as before I don't get any RPM% data either.
When viewing the data, it stays at 0.00%.
Do you rely on the game to output a %age or do you calculate inside simdash?
Thanks for the test version ;D
-
I have updated the file to support RPM%:
https://dl.dropboxusercontent.com/u/3544050/SimDash-ProjectCars.zip
Regards
-
Brilliant Cristiano, thats working great.
Many thanks ;D
-
I Love it,
This version working very good here,
Get the dust of all my SRH products
thx.
-
Really good, it works with my hard-worked settings ;D , SimScreen is also displaying correctly now.
Thanks
-
Works perfectly ! thank you so much for your hard work Cristiano !
-
great job ! thanks !
-
i cant get the shift light to work properly, only works when i select the light to come on at certain rpm range but the problem is that different cars shift at different rpms, when i select read in game shift light it doesnt work, i know it says not supported by all games but i would have thought a game like this would support it. just want to know if its possible to do this.
-
Changing your RPM to a % have all LED's blinking at say 98% should work for all cars... :)
-
ok thanks for that will try it.
-
Shift light is not supported.
But as said you can use rpm% to configure shift light.
Or you can use normal rpm and save that configuration to disk. Then create a new configuration for each car and load the correct one before you start to play.
Regards
-
shift lights work on my Monsta .