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 Leia) - Abbaskip - 2018-09-26

I'm running the 14th September Beta 2 based Retroplayer on a Windows 10 machine.

Trying to play a Saturn game and get:
https://paste.ubuntu.com/p/5tBKfmk2bb/

Then when I try to play a video after that Saturn rom doesn't play I get:
https://paste.ubuntu.com/p/VsKB9fRzJF/


Have to close Kodi and reopen it to get Videos to play.

I've checked and the Saturn 3d Controller addon is installed/enabled. (both western and Japanese)


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2018-09-26

(2018-09-17, 08:44)Juppstein Wrote: In case someone is not using the Garbear repo but the standard one for the current Ubuntu LTS, is there a post or tutorial that would explain which parts/sources/gits I have to get from which place on the interwebz?

...

Which is unfortunate, because it prevents people from testing RP due to the high entry barrier of not knowing how to even set it up properly.

Yes, you're right, the barrier to entry is currently high. However, because we're so close to release, I'm focusing on getting the standard one ready instead of putting work into lowering this barrier. Hang with me, and by the time we release all the info will be in one place.

(2018-09-18, 20:06)MrTarantula Wrote: But I understand this would probably qualify as a feature, so also not likely in v18. 
  
I don't know, I kind of consider this a bug. We'll see if I'm able to get your idea in to v18.

(2018-09-24, 09:57)MrSeb Wrote: Hello, how do we activate all shaders? I did a test on Snes and I only have 2 shaders available. Thx
 Shaders broke a month ago and I don't have time to fix before release. They only work on Windows 10 anyways. I'm meeting the author at devcon in a few days, I'll see if he can update his shaders patch.


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2018-09-26

(2018-09-26, 14:09)Abbaskip Wrote: Then when I try to play a video after that Saturn rom doesn't play I get:
https://paste.ubuntu.com/p/VsKB9fRzJF/

Have to close Kodi and reopen it to get Videos to play.
  
Should be fixed by https://github.com/xbmc/xbmc/pull/14478 . I'll do a test build in the next couple of days.


RE: RetroPlayer Test Builds (updated for Leia) - Abbaskip - 2018-09-26

(2018-09-26, 15:00)garbear Wrote:
(2018-09-26, 14:09)Abbaskip Wrote: Then when I try to play a video after that Saturn rom doesn't play I get:
https://paste.ubuntu.com/p/VsKB9fRzJF/

Have to close Kodi and reopen it to get Videos to play.
  
Should be fixed by https://github.com/xbmc/xbmc/pull/14478 . I'll do a test build in the next couple of days.

That fix is to get videos to play again. Any idea why the Saturn roms won't play?


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2018-10-02

Test builds uploaded: https://github.com/garbear/xbmc/releases


RE: RetroPlayer Test Builds (updated for Leia) - KOPRajs - 2018-10-02

Hi,
I've finally got some time to investigate my bluetooth gamepad problem so here is what I've found:

Basic problem description:
My generic bluetooth gamepads (Terios Tx and Sx) work over USB but do not work over bluetooth in LibreELEC (Amlogic MX2 and S905). I am able to connect them over bluetooth but Kodi doesn't get any input.

It used to be solved by adding the following udev rule in older LE versions:
SUBSYSTEM=="input", ATTRS{name}=="bluetooth_name_of_your_device", KERNEL=="event*", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

Read more here: https://forums.libretro.com/t/bluetooth-controller-connects-but-retroarch-doesnt-detect-input/9900

After adding the above udev rule I was finally able to get my gamepads to work over bluetooth (until I've recently updated LibreELEC).

In the current version the above solution no longer work and the Kodi does not get any input from the bluetooth gamepads again. I was able to narrow the problem down to LibreELEC git-d2c4924 (works) and git-59788e2 (doesn't work) so it seems the problem is in the 1st May Kodi update (https://github.com/LibreELEC/LibreELEC.tv/commit/42acde68d52d68709394fb8647f45d1b31013206).

Going through the Kodi github log between af4a548 (works) and 3a989ee (doesn't work) I've found PR #13176 (https://github.com/xbmc/xbmc/pull/13176) which seems most likely to introduce the problem but it is just a first guess.

EDIT:
This is my device udev info from LE git-59788e2:
Code:
# udevadm info --name=input/event2
P: /devices/lm1/usb1/1-1/1-1.1/1-1.1:1.0/bluetooth/hci0/hci0:42/input4/event2
N: input/event2
E: DEVNAME=/dev/input/event2
E: DEVPATH=/devices/lm1/usb1/1-1/1-1.1/1-1.1:1.0/bluetooth/hci0/hci0:42/input4/event2
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=a970
E: ID_MODEL_ENC=a970
E: ID_MODEL_ID=a970
E: ID_REVISION=1958
E: ID_SERIAL=0db0_a970
E: ID_TYPE=generic
E: ID_USB_DRIVER=btusb
E: ID_USB_INTERFACES=:e00101:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=0db0
E: ID_VENDOR_ENC=0db0
E: ID_VENDOR_ID=0db0
E: LIBINPUT_DEVICE_GROUP=5/1949/402:00:13:d3:7d:1e:f3
E: MAJOR=13
E: MINOR=66
E: SUBSYSTEM=input
E: TAGS=:power-switch:
E: USEC_INITIALIZED=2273027659

I've noticed the new line with LIBINPUT_DEVICE_GROUP. It wasn't there in the previous versions.

EDIT2:
I should also note that these cheap gamepads usually have a keyboard and mouse emulation mode so they are a composite devices.


RE: RetroPlayer Test Builds (updated for Leia) - retrofan12 - 2018-10-02

Hi,

I just installed RetroPlayer 18 beta3 (nightly) 2018-10-01 on my x64 machine an figured, that the game.libretro.vice addon

https://github.com/kodi-game/game.libretro.vice

is not part of the Release ...

Is there a particular reason not to include it ?

And at risk to ask a stupid question: What would be the best way for me to add it to the installation ?

any suggestions welcome.

Best Regards
retrofan


RE: RetroPlayer Test Builds (updated for Leia) - garbear - 2018-10-04

@KOPRajs I notified the PR author. I don't want to send you in circles, but maybe try asking on the LE forum?
(2018-10-02, 20:45)retrofan12 Wrote: I just installed RetroPlayer 18 beta3 (nightly) 2018-10-01 on my x64 machine an figured, that the game.libretro.vice addon

https://github.com/kodi-game/game.libretro.vice

is not part of the Release ...
   
Vice should be included. Maybe it's broken. Does it show up in the add-on manager? You can copy from an older build or compile yourself, but if the compilation is broken the best thing to do is fix it so that my builds include it.


RE: RetroPlayer Test Builds (updated for Leia) - retrofan12 - 2018-10-04

(2018-10-04, 18:44)garbear Wrote: Vice should be included. Maybe it's broken. Does it show up in the add-on manager? You can copy from an older build or compile yourself, but if the compilation is broken the best thing to do is fix it so that my builds include it. 
No, does'n show up in the add-on manager. Also there is no directory game.libretro.vice or similar in the addons folder of the installation. 

Would great if this could be fixed in one of the next builds :-)

Best Regards 
retrofan12


RE: RetroPlayer Test Builds (updated for Leia) - KOPRajs - 2018-10-05

(2018-10-04, 18:44)garbear Wrote: @KOPRajs I notified the PR author. I don't want to send you in circles, but maybe try asking on the LE forum?
Have you notified him publicly so I can watch the discussion?

I'm afraid we have a design flaw here. These devices seem to have one event device node (e.g. /dev/input/event2) which provides mixed types of events (keyboard, mouse and joystick). It looks like since it provides keyboard and mouse it now gets handled by the libinput but libinput doesn't support joysticks.

I can use hexdump /dev/input/event2 to see the events (button presses) when Kodi is stopped (using systemctl stop kodi). But while Kodi is running hexdump /dev/input/event2 shows nothing. I believe it is not LibreELEC specific. It probably affects all Linux platforms (maybe even Android if it is also using libinput). Please note that I'm no expert on Linux input system.

The bad thing is that these cheap bluetooth gamepads are quite common among retro gamers. They are meant to be used with Android so they provide the keyboard and mouse emulation so you can control the system UI.


RE: RetroPlayer Test Builds (updated for Leia) - lrusak - 2018-10-05

(2018-10-05, 10:00)KOPRajs Wrote:
(2018-10-04, 18:44)garbear Wrote: @KOPRajs I notified the PR author. I don't want to send you in circles, but maybe try asking on the LE forum?
Have you notified him publicly so I can watch the discussion?

I'm afraid we have a design flaw here. These devices seem to have one event device node (e.g. /dev/input/event2) which provides mixed types of events (keyboard, mouse and joystick). It looks like since it provides keyboard and mouse it now gets handled by the libinput but libinput doesn't support joysticks.

I can use hexdump /dev/input/event2 to see the events (button presses) when Kodi is stopped (using systemctl stop kodi). But while Kodi is running hexdump /dev/input/event2 shows nothing. I believe it is not LibreELEC specific. It probably affects all Linux platforms (maybe even Android if it is also using libinput). Please note that I'm no expert on Linux input system.

The bad thing is that these cheap bluetooth gamepads are quite common among retro gamers. They are meant to be used with Android so they provide the keyboard and mouse emulation so you can control the system UI. 
Can you test this device on a modern linux kernel version? The one used by amlogic is many years old. If it still doesn't work please report back to LibreELEC and we can possibly quirk the device handling in our udev scripts.


RE: RetroPlayer Test Builds (updated for Leia) - Solo0815 - 2018-10-05

There is a typo in libretro.compatibility addon:
Config -> Crop overscap
should be "Crop overscan"


RE: RetroPlayer Test Builds (updated for Leia) - linkinsoldier - 2018-10-06

@garbear : sorry for the long time, but I was moving and kind of got away from testing stuff Smile

I just redid a test of this:
https://github.com/kodi-game/game.libretro.snes9x2002/issues/3

unfortunately i still can't play fifa 97 on snes 9x2002 via IARL. This might be connected to IARL, but I can't verify or falsify this unfortunately.
Controller works like a charm with snes 9x2002 with all other games I have.

What's still interesting (not sure if this is known):
1) N64 Emulator is still not in the repo. Mario Kart 64 would be awesome Smile Any chance for the official release?
2) on my wetek play 2 the ps3 controller leds dont stop blinking (dont show input controller number), however on rpi3 with the same release (libreelec 8.90.005 alpha) the input number is shown in the LEDs. known issue?
3) PSX Emulator now works smooth enough to play crash bandicoot - awesome!


RE: RetroPlayer Test Builds (updated for Leia) - KOPRajs - 2018-10-07

(2018-10-05, 17:52)lrusak Wrote: Can you test this device on a modern linux kernel version? The one used by amlogic is many years old. If it still doesn't work please report back to LibreELEC and we can possibly quirk the device handling in our udev scripts.
So I did some more testing.

Testing on Ubuntu (Lubuntu 18.04.1) and Kodi 18 beta3 from official PPA:
The gamepad works out-of-box over bluetooth using the joystick driver set to "Linux" in Kodi however with the joystick driver set to "Udev" Kodi doesn't get any input events.

Code:
lubuntu@lubuntu:~$ udevadm info --name input/event10
P: /devices/pci0000:00/0000:00:1d.2/usb7/7-2/7-2:1.0/bluetooth/hci0/hci0:11/0005:1949:0402.0002/input/input12/event10
N: input/event10
E: BACKSPACE=guess
E: DEVNAME=/dev/input/event10
E: DEVPATH=/devices/pci0000:00/0000:00:1d.2/usb7/7-2/7-2:1.0/bluetooth/hci0/hci0:11/0005:1949:0402.0002/input/input12/event10
E: ID_BUS=bluetooth
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_INPUT_MOUSE=1
E: LIBINPUT_DEVICE_GROUP=5/1949/402:00:1e:37:b6:4e:24
E: MAJOR=13
E: MINOR=74
E: SUBSYSTEM=input
E: TAGS=:power-switch:
E: USEC_INITIALIZED=3900493948
E: XKBLAYOUT=us
E: XKBMODEL=pc105

Note that the default udevadm info is pretty much the same as on Amlogic and it is missing ID_INPUT_JOYSTICK=1 line. After adding it by the udev rule the gamepad works with both "Linux" and "Udev" joystick drivers in the Kodi.

Then I realized that Kodi on Ubuntu is using X11 for input and therefore it is not using libinput. So this is expected behaviour.

To summarize, it still seems that the problem is in Kodi using libinput so it doesn't affect Windows and X11 platforms. Also there doesn't seem to be any difference in the device handling with the newer kernel however I am not able to test this properly. The only device using both the libinput and the newer kernel is RPi but I don't have any RPi around right now.


RE: RetroPlayer Test Builds (updated for Leia) - KOPRajs - 2018-10-07

(2018-10-05, 17:52)lrusak Wrote: Can you test this device on a modern linux kernel version? The one used by amlogic is many years old. If it still doesn't work please report back to LibreELEC and we can possibly quirk the device handling in our udev scripts.
I'm still trying to understand how does this work so please correct me if I am wrong.

So there is the evdev Linux API which makes all input devices available via /dev/input/eventX nodes and there is the older joydev Linux API which makes joysticks available as /dev/input/jsX nodes.

Kodi gets joystick inputs using its peripheral.joystick addon. This addon has an option to use either the "Linux" driver (joydev) or the "Udev" driver (evdev). Btw. If this is true then the naming is a bit confusing.

Before the PR #13176 there was a function IsUdevJoystick() in LinuxInputDevices.cpp which checked for ID_INPUT_JOYSTICK==1 and a function CheckDevice() which checked if the device is a joystick and if so it "let others handle joysticks" by releasing the device handler.

After the PR #13176 this check has been dropped so the joystick node /dev/input/eventX is now handled by the libinput. The EVIOCGRAB ioctl is called from the open_restricted() function to make the device input exclusive for the libinput so the peripheral.joystick addon can't read events from the evdev device node anymore. And it seems that since the joydev driver works on top of the evdev it stops receiving events as well.