appirits-morioka / nulldc

Automatically exported from code.google.com/p/nulldc
0 stars 0 forks source link

Input from PS3 controller not working properly #108

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?

1: Start NullDC r38
2: configure keyboard controls for analog
3: keyboard presses only detect all-or-none digital input, no analog input

Suggestion: a plugin which supports analog input via joysticks

What is the expected output? What do you see instead?

The expected output is: analog input from joysticks from a controller 
hooked up to windows

But instead I see: can only configure all-or-none digital input

What version of the product are you using? What build? What plugins?

I use version: r38, Win32

I use a *Edit This*Release*Debug*-NoTrace*Edit This* build

I use the following plugins:

PowerVR Plugin: nullDC PowerVR -- Direct 3D HAL May 31 2010 (drkPVR_Win32)*
GDRom Plugin: Image reader plugin by drkII,Razial, Gigaherz May 28 2010
AICA Plugin: nullDC AICA May 28 2010
ARM7 Plugin: VBA ARM Sound CPU Core May 28 2010
Maple Plugin(s): nullDC controller Winhook June 1 2010 
drkMapledevices_win32
Ext.Device Plugin: NullExtDev May 28 2010 nullExtDev_win32

On what kind of system?

My system specifications are as follows:

Operating System: Windows 7 7600 Win32
CPU: C2D E8400
Video Card: 9800 GTX
Sound Card: None
Additional related hardware and/or software: nothing notable

Please provide any additional information below:

It's impossible to play Jet Grind Radio, because of the all-or-none digital 
input used in the controller plugin. 

At the first challenge from Tab, the second character you meet in the 
tutorial after starting new game, you are required to make a 'large' 
graffiti mark. To make a large graffiti mark you must push the analog 
sticks in certain directions and, presumably, at a particular pace like in 
a QTE event. The all-or-none keyboard style input used in Maple does not 
seem to afford this sort of input for the player, so it is impossible to 
pass this sequence.

Original issue reported on code.google.com by ravikgup...@gmail.com on 5 Jun 2010 at 2:39

GoogleCodeExporter commented 8 years ago
There's a plugin called... PuruPuru. Use it. ¬_¬

Original comment by KrossX3 on 5 Jun 2010 at 2:45

GoogleCodeExporter commented 8 years ago
Oh my... I can't believe I missed this... I tried looking yesterday and could 
not 
find it. Thank you for the solution!

However, there was another problem that has come up. I am using a Playstation 3 
controller with libusb driver for Win32. Using PuruPuru I was not able to 
configure 
the d-pad buttons. I was unable to apply any pad setting to the d-pad section 
in r38.

I tried to solve the problem myself by directly editing nulldc.cfg and manually 
adding the buttons. Up, right, down, left on the pad correspond to buttons 4, 
5, 6 
and 7 according to the way nullDC reads the controller (from select to PS3 Home 
button is 0 to 16).

0 to 3 are select, L3, R3, start
4 to 7 are up, right, down, left
8 to 11 are L2, R2, L1, R1
12 to 15 are /\, O, X, []
16 is Home button

I added that information to nulldc.cfg under the PuruPuru section for 
controller 1, 
but it did not affect anything.

I was able to assign joypad controls to all other buttons in PuruPuru (e.g. 
half 
press, start, L1, R1, face buttons, analog).

Maybe a temporary solution is to allow PuruPuru to detect joystick and keyboard 
input?

Is this report sufficient for a new issue?

Original comment by ravikgup...@gmail.com on 5 Jun 2010 at 5:27

GoogleCodeExporter commented 8 years ago
I think the problem is the controller reporting the HAT as buttons. PuruPuru 
uses
SDL, and looks for HAT input to use on the D-Pad, not buttons.

The controller should report the HAT as HAT though. Anyway, to check what SDL 
sees of
your controller use the following program.

=> http://www.mediafire.com/?tyyvyjxkh3m

Then, tell me if your D-Pad is actually a HAT or is reported as buttons. And 
no, no
need for a new Issue. We could just re-use this one.

Original comment by KrossX3 on 5 Jun 2010 at 5:42

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
They are only buttons. In the program KSX Joymunch it is reported as buttons 5, 
6, 7 
and 8 for Up, Right, Down, Left.

For nullDC it's 4, 5, 6 and 7 (but it's the same thing, this isn't a problem). 
The 
buttons are read in one or the other way in different programs.

I have experienced another weird phenomenon with PS3 controllers and 
configuring before while using ZSNES. This may be related, but I am not sure.

Sometimes when I would first configure the controller, the d-pad buttons would 
report 
peculiar buttons I never see except rarely while configuring ZSNES controls. 
Then I would start playing and play would be fine for a few minutes until the 
d-pad just 
stopped working or worked incorrectly. I felt like suddenly PS3 pad decided to 
change 
the input it was sending, but I don't know for sure.

To fix the problem, I would just reconfigure a second and final time so the 
buttons 
would read, for the d-pad, J14, J15, J16 and J17 (another example of a program 
reading PS3 controller input with different nomenclature) and there was never a 
problem again.

But anyway, that is just some particular information for Sixaxis/Dualshock 3. 
Using 
the LibUSB driver for PS3 pads on Windows, Up, Right, Down and Left are 
regularly 
recorded as buttons (as seen in Windows Control Panel for joypads).

I've attached a photo of the Windows Control Panel GUI for Dualshock 3. In the 
picture I am pressing Up and Right on the D-pad (5 and 6 in the picture, same 
as 4 
and 5 for nullDC).

Original comment by ravikgup...@gmail.com on 5 Jun 2010 at 6:00

Attachments:

GoogleCodeExporter commented 8 years ago
Alright, that's the problem then. D-pads are supposed to be HATs, not buttons. 
LibUSB
should fix that.

Anyway, will work on nullDC once PuruPuru can read either HATs or Buttons on any
section. So, wait until you see a commit about that. XD

Original comment by KrossX3 on 5 Jun 2010 at 6:06

GoogleCodeExporter commented 8 years ago
Lol, thanks for the help :)

Original comment by ravikgup...@gmail.com on 5 Jun 2010 at 6:08

GoogleCodeExporter commented 8 years ago
Also, great program btw :)

Original comment by ravikgup...@gmail.com on 5 Jun 2010 at 6:11

GoogleCodeExporter commented 8 years ago
JoyMunch a great program? Is horrible. >_<
But it does what's required of it at least. =P

Here, try with the new changes: http://www.mediafire.com/?mgqmmmmtldv

Original comment by KrossX3 on 6 Jun 2010 at 1:11

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Nice update. I was able to test it right away :)

You have definitely fixed all the joypad buttons. Every button (0 through 16) 
on a 
PS3 controller can now be assigned to any input on the DC pad in PuruPuru.

Also, the buttons are recorded as B0 through B16 now, instead of 0 to 16.

Unfortunately, in this version of PuruPuru I cannot configure the axes. No 
input of 
either joystick will register.

However, I can currently assign a button to an axis with that version in 
comment 9.

P.S. I meant to say nullDC is a great program :)

Original comment by ravikgup...@gmail.com on 6 Jun 2010 at 1:26

GoogleCodeExporter commented 8 years ago
You cannot map any axis? Delete your seetings and try again please.

You should be able to map anything to anything. Buttons show up as B##, and Axis
should up as A## and it's sign.

Original comment by KrossX3 on 6 Jun 2010 at 1:36

GoogleCodeExporter commented 8 years ago
I deleted nulldc.cfg after replacing PuruPuru.dll in the plugins section and 
tried 
again. I got the same results.

I've attached two photos. The first (before) is showing I first reset the 
configuration. The second (after) shows the results after trying to configure 
all 
controls. Every button assignment works in the modified PuruPuru.dll except for 
the 
analogs with axes.

In 'Y-axis Down' I pressed L3 (press down Left analog stick, Button 1 from 
buttons 0 
to 16) to show I could assign a button to the axes sections.

Hope that helps :)

Original comment by ravikgup...@gmail.com on 6 Jun 2010 at 2:20

Attachments:

GoogleCodeExporter commented 8 years ago
I found two bugs already. But none that should make you unable to map an Axis.

When you use JoyMunch, are the axis of your controller detected and working as 
Axis?

Original comment by KrossX3 on 6 Jun 2010 at 2:27

GoogleCodeExporter commented 8 years ago
Yes, both the analogs are axes. I've attached a photo showing my Dualshock 3's 
input 
while holding the left analog stick Down and Left. Axis 1 and 2 from joymunch 
are for 
the right analog stick and also respond properly.

I've also attached a second photo which may help solve the issue. This photo is 
from 
ePSXe 1.7.0 using it's built-in pad plugin. There are two things which I think 
may be 
notable. Using this plugin:

1. it is impossible to assign a button to any axes

2. you can assign a 'single direction' of the analog stick, NOT an axis, to a 
button 
(I have shown this in the picture, I assigned to L2 a left analog stick upwards 
motion, so if I leave that configuration and play a game then an upwards motion 
of 
the left analog will press L2).

Hope that may help, cheers :)

Original comment by ravikgup...@gmail.com on 6 Jun 2010 at 2:43

Attachments:

GoogleCodeExporter commented 8 years ago
Odd. If it shows as axis... you should be able to map them. >_<

Try this one: http://www.mediafire.com/?wugmy0zvwdw
Again, delete your settings beforehand.

Original comment by KrossX3 on 6 Jun 2010 at 2:47

GoogleCodeExporter commented 8 years ago
You got it! Everything is working. I can assign any button as well as left and 
right 
analog axes to nullDC analog in PuruPuru :)

And just so we don't leave this anti-climactic, the results are in the 
attachment below 
:)

Thanks so much for the help, great work, and cheers :)

Original comment by ravikgup...@gmail.com on 6 Jun 2010 at 2:57

Attachments:

GoogleCodeExporter commented 8 years ago
Great!

Original comment by KrossX3 on 6 Jun 2010 at 3:00

GoogleCodeExporter commented 8 years ago
Fixed by r42.

Original comment by KrossX3 on 6 Jun 2010 at 6:53

GoogleCodeExporter commented 8 years ago
The link for  KrossX3's updated plugin is now dead.

Anyone have a mirror?

Original comment by damiendi...@gmail.com on 19 Feb 2012 at 5:32