kodi-game / game.libretro.scummvm

ScummVM GameClient for XBMC
https://github.com/libretro/scummvm
1 stars 5 forks source link

ScummVM 1.8.0 #1

Closed fetzerch closed 8 years ago

fetzerch commented 8 years ago

This updates the ScummVM core to 1.8.0 and aligns the project structure with the other cores.

Current state:

Known issues:

Free games for testing can be found here: https://scummvm.org/games

@garbear: If you find some time it would be great if you could have a look at the audio problem.

fetzerch commented 8 years ago

This is the deadlock situation on game stop:

0   __pthread_mutex_lock_full   /usr/lib/debug/.build-id/b7/7847cc9cacbca3b5753d0d25a32e5795afe75b.debug    343 0x7ffff7bc37e7  
1   XbmcThreads::pthreads::RecursiveMutex::lock CriticalSection.h   49  0x1108b12   
2   XbmcThreads::CountingLockable<XbmcThreads::pthreads::RecursiveMutex>::lock  Lockables.h 60  0x110ae06   
3   XbmcThreads::UniqueLock<CCriticalSection>::UniqueLock   Lockables.h 127 0x110adc0   
4   CSingleLock::CSingleLock    SingleLock.h    38  0x1108b55   
5   GAME::CGameClient::CloseFile    GameClient.cpp  417 0x1d7b8cc   
6   GAME::CRetroPlayer::CloseFile   RetroPlayer.cpp 109 0x1ef4d6d   
7   CApplicationPlayer::CloseFile   ApplicationPlayer.cpp   55  0x18ace50   
8   CApplication::StopPlaying   Application.cpp 3767    0x18a28cb   
9   PlayerControl   PlayerBuiltins.cpp  135 0x1d42666   
10  CBuiltins::Execute  Builtins.cpp    163 0x1d38b00   
11  CApplication::ExecuteXBMCAction Application.cpp 4301    0x18a55d2   
12  CApplication::OnMessage Application.cpp 4278    0x18a50ed   
13  CGUIWindowManager::SendMessage  GUIWindowManager.cpp    452 0x16c390e   
14  CGUIAction::ExecuteActions  GUIAction.cpp   60  0x16057d1   
15  CGUIButtonControl::OnClick  GUIButtonControl.cpp    363 0x161a7d9   
16  CGUIButtonControl::OnAction GUIButtonControl.cpp    186 0x1619b61   
17  CGUIRadioButtonControl::OnAction    GUIRadioButtonControl.cpp   113 0x1693247   
18  CGUIButtonControl::OnMouseEvent GUIButtonControl.cpp    320 0x161a44d   
19  CGUIControl::SendMouseEvent GUIControl.cpp  571 0x1622bbc   
... <More>              

0   pthread_cond_timedwait * *GLIBC_2.3.2   /usr/lib/debug/.build-id/b7/7847cc9cacbca3b5753d0d25a32e5795afe75b.debug    180 0x7ffff7bc7711  
1   XbmcThreads::ConditionVariable::wait    Condition.h 84  0x1155f26   
2   XbmcThreads::TightConditionVariable<bool volatile&>::wait<CCriticalSection> Condition.h 65  0x115625a   
3   CEvent::WaitMSec    Event.h 86  0x11560e9   
4   CThread::WaitForThreadExit  ThreadImpl.cpp  220 0x1541355   
5   CThread::StopThread Thread.cpp  167 0x1541ee9   
6   GAME::CGameLoop::Stop   GameLoop.cpp    51  0x1d791fa   
7   GAME::CGameClientReversiblePlayback::~CGameClientReversiblePlayback GameClientReversiblePlayback.cpp    62  0x1d76a51   
8   GAME::CGameClientReversiblePlayback::~CGameClientReversiblePlayback GameClientReversiblePlayback.cpp    63  0x1d76b16   
9   std::default_delete<GAME::IGameClientPlayback>::operator()  unique_ptr.h    76  0x1d7f700   
10  std::unique_ptr<GAME::IGameClientPlayback, std::default_delete<GAME::IGameClientPlayback>>::reset   unique_ptr.h    344 0x1d7f2b7   
11  GAME::CGameClient::ResetPlayback    GameClient.cpp  395 0x1d7b789   
12  GAME::CGameClient::CloseFile    GameClient.cpp  415 0x1d7b8b2   
13  V1::KodiAPI::Game::CAddonCallbacksGame::CloseGame   AddonCallbacksGame.cpp  85  0x17cb5de   
14  GAME_close_game libKODI_game.cpp    62  0x7fff78c777c0  
15  CHelper_libKODI_game::CloseGame libKODI_game.h  141 0x7fff7989f873  
16  LIBRETRO::CLibretroEnvironment::EnvironmentCallback LibretroEnvironment.cpp 175 0x7fff7989e519  
17  LIBRETRO::EnvCallback   LibretroEnvironment.cpp 50  0x7fff7989dc0a  
18  retro_wrap_emulator()           0x7fff39e38520  
19  co_switch           0x7fff39e3c2d0  
... <More>              
garbear commented 8 years ago

I've fixed two bugs in RetroPlayer. https://github.com/garbear/xbmc/commit/13e36b3 fixes the deadlock when stopping games. https://github.com/garbear/xbmc/commit/9faa6c5 allows standalone add-ons to also launch with games.

I'll look into the missing audio when I get a chance.

fetzerch commented 8 years ago

Wow, that was fast, thanks much for the quick fixes. I'll sort out the build issues. It has the zlib sources in a subdirectory, hence I expected them to be used without the need of -lz. But then I'll see also how we get the missing audio libs compiled in. Do you know by heart if there is already a libretro core with external build dependencies?

garbear commented 8 years ago

I don't know of any cores with external build deps. I've found answers by scanning the libretro build system before