Kodi Community Forum
RetroPlayer Test Builds (updated for Nexus) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Game support (https://forum.kodi.tv/forumdisplay.php?fid=292)
+--- Thread: RetroPlayer Test Builds (updated for Nexus) (/showthread.php?tid=173361)



RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-07-26

(2023-07-26, 09:20)KOPRajs Wrote: Any good news regarding this? I'm watching the status of the PR for removing the global VAOs with hope that when it gets merged, we can finally get the libretro GL support. Is it still possible to get it into v21?

No news recently, might not happen for v21.

(2023-07-26, 09:20)KOPRajs Wrote: It looks nice, but what exactly is the purpose of the player profile except to set the avatar? It seems to add a lot of complexity, but I can't imagine a real usage of it.

A player profile could do a lot of stuff, like storing achievements, saved games, button maps, online syncing, or netplay discovery/matchmaking. Speaking of complexity, Kodi profiles are the worst code-wise, and maybe player profiles could let us rip out a lot of Kodi profile code.


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2023-07-27

It seems to me that better approach would be to refactor the Kodi profiles and then integrate all of these features into the Kodi profiles. Most of these features doesn't make sense to be assigned to each player in-game.

Think of this:
You can change the Kodi profile and inside the profile you get your avatar picture, your button maps, your saved games and your your achievements account (and a Netplay account). If you don't need more than 1 profile, you simply stay with the default profile and don't need to care about it.

Now how would it work with the player profiles assigned to each player in-game? You can't have a different player profile selected for each player, can you?


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-07-27

(2023-07-27, 16:36)KOPRajs Wrote: It seems to me that better approach would be to refactor the Kodi profiles and then integrate all of these features into the Kodi profiles. Most of these features doesn't make sense to be assigned to each player in-game.

100% agree. However, not an insignificant chunk of my life has been spent refactoring Kodi profiles, and while the code is loads better today, ultimately Kodi profiles have to get ripped out and redone properly. It's just not a task I'm able to do, so we're left with in-game profiles, whatever those end up being.

(2023-07-27, 16:36)KOPRajs Wrote: Think of this:
You can change the Kodi profile and inside the profile you get your avatar picture, your button maps, your saved games and your your achievements account (and a Netplay account). If you don't need more than 1 profile, you simply stay with the default profile and don't need to care about it.

If we assume Kodi profiles are a lost cause, how would this work with in-game profiles? Maybe, instead of the profile list I posted, we have an "active" profile with avatar/maps/saves/achievements? Similar to Xbox, how you log in with an account. And with a default profile. In fact, I took detailed notes with screenshots on the Xbox model, in case I wanted to use it for Kodi. So that's an option, and not a bad one.

(2023-07-27, 16:36)KOPRajs Wrote: Now how would it work with the player profiles assigned to each player in-game? You can't have a different player profile selected for each player, can you?

I guess you're right, it wouldn't really work with profiles assigned to each player in-game. All achievements/saves would have to be copied to all profiles.

That was kinda the idea I was thinking of, where if you have a co-op arcade game like The Simpsons or Ninja Turtles, and two players beat the game, they both get the achievement. Or if two players race in Mario Kart, they both save the results and take the results with them.

But it's not like you can ever bring the results back: you can't "merge" saves from two different players, one would always be overwritten.


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-07-27

Some screenshots from past ideas.

Player login:

Image

Identity provider add-ons:

Image

Also I started https://kodi-game.github.io . Try scanning a QR code with your mobile phone browser and it'll show you the text.


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2023-07-28

If we can't use the Kodi profiles, then let's create the Retroplayer profiles, but in a way that only one player profile can be active at a time. Also I would say that switching profile from in-game brings many headaches, so I would move the profile management to the settings under the Game menu. We can allow switching of the profile from the game launch window (currently the saved games selection window), so the player can easily switch the profile before the game is started.


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-07-29

I'm all on board with this.

I'm working on a killer feature: Show a QR code, scan it with your phone's browser, and a high-bandwidth, low-latency bidirectional connection is formed between Kodi and the browser. Amazingly, no wifi or local network is needed. The devices just have to be on the internet. Of course, a local network is used if both devices are on it, but Kodi doesn't care.

Think about it. This instantly gives Kodi access to the full power of a web browser. Every feature we've thought of can easily be implemented in Javascript, and the results sent back to Kodi. Browsers are cloud-native, so all game saves can be persisted to any web service, like dropbox or google drive, with just Javascript. No C++ needed.

You don't need to sign in to RetroAchievements in Kodi anymore, you can do it on your phone. The login token is sent back to Kodi.

Two Kodi instances anywhere on the planet can also be connected together with the high-bandwidth, low-latency connection, allowing for netplay transparent to the actual network.

Technically, I added three dependencies to Kodi: QR generation, Kademlia, and WebRTC.

Kodi generates a QR code with two public/private key pairs: One for pair Kodi, one for the browser.

Kodi encrypts its WebRTC offer using the browser's public key, and uploads it to Kademlia under its own public key. The browser, using webtorrent, downloads the offer using Kodi's public key, decrypts it using the browser's private key, generates a WebRTC reply, encrypts it with Kodi's public key, and uploads it to Kademlia under the browser's public key. Kodi then listens to Kademlia for the browser's public key and gets the encrypted WebRTC response. With a WebRTC offer and response, Kodi and the browser can open a WebRTC datachannel between each other.


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-07-29

It looks like Kademlia maxes at 999 bytes, which is 1/3 of QR capacity, so ignore Kodi uploading the offer to Kademlia. Kademlia is only used for the WebRTC response. That will drastically speed up the connection.

So the flow is: Kodi sends the WebRTC offer to the browser via QR. The browser sends the WebRTC response to Kodi via Kademlia. That's enough to form a datachannel.


RE: RetroPlayer Test Builds (updated for Nexus) - another noob - 2023-08-01

a) awesome Project
b) tried LibreELEC works like a charm, finally my Bluetooth game controller works
c) totally failing to find a guide how to install the RetroPlayer Kodi version on a Ubuntu based distro.
followed that guide:
https://kodi.wiki/view/HOW-TO:Install_Kodi_for_Linux
no luck with unstable (controller isn't working)
then failed to build the it myself from the sources.
tried searching here for install, apt, ubuntu

please tell me what I`m missing


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-08-01

(2023-08-01, 23:08)another noob Wrote: a) awesome Project

Thanks for helping test!

(2023-08-01, 23:08)another noob Wrote: c) totally failing to find a guide how to install the RetroPlayer Kodi version on a Ubuntu based distro.
followed that guide:
https://kodi.wiki/view/HOW-TO:Install_Kodi_for_Linux
no luck with unstable (controller isn't working)

You need the peripheral.joystick add-on. You can install this from the repos and the controller should start working. You may need to map the controller (Settings -> System -> Input -> Configure controllers), in which case you should find and upload the buttonmap for your controller.

(2023-08-01, 23:08)another noob Wrote: then failed to build the it myself from the sources.

I only do builds for the platforms you see in the release notes. For desktop Linux you'll need to compile my retroplayer-20.2 branch from source.

Compiling from source isn't easy, but is a worthwhile experience because you learn a lot how the software is made. You can find instructions here: https://github.com/garbear/xbmc/blob/retroplayer-20.2/docs/README.Ubuntu.md

If you need help compiling from source, post any questions here and I'll try to answer them.


RE: RetroPlayer Test Builds (updated for Nexus) - another noob - 2023-08-02

Quote:You need the peripheral.joystick add-on. You can install this from the repos and the controller should start working. You may need to map the controller (Settings -> System -> Input -> Configure controllers), in which case you should find and upload the buttonmap for your controller.wo
worked like a charm thank you so much

you have a way to donate to this RetroPlayer project specifically?


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-08-02

(2023-08-02, 00:15)another noob Wrote: worked like a charm thank you so much

Good to hear!

(2023-08-02, 00:15)another noob Wrote: you have a way to donate to this RetroPlayer project specifically?

Nope just Kodi. But we fly our members to a meetup place in Europe every year, and this year we had a hackathon with my entire lineage of RetroPlayer GSoC students, so we're indirect beneficiaries.


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2023-08-02

(2023-08-01, 23:08)another noob Wrote: c) totally failing to find a guide how to install the RetroPlayer Kodi version on a Ubuntu based distro.
followed that guide:
HOW-TO:Install_Kodi_for_Linux (wiki)
no luck with unstable (controller isn't working)
then failed to build the it myself from the sources.
tried searching here for install, apt, ubuntu

Might be worth mentioning that the Retroplayer is already mostly included in upstream Kodi, so to get a working Retroplayer you don't need to build anything, you can just use the current stable Kodi 20.2. This development branch is used for testing new and not yet included features.


RE: RetroPlayer Test Builds (updated for Nexus) - Slim999 - 2023-08-17

Hi,

How can ungrade from the basic version to Retroplayer version , without any risk  
-LibreELEC 11.0.2 builds/RAP4

Thks !


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-08-18

(2023-08-17, 22:16)Slim999 Wrote: Hi,

How can ungrade from the basic version to Retroplayer version , without any risk  
-LibreELEC 11.0.2 builds/RAP4

Thks !

Grab an LE 11 image for your platform from my releases page: https://github.com/garbear/xbmc/releases - you'll have a .img.gz file. Place that in the shared update folder of LibreELEC. It's just the standard LE update procedure, but using one of my images instead of a vanilla image. When you reboot it should pick up the .img.gz file and install the new version. You can then down/sidegrade by sticking a vanillla .img.gz file in the shared update folder.


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2023-08-19

Small progress update. I'm getting closer to tunneling between Kodi and a mobile browser using QR and BitTorrent.

I'm having trouble generating the QR code, but it renders just fine:

Image

Kodi can now pull metadata directly from the BitTorrent DHT using libtorrent. I added the following as a video source:
 
Code:
magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c&dn=Big%20Buck%20Bunny

Within a couple seconds you can browse the torrent's files:

Image

While it's a bit ridiculous to use BitTorrent to exchange WebRTC offers, it of course means that all user data can be stored, shared and synced on the BitTorrent network. You can even load games or stream videos directly from the DHT.