Next Generation Emulation banner

Pokopom XInput Pad Plugin

2 reading
99K views 104 replies 22 participants last post by  frikiloko  
#1 · (Edited)
Pokopom XInput Pad Plugin

An open source XInput input plugin for PSX emulators, PCSX2, nullDC 1.0.4, Chankast 0.25 and many N64 emulators.

Image


[Wiki] | [Download] | [Changes]

If you have any issues, feel free to post it here or use the [Issue Tracker].
 
#2 ·
New version 1.7

Image


Code:
1.7 - 	2011-12-26
		Added GUI and settings are saved to an INI file. The file is saved
		besides the plugin for PSX emulators and on the INI folder for PCSX2.
Finally a GUI that looks nice with those blasted tab controls, cuz I used to have ugly backgrounds on static text and whatnots. Anyhow... I hate tabs now.
 
#4 · (Edited)
I messed something up already though, since Ape Escape doesn't want to detect it. XD

Also controller 2 should have Xinput#2 as default, to avoid both pads active on the same controller.

#EDIT: There, new version. =D

Code:
1.7b - 	2011-12-26
		Fixed a bunch of bugs from the new "features". 
		Changed Dualshock1 ID for the one used on DualShock2. (Ape Escape)		
		Default to Xinput#2 device for second pad.
Missing parenthesis are evil. Still, I remember that old ID to be working though... or maybe I was using the DS2 ID. *ponders*
 
#5 · (Edited)
Just a small change (v1.7c), replacing the Spacebar key for the Scroll Key for the analog mode toggle.

#EDIT: more changes...

Code:
1.8 - 	2012-02-19
		Vibration effects will last at least 150ms now to compensate for motor
		delay. Makes some instant effects noticeable. And was about time to
		change the version number. XD

1.7d - 	2012-02-18
		Follow up on the previous change, now the Scroll Lock led will be on
		if either pad is with the analog mode on. If you try to switch it off
		but cannot, that's because the pad is on lock mode.
 
#6 · (Edited)
One more!

Code:
1.9 - 	2012-02-20
		New vibration curve, tested specially to feel nice on Chrono Cross's
		intro. Also, a guitar build for X360 Guitar owners that wanna play
		Guitar Hero in PCSX2. (really WIP)
The Chrono Cross intro is supposed to have an incremental effect towards the tower then again gradually off, but the plugin made barely any difference. That's what |reset| said to me, and was totally true. So after getting some numbers I ended up with this curve http://i.imgur.com/6I0Ue.png that really feels a lot nicer than straight linear.

As for the guitar, I was able to make Guitar Hero detect the controller as a guitar. But since I don't have a guitar I merely compared what the controller seemed to do against MSDN's information of XInput guitars. I think for the most part it should work nicely though.

#UPDATE!

Code:
1.10 - 	2012-02-23
		Some guesswork at command 0x40, and some bugfix at command 0x4F. That
		fixed some games not detecting the Dualshock2 controller. Also, fixed
		the deadzone which was bugged.
Should work well now in Tales of Destiny, Sakura Wars and some other games for the PS2.

#UPDATE2!

Code:
1.11 - 	2012-02-23
		After gathering some analog stick data I saw the corner cases where
		always beyond the ideal circle, so I now extend only when that happens.
		This means, almost no range is lost in order to reach the corners. =D
		Also an extra check to stop vibration on pause.
The gathered data in pdf format: http://www.mediafire.com/?7bk7udrd8e5d3mt

The blue and violet dots are the left and right stick respectively. Then is just the ideal circle, the exted circle to reach the corners and the evil square. Interestingly, I thought the controller was more circular.
 
#7 ·
Very good pad plugin. Seem to work very good so far.

I have encountered a very strange problem thou; in Castlevania SOTN (the only game I've been trying) I get random sound popups of sounds that are in the game, but should not appear at that moment. Like say, if I jump, sometimes I get a sound of a elevator chain rattling. It does not appear instead of the intended sounds, but more like together with it.

Any idea how this is even possible? I kind of suspected XInpit, but LilyPad with XInput does not have this sounds bug.

LilyPad is good, but I'd rather use Pokopom as it seems a touch more stable for me.
 
#10 ·
I played a bunch and didn't encounter such issue at all. =S
What emulator and sound plugin are you using?

New version 1.12

Code:
1.12 - 	2012-03-09
		Fixed/improved the analog toggle key.
Quite silly of me with my usage of GetAsyncKeyState. Since I forgot it can also return whether the key was pressed on a previous call or not. And since I was indeed "pressing" it to toggle the LED, it would then toggle the analog on the next pass if the game had not locked it.

Due to that, Disgaea could start up flickering the light while trying to stubbornly get the analog mode to stay on. It would seem like it should've used the lock mode, but sends a 0x01 for that instead of 0x03.
 
#16 ·
Nah, just refactoring so that it was more presentable. So... dunno... weird. XD

There was only one potential issue, which I replaced with a warning too. But you should've seen some messages on the console and possible some controller problems while at it. So nope, should be just the same. =S
 
#17 ·
Been testing some more now, still using v2.0 r7... the sound bug happened again, thou only once in a loading area (going into reversed cursed library) but it did happen. I could however not reproduce it at all. :-/

I have played through the game once with LilyPad on XInput settings and I had no such bugs happen (lots of other bugs thou ;-p). I also played it through with SSSPSX v1.7 DirectInput and it also worked ok.

By this I only suggest that most likely no other of the plugins used should be the cause of this.
 
#25 ·
Wow, KrossX.

I've been reading your posts all over this forum for hours figuring out how to work ePSXe, shark, plugins, etc., all have been great help.

I was using shark + lilypad for ePSXe 1.70 with FFVIII, but the deadzone was non-existent and Squall would just run all over the place erratically. Tried to fix that by calibrating with joy.cpl, but it didn't fix anything.

This plugin made everything work perfectly with no additional effort at all. Very nice.
The only oddity I have noticed so far is that right on the right stick acts as the O button. O button also works as O button. This is likely due to some lazy mapping/mistake on my part, though. It's been a long night; damn Mars landing and all...

Great work!
 
#26 ·
Thanks. =D

That should only happen when the analog mode is off (scroll lock LED, scroll lock key for toggle). With analog off, the left stick copies the dpad and the right stick the face buttons. I made it so cuz my DualShock2 does that, and I like that it makes use of the sticks while in digital mode.

Maybe that caused the weird behavior with LilyPad? Having the analog mode off that is.