********************
* update on usb sniffer *
********************
Turns out Dolphin is not sending rumble commands for collision at all? In the first build is was but the second its only sending a force when I hit the a button. Originally I though it was the magnitude but now I can see there are no forces coming over the usb for collision ( like hitting a wall ). I can show you how to check this on your end if you like. USBTrace does the trick but you godda cr4ck it or your limited by a log of 255 lines.
***********
*end update*
***********
Quote:Not everybody has a blissbox and GC steering wheel. We are emulating the steering wheel with an equivalent PC device.
I see, I thought to goal was to emulate the GC wheel. Would it be a simple option to add "PC Wheel" and "GC wheel" to the list of controllers?
Quote:And if they have a blissbox and GC steering wheel, and they want to play a Windows DirectX game, do you want the player to remap their steering wheel to the game?
Well in the hardware world you dont mess with design. If you have drivers with hardware then you can give addition options there. In my case if someone wanted to use the Bliss-Box on a PC game, yes they would do the mapping there. The entire point in what I do is allow the computer to interface with the actual hardware where possible. Things like writing to an lcd screen ( dream cast controller ) would entail some software assisting. In the case of emulators, typically the user gets to set up the controller the way they see it best. Just like dolphin does. So in that sense I agree. In this case dolphin natively expects to see steering on the Y axis, the console wheels typical use the Y axis but PC wheels evidently use the X access. So you made a special fix in the core emulation to make it easy for PC wheels so they dont have to go in and change mappings. ehh, ok.
I think your good to go then. Looks like Dolphin has a wheel option. I'll work out my FFB issues later on, does not look to be on your in in that last description of what you said but there is one thing left I dont get.
Quote:128 - 113 = 15
15 / 128 = 0.1171
0.1171 * 10000 = 1171
the GC sends a unsigned int (0 to 255 ) not a signed int (-128 to 128 )?
255 - 113 = 142
142 / 255 = 0.5568627450980392
0.5568627450980392 * 10000 = 5568.627450980392
example from your logs:
11:40:957 Src\HW\SI_DeviceGCController.cpp:266 E[SI]: unknown direct command (0x300697)
11:44:777 Src\HW\SI_DeviceGCController.cpp:266 E[SI]: unknown direct command (0x3006aa) 0xaa is 170 proving is uses numbers > 128 so it must be sending 0x00 to 0xff
11:44:891 Src\HW\SI_DeviceGCController.cpp:266 E[SI]: unknown direct command (0x300480)
in C++ all ints are signed right, so you would have to use as uint or are you putting the hex value from the direct command in to a signed int, preserving all data?
0x0A should be -118
0xA0 should be 32
0xFF then would be 128
also this implies you are putting it to a size of 10,000
Quote:0.1171 * 10000 = 1171
The range is -10,000 to 10,000 yes? So you would need to do
0.1171 * 20000 = x
then x - 10000
otherwise you are ways sending a positive number ( unsigned ).
Just trying to be constructive here of course.