Opened 4 years ago

Closed 2 years ago

Last modified 12 months ago

#6871 closed defect (wontfix)

ANDROID: Amazon Fire Controller Joystick Deadzone When Fully Tilted

Reported by: SF/harlekinrains Owned by: csnover
Priority: normal Component: Port: Android
Keywords: Cc:
Game:

Description

Latest nightly build, but also on the latest stable release.

Scummvms Controller Emulation of the Amazon Fire Game Controller works out of the boy, as far as button mappings are concerned, but it shows a strange behavior with the analog stick mouse emulation, that renders Scummvm unusable in all scenarios.

The mouse emulation works, when the left Analog stick is tilted for 0 to about 80%, but as soon as you tilt it all the way to the end in any direction - Scummvm interprets this as a dead Zone - and mouse movement is stopped instantly.

Obvious to say, that this renders the use of Scummvm impossible for any real purpose.

Please look into this and dont discard it as a fringe issue.

Ticket imported from: bugs/6871.

Change History (12)

comment:1 by SF/harlekinrains, 4 years ago

out of the box (typo)

comment:2 by digitall, 4 years ago

Summary: [Android] - Joystick deadzone, when fully tilted (Amazon Fire Game Controller)ANDROID: Amazon Fire Controller Joystick Deadzone When Fully Tilted

comment:3 by digitall, 4 years ago

harlekinrains: The Amazon Fire is not really official supported, although being an Android device, it should work with the stock Android build.

I don't think any of our Android developers own an Amazon Fire, so I doubt this will get much attention. If you want to investigate, then I suggest you compile the latest source code yourself and do some debugging with your Fire to work out why the joystick has a dead zone at full deflection. See:
http://wiki.scummvm.org/index.php/Developer_Central
http://wiki.scummvm.org/index.php/Debugging_ScummVM
http://wiki.scummvm.org/index.php/Compiling_ScummVM/Android

comment:4 by SF/harlekinrains, 4 years ago

It is highly unlikely, that this is an issue with only the Fire TV Controller. But it is definitely reproducible with one.

I'd say your controller integration is botched. And the problem has to be reproducible with many controllers out there. Id say it has something to do with your implementation of mouse acceleration - because even when you hold it halfway down, you get movement, but then it force stops after a few inches, until you change direction.

Retroarch (another multi system emulator) for example doesnt even know the Fire TV controller (not even the mappings), but after you do the mapping for it - it works with their ScummVM core (which is based on the nightlies), without it showing the problem. (Allthough it is unusable because of another implementation bug (resulution scaling vs mouse emulation speed.))

Furthermore - NO emulator, or game (sideloaded, not downloaded from an Amazon store) I have EVER tried on the Fire TV (Stick) has EVER shown any problems while the Analog stick is used. And they all have to use different implementations.

So may I ask from you, that you first look into the generic implementation of your Controller Mouse Emulation -- because its very, very likely that it breaks there.

Also - the Fire TV Stick right now is the Android settop box (/stick) with the fastest sell through and install base out there. Just saying. When you get away from a "people only use us on their phone - touching the screen" standing, maybe start looking into how people will use you on android set top boxes - because its a growth market.

Right now, the Android built doesnt even have controller mappings for "toggle mouse cursor speed", while some of the console ports in the past had.

Work on a more solid implementation. Android TV boxes/sticks arent going away.

comment:5 by digitall, 4 years ago

SIGH. Nothing you have said changes the fact that none of our Android developers are likely to have hardware to replicate this or have spare time to investigate.

If you want this fixed, feel free to look at this yourself. Otherwise, this will be addressed at some point in the future when/if they have hardware, spare time and inclination to fix.

comment:6 by SF/harlekinrains, 4 years ago

Im giving you likelyhoods, I'm giving you reasons why you should look into this (look, there is a whole new slew of devices out there, that are probably dominating the living room environment for the next 10 years and they all are running Android, so you practically have to do nothing, except tie up the loose ends...) - and you have a hard time

  • to find the person that has written the mouse emulation code for the Analog stick of any controller in the Android build.
  • a dev with a bluetooth controller and an Android device.

You are "flagging this low priority" - because WAYNE -

While you are offering an Android build for the device category with the highest uptake in years - that is literally broken. HINT - most of those Android settop boxes/sticks will never get connected to a mouse/keyboard and TVs dont have touchscreens.

With reporting on the issue and probabilities I have done what I am able to to address this.

So on top of your sigh (that may still be valid) --

Let me add another one...

SIGH They missed the start and uptake of an entirely new product category and now find it - reasonable - to bring those devices in - to a playable state - whenever. They dont even see them as devices worth the effort - but still maintain the android build as part of their core three development platforms.

Project management anyone.

(Maybe a newcomer could fix our mouse emulation code, ...)

comment:7 by lordhoto, 4 years ago

I am pretty sure you have no idea how a project like ScummVM works. We do this in our free time. And of course we focus on bits which personally affect us, what we want to see fixed ourselves, first. The people who worked on the Android port in the past are either busy right now or not active anymore. That's life.

It seems you want to get someone from us to look into fixing your issue. However, you do a miserable job at motivating people to do so. You just rant, your statement about "project management" just makes you look impolite, and will definitely not increase your sympathy rating with anyone.
What is really just bad behavior is that after people politely point out that nobody is looking at this right now and the likelyhood is small that someone will, you show an attitude which is makes people question what your parents taught you when it comes to manners.

You then even go on to show your complete ignorance by trying to make it sound ridiculous that a "newcomer" would be able to fix this issue. A lot of people got into open-source projects because they liked some feature added or some bug fixed, even vastly more complicated issues than analog stick support. However, you show no interest to do anything on your own. Instead, you are rude to the people you want to fix the issues you experience. I suggest that, next time you want people to fix your issues, you should think about the whole situation before writing a reply.

comment:8 by digitall, 4 years ago

I have looked at the libretro codebase for ScummVM here: https://github.com/libretro/scummvm

They basically have forked the ScummVM codebase and added a new backend called "libretro" to connect to the libretro code. This implements a virtual mouse and keyboard input and graphics, sound and music output as per "real" backend platforms, thus they are bypassing our Android backend, hence the difference in behaviour.

I think they too had issues with the Android Fire Analog sticks having a dead zone as this commit is present:
https://github.com/scummvm/scummvm/commit/2229ea8f7b8968b823cb9ec4ff011642fbf66316

Unfortunately, libretro have not upstreamed any of their changes back to ScummVM, but they seem to be tracking our repository and merging changes, so I would suggest that if this works fine with ScummVM under the RetroArch / libretro frontend / platform, then you should just use that for now.

comment:9 by csnover, 2 years ago

Component: Ports

comment:10 by csnover, 2 years ago

Owner: set to csnover
Resolution: wontfix
Status: newclosed

This ticket is a dumpster fire. If this is an issue for any other user, please go ahead and open a new, less inflammatory ticket requesting this support.

comment:11 by criezy, 2 years ago

Also there is a possibility that this has been fixed when using the androidsdl backend (assuming this is not a Amazon Fire specific issue) as support for joystick has been considerably improved in sdl-based backends since that report (thanks to the contribution from a "newcomer" who was interested in improving the joystick behaviour).

comment:12 by digitall, 12 months ago

Component: PortsPort: Android
Note: See TracTickets for help on using tickets.