garbear / xbmc Goto Github PK
View Code? Open in Web Editor NEWThis project forked from xbmc/xbmc
XBMC Main Repository
Home Page: http://xbmc.org
License: Other
This project forked from xbmc/xbmc
XBMC Main Repository
Home Page: http://xbmc.org
License: Other
when first booting up on android i get a pop up telling me the addon failed to load, should i be concerened?
Here is a clear and concise description of what the problem is:
There are a few reports from RPi users that changing the 'Stretch Mode' (Aspect Ratio) when using retroplayer can lead to an overall aspect ratio setting in Kodi that causes most everything to be offscreen. After this setting is applied, because everything is offscreen, the user can't reset the mode to something that works.
Reference:
zach-morris/plugin.program.iagl#234
https://forum.kodi.tv/showthread.php?tid=332966&pid=3108738#pid3108738
Here is a clear and concise description of what was expected to happen:
The stretch modes presented when using Retroplayer on RPi are modes that would support everything remaining on screen.
The stretch mode can cause the entire display in Kodi to be wonky.
Unsure, but likely hide unsupported modes, or the modes are actually being set incorrectly on RPi.
Steps to reproduce the behavior:
The debuglog can be found here:
Not available, only reporting this for other users. I unfortunately do not have an RPi to test on (they're impossible to get right now :-( )
Here are some links or screenshots to help explain the problem:
See screenshots in this post:
https://forum.kodi.tv/showthread.php?tid=332966&pid=3108710#pid3108710
Here is some additional context or explanation that might help:
Used Operating system:
Android
iOS
tvOS
Linux
OSX
Windows
Windows UWP
Operating system version/name:
Kodi version: Kodi V19, LibreElec on an RPi
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
causes the build to fail for the addons
If I add an external mapped folder to kodi as source for SNES files these do not open in all bSNES variants (accuray, performance, etc...)
Hi,
Trying to build beta2 game.* add-ons on amd64 (Ubuntu 18.04).
Fresh checkout, following a script here:
#!/bin/bash
#ADDONS=game.libretro*
ADDONS=game.*
BRANCH=retroplayer-18beta2-20180914
WORKSPACE=/home/kodi/repos/kodibuild
#sudo rm -rfv $WORKSPACE
# uncomment if you want to remove automatically
#rm -rfv $WORKSPACE
git clone -b $BRANCH https://github.com/garbear/xbmc $WORKSPACE
mkdir $WORKSPACE/build-addons
cd $WORKSPACE/build-addons
cmake -DADDONS_TO_BUILD=$ADDONS \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$WORKSPACE/addons \
-DPACKAGE_ZIP=1 \
$WORKSPACE/cmake/addons
make -j2
Bombs out here:
src/audio.cpp: In function ‘void audio_reset()’:
src/audio.cpp:944:28: warning: overflow in implicit constant conversion [-Woverflow]
cdp->per = PERIOD_MAX - 1;
./src/md-retro/maccess.h: Assembler messages:
./src/md-retro/maccess.h:23: Error: no such instruction: `ldrh %ax,[%rax]'
./src/md-retro/maccess.h:24: Error: no such instruction: `rev16 %ax,%ax'
Makefile:194: recipe for target 'src/audio.o' failed
make[6]: *** [src/audio.o] Error 1
CMakeFiles/uae4arm.dir/build.make:110: recipe for target 'uae4arm/src/uae4arm-stamp/uae4arm-build' failed
make[5]: *** [uae4arm/src/uae4arm-stamp/uae4arm-build] Error 2
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/uae4arm.dir/all' failed
make[4]: *** [CMakeFiles/uae4arm.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make[3]: *** [all] Error 2
CMakeFiles/uae4arm.dir/build.make:110: recipe for target 'build/uae4arm/src/uae4arm-stamp/uae4arm-build' failed
make[2]: *** [build/uae4arm/src/uae4arm-stamp/uae4arm-build] Error 2
CMakeFiles/Makefile2:687: recipe for target 'CMakeFiles/uae4arm.dir/all' failed
make[1]: *** [CMakeFiles/uae4arm.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Addons built in linux using make -C tools/depends/target/binary-addons PREFIX=$HOME/kodi
are not loaded properly. I have only tested game.libretro.nestopia and game.libretro.2048, but they both look for the shared object file in the wrong directory.
Here are the relevant lines from running make -C tools/depends/target/binary-addons PREFIX=$HOME/kodi ADDONS="game.libretro.nestopia"
Install the project...
-- Install configuration: "Release"
-- Installing: /home/anthony/kodi/lib/kodi/addons/game.libretro.nestopia/game.libretro.nestopia.so
-- Installing: /home/anthony/kodi/share/kodi/addons/game.libretro.nestopia
Instead of looking into the /lib folder, the system attempts to load the library from the /share folder, as seen in $HOME/.kodi/temp/kodi.log
13:32:21 T:140160131368896 DEBUG: SECTION:LoadDLL(/home/anthony/kodi/lib/kodi/addons/game.libretro/game.libretro.so)
13:32:21 T:140160131368896 DEBUG: Loading: /home/anthony/kodi/lib/kodi/addons/game.libretro/game.libretro.so
13:32:21 T:140160131368896 ERROR: AddOnLog: NES (Nestopia): Unable to load /home/anthony/kodi/share/kodi/addons/game.libretro.nestopia/game.libretro.nestopia.so: cannot open shared object file: No such file or directory
13:32:21 T:140160131368896 ERROR: AddOnLog: NES (Nestopia): Failed to load /home/anthony/kodi/share/kodi/addons/game.libretro.nestopia/game.libretro.nestopia.so
13:32:21 T:140160131368896 ERROR: ADDON: Dll NES (Nestopia) - Client returned bad status (6) from Create and is not usable
This can be fixed by manually copying over the shared object from the /lib folder into the /share folder.
Early screenshot:
Hypothetical example of depth-first player assignment:
Discussion: https://forum.kodi.tv/showthread.php?tid=295463&pid=2676758#pid2676758
<control type="playerpanel">
)
control type="controllerpanel">
)
Version tested:
14:59:16.547 T:140735305183232 NOTICE: Starting Kodi (18.0-ALPHA1 Git:20180215-276e1a4). Platform: OS X x86 64-bit
14:59:16.548 T:140735305183232 NOTICE: Using Debug Kodi x64 build
14:59:16.548 T:140735305183232 NOTICE: Kodi compiled Feb 15 2018 by Clang 9.0.0 (clang-900.0.37) for OS X x86 64-bit version 10.8.0 (1080)
14:59:16.548 T:140735305183232 NOTICE: Running on Apple Inc. MacBookPro12,1 with OS X 10.11.6, kernel: Darwin x86 64-bit version 15.6.0
14:59:16.548 T:140735305183232 NOTICE: FFmpeg version/source: 3.4.1-Kodi
14:59:16.549 T:140735305183232 NOTICE: Host CPU: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz, 4 cores available
Issue: 2048 created the following files in the application directory. I would expect these to be saved in the userdata directory:
game.libretro.xml
game.libretro.sav
Contents of game.libretro.xml
<?xml version="1.0" ?>
<savestate>
<path>game.libretro.sav</path>
<type>auto</type>
<label>02/17/2018 3:01:12 PM</label>
<size>680</size>
<gameclient>game.libretro.2048</gameclient>
<gamepath>game.libretro.2048</gamepath>
<gamecrc></gamecrc>
<frames>78</frames>
<wallclock>1.218750</wallclock>
<timestamp>2018-02-17 15:01:12</timestamp>
<thumbnail></thumbnail>
</savestate>
Associated log:
15:01:09.447 T:140735305183232 DEBUG: AddOnLog: 2048: Setting libretro pixel format "XRGB8888"
15:01:09.447 T:140735305183232 INFO: GAME: ---------------------------------------
15:01:09.447 T:140735305183232 INFO: GAME: Base Width: 376
15:01:09.448 T:140735305183232 INFO: GAME: Base Height: 464
15:01:09.448 T:140735305183232 INFO: GAME: Max Width: 376
15:01:09.448 T:140735305183232 INFO: GAME: Max Height: 464
15:01:09.448 T:140735305183232 INFO: GAME: Aspect Ratio: 1.000000
15:01:09.448 T:140735305183232 INFO: GAME: FPS: 60.000000
15:01:09.448 T:140735305183232 INFO: GAME: Sample Rate: 30000.000000
15:01:09.448 T:140735305183232 INFO: GAME: Region: NTSC
15:01:09.448 T:140735305183232 INFO: GAME: ---------------------------------------
15:01:09.448 T:140735305183232 DEBUG: GAME: Correcting audio and video by 1.066667 to avoid resampling
15:01:09.448 T:140735305183232 DEBUG: GAME: Audio sample rate normalized to 32000
15:01:09.448 T:140735305183232 DEBUG: GAME: Video frame rate scaled to 64.000000
15:01:09.449 T:140735305183232 INFO: GAME: In-game saves (save ram) loaded from special://masterprofile/Savestates/InGameSaves/game.libretro.2048.sav
15:01:09.449 T:140735305183232 DEBUG: GAME: No in-game saves (rtc) to load
...
15:01:12.784 T:140735305183232 DEBUG: RetroPlayer[PLAYER]: Closing file
15:01:12.784 T:140735305183232 DEBUG: Saving savestate to game.libretro.sav
15:01:12.784 T:140735305183232 DEBUG: RetroPlayer[SAVE]: Saved state to game.libretro.sav
15:01:12.784 T:123145305063424 DEBUG: Thread GameLoop 123145305063424 terminating
15:01:12.785 T:140735305183232 INFO: GAME: In-game saves (save ram) written to special://masterprofile/Savestates/InGameSaves/game.libretro.2048.sav
15:01:12.785 T:140735305183232 DEBUG: GAME: No in-game saves (rtc) to save
15:01:12.785 T:140735305183232 DEBUG: AddOnLog: 2048: Settings port "1" (libretro port 0) to controller "" (libretro device ID 0)
15:01:12.786 T:140735305183232 DEBUG: SECTION:UnloadDll(/Applications/Kodi_Retroplayer.app/Contents/Resources/Kodi/addons/game.libretro/game.libretro.1.0.36.dylib)
15:01:12.786 T:140735305183232 INFO: ADDON: Dll Destroyed - 2048
Other game.libretro addons that do this:
Mr. Boom
fMSX
ScummVM
hi!
--- system/keymaps/joystick.xml 2015-01-11 10:18:30.000000000 +0100
+++ system/keymaps/joystick.xml 2015-01-11 10:21:32.000000000 +0100
@@ -57,7 +57,7 @@
<rsick></rstick>
<rstick></rstick>
ActivateWindow(Home)
@@ -67,14 +67,14 @@
Left
Right
<left_joy_up>Up</up>
<left_joy_down>Down</down>
<left_joy_left>Left</left>
<left_joy_right>Right</right>
<right_joy_up>Up</up>
<right_joy_down>Down</down>
<right_joy_left>Left</left>
<right_joy_right>Right</right>
<left_joy_up>Up</left_joy_up>
<left_joy_down>Down</left_joy_down>
<left_joy_left>Left</left_joy_left>
<left_joy_right>Right</left_joy_right>
<right_joy_up>Up</right_joy_up>
<right_joy_down>Down</right_joy_down>
<right_joy_left>Left</right_joy_left>
<right_joy_right>Right</right_joy_right>
if it is not too much requested would you please update to kodi-14.0 stable or even git master?
thank you very much for your GREAT work! :}
Hi,
With a joystick such as the ds4 for ps4, Direct input goes bonkers when configuring the joystick for an emulator. Xinput seems to work fine as a wrapper with the same hardware (ds4),though .
thought you would like to know
Jeremy
Is LG WebOS support planned for Kodi Retro Player?
Thanks.
@garbear Do you have an issue tracking changelog for RetroPlayer Nexus 20.0 issues similar to the ones have for 19.0 and 18.0?
Noticed that kodi.tv news page has a new article about Kodi "Nexus" Beta 1 and was surprised that the article did not mention any changelog commits about Kodi Game / RetroPlayer and Libretro or games/gaming input related features for which there have been many commits too since Matrix:
https://kodi.tv/article/kodi-nexus-beta-1/
Question about changelogs also posted in the Kodi forum here:
Title says most of it.
Similar to Kodi's python module functions xbmc.audioSuspend() and xbmc. audioResume()
Rationale:
I can think of a lot of reasons an addon would want to temporarily suspend joystick input (or prevent it all together), but one of the main reasons is to avoid input to Kodi when it's not in focus on the screen (i.e user temporarily brings another application in focus and uses the joystick)
Bonus points if the function can specify by controller type
Here is a clear and concise description of what the problem is:
Every game.libretro addon has an individual resources/system folder (if required)
Here is a clear and concise description of what was expected to happen:
Not expected, but proposed behavior is to have a Kodi game setting for a 'common' folder, in addition to the individual game.libretro folders. Retroarch has a common system folder, and that makes configuration much easier for the user.
Each game.libretro addon generates and uses unique folders.
Update Kodi to allow optional Game setting for a 'common' system folder
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
It would be beneficial to add a row item to the in-game OSD to quickly bring up the current game.libretro.core settings
As an example:
In DOSBOX, for Win3.1 games, I needed to change the settings for game.libretro.dosbox dosbox_machine_type to svga_s3 (not the default), and for other DOS games I had to set it back to vgaonly.
In the current implementation, I would have to go into Addons>My Addons>Game Addons>Emulators>DOSBOX>Settings to change that. It would be much easier if I could access the settings after the core is started. Note that a reboot / restart of the core might be needed after some of the settings are changed.
Adding a link to the core settings from the in-game OSD would be akin to Retroarches "Quick Menu" settings.
Does one exist? I am using 16.04 (Update 18.04)
Version tested: RetroPlayer 18 alpha1 2018-02-11
To Recreate: Attempt to play youtube video in youtube addon. Error window pops up stating 'Failed to Play Game'
Video URL in the log below was truncated for brevity, but the error occurs regardless of the video you choose.
21:41:34.115 T:123145303453696 DEBUG: CAddonSettings[plugin.video.youtube]: loading setting definitions
21:41:34.115 T:123145303453696 DEBUG: CAddonSettings[plugin.video.youtube]: trying to load setting definitions from old format...
21:41:34.117 T:123145303453696 DEBUG: CAddonSettings[plugin.video.youtube]: loading setting values
21:41:34.118 T:123145303453696 DEBUG: [plugin.video.youtube] Selecting YouTube config "All"
21:41:34.118 T:123145303453696 DEBUG: [plugin.video.youtube] User is not logged in
21:41:34.119 T:123145303453696 DEBUG: [plugin.video.youtube] No data for video 'UXZcY6vrceI' cached
21:41:34.120 T:123145303453696 DEBUG: [plugin.video.youtube] [data] v3 request: |GET| path: |videos| params: |{'part': 'snippet,contentDetails', 'id': u'UXZcY6vrceI'}| post_data: |None|
21:41:36.044 T:140735305183232 DEBUG: CCurlFile::GetMimeType - https://xxx -> video/mp4
21:41:36.048 T:123145309356032 DEBUG: Thread GUIDialogCache 123145309356032 terminating (autodelete)
21:41:36.052 T:140735305183232 DEBUG: CPlayerCoreFactory::GetPlayers(https://xxx)
21:41:36.052 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: system rules
21:41:36.052 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: system rules
21:41:36.052 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: mms/udp
21:41:36.052 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: lastfm/shout
21:41:36.052 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtmp
21:41:36.053 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtsp
21:41:36.053 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: streams
21:41:36.053 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: streams
21:41:36.053 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: aacp/sdp
21:41:36.053 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: mp2
21:41:36.054 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvd
21:41:36.054 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: sdp/asf
21:41:36.054 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: nsv
21:41:36.054 T:140735305183232 DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: radio
21:41:36.054 T:140735305183232 DEBUG: CPlayerCoreFactory::GetPlayers: matched {0} rules with players
21:41:36.054 T:140735305183232 DEBUG: CPlayerCoreFactory::GetPlayers: adding videodefaultplayer (VideoPlayer)
21:41:36.054 T:140735305183232 DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=0
21:41:36.054 T:140735305183232 DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=1
21:41:36.055 T:140735305183232 DEBUG: CPlayerCoreFactory::GetPlayers: added {0} players
21:41:38.331 T:140735305183232 DEBUG: ------ Window Deinit (DialogConfirm.xml) ------
21:41:38.342 T:140735305183232 INFO: RetroPlayer: No compatible game client selected, aborting playback
Here is a clear and concise description of what the problem is:
Images where problem occurs:
LibreELEC-RK3399.arm-12.0-retroplayer-20231024-45dbbcd3-rock-pi-4-plus.img.gz
LibreELEC-RK3399.arm-12.0-retroplayer-20231210-61dc79dc-rock-pi-4-plus.img.gz
After initial power on with resizing of partitions, receive the following error:
*** Error in mount_storage: mount_common: Could not mount UUID=5a7f8cd4-ed2b-4edd-b6a5-3bef0c8801c4 ***
Image LibreELEC-RK3399.arm-11.0-retroplayer-20231205-178d04a4-rock-pi-4-plus.img.gz works properly.
Here is a clear and concise description of what was expected to happen:
Expect the Rock Pi 4 plus to boot into Kodi
Receive error:
*** Error in mount_storage: mount_common: Could not mount UUID=5a7f8cd4-ed2b-4edd-b6a5-3bef0c8801c4 ***
Steps to reproduce the behavior:
The debuglog can be found here:
Here are some links or screenshots to help explain the problem:
Here is some additional context or explanation that might help:
Used Operating system:
Android
iOS
tvOS
Linux
macOS
Windows
Windows UWP
Operating system version/name:
Kodi version:
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
@wsnipex, @Montellese, @notspiff: Is there any way to build all game add-ons in one command? right now my build command looks like rm .installed-macosx10.10_x86_64-target ; make ADDONS="peripheral.joystick game.libretro game.libretro.2048 game.libretro.beetle-bsnes game.libretro.beetle-pce-fast game.libretro.bnes game.libretro.dosbox game.libretro.fceumm game.libretro.genplus game.libretro.mupen64plus game.libretro.nestopia game.libretro.quicknes game.libretro.yabause"
I'll outline mouse support for anyone who would like to work on this, I know @fetzerch was interested.
Mouse support is fully implemented in game.libretro. The libretro API requests mouse input via RETRO_DEVICE_ID_MOUSE_X/Y
here. This reads mouse data; the data is written by the Game API event GAME_INPUT_EVENT_RELATIVE_POINTER
here. The challenge is to implement this mouse event in Kodi.
Fortunately, a solution exists in the form of keyboard input. 99% of mouse implementation will be copying keyboard code. I'll start at the GAME_INPUT_EVENT_KEY
event here and work backwards to see what we need for mouse input.
The GAME_INPUT_EVENT_KEY
is generated by CGameClientKeyboard
here. This means we need a CGameClientMouse
class.
CGameClientKeyboard implements the KEYBOARD::IKeyboardHandler
interface at xbmc/input/keyboard/IKeyboardHandler.h
interface. Similarly, we'll need to create a MOUSE::IMouseHandler
interface at xbmc/input/mouse/IMouseHandler.h
. Count yourself lucky - not everyone gets to create a new source code folder in Kodi 😉
When a game is opened, if <supports_keyboard>
is true, then CGameClient::OpenKeyboard()
is called. We need a <supports_mouse>
parameter and a corresponding CGameClient::OpenMouse()
function.
When OpenKeyboard()
is called, the keyboard handler is created and registers itself via CInputManager::RegisterKeyboardHandler()
here. We need a CInputManager::RegisterMouseHandler()
function and a vector to store mouse handlers.
100% of key presses pass through CInputManager::OnKey()
here. We need to find a location where all mouse events pass (hint: CInputManager::ProcessMouse()
). Then, similar to key presses, if a registered mouse handler returns true, we prevent the input from reaching Kodi.
And that's basically it. Keyboard input required some refactoring (#6779), so expect CInputManager to need some refactoring for mouse hooking as well. This will probably be the most difficult part, as everything else is very straight-forward.
can't build as of following typo:
-SRCS = AddonJoytsickButtonMapper.cpp
+SRCS = AddonJoystickButtonMapper.cpp
Issue:
Attempting to launch a game from m3u via IAGL is failing / being ignored.
Relevant IAGL Code:
xbmc.log(msg='IAGL: Gameclient for Retroplayer set to: %(current_gameclient)s' % {'current_gameclient': current_gameclient}, level=xbmc.LOGNOTICE)
xbmc.log(msg='IAGL: Attempting to play the following file through Retroplayer: %(url)s' % {'url': self.launch_filenames[0]}, level=xbmc.LOGNOTICE)
xbmc.Player().play(xbmc.translatePath(self.launch_filenames[0]),game_listitem)
Log:
NOTICE: IAGL: Gameclient for Retroplayer set to: game.libretro.beetle-psx
NOTICE: IAGL: Attempting to play the following file through Retroplayer: /Users/xxx/Library/Application Support/Kodi/userdata/addon_data/plugin.program.iagl/temp_iagl/Alone_in_the_Dark_The_New_Nightmare_USA/Alone in the Dark - The New Nightmare (USA).m3u
After the play call is sent, I see no attempt in the Kodi log to try and play the file. Pointing to the m3u through the Kodi GUI (via a Games Source) will launch the file just fine.
Hi @garbear,
I hope it's ok to misuse an issue for the topic, but I'd have a question on your binary addons extension.
When you build Kodi with CMake you can now develop binary addons against it by just building an addon with cmake -DKODI_BUILD_DIR=<kodi build dir> -DCMAKE_PREFIX_PATH=<kodi build dir>/build <myaddon source dir>
. This also deploys the addon in the kodi build dir, so that Kodi finds it. If I apply xbmc#9804 and xbmc#9671, this also works with your retroplayer branch. I've tested game.libretro
and peripheral.joystick
.
Do you or maybe @notspiff have an idea how we could do the same thing for the cores? Their CMake file just do a find_package(<LIBRETRO CORE>)
which fails because the core has not been built.
What I'm looking for is basically a simple way to build and deploy a core in debug mode to launch it for debugging with a self compiled kodi.
Thanks much,
Christian
Issue: Selecting any core (eg. 2048, DOSBOX, ScummVM, etc) in Games causes "Failed to Play Game" message
Version Tested:
-----------------------------------------------------------------------
09:46:32.481 T:140735305183232 NOTICE: Starting Kodi (18.0-ALPHA1 Git:20180215-276e1a4). Platform: OS X x86 64-bit
09:46:32.481 T:140735305183232 NOTICE: Using Debug Kodi x64 build
09:46:32.481 T:140735305183232 NOTICE: Kodi compiled Feb 15 2018 by Clang 9.0.0 (clang-900.0.37) for OS X x86 64-bit version 10.8.0 (1080)
09:46:32.481 T:140735305183232 NOTICE: Running on Apple Inc. MacBookPro12,1 with OS X 10.11.6, kernel: Darwin x86 64-bit version 15.6.0
09:46:32.481 T:140735305183232 NOTICE: FFmpeg version/source: 3.4.1-Kodi
09:46:32.482 T:140735305183232 NOTICE: Host CPU: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz, 4 cores available
Log:
09:44:57.868 T:140735305183232 INFO: GAME: ------------------------------------
09:44:57.868 T:140735305183232 INFO: GAME: Loaded DLL for game.libretro.2048
09:44:57.868 T:140735305183232 INFO: GAME: Client: 2048 at version 1.0.0
09:44:57.868 T:140735305183232 INFO: GAME: Valid extensions:
09:44:57.868 T:140735305183232 INFO: GAME: Supports VFS: yes
09:44:57.868 T:140735305183232 INFO: GAME: Supports standalone execution: yes
09:44:57.868 T:140735305183232 INFO: GAME: ------------------------------------
09:44:57.869 T:140735305183232 DEBUG: RetroPlayer[AUDIO]: Initializing audio
09:44:57.869 T:140735305183232 DEBUG: RetroPlayer[VIDEO]: Initializing video
09:44:57.869 T:140735305183232 DEBUG: RetroPlayer[RENDER]: Initializing render manager
09:44:57.869 T:140735305183232 DEBUG: RetroPlayer[INPUT]: Initializing input
09:44:57.869 T:140735305183232 DEBUG: PERIPHERALS: Event poll handle registered
09:44:57.869 T:140735305183232 INFO: RetroPlayer[PLAYER]: Opening: game://game.libretro.2048/
09:44:57.869 T:140735305183232 WARNING: CreateLoader - unsupported protocol(game) in game://game.libretro.2048/
09:44:57.869 T:140735305183232 DEBUG: ------ Window Init (DialogConfirm.xml) ------
Here is a clear and concise description of what the problem is:
Launching will fail in the latest release RetroPlayer 20 (2023-02-01) if no savestates are present
https://forum.kodi.tv/showthread.php?tid=173361&pid=3139497#pid3139497
Adding an issue here for visibility. Feel free to close this if you've already resolved
Here is a clear and concise description of what was expected to happen:
Launching will not fail if no savestates are present
If no savestates are present, the log shows:
No compatible game client selected
Even though there are compatible gameclients
It seems something was broken with the latest savestate implementation that missed accounting for no savestates?
Steps to reproduce the behavior:
The debuglog can be found here:
Here are some links or screenshots to help explain the problem:
Here is some additional context or explanation that might help:
Used Operating system:
Android
iOS
tvOS
Linux
OSX
Windows
Windows UWP
Operating system version/name:
Kodi version: RetroPlayer 20 (2023-02-01)
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
mod="longpress"
parameter for joystick.xml keymap (xbmc#12366)#ifdef HAS_LIBUDEV
around the touchscreen fix)CGUIViewControl
(report) (skinner advice please?)CPeripheralAddon
requires refactoring (report)I have a Nvidia Shield (the older one not the new) running SW9.1.1 and I have been trying to set up some joysticks to work with the retroplayer. I was not really able to make it work. I came across this thread on kodi forum: https://forum.kodi.tv/showthread.php?tid=373412 while searching for solution.
The games works with the Shield Controller if that is the only one connected (apart from the virtual-search and the shiled-ask-remote). But as soon as I attach one of the USB joysticks everything stops working...
All the joysticks work solely as kodi remote controller (i.e. any button press is an enter). In the players view I can see the following:
This is the only constellation that works
I think if I was able to change the controller assignment to the ports it could be a solution, as when the Shield Controller works it is assigned to Port 1, but any other joysitck is assigned to none.
I expect controllers to work
Joysticks are not recognised and only act as general kodi remote
The debuglog can be found here:
logs: https://paste.kodi.tv/ubicejaquf.kodi
Used Operating system:
Android
iOS
tvOS
Linux
OSX
Windows
Windows UWP
Operating system version/name: 9.1.1 Shield Experience
Kodi version: kodi-20231024-ef080027-retroplayer-21beta1-arm64-v8a.apk
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
The basic feature of changing discs when emulating playstation is missing.
I posted this at xbmc-retroplayer, not sure what is the exact difference between the two, so I just post it here again.
This may just be how my addon is (poorly) written, as I'm not able to recreate this issue in any other addon I tested (SuperFavorites, Youtube). Feel free to close this if this is just how Kodi works now.
Version tested:
14:59:16.547 T:140735305183232 NOTICE: Starting Kodi (18.0-ALPHA1 Git:20180215-276e1a4). Platform: OS X x86 64-bit
14:59:16.548 T:140735305183232 NOTICE: Using Debug Kodi x64 build
14:59:16.548 T:140735305183232 NOTICE: Kodi compiled Feb 15 2018 by Clang 9.0.0 (clang-900.0.37) for OS X x86 64-bit version 10.8.0 (1080)
14:59:16.548 T:140735305183232 NOTICE: Running on Apple Inc. MacBookPro12,1 with OS X 10.11.6, kernel: Darwin x86 64-bit version 15.6.0
14:59:16.548 T:140735305183232 NOTICE: FFmpeg version/source: 3.4.1-Kodi
14:59:16.549 T:140735305183232 NOTICE: Host CPU: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz, 4 cores available
Issue: Pressing the '..' Kodi directory item when in an addon does not go to the parent directory and close the addon as expected. Testing the same addon (IARL) in v17 the behavior is different.
Log:
[First press of '..' listitem]
09:03:31.579 T:140735305183232 DEBUG: ------ Window Init (Pointer.xml) ------
09:03:31.630 T:140735305183232 DEBUG: ------ Window Deinit (Pointer.xml) ------
09:03:37.311 T:140735305183232 DEBUG: ------ Window Init (Pointer.xml) ------
09:03:38.785 T:140735305183232 DEBUG: ProcessMouse: trying mouse action leftclick
09:03:38.786 T:140735305183232 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.program.iarl/)
09:03:38.786 T:140735305183232 DEBUG: ParentPath = [plugin://]
09:03:38.788 T:123145304526848 DEBUG: CAddonDatabase::SetLastUsed[plugin.program.iarl] took 2 ms
09:03:38.788 T:123145311580160 DEBUG: StartScript - calling plugin Internet Archive ROM Launcher('plugin://plugin.program.iarl/','9','','resume:false')
09:03:38.788 T:123145302839296 DEBUG: Thread LanguageInvoker start, auto delete: false
09:03:38.788 T:123145302839296 INFO: initializing python engine.
09:03:38.789 T:123145302839296 DEBUG: CPythonInvoker(25, /Users/ZC/Library/Application Support/Kodi/addons/plugin.program.iarl/addon.py): start processing
09:03:38.802 T:123145302839296 DEBUG: -->Python Interpreter Initialized<--
...
09:03:39.444 T:123145302839296 INFO: CPythonInvoker(25, /Users/ZC/Library/Application Support/Kodi/addons/plugin.program.iarl/addon.py): script successfully run
09:03:39.496 T:123145305063424 DEBUG: Thread BackgroundLoader start, auto delete: false
09:03:39.504 T:123145305063424 DEBUG: Thread BackgroundLoader 123145305063424 terminating
09:03:39.534 T:123145302839296 INFO: Python script stopped
09:03:39.534 T:123145302839296 DEBUG: Thread LanguageInvoker 123145302839296 terminating
09:03:39.723 T:140735305183232 DEBUG: ------ Window Deinit (DialogBusy.xml) ------
[Second press of '..' listitem]
09:03:40.711 T:140735305183232 DEBUG: ProcessMouse: trying mouse action leftclick
09:03:40.712 T:140735305183232 DEBUG: CGUIMediaWindow::GetDirectory ()
09:03:40.712 T:140735305183232 DEBUG: ParentPath = []
09:03:40.721 T:123145302839296 DEBUG: Thread BackgroundLoader start, auto delete: false
09:03:40.725 T:123145302839296 DEBUG: Thread BackgroundLoader 123145302839296 terminating
09:03:41.319 T:140735305183232 DEBUG: ------ Window Deinit (Pointer.xml) ------
Here is a clear and concise description of what the problem is:
Here is a clear and concise description of what was expected to happen:
Steps to reproduce the behavior:
The debuglog can be found here:
Here are some links or screenshots to help explain the problem:
Here is some additional context or explanation that might help:
Used Operating system:
Android
iOS
tvOS
Linux
OSX
Windows
Windows UWP
Operating system version/name:
Kodi version:
Hello
I came acrossed transifex login credentials.
I logged in to TeamXBMC on transifex
I was going to add my self to the team but thats not fair.... lol
So I logged out and I can't make a pull request over at TeamXBMC / alanwww1
To tell u to change the password and such.
plz unblock me from pull requests / issue reports.
note: Once the issue is made we require you to update it with new information or Kodi versions should that be required.
Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.
Not sure if this should reside in your branch or Kodi's at this point. Feel free to delete if it doesn't belong here.
Issue: Current Kodi v18 Beta 1 version seems like it will not give up keyboard control after a game was played and then stopped.
To recreate issue: Open up IAGL, Launch a game (Stella game in the log example), Press some keys, Bring up the OSD and select Exit. Attempting to use Enter on the keyboard after the game is exited no longer works (Note: it does in Alpha 3)
Also note this issue doesn't seem to occur if you start a game, and then bring up the OSD (with the mouse) and do not press some keys.
Additional notes after some more testing: With the latest beta, this seems to happen less often, but it does still sometimes happen. I can't find a reliable way to recreate this issue. I do notice that when this issue occurs, the viewtype of the listitems on the screen change from Folders to Icons, implying to me that Kodi is changing the listitem isFolder is being changed from True to False
Version Tested:
21:39:16.962 T:140735187836928 NOTICE: -----------------------------------------------------------------------
21:39:16.962 T:140735187836928 NOTICE: Starting Kodi (18.0-BETA1 Git:20180814-fc9faf32d5). Platform: OS X x86 64-bit
21:39:16.962 T:140735187836928 NOTICE: Using Debug Kodi x64 build
21:39:16.962 T:140735187836928 NOTICE: Kodi compiled Aug 14 2018 by Clang 9.0.0 (clang-900.0.37) for OS X x86 64-bit version 10.9.0 (1090)
21:39:16.962 T:140735187836928 NOTICE: Running on Apple Inc. MacBookPro12,1 with OS X 10.11.6, kernel: Darwin x86 64-bit version 15.6.0
21:39:16.962 T:140735187836928 NOTICE: FFmpeg version/source: 4.0.2-Kodi
21:39:16.963 T:140735187836928 NOTICE: Host CPU: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz, 4 cores available
Log:
21:41:56.137 T:140735187836928 DEBUG: SECTION:UnloadDll(/Applications/Kodi_Retroplayer.app/Contents/Resources/Kodi/addons/game.libretro/game.libretro.1.0.38.dylib)
21:41:56.137 T:140735187836928 INFO: ADDON: Dll Destroyed - Atari - 2600 (Stella)
21:41:56.139 T:140735187836928 DEBUG: RetroPlayer[PLAYER]: Playback ended
21:41:56.139 T:140735187836928 DEBUG: OnPlayBackEnded: CApplication::OnPlayBackEnded
21:41:56.139 T:140735187836928 DEBUG: RetroPlayer[PLAYER]: Closing file
21:41:56.139 T:123145306673152 DEBUG: CAnnouncementManager - Announcement: OnStop from xbmc
21:41:56.139 T:140735187836928 DEBUG: RetroPlayer[PLAYER]: Playback ended
21:41:56.140 T:140735187836928 DEBUG: OnPlayBackEnded: CApplication::OnPlayBackEnded
21:41:56.140 T:123145306673152 DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnStop
21:41:56.140 T:140735187836928 DEBUG: CGUIWindowManager::PreviousWindow: Deactivate
21:41:56.140 T:123145306673152 DEBUG: CAnnouncementManager - Announcement: OnStop from xbmc
21:41:56.140 T:140735187836928 DEBUG: ------ Window Deinit (VideoFullScreen.xml) ------
21:41:56.140 T:123145306673152 DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnStop
21:41:56.140 T:140735187836928 DEBUG: ------ Window Deinit (GameOSD.xml) ------
21:41:56.140 T:140735187836928 DEBUG: CGUIWindowManager::PreviousWindow: Activate new
21:41:56.141 T:140735187836928 DEBUG: ------ Window Init (MyVideoNav.xml) ------
21:41:56.141 T:140735187836928 DEBUG: Window MyVideoNav.xml was already loaded
21:41:56.142 T:140735187836928 DEBUG: Alloc resources: 0.73ms
21:41:56.142 T:140735187836928 ERROR: Control 55 in window 10025 has been asked to focus, but it can't
21:41:56.164 T:140735187836928 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.program.iagl/game_list/list_all/Atari_2600_Bestof_ZachMorris/1)
21:41:56.164 T:140735187836928 DEBUG: ParentPath = [plugin://plugin.program.iagl/game_list/list_all/Atari_2600_Bestof_ZachMorris/1]
21:41:56.166 T:123145324457984 DEBUG: CAddonDatabase::SetLastUsed[plugin.program.iagl] took 2 ms
21:41:56.168 T:140735187836928 DEBUG: Loading items: 25, directory: plugin://plugin.program.iagl/game_list/list_all/Atari_2600_Bestof_ZachMorris/1 sort method: 0, ascending: false
21:41:56.170 T:123145308819456 DEBUG: Thread BackgroundLoader start, auto delete: false
21:41:56.171 T:123145317482496 DEBUG: Skin Helper Service --> Kodi_Monitor: sender xbmc - method: Player.OnStop - data: {"end":true,"item":{"type":"unknown"}}
21:41:56.179 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:56.179 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:56.179 T:123145308819456 DEBUG: Previous line repeats 1 times.
21:41:56.180 T:123145308819456 DEBUG: Thread BackgroundLoader 123145308819456 terminating
21:41:56.181 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:56.181 T:123145324457984 DEBUG: Previous line repeats 1 times.
21:41:56.181 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:41:56.188 T:123145312653312 DEBUG: Previous line repeats 1 times.
21:41:56.188 T:123145312653312 DEBUG: ffmpeg[7000009DD000]: Invalid return value 0 for stream protocol
21:41:56.191 T:123145324457984 DEBUG: Previous line repeats 1 times.
21:41:56.191 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:41:56.192 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:41:56.192 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:56.194 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:56.194 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:56.201 T:123145324457984 DEBUG: Previous line repeats 1 times.
21:41:56.201 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:41:56.203 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:56.204 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:56.205 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:41:56.205 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:56.206 T:123145312653312 DEBUG: Previous line repeats 1 times.
21:41:56.206 T:123145312653312 DEBUG: ffmpeg[7000009DD000]: Invalid return value 0 for stream protocol
21:41:56.215 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:56.216 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:56.216 T:123145324457984 DEBUG: Previous line repeats 1 times.
21:41:56.217 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:41:56.218 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:41:56.218 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:56.219 T:123145307209728 DEBUG: CActiveAE::ClearDiscardedBuffers - buffer pool deleted
21:41:56.219 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:56.220 T:123145312653312 DEBUG: ffmpeg[7000009DD000]: Invalid return value 0 for stream protocol
21:41:56.236 T:123145318555648 DEBUG: Previous line repeats 1 times.
21:41:56.236 T:123145318555648 DEBUG: Skin Helper Widgets --> Kodi_Monitor: sender xbmc - method: Player.OnStop - data: {"end":true,"item":{"type":"unknown"}}
21:41:56.913 T:140735187836928 DEBUG: Previous line repeats 1 times.
21:41:56.914 T:140735187836928 DEBUG: Keyboard: scancode: 0x7c, sym: 0x0113, unicode: 0xf703, modifier: 0x0
21:41:56.914 T:140735187836928 DEBUG: HandleKey: right (0xf083) pressed, action is Right
21:41:56.918 T:140735187836928 DEBUG: ------ Window Deinit (Pointer.xml) ------
21:41:56.980 T:140735187836928 DEBUG: Keyboard: scancode: 0x7c, sym: 0x0113, unicode: 0x0000, modifier: 0x0
21:41:57.181 T:140735187836928 DEBUG: Keyboard: scancode: 0x7d, sym: 0x0112, unicode: 0xf701, modifier: 0x0
21:41:57.182 T:140735187836928 DEBUG: HandleKey: down (0xf081) pressed, action is Down
21:41:57.185 T:123145312653312 DEBUG: ffmpeg[7000009DD000]: Invalid return value 0 for stream protocol
21:41:57.186 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:57.186 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:57.186 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:57.186 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:57.186 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:57.188 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:41:57.195 T:123145312653312 DEBUG: Previous line repeats 1 times.
21:41:57.195 T:123145312653312 DEBUG: ffmpeg[7000009DD000]: Invalid return value 0 for stream protocol
21:41:57.199 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:41:57.199 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:57.200 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:57.200 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:57.205 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:41:57.206 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:57.207 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:41:57.207 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:41:57.280 T:140735187836928 DEBUG: Previous line repeats 3 times.
21:41:57.281 T:140735187836928 DEBUG: Keyboard: scancode: 0x7d, sym: 0x0112, unicode: 0x0000, modifier: 0x0
21:41:57.300 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:41:57.383 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:41:57.383 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:57.797 T:140735187836928 DEBUG: Previous line repeats 1 times.
21:41:57.797 T:140735187836928 DEBUG: Keyboard: scancode: 0x7b, sym: 0x0114, unicode: 0xf702, modifier: 0x0
21:41:57.798 T:140735187836928 DEBUG: HandleKey: left (0xf082) pressed, action is Left
21:41:57.930 T:140735187836928 DEBUG: Keyboard: scancode: 0x7b, sym: 0x0114, unicode: 0x0000, modifier: 0x0
21:41:58.176 T:140735187836928 DEBUG: Keyboard: scancode: 0x7d, sym: 0x0112, unicode: 0xf701, modifier: 0x0
21:41:58.176 T:140735187836928 DEBUG: HandleKey: down (0xf081) pressed, action is Down
21:41:58.180 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:41:58.281 T:140735187836928 DEBUG: Previous line repeats 1 times.
21:41:58.281 T:140735187836928 DEBUG: Keyboard: scancode: 0x7d, sym: 0x0112, unicode: 0x0000, modifier: 0x0
21:41:58.565 T:140735187836928 DEBUG: Keyboard: scancode: 0x24, sym: 0x000d, unicode: 0x000d, modifier: 0x0
21:41:58.681 T:140735187836928 DEBUG: Keyboard: scancode: 0x24, sym: 0x000d, unicode: 0x0000, modifier: 0x0
21:41:58.681 T:140735187836928 DEBUG: HandleKey: return (0xf00d) pressed, action is Select
21:41:58.683 T:140735187836928 WARNING: CGUIMediaWindow::OnClick - updating in progress
21:41:59.564 T:140735187836928 DEBUG: Keyboard: scancode: 0x24, sym: 0x000d, unicode: 0x000d, modifier: 0x0
21:41:59.749 T:140735187836928 DEBUG: Keyboard: scancode: 0x24, sym: 0x000d, unicode: 0x0000, modifier: 0x0
21:41:59.749 T:140735187836928 DEBUG: HandleKey: return (0xf00d) pressed, action is Select
21:41:59.751 T:140735187836928 WARNING: CGUIMediaWindow::OnClick - updating in progress
21:42:00.301 T:123145324457984 DEBUG: ffmpeg[70000151F000]: Invalid return value 0 for stream protocol
21:42:00.304 T:140735187836928 DEBUG: Previous line repeats 1 times.
21:42:00.304 T:140735187836928 DEBUG: ------ Window Init (Pointer.xml) ------
21:42:00.470 T:140735187836928 DEBUG: ------ Window Deinit (Pointer.xml) ------
21:42:01.438 T:123145312653312 DEBUG: ffmpeg[7000009DD000]: Invalid return value 0 for stream protocol
21:42:03.805 T:123145309970432 DEBUG: Previous line repeats 1 times.
21:42:03.805 T:123145309970432 DEBUG: ffmpeg[70000074E000]: Invalid return value 0 for stream protocol
21:42:05.488 T:123145309356032 DEBUG: Previous line repeats 1 times.
21:42:05.488 T:123145309356032 DEBUG: ffmpeg[7000006B8000]: Invalid return value 0 for stream protocol
21:42:07.636 T:140735187836928 DEBUG: Previous line repeats 1 times.
The following features are projects I started, but won't finish by the final v18 release. I'm linking to the source branches (rebased on v18) to keep track of them.
Not much progress there. The branch is retroplayer-saves.
See #87. Much progress, but still a lot to do. The branch is retroplayer-players.
A project to make rewind and fast-forward accessible.
I've started the dialog, and started working on the RetroPlayer changes. Not many more changes required, but it's a good opportunity to work on RetroPlayer's core architecture.
The branch is retroplayer-rewind.
Here, I introduce the Emulation Equation, a game-theoretic equation for emulation.
The equation represents all emulation, allows for powerful features, and all gameplay (human or otherwise) becomes data for training an artificially-intelligent game-playing agent.
For demonstration purposes, I've split the explanation into two theories:
The Special Theory of Emulation explains the fundamentals, and presents a simplified emulation equation. Using this, all emulation and many powerful features are possible.
The General Theory of Emulation uses the same fundamentals, and presents an extended emulation equation. Using this, all gameplay (human or otherwise) becomes data for training a reinforcement learner.
For the physics nerds, this is analogous to how Einstein introduced relativity:
Reinforcement learning is popular in game-playing AI because the reward signal is often sparse (not evident every frame) and depends on actions taken much earlier in the game.
The Q-learning algorithm is well-suited for teaching reinforcement learners how to play a video game because it does not require a model of the environment, which would be difficult to create for even the most basic computing machine.
Recall the algorithm from Q-learning:
Understanding that is out of the scope of this documentation. Just know that it learns over "emulation equations", which describe a series of frames in the discrete time domain.
Here I present two theories of emulation. The Special Theory of Emulation is the smallest equation needed for emulation. The General Theory of Emulation expands on this equation, allowing it to be used for Q-learning.
The Special Theory of Emulation presents the smallest equation (the emulation equation) needed to represent all emulation.
Game-theoretic emulation uses two variables:
Emulation occurs at discrete time steps, so every time step has its own instance of these variables:
The emulation history is therefore a time series of tuples containing these two variables:
(S0, A0, S1, A1, ...)
Time steps occur by applying a set of functions to the emulation variables:
The emulation equation is a time series model consisting of the initial conditions, as well as the model used for each time step.
The initial condition of all variables is the empty set:
The variables then evolve by applying the functions in sequence:
The emulation equation describes something fundamental in every emulator; play a frame, get input, repeat.
Interestingly, this fundamental concept was not a priori. It emerged as a model from solving an algorithm.
Surprising facts also appear. A0 is empty; the first frame is played with all buttons unpressed. Upon deeper inspection, this results because Q-learners get no value from an Action without a prior State observation.
Next, we present the General Theory of Emulation, which expands on these fundamentals to include two new concepts needed in the Q-learning algorithm.
The general theory of emulation extends the emulation equation so that it can be used for Q-learning.
Note: I also wanted to choose strategies for my Q-learners, such as "walk up" or "reach level 2". I extended Q-learning to depend on a Policy variable in the time series. When the strategy is the identity function (no strategy), this extended learning algorithm decays to Q-learning.
Reinforcement learning adds two variables:
Emulation occurs at discrete time steps, so every time step has its own instance of these variables:
The emulation history is therefore a time series of tuples containing these four variables:
(S0, R0, π0, A0, S1, R1, π1, A1, ...)
Reinforcement learning also needs two more functions:
The emulation equation is a time series model consisting of the initial conditions, as well as the model used for each time step.
The initial condition of all variables is the empty set:
The variables then evolve by applying the functions in sequence:
What about adding a link to KODI build dependencies in the README ?
It would be useful to non experienced programmer like me. Yes, I tried to compile this fork of kodi, without downloading the dependencies 😓
However I'll write what I did to get a successful run of ./configure
on Arch Linux, maybe it would be useful for someone:
sudo pacman -Syu
sudo pacman -Sy swig boost nasm yasm gperf zip
./configure PYTHON_VERSION=2
# need to specify the Python version, otherwise this error will appear:
# TypeError: unorderable types: str() >= int()
Here is a clear and concise description of what the problem is:
I have installed Kodi, installed kodi-game-libretro, installed and configured controllers, added rom paths to game section.
but when I try to launch a rom nothing appears to happen at all, but there are entries in the kodi log (down below in log section):
I thought the roms would launch, or get an error that indicates what the issue might be. I am not sure where to start, the error log tells me it was unable to initialize but not the reason why.
The rom never loads, the screen seems to not change at all, as if it never tried, but it obviously did because the log says so.
Additionally, if I load my roms by exiting kodi and using retroarch, then I am able to load them and play.
Steps to reproduce the behavior:
here was my install routine:
sudo add-apt-repository ppa:team-xbmc/ppa
sudo add-apt-repository ppa:libretro/stable
sudo apt update
sudo apt install kodi retroarch
sudo apt install kodi-game-libretro kodi-game-libretro-fceumm kodi-game-libretro-bsnes-mercury-performance kodi-game-libretro-tgbdual kodi-game-libretro-vba-next kodi-game-libretro-desmume kodi-game-libretro-beetle-psx
I installed and configured the additional controllers within kodi.
grc tail -f ~/.kodi/temp/kodi.log
2021-06-15 17:32:56.872 T:2341 INFO <general>: RetroPlayer[PROCESS]: Created process info for X11
2021-06-15 17:32:56.872 T:2341 ERROR <general>: ADDON: Could not locate game.libretro.genplus.so
2021-06-15 17:32:56.872 T:2341 ERROR <general>: ADDON: Dll Sega - MS/GG/MD/CD (Genesis Plus GX) - Client returned bad status (4) from Create and is not usable
2021-06-15 17:32:58.978 T:2341 ERROR <general>: RetroPlayer[PLAYER]: Failed to initialize game.libretro.genplus
Used Operating system:
Android
iOS
tvOS
Linux
OSX
Windows
Windows UWP
Operating system version/name: Ubuntu 20.04.2 with KDE Plasma
Kodi version: 19.1.0
This project isn't available on AUR anymore.
This could be a problem during AUR update and the new need of metadata file.
I would be happy to get this project through yaourt back.
Thanks Merlink
vfs.libarchive is not yet included (for OSX). Coincidentally it's not in the nightly builds either. I've tried to build it myself but can't get it to compile (although I'm fairly certain thats just my lack of knowledge with compiling on a mac).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.