Kodi Community Forum

Full Version: RetroPlayer Test Builds (updated for Nexus)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Could you please post intel linux build?
@garbear: it links against that DLL because you make a debug build. But that DLL is only available with Visual C++ installed. So for test releases you need to build the addons and Kodi for release.
(2015-07-02, 08:20)Montellese Wrote: [ -> ]
(2015-07-02, 00:07)garbear Wrote: [ -> ]nice. I haven't looked at the DInput documentation, I think this code was copied from Kodi's existing joystick code. I'll take a deeper look, because it'd be nice to record PID and VID for our buttonmap database

check back tmrw morning, i'll see if I can get DInput joysticks working tonight

IDirectInputDevice8::GetProperty with DIPROP_VIDPID (see https://msdn.microsoft.com/en-us/library...s.85).aspx) should provide the vendor and product IDs.

https://github.com/Montellese/peripheral...54c586ac08 might do the trick but wasn't able to runtime test it yet.
(2015-07-02, 11:56)Scourge Wrote: [ -> ]
(2015-07-02, 05:06)garbear Wrote: [ -> ]
(2015-07-01, 09:17)Scourge Wrote: [ -> ]Quick FYI: I just tried your latest build on a different Windows machine and I got the same error. Will post logs later today.

I checked this out, and the peripheral add-on isn't exporting the function symbol. I'll try forcing a rebuild of libKODI_game

EDIT: new build is up for windows

Thanks. I just installed this build over the last one, but I still get the error message. I'll dive into this tonight (am at work atm).

debug log is here
Addon couldnt be loaded
an unknown error occured
cant load dll
21:32:31 T:452 NOTICE: -->Python Interpreter Initialized<--
21:32:51 T:6412 ERROR: Win32DllLoader::Load: Failed to load "C:\Program Files (x86)\Kodi\addons\game.libretro\game.libretro.dll" with error 126: "The specified module could not be found.

"
21:32:51 T:6412 ERROR: RetroPlayer: Failed to init game client game.libretro.nestopia
21:32:51 T:7404 NOTICE: Thread AddonStatus game.libretro.nestopia start, auto delete: true
21:33:02 T:6412 ERROR: Win32DllLoader::Load: Failed to load "C:\Program Files (x86)\Kodi\addons\game.libretro\game.libretro.dll" with error 126: "The specified module could not be found.

"
21:33:02 T:6412 ERROR: RetroPlayer: Failed to init game client game.libretro.nestopia
21:33:02 T:3340 NOTICE: Thread AddonStatus game.libretro.nestopia start, auto delete: true
21:33:06 T:6412 ERROR: Win32DllLoader::Load: Failed to load "C:\Program Files (x86)\Kodi\addons\game.libretro\game.libretro.dll" with error 126: "The specified module could not be found.

"
21:33:06 T:6412 ERROR: RetroPlayer: Failed to init game client game.libretro.quicknes
21:33:06 T:8648 NOTICE: Thread AddonStatus game.libretro.quicknes start, auto delete: true
21:33:14 T:1884 NOTICE: Thread Game launcher start, auto delete: false
21:33:14 T:5304 NOTICE: Thread BackgroundLoader start, auto delete: false
21:33:23 T:6412 ERROR: Win32DllLoader::Load: Failed to load "C:\Program Files (x86)\Kodi\addons\game.libretro\game.libretro.dll" with error 126: "The specified module could not be found.

"
21:33:23 T:6412 ERROR: RetroPlayer: Failed to init game client game.libretro.2048
21:33:23 T:5560 NOTICE: Thread AddonStatus game.libretro.2048 start, auto delete: true
21:33:40 T:6412 ERROR: Win32DllLoader::Load: Failed to load "C:\Program Files (x86)\Kodi\addons\game.libretro\game.libretro.dll" with error 126: "The specified module could not be found.

"
21:33:40 T:6412 ERROR: RetroPlayer: Failed to init game client game.libretro.nestopia
21:33:40 T:5164 NOTICE: Thread AddonStatus game.libretro.nestopia start, auto delete: true
21:36:07 T:6192 NOTICE: Thread JobWorker start, auto delete: true


I double-checked that the game.libretro.dll file is indeed in that location...so why it says it cant be found i dont know. If it matters im on windows 10 insider preview. i also installed retroarch and used it to test that the rom is indeed good and my controller is functioning properly
I've looked into why my NES30 controller wasn't working and figured out a few things:
  • There seems to be an issue with when/how we detect and create the DirectInput devices. We set the cooperative level to DISCL_FOREGROUND but then DirectInput doesn't let us acquire the joystick device even if Kodi is in the foreground. From some stuff I read on the internet this can happen if the DirectInput device is created before the application creating it is in the foreground and visible/focused.
  • The controller is not calibrated and the default lX value is 256. That means that the CAnomalousTriggerFilter sets the m_center member to CENTER_POSITIVE_ONE which results in the moving the joystick right in being detected as center even though the lX value in that case is AXIS_MAX i.e. 32767. After having calibrated the controller in windows it worked fine but I'll take another look at it as it sounds like something that Kodi should be able to handle.
  • Even after having calibrated the controller moving right in any NES game didn't work. Left worked fine.
  • With a change to CAnomalousTriggerFilter I managed to fix the m_center problem and now I can play NES games with my NES30 controller but there are huge CPU spikes every few seconds during which time the whole player starts to stutter and input events are sometimes lost.
I managed to fix the DISC_FOREGROUND issue and the CAnomalousTriggerFilter but there is still heavy stuttering in NES (couldn't try any other) games whenever the peripherals system scans for new joysticks.

Furthermore I was finally able to reproduce the freeze again when connecting my Xbox 360 controll while Kodi is running that I reported a while ago. The deadlock is between the main thread
Code:
    Kodi.exe!CSingleLock::CSingleLock(const CCriticalSection & cs) Line 39    C++
>    Kodi.exe!PERIPHERALS::CPeripheralBusAddon::GetPeripheralsWithFeature(std::vector<PERIPHERALS::CPeripheral *,std::allocator<PERIPHERALS::CPeripheral *> > & results, const PERIPHERALS::PeripheralFeature feature) Line 211    C++
    Kodi.exe!PERIPHERALS::CPeripherals::GetPeripheralsWithFeature(std::vector<PERIPHERALS::CPeripheral *,std::allocator<PERIPHERALS::CPeripheral *> > & results, const PERIPHERALS::PeripheralFeature feature, PERIPHERALS::PeripheralBusType busType) Line 216    C++
    Kodi.exe!PERIPHERALS::CPeripherals::IsMuted() Line 642    C++
    Kodi.exe!CApplication::IsMuted() Line 4451    C++
    Kodi.exe!CGUIDialogMuteBug::UpdateVisibility() Line 37    C++
    Kodi.exe!CGUIDialog::DoProcess(unsigned int currentTime, std::vector<CDirtyRegion,std::allocator<CDirtyRegion> > & dirtyregions) Line 122    C++
    Kodi.exe!CGUIWindowManager::Process(unsigned int currentTime) Line 912    C++
    Kodi.exe!CApplication::FrameMove(bool processEvents, bool processGUI) Line 2524    C++
    Kodi.exe!CXBApplicationEx::Run() Line 140    C++
    Kodi.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * __formal, char * commandLine, int __formal) Line 238    C++
and the thread that is scanning for new peripheral devices
Code:
>    Kodi.exe!PERIPHERALS::CPeripheralBusAddon::Register(PERIPHERALS::CPeripheral * peripheral) Line 160    C++
    Kodi.exe!PERIPHERALS::CPeripherals::CreatePeripheral(PERIPHERALS::CPeripheralBus & bus, const PERIPHERALS::PeripheralScanResult & result) Line 316    C++
    Kodi.exe!PERIPHERALS::CPeripheralBus::RegisterNewDevices(const PERIPHERALS::PeripheralScanResults & results) Line 117    C++
    Kodi.exe!PERIPHERALS::CPeripheralBus::ScanForDevices() Line 128    C++
    Kodi.exe!PERIPHERALS::CPeripheralBus::Process() Line 212    C++
    Kodi.exe!CThread::Action() Line 221    C++
    Kodi.exe!CThread::staticThread(void * data) Line 134    C++

I've had a closer look and the problem is that CPeripherals::OnDeviceAdded() and ::OnDeviceRemoved() both try to get the CGUIDialogPeripheralManager instance from the window manager while holding a lock whereas CGUIWindowManager:Tonguerocess() tries to access CPeripherals (through CApplication::IsMuted()) while holding a lock.
The problem is solved by https://github.com/Montellese/xbmc/commi...69879dfb1f which simply uses an asynchronous message to update CGUIDialogPeripheralManager instead of explicitly retrieving the active instance from the window manager.
(2015-07-02, 22:54)CrispyXUK Wrote: [ -> ]I've noticed my Harmony remote no longer functions under OS X on a Mac mini, still works fine with Plex Home Theatre. I also have trouble starting Kodi with gamepads connected so sometimes have to disconnect them.

Kodi also crashes on quit every time.

Don't suppose there are any other cores to test anytime soon are there?

I've tracked down the crash on quit but haven't fixed it yet.

The other cores still need to be ported. much of the work has been done by spiff (https://github.com/kodi-game ). we need help finishing the job. I created a thread for porting cores at http://forum.kodi.tv/showthread.php?tid=224328

(2015-07-02, 23:15)ziggurat Wrote: [ -> ]Could you please post intel linux build?

I don't know how to do this. Is there a guide?
new windows builds uploaded, includes Montellese's direct input fixes. built from a clean source tree, so hopefully the installer is working properly now.
just tried again with the 7-5 build and i get the exact same error. i tried running this kodi standalone, over the top of beta 2, this then beta 2, even under and over rc1...all give me the same error

Addon couldnt be loaded
an unknown error occured
cant load dll

log shows the same as above...im assuming im doing something wrong but not sure what.
You need to link the log here, either post it to xbmclogs or pastebin.
Using latest build from juli 5th. When restarting Kodi after regular exit, I get the .dll error:
Image

When navigating to System/game/input, the same error persists:
Image

Debug log can be found here.
@garbear: you also need to revert https://github.com/garbear/xbmc/commit/7...2785d59a54 and not just https://github.com/garbear/xbmc/commit/e...20cc3d52f4 as you're still building in debug mode.
haha almost had it last time. try the new build with both commits reverted
(2015-07-06, 00:21)garbear Wrote: [ -> ]
(2015-07-02, 23:15)ziggurat Wrote: [ -> ]Could you please post intel linux build?
I don't know how to do this. Is there a guide?
If you could link to the github repo and branches I need to compile I might be able to figure it out my self, maybe I can make you a rough guide after so you can post builds for others. But as of now I am a bit confused of what is the current branch of what repo you are using. Also I suppose I'd also have to compile the libretro cores one by one.