English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 21 June 2013, 09:52   #1
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
D-Pad input (Xbox360 controller) partially broken in 2.6.1

Hi Toni,

I'm using an XBox360 controller as CD32 pad in the CD32 emulation and noticed that the D-Pad input is partially broken in 2.6.1. It will not register all inputs. WinUAE 2.6.0 is last good working version.

Simple testcase: load up Clockwiser CD32 until the game selection screen (see attached screenshot). Now move the white pointer in circular motion with the analog stick. This works fine. Now do the same with the D-Pad. You'll notice that the pointer will not move in circles, but stops now and then.

Last edited by Dr.Venom; 15 May 2019 at 20:30.
Dr.Venom is offline  
Old 23 June 2013, 21:11   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
I can't duplicate. Both stick and d-pad works normally. (Wireless Xbox360 pad)

EDIT: Perhaps analog stick is loose and generates random movement signals? Events are combined, for example if press comes from input source x, then release from input source y, release from input source x will be ignored.

Last edited by Toni Wilen; 24 June 2013 at 10:09.
Toni Wilen is offline  
Old 24 June 2013, 14:29   #3
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
I can't duplicate. Both stick and d-pad works normally. (Wireless Xbox360 pad)

EDIT: Perhaps analog stick is loose and generates random movement signals? Events are combined, for example if press comes from input source x, then release from input source y, release from input source x will be ignored.
I've also tried my other XBOX360 controller (both are wired) but it has the same issue.

Did you test ClockwiserCD32 example? The issue is that it only on and off misses the input, which you'll notice most clearly in the Clockwiser testcase by moving the cursor/d-pad in circular motions. I've attached ClockwiserCD32 statefile starting at the menu ans also attached winuaelog.zip in case thats helpful.

After testing older WinUAE versions I found that the issue has been introduced with 2.6.1 beta 2:

2.5.1 Works correctly
2.6.0 Works correctly
2.6.1-beta1 Works correctly
2.6.1-beta2 Has the issue

Given the changes in that release I guess it seems likely that one of these may be to blame?

Quote:
http://www.winuae.net/files/b/winuae_2610b2.zip

Beta 2:

- Do not filter all keyboard presses without matching releases, only filter repeats. (Which isn't that simple because press and repeating press are identical events)
- Inverted keyboard releases (=press) required matching release before next press event was accepted. (This update wasn't really needed but maybe in future it will be more useful)

Last edited by Dr.Venom; 15 May 2019 at 20:30.
Dr.Venom is offline  
Old 24 June 2013, 19:40   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Statefile also works fine. I tried to move it in random directions, clockwise and anti-clockwise.

EDIT: rawinput in use? (not directinput?) Keyboard change stuff shouldn't affect anything unless Invert setting is enabled.

Last edited by Toni Wilen; 24 June 2013 at 19:46.
Toni Wilen is offline  
Old 24 June 2013, 20:51   #5
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Maybe there is a difference between wired and wireless XBOX controller?

I've noticed that if I do custom "remap", with applying D-Pad "left, right, up, down" to the CD32 direction controls, then it works flawlessly. See attached screenshot for the "remap".

Unfortunately the default XBOX360 controller layout for CD32 pad will have the issue (since 2.6.1 b2). I don't mind making a custom mapping, but I'd rather have it working out of the box..

The controller is listed under the rawinput devices in winuaebootlog.txt:

Code:
RawInput enumeration..
RAWINPUT: found 13 devices
04EC091B hid: '\\?\HID#VID_045E&PID_028E&IG_00#8&13a96b8a&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'

******** USB HID: 'Controller (XBOX 360 For Windows)'
Any other possible clues?

Last edited by Dr.Venom; 15 May 2019 at 20:30.
Dr.Venom is offline  
Old 25 June 2013, 09:26   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Fixed.

Interesting, wired pad does work differently, every d-pad movement sends two packets (Why? No idea.), both d-pad press and release, d-pad only, buttons work normally, both packets have same d-pad values bu stick values can be slightly different.

If stick value changed (even by one, which happens quite regularly when moving the pad or pressing buttons/d-pad), it was detected as stick being returned back to center. This "canceled" d-pad movement if it came in same packet.

Real bug was: wrong "old" value was stored without dead-zone correction.
Toni Wilen is offline  
Old 25 June 2013, 12:15   #7
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
Fixed.

Real bug was: wrong "old" value was stored without dead-zone correction.
Perfect, thanks for fixing it!
Dr.Venom is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
WANTED: CD32 Competition Pro Pad Controller Peter MarketPlace 0 18 November 2010 00:34
"Flower Power" by Anarchy partially broken with CE on Maren support.WinUAE 2 23 December 2009 17:18
WTB: Any Xbox360 controller Smiley MarketPlace 18 14 December 2008 00:16
Partially broken search killergorilla AMR data problems 2 19 March 2007 22:04
Broken controller port Poor Student support.Hardware 10 21 September 2006 18:48

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 23:10.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08789 seconds with 15 queries