I am a computer freak since the Sinclair ZX81
Just had to comment on this one!
Although I did not own/use this classic home computer by myself (I've started with the C64, as many did), a friend in school had this machine. As far as I remember, it had 1 KB RAM, and my school friend extended the RAM memory of his ZX81 by soldering some more RAM to the mainboard, up to something like 4 or 8 KB...
So all that is missing for full Fire TV remote control support seems to be a came controller mapping file.
I had to adjust the game controller calibration program for the Fire TV, to be able to skip unused game controller buttons in the calibration process (as the Fire TV's remote control obviously does not have all those axes and buttons that is available on a standard Xbox style game controller). (Skipping unused axes and buttons is done via keyboard keys or touch screen input, which are both not available on the Fire TV remote, so I had to add the Android "menu" key/button for this purpose, which is also available on the Fire TV remote control.)
So the R'n'D APK now ships with a mappings file that finally also contains the mappings for the Fire TV remote control!
To make everything work conveniently, I also had to patch the SDL 2.0.5 code to add support for the "rewind" and "fast-forward" buttons (bottom left and right on the remote control), which are not supported by the current SDL version. This finally gives the following key/button mappings of the Fire TV remote control for R'n'D:
- up/down/left/right: usual navigation in menu and game
- select button inside the "navigation ring": left joystick button ("snap" in the game, "yes" in request dialogs, "return" key in the menu)
- back button: acts like the "escape" key in the PC version ("no" in request dialogs)
- home button (unused; cannot be used inside the app)
- menu button: acts as right joystick button ("drop" in the game, "yes" in request dialogs)
- play/pause button: acts like the "space" key in the PC version (start game in menu, pause/play in the game)
- rewind button: like left joystick button ("snap" in the game, "yes" in request dialogs)
- fast-forward button: like right joystick button ("drop" in the game, "no" in request dialogs)
You may wonder why "back" (on the left side of the remote control) and "menu" (right side) work as "no" and "yes", while "rewind" (left side) and "ffwd" (right side) work as "yes" and "no", which seems a bit confusing, as the "yes" and "no" buttons are placed left and right in the request dialogs. This is mainly because "back" is usually the logical choice for "no", so "menu" acts as "yes". Then, on some Android devices (like on my Samsung Galaxy S4 mini), the "back" key is on the bottom right and the "menu" key on the left side of the device.
I've also added an input device detection for the overlay virtual buttons, which are useless on the Fire TV (but not on a phone or tablet): If input from keyboards or game controllers is detected, the virtual button overlay is automatically faded out, while it is automatically faded in when input on touch devices is detected.
Finally, with all these additions and changes, it is not only technically possible to fully play R'n'D on the Fire TV, but it actually works very well and is a lot of fun to play R'n'D games with the remote control (which is surprisingly precise to control the player in the game, using "snap" and "drop" buttons just like it should be)! I was surprised how good it works, and played quite a number of the tutorial levels on the Fire TV!
Too bad, but my programming skills lie 30 years back. But I'm good at testing programs
You might want to try by yourself -- here's an APK for testing:
http://www.artsoft.org/RELEASES/rocksnd ... 0712-1.apk
Please let me know if it works for you!
If you also want a Windows (?) binary with the latest game controller code for testing, let me know! So far I've only tested the new game controller support on Linux and Android.
If all works well, I may be able to release a new version soon...