LeMans24 FFB not working anymore, ECA FFB incorrect
Uncommenting the line to use scud race FFB file in lemans24 doesn't work anymore.
ECA FFB incorrectly implemented. Only one side reacts to wall hits while the other doesn't and the reaction is inverted (pulling into the wall)
While steering that side also tries to pull the wheel to the outside instead of giving resistance.
I would assume the game works different to the others having different raw data and possibly inverted output. I saw that with Rave Racer in mame.
I inverted the channel on the new supermodel version and build my own version and while it made it better it's still not correct as the other channel seems wrong.
I noticed lemans was a bit janky. I think this is related to the nvram states being changed a few commits ago. Drive board states in the nvram probably no longer line up to the correct memory reads. Try moving your old nvram file to a different location to force a new dump.
If you changed your lemans region you'll need this, Go into the test mode and push start, start, service, service, start, test. (default keys: 6 then 1 1 5 5 1 6 )
Thank you, that did work.
as for ECA I tested again with ffb arcade plugin instead of native support from Supermodel and it's correct there. So maybe you could look into their source for the correct hook.
https://github.com/Boomslangnz/FFBArcadePlugin
I'm not a dev but I understand your point. Boomslangz is known to have more extensive support across many games and emus.
The problem seems to be that Sega Rally 2 and ECA work differently with the raw data. It has its own section to drive the ffb in the plug-in:
if (RunningFFB == Srally2Active) //Sega Rally 2, Emergency Call Ambulance
{
if (name == RawDrive)
{
helpers->log("got value: ");
std::string ffs = std::to_string(stateFFB);
helpers->log((char*)ffs.c_str());
if (stateFFB > 0x00 && stateFFB <= 0x3F)
{
double percentForce = (stateFFB) / 64.0;
double percentLength = 100;
triggers->Rumble(0, percentForce, percentLength);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
}
else if (stateFFB > 0x3F && stateFFB <= 0x7F)
{
double percentForce = (stateFFB - 64) / 64.0;
double percentLength = 100;
triggers->Rumble(percentForce, 0, percentLength);
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
}
}
}
It seems supermodel all threats them the same.