Emuforums.com

Go Back   Emuforums.com > PS2 Emulation > PS2 Plugin Questions & Troubleshooting
About Us Register FAQ Members List Calendar Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old May 31st, 2008   #321 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
XInput is an API that *only* works with the xbox 360 controller. I'm not going to use it because I don't like the idea of having to support an entire API because Microsoft decided to cripple their Direct Input Xbox 360 controller drivers by leaving out force feedback support. I don't mind (much) adding hacks to work with buggy drivers, but Microsoft is being deliberately evil with XInput. Forcing every piece of software that wants to use force feedback with an Xbox 360 controller to use a new API for no good reason is just...Well...classic Microsoft.

Unfortunately, I don't think there are currently any uncrippled Direct Input drivers for wireless 360 controllers. There are a couple for the wired ones.

Hmm... Haven't heard of anyone having that issue with 0.8.4.

I don't think the problem is that the window isn't on top. Unfocusing and refocusing the window causes me to reinitialize Direct Input devices. I think something's going wrong the first time I try and get input. Unless I'm able to duplicate the issue myself, not sure I'll be able to figure this one out. Might be some incompatibility with the latest versions of GSDX. Tried a number of runs with GSDX 0.1.7 SSE3 DX10 and PCSX2 0.9.5 SVN 351, with no issues (I haven't been using PCSX2 much/at all lately, so no reason to compile later versions myself).

Odd that it only happens when you have hacks enabled. I had thought it was a lower level issue than what it now sounds like.

Edit: I'm attaching a pair of very lame attempts to get around the problem. I don't think either will work. Both just initialize DirectInput a little later in the startup process. They each have different plugin names, so you can stick them both in your plugin directory at once without any confusion. Also, make sure you set pad 1 and pad 2 to be the same version of the plugin when testing, just to be safe. Odd zip file name is because for some reason I can't upload from FF right now, so had to use a url, and the website's script doesn't like spaces.

<New release, attachment removed>

Last edited by ChickenLiver; July 4th, 2008 at 16:14.
ChickenLiver is offline   Reply With Quote
Old May 31st, 2008   #322 (permalink)
The Dark Knight
 
SiTWulf's Avatar
 
Join Date: Jul 2004
Location: Spain
Posts: 10
Quote:
Originally Posted by ChickenLiver View Post
XInput is an API that *only* works with the xbox 360 controller. I'm not going to use it because I don't like the idea of having to support an entire API because Microsoft decided to cripple their Direct Input Xbox 360 controller drivers by leaving out force feedback support. I don't mind (much) adding hacks to work with buggy drivers, but Microsoft is being deliberately evil with XInput. Forcing every piece of software that wants to use force feedback with an Xbox 360 controller to use a new API for no good reason is just...Well...classic Microsoft.

Unfortunately, I don't think there are currently any uncrippled Direct Input drivers for wireless 360 controllers. There are a couple for the wired ones.

Hmm... Haven't heard of anyone having that issue with 0.8.4.

I don't think the problem is that the window isn't on top. Unfocusing and refocusing the window causes me to reinitialize Direct Input devices. I think something's going wrong the first time I try and get input. Unless I'm able to duplicate the issue myself, not sure I'll be able to figure this one out. Might be some incompatibility with the latest versions of GSDX. Tried a number of runs with GSDX 0.1.7 SSE3 DX10 and PCSX2 0.9.5 SVN 351, with no issues (I haven't been using PCSX2 much/at all lately, so no reason to compile later versions myself).

Odd that it only happens when you have hacks enabled. I had thought it was a lower level issue than what it now sounds like.

Edit: I'm attaching a pair of very lame attempts to get around the problem. I don't think either will work. Both just initialize DirectInput a little later in the process. They each have different plugin names, so you can stick them both in your plugin directory at once without any confusion. Also, make sure you set pad 1 and pad 2 to be the same version of the plugin when testing, just to be safe. Odd zip file name is because for some reason I can't upload from FF right now, so had to use a url, and the website's script doesn't like spaces.
OMG!!! WORKS!!! the Test2 works perfect!!!! no more problem..

The Test3 not work very well, but the test2 is perfect! you finally fix it!

oh... sorry i only like to help you finding a few info for XINPUT, in these pages tell is too easy too add the code and have the two codes working (DInput & XInput). Maybe... you can take one of your free time to try, i can be your betatester if you need one
But not problem, is your pluing, and i like your support!... thanks again to fix the problem for me... thanks!

Im reading this Wikipedia Article with more info about this Xinput: http://en.wikipedia.org/wiki/DirectInput

EDIT: Great news!!!

I find this file: http://www.katch.ne.jp/~morii/xi/xi.zip
Only need to install to have a complete Rumble in the LilyPad Plugin without need to install any trith party driver, or uninstall official MS driver. this thing only redirects all DirectInput calls to XINPUT is too easy to use!.

Download the file, unpack and right click the INI file and chose Install... and ready to use it!
__________________

Last edited by SiTWulf; May 31st, 2008 at 22:29.
SiTWulf is offline   Reply With Quote
Old May 31st, 2008   #323 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
Glad that works. Test 2 and 3 both initialize Direct Input when Pcsx2 queries it for button input, as opposed to when Pcsx2 tells the pad plugin to initialize. They do it in response to slightly different function calls. I figure the problem is the initialization order of something I'm doing and something the GS is doing isn't always quite right.

It's not that the XInput API is difficult to use (It's much easier than DirectInput, actually). The problem is that I resent the API's existence. Instead of improving or replacing DirectInput, Microsoft made an API that is only capable of supporting the XBox 360's controller, or controllers that have the exact same set of buttons as the XBox 360's controllers (Or a subset of those buttons). Then they go around calling Direct Input a "legacy" API, which I find irritating.

So the morii driver is a DirectInput wrapper for XInput? XBCD, which is what I normally suggest, communicates with the Xbox 360 controller directly instead, so it only works for the wired version of the controller. I just assumed the morii driver worked the same way.

Last edited by ChickenLiver; June 1st, 2008 at 05:45.
ChickenLiver is offline   Reply With Quote
Old May 31st, 2008   #324 (permalink)
The Dark Knight
 
SiTWulf's Avatar
 
Join Date: Jul 2004
Location: Spain
Posts: 10
Quote:
Originally Posted by ChickenLiver View Post
So the morii driver is a DirectInput wrapper for XInput. XBCD, which is what I normally suggest, communicates with the Xbox 360 controller directly instead, so it only works for the wired version of the controller. I just assumed the morii driver worked the same way.
My friend... this works like a Charm!!!... i have Rumble in Microsoft Vista Games (Like Lost Planet) and all others Games too!!!... is incredible only one file and works like a charm!!!... now i can see and configure the rumbles in your plugin perfect, the "TEST FF" works! and i have the original Microsoft Driver for my gamepad!!!

But i need your help again my friend... how to configure the Rumbles for this gamepad?... i see 3 times the DX Gamepad in Rumble feature... but i dont know how to configure
__________________
SiTWulf is offline   Reply With Quote
Old May 31st, 2008   #325 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
The numbers represent all force feedback "axes" the controller says it has. The entries with multiple numbers let you set a motor to cause multiple axes to trigger.

To bind an axis, just select the Xbox 360 controller in the first pull down menu, select the axis or axis list you want to bind in the second pull down, and then select small motor or big motor. To test the effect, select it from the binding list and click "test FF". You obviously already managed to get this far.

When a motor binding is selected, the slider that normally sets sensitivity will set vibration strength. The small motor always vibrates at full force or not at all, as it only has two settings on the PS2 (On and off). The big motor can vibrate with varying degrees of force. The force you select for the big motor is the maximum vibration level. The default of 1.0 maps max PS2 motor vibration to max device vibration. A value of 2.0 will map half PS2 vibration and higher to max device vibration, and a value of 0.5 will map max PS2 vibration to half device vibration, etc.

Basically you need to figure out which number corresponds to which motor, and then set the weaker motor to the small motor and the stronger one to the big motor. Depending on the strength of the smaller motor, you might want to decrease its vibration level.

Alternatively, you could set both axes to the big motor. Or both axes to both motors, and then give the big motor a vibration of 0.8 and the small motor a vibration of 0.2. It's pretty flexible. If you enable multiple binding on the first page, you can also set a PS2 motor to trigger multiple axes with different levels of vibration.

As has been mentioned in recent posts, the different sets of axes don't seem to work, then try toggling the "1D forces" option under hacks on the first screen.

Last edited by ChickenLiver; May 31st, 2008 at 23:16.
ChickenLiver is offline   Reply With Quote
Old May 31st, 2008   #326 (permalink)
The Dark Knight
 
SiTWulf's Avatar
 
Join Date: Jul 2004
Location: Spain
Posts: 10
Ok... i test in game and works... i get Rumble perfect in game... my friend we finally get a perfect rumble with only one DLL.

Ok for all others...

The first detected Motor is FF1
The secnd detected Motor is FF2
The tirth detected Motor if FF1+FF2

Big Motor - Constant
Small Motor - Sine

And one thing!... remember to FLIP the L2+R2 axis!!
__________________
SiTWulf is offline   Reply With Quote
Old June 7th, 2008   #327 (permalink)
Registered User
 
Join Date: Mar 2008
Location: Poland
Posts: 22
is this plugin also for keybord?

if yes how i have to configure it for work in keybord?;o i tottaly don't know :| will somebody help?:P

Last edited by Taggin; June 7th, 2008 at 08:55.
Taggin is offline   Reply With Quote
Old June 7th, 2008   #328 (permalink)
Angel of Death
 
bositman's Avatar
 
Join Date: Jun 2002
Location: Athens, Greece
Posts: 3,477
The first page has tons of documentation,why don't you read that?
__________________
bositman is online now   Reply With Quote
Old June 7th, 2008   #329 (permalink)
Registered User
 
Join Date: Mar 2008
Location: Poland
Posts: 22
cuz i don't understand all in the first post. I see now that have keyboard support but still don't know how configue buttons.

edit: oh lol now i know sorry :|
Taggin is offline   Reply With Quote
Old June 7th, 2008   #330 (permalink)
Registered User
 
Join Date: Sep 2007
Location: USA
Posts: 5
I'm using a wired XBox 360 controller with the XBCD drivers (possibly version 0.2.6? hard to tell), and I can't seem to get rumble working correctly. The motors listed don't seem to correspond to the motors on my controller.

This is what the "FF Test" button gives me as I go through the options:

FF1 Constant: Both motors
FF1 Sine: Nothing
FF1 Ramp: Small motor
FF1 Square: Nothing

FF2 Constant: Both motors
FF2 Sine: Nothing
FF2 Ramp: Small motor
FF2 Square: Nothing

FF1+2 Constant: Both motors
FF1+2 Sine: Nothing
FF1+2 Ramp: Small motor
FF1+2 Square: Nothing

This is the same for the 0.9.1 on the first page and the test version on page 12.


I can't say for sure it doesn't work in game, because I never really know if I game is trying to use the motors separately or together. The rumble works correctly in the driver panel, though, and I distinctly remember SSSPSX PAD working with both motors independently in Final Fantasy X. (This plugin is, however, much more responsive in several games than SSSPSX PAD.)


EDIT:
I get exactly the same thing in the test 2 and test 3 posted on this page, with or without "1D Force feedback forces" checked. If I check "2D Force feedback forces" I don't get any response at all.
__________________
Windows Vista SP1
Core 2 Duo E6420 @ 3.2 GHz
GeForce 8600 GTS @ 750/1133 MHz
2 GB Muskin DDR2 @ 800 MHz
Turtle Beach Montego DDL

Last edited by NonWonderDog; June 7th, 2008 at 19:11.
NonWonderDog is offline   Reply With Quote
Old June 7th, 2008   #331 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
Don't think there's anything I can do for you, unfortunately. Unless there's some bug in the 20-40 lines of code to set up force feedback that I've repeatedly missed, which is always possible, then the problem isn't my fault. As a lot of people have been having trouble with FF, I have been looking at that code a lot lately, but just can't see anything wrong with it. Almost certain it's just buggy drivers.

My only suggestion for making only your big motor rumble is to enable multiple binding on the first page and then set both FF1 constant and FF2 ramp (With flip checked for FF2 ramp) to the big motor, and then set FF2 ramp non-flipped to the small motor as well. Don't think this will work, but it might.
ChickenLiver is offline   Reply With Quote
Old June 15th, 2008   #332 (permalink)
Registered User
 
Join Date: Jan 2002
Posts: 112
Quote:
Originally Posted by ChickenLiver View Post
LilyPad should support any standard control (POV control, axis (absolute, relative, 1-direction or 2), and button) on any Direct Input device. I'd imagine a wheel is just a standard axis and foot peddles are just single-dimension axes (Or you could call them pressure sensitive buttons, sliders, whatever). Regardless, they should work with LilyPad, though you'll have to configure everything so it's all mapped to the corresponding PS2 controller buttons.

Hello and thank you Chickliver.

Chickliver I have a question. Please bare with me as I don't want to confuse you:

Ridge Racer 5 is a racing for the PS2. It supported the Dual Shock, as well as the Namco NeGcon. But it also supported a controller called the Namco JoGcon. The JoGcon was a handheld controller that had a round mini wheel on the face of the controller.



Ridge Racer 5 was the *only* PS2 game compatible with this controller. The game that delivered 100% TRUE STEERING WHEEL FORCE FEEDBACK to this mini wheel. The reason I enphasize 100% TRUE FFB, is because this is the same FFB you'd feel with a Logitech wheel if you played Gran Tursimo 3, only on a mini handheld wheel.


So....what I'd like to know is, if I use an FFB wheel for my PC with Ridge Racer 5 via this plugin, what are the chances I will feel the same TRUE FFB effects that are delivered to a real JoGcon on a real PS2?
__________________
GENTLEMEN: START YOUR ENGINES!!

Daytona USA is emulated for the PC.

*NOTHING more needs to be said*
isamu is offline   Reply With Quote
Old June 15th, 2008   #333 (permalink)
B( o Y o )BS!
 
GiGaHeRz's Avatar
 
Join Date: Feb 2002
Location: Spain
Posts: 883
Quote:
Originally Posted by isamu View Post
what are the chances I will feel the same TRUE FFB effects that are delivered to a real JoGcon on a real PS2?
I'm not sure what the plugin exactly supports, but I see onyl a few posible situations:
  1. The pad uses standard dualshock/dualshock2 features, which would mean the plugin can emulate it normally, and you just have to map the force feedback "axis" correctly.
  2. The pad uses a special command set with specific values only for this kind of pad, which would mean the plugin would need special code to handle it.
  3. The pad uses standard commands but handled in a non-standard way which would also require special treatment from the plugin.
__________________
"There's only one absolute truth in our world: shït happens." - Gigaherz (whoever decided "s-h-i-t" is a obscene word needs to grow up a few years)

The Book and other stories:
Tears of Fantasy - An Online Book... by ME!
MetaLife, Inc. (intro)
SubGaea (intro)
Crow Blade (intro for now)
Memories - Prayer from the fallen hearts.

My weblog... not like if there was too much to read on it tho.
For anyone interested, there's a mirc script which converts "/me 's" into " * nickname's whatever" and adds a nice "/my" command.
GiGaHeRz is offline   Reply With Quote
Old June 15th, 2008   #334 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
What GiGaHeRz said.
ChickenLiver is offline   Reply With Quote
Old June 16th, 2008   #335 (permalink)
Registered User
 
Join Date: Jan 2002
Posts: 112
Ahhh, I think I see what you're saying. So basically the plugin only recognizes dual shock vibration effects and translates them through the emu to out game/wheel? Or does the plugin also recognize Immersion's force feedback signal, and does the same thing?

For example, if I connect my force feedback wheel and use it on PCX2 to play Gran Turismo 3, will Lilypad recognize those force effects and deliver them to my wheel? Or will it *ONLY* recognize standard Sony Dual Shock rumble(which is totally different from true Immersion FFB)? When people use the term force feedback they usually mean true Immersion steering wheel force feedback, as felt in all the Gran Turismo games.
__________________
GENTLEMEN: START YOUR ENGINES!!

Daytona USA is emulated for the PC.

*NOTHING more needs to be said*
isamu is offline   Reply With Quote
Old June 16th, 2008   #336 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
It recognizes standard PS2 vibration commands and maps them to DirectInput vibration commands.

If your proprietary device operates using standard PS2 vibration commands, and the Direct Input driver you're using, in combination with LilyPad, map the PS2 vibration commands back to PS2 commands properly, then it will work. If not, it won't.

When people use the term force feedback, in my experience, they generally mean the ability to make a controller vibrate in some way in response to what's going on in game, rather than referring to a single steering wheel I've never heard of before in my life. I'll also point out that "true Immersion force feedback" seems to be a term of your own creation. "Immersion force feedback" "Gran Turismo 3" - Google Search

Anyways, without knowing whether the wheel maps the standard 0 to 255 force range (+ 0 to 1 for the small motor) to whatever special vibration it uses, I have no idea whether it will work or not.

Last edited by ChickenLiver; June 16th, 2008 at 07:02.
ChickenLiver is offline   Reply With Quote
Old June 16th, 2008   #337 (permalink)
[Suggest a custom title]
 
Mr. Killjoy's Avatar
 
Join Date: Nov 2002
Location: Somewhere I don't belong (La Rochelle, France)
Posts: 7,753
About the crash+slow resizing issues I posted a while ago. I've been playing for a while and now I can say that with Mouse disabled and Keyboard in Raw mode, both problems disappeared. You told me it would fix resizing slowness and crashing was unrelated, but maybe they have something in common TBD :I
__________________
Leader of "The Pessimists' Club"

CPU: Core 2 Q6600@3GHz - RAM: 2GB DDR2 (Corsair PC6400)
VGA: GF8800GTS 512MB OC - Mobo: Gigabyte EP35C-DS3R - PSU: Antec Trio 650w
24Mb/1Mb ADSL - WindowsXP-Pro SP2
---------------------------------------------
All ePSXe plugins up-to-date


http://mrkilljoy.deviantart.com/
Mr. Killjoy is offline   Reply With Quote
Old June 16th, 2008   #338 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
Hmm...Slow resizing is fixed for me. I'll look into it again at some point. Raw keyboard mode works fine, but Windows Messaging does not?
ChickenLiver is offline   Reply With Quote
Old June 16th, 2008   #339 (permalink)
[Suggest a custom title]
 
Mr. Killjoy's Avatar
 
Join Date: Nov 2002
Location: Somewhere I don't belong (La Rochelle, France)
Posts: 7,753
Well, last time we talked about slow resizing, you said disabling mouse would work normally (and it does) but also that you'd try to fix the other modes in the next version. It was already 0.9.1 at this time ^^ You prolly fixed it and forgot to post the new build I dunno, I don't have any problem playing with the workaround you gave.
I just wanted to tell you that haven't got any random crash when switching apps and going back to gsdx for a while, and it seems to be from the day I disabled mouse.
__________________
Leader of "The Pessimists' Club"

CPU: Core 2 Q6600@3GHz - RAM: 2GB DDR2 (Corsair PC6400)
VGA: GF8800GTS 512MB OC - Mobo: Gigabyte EP35C-DS3R - PSU: Antec Trio 650w
24Mb/1Mb ADSL - WindowsXP-Pro SP2
---------------------------------------------
All ePSXe plugins up-to-date


http://mrkilljoy.deviantart.com/
Mr. Killjoy is offline   Reply With Quote
Old June 16th, 2008   #340 (permalink)
Plugin author
 
Join Date: Apr 2006
Location: Perdition
Posts: 557
Oh... Was thinking I'd posted a fix. Download the "LilyPad test.rar" from the previous page, and see if that works for you, should have the fix. That the crashes went away means there might be more going on with capturing/releasing the mouse than I thought. Wouldn't be surprised if it's an unrelated (And thus unfixed) mouse bug.
ChickenLiver is offline   Reply With Quote
Reply

Thread Tools