Boomslangnz / FFBArcadePlugin

Plugin to add force feedback and rumble effects to various arcade games
GNU General Public License v3.0
130 stars 22 forks source link

Emergency Call Ambulance doesn't work #58

Closed jaoxford closed 10 months ago

jaoxford commented 11 months ago

Issue

There is no FFB working in Emergency Call Ambulance. We are using supermodel for emulating the game on Windows 10.

Thoughts

Is this just a case of there not being support for the game?

If that's the case could you point me in the direction on how to add this game to be supported?

Investigation

I can only see 2 references of this game anywhere in the source:

  1. In Includes/FFBPluginReadme.txt line 151
    
    SUPERMODEL3:

-Daytona USA 2 - Power Edition -Daytona USA 2 - Battle on the Edge -Dirt Devils -Emergency Call Ambulance -LeMans 24 -Scud Race -Scud Race Plus -Sega Rally 2


2. In /Game Files/MAMESupermodel.cpp line 3186:
```c++
if (RunningFFB == Srally2Active) //Sega Rally 2, Emergency Call Ambulance
Boomslangnz commented 10 months ago

Hi, sorry I’ve only just seen this message for some reason. It should work fine unless the rom name has been changed from what I set to look for

what’s the rom name you use?

jaoxford commented 10 months ago

Thanks for responding.

I think we made a mistake. We're using the FFBArcadePluginGUI which belongs to a different repository. I'm not sure what are the exact differences between this repo & the GUI version. And I'm also curious which one you would recommend to use in the future?

To answer your question:

We're using the eca.zip rom. We've also tried with the other ROMS:

But to no avail. There is no FFB whatsoever and I'm kind of curious how we can fix it?

Boomslangnz commented 10 months ago

Hey, ive fixed the issue tonight and just published new release

https://github.com/Boomslangnz/FFBArcadePlugin/releases

Turns out for Emergency Call Ambulance the plugin was loading the output reading too slowly and thus it did not work, but strangely worked fine for other Supermodel titles lol

In the end ive just made it launch that alot quicker now which resolves the issue

jaoxford commented 10 months ago

Thanks for looking into this / arranging a fix.

I'll try this out and get back to you!

jaoxford commented 10 months ago

Hey,

We've tested this out again and in more depth. Unfortunately we're having mixed results with the FFB. About half of the games on Supermodel are working with any FFB. Meaning it's not just Emergency Call Ambulance that doesn't work.

Setup

We're using a Simagic Alpha Mini, It's a direct drive wheel.

In terms of emulation we're mostly testing this using Launchbox with Supermodel. Supermodel version 0.3a git f89da17. We have also tried with model3 UI r886 revision just to be sure it's not an issue specific to a front-end.

We have also tried copying both of the 32bit and 64bit outputs into our Supermodel directory too.

List of ROMS tried & results

We sourced our ROMS from archive.org

Games that do work with FFB

Games that do not work with FFB

Thoughts

What's interesting here is there are some games that work no matter what: Daytona 2, Sega Rally 2.

Some games work with half of the ROMS: Scud Race.

And then some games that don't work at all: Dirt Devils, Emergency Call Ambulance

I've done some poking around in the Supermodel repo, and in their readme it states:

Force feedback is presently supported in 'Scud Race' (including 'Scud Race Plus'), 'Daytona USA 2' (both editions), and 'Sega Rally 2' on Windows only. To enable it, use the '-force-feedback' option.

Could this be a problem due to compatibility? I doubt it very much since this plugin lists other games.

Questions

  1. Why do some games only work with half of their ROMS?

  2. Is there any way of viewing FFB logs? This would be great to try and further debug things from our side and see outputs or crashes etc.

  3. Is there any difference between the 32bit & 64bit outputs? Our assumption is that this is for our computer, i.e. if we're running 32bit windows vs 64bit windows? And it's not actually related to the model3 boards if they're 32bit or 64bit?

jaoxford commented 10 months ago

Update

I think we've solved this, I found this buried in one of the readmes:

(For SUPERMODEL EMULATOR)

  • If you wish to use FFB Plugin over Supermodel's FFB then disable Supermodel's FFB.
  • When you launch game, ensure you have command -outputs=win for FFB Plugin to recieve Output Values etc
  • Ensure either MAME32.dll or MAME64.dll is with FFB Plugin files in Supermodel folder depending on 32bit or 64bit Supermodel

I have added -outputs=win to our Launchbox / supermodel config. Suddenly FFB started working in Dirt Devils, Emergency Call Ambulance, and other titles.

Could you explain what's the point in -outputs=win? Surely this should always be enabled (I understand that this is probably to avoid conflicts with Supermodels built in FFB). If so there must be a way of detecting that Supermodel's built in FFB is enabled / disabled, and then overriding it.

Why is this README buried inside the source, surely it should be in the README.md?

jaoxford commented 10 months ago

Why is this README buried inside the source, surely it should be in the README.md?

I have created a pull request here: https://github.com/Boomslangnz/FFBArcadePlugin/pull/62

To address the README issue

Boomslangnz commented 10 months ago

Ah glad you found issue, the outputs = win command is to enable Outputs when using windows with Supermodel Emulator and that’s how we receive all the ffb values etc

thanks for making pr

jaoxford commented 10 months ago

We've fully tested this now on both of our machines. I'm very happy to say that the plugin is working for all of the games on Supermodel.

Hey, ive fixed the issue tonight and just published new release

https://github.com/Boomslangnz/FFBArcadePlugin/releases

Turns out for Emergency Call Ambulance the plugin was loading the output reading too slowly and thus it did not work, but strangely worked fine for other Supermodel titles lol

In the end ive just made it launch that alot quicker now which resolves the issue

I think possibly that the fix you did either did nothing or somehow optimised the plugin? But either way if we knew about the -outputs=win trick earlier. It might've already solved the issue for us.

Thanks again, Jacob