PlayCover/PlayTools

[Bug]: 'rounded square' mouse input anomaly

Closed this issue · 6 comments

Describe the bug

exactly as the title says, here are some of the strange, abnormal behaviour i observed when playing around with this rounded square mouse area input in genshin impact, see below for some of the scenarios i tested

software versions:

  • playcover: 2.0.4 (233)
  • macOS 13.2

hardware configuration:

  • M1 macbook air, 8GM RAM, 7 core GPU
  • built-in trackpad mouse input

playcover/genshin settings:

  • m1 iPad identifier
  • auto resolution (1440x900)
  • in-game settings set to all highest with 60fps cap
  • low power mode is not enabled

single rounded square mouse input

Screenshot 2023-01-26 at 10 54 12 PM

observation: works as you'd expect from the circle mouse input at first glance, but as you start to play the game, things start to get weird. if you teleport to a waypoint or use a 5 star character's elemental burst, the input becomes unresponsive afterwards. A way to restore input and be able to pan the camera again is to open/close keymap editor (cmd + k) or release/lock keymapping (via option key). Restarting the game has the same effect, until it breaks again after u use a teleporter or burst

two rounded square mouse input

Screenshot 2023-01-26 at 10 51 30 PM

observation: even more broken than having just one, you get the same issue as the previous and more! If you try to walk your character with this setup and pan the camera while walking, the WASD keys will get stuck, or sometimes will randomly zoom the camera in and out as you press the dpad keys while moving the mouse cursor.

also, if you try to revert this wacky keymap configuration, like by deleting both of them and restoring the single circle mouse input, the bug will still somehow linger around with the exact symptoms as if they didnt get deleted at all, only after a restart will it start working normally again with the single circle mouse input

one circle mouse input + one rounded square mouse input

Screenshot 2023-01-26 at 10 40 05 PM

observation: if you try to pan the camera, there's a massive input lag and it doesnt even pan properly, try sliding your finger around on the trackpad, its kinda funny. If you delete the rounded square input, camera will no longer pan at all anymore and will only zoom in and out. Can be only fixed with a restart after deleting it and leaving a single circle mouse input behind, simply removing the rounded square does not properly fix it

two circle mouse input

Screenshot 2023-01-26 at 10 39 11 PM

observation: could not find any faults in having 2 of these in the keymap, at least for now

not sure if this is an issue on other games too, maybe i'll test later in honkai impact

Steps to reproduce

its in the bug description

Expected behaviour

probably not this kind of behavior

Crash log

no crash

What version of PlayCover are you using?

2.0.3

What version of macOS are you using?

Ventura (macOS 13)

Issue Language

  • Yes my issue is written in English

This is very interesting

Basically, by round square, it means to control the joystick panel. That's why it is not suitable to control camera: it will stay pressed unless back to center, instead of frequently lifting off to regain camera control. It would be pointless to have two types of identical mouse areas out there after all. You can further find ways to observe the touch point behaviour if interested. Or look at the code, which is at line 146 of PlayAction.swift.

So this is probably not a bug in code, but rather a lack of documentation.

It would be better to have context menus in keymap editor, in which we can provide more descriptions of different types of mappings. But that's not something on the top of our todo list yet.

Basically, by round square, it means to control the joystick panel. That's why it is not suitable to control camera: it will stay pressed unless back to center, instead of frequently lifting off to regain camera control.

I still don't quite understand, how come the rounded square works fine and behaves identical to the circle in camera movement control UNTIL you trigger certain in-game actions? And only by releasing/locking cursor you can restore the expected behavior after it gets stuck? If it stays pressed wouldn't it bug out the moment you try to use it?

It would be pointless to have two types of identical mouse areas out there after all.

Right, so in terms of interaction design choice there should probably be a way to prevent users from doing silly things like placing more than 1 of each mouse input area. (Though an exception should be made for the circle mouse one since that's needed to create draggable buttons, and doesn't seem to cause any weird outcomes)

So this is probably not a bug in code, but rather a lack of documentation.

Worth mentioning the stutter issue when people use an external mouse with the circle input doesn't occur on rounded square (though I'm not sure if they have also have the same problem where camera gets stuck after using burst, I will try to find some users and ask). Another thing is that when you press any key while the rounded square button is selected, it turns into a dpad/WASD input for some odd reason, there's def something buggy with that.

It would be better to have context menus in keymap editor, in which we can provide more descriptions of different types of mappings. But that's not something on the top of our todo list yet.

I agree, it's unfortunate not a lot of people read the docs even though there are some relatively detailed explanation on the keymap editor already.

Yes the current keymap editor is not well designed for now. Actually there is a new keymap editor interface plan, that's why there is not much design considerations in the current editor interface. Problems will be solved in the new interface.

Circle mouse would do more calculations to decide on when to lift off, so it may be slower I guess? Although I don't really understand how can it be so significantly slow. I will test more to see if anything goes wrong.

As for specific behaviour of rounded square mouse, that's related to how Genshin handles camera touch. When you do an element burst (of a 5 star character or Barbara), the game would temporarily disable player's camera control, and re-enable it when element burst ends. When camera control is re-enabled, it does not recognise the touch point starting from before the burst as controlling it. The player must start a new touch to control the camera again.

When releasing cursor, playtools would brutely releasing all pressing touch points. When cursor is locked again and the player uses the rounded square mouse, it would start a new touch point, consequently regaining camera control.

You can try putting rounded square mouse on the direction panel, and use your mouse to control chracter movement. It would be easier to understand.

Ahh I see that makes sense now

I have removed rounded square mouse from editor menu. It can now only be created by pressing a mouse button while fouces on a WASD joystick, so that people won't misunderstand it.