English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 08 December 2022, 16:35   #1
Turran
Moderator
 
Turran's Avatar
 
Join Date: May 2012
Location: Stockholm / Sweden
Age: 49
Posts: 1,575
Bit buggy with Mouse/Joystick autoswitching.

WinUAE 4.9.1


Start with
Port 0: Mouse
Port 1: Joystick #2
Joystick #1 not enabled in WinUAE
Start moonstone. Select 2 player training (Or whatever).
Verify that the green guy is controlled by mouse. Blue by joystick #2 as it should be.

Click button on Joystick #1 to enable it. All looks good and the green guy is now controlled by Joystick #1. Blue is still on Joystick #2.

Click mouse button. Port 0 changes to mouse as it should and green guy is now controlled by the mouse.
Blue guy, however, can be moved with both Joystick #1 and Joystick #2..

Click button on Joystick #1 again and it moves back to where it should be. Controlling the green guy

Click mouse again and both joysticks are now controlling the blue guy.

Now for the fun part. Move and click joystick #2 which is controlling the blue guy. Then click the mouse button.

Joystick #1 is now controlling the GREEN guy and joystick #2 is controlling the blue, so both joysticks switched ports.

So I guess it switches out the port that was last clicked.. would be so much better if mouse/joy switching only worked on port 0. Who has a mouse in port 1 anyway?

It is a bit hard to explain since its behavior feels random. Just play with it for 2 minutes and you'll notice it jumps around a bit.
Turran is offline  
Old 09 December 2022, 16:31   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,573
Do you have Input panel set to "Game Ports panel" or "Configuration #1-3"?

And when multiple input devices control same player, select matching device from Input panel list and check if both devices are also configured to same port? (=visible behavior matches configured behavior)
Toni Wilen is offline  
Old 11 December 2022, 16:00   #3
Turran
Moderator
 
Turran's Avatar
 
Join Date: May 2012
Location: Stockholm / Sweden
Age: 49
Posts: 1,575
Its set to "Game Ports Panel"

It seems the visable behaviour matches the configuration. Although today, I can not get both joysticks to control the same char but it did switch the joystick ports at one point.

I tried to capture it in this video. All looks good until the last switch where it switched the two joysticks around instead of taking over the mouse.

I'll try a bit more to get it to mess up in other ways, but its very random how it behaves.

http://grandis.nu/downloads/joy1.zip

Sorry for the messy desk. Had to rearrange it some to try to get as much as possible into view.
Turran is offline  
Old 11 December 2022, 16:09   #4
Turran
Moderator
 
Turran's Avatar
 
Join Date: May 2012
Location: Stockholm / Sweden
Age: 49
Posts: 1,575
Here is another where it goes haywire. Looks good to start with and then goes all bonkers near the end, switching the joysticks around. For a few seconds, both joysticks controlled the same char but that felt more that it just switched the joystick ports around. Not the same behavior as before where it just locked both joysticks to the same char.

http://grandis.nu/downloads/joy2.zip

As you can see near the end when it just switched the joysticks around, I did not even move of press the mouse.

Last edited by Turran; 11 December 2022 at 16:15.
Turran is offline  
Old 11 December 2022, 17:14   #5
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,573
I tried (2 joysticks and 1 mouse) but I can't duplicate it. Videos won't help because it only shows that something happened but it won't help to find out why.

Try some joystick tester program in basic A500 mode. Does it still happen? Does it still happen if you use default quickstart config? (First move configurations\default.uae, if it exists, somewhere else)
Toni Wilen is offline  
Old 11 December 2022, 19:53   #6
Turran
Moderator
 
Turran's Avatar
 
Join Date: May 2012
Location: Stockholm / Sweden
Age: 49
Posts: 1,575
I will try. I might add that it also happens in Amiberry on a Pi400 (same code apparently).
Turran is offline  
Old 25 December 2022, 12:22   #7
Turran
Moderator
 
Turran's Avatar
 
Join Date: May 2012
Location: Stockholm / Sweden
Age: 49
Posts: 1,575
Edit: Seems this is by design and I have not understood how it works. Saw this in the changelog for 2.3.3
- Non-configured joystick/mouse autoswitch update: short firebutton press or move left = insert into joystick port, longer press or move right = insert into mouse port.

Since I just did a short press, it only switched port 2. Not found where this is documented.

I'll test it with the Retro Fun Twin again... Update coming.

Edit2: Well, I'm a bit stumped. It seems to work the same way with both the 8bitdo controllers as with the Retro Fun Twin, so at least its not that.

Default:
Port 1: HID-Compliance Mouse [2]
Port 2: Controller (XBOX 360 For Windows) [2]

Long press on Controller (XBOX 360 For Windows) [1]: It takes over the mouse in Port 1. All OK as documented above.

Reset to default.
Move right on Controller (XBOX 360 For Windows) [1] (should have the same effect as above): It instantly goes to Port 2, taking over control from Controller (XBOX 360 For Windows) [2], so its now [1]. Not as documented.
Move right on Controller (XBOX 360 For Windows) [2] and the same thing happens. It now takes over again in Port 2. Mouse, in Port 1 still active and not changed still.
Move LEFT on Controller (XBOX 360 For Windows) [1]. It now takes over the mouse port. Aha.

Conclusion:
Seems like the changelog where I found the information is wrong.
Short press or move right = The inactive controller gets activated in Port 2.
Long press or move left = The inactive controller gets activated in Port 1.

Long/short press in changelog is correct. Left/Right in changelog is reversed.

So I think all it really needs is a better explanation on how mouse/joy autoswitching works and how you are supposed to control it =)
Optionally, I think perhaps get rid of the left/right switching as that can happen by accident when you pick up the inactive controller.
Short press on inactive controller should put it in Port 1 and a long press on inactive controller should put it in Port 2. Reversed from the setting today.

Why? 99% of the time I would guess users want to replace the mouse in Port 1 with a controller when playing a game. If you just pick up your inactive controller, the most intuitive thing to do is just to press the button quickly which, today, just replaces your current controller in Port 2.

Edit3: This information is also wrong and could use an update.


Edit4: The mouse seems to not work the same way. When the mouse is inactive (both joysticks are enabled in Port 1 and 2), a short mouse button press enables it in Port 1 as should be but a long press enables it in Port 2. Left or right (any direction) does not trigger the mouse to be enabled again.
So for the mouse, to activate it again, its the opposite mouse button configuration from joysticks and left/right does nothing. It works exactly as my suggestion on how it should work for controllers above.

No wonder I thought this thing had a life of its own =)

---[ Original post ]---

Verified it with https://aminet.net/package/util/misc/ControllerTest. Same thing happens with it.

I thought it might be my Retro Fun Twin that lets me use the standard Amiga joysticks, so disconnected it and I plugged in two 8bitdo controllers and get the same thing.

This movie is from 4.10.0 using a Quickstart A500, 1.3 ROM OCS and Moonstone loaded from TOSEC ADF instead of WHDLoad. No configurations/default.uae file.

This time I could not get it to switch out the mouse at all. It just switches Port 2 between the two "Controller (XBOX 360 For Windows) [1] & [2].

Weird that you can not replicate it. Can someone else test as well?

http://ftp2.grandis.nu/downloads/joy3.zip

If you still can't replicate it (Guess you can't), would it be possible with a test version that only monitors and switches port 1?

Last edited by Turran; 25 December 2022 at 13:51.
Turran is offline  
Old 26 December 2022, 15:21   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,573
Quote:
Originally Posted by Turran View Post
Optionally, I think perhaps get rid of the left/right switching as that can happen by accident when you pick up the inactive controller.
Yeah, it probably should be removed or require multiple seconds to switch. (I also forgot about this feature..)

Quote:
Why? 99% of the time I would guess users want to replace the mouse in Port 1 with a controller when playing a game. If you just pick up your inactive controller, the most intuitive thing to do is just to press the button quickly which, today, just replaces your current controller in Port 2.
This is not the case it was originally designed. It was case where no game controllers are connected (like powered off wireless xbox pad). Joystick button 1 = insert it in joystick port (where it is almost always going to be inserted), Mouse button 1 = insert it in mouse port.

Button 2 and long press inverts port selection.
Toni Wilen is offline  
Old 26 December 2022, 22:55   #9
Turran
Moderator
 
Turran's Avatar
 
Join Date: May 2012
Location: Stockholm / Sweden
Age: 49
Posts: 1,575
Any way is fine as long as its reflected when hovering over the mouse/joystick autoswitch settting I guess.
I would guess the most likely config on the emulator is that you always have your two controllers connected + mouse to control workbench. Then you could switch out the mouse for a joystick easily when launcing a (whdload) game for two player or if needing port 1.
But I bet you have more experience in this question =) Its fine the way it is, as long as the left/right is removed or perhaps changed with a delay like you said, and also described.. somewhere so people like me does not get confused why the inactive joystick sometimes goes to port 1 and sometimes port 2 when picking up the controller, bumping the direction.

Or perhaps hold the button and left to enable it in port 1 or hold the button and right to enable in port 2. Just brainstorming.

Quote:
Originally Posted by Toni Wilen View Post
This is not the case it was originally designed. It was case where no game controllers are connected (like powered off wireless xbox pad). Joystick button 1 = insert it in joystick port (where it is almost always going to be inserted), Mouse button 1 = insert it in mouse port.

Button 2 and long press inverts port selection.
Edit: Oh yeah, I forgot. The mouse works in the opposite way. Short press for port 1 and long press for port 2. That is extra confusing but makes more sense. That is also why I advocate for a change of long/short presses on the controllers so they work the same way.

Last edited by Turran; 27 December 2022 at 12:21.
Turran 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
WinUAE v3.2.2 - Autoswitching Issue DamienD support.WinUAE 5 28 December 2015 21:04
Use joystick cable for mouse? 1988 support.Hardware 4 08 December 2010 21:36
1.6.0: buggy mouse on/off hexaae support.WinUAE 19 01 June 2009 23:48
P2AM -- PS/2 mouse for your 16-bit Atari/Amiga mikro News 4 26 April 2008 14:26
WHDLoad and Joystick/Mouse fortytwo project.WHDLoad 11 04 April 2007 13:26

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 04:52.

Top

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