This is mostly to document the lack of this and the other related issues with it.
Currently, mgba supports binding the gyro to 2 axises which typically would be one stick on a controller. This is fine if the hardware has no gyro, but is very inaccurate because the coordinate system used doesn't match what an actual gyro would do. This means that even using steam input on the deck to bind the gyro to a stick and then the stick to mgba's gyro, it's not going to work well (from my testing, it can partially work, but it's overall not really playable).
The solutions other emulators like citra does is they support DSU which is a protocol made to pass the sensor data via a server. There is support for this on the deck and it makes the gyro essentially perfect on citra. Endrift however did not wanted to add support to DSU and would rather want a direct access to the sensors.
That's essentially where we are. There is currently no way to play twisted using the hardware gyro. I know it can work because I actually been emulating gold on citra and the gyro is perfect.
The text was updated successfully, but these errors were encountered:
Native support would be great, but you also can accomplish this through editing the controller settings through Steam. Set the gyro as an analog stick and bind it to tilt/gyro in mGBA.
Nope, I brought attention to this issue specifically because this doesn't work well. The issue is although it technically allows to use the gyro, it behaves improperly because the coordinates system makes it not work. It's even more odd on a stick itself, the gyro is BARELY better.
@endrift Thanks so much for working on this! What is this mapping? (the physical joystick to a gyro?)
I'm wondering if this is even possible without mGBA enabling game-specific hardware. If I understand correctly, the WarioWare Twisted cartridge contained a gyroscope. There was nothing in the GBA that supported this and I don't think the GBA would even be aware of the gyro.
I think the original request was to map the Steam Controller gyroscope (I think SDL supports this?) to the cartridge gyroscope.
Yes, this lets you directly map a gamepad axis value to the gyroscope value. Steam Input lets you (very confusingly) map a gyro to right joystick, axes 3 and 4, so using this you can use axis 3 to map lateral rotation to the in-game gyroscope (which only measures roll or yaw, depending on your perspective--in Steam Deck parlance it's yaw).