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 Krypton) - Eldorado - 2017-06-01

(2017-05-31, 22:18)cmiller1 Wrote: I really like just using a separate IR remote (I use the Apple one) to bring up the OSD from a game... and for controlling the rest of Kodi. Failing that, the many phone apps that can control Kodi work great for bringing up the OSD too. I fear that this is adding loads of complication just so people can use one single controller...

What about those who use only a game controller for Kodi and don't have a second remote?

IMO it's quite the opposite, forcing users to have 2 or more controllers just to play a game adds complication on the users end, and most will be out of luck


RE: RetroPlayer Test Builds (updated for Krypton) - MrTarantula - 2017-06-01

(2017-06-01, 12:48)RockerC Wrote: FYI; RetroArch / Lakka uses "Select+X" on gamepads and "F1" on keyboard as default hotkeys combinations to bring up RGUI (RetroArch's equivalent to in-game OSD):

EmulationStation / RetroPie uses the same "Select+X" combo on gamepads and "F1" as hotkey on keyboard for the same action to bring up its emulator in-game OSD:

Look a few posts above yours:

(2017-05-31, 15:18)garbear Wrote: What about controllers without a select button?



RE: RetroPlayer Test Builds (updated for Krypton) - garbear - 2017-06-02

(2017-05-31, 17:15)MrTarantula Wrote:
  1. Detect the pause button is currently being pressed and queue up the default action (prepare to emulate it but wait to execute)
  2. When button press passes the threshold for longpress, send the longpress action. I wouldn't even wait for OnButtonUp

Agreed so far.


(2017-05-31, 17:15)MrTarantula Wrote:
  1. If threshold isn't reached, then send the default action when OnButtonUp is called. Like I said, length of the press shouldn't matter if threshold isn't reached

This is exactly how the GUI should work. A GUI action should be sent upon button up.

However, games are different. In this case the length of the press *does* matter. This is because games aren't action-based. They poll for input. This means we must simulate a button press of at least 1 frame for the game to detect it.


RE: RetroPlayer Test Builds (updated for Krypton) - garbear - 2017-06-02

(2017-06-01, 12:48)RockerC Wrote:
Quote:Hotkeys

Hotkeys enable you to press a combination of buttons to access functions such as saving, loading, and exiting emulators. The following chart shows the default hotkey combinations. By default, the hotkey is select so that means you hold down select while pressing another button to execute a command. Note that hotkeys are only specific to the retroarch/libretro based emulators.

Hotkeys Action
Select+Start = Exit
Select+Right Shoulder = Save
Select+Left Shoulder = Load
Select+Right = Input State Slot Increase
Select+Left = Input State Slot Decrease
Select+X = RGUI Menu
Select+B = Reset

Should I abandon button holding a switch to button combos? Or rather, I would call these "meta presses", because start/back/guide would act as meta keys.

One HUGE problem with these is that RetroArch assumes the "RetroPad", which is a weird combination of the SNES controller and the PS controller. We don't assume any controller type or layout. This means that we can't use button names in the GUI or documentation.

(2017-06-01, 12:48)RockerC Wrote: FYI; RetroArch / Lakka uses ... "F1" on keyboard

EmulationStation / RetroPie uses the same "Select+X" combo on gamepads and "F1" as hotkey on keyboard for the same action to bring up its emulator in-game OSD:

That's a good point, we need to consider keyboard controls too. Due to our input system, this must be implemented entirely separately from controller controls. Once we nail down controller input I'll port our controls to the keyboard.

In general, I would like to stick to existing control methods so that switching between us and ES/RetroPie is natural.


RE: RetroPlayer Test Builds (updated for Krypton) - bite_your_idols - 2017-06-03

@garbear I can see latest retroplayer version is from 0527 but in the last versions I can make it work is in 0428... I am missing something or is it impossible to test it in RPi by the moment?

I am thinking about future of retrogaming in kodi and trying to figure out if my Gamestarter Addon has any sense in the upcoming LibreELEC 9, if it hasn't I want to know if can contribute in any way to retroplayer.

The most important feature I miss from retroarch in retroplayer are settings and quick menu, maybe all that options are going to be included in any OSD settings menu?

Keep up the good work!


RE: RetroPlayer Test Builds (updated for Krypton) - garbear - 2017-06-03

(2017-06-03, 15:58)bite_your_idols Wrote: @garbear I can see latest retroplayer version is from 0527 but in the last versions I can make it work is in 0428... I am missing something or is it impossible to test it in RPi by the moment?

RetroPlayer has been merged into Kodi 18. To see games in the GUI, you must enter the Konami code. If you're looking for builds, grab one of Milhouse's test builds.

Note: His builds are missing a few tweaks for gaming, specifically the advanced settings at the bottom of this post. Also you will need to enable games using the Konami code.

(2017-06-03, 15:58)bite_your_idols Wrote: I am thinking about future of retrogaming in kodi and trying to figure out if my Gamestarter Addon has any sense in the upcoming LibreELEC 9, if it hasn't I want to know if can contribute in any way to retroplayer.

Now that Kodi 18 supports games, I recommend integrating RetroPlayer support. Here's the first step: https://github.com/bite-your-idols/Gamestarter-Pi/pull/65 Smile

Kodi 18 also adds some game-related info labels for ListItems. The ListItem info labels for games are documented here.

(2017-06-03, 15:58)bite_your_idols Wrote: The most important feature I miss from retroarch in retroplayer are settings and quick menu, maybe all that options are going to be included in any OSD settings menu?

Keep up the good work!

Currently, RetroPlayer uses the video OSD. Work has begin to design a completely new OSD from scratch in this thread. Also see PR12180.

Until RetroPlayer gets a new OSD, usability might suck a little Smile Still, if you'd like to integrate RetroPlayer for when its time comes, I'll do my best to help out.


RE: RetroPlayer Test Builds (updated for Krypton) - natethomas - 2017-06-04

Maybe I'm not understanding. Is the proposal to do whatever the game would normally do on pressing Start, and then do another thing if the button is still held at the 1000ms point? If so, that seems like a fairly ideal way of doing things. The game SHOULD pause by default when you open the OSD anyway, shouldn't it? You wouldn't want to accidentally die because you can't control the game anymore.


RE: RetroPlayer Test Builds (updated for Krypton) - bite_your_idols - 2017-06-04

(2017-06-03, 22:43)garbear Wrote: ...

Yes, I but in MIlhouse's thread I can read that retroplayer has been removed temporarily and the last LibreELEC 9 shipping retroplayer is 04/28. I tried some builds from 05/27, 05/29... and always hace shared library error. So, my question is, if am I doing something wrong or it is ok to use04/28?

I activated retroplayer using konami code and I can play Super Mario Bros. but I can not get into OSD, if I long press start or select button nothing happens, but if I press my PS button in my dualshock I go to home screen and the game pauses in background. ¿?

I am testing if I can use retroplayer downloaded cores in retroarch & emulationstation, that would be nice because users could download cores they need and Gamestarter will ship lighter.

Also, thanks for your PR!


RE: RetroPlayer Test Builds (updated for Leia) - Qwijibo - 2017-06-04

(2017-06-04, 07:56)bite_your_idols Wrote:
(2017-06-03, 22:43)garbear Wrote: ...

Yes, I but in MIlhouse's thread I can read that retroplayer has been removed temporarily and the last LibreELEC 9 shipping retroplayer is 04/28. I tried some builds from 05/27, 05/29... and always hace shared library error. So, my question is, if am I doing something wrong or it is ok to use04/28?

I activated retroplayer using konami code and I can play Super Mario Bros. but I can not get into OSD, if I long press start or select button nothing happens, but if I press my PS button in my dualshock I go to home screen and the game pauses in background. ¿?

I am testing if I can use retroplayer downloaded cores in retroarch & emulationstation, that would be nice because users could download cores they need and Gamestarter will ship lighter.

Also, thanks for your PR!

See here.
https://github.com/kodi-game/game.libretro.snes9x2002/issues/3

It's an issue with Bluetooth controls not playing nicely with other pepherials. In my case my controller is connecting as js1 whilst my remote is defaulting to js0.
This is causing my controller to be recognised as player 2.

To test this try some 2 player roms and you'll see it's picking up a second controller. NBA Jam Time is a good example.


RE: RetroPlayer Test Builds (updated for Leia) - Julipo - 2017-06-04

The toggle button + second button is the best option.

This is not only to show the OSD or the game in full screen. With tooggle you can remap all your pad with system functions. In retroarch and RetroPie (that uses RetroArch) i can click:

Select (toggle) + Start: Exit

But you can have combinations to: Save state (in current slot), load state (in current slot), screenshot, menu, fast forward, change savestate slot... (any option that can bin binded).

So with select + r1/l1 i can do a fast save state / load sate, and with select + second analog left/right i can change the savestate slot.,
WIth select + one button i can take a screenshot.


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2017-06-05

(2017-06-04, 04:49)natethomas Wrote: Is the proposal to do whatever the game would normally do on pressing Start, and then do another thing if the button is still held at the 1000ms point?

This is the behavior proposed in PR12180.

(2017-06-04, 04:49)natethomas Wrote: If so, that seems like a fairly ideal way of doing things.

Not exactly. For example: In 2048 I press and hold start. Immediately the game is paused in-game, then after a second the OSD pops up (currently without pausing the game, but that is trivial to change). When the OSD is closed, we return to 2048 which is still on the pause screen. Start must be pressed again to resume gameplay.

The discussion here is how to improve this flawed behavior. Basically when start is pressed, we need to *not* send the press to the game and pause the game loop when the OSD is opened. The question is, how, when and for how long do we send a regular start press to the game?

(2017-06-04, 04:49)natethomas Wrote: The game SHOULD pause by default when you open the OSD anyway, shouldn't it? You wouldn't want to accidentally die because you can't control the game anymore.

Yes of course, I'll make sure to change this.


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2017-06-05

(2017-06-04, 07:56)bite_your_idols Wrote: Yes, I but in MIlhouse's thread I can read that retroplayer has been removed temporarily and the last LibreELEC 9 shipping retroplayer is 04/28. I tried some builds from 05/27, 05/29... and always hace shared library error. So, my question is, if am I doing something wrong or it is ok to use04/28?

You can't "remove" RetroPlayer from Kodi. It's tens of thousands of lines of code that you would have to patch out.

(2017-06-04, 07:56)bite_your_idols Wrote: I activated retroplayer using konami code and I can play Super Mario Bros. but I can not get into OSD, if I long press start or select button nothing happens, but if I press my PS button in my dualshock I go to home screen and the game pauses in background. ¿?

That is because PR12180 isn't merged. We need to answer the questions in the discussion above before PR12180 is ready.

(2017-06-04, 07:56)bite_your_idols Wrote: I am testing if I can use retroplayer downloaded cores in retroarch & emulationstation, that would be nice because users could download cores they need and Gamestarter will ship lighter.

I have good news for you. All game add-ons are simply the libretro core (shared library) surrounded by some XML and pictures. These cores can be loaded in RetroArch unmodified. This would greatly slim down the size of Gamestarter.


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2017-06-05

(2017-06-04, 16:38)Julipo Wrote: The toggle button + second button is the best option.

This is not only to show the OSD or the game in full screen. With tooggle you can remap all your pad with system functions. In retroarch and RetroPie (that uses RetroArch) i can click:

Select (toggle) + Start: Exit

But you can have combinations to: Save state (in current slot), load state (in current slot), screenshot, menu, fast forward, change savestate slot... (any option that can bin binded).

So with select + r1/l1 i can do a fast save state / load sate, and with select + second analog left/right i can change the savestate slot.,
WIth select + one button i can take a screenshot.

The problem with combos is that not all controllers have the same buttons. Genesis controllers are missing a Select key. Some controllers are missing shoulder buttons or triggers. The gamecube controller has two triggers but only 1 shoulder button, for example. This means we can't show button names in the GUI, and documentation will always need a long explanation of logical vs. physical controller mappings. etc.

In RetroArch, if select is used as a combo button, how do you send a select press to the game? If you press Select + L1, does the select press also get sent to the game?


RE: RetroPlayer Test Builds (updated for Leia) - bite_your_idols - 2017-06-05

(2017-06-05, 02:06)garbear Wrote: You can't "remove" RetroPlayer from Kodi. It's tens of thousands of lines of code that you would have to patch out.

Maybe the exact word isn't "remove" but if I install LibreELEC testbuilds newer than 04/28 I can activate retroplayer but it prompts shared library error. Also, Milhouse said this: https://forum.kodi.tv/showthread.php?tid=298462&pid=2589482#pid2589482


(2017-06-05, 02:06)garbear Wrote: I have good news for you. All game add-ons are simply the libretro core (shared library) surrounded by some XML and pictures. These cores can be loaded in RetroArch unmodified. This would greatly slim down the size of Gamestarter.

I started some tests, I want to compare performance between using retroplayer and lakka cores in retroarch and also in retroplayer itself. I will post my progress.


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2017-06-05

(2017-06-05, 09:34)bite_your_idols Wrote: Maybe the exact word isn't "remove" but if I install LibreELEC testbuilds newer than 04/28 I can activate retroplayer but it prompts shared library error. Also, Milhouse said this: https://forum.kodi.tv/showthread.php?tid=298462&pid=2589482#pid2589482

Well there you go. Our entire binary add-on system is being replaced, so you can expect breakage at least for another few weeks.

(2017-06-05, 09:34)bite_your_idols Wrote: I started some tests, I want to compare performance between using retroplayer and lakka cores in retroarch and also in retroplayer itself. I will post my progress.

Performance will always be a little bit better in RetroArch due to the overhead that Kodi introduces. However, that assumes you can suspend Kodi - RetroArch might run the worst if Kodi is running in the background.

Another big difference is input. With RetroArch:
  • RetroArch has support for almost every controller
  • But the controls are hard-coded for all platforms
  • If your controller has no configuration, it's a big pain to create one.

With Kodi:
  • Kodi allows you to configure controls per-platform
  • But we don't ship with many controller profiles
  • However, configuring your controller is done visually
  • In the future, Kodi will support RetroArch configurations, giving you the best of both worlds.