Retroplayer on Android

  Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Dark_Slayer Offline
Fan
Posts: 309
Joined: Nov 2012
Reputation: 9
Post: #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
find quote
garbear Offline
Team-Kodi Developer
Posts: 1,695
Joined: Dec 2010
Reputation: 109
Location: city of angels
Post: #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.

BTC: 1JtXwJdGdE9YnYgThWBT2StFCU5sEYkbVD (personal), https://kodi.tv/contribute/donate-bitcoin (foundation). Donations in the form of controllers, especially ones that don't work in Kodi, are also appreciated.
find quote
wsnipex Offline
Team-Kodi
Posts: 6,313
Joined: Jun 2011
Reputation: 163
Post: #3
I'll be happy to look at the build system once joystick stuff at least builds.
find quote
Anonymous Coward Offline
Junior Member
Posts: 10
Joined: Nov 2015
Reputation: 1
Post: #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...
find quote
Dark_Slayer Offline
Fan
Posts: 309
Joined: Nov 2012
Reputation: 9
Post: #5
[Image: 07bb1e7ec081040329933acc4e37d0fa.jpg]
find quote
garbear Offline
Team-Kodi Developer
Posts: 1,695
Joined: Dec 2010
Reputation: 109
Location: city of angels
Post: #6
the PR for the first half of retroplayer is up (PR 8807), and look at what the only remaining blocking TODO is Wink

BTC: 1JtXwJdGdE9YnYgThWBT2StFCU5sEYkbVD (personal), https://kodi.tv/contribute/donate-bitcoin (foundation). Donations in the form of controllers, especially ones that don't work in Kodi, are also appreciated.
find quote
Montellese Offline
Team Kodi Developer
Posts: 4,804
Joined: Jan 2009
Reputation: 66
Location: Switzerland
Post: #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.
find quote
garbear Offline
Team-Kodi Developer
Posts: 1,695
Joined: Dec 2010
Reputation: 109
Location: city of angels
Post: #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.

BTC: 1JtXwJdGdE9YnYgThWBT2StFCU5sEYkbVD (personal), https://kodi.tv/contribute/donate-bitcoin (foundation). Donations in the form of controllers, especially ones that don't work in Kodi, are also appreciated.
find quote
Montellese Offline
Team Kodi Developer
Posts: 4,804
Joined: Jan 2009
Reputation: 66
Location: Switzerland
Post: #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.
find quote
Montellese Offline
Team Kodi Developer
Posts: 4,804
Joined: Jan 2009
Reputation: 66
Location: Switzerland
Post: #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.
(This post was last modified: 2016-02-10 02:02 by Montellese.)
find quote
garbear Offline
Team-Kodi Developer
Posts: 1,695
Joined: Dec 2010
Reputation: 109
Location: city of angels
Post: #11
bamf

BTC: 1JtXwJdGdE9YnYgThWBT2StFCU5sEYkbVD (personal), https://kodi.tv/contribute/donate-bitcoin (foundation). Donations in the form of controllers, especially ones that don't work in Kodi, are also appreciated.
find quote
natethomas Offline
XBMC Chief and Kodi Project Manager
Posts: 6,154
Joined: Apr 2008
Reputation: 124
Location: Kansas
Post: #12
[Image: giphy.gif]
find quote
Montellese Offline
Team Kodi Developer
Posts: 4,804
Joined: Jan 2009
Reputation: 66
Location: Switzerland
Post: #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.
find quote
garbear Offline
Team-Kodi Developer
Posts: 1,695
Joined: Dec 2010
Reputation: 109
Location: city of angels
Post: #14
No, peripheral.joystick is still used to store and (soon) generate button maps

BTC: 1JtXwJdGdE9YnYgThWBT2StFCU5sEYkbVD (personal), https://kodi.tv/contribute/donate-bitcoin (foundation). Donations in the form of controllers, especially ones that don't work in Kodi, are also appreciated.
find quote
Hedda Offline
Fan
Posts: 673
Joined: Feb 2013
Reputation: 12
Post: #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
(This post was last modified: 2016-02-10 22:42 by Hedda.)
find quote
Post Reply