Thread Rating:
  • 5 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Qemu USB Wheel/Storage mod (Singstar test)
#1
Github: https://github.com/jackun/USBqemu-wheel
Latest Raw Input API / DirectInput merged Win32 binary from here.

Check github for up-to-date version. Now with USB mass storage support (not all UFI commands yet, to open image file use 7zip or ImDisk might work too).

Ok, this is my take on usb plugin and it is very WIP and because of that, please restart PCSX2 when you change the device for the changes to take effect for now.

Supported "emulated" wheels (that is, selectable wheel types reported to games, not your IRL wheel) are Logitech Driving Force, Driving Force Pro and GT Force. Driving Force Pro should be able to do direct data passthrough if enabled (no wheel to test).

FF and most buttons/axes seem to work. Don't load your save state before game has done some usb subsystem initialization, for now.

As of 2016-06-03
Quick overview:
* Force feedback gain slider
* spring effect
* ramp-like effect

As Logitech released docs about their FFB commands, "improve" DInput FFB by adding somewhat correct spring effect (Enthusia uses heavily) and ramp-like variable effect (force type 0x8). GT4, Enthusia etc. seem to use variable effect instead of constant force effect, but currently it is a bit iffy and erratic. Switch between variable and constant force effect with a checkbox in DInput configuration dialog. Primarily tested with Driving Force Pro wheel type.
Get binary here


A little compatibility list (though if game supports Driving Force/DFPro/GT force it probably works)
By @superrama
Quote:Battle Gear 2 (or Tokyo Road Race [PAL])
Battle Gear 3
Burnout series
Initial D
Wangan Midnight
Sega Rally Championship 1995
Sega Rally 2006
Outrun 2 SP (Japan) *US version C2C does not have wheel support at all*
Tokyo Xtreme Racer 3
Tokyo Xtreme Racer : Drift 2
Automodellista
Enthusia
GT3
GT4
Sega Ages vol 8 : Virtua Racing

By @K31TH3R
Quote:Tokyo Xtreme Racer Zero and 3
Tokyo Xtreme Racer Drift 1 and 2
Battle Gear 3
Racing Battle C1 Grand Prix
Enthusia
Gran Turismo 3 and 4
D1 Professional Drift Grand Prix
Ferrari F355 Challenge and Trofeo Pirelli
Smugglers Run 2
Tourist Trophy
WRC Rally Evolved

Separate DInput plugin is a little out of date.
Latest DInput Win32 binary by Racer_S from here or on tocaedit.com (1.2.1), Source
Reply

Sponsored links

#2
Thank you. Hope to be able to test it, got an MS sidewinder wheel which I need to setup first. If it works, it's gonna be great! Smile
[i7-3630qm/gt650m-2G/Win-7] [i7-4500u/R.HD8850m/Win-8.1] [2010-MBA/OSX-10.9.x]. Scroll smoothly with SmoothWheel for Firefox.
Reply
#3
I haven't made it generic enough, i'll need to look into hidP_* functions more. Spent like 3-4 days trying to get DFP emulation working, but that kinda failed Wacko
Currently the plugin searches only for logitech momo (PID 0xCA03) or DFP (PID 0xC298). But I or yourself should be able to add Sidewinder. VS 2010 project file is the correct one. Haven't updated the older ones. Just change usb VID/PID in usb-pad.c and probably needs some bit juggling in usb_pad_poll function. Atleast GT4 seems to ignore much of the usb report descriptor, but atleast uses the buffer length or i'm missing something.

E: Ah, saw the "PCSX2 coder" Wink
Reply
#4
(09-23-2013, 11:30 AM)jackun Wrote: E: Ah, saw the "PCSX2 coder" Wink

That doesn't mean much. I've never touched USB interfaces before, so your knowledge is surely better than mine on this Wink

So, any chance of you generalizing it a bit? if not, how should I modify it to "accept" (?) my wheel? Assume I can debug and single step it (if it compiles on my system).
[i7-3630qm/gt650m-2G/Win-7] [i7-4500u/R.HD8850m/Win-8.1] [2010-MBA/OSX-10.9.x]. Scroll smoothly with SmoothWheel for Firefox.
Reply
#5
(09-23-2013, 12:19 PM)avih Wrote: I've never touched USB interfaces before, so your knowledge is surely better than mine on this Wink

Hehe, me neither. Just google some past few days.
Change PAD_VID and PAD_PID in usb-pad.c. Hardest part is matching bits from ReadFile in usb_pad_poll() to generic_data_t.

I think hidP_GetUsages etc help make it more generic or just check from some game engine source Tongue

My quick googlefu fails me to find sidewinder's confs, but if want you could paste report/configuration descriptors here.
Using "lsusb" http://www.slashdev.ca/2010/05/08/get-us...ith-linux/
Reply
#6
(09-23-2013, 12:19 PM)avih Wrote: if not, how should I modify it to "accept" (?) my wheel?

Ok now it should pick up the first joystick it finds if i got that link collection stuff down correctly. You might want to manually remap the axes in source code for now though.
Force feedback i think may work out-of-the-box or atleast Logitech uses the same commands between atleast MOMO and Wii wireless wheel.

GT3 seems to care about report/configuration descriptors more so it is kinda broken right now Tongue
Reply
#7
(09-23-2013, 10:06 PM)jackun Wrote: Ok now it should pick up the first joystick ...

I guess you wanted to upload a new version but didn't? Smile If you do, please also keep the older versions online for reference. Thanks.

Also, which momo do you have? the red or the black? (I've been doing sim racing many years, though less so recently, which is also why I still haven't setup the wheel with my current system yet. Also, I do find GT4 a bit on the arcade-ish side... shhhhh!).
[i7-3630qm/gt650m-2G/Win-7] [i7-4500u/R.HD8850m/Win-8.1] [2010-MBA/OSX-10.9.x]. Scroll smoothly with SmoothWheel for Firefox.
Reply
#8
Ah, i updated the attachment.
Yes, bit too slidey. I got the black momo, i think.

I'll probably upload the source to github.

If it doesn't find the wheel, change the PAD_VID and PAD_PID in the attached program and paste the output here.


Attached Files
.7z   bitfieldstest.7z (Size: 72,66 KB / Downloads: 319)
Reply
#9
Just tried to compile your first (and only so far) upload, I get this error (I don't have a G drive and neither a PCSX2 root folder on any of my drives):

Quote: ResourceCompile:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /D NDEBUG /D _VC80_UPGRADE=0x0600 /l"0x040c" /IWin32 /nologo /fo".\Release\USBlinuz.res" Win32\USBlinuz.rc
MakeDirsForLink:
Creating directory "G:\Games\PCSX2\Plugins".
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1029,5): error MSB3191: Unable to create directory "G:\Games\PCSX2\Plugins". The device is not ready.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(1029,5): error MSB3191:
1>Done Building Project ... (build target(s)) -- FAILED.

Build FAILED.

It's probably best to use relative dirs only, and within your dir structure.
[i7-3630qm/gt650m-2G/Win-7] [i7-4500u/R.HD8850m/Win-8.1] [2010-MBA/OSX-10.9.x]. Scroll smoothly with SmoothWheel for Firefox.
Reply
#10
(09-23-2013, 10:35 PM)avih Wrote: It's probably best to use relative dirs only, and within your dir structure.

Yes, should change it to post build command.
Reply




Users browsing this thread: 1 Guest(s)