Retroplayer on Android
#1
Greetings,

Sorry for being too dunce to understand this without asking, but what keeps retroplayer from existing on android?

Not asking it to be done, available today, etc. I'm just curious about the availability of test builds in win/mac/nix/rpi yet never android. Just wondering if there are specific things missing in Android

Thanks for any insight
Reply
#2
joystick support is missing on android. The build system for the emulators needs to be modified to build for android. Those two things are all that's left

I'm working on android joystick support. This will be included when I merge my input work in 17 alpha 1 (january timeframe). Another team member was asking about android support, so if he takes care of the build system stuff we can get some android builds out after the input stuff is merged.
Reply
#3
I'll be happy to look at the build system once joystick stuff at least builds.
Reply
#4
Looking forward to this a lot, actually - just might push me into getting one of those Android Shield units. You have to think it should be able to handle whatever's thrown at it from an emulating standpoint. I wonder if, given that the shield comes with its own controller, the API would/could be streamlined for it...
Reply
#5
Image
Reply
#6
the PR for the first half of retroplayer is up (PR 8807), and look at what the only remaining blocking TODO is Wink
Reply
#7
I've updated my android buildsystem today and am ready to look into getting the controller-input branch and peripheral.joystick compiling for android.
The only necessary change for peripheral.joystick seems to be https://github.com/Montellese/peripheral...480f07ba0a but I haven't built Kodi yet and I haven't looked into joystick support yet which might be tricky because IIRC from my work on the initial Kodi fork you need the main activity and its environment to access any kind of input events.
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#8
I started porting to android in c7755afb6. The main strategy is to connect android joysticks to some kind of bus (possibly the existing "addon" or "application" bus, or a new "JNI" bus). Then, they'll show up in the peripherals manager. After that, the bus needs to call OnButtonMotion(), and OnAxisMotion() on the appropriate peripheral, and things should work.
Reply
#9
Yeah that's what I thought as well. I just wanted to check first if it would be possible to do it in peripheral.joystick like all other joystick APIs that we support. I would probably create a new CPeripheralBus implementation specific to Android as the NDK provides a generic interface for all joysticks. It's different from the addon implementation IMO.
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#10
OK after spending some time on bringing my android buildsystem back up to speed and setting up my ADT-1 for development again I have extended some of the JNI wrappers to access the android InputManager and more properties of the InputDevice class. Then I've implemented a CPeripheralBusAndroid class which is able to read all controllers. It however ignores everything except joysticks and gamepads as it actually lists virtual, GPIO and keyboard devices as well.

The controllers aren't shown in the Peripherals list yet but haven't had time to look into that yet.
Figured it out Cool
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#11
bamf
Reply
#12
Image
Reply
#13
It's not that great yet. It simply polls the list of available input devices. I haven't managed to get the callbacks/events for new/changed/removed devices working yet. It always crashes Kodi. I probably messed up some JNI call but I've never done callbacks so far.

Either way now that I have the controllers I can look at forwarding the input events to the new peripheral bus and implement ProcessEvents(). Unfortunately that's not gonna happen before the weekend Undecided

@garbear: should we disable building peripheral.joystick for android as it won't be used?
Always read the online manual (wiki), FAQ (wiki) and search the forum before posting.
Do not e-mail Team Kodi members directly asking for support. Read/follow the forum rules (wiki).
Please read the pages on troubleshooting (wiki) and bug reporting (wiki) before reporting issues.
Reply
#14
No, peripheral.joystick is still used to store and (soon) generate button maps
Reply
#15
(2016-02-10, 01:42)Montellese Wrote: OK after spending some time on bringing my android buildsystem back up to speed and setting up my ADT-1 for development again I have extended some of the JNI wrappers to access the android InputManager and more properties of the InputDevice class. Then I've implemented a CPeripheralBusAndroid class which is able to read all controllers. It however ignores everything except joysticks and gamepads as it actually lists virtual, GPIO and keyboard devices as well.

The controllers aren't shown in the Peripherals list yet but haven't had time to look into that yet.
Figured it out Cool
Cool! Could the team please consider doing the same for Apple's official Game Controller Framework + API in iOS 7 and OS X 10.9 or later?

http://forum.kodi.tv/showthread.php?tid=204398
(2014-09-15, 12:31)Hedda Wrote: Apple introduced an official Game Controller Framework + API from iOS 7 and OS X 10.9
http://www.mactrast.com/2013/06/apple-to...mavericks/
http://www.raywenderlich.com/66532/ios-7...r-tutorial

Would it be possible for you to add joystick / gamepad support of it in RetroPlayer?

You can find that developers documentation in the Apple Game Controller Programming Guide here
https://developer.apple.com/library/ios/...ction.html
https://developer.apple.com/library/ios/...efColl.pdf

This should enable native support for joysticks and gamepads under iOS and Mac OS X
(2015-09-17, 13:10)RockerC Wrote: FYI, it looks like Apple earlier this month updated their official Game Controller Framework to be tvOS (Apple TV 4) and iOS 9 compatible, see:

https://developer.apple.com/library/prer...llers.html
https://developer.apple.com/library/prer...index.html
https://developer.apple.com/tvos/human-i...teraction/
https://forums.developer.apple.com/thread/17355

SteelSeries Nimbus is the reference game controller and the first official gamepad to support Apple TV with tvOS (ATV4) and iOS 9:

https://steelseries.com/gaming-controllers/nimbus
Reply

Logout Mark Read Team Forum Stats Members Help
Retroplayer on Android0